@midas-ds/components 1.0.2 → 1.0.3

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 (125) hide show
  1. package/Button-B4vMZbC6.js +182 -0
  2. package/CHANGELOG.md +10 -0
  3. package/Checkbox-DnKWanep.js +402 -0
  4. package/{Collection-B3xUVWPF.js → Collection-COLWgm24.js} +179 -152
  5. package/Dialog-Cb6toyXO.js +1951 -0
  6. package/DragAndDrop-B0T3WgjL.js +40 -0
  7. package/FocusScope-C8i7CH6y.js +513 -0
  8. package/Form-BQQs3jUk.js +238 -0
  9. package/Group-CdwXhx8Q.js +42 -0
  10. package/{Hidden-BQWDvze4.js → Hidden-DngIphiL.js} +1 -1
  11. package/Link-iAZLB3RI.js +75 -0
  12. package/ListBox-BKWkIIm6.js +474 -0
  13. package/ListKeyboardDelegate-BH-K5hyq.js +172 -0
  14. package/{PressResponder-DP8ZDNGy.js → PressResponder-Cz-TRBHO.js} +10 -10
  15. package/README.md +21 -3
  16. package/SelectionManager-8o40f7mx.js +1047 -0
  17. package/Separator-BlvmQjwz.js +49 -0
  18. package/Tag--W5TgxmK.js +728 -0
  19. package/Text-CQPW6xs7.js +15 -0
  20. package/TextField-DeK_yiK-.js +225 -0
  21. package/TextField.module-0-u4LVPp.js +143 -0
  22. package/{VisuallyHidden-B_XzVvlX.js → VisuallyHidden-CFx06Bae.js} +1 -1
  23. package/{context-ScOIq_Gu.js → context-Bnqknrce.js} +1 -1
  24. package/index-B-jHjTDC.js +120 -0
  25. package/{index-CorR1LBD.js → index-BPdc9gJ8.js} +3 -3
  26. package/index-DK9ZACEc.js +642 -0
  27. package/{index-Dl1Q-tbj.js → index-KSgQWWiy.js} +5315 -5315
  28. package/index.js +45 -47
  29. package/index15.js +1 -1
  30. package/index16.js +1 -1
  31. package/index25.js +1 -1
  32. package/index26.js +1 -1
  33. package/index3.js +2 -4
  34. package/index31.js +3 -3
  35. package/index32.js +2 -2
  36. package/index33.js +2 -2
  37. package/index34.js +1 -1
  38. package/index35.js +1 -1
  39. package/index36.js +1 -1
  40. package/index37.js +1 -1
  41. package/index38.js +1 -1
  42. package/index39.js +1 -1
  43. package/index40.js +1 -1
  44. package/index41.js +1 -1
  45. package/index42.js +1 -1
  46. package/index43.js +1 -1
  47. package/index45.js +3 -3
  48. package/index5.js +1 -1
  49. package/index50.js +1 -1
  50. package/index52.js +3 -3
  51. package/index53.js +3 -3
  52. package/index54.js +1 -1
  53. package/index55.js +4 -4
  54. package/index56.js +1 -1
  55. package/index57.js +1 -1
  56. package/index58.js +1 -1
  57. package/index59.js +3 -3
  58. package/index60.js +1 -1
  59. package/index61.js +1 -1
  60. package/index62.js +1 -1
  61. package/index63.js +4 -4
  62. package/index64.js +3 -3
  63. package/index65.js +3 -3
  64. package/index66.js +1 -1
  65. package/index67.js +3 -3
  66. package/index68.js +2 -2
  67. package/index69.js +1 -1
  68. package/index71.js +1 -1
  69. package/index76.js +5 -5
  70. package/index77.js +2 -2
  71. package/index78.js +2 -2
  72. package/index79.js +1 -1
  73. package/index80.js +226 -227
  74. package/index81.js +197 -199
  75. package/index82.js +192 -195
  76. package/index83.js +181 -183
  77. package/index84.js +52 -54
  78. package/index85.js +261 -262
  79. package/index86.js +262 -262
  80. package/index87.js +209 -211
  81. package/index88.js +436 -440
  82. package/index89.js +962 -964
  83. package/index90.js +2401 -2399
  84. package/index92.js +5 -5
  85. package/index93.js +1 -1
  86. package/index94.js +1 -1
  87. package/link/Link.d.ts +2 -2
  88. package/link-button/LinkButton.d.ts +1 -1
  89. package/package.json +7 -1
  90. package/{react.esm-D8HpDGKP.js → react.esm-sMU8Z7rL.js} +1872 -1872
  91. package/textfield/index.d.ts +0 -2
  92. package/{useControlledState-S_TYcV_c.js → useControlledState-DrAoodI6.js} +1 -1
  93. package/{useDescription-D4_zk_sA.js → useDescription-BPs7eRff.js} +1 -1
  94. package/useField-Dz62UHCP.js +67 -0
  95. package/{useFilter-BnJDBCkt.js → useFilter-ViwzkzZe.js} +1 -1
  96. package/useFocusRing-BKGhL91C.js +1297 -0
  97. package/{useFocusable-C-N9wcwm.js → useFocusable-CRSmYEQc.js} +11 -8
  98. package/{useGridSelectionCheckbox-i1rsjlC-.js → useGridSelectionCheckbox-CVEvUCJL.js} +3 -3
  99. package/useHasTabbableChild-C8y4fwiY.js +34 -0
  100. package/{useHighlightSelectionDescription-JVx2MW_e.js → useHighlightSelectionDescription-CD74uzLh.js} +19 -19
  101. package/useListState-DKnP5TB5.js +119 -0
  102. package/{useLocalizedStringFormatter-DVCAZqcL.js → useLocalizedStringFormatter-DsZ-ZWSk.js} +29 -29
  103. package/{useSingleSelectListState-CmX9_L5H.js → useSingleSelectListState-BHTLh8Ob.js} +5 -5
  104. package/Button-CCevm2s3.js +0 -183
  105. package/Checkbox-CllWDBxF.js +0 -405
  106. package/Dialog-CLTyYwkS.js +0 -1889
  107. package/DragAndDrop-OTN7La7U.js +0 -42
  108. package/FocusScope-BR0SJ-cZ.js +0 -512
  109. package/Form-DXLoQL91.js +0 -240
  110. package/Group-DPMuN3h8.js +0 -44
  111. package/Label-C18A_4Z5.js +0 -69
  112. package/Link-BU1h3K2a.js +0 -77
  113. package/ListBox-D21tdwTs.js +0 -463
  114. package/ListKeyboardDelegate-DxMjfMsI.js +0 -172
  115. package/SelectionManager-D4WtKtey.js +0 -988
  116. package/Separator-DLUHK9vv.js +0 -48
  117. package/Tag-CEd6WWSc.js +0 -725
  118. package/Text-DGLaY3HR.js +0 -17
  119. package/TextField-C_hq9WeT.js +0 -226
  120. package/TextField.module-Cwq1FAm7.js +0 -141
  121. package/index-CEg5vZQH.js +0 -132
  122. package/index-CgfokhRq.js +0 -674
  123. package/useFocusRing-D97-G3fT.js +0 -1324
  124. package/useHasTabbableChild-DeuCnGGv.js +0 -34
  125. package/useListState-DSOTbsL3.js +0 -119
@@ -0,0 +1,1951 @@
1
+ import { a as Kn } from "./Button-B4vMZbC6.js";
2
+ import { k as V, J as Le, s as On, F as _n, f as Hn, l as me, S as zn, G as we, e as ae, g as Nn, n as J, o as Un, B as fe, m as jn, b as Ve, H as Wn, C as Vn, p as Gn, t as Ie, a as ge, d as ie, A as ne, i as Ge, I as Zn, y as Yn, x as Jn, c as Xn, D as Ke } from "./useFocusRing-BKGhL91C.js";
3
+ import { a as qn } from "./RSPContexts-EOiWkKOf.js";
4
+ import g, { useEffect as Y, useState as G, useCallback as W, useRef as Z, useContext as O, createContext as _, useMemo as pe, forwardRef as ke } from "react";
5
+ import { $ as Qn, a as er, b as Ze, e as tr, f as nr, c as rr } from "./Collection-COLWgm24.js";
6
+ import { $ as or, a as lr, b as ar, c as ir, d as sr } from "./Separator-BlvmQjwz.js";
7
+ import { $ as ur } from "./Text-CQPW6xs7.js";
8
+ import { l as dr, d as cr, $ as Ye, a as fr, b as Je } from "./SelectionManager-8o40f7mx.js";
9
+ import { a as pr, $ as Xe } from "./PressResponder-Cz-TRBHO.js";
10
+ import { a as $r, $ as qe } from "./useControlledState-DrAoodI6.js";
11
+ import { $ as Qe } from "./useLocalizedStringFormatter-DsZ-ZWSk.js";
12
+ import { a as br } from "./useFocusable-CRSmYEQc.js";
13
+ import { c as mr, a as et } from "./FocusScope-C8i7CH6y.js";
14
+ import gr, { flushSync as xr } from "react-dom";
15
+ import { b as vr } from "./Hidden-DngIphiL.js";
16
+ import { $ as hr } from "./context-Bnqknrce.js";
17
+ import { b as tt } from "./ListKeyboardDelegate-BH-K5hyq.js";
18
+ import { a as yr } from "./VisuallyHidden-CFx06Bae.js";
19
+ function Pr() {
20
+ return typeof window.ResizeObserver < "u";
21
+ }
22
+ function De(t) {
23
+ const { ref: e, box: n, onResize: r } = t;
24
+ Y(() => {
25
+ let o = e == null ? void 0 : e.current;
26
+ if (o)
27
+ if (Pr()) {
28
+ const l = new window.ResizeObserver((u) => {
29
+ u.length && r();
30
+ });
31
+ return l.observe(o, {
32
+ box: n
33
+ }), () => {
34
+ o && l.unobserve(o);
35
+ };
36
+ } else
37
+ return window.addEventListener("resize", r, !1), () => {
38
+ window.removeEventListener("resize", r, !1);
39
+ };
40
+ }, [
41
+ r,
42
+ e,
43
+ n
44
+ ]);
45
+ }
46
+ function Er(t, e = !0) {
47
+ let [n, r] = G(!0), o = n && e;
48
+ return V(() => {
49
+ if (o && t.current && "getAnimations" in t.current)
50
+ for (let l of t.current.getAnimations()) l instanceof CSSTransition && l.cancel();
51
+ }, [
52
+ t,
53
+ o
54
+ ]), nt(t, o, W(() => r(!1), [])), o;
55
+ }
56
+ function Cr(t, e) {
57
+ let [n, r] = G(e ? "open" : "closed");
58
+ switch (n) {
59
+ case "open":
60
+ e || r("exiting");
61
+ break;
62
+ case "closed":
63
+ case "exiting":
64
+ e && r("open");
65
+ break;
66
+ }
67
+ let o = n === "exiting";
68
+ return nt(t, o, W(() => {
69
+ r((l) => l === "exiting" ? "closed" : l);
70
+ }, [])), o;
71
+ }
72
+ function nt(t, e, n) {
73
+ V(() => {
74
+ if (e && t.current) {
75
+ if (!("getAnimations" in t.current)) {
76
+ n();
77
+ return;
78
+ }
79
+ let r = t.current.getAnimations();
80
+ if (r.length === 0) {
81
+ n();
82
+ return;
83
+ }
84
+ let o = !1;
85
+ return Promise.all(r.map((l) => l.finished)).then(() => {
86
+ o || xr(() => {
87
+ n();
88
+ });
89
+ }).catch(() => {
90
+ }), () => {
91
+ o = !0;
92
+ };
93
+ }
94
+ }, [
95
+ t,
96
+ e,
97
+ n
98
+ ]);
99
+ }
100
+ function Ae(t, e = -1 / 0, n = 1 / 0) {
101
+ return Math.min(Math.max(t, e), n);
102
+ }
103
+ function wr(t) {
104
+ let { ref: e, onInteractOutside: n, isDisabled: r, onInteractOutsideStart: o } = t, l = Z({
105
+ isPointerDown: !1,
106
+ ignoreEmulatedMouseEvents: !1
107
+ }), u = Le((i) => {
108
+ n && ue(i, e) && (o && o(i), l.current.isPointerDown = !0);
109
+ }), a = Le((i) => {
110
+ n && n(i);
111
+ });
112
+ Y(() => {
113
+ let i = l.current;
114
+ if (r) return;
115
+ const d = e.current, s = On(d);
116
+ if (typeof PointerEvent < "u") {
117
+ let f = ($) => {
118
+ i.isPointerDown && ue($, e) && a($), i.isPointerDown = !1;
119
+ };
120
+ return s.addEventListener("pointerdown", u, !0), s.addEventListener("pointerup", f, !0), () => {
121
+ s.removeEventListener("pointerdown", u, !0), s.removeEventListener("pointerup", f, !0);
122
+ };
123
+ } else {
124
+ let f = (c) => {
125
+ i.ignoreEmulatedMouseEvents ? i.ignoreEmulatedMouseEvents = !1 : i.isPointerDown && ue(c, e) && a(c), i.isPointerDown = !1;
126
+ }, $ = (c) => {
127
+ i.ignoreEmulatedMouseEvents = !0, i.isPointerDown && ue(c, e) && a(c), i.isPointerDown = !1;
128
+ };
129
+ return s.addEventListener("mousedown", u, !0), s.addEventListener("mouseup", f, !0), s.addEventListener("touchstart", u, !0), s.addEventListener("touchend", $, !0), () => {
130
+ s.removeEventListener("mousedown", u, !0), s.removeEventListener("mouseup", f, !0), s.removeEventListener("touchstart", u, !0), s.removeEventListener("touchend", $, !0);
131
+ };
132
+ }
133
+ }, [
134
+ e,
135
+ r,
136
+ u,
137
+ a
138
+ ]);
139
+ }
140
+ function ue(t, e) {
141
+ if (t.button > 0) return !1;
142
+ if (t.target) {
143
+ const n = t.target.ownerDocument;
144
+ if (!n || !n.documentElement.contains(t.target) || t.target.closest("[data-react-aria-top-layer]")) return !1;
145
+ }
146
+ return e.current && !e.current.contains(t.target);
147
+ }
148
+ const N = {
149
+ top: "top",
150
+ bottom: "top",
151
+ left: "left",
152
+ right: "left"
153
+ }, $e = {
154
+ top: "bottom",
155
+ bottom: "top",
156
+ left: "right",
157
+ right: "left"
158
+ }, Dr = {
159
+ top: "left",
160
+ left: "top"
161
+ }, Se = {
162
+ top: "height",
163
+ left: "width"
164
+ }, rt = {
165
+ width: "totalWidth",
166
+ height: "totalHeight"
167
+ }, de = {};
168
+ let k = typeof document < "u" ? window.visualViewport : null;
169
+ function Oe(t) {
170
+ let e = 0, n = 0, r = 0, o = 0, l = 0, u = 0, a = {};
171
+ var i;
172
+ let d = ((i = k == null ? void 0 : k.scale) !== null && i !== void 0 ? i : 1) > 1;
173
+ if (t.tagName === "BODY") {
174
+ let p = document.documentElement;
175
+ r = p.clientWidth, o = p.clientHeight;
176
+ var s;
177
+ e = (s = k == null ? void 0 : k.width) !== null && s !== void 0 ? s : r;
178
+ var f;
179
+ n = (f = k == null ? void 0 : k.height) !== null && f !== void 0 ? f : o, a.top = p.scrollTop || t.scrollTop, a.left = p.scrollLeft || t.scrollLeft, k && (l = k.offsetTop, u = k.offsetLeft);
180
+ } else
181
+ ({ width: e, height: n, top: l, left: u } = te(t)), a.top = t.scrollTop, a.left = t.scrollLeft, r = e, o = n;
182
+ if (_n() && (t.tagName === "BODY" || t.tagName === "HTML") && d) {
183
+ a.top = 0, a.left = 0;
184
+ var $;
185
+ l = ($ = k == null ? void 0 : k.pageTop) !== null && $ !== void 0 ? $ : 0;
186
+ var c;
187
+ u = (c = k == null ? void 0 : k.pageLeft) !== null && c !== void 0 ? c : 0;
188
+ }
189
+ return {
190
+ width: e,
191
+ height: n,
192
+ totalWidth: r,
193
+ totalHeight: o,
194
+ scroll: a,
195
+ top: l,
196
+ left: u
197
+ };
198
+ }
199
+ function Ar(t) {
200
+ return {
201
+ top: t.scrollTop,
202
+ left: t.scrollLeft,
203
+ width: t.scrollWidth,
204
+ height: t.scrollHeight
205
+ };
206
+ }
207
+ function _e(t, e, n, r, o, l, u) {
208
+ var a;
209
+ let i = (a = o.scroll[t]) !== null && a !== void 0 ? a : 0, d = r[Se[t]], s = r.scroll[N[t]] + l, f = d + r.scroll[N[t]] - l, $ = e - i + u[t] - r[N[t]], c = e - i + n + u[t] - r[N[t]];
210
+ return $ < s ? s - $ : c > f ? Math.max(f - c, s - $) : 0;
211
+ }
212
+ function Sr(t) {
213
+ let e = window.getComputedStyle(t);
214
+ return {
215
+ top: parseInt(e.marginTop, 10) || 0,
216
+ bottom: parseInt(e.marginBottom, 10) || 0,
217
+ left: parseInt(e.marginLeft, 10) || 0,
218
+ right: parseInt(e.marginRight, 10) || 0
219
+ };
220
+ }
221
+ function He(t) {
222
+ if (de[t]) return de[t];
223
+ let [e, n] = t.split(" "), r = N[e] || "right", o = Dr[r];
224
+ N[n] || (n = "center");
225
+ let l = Se[r], u = Se[o];
226
+ return de[t] = {
227
+ placement: e,
228
+ crossPlacement: n,
229
+ axis: r,
230
+ crossAxis: o,
231
+ size: l,
232
+ crossSize: u
233
+ }, de[t];
234
+ }
235
+ function Pe(t, e, n, r, o, l, u, a, i, d) {
236
+ let { placement: s, crossPlacement: f, axis: $, crossAxis: c, size: p, crossSize: h } = r, b = {};
237
+ var x;
238
+ b[c] = (x = t[c]) !== null && x !== void 0 ? x : 0;
239
+ var v, w, F, y;
240
+ f === "center" ? b[c] += (((v = t[h]) !== null && v !== void 0 ? v : 0) - ((w = n[h]) !== null && w !== void 0 ? w : 0)) / 2 : f !== c && (b[c] += ((F = t[h]) !== null && F !== void 0 ? F : 0) - ((y = n[h]) !== null && y !== void 0 ? y : 0)), b[c] += l;
241
+ const m = t[c] - n[h] + i + d, I = t[c] + t[h] - i - d;
242
+ if (b[c] = Ae(b[c], m, I), s === $) {
243
+ const R = a ? u[p] : e[rt[p]];
244
+ b[$e[$]] = Math.floor(R - t[$] + o);
245
+ } else b[$] = Math.floor(t[$] + t[p] + o);
246
+ return b;
247
+ }
248
+ function Mr(t, e, n, r, o, l, u, a) {
249
+ const i = r ? n.height : e[rt.height];
250
+ var d;
251
+ let s = t.top != null ? n.top + t.top : n.top + (i - ((d = t.bottom) !== null && d !== void 0 ? d : 0) - u);
252
+ var f, $, c, p, h, b;
253
+ let x = a !== "top" ? (
254
+ // We want the distance between the top of the overlay to the bottom of the boundary
255
+ Math.max(0, e.height + e.top + ((f = e.scroll.top) !== null && f !== void 0 ? f : 0) - s - ((($ = o.top) !== null && $ !== void 0 ? $ : 0) + ((c = o.bottom) !== null && c !== void 0 ? c : 0) + l))
256
+ ) : Math.max(0, s + u - (e.top + ((p = e.scroll.top) !== null && p !== void 0 ? p : 0)) - (((h = o.top) !== null && h !== void 0 ? h : 0) + ((b = o.bottom) !== null && b !== void 0 ? b : 0) + l));
257
+ return Math.min(e.height - l * 2, x);
258
+ }
259
+ function ze(t, e, n, r, o, l) {
260
+ let { placement: u, axis: a, size: i } = l;
261
+ var d, s;
262
+ if (u === a) return Math.max(0, n[a] - t[a] - ((d = t.scroll[a]) !== null && d !== void 0 ? d : 0) + e[a] - ((s = r[a]) !== null && s !== void 0 ? s : 0) - r[$e[a]] - o);
263
+ var f;
264
+ return Math.max(0, t[i] + t[a] + t.scroll[a] - e[a] - n[a] - n[i] - ((f = r[a]) !== null && f !== void 0 ? f : 0) - r[$e[a]] - o);
265
+ }
266
+ function kr(t, e, n, r, o, l, u, a, i, d, s, f, $, c, p, h) {
267
+ let b = He(t), { size: x, crossAxis: v, crossSize: w, placement: F, crossPlacement: y } = b, m = Pe(e, a, n, b, s, f, d, $, p, h), I = s, R = ze(a, d, e, o, l + s, b);
268
+ if (u && r[x] > R) {
269
+ let re = He(`${$e[F]} ${y}`), he = Pe(e, a, n, re, s, f, d, $, p, h);
270
+ ze(a, d, e, o, l + s, re) > R && (b = re, m = he, I = s);
271
+ }
272
+ let A = "bottom";
273
+ b.axis === "top" ? b.placement === "top" ? A = "top" : b.placement === "bottom" && (A = "bottom") : b.crossAxis === "top" && (b.crossPlacement === "top" ? A = "bottom" : b.crossPlacement === "bottom" && (A = "top"));
274
+ let C = _e(v, m[v], n[w], a, i, l, d);
275
+ m[v] += C;
276
+ let B = Mr(m, a, d, $, o, l, n.height, A);
277
+ c && c < B && (B = c), n.height = Math.min(n.height, B), m = Pe(e, a, n, b, I, f, d, $, p, h), C = _e(v, m[v], n[w], a, i, l, d), m[v] += C;
278
+ let T = {}, P = e[v] + 0.5 * e[w] - m[v] - o[N[v]];
279
+ const S = p / 2 + h;
280
+ var U, H, L, M;
281
+ const z = N[v] === "left" ? ((U = o.left) !== null && U !== void 0 ? U : 0) + ((H = o.right) !== null && H !== void 0 ? H : 0) : ((L = o.top) !== null && L !== void 0 ? L : 0) + ((M = o.bottom) !== null && M !== void 0 ? M : 0), X = n[w] - z - p / 2 - h, q = e[v] + p / 2 - (m[v] + o[N[v]]), ve = e[v] + e[w] - p / 2 - (m[v] + o[N[v]]), se = Ae(P, q, ve);
282
+ return T[v] = Ae(se, S, X), {
283
+ position: m,
284
+ maxHeight: B,
285
+ arrowOffsetLeft: T.left,
286
+ arrowOffsetTop: T.top,
287
+ placement: b.placement
288
+ };
289
+ }
290
+ function Br(t) {
291
+ let { placement: e, targetNode: n, overlayNode: r, scrollNode: o, padding: l, shouldFlip: u, boundaryElement: a, offset: i, crossOffset: d, maxHeight: s, arrowSize: f = 0, arrowBoundaryOffset: $ = 0 } = t, c = r instanceof HTMLElement ? Tr(r) : document.documentElement, p = c === document.documentElement;
292
+ const h = window.getComputedStyle(c).position;
293
+ let b = !!h && h !== "static", x = p ? te(n) : Ne(n, c);
294
+ if (!p) {
295
+ let { marginTop: T, marginLeft: P } = window.getComputedStyle(n);
296
+ x.top += parseInt(T, 10) || 0, x.left += parseInt(P, 10) || 0;
297
+ }
298
+ let v = te(r), w = Sr(r);
299
+ var F, y;
300
+ v.width += ((F = w.left) !== null && F !== void 0 ? F : 0) + ((y = w.right) !== null && y !== void 0 ? y : 0);
301
+ var m, I;
302
+ v.height += ((m = w.top) !== null && m !== void 0 ? m : 0) + ((I = w.bottom) !== null && I !== void 0 ? I : 0);
303
+ let R = Ar(o), A = Oe(a), C = Oe(c), B = a.tagName === "BODY" ? te(c) : Ne(c, a);
304
+ return c.tagName === "HTML" && a.tagName === "BODY" && (C.scroll.top = 0, C.scroll.left = 0), kr(e, x, v, R, w, l, u, A, C, B, i, d, b, s, f, $);
305
+ }
306
+ function te(t) {
307
+ let { top: e, left: n, width: r, height: o } = t.getBoundingClientRect(), { scrollTop: l, scrollLeft: u, clientTop: a, clientLeft: i } = document.documentElement;
308
+ return {
309
+ top: e + l - a,
310
+ left: n + u - i,
311
+ width: r,
312
+ height: o
313
+ };
314
+ }
315
+ function Ne(t, e) {
316
+ let n = window.getComputedStyle(t), r;
317
+ if (n.position === "fixed") {
318
+ let { top: o, left: l, width: u, height: a } = t.getBoundingClientRect();
319
+ r = {
320
+ top: o,
321
+ left: l,
322
+ width: u,
323
+ height: a
324
+ };
325
+ } else {
326
+ r = te(t);
327
+ let o = te(e), l = window.getComputedStyle(e);
328
+ o.top += (parseInt(l.borderTopWidth, 10) || 0) - e.scrollTop, o.left += (parseInt(l.borderLeftWidth, 10) || 0) - e.scrollLeft, r.top -= o.top, r.left -= o.left;
329
+ }
330
+ return r.top -= parseInt(n.marginTop, 10) || 0, r.left -= parseInt(n.marginLeft, 10) || 0, r;
331
+ }
332
+ function Tr(t) {
333
+ let e = t.offsetParent;
334
+ if (e && e === document.body && window.getComputedStyle(e).position === "static" && !Ue(e) && (e = document.documentElement), e == null)
335
+ for (e = t.parentElement; e && !Ue(e); ) e = e.parentElement;
336
+ return e || document.documentElement;
337
+ }
338
+ function Ue(t) {
339
+ let e = window.getComputedStyle(t);
340
+ return e.transform !== "none" || /transform|perspective/.test(e.willChange) || e.filter !== "none" || e.contain === "paint" || "backdropFilter" in e && e.backdropFilter !== "none" || "WebkitBackdropFilter" in e && e.WebkitBackdropFilter !== "none";
341
+ }
342
+ const ot = /* @__PURE__ */ new WeakMap();
343
+ function Fr(t) {
344
+ let { triggerRef: e, isOpen: n, onClose: r } = t;
345
+ Y(() => {
346
+ if (!n || r === null) return;
347
+ let o = (l) => {
348
+ let u = l.target;
349
+ if (!e.current || u instanceof Node && !u.contains(e.current) || l.target instanceof HTMLInputElement || l.target instanceof HTMLTextAreaElement) return;
350
+ let a = r || ot.get(e.current);
351
+ a && a();
352
+ };
353
+ return window.addEventListener("scroll", o, !0), () => {
354
+ window.removeEventListener("scroll", o, !0);
355
+ };
356
+ }, [
357
+ n,
358
+ r,
359
+ e
360
+ ]);
361
+ }
362
+ let D = typeof document < "u" ? window.visualViewport : null;
363
+ function Rr(t) {
364
+ let { direction: e } = hr(), { arrowSize: n = 0, targetRef: r, overlayRef: o, scrollRef: l = o, placement: u = "bottom", containerPadding: a = 12, shouldFlip: i = !0, boundaryElement: d = typeof document < "u" ? document.body : null, offset: s = 0, crossOffset: f = 0, shouldUpdatePosition: $ = !0, isOpen: c = !0, onClose: p, maxHeight: h, arrowBoundaryOffset: b = 0 } = t, [x, v] = G(null), w = [
365
+ $,
366
+ u,
367
+ o.current,
368
+ r.current,
369
+ l.current,
370
+ a,
371
+ i,
372
+ d,
373
+ s,
374
+ f,
375
+ c,
376
+ e,
377
+ h,
378
+ b,
379
+ n
380
+ ], F = Z(D == null ? void 0 : D.scale);
381
+ Y(() => {
382
+ c && (F.current = D == null ? void 0 : D.scale);
383
+ }, [
384
+ c
385
+ ]);
386
+ let y = W(() => {
387
+ if ($ === !1 || !c || !o.current || !r.current || !d || (D == null ? void 0 : D.scale) !== F.current) return;
388
+ let C = null;
389
+ if (l.current && l.current.contains(document.activeElement)) {
390
+ var B;
391
+ let M = (B = document.activeElement) === null || B === void 0 ? void 0 : B.getBoundingClientRect(), z = l.current.getBoundingClientRect();
392
+ var T;
393
+ if (C = {
394
+ type: "top",
395
+ offset: ((T = M == null ? void 0 : M.top) !== null && T !== void 0 ? T : 0) - z.top
396
+ }, C.offset > z.height / 2) {
397
+ C.type = "bottom";
398
+ var P;
399
+ C.offset = ((P = M == null ? void 0 : M.bottom) !== null && P !== void 0 ? P : 0) - z.bottom;
400
+ }
401
+ }
402
+ let S = o.current;
403
+ if (!h && o.current) {
404
+ var U;
405
+ S.style.top = "0px", S.style.bottom = "";
406
+ var H;
407
+ S.style.maxHeight = ((H = (U = window.visualViewport) === null || U === void 0 ? void 0 : U.height) !== null && H !== void 0 ? H : window.innerHeight) + "px";
408
+ }
409
+ let L = Br({
410
+ placement: Ir(u, e),
411
+ overlayNode: o.current,
412
+ targetNode: r.current,
413
+ scrollNode: l.current || o.current,
414
+ padding: a,
415
+ shouldFlip: i,
416
+ boundaryElement: d,
417
+ offset: s,
418
+ crossOffset: f,
419
+ maxHeight: h,
420
+ arrowSize: n,
421
+ arrowBoundaryOffset: b
422
+ });
423
+ if (L.position) {
424
+ if (S.style.top = "", S.style.bottom = "", S.style.left = "", S.style.right = "", Object.keys(L.position).forEach((M) => S.style[M] = L.position[M] + "px"), S.style.maxHeight = L.maxHeight != null ? L.maxHeight + "px" : "", C && document.activeElement && l.current) {
425
+ let M = document.activeElement.getBoundingClientRect(), z = l.current.getBoundingClientRect(), X = M[C.type] - z[C.type];
426
+ l.current.scrollTop += X - C.offset;
427
+ }
428
+ v(L);
429
+ }
430
+ }, w);
431
+ V(y, w), Lr(y), De({
432
+ ref: o,
433
+ onResize: y
434
+ }), De({
435
+ ref: r,
436
+ onResize: y
437
+ });
438
+ let m = Z(!1);
439
+ V(() => {
440
+ let C, B = () => {
441
+ m.current = !0, clearTimeout(C), C = setTimeout(() => {
442
+ m.current = !1;
443
+ }, 500), y();
444
+ }, T = () => {
445
+ m.current && B();
446
+ };
447
+ return D == null || D.addEventListener("resize", B), D == null || D.addEventListener("scroll", T), () => {
448
+ D == null || D.removeEventListener("resize", B), D == null || D.removeEventListener("scroll", T);
449
+ };
450
+ }, [
451
+ y
452
+ ]);
453
+ let I = W(() => {
454
+ m.current || p == null || p();
455
+ }, [
456
+ p,
457
+ m
458
+ ]);
459
+ Fr({
460
+ triggerRef: r,
461
+ isOpen: c,
462
+ onClose: p && I
463
+ });
464
+ var R, A;
465
+ return {
466
+ overlayProps: {
467
+ style: {
468
+ position: "absolute",
469
+ zIndex: 1e5,
470
+ ...x == null ? void 0 : x.position,
471
+ maxHeight: (R = x == null ? void 0 : x.maxHeight) !== null && R !== void 0 ? R : "100vh"
472
+ }
473
+ },
474
+ placement: (A = x == null ? void 0 : x.placement) !== null && A !== void 0 ? A : null,
475
+ arrowProps: {
476
+ "aria-hidden": "true",
477
+ role: "presentation",
478
+ style: {
479
+ left: x == null ? void 0 : x.arrowOffsetLeft,
480
+ top: x == null ? void 0 : x.arrowOffsetTop
481
+ }
482
+ },
483
+ updatePosition: y
484
+ };
485
+ }
486
+ function Lr(t) {
487
+ V(() => (window.addEventListener("resize", t, !1), () => {
488
+ window.removeEventListener("resize", t, !1);
489
+ }), [
490
+ t
491
+ ]);
492
+ }
493
+ function Ir(t, e) {
494
+ return e === "rtl" ? t.replace("start", "right").replace("end", "left") : t.replace("start", "left").replace("end", "right");
495
+ }
496
+ const j = [];
497
+ function Kr(t, e) {
498
+ let { onClose: n, shouldCloseOnBlur: r, isOpen: o, isDismissable: l = !1, isKeyboardDismissDisabled: u = !1, shouldCloseOnInteractOutside: a } = t;
499
+ Y(() => (o && j.push(e), () => {
500
+ let p = j.indexOf(e);
501
+ p >= 0 && j.splice(p, 1);
502
+ }), [
503
+ o,
504
+ e
505
+ ]);
506
+ let i = () => {
507
+ j[j.length - 1] === e && n && n();
508
+ }, d = (p) => {
509
+ (!a || a(p.target)) && j[j.length - 1] === e && (p.stopPropagation(), p.preventDefault());
510
+ }, s = (p) => {
511
+ (!a || a(p.target)) && (j[j.length - 1] === e && (p.stopPropagation(), p.preventDefault()), i());
512
+ }, f = (p) => {
513
+ p.key === "Escape" && !u && !p.nativeEvent.isComposing && (p.stopPropagation(), p.preventDefault(), i());
514
+ };
515
+ wr({
516
+ ref: e,
517
+ onInteractOutside: l && o ? s : void 0,
518
+ onInteractOutsideStart: d
519
+ });
520
+ let { focusWithinProps: $ } = Hn({
521
+ isDisabled: !r,
522
+ onBlurWithin: (p) => {
523
+ !p.relatedTarget || mr(p.relatedTarget) || (!a || a(p.relatedTarget)) && (n == null || n());
524
+ }
525
+ }), c = (p) => {
526
+ p.target === p.currentTarget && p.preventDefault();
527
+ };
528
+ return {
529
+ overlayProps: {
530
+ onKeyDown: f,
531
+ ...$
532
+ },
533
+ underlayProps: {
534
+ onPointerDown: c
535
+ }
536
+ };
537
+ }
538
+ function lt(t, e, n) {
539
+ let { type: r } = t, { isOpen: o } = e;
540
+ Y(() => {
541
+ n && n.current && ot.set(n.current, e.close);
542
+ });
543
+ let l;
544
+ r === "menu" ? l = !0 : r === "listbox" && (l = "listbox");
545
+ let u = me();
546
+ return {
547
+ triggerProps: {
548
+ "aria-haspopup": l,
549
+ "aria-expanded": o,
550
+ "aria-controls": o ? u : void 0,
551
+ onPress: e.toggle
552
+ },
553
+ overlayProps: {
554
+ id: u
555
+ }
556
+ };
557
+ }
558
+ const Ee = typeof document < "u" && window.visualViewport, Or = /* @__PURE__ */ new Set([
559
+ "checkbox",
560
+ "radio",
561
+ "range",
562
+ "color",
563
+ "file",
564
+ "image",
565
+ "button",
566
+ "submit",
567
+ "reset"
568
+ ]);
569
+ let ce = 0, Ce;
570
+ function _r(t = {}) {
571
+ let { isDisabled: e } = t;
572
+ V(() => {
573
+ if (!e)
574
+ return ce++, ce === 1 && (zn() ? Ce = zr() : Ce = Hr()), () => {
575
+ ce--, ce === 0 && Ce();
576
+ };
577
+ }, [
578
+ e
579
+ ]);
580
+ }
581
+ function Hr() {
582
+ return we(ee(document.documentElement, "paddingRight", `${window.innerWidth - document.documentElement.clientWidth}px`), ee(document.documentElement, "overflow", "hidden"));
583
+ }
584
+ function zr() {
585
+ let t, e, n = (d) => {
586
+ t = tt(d.target, !0), !(t === document.documentElement && t === document.body) && t instanceof HTMLElement && window.getComputedStyle(t).overscrollBehavior === "auto" && (e = ee(t, "overscrollBehavior", "contain"));
587
+ }, r = (d) => {
588
+ if (!t || t === document.documentElement || t === document.body) {
589
+ d.preventDefault();
590
+ return;
591
+ }
592
+ t.scrollHeight === t.clientHeight && t.scrollWidth === t.clientWidth && d.preventDefault();
593
+ }, o = () => {
594
+ e && e();
595
+ }, l = (d) => {
596
+ let s = d.target;
597
+ Nr(s) && (a(), s.style.transform = "translateY(-2000px)", requestAnimationFrame(() => {
598
+ s.style.transform = "", Ee && (Ee.height < window.innerHeight ? requestAnimationFrame(() => {
599
+ je(s);
600
+ }) : Ee.addEventListener("resize", () => je(s), {
601
+ once: !0
602
+ }));
603
+ }));
604
+ }, u = null, a = () => {
605
+ if (u) return;
606
+ let d = () => {
607
+ window.scrollTo(0, 0);
608
+ }, s = window.pageXOffset, f = window.pageYOffset;
609
+ u = we(oe(window, "scroll", d), ee(document.documentElement, "paddingRight", `${window.innerWidth - document.documentElement.clientWidth}px`), ee(document.documentElement, "overflow", "hidden"), ee(document.body, "marginTop", `-${f}px`), () => {
610
+ window.scrollTo(s, f);
611
+ }), window.scrollTo(0, 0);
612
+ }, i = we(oe(document, "touchstart", n, {
613
+ passive: !1,
614
+ capture: !0
615
+ }), oe(document, "touchmove", r, {
616
+ passive: !1,
617
+ capture: !0
618
+ }), oe(document, "touchend", o, {
619
+ passive: !1,
620
+ capture: !0
621
+ }), oe(document, "focus", l, !0));
622
+ return () => {
623
+ e == null || e(), u == null || u(), i();
624
+ };
625
+ }
626
+ function ee(t, e, n) {
627
+ let r = t.style[e];
628
+ return t.style[e] = n, () => {
629
+ t.style[e] = r;
630
+ };
631
+ }
632
+ function oe(t, e, n, r) {
633
+ return t.addEventListener(e, n, r), () => {
634
+ t.removeEventListener(e, n, r);
635
+ };
636
+ }
637
+ function je(t) {
638
+ let e = document.scrollingElement || document.documentElement, n = t;
639
+ for (; n && n !== e; ) {
640
+ let r = tt(n);
641
+ if (r !== document.documentElement && r !== document.body && r !== n) {
642
+ let o = r.getBoundingClientRect().top, l = n.getBoundingClientRect().top;
643
+ l > o + n.clientHeight && (r.scrollTop += l - o);
644
+ }
645
+ n = r.parentElement;
646
+ }
647
+ }
648
+ function Nr(t) {
649
+ return t instanceof HTMLInputElement && !Or.has(t.type) || t instanceof HTMLTextAreaElement || t instanceof HTMLElement && t.isContentEditable;
650
+ }
651
+ var at = {};
652
+ at = {
653
+ dismiss: "تجاهل"
654
+ };
655
+ var it = {};
656
+ it = {
657
+ dismiss: "Отхвърляне"
658
+ };
659
+ var st = {};
660
+ st = {
661
+ dismiss: "Odstranit"
662
+ };
663
+ var ut = {};
664
+ ut = {
665
+ dismiss: "Luk"
666
+ };
667
+ var dt = {};
668
+ dt = {
669
+ dismiss: "Schließen"
670
+ };
671
+ var ct = {};
672
+ ct = {
673
+ dismiss: "Απόρριψη"
674
+ };
675
+ var ft = {};
676
+ ft = {
677
+ dismiss: "Dismiss"
678
+ };
679
+ var pt = {};
680
+ pt = {
681
+ dismiss: "Descartar"
682
+ };
683
+ var $t = {};
684
+ $t = {
685
+ dismiss: "Lõpeta"
686
+ };
687
+ var bt = {};
688
+ bt = {
689
+ dismiss: "Hylkää"
690
+ };
691
+ var mt = {};
692
+ mt = {
693
+ dismiss: "Rejeter"
694
+ };
695
+ var gt = {};
696
+ gt = {
697
+ dismiss: "התעלם"
698
+ };
699
+ var xt = {};
700
+ xt = {
701
+ dismiss: "Odbaci"
702
+ };
703
+ var vt = {};
704
+ vt = {
705
+ dismiss: "Elutasítás"
706
+ };
707
+ var ht = {};
708
+ ht = {
709
+ dismiss: "Ignora"
710
+ };
711
+ var yt = {};
712
+ yt = {
713
+ dismiss: "閉じる"
714
+ };
715
+ var Pt = {};
716
+ Pt = {
717
+ dismiss: "무시"
718
+ };
719
+ var Et = {};
720
+ Et = {
721
+ dismiss: "Atmesti"
722
+ };
723
+ var Ct = {};
724
+ Ct = {
725
+ dismiss: "Nerādīt"
726
+ };
727
+ var wt = {};
728
+ wt = {
729
+ dismiss: "Lukk"
730
+ };
731
+ var Dt = {};
732
+ Dt = {
733
+ dismiss: "Negeren"
734
+ };
735
+ var At = {};
736
+ At = {
737
+ dismiss: "Zignoruj"
738
+ };
739
+ var St = {};
740
+ St = {
741
+ dismiss: "Descartar"
742
+ };
743
+ var Mt = {};
744
+ Mt = {
745
+ dismiss: "Dispensar"
746
+ };
747
+ var kt = {};
748
+ kt = {
749
+ dismiss: "Revocare"
750
+ };
751
+ var Bt = {};
752
+ Bt = {
753
+ dismiss: "Пропустить"
754
+ };
755
+ var Tt = {};
756
+ Tt = {
757
+ dismiss: "Zrušiť"
758
+ };
759
+ var Ft = {};
760
+ Ft = {
761
+ dismiss: "Opusti"
762
+ };
763
+ var Rt = {};
764
+ Rt = {
765
+ dismiss: "Odbaci"
766
+ };
767
+ var Lt = {};
768
+ Lt = {
769
+ dismiss: "Avvisa"
770
+ };
771
+ var It = {};
772
+ It = {
773
+ dismiss: "Kapat"
774
+ };
775
+ var Kt = {};
776
+ Kt = {
777
+ dismiss: "Скасувати"
778
+ };
779
+ var Ot = {};
780
+ Ot = {
781
+ dismiss: "取消"
782
+ };
783
+ var _t = {};
784
+ _t = {
785
+ dismiss: "關閉"
786
+ };
787
+ var Ht = {};
788
+ Ht = {
789
+ "ar-AE": at,
790
+ "bg-BG": it,
791
+ "cs-CZ": st,
792
+ "da-DK": ut,
793
+ "de-DE": dt,
794
+ "el-GR": ct,
795
+ "en-US": ft,
796
+ "es-ES": pt,
797
+ "et-EE": $t,
798
+ "fi-FI": bt,
799
+ "fr-FR": mt,
800
+ "he-IL": gt,
801
+ "hr-HR": xt,
802
+ "hu-HU": vt,
803
+ "it-IT": ht,
804
+ "ja-JP": yt,
805
+ "ko-KR": Pt,
806
+ "lt-LT": Et,
807
+ "lv-LV": Ct,
808
+ "nb-NO": wt,
809
+ "nl-NL": Dt,
810
+ "pl-PL": At,
811
+ "pt-BR": St,
812
+ "pt-PT": Mt,
813
+ "ro-RO": kt,
814
+ "ru-RU": Bt,
815
+ "sk-SK": Tt,
816
+ "sl-SI": Ft,
817
+ "sr-SP": Rt,
818
+ "sv-SE": Lt,
819
+ "tr-TR": It,
820
+ "uk-UA": Kt,
821
+ "zh-CN": Ot,
822
+ "zh-TW": _t
823
+ };
824
+ function Ur(t) {
825
+ return t && t.__esModule ? t.default : t;
826
+ }
827
+ function We(t) {
828
+ let { onDismiss: e, ...n } = t, r = Qe(Ur(Ht), "@react-aria/overlays"), o = $r(n, r.format("dismiss")), l = () => {
829
+ e && e();
830
+ };
831
+ return /* @__PURE__ */ g.createElement(yr, null, /* @__PURE__ */ g.createElement("button", {
832
+ ...o,
833
+ tabIndex: -1,
834
+ onClick: l,
835
+ style: {
836
+ width: 1,
837
+ height: 1
838
+ }
839
+ }));
840
+ }
841
+ let le = /* @__PURE__ */ new WeakMap(), K = [];
842
+ function jr(t, e = document.body) {
843
+ let n = new Set(t), r = /* @__PURE__ */ new Set(), o = (i) => {
844
+ for (let $ of i.querySelectorAll("[data-live-announcer], [data-react-aria-top-layer]")) n.add($);
845
+ let d = ($) => {
846
+ if (n.has($) || $.parentElement && r.has($.parentElement) && $.parentElement.getAttribute("role") !== "row") return NodeFilter.FILTER_REJECT;
847
+ for (let c of n)
848
+ if ($.contains(c)) return NodeFilter.FILTER_SKIP;
849
+ return NodeFilter.FILTER_ACCEPT;
850
+ }, s = document.createTreeWalker(i, NodeFilter.SHOW_ELEMENT, {
851
+ acceptNode: d
852
+ }), f = d(i);
853
+ if (f === NodeFilter.FILTER_ACCEPT && l(i), f !== NodeFilter.FILTER_REJECT) {
854
+ let $ = s.nextNode();
855
+ for (; $ != null; )
856
+ l($), $ = s.nextNode();
857
+ }
858
+ }, l = (i) => {
859
+ var d;
860
+ let s = (d = le.get(i)) !== null && d !== void 0 ? d : 0;
861
+ i.getAttribute("aria-hidden") === "true" && s === 0 || (s === 0 && i.setAttribute("aria-hidden", "true"), r.add(i), le.set(i, s + 1));
862
+ };
863
+ K.length && K[K.length - 1].disconnect(), o(e);
864
+ let u = new MutationObserver((i) => {
865
+ for (let d of i)
866
+ if (!(d.type !== "childList" || d.addedNodes.length === 0) && ![
867
+ ...n,
868
+ ...r
869
+ ].some((s) => s.contains(d.target))) {
870
+ for (let s of d.removedNodes) s instanceof Element && (n.delete(s), r.delete(s));
871
+ for (let s of d.addedNodes)
872
+ (s instanceof HTMLElement || s instanceof SVGElement) && (s.dataset.liveAnnouncer === "true" || s.dataset.reactAriaTopLayer === "true") ? n.add(s) : s instanceof Element && o(s);
873
+ }
874
+ });
875
+ u.observe(e, {
876
+ childList: !0,
877
+ subtree: !0
878
+ });
879
+ let a = {
880
+ observe() {
881
+ u.observe(e, {
882
+ childList: !0,
883
+ subtree: !0
884
+ });
885
+ },
886
+ disconnect() {
887
+ u.disconnect();
888
+ }
889
+ };
890
+ return K.push(a), () => {
891
+ u.disconnect();
892
+ for (let i of r) {
893
+ let d = le.get(i);
894
+ d != null && (d === 1 ? (i.removeAttribute("aria-hidden"), le.delete(i)) : le.set(i, d - 1));
895
+ }
896
+ a === K[K.length - 1] ? (K.pop(), K.length && K[K.length - 1].observe()) : K.splice(K.indexOf(a), 1);
897
+ };
898
+ }
899
+ function Wr(t, e) {
900
+ let { triggerRef: n, popoverRef: r, isNonModal: o, isKeyboardDismissDisabled: l, shouldCloseOnInteractOutside: u, ...a } = t, { overlayProps: i, underlayProps: d } = Kr({
901
+ // If popover is in the top layer, it should not prevent other popovers from being dismissed.
902
+ isOpen: e.isOpen && !a["data-react-aria-top-layer"],
903
+ onClose: e.close,
904
+ shouldCloseOnBlur: !0,
905
+ isDismissable: !o,
906
+ isKeyboardDismissDisabled: l,
907
+ shouldCloseOnInteractOutside: u
908
+ }, r), { overlayProps: s, arrowProps: f, placement: $ } = Rr({
909
+ ...a,
910
+ targetRef: n,
911
+ overlayRef: r,
912
+ isOpen: e.isOpen,
913
+ onClose: o ? e.close : null
914
+ });
915
+ return _r({
916
+ isDisabled: o || !e.isOpen
917
+ }), V(() => {
918
+ if (e.isOpen && !o && r.current) return jr([
919
+ r.current
920
+ ]);
921
+ }, [
922
+ o,
923
+ e.isOpen,
924
+ r
925
+ ]), {
926
+ popoverProps: ae(i, s),
927
+ arrowProps: f,
928
+ underlayProps: d,
929
+ placement: $
930
+ };
931
+ }
932
+ const Vr = /* @__PURE__ */ _({});
933
+ function Gr() {
934
+ var t;
935
+ return (t = O(Vr)) !== null && t !== void 0 ? t : {};
936
+ }
937
+ const zt = /* @__PURE__ */ g.createContext(null);
938
+ function Zr(t) {
939
+ let e = Nn(), { portalContainer: n = e ? null : document.body, isExiting: r } = t, [o, l] = G(!1), u = pe(() => ({
940
+ contain: o,
941
+ setContain: l
942
+ }), [
943
+ o,
944
+ l
945
+ ]), { getContainer: a } = Gr();
946
+ if (!t.portalContainer && a && (n = a()), !n) return null;
947
+ let i = t.children;
948
+ return t.disableFocusManagement || (i = /* @__PURE__ */ g.createElement(et, {
949
+ restoreFocus: !0,
950
+ contain: o && !r
951
+ }, i)), i = /* @__PURE__ */ g.createElement(zt.Provider, {
952
+ value: u
953
+ }, /* @__PURE__ */ g.createElement(pr, null, i)), /* @__PURE__ */ gr.createPortal(i, n);
954
+ }
955
+ function Yr() {
956
+ let t = O(zt), e = t == null ? void 0 : t.setContain;
957
+ V(() => {
958
+ e == null || e(!0);
959
+ }, [
960
+ e
961
+ ]);
962
+ }
963
+ var Nt = {};
964
+ Nt = {
965
+ longPressMessage: "اضغط مطولاً أو اضغط على Alt + السهم لأسفل لفتح القائمة"
966
+ };
967
+ var Ut = {};
968
+ Ut = {
969
+ longPressMessage: "Натиснете продължително или натиснете Alt+ стрелка надолу, за да отворите менюто"
970
+ };
971
+ var jt = {};
972
+ jt = {
973
+ longPressMessage: "Dlouhým stiskem nebo stisknutím kláves Alt + šipka dolů otevřete nabídku"
974
+ };
975
+ var Wt = {};
976
+ Wt = {
977
+ longPressMessage: "Langt tryk eller tryk på Alt + pil ned for at åbne menuen"
978
+ };
979
+ var Vt = {};
980
+ Vt = {
981
+ longPressMessage: "Drücken Sie lange oder drücken Sie Alt + Nach-unten, um das Menü zu öffnen"
982
+ };
983
+ var Gt = {};
984
+ Gt = {
985
+ longPressMessage: "Πιέστε παρατεταμένα ή πατήστε Alt + κάτω βέλος για να ανοίξετε το μενού"
986
+ };
987
+ var Zt = {};
988
+ Zt = {
989
+ longPressMessage: "Long press or press Alt + ArrowDown to open menu"
990
+ };
991
+ var Yt = {};
992
+ Yt = {
993
+ longPressMessage: "Mantenga pulsado o pulse Alt + flecha abajo para abrir el menú"
994
+ };
995
+ var Jt = {};
996
+ Jt = {
997
+ longPressMessage: "Menüü avamiseks vajutage pikalt või vajutage klahve Alt + allanool"
998
+ };
999
+ var Xt = {};
1000
+ Xt = {
1001
+ longPressMessage: "Avaa valikko painamalla pohjassa tai näppäinyhdistelmällä Alt + Alanuoli"
1002
+ };
1003
+ var qt = {};
1004
+ qt = {
1005
+ longPressMessage: "Appuyez de manière prolongée ou appuyez sur Alt + Flèche vers le bas pour ouvrir le menu."
1006
+ };
1007
+ var Qt = {};
1008
+ Qt = {
1009
+ longPressMessage: "לחץ לחיצה ארוכה או הקש Alt + ArrowDown כדי לפתוח את התפריט"
1010
+ };
1011
+ var en = {};
1012
+ en = {
1013
+ longPressMessage: "Dugo pritisnite ili pritisnite Alt + strelicu prema dolje za otvaranje izbornika"
1014
+ };
1015
+ var tn = {};
1016
+ tn = {
1017
+ longPressMessage: "Nyomja meg hosszan, vagy nyomja meg az Alt + lefele nyíl gombot a menü megnyitásához"
1018
+ };
1019
+ var nn = {};
1020
+ nn = {
1021
+ longPressMessage: "Premere a lungo o premere Alt + Freccia giù per aprire il menu"
1022
+ };
1023
+ var rn = {};
1024
+ rn = {
1025
+ longPressMessage: "長押しまたは Alt+下矢印キーでメニューを開く"
1026
+ };
1027
+ var on = {};
1028
+ on = {
1029
+ longPressMessage: "길게 누르거나 Alt + 아래쪽 화살표를 눌러 메뉴 열기"
1030
+ };
1031
+ var ln = {};
1032
+ ln = {
1033
+ longPressMessage: "Norėdami atidaryti meniu, nuspaudę palaikykite arba paspauskite „Alt + ArrowDown“."
1034
+ };
1035
+ var an = {};
1036
+ an = {
1037
+ longPressMessage: "Lai atvērtu izvēlni, turiet nospiestu vai nospiediet taustiņu kombināciju Alt + lejupvērstā bultiņa"
1038
+ };
1039
+ var sn = {};
1040
+ sn = {
1041
+ longPressMessage: "Langt trykk eller trykk Alt + PilNed for å åpne menyen"
1042
+ };
1043
+ var un = {};
1044
+ un = {
1045
+ longPressMessage: "Druk lang op Alt + pijl-omlaag of druk op Alt om het menu te openen"
1046
+ };
1047
+ var dn = {};
1048
+ dn = {
1049
+ longPressMessage: "Naciśnij i przytrzymaj lub naciśnij klawisze Alt + Strzałka w dół, aby otworzyć menu"
1050
+ };
1051
+ var cn = {};
1052
+ cn = {
1053
+ longPressMessage: "Pressione e segure ou pressione Alt + Seta para baixo para abrir o menu"
1054
+ };
1055
+ var fn = {};
1056
+ fn = {
1057
+ longPressMessage: "Prima continuamente ou prima Alt + Seta Para Baixo para abrir o menu"
1058
+ };
1059
+ var pn = {};
1060
+ pn = {
1061
+ longPressMessage: "Apăsați lung sau apăsați pe Alt + săgeată în jos pentru a deschide meniul"
1062
+ };
1063
+ var $n = {};
1064
+ $n = {
1065
+ longPressMessage: "Нажмите и удерживайте или нажмите Alt + Стрелка вниз, чтобы открыть меню"
1066
+ };
1067
+ var bn = {};
1068
+ bn = {
1069
+ longPressMessage: "Ponuku otvoríte dlhým stlačením alebo stlačením klávesu Alt + klávesu so šípkou nadol"
1070
+ };
1071
+ var mn = {};
1072
+ mn = {
1073
+ longPressMessage: "Za odprtje menija pritisnite in držite gumb ali pritisnite Alt+puščica navzdol"
1074
+ };
1075
+ var gn = {};
1076
+ gn = {
1077
+ longPressMessage: "Dugo pritisnite ili pritisnite Alt + strelicu prema dole da otvorite meni"
1078
+ };
1079
+ var xn = {};
1080
+ xn = {
1081
+ longPressMessage: "Håll nedtryckt eller tryck på Alt + pil nedåt för att öppna menyn"
1082
+ };
1083
+ var vn = {};
1084
+ vn = {
1085
+ longPressMessage: "Menüyü açmak için uzun basın veya Alt + Aşağı Ok tuşuna basın"
1086
+ };
1087
+ var hn = {};
1088
+ hn = {
1089
+ longPressMessage: "Довго або звичайно натисніть комбінацію клавіш Alt і стрілка вниз, щоб відкрити меню"
1090
+ };
1091
+ var yn = {};
1092
+ yn = {
1093
+ longPressMessage: "长按或按 Alt + 向下方向键以打开菜单"
1094
+ };
1095
+ var Pn = {};
1096
+ Pn = {
1097
+ longPressMessage: "長按或按 Alt+向下鍵以開啟功能表"
1098
+ };
1099
+ var En = {};
1100
+ En = {
1101
+ "ar-AE": Nt,
1102
+ "bg-BG": Ut,
1103
+ "cs-CZ": jt,
1104
+ "da-DK": Wt,
1105
+ "de-DE": Vt,
1106
+ "el-GR": Gt,
1107
+ "en-US": Zt,
1108
+ "es-ES": Yt,
1109
+ "et-EE": Jt,
1110
+ "fi-FI": Xt,
1111
+ "fr-FR": qt,
1112
+ "he-IL": Qt,
1113
+ "hr-HR": en,
1114
+ "hu-HU": tn,
1115
+ "it-IT": nn,
1116
+ "ja-JP": rn,
1117
+ "ko-KR": on,
1118
+ "lt-LT": ln,
1119
+ "lv-LV": an,
1120
+ "nb-NO": sn,
1121
+ "nl-NL": un,
1122
+ "pl-PL": dn,
1123
+ "pt-BR": cn,
1124
+ "pt-PT": fn,
1125
+ "ro-RO": pn,
1126
+ "ru-RU": $n,
1127
+ "sk-SK": bn,
1128
+ "sl-SI": mn,
1129
+ "sr-SP": gn,
1130
+ "sv-SE": xn,
1131
+ "tr-TR": vn,
1132
+ "uk-UA": hn,
1133
+ "zh-CN": yn,
1134
+ "zh-TW": Pn
1135
+ };
1136
+ function Jr(t) {
1137
+ return t && t.__esModule ? t.default : t;
1138
+ }
1139
+ function Xr(t, e, n) {
1140
+ let { type: r = "menu", isDisabled: o, trigger: l = "press" } = t, u = me(), { triggerProps: a, overlayProps: i } = lt({
1141
+ type: r
1142
+ }, e, n), d = (c) => {
1143
+ if (!o && !(l === "longPress" && !c.altKey) && n && n.current)
1144
+ switch (c.key) {
1145
+ case "Enter":
1146
+ case " ":
1147
+ if (l === "longPress") return;
1148
+ case "ArrowDown":
1149
+ "continuePropagation" in c || c.stopPropagation(), c.preventDefault(), e.toggle("first");
1150
+ break;
1151
+ case "ArrowUp":
1152
+ "continuePropagation" in c || c.stopPropagation(), c.preventDefault(), e.toggle("last");
1153
+ break;
1154
+ default:
1155
+ "continuePropagation" in c && c.continuePropagation();
1156
+ }
1157
+ }, s = Qe(Jr(En), "@react-aria/menu"), { longPressProps: f } = dr({
1158
+ isDisabled: o || l !== "longPress",
1159
+ accessibilityDescription: s.format("longPressMessage"),
1160
+ onLongPressStart() {
1161
+ e.close();
1162
+ },
1163
+ onLongPress() {
1164
+ e.open("first");
1165
+ }
1166
+ }), $ = {
1167
+ onPressStart(c) {
1168
+ c.pointerType !== "touch" && c.pointerType !== "keyboard" && !o && e.open(c.pointerType === "virtual" ? "first" : null);
1169
+ },
1170
+ onPress(c) {
1171
+ c.pointerType === "touch" && !o && e.toggle();
1172
+ }
1173
+ };
1174
+ return delete a.onPress, {
1175
+ // @ts-ignore - TODO we pass out both DOMAttributes AND AriaButtonProps, but useButton will discard the longPress event handlers, it's only through PressResponder magic that this works for RSP and RAC. it does not work in aria examples
1176
+ menuTriggerProps: {
1177
+ ...a,
1178
+ ...l === "press" ? $ : f,
1179
+ id: u,
1180
+ onKeyDown: d
1181
+ },
1182
+ menuProps: {
1183
+ ...i,
1184
+ "aria-labelledby": u,
1185
+ autoFocus: e.focusStrategy || !0,
1186
+ onClose: e.close
1187
+ }
1188
+ };
1189
+ }
1190
+ const Cn = /* @__PURE__ */ new WeakMap();
1191
+ function qr(t, e, n) {
1192
+ let { shouldFocusWrap: r = !0, onKeyDown: o, onKeyUp: l, ...u } = t;
1193
+ !t["aria-label"] && !t["aria-labelledby"] && console.warn("An aria-label or aria-labelledby prop is required for accessibility.");
1194
+ let a = J(t, {
1195
+ labelable: !0
1196
+ }), { listProps: i } = or({
1197
+ ...u,
1198
+ ref: n,
1199
+ selectionManager: e.selectionManager,
1200
+ collection: e.collection,
1201
+ disabledKeys: e.disabledKeys,
1202
+ shouldFocusWrap: r,
1203
+ linkBehavior: "override"
1204
+ });
1205
+ return Cn.set(e, {
1206
+ onClose: t.onClose,
1207
+ onAction: t.onAction,
1208
+ shouldUseVirtualFocus: t.shouldUseVirtualFocus
1209
+ }), {
1210
+ menuProps: ae(a, {
1211
+ onKeyDown: o,
1212
+ onKeyUp: l
1213
+ }, {
1214
+ role: "menu",
1215
+ ...i,
1216
+ onKeyDown: (d) => {
1217
+ var s;
1218
+ (d.key !== "Escape" || t.shouldUseVirtualFocus) && ((s = i.onKeyDown) === null || s === void 0 || s.call(i, d));
1219
+ }
1220
+ })
1221
+ };
1222
+ }
1223
+ function Qr(t, e, n) {
1224
+ let { id: r, key: o, closeOnSelect: l, isVirtualized: u, "aria-haspopup": a, onPressStart: i, onPressUp: d, onPress: s, onPressChange: f, onPressEnd: $, onHoverStart: c, onHoverChange: p, onHoverEnd: h, onKeyDown: b, onKeyUp: x, onFocus: v, onFocusChange: w, onBlur: F, selectionManager: y = e.selectionManager } = t, m = !!a, I = m && t["aria-expanded"] === "true";
1225
+ var R;
1226
+ let A = (R = t.isDisabled) !== null && R !== void 0 ? R : y.isDisabled(o);
1227
+ var C;
1228
+ let B = (C = t.isSelected) !== null && C !== void 0 ? C : y.isSelected(o), T = Cn.get(e), P = e.collection.getItem(o), S = t.onClose || T.onClose, U = Un(), H = (E) => {
1229
+ var ye;
1230
+ if (!m) {
1231
+ if (!(P == null || (ye = P.props) === null || ye === void 0) && ye.onAction ? P.props.onAction() : t.onAction && t.onAction(o), T.onAction) {
1232
+ let In = T.onAction;
1233
+ In(o);
1234
+ }
1235
+ E.target instanceof HTMLAnchorElement && P && U.open(E.target, E, P.props.href, P.props.routerOptions);
1236
+ }
1237
+ }, L = "menuitem";
1238
+ m || (y.selectionMode === "single" ? L = "menuitemradio" : y.selectionMode === "multiple" && (L = "menuitemcheckbox"));
1239
+ let M = fe(), z = fe(), X = fe(), q = {
1240
+ id: r,
1241
+ "aria-disabled": A || void 0,
1242
+ role: L,
1243
+ "aria-label": t["aria-label"],
1244
+ "aria-labelledby": M,
1245
+ "aria-describedby": [
1246
+ z,
1247
+ X
1248
+ ].filter(Boolean).join(" ") || void 0,
1249
+ "aria-controls": t["aria-controls"],
1250
+ "aria-haspopup": a,
1251
+ "aria-expanded": t["aria-expanded"]
1252
+ };
1253
+ y.selectionMode !== "none" && !m && (q["aria-checked"] = B), u && (q["aria-posinset"] = P == null ? void 0 : P.index, q["aria-setsize"] = lr(e.collection));
1254
+ let ve = (E) => {
1255
+ E.pointerType === "keyboard" && H(E), i == null || i(E);
1256
+ }, se = () => {
1257
+ !m && S && (l ?? (y.selectionMode !== "multiple" || y.isLink(o))) && S();
1258
+ }, re = (E) => {
1259
+ E.pointerType === "mouse" && (H(E), se()), d == null || d(E);
1260
+ }, he = (E) => {
1261
+ E.pointerType !== "keyboard" && E.pointerType !== "mouse" && (H(E), se()), s == null || s(E);
1262
+ }, { itemProps: Q, isFocused: Mn } = cr({
1263
+ id: r,
1264
+ selectionManager: y,
1265
+ key: o,
1266
+ ref: n,
1267
+ shouldSelectOnPressUp: !0,
1268
+ allowsDifferentPressOrigin: !0,
1269
+ // Disable all handling of links in useSelectable item
1270
+ // because we handle it ourselves. The behavior of menus
1271
+ // is slightly different from other collections because
1272
+ // actions are performed on key down rather than key up.
1273
+ linkBehavior: "none",
1274
+ shouldUseVirtualFocus: T.shouldUseVirtualFocus
1275
+ }), { pressProps: kn, isPressed: Bn } = jn({
1276
+ onPressStart: ve,
1277
+ onPress: he,
1278
+ onPressUp: re,
1279
+ onPressChange: f,
1280
+ onPressEnd: $,
1281
+ isDisabled: A
1282
+ }), { hoverProps: Tn } = Ve({
1283
+ isDisabled: A,
1284
+ onHoverStart(E) {
1285
+ !Wn() && !(I && a === "dialog") && (y.setFocused(!0), y.setFocusedKey(o)), c == null || c(E);
1286
+ },
1287
+ onHoverChange: p,
1288
+ onHoverEnd: h
1289
+ }), { keyboardProps: Fn } = br({
1290
+ onKeyDown: (E) => {
1291
+ if (E.repeat) {
1292
+ E.continuePropagation();
1293
+ return;
1294
+ }
1295
+ switch (E.key) {
1296
+ case " ":
1297
+ !A && y.selectionMode === "none" && !m && l !== !1 && S && S();
1298
+ break;
1299
+ case "Enter":
1300
+ !A && l !== !1 && !m && S && S();
1301
+ break;
1302
+ default:
1303
+ m || E.continuePropagation(), b == null || b(E);
1304
+ break;
1305
+ }
1306
+ },
1307
+ onKeyUp: x
1308
+ }), { focusProps: Rn } = Vn({
1309
+ onBlur: F,
1310
+ onFocus: v,
1311
+ onFocusChange: w
1312
+ }), Re = J(P == null ? void 0 : P.props);
1313
+ delete Re.id;
1314
+ let Ln = Gn(P == null ? void 0 : P.props);
1315
+ return {
1316
+ menuItemProps: {
1317
+ ...q,
1318
+ ...ae(Re, Ln, m ? {
1319
+ onFocus: Q.onFocus,
1320
+ "data-key": Q["data-key"]
1321
+ } : Q, kn, Tn, Fn, Rn),
1322
+ // If a submenu is expanded, set the tabIndex to -1 so that shift tabbing goes out of the menu instead of the parent menu item.
1323
+ tabIndex: Q.tabIndex != null && I ? -1 : Q.tabIndex
1324
+ },
1325
+ labelProps: {
1326
+ id: M
1327
+ },
1328
+ descriptionProps: {
1329
+ id: z
1330
+ },
1331
+ keyboardShortcutProps: {
1332
+ id: X
1333
+ },
1334
+ isFocused: Mn,
1335
+ isSelected: B,
1336
+ isPressed: Bn,
1337
+ isDisabled: A
1338
+ };
1339
+ }
1340
+ function eo(t) {
1341
+ let { heading: e, "aria-label": n } = t, r = me();
1342
+ return {
1343
+ itemProps: {
1344
+ role: "presentation"
1345
+ },
1346
+ headingProps: e ? {
1347
+ // Techincally, menus cannot contain headings according to ARIA.
1348
+ // We hide the heading from assistive technology, using role="presentation",
1349
+ // and only use it as a label for the nested group.
1350
+ id: r,
1351
+ role: "presentation"
1352
+ } : {},
1353
+ groupProps: {
1354
+ role: "group",
1355
+ "aria-label": n,
1356
+ "aria-labelledby": e ? r : void 0
1357
+ }
1358
+ };
1359
+ }
1360
+ function to(t, e) {
1361
+ let { role: n = "dialog" } = t, r = fe();
1362
+ r = t["aria-label"] ? void 0 : r;
1363
+ let o = Z(!1);
1364
+ return Y(() => {
1365
+ if (e.current && !e.current.contains(document.activeElement)) {
1366
+ Ie(e.current);
1367
+ let l = setTimeout(() => {
1368
+ document.activeElement === e.current && (o.current = !0, e.current && (e.current.blur(), Ie(e.current)), o.current = !1);
1369
+ }, 500);
1370
+ return () => {
1371
+ clearTimeout(l);
1372
+ };
1373
+ }
1374
+ }, [
1375
+ e
1376
+ ]), Yr(), {
1377
+ dialogProps: {
1378
+ ...J(t, {
1379
+ labelable: !0
1380
+ }),
1381
+ role: n,
1382
+ tabIndex: -1,
1383
+ "aria-labelledby": t["aria-labelledby"] || r,
1384
+ // Prevent blur events from reaching useOverlay, which may cause
1385
+ // popovers to close. Since focus is contained within the dialog,
1386
+ // we don't want this to occur due to the above useEffect.
1387
+ onBlur: (l) => {
1388
+ o.current && l.stopPropagation();
1389
+ }
1390
+ },
1391
+ titleProps: {
1392
+ id: r
1393
+ }
1394
+ };
1395
+ }
1396
+ function wn(t) {
1397
+ let [e, n] = qe(t.isOpen, t.defaultOpen || !1, t.onOpenChange);
1398
+ const r = W(() => {
1399
+ n(!0);
1400
+ }, [
1401
+ n
1402
+ ]), o = W(() => {
1403
+ n(!1);
1404
+ }, [
1405
+ n
1406
+ ]), l = W(() => {
1407
+ n(!e);
1408
+ }, [
1409
+ n,
1410
+ e
1411
+ ]);
1412
+ return {
1413
+ isOpen: e,
1414
+ setOpen: n,
1415
+ open: r,
1416
+ close: o,
1417
+ toggle: l
1418
+ };
1419
+ }
1420
+ function Dn(t) {
1421
+ let e = wn(t), [n, r] = G(null), [o, l] = G([]), u = () => {
1422
+ l([]), e.close();
1423
+ };
1424
+ return {
1425
+ focusStrategy: n,
1426
+ ...e,
1427
+ open(d = null) {
1428
+ r(d), e.open();
1429
+ },
1430
+ toggle(d = null) {
1431
+ r(d), e.toggle();
1432
+ },
1433
+ close() {
1434
+ u();
1435
+ },
1436
+ expandedKeysStack: o,
1437
+ openSubmenu: (d, s) => {
1438
+ l((f) => s > f.length ? f : [
1439
+ ...f.slice(0, s),
1440
+ d
1441
+ ]);
1442
+ },
1443
+ closeSubmenu: (d, s) => {
1444
+ l((f) => f[s] === d ? f.slice(0, s) : f);
1445
+ }
1446
+ };
1447
+ }
1448
+ class no {
1449
+ *[Symbol.iterator]() {
1450
+ yield* this.iterable;
1451
+ }
1452
+ get size() {
1453
+ return this.keyMap.size;
1454
+ }
1455
+ getKeys() {
1456
+ return this.keyMap.keys();
1457
+ }
1458
+ getKeyBefore(e) {
1459
+ let n = this.keyMap.get(e);
1460
+ var r;
1461
+ return n && (r = n.prevKey) !== null && r !== void 0 ? r : null;
1462
+ }
1463
+ getKeyAfter(e) {
1464
+ let n = this.keyMap.get(e);
1465
+ var r;
1466
+ return n && (r = n.nextKey) !== null && r !== void 0 ? r : null;
1467
+ }
1468
+ getFirstKey() {
1469
+ return this.firstKey;
1470
+ }
1471
+ getLastKey() {
1472
+ return this.lastKey;
1473
+ }
1474
+ getItem(e) {
1475
+ var n;
1476
+ return (n = this.keyMap.get(e)) !== null && n !== void 0 ? n : null;
1477
+ }
1478
+ at(e) {
1479
+ const n = [
1480
+ ...this.getKeys()
1481
+ ];
1482
+ return this.getItem(n[e]);
1483
+ }
1484
+ constructor(e, { expandedKeys: n } = {}) {
1485
+ this.keyMap = /* @__PURE__ */ new Map(), this.firstKey = null, this.lastKey = null, this.iterable = e, n = n || /* @__PURE__ */ new Set();
1486
+ let r = (a) => {
1487
+ if (this.keyMap.set(a.key, a), a.childNodes && (a.type === "section" || n.has(a.key))) for (let i of a.childNodes) r(i);
1488
+ };
1489
+ for (let a of e) r(a);
1490
+ let o = null, l = 0;
1491
+ for (let [a, i] of this.keyMap)
1492
+ o ? (o.nextKey = a, i.prevKey = o.key) : (this.firstKey = a, i.prevKey = void 0), i.type === "item" && (i.index = l++), o = i, o.nextKey = void 0;
1493
+ var u;
1494
+ this.lastKey = (u = o == null ? void 0 : o.key) !== null && u !== void 0 ? u : null;
1495
+ }
1496
+ }
1497
+ function ro(t) {
1498
+ let { onExpandedChange: e } = t, [n, r] = qe(t.expandedKeys ? new Set(t.expandedKeys) : void 0, t.defaultExpandedKeys ? new Set(t.defaultExpandedKeys) : /* @__PURE__ */ new Set(), e), o = Ye(t), l = pe(() => t.disabledKeys ? new Set(t.disabledKeys) : /* @__PURE__ */ new Set(), [
1499
+ t.disabledKeys
1500
+ ]), u = fr(t, W((i) => new no(i, {
1501
+ expandedKeys: n
1502
+ }), [
1503
+ n
1504
+ ]), null);
1505
+ return Y(() => {
1506
+ o.focusedKey != null && !u.getItem(o.focusedKey) && o.setFocusedKey(null);
1507
+ }, [
1508
+ u,
1509
+ o.focusedKey
1510
+ ]), {
1511
+ collection: u,
1512
+ expandedKeys: n,
1513
+ disabledKeys: l,
1514
+ toggleKey: (i) => {
1515
+ r(oo(n, i));
1516
+ },
1517
+ setExpandedKeys: r,
1518
+ selectionManager: new Je(u, o)
1519
+ };
1520
+ }
1521
+ function oo(t, e) {
1522
+ let n = new Set(t);
1523
+ return n.has(e) ? n.delete(e) : n.add(e), n;
1524
+ }
1525
+ const lo = /* @__PURE__ */ _({
1526
+ placement: "bottom"
1527
+ }), Be = /* @__PURE__ */ _(null), Bo = /* @__PURE__ */ ke(function(e, n) {
1528
+ [e, n] = ge(e, n, Be);
1529
+ let r = O(xe), o = wn(e), l = e.isOpen != null || e.defaultOpen != null || !r ? o : r, u = Cr(n, l.isOpen) || e.isExiting || !1;
1530
+ if (vr()) {
1531
+ let i = e.children;
1532
+ return typeof i == "function" && (i = i({
1533
+ trigger: e.trigger || null,
1534
+ placement: "bottom",
1535
+ isEntering: !1,
1536
+ isExiting: !1,
1537
+ defaultChildren: null
1538
+ })), /* @__PURE__ */ g.createElement(g.Fragment, null, i);
1539
+ }
1540
+ return l && !l.isOpen && !u ? null : /* @__PURE__ */ g.createElement(ao, {
1541
+ ...e,
1542
+ triggerRef: e.triggerRef,
1543
+ state: l,
1544
+ popoverRef: n,
1545
+ isExiting: u
1546
+ });
1547
+ });
1548
+ function ao({ state: t, isExiting: e, UNSTABLE_portalContainer: n, ...r }) {
1549
+ let o = Z(null), [l, u] = G(0);
1550
+ V(() => {
1551
+ o.current && t.isOpen && u(o.current.getBoundingClientRect().width);
1552
+ }, [
1553
+ t.isOpen,
1554
+ o
1555
+ ]);
1556
+ var a;
1557
+ let { popoverProps: i, underlayProps: d, arrowProps: s, placement: f } = Wr({
1558
+ ...r,
1559
+ offset: (a = r.offset) !== null && a !== void 0 ? a : 8,
1560
+ arrowSize: l
1561
+ }, t), $ = r.popoverRef, c = Er($, !!f) || r.isEntering || !1, p = ie({
1562
+ ...r,
1563
+ defaultClassName: "react-aria-Popover",
1564
+ values: {
1565
+ trigger: r.trigger || null,
1566
+ placement: f,
1567
+ isEntering: c,
1568
+ isExiting: e
1569
+ }
1570
+ }), h = {
1571
+ ...i.style,
1572
+ ...p.style
1573
+ };
1574
+ return /* @__PURE__ */ g.createElement(Zr, {
1575
+ ...r,
1576
+ isExiting: e,
1577
+ portalContainer: n
1578
+ }, !r.isNonModal && t.isOpen && /* @__PURE__ */ g.createElement("div", {
1579
+ "data-testid": "underlay",
1580
+ ...d,
1581
+ style: {
1582
+ position: "fixed",
1583
+ inset: 0
1584
+ }
1585
+ }), /* @__PURE__ */ g.createElement("div", {
1586
+ ...ae(J(r), i),
1587
+ ...p,
1588
+ ref: $,
1589
+ slot: r.slot || void 0,
1590
+ style: h,
1591
+ "data-trigger": r.trigger,
1592
+ "data-placement": f,
1593
+ "data-entering": c || void 0,
1594
+ "data-exiting": e || void 0
1595
+ }, !r.isNonModal && /* @__PURE__ */ g.createElement(We, {
1596
+ onDismiss: t.close
1597
+ }), /* @__PURE__ */ g.createElement(lo.Provider, {
1598
+ value: {
1599
+ ...s,
1600
+ placement: f,
1601
+ ref: o
1602
+ }
1603
+ }, p.children), /* @__PURE__ */ g.createElement(We, {
1604
+ onDismiss: t.close
1605
+ })));
1606
+ }
1607
+ const io = /* @__PURE__ */ _({}), An = /* @__PURE__ */ _(null), Te = /* @__PURE__ */ _(null), Fe = /* @__PURE__ */ _(null), be = /* @__PURE__ */ _(null);
1608
+ function To(t) {
1609
+ let e = Dn(t), n = Z(null), { menuTriggerProps: r, menuProps: o } = Xr({
1610
+ ...t,
1611
+ type: "menu"
1612
+ }, e, n), [l, u] = G(null), a = W(() => {
1613
+ n.current && u(n.current.offsetWidth + "px");
1614
+ }, [
1615
+ n
1616
+ ]);
1617
+ De({
1618
+ ref: n,
1619
+ onResize: a
1620
+ });
1621
+ let i = Z(null);
1622
+ return /* @__PURE__ */ g.createElement(ne, {
1623
+ values: [
1624
+ [
1625
+ An,
1626
+ {
1627
+ ...o,
1628
+ ref: i
1629
+ }
1630
+ ],
1631
+ [
1632
+ xe,
1633
+ e
1634
+ ],
1635
+ [
1636
+ Fe,
1637
+ e
1638
+ ],
1639
+ [
1640
+ Be,
1641
+ {
1642
+ trigger: "MenuTrigger",
1643
+ triggerRef: n,
1644
+ scrollRef: i,
1645
+ placement: "bottom start",
1646
+ style: {
1647
+ "--trigger-width": l
1648
+ }
1649
+ }
1650
+ ]
1651
+ ]
1652
+ }, /* @__PURE__ */ g.createElement(Xe, {
1653
+ ...r,
1654
+ ref: n,
1655
+ isPressed: e.isOpen
1656
+ }, t.children));
1657
+ }
1658
+ const so = /* @__PURE__ */ _(null), Fo = /* @__PURE__ */ ke(function(e, n) {
1659
+ return [e, n] = ge(e, n, An), /* @__PURE__ */ g.createElement(Qn, {
1660
+ content: /* @__PURE__ */ g.createElement(er, e)
1661
+ }, (r) => r.size > 0 && /* @__PURE__ */ g.createElement(uo, {
1662
+ props: e,
1663
+ collection: r,
1664
+ menuRef: n
1665
+ }));
1666
+ });
1667
+ function uo({ props: t, collection: e, menuRef: n }) {
1668
+ let { filterFn: r, collectionProps: o, collectionRef: l } = O(ar) || {};
1669
+ n = Ge(pe(() => Zn(n, l !== void 0 ? l : null), [
1670
+ l,
1671
+ n
1672
+ ]));
1673
+ let u = pe(() => r ? e.filter(r) : e, [
1674
+ e,
1675
+ r
1676
+ ]), a = ro({
1677
+ ...t,
1678
+ collection: u,
1679
+ children: void 0
1680
+ }), i = O(Fe), { isVirtualized: d, CollectionRoot: s } = O(Ze), { menuProps: f } = qr({
1681
+ ...t,
1682
+ ...o,
1683
+ isVirtualized: d,
1684
+ onClose: t.onClose || (i == null ? void 0 : i.close)
1685
+ }, a, n), $ = ie({
1686
+ defaultClassName: "react-aria-Menu",
1687
+ className: t.className,
1688
+ style: t.style,
1689
+ values: {}
1690
+ });
1691
+ return /* @__PURE__ */ g.createElement(et, null, /* @__PURE__ */ g.createElement("div", {
1692
+ ...J(t),
1693
+ ...f,
1694
+ ...$,
1695
+ ref: n,
1696
+ slot: t.slot || void 0,
1697
+ onScroll: t.onScroll
1698
+ }, /* @__PURE__ */ g.createElement(ne, {
1699
+ values: [
1700
+ [
1701
+ Te,
1702
+ a
1703
+ ],
1704
+ [
1705
+ ir,
1706
+ {
1707
+ elementType: "div"
1708
+ }
1709
+ ],
1710
+ [
1711
+ tr,
1712
+ {
1713
+ name: "MenuSection",
1714
+ render: fo
1715
+ }
1716
+ ],
1717
+ [
1718
+ so,
1719
+ {
1720
+ parentMenuRef: n
1721
+ }
1722
+ ],
1723
+ [
1724
+ Me,
1725
+ null
1726
+ ],
1727
+ [
1728
+ be,
1729
+ a.selectionManager
1730
+ ]
1731
+ ]
1732
+ }, /* @__PURE__ */ g.createElement(s, {
1733
+ collection: a.collection,
1734
+ persistedKeys: nr(a.selectionManager.focusedKey),
1735
+ scrollRef: n
1736
+ }))));
1737
+ }
1738
+ class co extends Je {
1739
+ get focusedKey() {
1740
+ return this.parent.focusedKey;
1741
+ }
1742
+ get isFocused() {
1743
+ return this.parent.isFocused;
1744
+ }
1745
+ setFocusedKey(e, n) {
1746
+ return this.parent.setFocusedKey(e, n);
1747
+ }
1748
+ setFocused(e) {
1749
+ this.parent.setFocused(e);
1750
+ }
1751
+ get childFocusStrategy() {
1752
+ return this.parent.childFocusStrategy;
1753
+ }
1754
+ constructor(e, n) {
1755
+ super(e.collection, n), this.parent = e;
1756
+ }
1757
+ }
1758
+ function fo(t, e, n, r = "react-aria-MenuSection") {
1759
+ var o, l;
1760
+ let u = O(Te), { CollectionBranch: a } = O(Ze), [i, d] = Yn();
1761
+ var s;
1762
+ let { headingProps: f, groupProps: $ } = eo({
1763
+ heading: d,
1764
+ "aria-label": (s = n.props["aria-label"]) !== null && s !== void 0 ? s : void 0
1765
+ }), c = ie({
1766
+ defaultClassName: r,
1767
+ className: (o = n.props) === null || o === void 0 ? void 0 : o.className,
1768
+ style: (l = n.props) === null || l === void 0 ? void 0 : l.style,
1769
+ values: {}
1770
+ }), p = O(be), h = Ye(t), b = t.selectionMode != null ? new co(p, h) : p;
1771
+ return /* @__PURE__ */ g.createElement("section", {
1772
+ ...J(t),
1773
+ ...$,
1774
+ ...c,
1775
+ ref: e
1776
+ }, /* @__PURE__ */ g.createElement(ne, {
1777
+ values: [
1778
+ [
1779
+ sr,
1780
+ {
1781
+ ...f,
1782
+ ref: i
1783
+ }
1784
+ ],
1785
+ [
1786
+ be,
1787
+ b
1788
+ ]
1789
+ ]
1790
+ }, /* @__PURE__ */ g.createElement(a, {
1791
+ collection: u.collection,
1792
+ parent: n
1793
+ })));
1794
+ }
1795
+ const Me = /* @__PURE__ */ _(null), Ro = /* @__PURE__ */ rr("item", function(e, n, r) {
1796
+ var o;
1797
+ [e, n] = ge(e, n, Me);
1798
+ let l = (o = Jn(Me)) === null || o === void 0 ? void 0 : o.id, u = O(Te), a = Ge(n), i = O(be), { menuItemProps: d, labelProps: s, descriptionProps: f, keyboardShortcutProps: $, ...c } = Qr({
1799
+ ...e,
1800
+ id: l,
1801
+ key: r.key,
1802
+ selectionManager: i
1803
+ }, u, a), { isFocusVisible: p, focusProps: h } = Xn(), { hoverProps: b, isHovered: x } = Ve({
1804
+ isDisabled: c.isDisabled
1805
+ }), v = ie({
1806
+ ...e,
1807
+ id: void 0,
1808
+ children: r.rendered,
1809
+ defaultClassName: "react-aria-MenuItem",
1810
+ values: {
1811
+ ...c,
1812
+ isHovered: x,
1813
+ isFocusVisible: p,
1814
+ selectionMode: i.selectionMode,
1815
+ selectionBehavior: i.selectionBehavior,
1816
+ hasSubmenu: !!e["aria-haspopup"],
1817
+ isOpen: e["aria-expanded"] === "true"
1818
+ }
1819
+ }), w = e.href ? "a" : "div";
1820
+ return /* @__PURE__ */ g.createElement(w, {
1821
+ ...ae(d, h, b),
1822
+ ...v,
1823
+ ref: a,
1824
+ "data-disabled": c.isDisabled || void 0,
1825
+ "data-hovered": x || void 0,
1826
+ "data-focused": c.isFocused || void 0,
1827
+ "data-focus-visible": p || void 0,
1828
+ "data-pressed": c.isPressed || void 0,
1829
+ "data-selected": c.isSelected || void 0,
1830
+ "data-selection-mode": i.selectionMode === "none" ? void 0 : i.selectionMode,
1831
+ "data-has-submenu": !!e["aria-haspopup"] || void 0,
1832
+ "data-open": e["aria-expanded"] === "true" || void 0
1833
+ }, /* @__PURE__ */ g.createElement(ne, {
1834
+ values: [
1835
+ [
1836
+ ur,
1837
+ {
1838
+ slots: {
1839
+ label: s,
1840
+ description: f
1841
+ }
1842
+ }
1843
+ ],
1844
+ [
1845
+ io,
1846
+ $
1847
+ ]
1848
+ ]
1849
+ }, v.children));
1850
+ }), Sn = /* @__PURE__ */ _(null), xe = /* @__PURE__ */ _(null);
1851
+ function Lo(t) {
1852
+ let e = Dn(t), n = Z(null), { triggerProps: r, overlayProps: o } = lt({
1853
+ type: "dialog"
1854
+ }, e, n);
1855
+ return r.id = me(), o["aria-labelledby"] = r.id, /* @__PURE__ */ g.createElement(ne, {
1856
+ values: [
1857
+ [
1858
+ xe,
1859
+ e
1860
+ ],
1861
+ [
1862
+ Fe,
1863
+ e
1864
+ ],
1865
+ [
1866
+ Sn,
1867
+ o
1868
+ ],
1869
+ [
1870
+ Be,
1871
+ {
1872
+ trigger: "DialogTrigger",
1873
+ triggerRef: n
1874
+ }
1875
+ ]
1876
+ ]
1877
+ }, /* @__PURE__ */ g.createElement(Xe, {
1878
+ ...r,
1879
+ ref: n,
1880
+ isPressed: e.isOpen
1881
+ }, t.children));
1882
+ }
1883
+ const Io = /* @__PURE__ */ ke(function(e, n) {
1884
+ let r = e["aria-labelledby"];
1885
+ [e, n] = ge(e, n, Sn);
1886
+ let { dialogProps: o, titleProps: l } = to({
1887
+ ...e,
1888
+ // Only pass aria-labelledby from props, not context.
1889
+ // Context is used as a fallback below.
1890
+ "aria-labelledby": r
1891
+ }, n), u = O(xe);
1892
+ !o["aria-label"] && !o["aria-labelledby"] && (e["aria-labelledby"] ? o["aria-labelledby"] = e["aria-labelledby"] : console.warn('If a Dialog does not contain a <Heading slot="title">, it must have an aria-label or aria-labelledby attribute for accessibility.'));
1893
+ let a = ie({
1894
+ defaultClassName: "react-aria-Dialog",
1895
+ className: e.className,
1896
+ style: e.style,
1897
+ children: e.children,
1898
+ values: {
1899
+ close: (u == null ? void 0 : u.close) || (() => {
1900
+ })
1901
+ }
1902
+ });
1903
+ return /* @__PURE__ */ g.createElement("section", {
1904
+ ...J(e),
1905
+ ...o,
1906
+ ...a,
1907
+ ref: n,
1908
+ slot: e.slot || void 0
1909
+ }, /* @__PURE__ */ g.createElement(ne, {
1910
+ values: [
1911
+ [
1912
+ qn,
1913
+ {
1914
+ slots: {
1915
+ [Ke]: {},
1916
+ title: {
1917
+ ...l,
1918
+ level: 2
1919
+ }
1920
+ }
1921
+ }
1922
+ ],
1923
+ [
1924
+ Kn,
1925
+ {
1926
+ slots: {
1927
+ [Ke]: {},
1928
+ close: {
1929
+ onPress: () => u == null ? void 0 : u.close()
1930
+ }
1931
+ }
1932
+ }
1933
+ ]
1934
+ ]
1935
+ }, a.children));
1936
+ });
1937
+ export {
1938
+ To as $,
1939
+ Bo as a,
1940
+ Fo as b,
1941
+ Ro as c,
1942
+ Lo as d,
1943
+ Xr as e,
1944
+ wn as f,
1945
+ De as g,
1946
+ xe as h,
1947
+ Be as i,
1948
+ jr as j,
1949
+ Sn as k,
1950
+ Io as l
1951
+ };