@yselimcan/ui 0.0.4 → 0.0.5

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 (184) hide show
  1. package/dist/index101.js +7 -133
  2. package/dist/index102.js +86 -26
  3. package/dist/index103.js +12 -8
  4. package/dist/index104.js +63 -5
  5. package/dist/index105.js +38 -13
  6. package/dist/index106.js +14 -23
  7. package/dist/index107.js +32 -7
  8. package/dist/index108.js +19 -88
  9. package/dist/index109.js +4 -11
  10. package/dist/index110.js +4 -63
  11. package/dist/index111.js +4 -37
  12. package/dist/index112.js +12 -14
  13. package/dist/index113.js +18 -32
  14. package/dist/index114.js +13 -19
  15. package/dist/index115.js +295 -4
  16. package/dist/index116.js +5 -4
  17. package/dist/index117.js +39 -5
  18. package/dist/index118.js +124 -10
  19. package/dist/index119.js +21 -19
  20. package/dist/index120.js +77 -13
  21. package/dist/index121.js +59 -291
  22. package/dist/index122.js +45 -4
  23. package/dist/index123.js +14 -39
  24. package/dist/index124.js +4 -124
  25. package/dist/index125.js +29 -20
  26. package/dist/index126.js +5 -77
  27. package/dist/index127.js +25 -62
  28. package/dist/index128.js +16 -44
  29. package/dist/index129.js +22 -14
  30. package/dist/index130.js +58 -5
  31. package/dist/index131.js +16 -28
  32. package/dist/index132.js +25 -15
  33. package/dist/index133.js +40 -21
  34. package/dist/index134.js +43 -59
  35. package/dist/index135.js +19 -15
  36. package/dist/index136.js +47 -26
  37. package/dist/index137.js +49 -38
  38. package/dist/index138.js +18 -43
  39. package/dist/index139.js +11 -21
  40. package/dist/index140.js +22 -48
  41. package/dist/index141.js +34 -50
  42. package/dist/index142.js +229 -16
  43. package/dist/index143.js +283 -11
  44. package/dist/index144.js +52 -21
  45. package/dist/index145.js +15 -35
  46. package/dist/index146.js +74 -225
  47. package/dist/index147.js +3 -283
  48. package/dist/index148.js +30 -53
  49. package/dist/index149.js +24 -16
  50. package/dist/index150.js +15 -79
  51. package/dist/index151.js +69 -3
  52. package/dist/index152.js +4 -31
  53. package/dist/index153.js +103 -22
  54. package/dist/index154.js +79 -15
  55. package/dist/index155.js +259 -65
  56. package/dist/index156.js +12 -4
  57. package/dist/index157.js +11 -105
  58. package/dist/index158.js +37 -76
  59. package/dist/index159.js +4 -263
  60. package/dist/index160.js +66 -11
  61. package/dist/index161.js +9 -10
  62. package/dist/index162.js +8 -40
  63. package/dist/index163.js +5 -4
  64. package/dist/index164.js +129 -62
  65. package/dist/index165.js +54 -10
  66. package/dist/index166.js +11 -8
  67. package/dist/index167.js +118 -6
  68. package/dist/index168.js +11 -53
  69. package/dist/index169.js +8 -11
  70. package/dist/index17.js +4 -4
  71. package/dist/index170.js +12 -117
  72. package/dist/index171.js +22 -11
  73. package/dist/index173.js +2 -2
  74. package/dist/index175.js +2 -2
  75. package/dist/index178.js +6 -6
  76. package/dist/index18.js +5 -5
  77. package/dist/index181.js +2 -2
  78. package/dist/index184.js +1 -1
  79. package/dist/index187.js +5 -5
  80. package/dist/index189.js +3 -3
  81. package/dist/index19.js +10 -10
  82. package/dist/index190.js +1 -1
  83. package/dist/index191.js +1 -1
  84. package/dist/index192.js +2 -2
  85. package/dist/index193.js +1 -1
  86. package/dist/index194.js +1 -1
  87. package/dist/index195.js +3 -3
  88. package/dist/index196.js +6 -6
  89. package/dist/index197.js +3 -3
  90. package/dist/index198.js +6 -6
  91. package/dist/index199.js +1 -1
  92. package/dist/index20.js +3 -3
  93. package/dist/index200.js +5 -47
  94. package/dist/index201.js +41 -193
  95. package/dist/index202.js +182 -30
  96. package/dist/index203.js +48 -20
  97. package/dist/index204.js +20 -6
  98. package/dist/index205.js +2 -2
  99. package/dist/index207.js +6 -9
  100. package/dist/index208.js +4 -17
  101. package/dist/index209.js +9 -6
  102. package/dist/index21.js +4 -4
  103. package/dist/index210.js +17 -4
  104. package/dist/index217.js +3 -3
  105. package/dist/index218.js +1 -1
  106. package/dist/index22.js +5 -5
  107. package/dist/index220.js +2 -2
  108. package/dist/index221.js +1 -1
  109. package/dist/index229.js +1 -1
  110. package/dist/index23.js +3 -3
  111. package/dist/index230.js +4 -597
  112. package/dist/index231.js +4 -11
  113. package/dist/index232.js +593 -29
  114. package/dist/index233.js +12 -4
  115. package/dist/index234.js +15 -5
  116. package/dist/index235.js +30 -12
  117. package/dist/index239.js +2 -2
  118. package/dist/index24.js +9 -9
  119. package/dist/index242.js +3 -3
  120. package/dist/index243.js +1 -1
  121. package/dist/index247.js +14 -321
  122. package/dist/index248.js +322 -3
  123. package/dist/index249.js +3 -3
  124. package/dist/index250.js +3 -15
  125. package/dist/index251.js +1 -1
  126. package/dist/index26.js +1 -1
  127. package/dist/index27.js +1 -1
  128. package/dist/index28.js +2 -2
  129. package/dist/index32.js +1 -1
  130. package/dist/index33.js +11 -11
  131. package/dist/index34.js +2 -2
  132. package/dist/index35.js +10 -10
  133. package/dist/index36.js +8 -8
  134. package/dist/index37.js +4 -4
  135. package/dist/index38.js +6 -6
  136. package/dist/index39.js +4 -4
  137. package/dist/index40.js +1 -1
  138. package/dist/index41.js +3 -3
  139. package/dist/index43.js +1 -1
  140. package/dist/index44.js +1 -1
  141. package/dist/index45.js +3 -3
  142. package/dist/index46.js +6 -6
  143. package/dist/index47.js +7 -7
  144. package/dist/index48.js +16 -16
  145. package/dist/index49.js +2 -2
  146. package/dist/index50.js +10 -10
  147. package/dist/index52.js +14 -14
  148. package/dist/index53.js +1 -1
  149. package/dist/index54.js +17 -17
  150. package/dist/index55.js +9 -9
  151. package/dist/index56.js +10 -10
  152. package/dist/index57.js +1 -1
  153. package/dist/index58.js +3 -3
  154. package/dist/index59.js +3 -3
  155. package/dist/index60.js +7 -7
  156. package/dist/index61.js +3 -3
  157. package/dist/index62.js +3 -3
  158. package/dist/index63.js +6 -6
  159. package/dist/index64.js +3 -3
  160. package/dist/index66.js +7 -7
  161. package/dist/index67.js +1 -1
  162. package/dist/index69.js +30 -30
  163. package/dist/index70.js +5 -5
  164. package/dist/index71.js +18 -18
  165. package/dist/index72.js +24 -24
  166. package/dist/index73.js +8 -8
  167. package/dist/index74.js +2 -2
  168. package/dist/index75.js +14 -14
  169. package/dist/index76.js +3 -3
  170. package/dist/index77.js +5 -5
  171. package/dist/index78.js +4 -4
  172. package/dist/index79.js +1 -1
  173. package/dist/index80.js +1 -1
  174. package/dist/index81.js +17 -17
  175. package/dist/index82.js +5 -5
  176. package/dist/index83.js +5 -5
  177. package/dist/index86.js +11 -54
  178. package/dist/index87.js +54 -11
  179. package/dist/index88.js +87 -81
  180. package/dist/index89.js +81 -87
  181. package/dist/index95.js +1 -1
  182. package/dist/index96.js +1 -1
  183. package/dist/styles.css +1 -1
  184. package/package.json +1 -1
package/dist/index110.js CHANGED
@@ -1,65 +1,6 @@
1
- import * as i from "react";
2
- import { popupStoreSelectors as d, createInitialPopupStoreState as a } from "./index200.js";
3
- import { ReactStore as p } from "./index201.js";
4
- import { PopupTriggerMap as g } from "./index202.js";
5
- import { createSelector as n } from "./index203.js";
6
- const m = {
7
- ...d,
8
- modal: n((e) => e.modal),
9
- nested: n((e) => e.nested),
10
- nestedOpenDialogCount: n((e) => e.nestedOpenDialogCount),
11
- disablePointerDismissal: n((e) => e.disablePointerDismissal),
12
- openMethod: n((e) => e.openMethod),
13
- descriptionElementId: n((e) => e.descriptionElementId),
14
- titleElementId: n((e) => e.titleElementId),
15
- viewportElement: n((e) => e.viewportElement),
16
- role: n((e) => e.role)
17
- };
18
- class C extends p {
19
- constructor(o) {
20
- super(c(o), {
21
- popupRef: /* @__PURE__ */ i.createRef(),
22
- backdropRef: /* @__PURE__ */ i.createRef(),
23
- internalBackdropRef: /* @__PURE__ */ i.createRef(),
24
- triggerElements: new g(),
25
- onOpenChange: void 0,
26
- onOpenChangeComplete: void 0
27
- }, m);
28
- }
29
- setOpen = (o, t) => {
30
- if (t.preventUnmountOnClose = () => {
31
- this.set("preventUnmountingOnClose", !0);
32
- }, !o && t.trigger == null && this.state.activeTriggerId != null && (t.trigger = this.state.activeTriggerElement ?? void 0), this.context.onOpenChange?.(o, t), t.isCanceled)
33
- return;
34
- const s = {
35
- open: o,
36
- nativeEvent: t.event,
37
- reason: t.reason,
38
- nested: this.state.nested
39
- };
40
- this.state.floatingRootContext.context.events?.emit("openchange", s);
41
- const r = {
42
- open: o
43
- }, l = t.trigger?.id ?? null;
44
- (l || o) && (r.activeTriggerId = l, r.activeTriggerElement = t.trigger ?? null), this.update(r);
45
- };
46
- }
47
- function c(e = {}) {
48
- return {
49
- ...a(),
50
- modal: !0,
51
- disablePointerDismissal: !1,
52
- popupElement: null,
53
- viewportElement: null,
54
- descriptionElementId: void 0,
55
- titleElementId: void 0,
56
- openMethod: null,
57
- nested: !1,
58
- nestedOpenDialogCount: 0,
59
- role: "dialog",
60
- ...e
61
- };
62
- }
1
+ let t = /* @__PURE__ */ (function(e) {
2
+ return e.nestedDialogs = "--nested-dialogs", e;
3
+ })({});
63
4
  export {
64
- C as DialogStore
5
+ t as DialogPopupCssVars
65
6
  };
package/dist/index111.js CHANGED
@@ -1,40 +1,7 @@
1
- import { TransitionStatusDataAttributes as p } from "./index112.js";
2
- let r = (function(n) {
3
- return n.open = "data-open", n.closed = "data-closed", n[n.startingStyle = p.startingStyle] = "startingStyle", n[n.endingStyle = p.endingStyle] = "endingStyle", n.anchorHidden = "data-anchor-hidden", n;
4
- })({}), e = /* @__PURE__ */ (function(n) {
5
- return n.popupOpen = "data-popup-open", n.pressed = "data-pressed", n;
1
+ import { CommonPopupDataAttributes as e } from "./index105.js";
2
+ let y = (function(n) {
3
+ return n[n.open = e.open] = "open", n[n.closed = e.closed] = "closed", n[n.startingStyle = e.startingStyle] = "startingStyle", n[n.endingStyle = e.endingStyle] = "endingStyle", n.nested = "data-nested", n.nestedDialogOpen = "data-nested-dialog-open", n;
6
4
  })({});
7
- const t = {
8
- [e.popupOpen]: ""
9
- }, d = {
10
- [e.popupOpen]: "",
11
- [e.pressed]: ""
12
- }, O = {
13
- [r.open]: ""
14
- }, l = {
15
- [r.closed]: ""
16
- }, s = {
17
- [r.anchorHidden]: ""
18
- }, i = {
19
- open(n) {
20
- return n ? t : null;
21
- }
22
- }, a = {
23
- open(n) {
24
- return n ? d : null;
25
- }
26
- }, o = {
27
- open(n) {
28
- return n ? O : l;
29
- },
30
- anchorHidden(n) {
31
- return n ? s : null;
32
- }
33
- };
34
5
  export {
35
- r as CommonPopupDataAttributes,
36
- e as CommonTriggerDataAttributes,
37
- o as popupStateMapping,
38
- a as pressableTriggerOpenStateMapping,
39
- i as triggerOpenStateMapping
6
+ y as DialogPopupDataAttributes
40
7
  };
package/dist/index112.js CHANGED
@@ -1,16 +1,14 @@
1
- let n = /* @__PURE__ */ (function(t) {
2
- return t.startingStyle = "data-starting-style", t.endingStyle = "data-ending-style", t;
3
- })({});
4
- const e = {
5
- [n.startingStyle]: ""
6
- }, i = {
7
- [n.endingStyle]: ""
8
- }, r = {
9
- transitionStatus(t) {
10
- return t === "starting" ? e : t === "ending" ? i : null;
11
- }
12
- };
1
+ import r from "./index94.js";
2
+ import * as t from "react";
3
+ const e = /* @__PURE__ */ t.createContext(void 0);
4
+ process.env.NODE_ENV !== "production" && (e.displayName = "DialogPortalContext");
5
+ function a() {
6
+ const o = t.useContext(e);
7
+ if (o === void 0)
8
+ throw new Error(process.env.NODE_ENV !== "production" ? "Base UI: <Dialog.Portal> is missing." : r(26));
9
+ return o;
10
+ }
13
11
  export {
14
- n as TransitionStatusDataAttributes,
15
- r as transitionStatusMapping
12
+ e as DialogPortalContext,
13
+ a as useDialogPortalContext
16
14
  };
package/dist/index113.js CHANGED
@@ -1,35 +1,21 @@
1
- import { EMPTY_OBJECT as s } from "./index100.js";
2
- function u(e, t, n, o) {
3
- let a = !1, r = !1;
4
- const l = s;
5
- return {
6
- reason: e,
7
- event: t ?? new Event("base-ui"),
8
- cancel() {
9
- a = !0;
10
- },
11
- allowPropagation() {
12
- r = !0;
13
- },
14
- get isCanceled() {
15
- return a;
16
- },
17
- get isPropagationAllowed() {
18
- return r;
19
- },
20
- trigger: n,
21
- ...l
22
- };
23
- }
24
- function d(e, t, n) {
25
- const o = n ?? s;
26
- return {
27
- reason: e,
28
- event: t ?? new Event("base-ui"),
29
- ...o
30
- };
1
+ "use client";
2
+ import * as a from "react";
3
+ import { useStableCallback as f } from "./index127.js";
4
+ import { useValueAsRef as p } from "./index128.js";
5
+ import { useAnimationsFinished as u } from "./index205.js";
6
+ function b(i) {
7
+ const {
8
+ enabled: n = !0,
9
+ open: e,
10
+ ref: s,
11
+ onComplete: m
12
+ } = i, o = p(e), t = f(m), r = u(s, e);
13
+ a.useEffect(() => {
14
+ n && r(() => {
15
+ e === o.current && t();
16
+ });
17
+ }, [n, e, t, r, o]);
31
18
  }
32
19
  export {
33
- u as createChangeEventDetails,
34
- d as createGenericEventDetails
20
+ b as useOpenChangeComplete
35
21
  };
package/dist/index114.js CHANGED
@@ -1,21 +1,15 @@
1
- const e = "none", s = "trigger-press", n = "trigger-hover", t = "trigger-focus", o = "outside-press", c = "item-press", i = "close-press", r = "clear-press", p = "chip-remove-press", g = "input-change", a = "input-clear", l = "focus-out", u = "escape-key", v = "list-navigation", m = "cancel-open", P = "sibling-open", h = "imperative-action", d = "window-resize";
1
+ const t = "ArrowUp", n = "ArrowDown", o = "ArrowLeft", R = "ArrowRight", e = "Home", c = "End", E = /* @__PURE__ */ new Set([o, R]), A = /* @__PURE__ */ new Set([t, n]), O = /* @__PURE__ */ new Set([...E, ...A]);
2
+ [...O];
3
+ const s = /* @__PURE__ */ new Set([t, n, o, R, e, "End"]);
2
4
  export {
3
- m as cancelOpen,
4
- p as chipRemovePress,
5
- r as clearPress,
6
- i as closePress,
7
- u as escapeKey,
8
- l as focusOut,
9
- h as imperativeAction,
10
- g as inputChange,
11
- a as inputClear,
12
- c as itemPress,
13
- v as listNavigation,
14
- e as none,
15
- o as outsidePress,
16
- P as siblingOpen,
17
- t as triggerFocus,
18
- n as triggerHover,
19
- s as triggerPress,
20
- d as windowResize
5
+ n as ARROW_DOWN,
6
+ O as ARROW_KEYS,
7
+ o as ARROW_LEFT,
8
+ R as ARROW_RIGHT,
9
+ t as ARROW_UP,
10
+ s as COMPOSITE_KEYS,
11
+ c as END,
12
+ e as HOME,
13
+ E as HORIZONTAL_KEYS,
14
+ A as VERTICAL_KEYS
21
15
  };
package/dist/index115.js CHANGED
@@ -1,8 +1,299 @@
1
1
  "use client";
2
- import { useId as u } from "./index184.js";
3
- function r(e) {
4
- return u(e, "base-ui");
2
+ import * as b from "react";
3
+ import { tabbable as we, isTabbable as De, focusable as Ke } from "./index236.js";
4
+ import { isHTMLElement as q, getNodeName as He, getWindow as _e, getComputedStyle as Ue } from "./index164.js";
5
+ import { useMergedRefs as Re } from "./index95.js";
6
+ import { useValueAsRef as H } from "./index128.js";
7
+ import { useStableCallback as _ } from "./index127.js";
8
+ import { useIsoLayoutEffect as U } from "./index126.js";
9
+ import { visuallyHidden as We } from "./index123.js";
10
+ import { useTimeout as ye } from "./index148.js";
11
+ import { useAnimationFrame as $e } from "./index160.js";
12
+ import { FocusGuard as Te } from "./index195.js";
13
+ import { createChangeEventDetails as ze } from "./index107.js";
14
+ import { createAttribute as Fe } from "./index237.js";
15
+ import { enqueueFocus as te } from "./index238.js";
16
+ import { markOthers as Je } from "./index239.js";
17
+ import { usePortalContext as Qe } from "./index118.js";
18
+ import { useFloatingTree as Xe } from "./index181.js";
19
+ import { CLICK_TRIGGER_IDENTIFIER as Ye } from "./index119.js";
20
+ import { resolveRef as D } from "./index240.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 "./index151.js";
23
+ import { getTabbableOptions as re, isOutsideEvent as Le, getNextTabbable as et, getPreviousTabbable as tt } from "./index199.js";
24
+ import { getNodeAncestors as ke, getNodeChildren as Ce } from "./index241.js";
25
+ import { isVirtualClick as nt, isVirtualPointerEvent as rt, stopEvent as ot } from "./index221.js";
26
+ import { triggerHover as st, outsidePress as ut, focusOut as it } from "./index108.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
+ });
5
296
  }
6
297
  export {
7
- r as useBaseUiId
298
+ Mt as FloatingFocusManager
8
299
  };
package/dist/index116.js CHANGED
@@ -1,6 +1,7 @@
1
- let t = /* @__PURE__ */ (function(e) {
2
- return e.nestedDialogs = "--nested-dialogs", e;
3
- })({});
1
+ import { isReactVersionAtLeast as r } from "./index200.js";
2
+ function n(e) {
3
+ return r(19) ? e : e ? "true" : void 0;
4
+ }
4
5
  export {
5
- t as DialogPopupCssVars
6
+ n as inertValue
6
7
  };
package/dist/index117.js CHANGED
@@ -1,7 +1,41 @@
1
- import { CommonPopupDataAttributes as e } from "./index111.js";
2
- let y = (function(n) {
3
- return n[n.open = e.open] = "open", n[n.closed = e.closed] = "closed", n[n.startingStyle = e.startingStyle] = "startingStyle", n[n.endingStyle = e.endingStyle] = "endingStyle", n.nested = "data-nested", n.nestedDialogOpen = "data-nested-dialog-open", n;
4
- })({});
1
+ import * as i from "react";
2
+ import { jsx as a } from "react/jsx-runtime";
3
+ const c = /* @__PURE__ */ i.forwardRef(function(r, n) {
4
+ const {
5
+ cutout: e,
6
+ ...p
7
+ } = r;
8
+ let o;
9
+ if (e) {
10
+ const t = e?.getBoundingClientRect();
11
+ o = `polygon(
12
+ 0% 0%,
13
+ 100% 0%,
14
+ 100% 100%,
15
+ 0% 100%,
16
+ 0% 0%,
17
+ ${t.left}px ${t.top}px,
18
+ ${t.left}px ${t.bottom}px,
19
+ ${t.right}px ${t.bottom}px,
20
+ ${t.right}px ${t.top}px,
21
+ ${t.left}px ${t.top}px
22
+ )`;
23
+ }
24
+ return /* @__PURE__ */ a("div", {
25
+ ref: n,
26
+ role: "presentation",
27
+ "data-base-ui-inert": "",
28
+ ...p,
29
+ style: {
30
+ position: "fixed",
31
+ inset: 0,
32
+ userSelect: "none",
33
+ WebkitUserSelect: "none",
34
+ clipPath: o
35
+ }
36
+ });
37
+ });
38
+ process.env.NODE_ENV !== "production" && (c.displayName = "InternalBackdrop");
5
39
  export {
6
- y as DialogPopupDataAttributes
40
+ c as InternalBackdrop
7
41
  };