jcicl 0.0.0

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 (59) hide show
  1. package/.chunks/AppBar.js +359 -0
  2. package/.chunks/AppContainer.js +71 -0
  3. package/.chunks/AppHeader.js +31 -0
  4. package/.chunks/Avatar.js +38 -0
  5. package/.chunks/AvatarWithImage.js +36 -0
  6. package/.chunks/BasicPage.js +31 -0
  7. package/.chunks/Button.js +486 -0
  8. package/.chunks/ButtonBase.js +874 -0
  9. package/.chunks/CompactNav.js +70 -0
  10. package/.chunks/Divider.js +311 -0
  11. package/.chunks/Flex.js +21 -0
  12. package/.chunks/Grid.js +18 -0
  13. package/.chunks/Input.js +4392 -0
  14. package/.chunks/Menu.js +3160 -0
  15. package/.chunks/Nav.js +2138 -0
  16. package/.chunks/TransitionGroupContext.js +342 -0
  17. package/.chunks/createSimplePaletteValueFilter.js +17 -0
  18. package/.chunks/createSvgIcon.js +249 -0
  19. package/.chunks/emotion-styled.browser.esm.js +1032 -0
  20. package/.chunks/jocologo.js +4 -0
  21. package/.chunks/memoTheme.js +15 -0
  22. package/.chunks/theme.js +3314 -0
  23. package/base/Avatar/Avatar/index.d.ts +1 -0
  24. package/base/Avatar/Avatar/index.js +4 -0
  25. package/base/Avatar/AvatarWithImage/index.d.ts +1 -0
  26. package/base/Avatar/AvatarWithImage/index.js +4 -0
  27. package/base/Avatar/index.d.ts +2 -0
  28. package/base/Avatar/index.js +6 -0
  29. package/base/Button/index.d.ts +1 -0
  30. package/base/Button/index.js +4 -0
  31. package/base/Divider/index.d.ts +1 -0
  32. package/base/Divider/index.js +4 -0
  33. package/base/Flex/index.d.ts +1 -0
  34. package/base/Flex/index.js +4 -0
  35. package/base/Grid/index.d.ts +1 -0
  36. package/base/Grid/index.js +4 -0
  37. package/base/Input/index.d.ts +1 -0
  38. package/base/Input/index.js +4 -0
  39. package/base/index.d.ts +7 -0
  40. package/base/index.js +16 -0
  41. package/index.d.ts +3 -0
  42. package/index.js +22 -0
  43. package/package.json +82 -0
  44. package/supercomposite/AppBar/index.d.ts +1 -0
  45. package/supercomposite/AppBar/index.js +4 -0
  46. package/supercomposite/AppHeader/index.d.ts +1 -0
  47. package/supercomposite/AppHeader/index.js +4 -0
  48. package/supercomposite/CompactNav/index.d.ts +1 -0
  49. package/supercomposite/CompactNav/index.js +4 -0
  50. package/supercomposite/Nav/index.d.ts +2 -0
  51. package/supercomposite/Nav/index.js +4 -0
  52. package/supercomposite/index.d.ts +3 -0
  53. package/supercomposite/index.js +8 -0
  54. package/templates/AppContainer/index.d.ts +1 -0
  55. package/templates/AppContainer/index.js +4 -0
  56. package/templates/BasicPage/index.d.ts +1 -0
  57. package/templates/BasicPage/index.js +4 -0
  58. package/templates/index.d.ts +2 -0
  59. package/templates/index.js +6 -0
@@ -0,0 +1,3160 @@
1
+ import * as p from "react";
2
+ import ve from "react";
3
+ import { jsx as I, jsxs as $e } from "react/jsx-runtime";
4
+ import { P as e, c as W, n as Ft, o as At, q as Vt, T as it, i as at, g as ae, a as le, s as G, u as ce, b as ue, m as lt, d as We, v as ze, r as _t } from "./theme.js";
5
+ import { f as Ce, c as X, G as $t, _ as Ut, a as qt, T as ct, g as Fe, b as Ht, s as Ge, d as Xe, r as Bt, e as Kt } from "./TransitionGroupContext.js";
6
+ import { m as ut } from "./memoTheme.js";
7
+ import { T as Wt } from "./emotion-styled.browser.esm.js";
8
+ import * as zt from "react-dom";
9
+ import Te from "react-dom";
10
+ function Gt(t) {
11
+ const {
12
+ prototype: n = {}
13
+ } = t;
14
+ return !!n.isReactComponent;
15
+ }
16
+ function pt(t, n, o, r, i) {
17
+ const s = t[n], a = i || n;
18
+ if (s == null || // When server-side rendering React doesn't warn either.
19
+ // This is not an accurate check for SSR.
20
+ // This is only in place for Emotion compat.
21
+ // TODO: Revisit once https://github.com/facebook/react/issues/20047 is resolved.
22
+ typeof window > "u")
23
+ return null;
24
+ let l;
25
+ const c = s.type;
26
+ return typeof c == "function" && !Gt(c) && (l = "Did you accidentally use a plain function component for an element instead?"), l !== void 0 ? new Error(`Invalid ${r} \`${a}\` supplied to \`${o}\`. Expected an element that can hold a ref. ${l} For more information see https://mui.com/r/caveat-with-refs-guide`) : null;
27
+ }
28
+ const ye = Ce(e.element, pt);
29
+ ye.isRequired = Ce(e.element.isRequired, pt);
30
+ const Xt = "exact-prop: ​";
31
+ function dt(t) {
32
+ return process.env.NODE_ENV === "production" ? t : {
33
+ ...t,
34
+ [Xt]: (n) => {
35
+ const o = Object.keys(n).filter((r) => !t.hasOwnProperty(r));
36
+ return o.length > 0 ? new Error(`The following props are not supported: ${o.map((r) => `\`${r}\``).join(", ")}. Please remove them.`) : null;
37
+ }
38
+ };
39
+ }
40
+ function Ee(t, n, o, r, i) {
41
+ if (process.env.NODE_ENV === "production")
42
+ return null;
43
+ const s = t[n], a = i || n;
44
+ return s == null ? null : s && s.nodeType !== 1 ? new Error(`Invalid ${r} \`${a}\` supplied to \`${o}\`. Expected an HTMLElement.`) : null;
45
+ }
46
+ function Ye(...t) {
47
+ return t.reduce((n, o) => o == null ? n : function(...i) {
48
+ n.apply(this, i), o.apply(this, i);
49
+ }, () => {
50
+ });
51
+ }
52
+ function Yt(t, n = 166) {
53
+ let o;
54
+ function r(...i) {
55
+ const s = () => {
56
+ t.apply(this, i);
57
+ };
58
+ clearTimeout(o), o = setTimeout(s, n);
59
+ }
60
+ return r.clear = () => {
61
+ clearTimeout(o);
62
+ }, r;
63
+ }
64
+ function io(t, n) {
65
+ var o, r, i;
66
+ return /* @__PURE__ */ p.isValidElement(t) && n.indexOf(
67
+ // For server components `muiName` is avaialble in element.type._payload.value.muiName
68
+ // relevant info - https://github.com/facebook/react/blob/2807d781a08db8e9873687fccc25c0f12b4fb3d4/packages/react/src/ReactLazy.js#L45
69
+ // eslint-disable-next-line no-underscore-dangle
70
+ t.type.muiName ?? ((i = (r = (o = t.type) == null ? void 0 : o._payload) == null ? void 0 : r.value) == null ? void 0 : i.muiName)
71
+ ) !== -1;
72
+ }
73
+ function z(t) {
74
+ return t && t.ownerDocument || document;
75
+ }
76
+ function te(t) {
77
+ return z(t).defaultView || window;
78
+ }
79
+ function ft(t = window) {
80
+ const n = t.document.documentElement.clientWidth;
81
+ return t.innerWidth - n;
82
+ }
83
+ function Zt(t) {
84
+ const n = typeof t;
85
+ switch (n) {
86
+ case "number":
87
+ return Number.isNaN(t) ? "NaN" : Number.isFinite(t) ? t !== Math.floor(t) ? "float" : "number" : "Infinity";
88
+ case "object":
89
+ return t === null ? "null" : t.constructor.name;
90
+ default:
91
+ return n;
92
+ }
93
+ }
94
+ function ht(t, n, o, r) {
95
+ const i = t[n];
96
+ if (i == null || !Number.isInteger(i)) {
97
+ const s = Zt(i);
98
+ return new RangeError(`Invalid ${r} \`${n}\` of type \`${s}\` supplied to \`${o}\`, expected \`integer\`.`);
99
+ }
100
+ return null;
101
+ }
102
+ function mt(t, n, ...o) {
103
+ return t[n] === void 0 ? null : ht(t, n, ...o);
104
+ }
105
+ function Ae() {
106
+ return null;
107
+ }
108
+ mt.isRequired = ht;
109
+ Ae.isRequired = Ae;
110
+ const bt = process.env.NODE_ENV === "production" ? Ae : mt;
111
+ function Jt(t) {
112
+ return typeof t == "string";
113
+ }
114
+ function Et(t, n, o) {
115
+ return t === void 0 || Jt(t) ? n : {
116
+ ...n,
117
+ ownerState: {
118
+ ...n.ownerState,
119
+ ...o
120
+ }
121
+ };
122
+ }
123
+ function yt(t, n = []) {
124
+ if (t === void 0)
125
+ return {};
126
+ const o = {};
127
+ return Object.keys(t).filter((r) => r.match(/^on[A-Z]/) && typeof t[r] == "function" && !n.includes(r)).forEach((r) => {
128
+ o[r] = t[r];
129
+ }), o;
130
+ }
131
+ function Ze(t) {
132
+ if (t === void 0)
133
+ return {};
134
+ const n = {};
135
+ return Object.keys(t).filter((o) => !(o.match(/^on[A-Z]/) && typeof t[o] == "function")).forEach((o) => {
136
+ n[o] = t[o];
137
+ }), n;
138
+ }
139
+ function gt(t) {
140
+ const {
141
+ getSlotProps: n,
142
+ additionalProps: o,
143
+ externalSlotProps: r,
144
+ externalForwardedProps: i,
145
+ className: s
146
+ } = t;
147
+ if (!n) {
148
+ const f = W(o == null ? void 0 : o.className, s, i == null ? void 0 : i.className, r == null ? void 0 : r.className), b = {
149
+ ...o == null ? void 0 : o.style,
150
+ ...i == null ? void 0 : i.style,
151
+ ...r == null ? void 0 : r.style
152
+ }, O = {
153
+ ...o,
154
+ ...i,
155
+ ...r
156
+ };
157
+ return f.length > 0 && (O.className = f), Object.keys(b).length > 0 && (O.style = b), {
158
+ props: O,
159
+ internalRef: void 0
160
+ };
161
+ }
162
+ const a = yt({
163
+ ...i,
164
+ ...r
165
+ }), l = Ze(r), c = Ze(i), d = n(a), y = W(d == null ? void 0 : d.className, o == null ? void 0 : o.className, s, i == null ? void 0 : i.className, r == null ? void 0 : r.className), g = {
166
+ ...d == null ? void 0 : d.style,
167
+ ...o == null ? void 0 : o.style,
168
+ ...i == null ? void 0 : i.style,
169
+ ...r == null ? void 0 : r.style
170
+ }, x = {
171
+ ...d,
172
+ ...o,
173
+ ...c,
174
+ ...l
175
+ };
176
+ return y.length > 0 && (x.className = y), Object.keys(g).length > 0 && (x.style = g), {
177
+ props: x,
178
+ internalRef: d.ref
179
+ };
180
+ }
181
+ function vt(t, n, o) {
182
+ return typeof t == "function" ? t(n, o) : t;
183
+ }
184
+ function Je(t) {
185
+ var g;
186
+ const {
187
+ elementType: n,
188
+ externalSlotProps: o,
189
+ ownerState: r,
190
+ skipResolvingSlotProps: i = !1,
191
+ ...s
192
+ } = t, a = i ? {} : vt(o, r), {
193
+ props: l,
194
+ internalRef: c
195
+ } = gt({
196
+ ...s,
197
+ externalSlotProps: a
198
+ }), d = X(c, a == null ? void 0 : a.ref, (g = t.additionalProps) == null ? void 0 : g.ref);
199
+ return Et(n, {
200
+ ...l,
201
+ ref: d
202
+ }, r);
203
+ }
204
+ function we(t) {
205
+ var n;
206
+ return parseInt(p.version, 10) >= 19 ? ((n = t == null ? void 0 : t.props) == null ? void 0 : n.ref) || null : (t == null ? void 0 : t.ref) || null;
207
+ }
208
+ const Qt = (t) => {
209
+ var r;
210
+ const n = {
211
+ systemProps: {},
212
+ otherProps: {}
213
+ }, o = ((r = t == null ? void 0 : t.theme) == null ? void 0 : r.unstable_sxConfig) ?? Ft;
214
+ return Object.keys(t).forEach((i) => {
215
+ o[i] ? n.systemProps[i] = t[i] : n.otherProps[i] = t[i];
216
+ }), n;
217
+ };
218
+ function en(t) {
219
+ const {
220
+ sx: n,
221
+ ...o
222
+ } = t, {
223
+ systemProps: r,
224
+ otherProps: i
225
+ } = Qt(o);
226
+ let s;
227
+ return Array.isArray(n) ? s = [r, ...n] : typeof n == "function" ? s = (...a) => {
228
+ const l = n(...a);
229
+ return At(l) ? {
230
+ ...r,
231
+ ...l
232
+ } : r;
233
+ } : s = {
234
+ ...r,
235
+ ...n
236
+ }, {
237
+ ...i,
238
+ sx: s
239
+ };
240
+ }
241
+ function tn(t) {
242
+ return t == null || Object.keys(t).length === 0;
243
+ }
244
+ function Tt(t) {
245
+ const {
246
+ styles: n,
247
+ defaultTheme: o = {}
248
+ } = t;
249
+ return /* @__PURE__ */ I($t, {
250
+ styles: typeof n == "function" ? (i) => n(tn(i) ? o : i) : n
251
+ });
252
+ }
253
+ process.env.NODE_ENV !== "production" && (Tt.propTypes = {
254
+ defaultTheme: e.object,
255
+ styles: e.oneOfType([e.array, e.string, e.object, e.func])
256
+ });
257
+ function nn(t) {
258
+ return Object.keys(t).length === 0;
259
+ }
260
+ function on(t = null) {
261
+ const n = p.useContext(Wt);
262
+ return !n || nn(n) ? t : n;
263
+ }
264
+ const rn = Vt();
265
+ function xt(t = rn) {
266
+ return on(t);
267
+ }
268
+ function Rt({
269
+ styles: t,
270
+ themeId: n,
271
+ defaultTheme: o = {}
272
+ }) {
273
+ const r = xt(o), i = typeof t == "function" ? t(n && r[n] || r) : t;
274
+ return /* @__PURE__ */ I(Tt, {
275
+ styles: i
276
+ });
277
+ }
278
+ process.env.NODE_ENV !== "production" && (Rt.propTypes = {
279
+ // ┌────────────────────────────── Warning ──────────────────────────────┐
280
+ // │ These PropTypes are generated from the TypeScript type definitions. │
281
+ // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │
282
+ // └─────────────────────────────────────────────────────────────────────┘
283
+ /**
284
+ * @ignore
285
+ */
286
+ defaultTheme: e.object,
287
+ /**
288
+ * @ignore
289
+ */
290
+ styles: e.oneOfType([e.array, e.func, e.number, e.object, e.string, e.bool]),
291
+ /**
292
+ * @ignore
293
+ */
294
+ themeId: e.string
295
+ });
296
+ const sn = /* @__PURE__ */ p.createContext();
297
+ process.env.NODE_ENV !== "production" && (e.node, e.bool);
298
+ const an = () => p.useContext(sn) ?? !1;
299
+ function Ue() {
300
+ const t = xt(at);
301
+ return process.env.NODE_ENV !== "production" && p.useDebugValue(t), t[it] || t;
302
+ }
303
+ function Pt(t) {
304
+ return /* @__PURE__ */ I(Rt, {
305
+ ...t,
306
+ defaultTheme: at,
307
+ themeId: it
308
+ });
309
+ }
310
+ process.env.NODE_ENV !== "production" && (Pt.propTypes = {
311
+ // ┌────────────────────────────── Warning ──────────────────────────────┐
312
+ // │ These PropTypes are generated from the TypeScript type definitions. │
313
+ // │ To update them, edit the d.ts file and run `pnpm proptypes`. │
314
+ // └─────────────────────────────────────────────────────────────────────┘
315
+ /**
316
+ * The styles you want to apply globally.
317
+ */
318
+ styles: e.oneOfType([e.array, e.func, e.number, e.object, e.string, e.bool])
319
+ });
320
+ function ao(t) {
321
+ return function(o) {
322
+ return (
323
+ // Pigment CSS `globalCss` support callback with theme inside an object but `GlobalStyles` support theme as a callback value.
324
+ /* @__PURE__ */ I(Pt, {
325
+ styles: typeof t == "function" ? (r) => t({
326
+ theme: r,
327
+ ...o
328
+ }) : t
329
+ })
330
+ );
331
+ };
332
+ }
333
+ function lo() {
334
+ return en;
335
+ }
336
+ const Qe = {
337
+ disabled: !1
338
+ };
339
+ var ln = process.env.NODE_ENV !== "production" ? e.oneOfType([e.number, e.shape({
340
+ enter: e.number,
341
+ exit: e.number,
342
+ appear: e.number
343
+ }).isRequired]) : null;
344
+ process.env.NODE_ENV !== "production" && e.oneOfType([e.string, e.shape({
345
+ enter: e.string,
346
+ exit: e.string,
347
+ active: e.string
348
+ }), e.shape({
349
+ enter: e.string,
350
+ enterDone: e.string,
351
+ enterActive: e.string,
352
+ exit: e.string,
353
+ exitDone: e.string,
354
+ exitActive: e.string
355
+ })]);
356
+ var cn = function(n) {
357
+ return n.scrollTop;
358
+ }, me = "unmounted", Q = "exited", ee = "entering", se = "entered", Ve = "exiting", Y = /* @__PURE__ */ function(t) {
359
+ Ut(n, t);
360
+ function n(r, i) {
361
+ var s;
362
+ s = t.call(this, r, i) || this;
363
+ var a = i, l = a && !a.isMounting ? r.enter : r.appear, c;
364
+ return s.appearStatus = null, r.in ? l ? (c = Q, s.appearStatus = ee) : c = se : r.unmountOnExit || r.mountOnEnter ? c = me : c = Q, s.state = {
365
+ status: c
366
+ }, s.nextCallback = null, s;
367
+ }
368
+ n.getDerivedStateFromProps = function(i, s) {
369
+ var a = i.in;
370
+ return a && s.status === me ? {
371
+ status: Q
372
+ } : null;
373
+ };
374
+ var o = n.prototype;
375
+ return o.componentDidMount = function() {
376
+ this.updateStatus(!0, this.appearStatus);
377
+ }, o.componentDidUpdate = function(i) {
378
+ var s = null;
379
+ if (i !== this.props) {
380
+ var a = this.state.status;
381
+ this.props.in ? a !== ee && a !== se && (s = ee) : (a === ee || a === se) && (s = Ve);
382
+ }
383
+ this.updateStatus(!1, s);
384
+ }, o.componentWillUnmount = function() {
385
+ this.cancelNextCallback();
386
+ }, o.getTimeouts = function() {
387
+ var i = this.props.timeout, s, a, l;
388
+ return s = a = l = i, i != null && typeof i != "number" && (s = i.exit, a = i.enter, l = i.appear !== void 0 ? i.appear : a), {
389
+ exit: s,
390
+ enter: a,
391
+ appear: l
392
+ };
393
+ }, o.updateStatus = function(i, s) {
394
+ if (i === void 0 && (i = !1), s !== null)
395
+ if (this.cancelNextCallback(), s === ee) {
396
+ if (this.props.unmountOnExit || this.props.mountOnEnter) {
397
+ var a = this.props.nodeRef ? this.props.nodeRef.current : Te.findDOMNode(this);
398
+ a && cn(a);
399
+ }
400
+ this.performEnter(i);
401
+ } else
402
+ this.performExit();
403
+ else this.props.unmountOnExit && this.state.status === Q && this.setState({
404
+ status: me
405
+ });
406
+ }, o.performEnter = function(i) {
407
+ var s = this, a = this.props.enter, l = this.context ? this.context.isMounting : i, c = this.props.nodeRef ? [l] : [Te.findDOMNode(this), l], d = c[0], y = c[1], g = this.getTimeouts(), x = l ? g.appear : g.enter;
408
+ if (!i && !a || Qe.disabled) {
409
+ this.safeSetState({
410
+ status: se
411
+ }, function() {
412
+ s.props.onEntered(d);
413
+ });
414
+ return;
415
+ }
416
+ this.props.onEnter(d, y), this.safeSetState({
417
+ status: ee
418
+ }, function() {
419
+ s.props.onEntering(d, y), s.onTransitionEnd(x, function() {
420
+ s.safeSetState({
421
+ status: se
422
+ }, function() {
423
+ s.props.onEntered(d, y);
424
+ });
425
+ });
426
+ });
427
+ }, o.performExit = function() {
428
+ var i = this, s = this.props.exit, a = this.getTimeouts(), l = this.props.nodeRef ? void 0 : Te.findDOMNode(this);
429
+ if (!s || Qe.disabled) {
430
+ this.safeSetState({
431
+ status: Q
432
+ }, function() {
433
+ i.props.onExited(l);
434
+ });
435
+ return;
436
+ }
437
+ this.props.onExit(l), this.safeSetState({
438
+ status: Ve
439
+ }, function() {
440
+ i.props.onExiting(l), i.onTransitionEnd(a.exit, function() {
441
+ i.safeSetState({
442
+ status: Q
443
+ }, function() {
444
+ i.props.onExited(l);
445
+ });
446
+ });
447
+ });
448
+ }, o.cancelNextCallback = function() {
449
+ this.nextCallback !== null && (this.nextCallback.cancel(), this.nextCallback = null);
450
+ }, o.safeSetState = function(i, s) {
451
+ s = this.setNextCallback(s), this.setState(i, s);
452
+ }, o.setNextCallback = function(i) {
453
+ var s = this, a = !0;
454
+ return this.nextCallback = function(l) {
455
+ a && (a = !1, s.nextCallback = null, i(l));
456
+ }, this.nextCallback.cancel = function() {
457
+ a = !1;
458
+ }, this.nextCallback;
459
+ }, o.onTransitionEnd = function(i, s) {
460
+ this.setNextCallback(s);
461
+ var a = this.props.nodeRef ? this.props.nodeRef.current : Te.findDOMNode(this), l = i == null && !this.props.addEndListener;
462
+ if (!a || l) {
463
+ setTimeout(this.nextCallback, 0);
464
+ return;
465
+ }
466
+ if (this.props.addEndListener) {
467
+ var c = this.props.nodeRef ? [this.nextCallback] : [a, this.nextCallback], d = c[0], y = c[1];
468
+ this.props.addEndListener(d, y);
469
+ }
470
+ i != null && setTimeout(this.nextCallback, i);
471
+ }, o.render = function() {
472
+ var i = this.state.status;
473
+ if (i === me)
474
+ return null;
475
+ var s = this.props, a = s.children;
476
+ s.in, s.mountOnEnter, s.unmountOnExit, s.appear, s.enter, s.exit, s.timeout, s.addEndListener, s.onEnter, s.onEntering, s.onEntered, s.onExit, s.onExiting, s.onExited, s.nodeRef;
477
+ var l = qt(s, ["children", "in", "mountOnEnter", "unmountOnExit", "appear", "enter", "exit", "timeout", "addEndListener", "onEnter", "onEntering", "onEntered", "onExit", "onExiting", "onExited", "nodeRef"]);
478
+ return (
479
+ // allows for nested Transitions
480
+ /* @__PURE__ */ ve.createElement(ct.Provider, {
481
+ value: null
482
+ }, typeof a == "function" ? a(i, l) : ve.cloneElement(ve.Children.only(a), l))
483
+ );
484
+ }, n;
485
+ }(ve.Component);
486
+ Y.contextType = ct;
487
+ Y.propTypes = process.env.NODE_ENV !== "production" ? {
488
+ /**
489
+ * A React reference to DOM element that need to transition:
490
+ * https://stackoverflow.com/a/51127130/4671932
491
+ *
492
+ * - When `nodeRef` prop is used, `node` is not passed to callback functions
493
+ * (e.g. `onEnter`) because user already has direct access to the node.
494
+ * - When changing `key` prop of `Transition` in a `TransitionGroup` a new
495
+ * `nodeRef` need to be provided to `Transition` with changed `key` prop
496
+ * (see
497
+ * [test/CSSTransition-test.js](https://github.com/reactjs/react-transition-group/blob/13435f897b3ab71f6e19d724f145596f5910581c/test/CSSTransition-test.js#L362-L437)).
498
+ */
499
+ nodeRef: e.shape({
500
+ current: typeof Element > "u" ? e.any : function(t, n, o, r, i, s) {
501
+ var a = t[n];
502
+ return e.instanceOf(a && "ownerDocument" in a ? a.ownerDocument.defaultView.Element : Element)(t, n, o, r, i, s);
503
+ }
504
+ }),
505
+ /**
506
+ * A `function` child can be used instead of a React element. This function is
507
+ * called with the current transition status (`'entering'`, `'entered'`,
508
+ * `'exiting'`, `'exited'`), which can be used to apply context
509
+ * specific props to a component.
510
+ *
511
+ * ```jsx
512
+ * <Transition in={this.state.in} timeout={150}>
513
+ * {state => (
514
+ * <MyComponent className={`fade fade-${state}`} />
515
+ * )}
516
+ * </Transition>
517
+ * ```
518
+ */
519
+ children: e.oneOfType([e.func.isRequired, e.element.isRequired]).isRequired,
520
+ /**
521
+ * Show the component; triggers the enter or exit states
522
+ */
523
+ in: e.bool,
524
+ /**
525
+ * By default the child component is mounted immediately along with
526
+ * the parent `Transition` component. If you want to "lazy mount" the component on the
527
+ * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay
528
+ * mounted, even on "exited", unless you also specify `unmountOnExit`.
529
+ */
530
+ mountOnEnter: e.bool,
531
+ /**
532
+ * By default the child component stays mounted after it reaches the `'exited'` state.
533
+ * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.
534
+ */
535
+ unmountOnExit: e.bool,
536
+ /**
537
+ * By default the child component does not perform the enter transition when
538
+ * it first mounts, regardless of the value of `in`. If you want this
539
+ * behavior, set both `appear` and `in` to `true`.
540
+ *
541
+ * > **Note**: there are no special appear states like `appearing`/`appeared`, this prop
542
+ * > only adds an additional enter transition. However, in the
543
+ * > `<CSSTransition>` component that first enter transition does result in
544
+ * > additional `.appear-*` classes, that way you can choose to style it
545
+ * > differently.
546
+ */
547
+ appear: e.bool,
548
+ /**
549
+ * Enable or disable enter transitions.
550
+ */
551
+ enter: e.bool,
552
+ /**
553
+ * Enable or disable exit transitions.
554
+ */
555
+ exit: e.bool,
556
+ /**
557
+ * The duration of the transition, in milliseconds.
558
+ * Required unless `addEndListener` is provided.
559
+ *
560
+ * You may specify a single timeout for all transitions:
561
+ *
562
+ * ```jsx
563
+ * timeout={500}
564
+ * ```
565
+ *
566
+ * or individually:
567
+ *
568
+ * ```jsx
569
+ * timeout={{
570
+ * appear: 500,
571
+ * enter: 300,
572
+ * exit: 500,
573
+ * }}
574
+ * ```
575
+ *
576
+ * - `appear` defaults to the value of `enter`
577
+ * - `enter` defaults to `0`
578
+ * - `exit` defaults to `0`
579
+ *
580
+ * @type {number | { enter?: number, exit?: number, appear?: number }}
581
+ */
582
+ timeout: function(n) {
583
+ var o = ln;
584
+ n.addEndListener || (o = o.isRequired);
585
+ for (var r = arguments.length, i = new Array(r > 1 ? r - 1 : 0), s = 1; s < r; s++)
586
+ i[s - 1] = arguments[s];
587
+ return o.apply(void 0, [n].concat(i));
588
+ },
589
+ /**
590
+ * Add a custom transition end trigger. Called with the transitioning
591
+ * DOM node and a `done` callback. Allows for more fine grained transition end
592
+ * logic. Timeouts are still used as a fallback if provided.
593
+ *
594
+ * **Note**: when `nodeRef` prop is passed, `node` is not passed.
595
+ *
596
+ * ```jsx
597
+ * addEndListener={(node, done) => {
598
+ * // use the css transitionend event to mark the finish of a transition
599
+ * node.addEventListener('transitionend', done, false);
600
+ * }}
601
+ * ```
602
+ */
603
+ addEndListener: e.func,
604
+ /**
605
+ * Callback fired before the "entering" status is applied. An extra parameter
606
+ * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount
607
+ *
608
+ * **Note**: when `nodeRef` prop is passed, `node` is not passed.
609
+ *
610
+ * @type Function(node: HtmlElement, isAppearing: bool) -> void
611
+ */
612
+ onEnter: e.func,
613
+ /**
614
+ * Callback fired after the "entering" status is applied. An extra parameter
615
+ * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount
616
+ *
617
+ * **Note**: when `nodeRef` prop is passed, `node` is not passed.
618
+ *
619
+ * @type Function(node: HtmlElement, isAppearing: bool)
620
+ */
621
+ onEntering: e.func,
622
+ /**
623
+ * Callback fired after the "entered" status is applied. An extra parameter
624
+ * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount
625
+ *
626
+ * **Note**: when `nodeRef` prop is passed, `node` is not passed.
627
+ *
628
+ * @type Function(node: HtmlElement, isAppearing: bool) -> void
629
+ */
630
+ onEntered: e.func,
631
+ /**
632
+ * Callback fired before the "exiting" status is applied.
633
+ *
634
+ * **Note**: when `nodeRef` prop is passed, `node` is not passed.
635
+ *
636
+ * @type Function(node: HtmlElement) -> void
637
+ */
638
+ onExit: e.func,
639
+ /**
640
+ * Callback fired after the "exiting" status is applied.
641
+ *
642
+ * **Note**: when `nodeRef` prop is passed, `node` is not passed.
643
+ *
644
+ * @type Function(node: HtmlElement) -> void
645
+ */
646
+ onExiting: e.func,
647
+ /**
648
+ * Callback fired after the "exited" status is applied.
649
+ *
650
+ * **Note**: when `nodeRef` prop is passed, `node` is not passed
651
+ *
652
+ * @type Function(node: HtmlElement) -> void
653
+ */
654
+ onExited: e.func
655
+ } : {};
656
+ function re() {
657
+ }
658
+ Y.defaultProps = {
659
+ in: !1,
660
+ mountOnEnter: !1,
661
+ unmountOnExit: !1,
662
+ appear: !1,
663
+ enter: !0,
664
+ exit: !0,
665
+ onEnter: re,
666
+ onEntering: re,
667
+ onEntered: re,
668
+ onExit: re,
669
+ onExiting: re,
670
+ onExited: re
671
+ };
672
+ Y.UNMOUNTED = me;
673
+ Y.EXITED = Q;
674
+ Y.ENTERING = ee;
675
+ Y.ENTERED = se;
676
+ Y.EXITING = Ve;
677
+ function un(t) {
678
+ return typeof t == "string";
679
+ }
680
+ const Ot = /* @__PURE__ */ p.createContext({});
681
+ process.env.NODE_ENV !== "production" && (Ot.displayName = "ListContext");
682
+ function pn(t) {
683
+ return le("MuiList", t);
684
+ }
685
+ ae("MuiList", ["root", "padding", "dense", "subheader"]);
686
+ const dn = (t) => {
687
+ const {
688
+ classes: n,
689
+ disablePadding: o,
690
+ dense: r,
691
+ subheader: i
692
+ } = t;
693
+ return ue({
694
+ root: ["root", !o && "padding", r && "dense", i && "subheader"]
695
+ }, pn, n);
696
+ }, fn = G("ul", {
697
+ name: "MuiList",
698
+ slot: "Root",
699
+ overridesResolver: (t, n) => {
700
+ const {
701
+ ownerState: o
702
+ } = t;
703
+ return [n.root, !o.disablePadding && n.padding, o.dense && n.dense, o.subheader && n.subheader];
704
+ }
705
+ })({
706
+ listStyle: "none",
707
+ margin: 0,
708
+ padding: 0,
709
+ position: "relative",
710
+ variants: [{
711
+ props: ({
712
+ ownerState: t
713
+ }) => !t.disablePadding,
714
+ style: {
715
+ paddingTop: 8,
716
+ paddingBottom: 8
717
+ }
718
+ }, {
719
+ props: ({
720
+ ownerState: t
721
+ }) => t.subheader,
722
+ style: {
723
+ paddingTop: 0
724
+ }
725
+ }]
726
+ }), Nt = /* @__PURE__ */ p.forwardRef(function(n, o) {
727
+ const r = ce({
728
+ props: n,
729
+ name: "MuiList"
730
+ }), {
731
+ children: i,
732
+ className: s,
733
+ component: a = "ul",
734
+ dense: l = !1,
735
+ disablePadding: c = !1,
736
+ subheader: d,
737
+ ...y
738
+ } = r, g = p.useMemo(() => ({
739
+ dense: l
740
+ }), [l]), x = {
741
+ ...r,
742
+ component: a,
743
+ dense: l,
744
+ disablePadding: c
745
+ }, f = dn(x);
746
+ return /* @__PURE__ */ I(Ot.Provider, {
747
+ value: g,
748
+ children: /* @__PURE__ */ $e(fn, {
749
+ as: a,
750
+ className: W(f.root, s),
751
+ ref: o,
752
+ ownerState: x,
753
+ ...y,
754
+ children: [d, i]
755
+ })
756
+ });
757
+ });
758
+ process.env.NODE_ENV !== "production" && (Nt.propTypes = {
759
+ // ┌────────────────────────────── Warning ──────────────────────────────┐
760
+ // │ These PropTypes are generated from the TypeScript type definitions. │
761
+ // │ To update them, edit the d.ts file and run `pnpm proptypes`. │
762
+ // └─────────────────────────────────────────────────────────────────────┘
763
+ /**
764
+ * The content of the component.
765
+ */
766
+ children: e.node,
767
+ /**
768
+ * Override or extend the styles applied to the component.
769
+ */
770
+ classes: e.object,
771
+ /**
772
+ * @ignore
773
+ */
774
+ className: e.string,
775
+ /**
776
+ * The component used for the root node.
777
+ * Either a string to use a HTML element or a component.
778
+ */
779
+ component: e.elementType,
780
+ /**
781
+ * If `true`, compact vertical padding designed for keyboard and mouse input is used for
782
+ * the list and list items.
783
+ * The prop is available to descendant components as the `dense` context.
784
+ * @default false
785
+ */
786
+ dense: e.bool,
787
+ /**
788
+ * If `true`, vertical padding is removed from the list.
789
+ * @default false
790
+ */
791
+ disablePadding: e.bool,
792
+ /**
793
+ * The content of the subheader, normally `ListSubheader`.
794
+ */
795
+ subheader: e.node,
796
+ /**
797
+ * The system prop that allows defining system overrides as well as additional CSS styles.
798
+ */
799
+ sx: e.oneOfType([e.arrayOf(e.oneOfType([e.func, e.object, e.bool])), e.func, e.object])
800
+ });
801
+ function Ie(t, n, o) {
802
+ return t === n ? t.firstChild : n && n.nextElementSibling ? n.nextElementSibling : o ? null : t.firstChild;
803
+ }
804
+ function et(t, n, o) {
805
+ return t === n ? o ? t.firstChild : t.lastChild : n && n.previousElementSibling ? n.previousElementSibling : o ? null : t.lastChild;
806
+ }
807
+ function St(t, n) {
808
+ if (n === void 0)
809
+ return !0;
810
+ let o = t.innerText;
811
+ return o === void 0 && (o = t.textContent), o = o.trim().toLowerCase(), o.length === 0 ? !1 : n.repeating ? o[0] === n.keys[0] : o.startsWith(n.keys.join(""));
812
+ }
813
+ function he(t, n, o, r, i, s) {
814
+ let a = !1, l = i(t, n, n ? o : !1);
815
+ for (; l; ) {
816
+ if (l === t.firstChild) {
817
+ if (a)
818
+ return !1;
819
+ a = !0;
820
+ }
821
+ const c = r ? !1 : l.disabled || l.getAttribute("aria-disabled") === "true";
822
+ if (!l.hasAttribute("tabindex") || !St(l, s) || c)
823
+ l = i(t, l, o);
824
+ else
825
+ return l.focus(), !0;
826
+ }
827
+ return !1;
828
+ }
829
+ const Ct = /* @__PURE__ */ p.forwardRef(function(n, o) {
830
+ const {
831
+ // private
832
+ // eslint-disable-next-line react/prop-types
833
+ actions: r,
834
+ autoFocus: i = !1,
835
+ autoFocusItem: s = !1,
836
+ children: a,
837
+ className: l,
838
+ disabledItemsFocusable: c = !1,
839
+ disableListWrap: d = !1,
840
+ onKeyDown: y,
841
+ variant: g = "selectedMenu",
842
+ ...x
843
+ } = n, f = p.useRef(null), b = p.useRef({
844
+ keys: [],
845
+ repeating: !0,
846
+ previousKeyMatched: !0,
847
+ lastTime: null
848
+ });
849
+ Fe(() => {
850
+ i && f.current.focus();
851
+ }, [i]), p.useImperativeHandle(r, () => ({
852
+ adjustStyleForScrollbar: (u, {
853
+ direction: m
854
+ }) => {
855
+ const v = !f.current.style.width;
856
+ if (u.clientHeight < f.current.clientHeight && v) {
857
+ const N = `${ft(te(u))}px`;
858
+ f.current.style[m === "rtl" ? "paddingLeft" : "paddingRight"] = N, f.current.style.width = `calc(100% + ${N})`;
859
+ }
860
+ return f.current;
861
+ }
862
+ }), []);
863
+ const O = (u) => {
864
+ const m = f.current, v = u.key;
865
+ if (u.ctrlKey || u.metaKey || u.altKey) {
866
+ y && y(u);
867
+ return;
868
+ }
869
+ const R = z(m).activeElement;
870
+ if (v === "ArrowDown")
871
+ u.preventDefault(), he(m, R, d, c, Ie);
872
+ else if (v === "ArrowUp")
873
+ u.preventDefault(), he(m, R, d, c, et);
874
+ else if (v === "Home")
875
+ u.preventDefault(), he(m, null, d, c, Ie);
876
+ else if (v === "End")
877
+ u.preventDefault(), he(m, null, d, c, et);
878
+ else if (v.length === 1) {
879
+ const P = b.current, w = v.toLowerCase(), F = performance.now();
880
+ P.keys.length > 0 && (F - P.lastTime > 500 ? (P.keys = [], P.repeating = !0, P.previousKeyMatched = !0) : P.repeating && w !== P.keys[0] && (P.repeating = !1)), P.lastTime = F, P.keys.push(w);
881
+ const A = R && !P.repeating && St(R, P);
882
+ P.previousKeyMatched && (A || he(m, R, !1, c, Ie, P)) ? u.preventDefault() : P.previousKeyMatched = !1;
883
+ }
884
+ y && y(u);
885
+ }, S = X(f, o);
886
+ let T = -1;
887
+ p.Children.forEach(a, (u, m) => {
888
+ if (!/* @__PURE__ */ p.isValidElement(u)) {
889
+ T === m && (T += 1, T >= a.length && (T = -1));
890
+ return;
891
+ }
892
+ process.env.NODE_ENV !== "production" && lt.isFragment(u) && console.error(["MUI: The Menu component doesn't accept a Fragment as a child.", "Consider providing an array instead."].join(`
893
+ `)), u.props.disabled || (g === "selectedMenu" && u.props.selected || T === -1) && (T = m), T === m && (u.props.disabled || u.props.muiSkipListHighlight || u.type.muiSkipListHighlight) && (T += 1, T >= a.length && (T = -1));
894
+ });
895
+ const C = p.Children.map(a, (u, m) => {
896
+ if (m === T) {
897
+ const v = {};
898
+ return s && (v.autoFocus = !0), u.props.tabIndex === void 0 && g === "selectedMenu" && (v.tabIndex = 0), /* @__PURE__ */ p.cloneElement(u, v);
899
+ }
900
+ return u;
901
+ });
902
+ return /* @__PURE__ */ I(Nt, {
903
+ role: "menu",
904
+ ref: S,
905
+ className: l,
906
+ onKeyDown: O,
907
+ tabIndex: i ? 0 : -1,
908
+ ...x,
909
+ children: C
910
+ });
911
+ });
912
+ process.env.NODE_ENV !== "production" && (Ct.propTypes = {
913
+ // ┌────────────────────────────── Warning ──────────────────────────────┐
914
+ // │ These PropTypes are generated from the TypeScript type definitions. │
915
+ // │ To update them, edit the d.ts file and run `pnpm proptypes`. │
916
+ // └─────────────────────────────────────────────────────────────────────┘
917
+ /**
918
+ * If `true`, will focus the `[role="menu"]` container and move into tab order.
919
+ * @default false
920
+ */
921
+ autoFocus: e.bool,
922
+ /**
923
+ * If `true`, will focus the first menuitem if `variant="menu"` or selected item
924
+ * if `variant="selectedMenu"`.
925
+ * @default false
926
+ */
927
+ autoFocusItem: e.bool,
928
+ /**
929
+ * MenuList contents, normally `MenuItem`s.
930
+ */
931
+ children: e.node,
932
+ /**
933
+ * @ignore
934
+ */
935
+ className: e.string,
936
+ /**
937
+ * If `true`, will allow focus on disabled items.
938
+ * @default false
939
+ */
940
+ disabledItemsFocusable: e.bool,
941
+ /**
942
+ * If `true`, the menu items will not wrap focus.
943
+ * @default false
944
+ */
945
+ disableListWrap: e.bool,
946
+ /**
947
+ * @ignore
948
+ */
949
+ onKeyDown: e.func,
950
+ /**
951
+ * The variant to use. Use `menu` to prevent selected items from impacting the initial focus
952
+ * and the vertical alignment relative to the anchor element.
953
+ * @default 'selectedMenu'
954
+ */
955
+ variant: e.oneOf(["menu", "selectedMenu"])
956
+ });
957
+ const wt = (t) => t.scrollTop;
958
+ function Pe(t, n) {
959
+ const {
960
+ timeout: o,
961
+ easing: r,
962
+ style: i = {}
963
+ } = t;
964
+ return {
965
+ duration: i.transitionDuration ?? (typeof o == "number" ? o : o[n.mode] || 0),
966
+ easing: i.transitionTimingFunction ?? (typeof r == "object" ? r[n.mode] : r),
967
+ delay: i.transitionDelay
968
+ };
969
+ }
970
+ function _e(t) {
971
+ return `scale(${t}, ${t ** 2})`;
972
+ }
973
+ const hn = {
974
+ entering: {
975
+ opacity: 1,
976
+ transform: _e(1)
977
+ },
978
+ entered: {
979
+ opacity: 1,
980
+ transform: "none"
981
+ }
982
+ }, je = typeof navigator < "u" && /^((?!chrome|android).)*(safari|mobile)/i.test(navigator.userAgent) && /(os |version\/)15(.|_)4/i.test(navigator.userAgent), Oe = /* @__PURE__ */ p.forwardRef(function(n, o) {
983
+ const {
984
+ addEndListener: r,
985
+ appear: i = !0,
986
+ children: s,
987
+ easing: a,
988
+ in: l,
989
+ onEnter: c,
990
+ onEntered: d,
991
+ onEntering: y,
992
+ onExit: g,
993
+ onExited: x,
994
+ onExiting: f,
995
+ style: b,
996
+ timeout: O = "auto",
997
+ // eslint-disable-next-line react/prop-types
998
+ TransitionComponent: S = Y,
999
+ ...T
1000
+ } = n, C = Ht(), u = p.useRef(), m = Ue(), v = p.useRef(null), N = X(v, we(s), o), R = (h) => (E) => {
1001
+ if (h) {
1002
+ const M = v.current;
1003
+ E === void 0 ? h(M) : h(M, E);
1004
+ }
1005
+ }, P = R(y), w = R((h, E) => {
1006
+ wt(h);
1007
+ const {
1008
+ duration: M,
1009
+ delay: V,
1010
+ easing: $
1011
+ } = Pe({
1012
+ style: b,
1013
+ timeout: O,
1014
+ easing: a
1015
+ }, {
1016
+ mode: "enter"
1017
+ });
1018
+ let K;
1019
+ O === "auto" ? (K = m.transitions.getAutoHeightDuration(h.clientHeight), u.current = K) : K = M, h.style.transition = [m.transitions.create("opacity", {
1020
+ duration: K,
1021
+ delay: V
1022
+ }), m.transitions.create("transform", {
1023
+ duration: je ? K : K * 0.666,
1024
+ delay: V,
1025
+ easing: $
1026
+ })].join(","), c && c(h, E);
1027
+ }), F = R(d), A = R(f), _ = R((h) => {
1028
+ const {
1029
+ duration: E,
1030
+ delay: M,
1031
+ easing: V
1032
+ } = Pe({
1033
+ style: b,
1034
+ timeout: O,
1035
+ easing: a
1036
+ }, {
1037
+ mode: "exit"
1038
+ });
1039
+ let $;
1040
+ O === "auto" ? ($ = m.transitions.getAutoHeightDuration(h.clientHeight), u.current = $) : $ = E, h.style.transition = [m.transitions.create("opacity", {
1041
+ duration: $,
1042
+ delay: M
1043
+ }), m.transitions.create("transform", {
1044
+ duration: je ? $ : $ * 0.666,
1045
+ delay: je ? M : M || $ * 0.333,
1046
+ easing: V
1047
+ })].join(","), h.style.opacity = 0, h.style.transform = _e(0.75), g && g(h);
1048
+ }), U = R(x);
1049
+ return /* @__PURE__ */ I(S, {
1050
+ appear: i,
1051
+ in: l,
1052
+ nodeRef: v,
1053
+ onEnter: w,
1054
+ onEntered: F,
1055
+ onEntering: P,
1056
+ onExit: _,
1057
+ onExited: U,
1058
+ onExiting: A,
1059
+ addEndListener: (h) => {
1060
+ O === "auto" && C.start(u.current || 0, h), r && r(v.current, h);
1061
+ },
1062
+ timeout: O === "auto" ? null : O,
1063
+ ...T,
1064
+ children: (h, E) => /* @__PURE__ */ p.cloneElement(s, {
1065
+ style: {
1066
+ opacity: 0,
1067
+ transform: _e(0.75),
1068
+ visibility: h === "exited" && !l ? "hidden" : void 0,
1069
+ ...hn[h],
1070
+ ...b,
1071
+ ...s.props.style
1072
+ },
1073
+ ref: N,
1074
+ ...E
1075
+ })
1076
+ });
1077
+ });
1078
+ process.env.NODE_ENV !== "production" && (Oe.propTypes = {
1079
+ // ┌────────────────────────────── Warning ──────────────────────────────┐
1080
+ // │ These PropTypes are generated from the TypeScript type definitions. │
1081
+ // │ To update them, edit the d.ts file and run `pnpm proptypes`. │
1082
+ // └─────────────────────────────────────────────────────────────────────┘
1083
+ /**
1084
+ * Add a custom transition end trigger. Called with the transitioning DOM
1085
+ * node and a done callback. Allows for more fine grained transition end
1086
+ * logic. Note: Timeouts are still used as a fallback if provided.
1087
+ */
1088
+ addEndListener: e.func,
1089
+ /**
1090
+ * Perform the enter transition when it first mounts if `in` is also `true`.
1091
+ * Set this to `false` to disable this behavior.
1092
+ * @default true
1093
+ */
1094
+ appear: e.bool,
1095
+ /**
1096
+ * A single child content element.
1097
+ */
1098
+ children: ye.isRequired,
1099
+ /**
1100
+ * The transition timing function.
1101
+ * You may specify a single easing or a object containing enter and exit values.
1102
+ */
1103
+ easing: e.oneOfType([e.shape({
1104
+ enter: e.string,
1105
+ exit: e.string
1106
+ }), e.string]),
1107
+ /**
1108
+ * If `true`, the component will transition in.
1109
+ */
1110
+ in: e.bool,
1111
+ /**
1112
+ * @ignore
1113
+ */
1114
+ onEnter: e.func,
1115
+ /**
1116
+ * @ignore
1117
+ */
1118
+ onEntered: e.func,
1119
+ /**
1120
+ * @ignore
1121
+ */
1122
+ onEntering: e.func,
1123
+ /**
1124
+ * @ignore
1125
+ */
1126
+ onExit: e.func,
1127
+ /**
1128
+ * @ignore
1129
+ */
1130
+ onExited: e.func,
1131
+ /**
1132
+ * @ignore
1133
+ */
1134
+ onExiting: e.func,
1135
+ /**
1136
+ * @ignore
1137
+ */
1138
+ style: e.object,
1139
+ /**
1140
+ * The duration for the transition, in milliseconds.
1141
+ * You may specify a single timeout for all transitions, or individually with an object.
1142
+ *
1143
+ * Set to 'auto' to automatically calculate transition time based on height.
1144
+ * @default 'auto'
1145
+ */
1146
+ timeout: e.oneOfType([e.oneOf(["auto"]), e.number, e.shape({
1147
+ appear: e.number,
1148
+ enter: e.number,
1149
+ exit: e.number
1150
+ })])
1151
+ });
1152
+ Oe && (Oe.muiSupportAuto = !0);
1153
+ function mn(t) {
1154
+ const n = z(t);
1155
+ return n.body === t ? te(t).innerWidth > n.documentElement.clientWidth : t.scrollHeight > t.clientHeight;
1156
+ }
1157
+ function be(t, n) {
1158
+ n ? t.setAttribute("aria-hidden", "true") : t.removeAttribute("aria-hidden");
1159
+ }
1160
+ function tt(t) {
1161
+ return parseInt(te(t).getComputedStyle(t).paddingRight, 10) || 0;
1162
+ }
1163
+ function bn(t) {
1164
+ const o = ["TEMPLATE", "SCRIPT", "STYLE", "LINK", "MAP", "META", "NOSCRIPT", "PICTURE", "COL", "COLGROUP", "PARAM", "SLOT", "SOURCE", "TRACK"].includes(t.tagName), r = t.tagName === "INPUT" && t.getAttribute("type") === "hidden";
1165
+ return o || r;
1166
+ }
1167
+ function nt(t, n, o, r, i) {
1168
+ const s = [n, o, ...r];
1169
+ [].forEach.call(t.children, (a) => {
1170
+ const l = !s.includes(a), c = !bn(a);
1171
+ l && c && be(a, i);
1172
+ });
1173
+ }
1174
+ function Le(t, n) {
1175
+ let o = -1;
1176
+ return t.some((r, i) => n(r) ? (o = i, !0) : !1), o;
1177
+ }
1178
+ function En(t, n) {
1179
+ const o = [], r = t.container;
1180
+ if (!n.disableScrollLock) {
1181
+ if (mn(r)) {
1182
+ const a = ft(te(r));
1183
+ o.push({
1184
+ value: r.style.paddingRight,
1185
+ property: "padding-right",
1186
+ el: r
1187
+ }), r.style.paddingRight = `${tt(r) + a}px`;
1188
+ const l = z(r).querySelectorAll(".mui-fixed");
1189
+ [].forEach.call(l, (c) => {
1190
+ o.push({
1191
+ value: c.style.paddingRight,
1192
+ property: "padding-right",
1193
+ el: c
1194
+ }), c.style.paddingRight = `${tt(c) + a}px`;
1195
+ });
1196
+ }
1197
+ let s;
1198
+ if (r.parentNode instanceof DocumentFragment)
1199
+ s = z(r).body;
1200
+ else {
1201
+ const a = r.parentElement, l = te(r);
1202
+ s = (a == null ? void 0 : a.nodeName) === "HTML" && l.getComputedStyle(a).overflowY === "scroll" ? a : r;
1203
+ }
1204
+ o.push({
1205
+ value: s.style.overflow,
1206
+ property: "overflow",
1207
+ el: s
1208
+ }, {
1209
+ value: s.style.overflowX,
1210
+ property: "overflow-x",
1211
+ el: s
1212
+ }, {
1213
+ value: s.style.overflowY,
1214
+ property: "overflow-y",
1215
+ el: s
1216
+ }), s.style.overflow = "hidden";
1217
+ }
1218
+ return () => {
1219
+ o.forEach(({
1220
+ value: s,
1221
+ el: a,
1222
+ property: l
1223
+ }) => {
1224
+ s ? a.style.setProperty(l, s) : a.style.removeProperty(l);
1225
+ });
1226
+ };
1227
+ }
1228
+ function yn(t) {
1229
+ const n = [];
1230
+ return [].forEach.call(t.children, (o) => {
1231
+ o.getAttribute("aria-hidden") === "true" && n.push(o);
1232
+ }), n;
1233
+ }
1234
+ class gn {
1235
+ constructor() {
1236
+ this.modals = [], this.containers = [];
1237
+ }
1238
+ add(n, o) {
1239
+ let r = this.modals.indexOf(n);
1240
+ if (r !== -1)
1241
+ return r;
1242
+ r = this.modals.length, this.modals.push(n), n.modalRef && be(n.modalRef, !1);
1243
+ const i = yn(o);
1244
+ nt(o, n.mount, n.modalRef, i, !0);
1245
+ const s = Le(this.containers, (a) => a.container === o);
1246
+ return s !== -1 ? (this.containers[s].modals.push(n), r) : (this.containers.push({
1247
+ modals: [n],
1248
+ container: o,
1249
+ restore: null,
1250
+ hiddenSiblings: i
1251
+ }), r);
1252
+ }
1253
+ mount(n, o) {
1254
+ const r = Le(this.containers, (s) => s.modals.includes(n)), i = this.containers[r];
1255
+ i.restore || (i.restore = En(i, o));
1256
+ }
1257
+ remove(n, o = !0) {
1258
+ const r = this.modals.indexOf(n);
1259
+ if (r === -1)
1260
+ return r;
1261
+ const i = Le(this.containers, (a) => a.modals.includes(n)), s = this.containers[i];
1262
+ if (s.modals.splice(s.modals.indexOf(n), 1), this.modals.splice(r, 1), s.modals.length === 0)
1263
+ s.restore && s.restore(), n.modalRef && be(n.modalRef, o), nt(s.container, n.mount, n.modalRef, s.hiddenSiblings, !1), this.containers.splice(i, 1);
1264
+ else {
1265
+ const a = s.modals[s.modals.length - 1];
1266
+ a.modalRef && be(a.modalRef, !1);
1267
+ }
1268
+ return r;
1269
+ }
1270
+ isTopModal(n) {
1271
+ return this.modals.length > 0 && this.modals[this.modals.length - 1] === n;
1272
+ }
1273
+ }
1274
+ const vn = ["input", "select", "textarea", "a[href]", "button", "[tabindex]", "audio[controls]", "video[controls]", '[contenteditable]:not([contenteditable="false"])'].join(",");
1275
+ function Tn(t) {
1276
+ const n = parseInt(t.getAttribute("tabindex") || "", 10);
1277
+ return Number.isNaN(n) ? t.contentEditable === "true" || (t.nodeName === "AUDIO" || t.nodeName === "VIDEO" || t.nodeName === "DETAILS") && t.getAttribute("tabindex") === null ? 0 : t.tabIndex : n;
1278
+ }
1279
+ function xn(t) {
1280
+ if (t.tagName !== "INPUT" || t.type !== "radio" || !t.name)
1281
+ return !1;
1282
+ const n = (r) => t.ownerDocument.querySelector(`input[type="radio"]${r}`);
1283
+ let o = n(`[name="${t.name}"]:checked`);
1284
+ return o || (o = n(`[name="${t.name}"]`)), o !== t;
1285
+ }
1286
+ function Rn(t) {
1287
+ return !(t.disabled || t.tagName === "INPUT" && t.type === "hidden" || xn(t));
1288
+ }
1289
+ function Pn(t) {
1290
+ const n = [], o = [];
1291
+ return Array.from(t.querySelectorAll(vn)).forEach((r, i) => {
1292
+ const s = Tn(r);
1293
+ s === -1 || !Rn(r) || (s === 0 ? n.push(r) : o.push({
1294
+ documentOrder: i,
1295
+ tabIndex: s,
1296
+ node: r
1297
+ }));
1298
+ }), o.sort((r, i) => r.tabIndex === i.tabIndex ? r.documentOrder - i.documentOrder : r.tabIndex - i.tabIndex).map((r) => r.node).concat(n);
1299
+ }
1300
+ function On() {
1301
+ return !0;
1302
+ }
1303
+ function Ne(t) {
1304
+ const {
1305
+ children: n,
1306
+ disableAutoFocus: o = !1,
1307
+ disableEnforceFocus: r = !1,
1308
+ disableRestoreFocus: i = !1,
1309
+ getTabbable: s = Pn,
1310
+ isEnabled: a = On,
1311
+ open: l
1312
+ } = t, c = p.useRef(!1), d = p.useRef(null), y = p.useRef(null), g = p.useRef(null), x = p.useRef(null), f = p.useRef(!1), b = p.useRef(null), O = X(we(n), b), S = p.useRef(null);
1313
+ p.useEffect(() => {
1314
+ !l || !b.current || (f.current = !o);
1315
+ }, [o, l]), p.useEffect(() => {
1316
+ if (!l || !b.current)
1317
+ return;
1318
+ const u = z(b.current);
1319
+ return b.current.contains(u.activeElement) || (b.current.hasAttribute("tabIndex") || (process.env.NODE_ENV !== "production" && console.error(["MUI: The modal content node does not accept focus.", 'For the benefit of assistive technologies, the tabIndex of the node is being set to "-1".'].join(`
1320
+ `)), b.current.setAttribute("tabIndex", "-1")), f.current && b.current.focus()), () => {
1321
+ i || (g.current && g.current.focus && (c.current = !0, g.current.focus()), g.current = null);
1322
+ };
1323
+ }, [l]), p.useEffect(() => {
1324
+ if (!l || !b.current)
1325
+ return;
1326
+ const u = z(b.current), m = (R) => {
1327
+ S.current = R, !(r || !a() || R.key !== "Tab") && u.activeElement === b.current && R.shiftKey && (c.current = !0, y.current && y.current.focus());
1328
+ }, v = () => {
1329
+ var w, F;
1330
+ const R = b.current;
1331
+ if (R === null)
1332
+ return;
1333
+ if (!u.hasFocus() || !a() || c.current) {
1334
+ c.current = !1;
1335
+ return;
1336
+ }
1337
+ if (R.contains(u.activeElement) || r && u.activeElement !== d.current && u.activeElement !== y.current)
1338
+ return;
1339
+ if (u.activeElement !== x.current)
1340
+ x.current = null;
1341
+ else if (x.current !== null)
1342
+ return;
1343
+ if (!f.current)
1344
+ return;
1345
+ let P = [];
1346
+ if ((u.activeElement === d.current || u.activeElement === y.current) && (P = s(b.current)), P.length > 0) {
1347
+ const A = !!((w = S.current) != null && w.shiftKey && ((F = S.current) == null ? void 0 : F.key) === "Tab"), _ = P[0], U = P[P.length - 1];
1348
+ typeof _ != "string" && typeof U != "string" && (A ? U.focus() : _.focus());
1349
+ } else
1350
+ R.focus();
1351
+ };
1352
+ u.addEventListener("focusin", v), u.addEventListener("keydown", m, !0);
1353
+ const N = setInterval(() => {
1354
+ u.activeElement && u.activeElement.tagName === "BODY" && v();
1355
+ }, 50);
1356
+ return () => {
1357
+ clearInterval(N), u.removeEventListener("focusin", v), u.removeEventListener("keydown", m, !0);
1358
+ };
1359
+ }, [o, r, i, a, l, s]);
1360
+ const T = (u) => {
1361
+ g.current === null && (g.current = u.relatedTarget), f.current = !0, x.current = u.target;
1362
+ const m = n.props.onFocus;
1363
+ m && m(u);
1364
+ }, C = (u) => {
1365
+ g.current === null && (g.current = u.relatedTarget), f.current = !0;
1366
+ };
1367
+ return /* @__PURE__ */ $e(p.Fragment, {
1368
+ children: [/* @__PURE__ */ I("div", {
1369
+ tabIndex: l ? 0 : -1,
1370
+ onFocus: C,
1371
+ ref: d,
1372
+ "data-testid": "sentinelStart"
1373
+ }), /* @__PURE__ */ p.cloneElement(n, {
1374
+ ref: O,
1375
+ onFocus: T
1376
+ }), /* @__PURE__ */ I("div", {
1377
+ tabIndex: l ? 0 : -1,
1378
+ onFocus: C,
1379
+ ref: y,
1380
+ "data-testid": "sentinelEnd"
1381
+ })]
1382
+ });
1383
+ }
1384
+ process.env.NODE_ENV !== "production" && (Ne.propTypes = {
1385
+ // ┌────────────────────────────── Warning ──────────────────────────────┐
1386
+ // │ These PropTypes are generated from the TypeScript type definitions. │
1387
+ // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │
1388
+ // └─────────────────────────────────────────────────────────────────────┘
1389
+ /**
1390
+ * A single child content element.
1391
+ */
1392
+ children: ye,
1393
+ /**
1394
+ * If `true`, the focus trap will not automatically shift focus to itself when it opens, and
1395
+ * replace it to the last focused element when it closes.
1396
+ * This also works correctly with any focus trap children that have the `disableAutoFocus` prop.
1397
+ *
1398
+ * Generally this should never be set to `true` as it makes the focus trap less
1399
+ * accessible to assistive technologies, like screen readers.
1400
+ * @default false
1401
+ */
1402
+ disableAutoFocus: e.bool,
1403
+ /**
1404
+ * If `true`, the focus trap will not prevent focus from leaving the focus trap while open.
1405
+ *
1406
+ * Generally this should never be set to `true` as it makes the focus trap less
1407
+ * accessible to assistive technologies, like screen readers.
1408
+ * @default false
1409
+ */
1410
+ disableEnforceFocus: e.bool,
1411
+ /**
1412
+ * If `true`, the focus trap will not restore focus to previously focused element once
1413
+ * focus trap is hidden or unmounted.
1414
+ * @default false
1415
+ */
1416
+ disableRestoreFocus: e.bool,
1417
+ /**
1418
+ * Returns an array of ordered tabbable nodes (i.e. in tab order) within the root.
1419
+ * For instance, you can provide the "tabbable" npm dependency.
1420
+ * @param {HTMLElement} root
1421
+ */
1422
+ getTabbable: e.func,
1423
+ /**
1424
+ * This prop extends the `open` prop.
1425
+ * It allows to toggle the open state without having to wait for a rerender when changing the `open` prop.
1426
+ * This prop should be memoized.
1427
+ * It can be used to support multiple focus trap mounted at the same time.
1428
+ * @default function defaultIsEnabled(): boolean {
1429
+ * return true;
1430
+ * }
1431
+ */
1432
+ isEnabled: e.func,
1433
+ /**
1434
+ * If `true`, focus is locked.
1435
+ */
1436
+ open: e.bool.isRequired
1437
+ });
1438
+ process.env.NODE_ENV !== "production" && (Ne.propTypes = dt(Ne.propTypes));
1439
+ function Nn(t) {
1440
+ return typeof t == "function" ? t() : t;
1441
+ }
1442
+ const Se = /* @__PURE__ */ p.forwardRef(function(n, o) {
1443
+ const {
1444
+ children: r,
1445
+ container: i,
1446
+ disablePortal: s = !1
1447
+ } = n, [a, l] = p.useState(null), c = X(/* @__PURE__ */ p.isValidElement(r) ? we(r) : null, o);
1448
+ if (Fe(() => {
1449
+ s || l(Nn(i) || document.body);
1450
+ }, [i, s]), Fe(() => {
1451
+ if (a && !s)
1452
+ return Ge(o, a), () => {
1453
+ Ge(o, null);
1454
+ };
1455
+ }, [o, a, s]), s) {
1456
+ if (/* @__PURE__ */ p.isValidElement(r)) {
1457
+ const d = {
1458
+ ref: c
1459
+ };
1460
+ return /* @__PURE__ */ p.cloneElement(r, d);
1461
+ }
1462
+ return /* @__PURE__ */ I(p.Fragment, {
1463
+ children: r
1464
+ });
1465
+ }
1466
+ return /* @__PURE__ */ I(p.Fragment, {
1467
+ children: a && /* @__PURE__ */ zt.createPortal(r, a)
1468
+ });
1469
+ });
1470
+ process.env.NODE_ENV !== "production" && (Se.propTypes = {
1471
+ // ┌────────────────────────────── Warning ──────────────────────────────┐
1472
+ // │ These PropTypes are generated from the TypeScript type definitions. │
1473
+ // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │
1474
+ // └─────────────────────────────────────────────────────────────────────┘
1475
+ /**
1476
+ * The children to render into the `container`.
1477
+ */
1478
+ children: e.node,
1479
+ /**
1480
+ * An HTML element or function that returns one.
1481
+ * The `container` will have the portal children appended to it.
1482
+ *
1483
+ * You can also provide a callback, which is called in a React layout effect.
1484
+ * This lets you set the container from a ref, and also makes server-side rendering possible.
1485
+ *
1486
+ * By default, it uses the body of the top-level document object,
1487
+ * so it's simply `document.body` most of the time.
1488
+ */
1489
+ container: e.oneOfType([Ee, e.func]),
1490
+ /**
1491
+ * The `children` will be under the DOM hierarchy of the parent component.
1492
+ * @default false
1493
+ */
1494
+ disablePortal: e.bool
1495
+ });
1496
+ process.env.NODE_ENV !== "production" && (Se.propTypes = dt(Se.propTypes));
1497
+ function ie(t, n) {
1498
+ const {
1499
+ className: o,
1500
+ elementType: r,
1501
+ ownerState: i,
1502
+ externalForwardedProps: s,
1503
+ getSlotOwnerState: a,
1504
+ internalForwardedProps: l,
1505
+ ...c
1506
+ } = n, {
1507
+ component: d,
1508
+ slots: y = {
1509
+ [t]: void 0
1510
+ },
1511
+ slotProps: g = {
1512
+ [t]: void 0
1513
+ },
1514
+ ...x
1515
+ } = s, f = y[t] || r, b = vt(g[t], i), {
1516
+ props: {
1517
+ component: O,
1518
+ ...S
1519
+ },
1520
+ internalRef: T
1521
+ } = gt({
1522
+ className: o,
1523
+ ...c,
1524
+ externalForwardedProps: t === "root" ? x : void 0,
1525
+ externalSlotProps: b
1526
+ }), C = X(T, b == null ? void 0 : b.ref, n.ref), u = a ? a(S) : {}, m = {
1527
+ ...i,
1528
+ ...u
1529
+ }, v = t === "root" ? O || d : O, N = Et(f, {
1530
+ ...t === "root" && !d && !y[t] && l,
1531
+ ...t !== "root" && !y[t] && l,
1532
+ ...S,
1533
+ ...v && {
1534
+ as: v
1535
+ },
1536
+ ref: C
1537
+ }, m);
1538
+ return Object.keys(u).forEach((R) => {
1539
+ delete N[R];
1540
+ }), [f, N];
1541
+ }
1542
+ const Sn = {
1543
+ entering: {
1544
+ opacity: 1
1545
+ },
1546
+ entered: {
1547
+ opacity: 1
1548
+ }
1549
+ }, Mt = /* @__PURE__ */ p.forwardRef(function(n, o) {
1550
+ const r = Ue(), i = {
1551
+ enter: r.transitions.duration.enteringScreen,
1552
+ exit: r.transitions.duration.leavingScreen
1553
+ }, {
1554
+ addEndListener: s,
1555
+ appear: a = !0,
1556
+ children: l,
1557
+ easing: c,
1558
+ in: d,
1559
+ onEnter: y,
1560
+ onEntered: g,
1561
+ onEntering: x,
1562
+ onExit: f,
1563
+ onExited: b,
1564
+ onExiting: O,
1565
+ style: S,
1566
+ timeout: T = i,
1567
+ // eslint-disable-next-line react/prop-types
1568
+ TransitionComponent: C = Y,
1569
+ ...u
1570
+ } = n, m = p.useRef(null), v = X(m, we(l), o), N = (k) => (h) => {
1571
+ if (k) {
1572
+ const E = m.current;
1573
+ h === void 0 ? k(E) : k(E, h);
1574
+ }
1575
+ }, R = N(x), P = N((k, h) => {
1576
+ wt(k);
1577
+ const E = Pe({
1578
+ style: S,
1579
+ timeout: T,
1580
+ easing: c
1581
+ }, {
1582
+ mode: "enter"
1583
+ });
1584
+ k.style.webkitTransition = r.transitions.create("opacity", E), k.style.transition = r.transitions.create("opacity", E), y && y(k, h);
1585
+ }), w = N(g), F = N(O), A = N((k) => {
1586
+ const h = Pe({
1587
+ style: S,
1588
+ timeout: T,
1589
+ easing: c
1590
+ }, {
1591
+ mode: "exit"
1592
+ });
1593
+ k.style.webkitTransition = r.transitions.create("opacity", h), k.style.transition = r.transitions.create("opacity", h), f && f(k);
1594
+ }), _ = N(b);
1595
+ return /* @__PURE__ */ I(C, {
1596
+ appear: a,
1597
+ in: d,
1598
+ nodeRef: m,
1599
+ onEnter: P,
1600
+ onEntered: w,
1601
+ onEntering: R,
1602
+ onExit: A,
1603
+ onExited: _,
1604
+ onExiting: F,
1605
+ addEndListener: (k) => {
1606
+ s && s(m.current, k);
1607
+ },
1608
+ timeout: T,
1609
+ ...u,
1610
+ children: (k, h) => /* @__PURE__ */ p.cloneElement(l, {
1611
+ style: {
1612
+ opacity: 0,
1613
+ visibility: k === "exited" && !d ? "hidden" : void 0,
1614
+ ...Sn[k],
1615
+ ...S,
1616
+ ...l.props.style
1617
+ },
1618
+ ref: v,
1619
+ ...h
1620
+ })
1621
+ });
1622
+ });
1623
+ process.env.NODE_ENV !== "production" && (Mt.propTypes = {
1624
+ // ┌────────────────────────────── Warning ──────────────────────────────┐
1625
+ // │ These PropTypes are generated from the TypeScript type definitions. │
1626
+ // │ To update them, edit the d.ts file and run `pnpm proptypes`. │
1627
+ // └─────────────────────────────────────────────────────────────────────┘
1628
+ /**
1629
+ * Add a custom transition end trigger. Called with the transitioning DOM
1630
+ * node and a done callback. Allows for more fine grained transition end
1631
+ * logic. Note: Timeouts are still used as a fallback if provided.
1632
+ */
1633
+ addEndListener: e.func,
1634
+ /**
1635
+ * Perform the enter transition when it first mounts if `in` is also `true`.
1636
+ * Set this to `false` to disable this behavior.
1637
+ * @default true
1638
+ */
1639
+ appear: e.bool,
1640
+ /**
1641
+ * A single child content element.
1642
+ */
1643
+ children: ye.isRequired,
1644
+ /**
1645
+ * The transition timing function.
1646
+ * You may specify a single easing or a object containing enter and exit values.
1647
+ */
1648
+ easing: e.oneOfType([e.shape({
1649
+ enter: e.string,
1650
+ exit: e.string
1651
+ }), e.string]),
1652
+ /**
1653
+ * If `true`, the component will transition in.
1654
+ */
1655
+ in: e.bool,
1656
+ /**
1657
+ * @ignore
1658
+ */
1659
+ onEnter: e.func,
1660
+ /**
1661
+ * @ignore
1662
+ */
1663
+ onEntered: e.func,
1664
+ /**
1665
+ * @ignore
1666
+ */
1667
+ onEntering: e.func,
1668
+ /**
1669
+ * @ignore
1670
+ */
1671
+ onExit: e.func,
1672
+ /**
1673
+ * @ignore
1674
+ */
1675
+ onExited: e.func,
1676
+ /**
1677
+ * @ignore
1678
+ */
1679
+ onExiting: e.func,
1680
+ /**
1681
+ * @ignore
1682
+ */
1683
+ style: e.object,
1684
+ /**
1685
+ * The duration for the transition, in milliseconds.
1686
+ * You may specify a single timeout for all transitions, or individually with an object.
1687
+ * @default {
1688
+ * enter: theme.transitions.duration.enteringScreen,
1689
+ * exit: theme.transitions.duration.leavingScreen,
1690
+ * }
1691
+ */
1692
+ timeout: e.oneOfType([e.number, e.shape({
1693
+ appear: e.number,
1694
+ enter: e.number,
1695
+ exit: e.number
1696
+ })])
1697
+ });
1698
+ function Cn(t) {
1699
+ return le("MuiBackdrop", t);
1700
+ }
1701
+ ae("MuiBackdrop", ["root", "invisible"]);
1702
+ const wn = (t) => {
1703
+ const {
1704
+ ownerState: n,
1705
+ ...o
1706
+ } = t;
1707
+ return o;
1708
+ }, Mn = (t) => {
1709
+ const {
1710
+ classes: n,
1711
+ invisible: o
1712
+ } = t;
1713
+ return ue({
1714
+ root: ["root", o && "invisible"]
1715
+ }, Cn, n);
1716
+ }, kn = G("div", {
1717
+ name: "MuiBackdrop",
1718
+ slot: "Root",
1719
+ overridesResolver: (t, n) => {
1720
+ const {
1721
+ ownerState: o
1722
+ } = t;
1723
+ return [n.root, o.invisible && n.invisible];
1724
+ }
1725
+ })({
1726
+ position: "fixed",
1727
+ display: "flex",
1728
+ alignItems: "center",
1729
+ justifyContent: "center",
1730
+ right: 0,
1731
+ bottom: 0,
1732
+ top: 0,
1733
+ left: 0,
1734
+ backgroundColor: "rgba(0, 0, 0, 0.5)",
1735
+ WebkitTapHighlightColor: "transparent",
1736
+ variants: [{
1737
+ props: {
1738
+ invisible: !0
1739
+ },
1740
+ style: {
1741
+ backgroundColor: "transparent"
1742
+ }
1743
+ }]
1744
+ }), kt = /* @__PURE__ */ p.forwardRef(function(n, o) {
1745
+ const r = ce({
1746
+ props: n,
1747
+ name: "MuiBackdrop"
1748
+ }), {
1749
+ children: i,
1750
+ className: s,
1751
+ component: a = "div",
1752
+ invisible: l = !1,
1753
+ open: c,
1754
+ components: d = {},
1755
+ componentsProps: y = {},
1756
+ slotProps: g = {},
1757
+ slots: x = {},
1758
+ TransitionComponent: f,
1759
+ transitionDuration: b,
1760
+ ...O
1761
+ } = r, S = {
1762
+ ...r,
1763
+ component: a,
1764
+ invisible: l
1765
+ }, T = Mn(S), C = {
1766
+ transition: f,
1767
+ root: d.Root,
1768
+ ...x
1769
+ }, u = {
1770
+ ...y,
1771
+ ...g
1772
+ }, m = {
1773
+ slots: C,
1774
+ slotProps: u
1775
+ }, [v, N] = ie("root", {
1776
+ elementType: kn,
1777
+ externalForwardedProps: m,
1778
+ className: W(T.root, s),
1779
+ ownerState: S
1780
+ }), [R, P] = ie("transition", {
1781
+ elementType: Mt,
1782
+ externalForwardedProps: m,
1783
+ ownerState: S
1784
+ }), w = wn(P);
1785
+ return /* @__PURE__ */ I(R, {
1786
+ in: c,
1787
+ timeout: b,
1788
+ ...O,
1789
+ ...w,
1790
+ children: /* @__PURE__ */ I(v, {
1791
+ "aria-hidden": !0,
1792
+ ...N,
1793
+ classes: T,
1794
+ ref: o,
1795
+ children: i
1796
+ })
1797
+ });
1798
+ });
1799
+ process.env.NODE_ENV !== "production" && (kt.propTypes = {
1800
+ // ┌────────────────────────────── Warning ──────────────────────────────┐
1801
+ // │ These PropTypes are generated from the TypeScript type definitions. │
1802
+ // │ To update them, edit the d.ts file and run `pnpm proptypes`. │
1803
+ // └─────────────────────────────────────────────────────────────────────┘
1804
+ /**
1805
+ * The content of the component.
1806
+ */
1807
+ children: e.node,
1808
+ /**
1809
+ * Override or extend the styles applied to the component.
1810
+ */
1811
+ classes: e.object,
1812
+ /**
1813
+ * @ignore
1814
+ */
1815
+ className: e.string,
1816
+ /**
1817
+ * The component used for the root node.
1818
+ * Either a string to use a HTML element or a component.
1819
+ */
1820
+ component: e.elementType,
1821
+ /**
1822
+ * The components used for each slot inside.
1823
+ *
1824
+ * @deprecated Use the `slots` prop instead. This prop will be removed in v7. See [Migrating from deprecated APIs](https://mui.com/material-ui/migration/migrating-from-deprecated-apis/) for more details.
1825
+ *
1826
+ * @default {}
1827
+ */
1828
+ components: e.shape({
1829
+ Root: e.elementType
1830
+ }),
1831
+ /**
1832
+ * The extra props for the slot components.
1833
+ * You can override the existing props or add new ones.
1834
+ *
1835
+ * @deprecated Use the `slotProps` prop instead. This prop will be removed in v7. See [Migrating from deprecated APIs](https://mui.com/material-ui/migration/migrating-from-deprecated-apis/) for more details.
1836
+ *
1837
+ * @default {}
1838
+ */
1839
+ componentsProps: e.shape({
1840
+ root: e.object
1841
+ }),
1842
+ /**
1843
+ * If `true`, the backdrop is invisible.
1844
+ * It can be used when rendering a popover or a custom select component.
1845
+ * @default false
1846
+ */
1847
+ invisible: e.bool,
1848
+ /**
1849
+ * If `true`, the component is shown.
1850
+ */
1851
+ open: e.bool.isRequired,
1852
+ /**
1853
+ * The props used for each slot inside.
1854
+ * @default {}
1855
+ */
1856
+ slotProps: e.shape({
1857
+ root: e.oneOfType([e.func, e.object]),
1858
+ transition: e.oneOfType([e.func, e.object])
1859
+ }),
1860
+ /**
1861
+ * The components used for each slot inside.
1862
+ * @default {}
1863
+ */
1864
+ slots: e.shape({
1865
+ root: e.elementType,
1866
+ transition: e.elementType
1867
+ }),
1868
+ /**
1869
+ * The system prop that allows defining system overrides as well as additional CSS styles.
1870
+ */
1871
+ sx: e.oneOfType([e.arrayOf(e.oneOfType([e.func, e.object, e.bool])), e.func, e.object]),
1872
+ /**
1873
+ * The component used for the transition.
1874
+ * [Follow this guide](https://mui.com/material-ui/transitions/#transitioncomponent-prop) to learn more about the requirements for this component.
1875
+ * @default Fade
1876
+ */
1877
+ TransitionComponent: e.elementType,
1878
+ /**
1879
+ * The duration for the transition, in milliseconds.
1880
+ * You may specify a single timeout for all transitions, or individually with an object.
1881
+ */
1882
+ transitionDuration: e.oneOfType([e.number, e.shape({
1883
+ appear: e.number,
1884
+ enter: e.number,
1885
+ exit: e.number
1886
+ })])
1887
+ });
1888
+ function Dn(t) {
1889
+ return typeof t == "function" ? t() : t;
1890
+ }
1891
+ function In(t) {
1892
+ return t ? t.props.hasOwnProperty("in") : !1;
1893
+ }
1894
+ const xe = new gn();
1895
+ function jn(t) {
1896
+ const {
1897
+ container: n,
1898
+ disableEscapeKeyDown: o = !1,
1899
+ disableScrollLock: r = !1,
1900
+ closeAfterTransition: i = !1,
1901
+ onTransitionEnter: s,
1902
+ onTransitionExited: a,
1903
+ children: l,
1904
+ onClose: c,
1905
+ open: d,
1906
+ rootRef: y
1907
+ } = t, g = p.useRef({}), x = p.useRef(null), f = p.useRef(null), b = X(f, y), [O, S] = p.useState(!d), T = In(l);
1908
+ let C = !0;
1909
+ (t["aria-hidden"] === "false" || t["aria-hidden"] === !1) && (C = !1);
1910
+ const u = () => z(x.current), m = () => (g.current.modalRef = f.current, g.current.mount = x.current, g.current), v = () => {
1911
+ xe.mount(m(), {
1912
+ disableScrollLock: r
1913
+ }), f.current && (f.current.scrollTop = 0);
1914
+ }, N = Xe(() => {
1915
+ const h = Dn(n) || u().body;
1916
+ xe.add(m(), h), f.current && v();
1917
+ }), R = () => xe.isTopModal(m()), P = Xe((h) => {
1918
+ x.current = h, h && (d && R() ? v() : f.current && be(f.current, C));
1919
+ }), w = p.useCallback(() => {
1920
+ xe.remove(m(), C);
1921
+ }, [C]);
1922
+ p.useEffect(() => () => {
1923
+ w();
1924
+ }, [w]), p.useEffect(() => {
1925
+ d ? N() : (!T || !i) && w();
1926
+ }, [d, w, T, i, N]);
1927
+ const F = (h) => (E) => {
1928
+ var M;
1929
+ (M = h.onKeyDown) == null || M.call(h, E), !(E.key !== "Escape" || E.which === 229 || // Wait until IME is settled.
1930
+ !R()) && (o || (E.stopPropagation(), c && c(E, "escapeKeyDown")));
1931
+ }, A = (h) => (E) => {
1932
+ var M;
1933
+ (M = h.onClick) == null || M.call(h, E), E.target === E.currentTarget && c && c(E, "backdropClick");
1934
+ };
1935
+ return {
1936
+ getRootProps: (h = {}) => {
1937
+ const E = yt(t);
1938
+ delete E.onTransitionEnter, delete E.onTransitionExited;
1939
+ const M = {
1940
+ ...E,
1941
+ ...h
1942
+ };
1943
+ return {
1944
+ /*
1945
+ * Marking an element with the role presentation indicates to assistive technology
1946
+ * that this element should be ignored; it exists to support the web application and
1947
+ * is not meant for humans to interact with directly.
1948
+ * https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/no-static-element-interactions.md
1949
+ */
1950
+ role: "presentation",
1951
+ ...M,
1952
+ onKeyDown: F(M),
1953
+ ref: b
1954
+ };
1955
+ },
1956
+ getBackdropProps: (h = {}) => {
1957
+ const E = h;
1958
+ return {
1959
+ "aria-hidden": !0,
1960
+ ...E,
1961
+ onClick: A(E),
1962
+ open: d
1963
+ };
1964
+ },
1965
+ getTransitionProps: () => {
1966
+ const h = () => {
1967
+ S(!1), s && s();
1968
+ }, E = () => {
1969
+ S(!0), a && a(), i && w();
1970
+ };
1971
+ return {
1972
+ onEnter: Ye(h, l == null ? void 0 : l.props.onEnter),
1973
+ onExited: Ye(E, l == null ? void 0 : l.props.onExited)
1974
+ };
1975
+ },
1976
+ rootRef: b,
1977
+ portalRef: P,
1978
+ isTopModal: R,
1979
+ exited: O,
1980
+ hasTransition: T
1981
+ };
1982
+ }
1983
+ function Ln(t) {
1984
+ return le("MuiModal", t);
1985
+ }
1986
+ ae("MuiModal", ["root", "hidden", "backdrop"]);
1987
+ const Fn = (t) => {
1988
+ const {
1989
+ open: n,
1990
+ exited: o,
1991
+ classes: r
1992
+ } = t;
1993
+ return ue({
1994
+ root: ["root", !n && o && "hidden"],
1995
+ backdrop: ["backdrop"]
1996
+ }, Ln, r);
1997
+ }, An = G("div", {
1998
+ name: "MuiModal",
1999
+ slot: "Root",
2000
+ overridesResolver: (t, n) => {
2001
+ const {
2002
+ ownerState: o
2003
+ } = t;
2004
+ return [n.root, !o.open && o.exited && n.hidden];
2005
+ }
2006
+ })(ut(({
2007
+ theme: t
2008
+ }) => ({
2009
+ position: "fixed",
2010
+ zIndex: (t.vars || t).zIndex.modal,
2011
+ right: 0,
2012
+ bottom: 0,
2013
+ top: 0,
2014
+ left: 0,
2015
+ variants: [{
2016
+ props: ({
2017
+ ownerState: n
2018
+ }) => !n.open && n.exited,
2019
+ style: {
2020
+ visibility: "hidden"
2021
+ }
2022
+ }]
2023
+ }))), Vn = G(kt, {
2024
+ name: "MuiModal",
2025
+ slot: "Backdrop",
2026
+ overridesResolver: (t, n) => n.backdrop
2027
+ })({
2028
+ zIndex: -1
2029
+ }), Dt = /* @__PURE__ */ p.forwardRef(function(n, o) {
2030
+ const r = ce({
2031
+ name: "MuiModal",
2032
+ props: n
2033
+ }), {
2034
+ BackdropComponent: i = Vn,
2035
+ BackdropProps: s,
2036
+ classes: a,
2037
+ className: l,
2038
+ closeAfterTransition: c = !1,
2039
+ children: d,
2040
+ container: y,
2041
+ component: g,
2042
+ components: x = {},
2043
+ componentsProps: f = {},
2044
+ disableAutoFocus: b = !1,
2045
+ disableEnforceFocus: O = !1,
2046
+ disableEscapeKeyDown: S = !1,
2047
+ disablePortal: T = !1,
2048
+ disableRestoreFocus: C = !1,
2049
+ disableScrollLock: u = !1,
2050
+ hideBackdrop: m = !1,
2051
+ keepMounted: v = !1,
2052
+ onBackdropClick: N,
2053
+ onClose: R,
2054
+ onTransitionEnter: P,
2055
+ onTransitionExited: w,
2056
+ open: F,
2057
+ slotProps: A = {},
2058
+ slots: _ = {},
2059
+ // eslint-disable-next-line react/prop-types
2060
+ theme: U,
2061
+ ...k
2062
+ } = r, h = {
2063
+ ...r,
2064
+ closeAfterTransition: c,
2065
+ disableAutoFocus: b,
2066
+ disableEnforceFocus: O,
2067
+ disableEscapeKeyDown: S,
2068
+ disablePortal: T,
2069
+ disableRestoreFocus: C,
2070
+ disableScrollLock: u,
2071
+ hideBackdrop: m,
2072
+ keepMounted: v
2073
+ }, {
2074
+ getRootProps: E,
2075
+ getBackdropProps: M,
2076
+ getTransitionProps: V,
2077
+ portalRef: $,
2078
+ isTopModal: K,
2079
+ exited: pe,
2080
+ hasTransition: ge
2081
+ } = jn({
2082
+ ...h,
2083
+ rootRef: o
2084
+ }), Z = {
2085
+ ...h,
2086
+ exited: pe
2087
+ }, H = Fn(Z), J = {};
2088
+ if (d.props.tabIndex === void 0 && (J.tabIndex = "-1"), ge) {
2089
+ const {
2090
+ onEnter: L,
2091
+ onExited: q
2092
+ } = V();
2093
+ J.onEnter = L, J.onExited = q;
2094
+ }
2095
+ const de = {
2096
+ ...k,
2097
+ slots: {
2098
+ root: x.Root,
2099
+ backdrop: x.Backdrop,
2100
+ ..._
2101
+ },
2102
+ slotProps: {
2103
+ ...f,
2104
+ ...A
2105
+ }
2106
+ }, [Me, ke] = ie("root", {
2107
+ elementType: An,
2108
+ externalForwardedProps: de,
2109
+ getSlotProps: E,
2110
+ additionalProps: {
2111
+ ref: o,
2112
+ as: g
2113
+ },
2114
+ ownerState: Z,
2115
+ className: W(l, H == null ? void 0 : H.root, !Z.open && Z.exited && (H == null ? void 0 : H.hidden))
2116
+ }), [De, D] = ie("backdrop", {
2117
+ elementType: i,
2118
+ externalForwardedProps: de,
2119
+ additionalProps: s,
2120
+ getSlotProps: (L) => M({
2121
+ ...L,
2122
+ onClick: (q) => {
2123
+ N && N(q), L != null && L.onClick && L.onClick(q);
2124
+ }
2125
+ }),
2126
+ className: W(s == null ? void 0 : s.className, H == null ? void 0 : H.backdrop),
2127
+ ownerState: Z
2128
+ }), j = X(s == null ? void 0 : s.ref, D.ref);
2129
+ return !v && !F && (!ge || pe) ? null : /* @__PURE__ */ I(Se, {
2130
+ ref: $,
2131
+ container: y,
2132
+ disablePortal: T,
2133
+ children: /* @__PURE__ */ $e(Me, {
2134
+ ...ke,
2135
+ children: [!m && i ? /* @__PURE__ */ I(De, {
2136
+ ...D,
2137
+ ref: j
2138
+ }) : null, /* @__PURE__ */ I(Ne, {
2139
+ disableEnforceFocus: O,
2140
+ disableAutoFocus: b,
2141
+ disableRestoreFocus: C,
2142
+ isEnabled: K,
2143
+ open: F,
2144
+ children: /* @__PURE__ */ p.cloneElement(d, J)
2145
+ })]
2146
+ })
2147
+ });
2148
+ });
2149
+ process.env.NODE_ENV !== "production" && (Dt.propTypes = {
2150
+ // ┌────────────────────────────── Warning ──────────────────────────────┐
2151
+ // │ These PropTypes are generated from the TypeScript type definitions. │
2152
+ // │ To update them, edit the d.ts file and run `pnpm proptypes`. │
2153
+ // └─────────────────────────────────────────────────────────────────────┘
2154
+ /**
2155
+ * A backdrop component. This prop enables custom backdrop rendering.
2156
+ * @deprecated Use `slots.backdrop` instead. While this prop currently works, it will be removed in the next major version.
2157
+ * Use the `slots.backdrop` prop to make your application ready for the next version of Material UI.
2158
+ * @default styled(Backdrop, {
2159
+ * name: 'MuiModal',
2160
+ * slot: 'Backdrop',
2161
+ * overridesResolver: (props, styles) => {
2162
+ * return styles.backdrop;
2163
+ * },
2164
+ * })({
2165
+ * zIndex: -1,
2166
+ * })
2167
+ */
2168
+ BackdropComponent: e.elementType,
2169
+ /**
2170
+ * Props applied to the [`Backdrop`](https://mui.com/material-ui/api/backdrop/) element.
2171
+ * @deprecated Use `slotProps.backdrop` instead.
2172
+ */
2173
+ BackdropProps: e.object,
2174
+ /**
2175
+ * A single child content element.
2176
+ */
2177
+ children: ye.isRequired,
2178
+ /**
2179
+ * Override or extend the styles applied to the component.
2180
+ */
2181
+ classes: e.object,
2182
+ /**
2183
+ * @ignore
2184
+ */
2185
+ className: e.string,
2186
+ /**
2187
+ * When set to true the Modal waits until a nested Transition is completed before closing.
2188
+ * @default false
2189
+ */
2190
+ closeAfterTransition: e.bool,
2191
+ /**
2192
+ * The component used for the root node.
2193
+ * Either a string to use a HTML element or a component.
2194
+ */
2195
+ component: e.elementType,
2196
+ /**
2197
+ * The components used for each slot inside.
2198
+ *
2199
+ * @deprecated Use the `slots` prop instead. This prop will be removed in v7. See [Migrating from deprecated APIs](https://mui.com/material-ui/migration/migrating-from-deprecated-apis/) for more details.
2200
+ *
2201
+ * @default {}
2202
+ */
2203
+ components: e.shape({
2204
+ Backdrop: e.elementType,
2205
+ Root: e.elementType
2206
+ }),
2207
+ /**
2208
+ * The extra props for the slot components.
2209
+ * You can override the existing props or add new ones.
2210
+ *
2211
+ * @deprecated Use the `slotProps` prop instead. This prop will be removed in v7. See [Migrating from deprecated APIs](https://mui.com/material-ui/migration/migrating-from-deprecated-apis/) for more details.
2212
+ *
2213
+ * @default {}
2214
+ */
2215
+ componentsProps: e.shape({
2216
+ backdrop: e.oneOfType([e.func, e.object]),
2217
+ root: e.oneOfType([e.func, e.object])
2218
+ }),
2219
+ /**
2220
+ * An HTML element or function that returns one.
2221
+ * The `container` will have the portal children appended to it.
2222
+ *
2223
+ * You can also provide a callback, which is called in a React layout effect.
2224
+ * This lets you set the container from a ref, and also makes server-side rendering possible.
2225
+ *
2226
+ * By default, it uses the body of the top-level document object,
2227
+ * so it's simply `document.body` most of the time.
2228
+ */
2229
+ container: e.oneOfType([Ee, e.func]),
2230
+ /**
2231
+ * If `true`, the modal will not automatically shift focus to itself when it opens, and
2232
+ * replace it to the last focused element when it closes.
2233
+ * This also works correctly with any modal children that have the `disableAutoFocus` prop.
2234
+ *
2235
+ * Generally this should never be set to `true` as it makes the modal less
2236
+ * accessible to assistive technologies, like screen readers.
2237
+ * @default false
2238
+ */
2239
+ disableAutoFocus: e.bool,
2240
+ /**
2241
+ * If `true`, the modal will not prevent focus from leaving the modal while open.
2242
+ *
2243
+ * Generally this should never be set to `true` as it makes the modal less
2244
+ * accessible to assistive technologies, like screen readers.
2245
+ * @default false
2246
+ */
2247
+ disableEnforceFocus: e.bool,
2248
+ /**
2249
+ * If `true`, hitting escape will not fire the `onClose` callback.
2250
+ * @default false
2251
+ */
2252
+ disableEscapeKeyDown: e.bool,
2253
+ /**
2254
+ * The `children` will be under the DOM hierarchy of the parent component.
2255
+ * @default false
2256
+ */
2257
+ disablePortal: e.bool,
2258
+ /**
2259
+ * If `true`, the modal will not restore focus to previously focused element once
2260
+ * modal is hidden or unmounted.
2261
+ * @default false
2262
+ */
2263
+ disableRestoreFocus: e.bool,
2264
+ /**
2265
+ * Disable the scroll lock behavior.
2266
+ * @default false
2267
+ */
2268
+ disableScrollLock: e.bool,
2269
+ /**
2270
+ * If `true`, the backdrop is not rendered.
2271
+ * @default false
2272
+ */
2273
+ hideBackdrop: e.bool,
2274
+ /**
2275
+ * Always keep the children in the DOM.
2276
+ * This prop can be useful in SEO situation or
2277
+ * when you want to maximize the responsiveness of the Modal.
2278
+ * @default false
2279
+ */
2280
+ keepMounted: e.bool,
2281
+ /**
2282
+ * Callback fired when the backdrop is clicked.
2283
+ * @deprecated Use the `onClose` prop with the `reason` argument to handle the `backdropClick` events.
2284
+ */
2285
+ onBackdropClick: e.func,
2286
+ /**
2287
+ * Callback fired when the component requests to be closed.
2288
+ * The `reason` parameter can optionally be used to control the response to `onClose`.
2289
+ *
2290
+ * @param {object} event The event source of the callback.
2291
+ * @param {string} reason Can be: `"escapeKeyDown"`, `"backdropClick"`.
2292
+ */
2293
+ onClose: e.func,
2294
+ /**
2295
+ * A function called when a transition enters.
2296
+ */
2297
+ onTransitionEnter: e.func,
2298
+ /**
2299
+ * A function called when a transition has exited.
2300
+ */
2301
+ onTransitionExited: e.func,
2302
+ /**
2303
+ * If `true`, the component is shown.
2304
+ */
2305
+ open: e.bool.isRequired,
2306
+ /**
2307
+ * The props used for each slot inside the Modal.
2308
+ * @default {}
2309
+ */
2310
+ slotProps: e.shape({
2311
+ backdrop: e.oneOfType([e.func, e.object]),
2312
+ root: e.oneOfType([e.func, e.object])
2313
+ }),
2314
+ /**
2315
+ * The components used for each slot inside the Modal.
2316
+ * Either a string to use a HTML element or a component.
2317
+ * @default {}
2318
+ */
2319
+ slots: e.shape({
2320
+ backdrop: e.elementType,
2321
+ root: e.elementType
2322
+ }),
2323
+ /**
2324
+ * The system prop that allows defining system overrides as well as additional CSS styles.
2325
+ */
2326
+ sx: e.oneOfType([e.arrayOf(e.oneOfType([e.func, e.object, e.bool])), e.func, e.object])
2327
+ });
2328
+ function _n(t) {
2329
+ return le("MuiPaper", t);
2330
+ }
2331
+ ae("MuiPaper", ["root", "rounded", "outlined", "elevation", "elevation0", "elevation1", "elevation2", "elevation3", "elevation4", "elevation5", "elevation6", "elevation7", "elevation8", "elevation9", "elevation10", "elevation11", "elevation12", "elevation13", "elevation14", "elevation15", "elevation16", "elevation17", "elevation18", "elevation19", "elevation20", "elevation21", "elevation22", "elevation23", "elevation24"]);
2332
+ const $n = (t) => {
2333
+ const {
2334
+ square: n,
2335
+ elevation: o,
2336
+ variant: r,
2337
+ classes: i
2338
+ } = t, s = {
2339
+ root: ["root", r, !n && "rounded", r === "elevation" && `elevation${o}`]
2340
+ };
2341
+ return ue(s, _n, i);
2342
+ }, Un = G("div", {
2343
+ name: "MuiPaper",
2344
+ slot: "Root",
2345
+ overridesResolver: (t, n) => {
2346
+ const {
2347
+ ownerState: o
2348
+ } = t;
2349
+ return [n.root, n[o.variant], !o.square && n.rounded, o.variant === "elevation" && n[`elevation${o.elevation}`]];
2350
+ }
2351
+ })(ut(({
2352
+ theme: t
2353
+ }) => ({
2354
+ backgroundColor: (t.vars || t).palette.background.paper,
2355
+ color: (t.vars || t).palette.text.primary,
2356
+ transition: t.transitions.create("box-shadow"),
2357
+ variants: [{
2358
+ props: ({
2359
+ ownerState: n
2360
+ }) => !n.square,
2361
+ style: {
2362
+ borderRadius: t.shape.borderRadius
2363
+ }
2364
+ }, {
2365
+ props: {
2366
+ variant: "outlined"
2367
+ },
2368
+ style: {
2369
+ border: `1px solid ${(t.vars || t).palette.divider}`
2370
+ }
2371
+ }, {
2372
+ props: {
2373
+ variant: "elevation"
2374
+ },
2375
+ style: {
2376
+ boxShadow: "var(--Paper-shadow)",
2377
+ backgroundImage: "var(--Paper-overlay)"
2378
+ }
2379
+ }]
2380
+ }))), It = /* @__PURE__ */ p.forwardRef(function(n, o) {
2381
+ var f;
2382
+ const r = ce({
2383
+ props: n,
2384
+ name: "MuiPaper"
2385
+ }), i = Ue(), {
2386
+ className: s,
2387
+ component: a = "div",
2388
+ elevation: l = 1,
2389
+ square: c = !1,
2390
+ variant: d = "elevation",
2391
+ ...y
2392
+ } = r, g = {
2393
+ ...r,
2394
+ component: a,
2395
+ elevation: l,
2396
+ square: c,
2397
+ variant: d
2398
+ }, x = $n(g);
2399
+ return process.env.NODE_ENV !== "production" && i.shadows[l] === void 0 && console.error([`MUI: The elevation provided <Paper elevation={${l}}> is not available in the theme.`, `Please make sure that \`theme.shadows[${l}]\` is defined.`].join(`
2400
+ `)), /* @__PURE__ */ I(Un, {
2401
+ as: a,
2402
+ ownerState: g,
2403
+ className: W(x.root, s),
2404
+ ref: o,
2405
+ ...y,
2406
+ style: {
2407
+ ...d === "elevation" && {
2408
+ "--Paper-shadow": (i.vars || i).shadows[l],
2409
+ ...i.vars && {
2410
+ "--Paper-overlay": (f = i.vars.overlays) == null ? void 0 : f[l]
2411
+ },
2412
+ ...!i.vars && i.palette.mode === "dark" && {
2413
+ "--Paper-overlay": `linear-gradient(${We("#fff", ze(l))}, ${We("#fff", ze(l))})`
2414
+ }
2415
+ },
2416
+ ...y.style
2417
+ }
2418
+ });
2419
+ });
2420
+ process.env.NODE_ENV !== "production" && (It.propTypes = {
2421
+ // ┌────────────────────────────── Warning ──────────────────────────────┐
2422
+ // │ These PropTypes are generated from the TypeScript type definitions. │
2423
+ // │ To update them, edit the d.ts file and run `pnpm proptypes`. │
2424
+ // └─────────────────────────────────────────────────────────────────────┘
2425
+ /**
2426
+ * The content of the component.
2427
+ */
2428
+ children: e.node,
2429
+ /**
2430
+ * Override or extend the styles applied to the component.
2431
+ */
2432
+ classes: e.object,
2433
+ /**
2434
+ * @ignore
2435
+ */
2436
+ className: e.string,
2437
+ /**
2438
+ * The component used for the root node.
2439
+ * Either a string to use a HTML element or a component.
2440
+ */
2441
+ component: e.elementType,
2442
+ /**
2443
+ * Shadow depth, corresponds to `dp` in the spec.
2444
+ * It accepts values between 0 and 24 inclusive.
2445
+ * @default 1
2446
+ */
2447
+ elevation: Ce(bt, (t) => {
2448
+ const {
2449
+ elevation: n,
2450
+ variant: o
2451
+ } = t;
2452
+ return n > 0 && o === "outlined" ? new Error(`MUI: Combining \`elevation={${n}}\` with \`variant="${o}"\` has no effect. Either use \`elevation={0}\` or use a different \`variant\`.`) : null;
2453
+ }),
2454
+ /**
2455
+ * If `true`, rounded corners are disabled.
2456
+ * @default false
2457
+ */
2458
+ square: e.bool,
2459
+ /**
2460
+ * @ignore
2461
+ */
2462
+ style: e.object,
2463
+ /**
2464
+ * The system prop that allows defining system overrides as well as additional CSS styles.
2465
+ */
2466
+ sx: e.oneOfType([e.arrayOf(e.oneOfType([e.func, e.object, e.bool])), e.func, e.object]),
2467
+ /**
2468
+ * The variant to use.
2469
+ * @default 'elevation'
2470
+ */
2471
+ variant: e.oneOfType([e.oneOf(["elevation", "outlined"]), e.string])
2472
+ });
2473
+ function qn(t) {
2474
+ return le("MuiPopover", t);
2475
+ }
2476
+ ae("MuiPopover", ["root", "paper"]);
2477
+ function ot(t, n) {
2478
+ let o = 0;
2479
+ return typeof n == "number" ? o = n : n === "center" ? o = t.height / 2 : n === "bottom" && (o = t.height), o;
2480
+ }
2481
+ function rt(t, n) {
2482
+ let o = 0;
2483
+ return typeof n == "number" ? o = n : n === "center" ? o = t.width / 2 : n === "right" && (o = t.width), o;
2484
+ }
2485
+ function st(t) {
2486
+ return [t.horizontal, t.vertical].map((n) => typeof n == "number" ? `${n}px` : n).join(" ");
2487
+ }
2488
+ function Re(t) {
2489
+ return typeof t == "function" ? t() : t;
2490
+ }
2491
+ const Hn = (t) => {
2492
+ const {
2493
+ classes: n
2494
+ } = t;
2495
+ return ue({
2496
+ root: ["root"],
2497
+ paper: ["paper"]
2498
+ }, qn, n);
2499
+ }, Bn = G(Dt, {
2500
+ name: "MuiPopover",
2501
+ slot: "Root",
2502
+ overridesResolver: (t, n) => n.root
2503
+ })({}), jt = G(It, {
2504
+ name: "MuiPopover",
2505
+ slot: "Paper",
2506
+ overridesResolver: (t, n) => n.paper
2507
+ })({
2508
+ position: "absolute",
2509
+ overflowY: "auto",
2510
+ overflowX: "hidden",
2511
+ // So we see the popover when it's empty.
2512
+ // It's most likely on issue on userland.
2513
+ minWidth: 16,
2514
+ minHeight: 16,
2515
+ maxWidth: "calc(100% - 32px)",
2516
+ maxHeight: "calc(100% - 32px)",
2517
+ // We disable the focus ring for mouse, touch and keyboard users.
2518
+ outline: 0
2519
+ }), Lt = /* @__PURE__ */ p.forwardRef(function(n, o) {
2520
+ const r = ce({
2521
+ props: n,
2522
+ name: "MuiPopover"
2523
+ }), {
2524
+ action: i,
2525
+ anchorEl: s,
2526
+ anchorOrigin: a = {
2527
+ vertical: "top",
2528
+ horizontal: "left"
2529
+ },
2530
+ anchorPosition: l,
2531
+ anchorReference: c = "anchorEl",
2532
+ children: d,
2533
+ className: y,
2534
+ container: g,
2535
+ elevation: x = 8,
2536
+ marginThreshold: f = 16,
2537
+ open: b,
2538
+ PaperProps: O = {},
2539
+ slots: S = {},
2540
+ slotProps: T = {},
2541
+ transformOrigin: C = {
2542
+ vertical: "top",
2543
+ horizontal: "left"
2544
+ },
2545
+ TransitionComponent: u = Oe,
2546
+ transitionDuration: m = "auto",
2547
+ TransitionProps: {
2548
+ onEntering: v,
2549
+ ...N
2550
+ } = {},
2551
+ disableScrollLock: R = !1,
2552
+ ...P
2553
+ } = r, w = (T == null ? void 0 : T.paper) ?? O, F = p.useRef(), A = {
2554
+ ...r,
2555
+ anchorOrigin: a,
2556
+ anchorReference: c,
2557
+ elevation: x,
2558
+ marginThreshold: f,
2559
+ externalPaperSlotProps: w,
2560
+ transformOrigin: C,
2561
+ TransitionComponent: u,
2562
+ transitionDuration: m,
2563
+ TransitionProps: N
2564
+ }, _ = Hn(A), U = p.useCallback(() => {
2565
+ if (c === "anchorPosition")
2566
+ return process.env.NODE_ENV !== "production" && (l || console.error('MUI: You need to provide a `anchorPosition` prop when using <Popover anchorReference="anchorPosition" />.')), l;
2567
+ const D = Re(s), j = D && D.nodeType === 1 ? D : z(F.current).body, L = j.getBoundingClientRect();
2568
+ if (process.env.NODE_ENV !== "production") {
2569
+ const q = j.getBoundingClientRect();
2570
+ process.env.NODE_ENV !== "test" && q.top === 0 && q.left === 0 && q.right === 0 && q.bottom === 0 && console.warn(["MUI: The `anchorEl` prop provided to the component is invalid.", "The anchor element should be part of the document layout.", "Make sure the element is present in the document or that it's not display none."].join(`
2571
+ `));
2572
+ }
2573
+ return {
2574
+ top: L.top + ot(L, a.vertical),
2575
+ left: L.left + rt(L, a.horizontal)
2576
+ };
2577
+ }, [s, a.horizontal, a.vertical, l, c]), k = p.useCallback((D) => ({
2578
+ vertical: ot(D, C.vertical),
2579
+ horizontal: rt(D, C.horizontal)
2580
+ }), [C.horizontal, C.vertical]), h = p.useCallback((D) => {
2581
+ const j = {
2582
+ width: D.offsetWidth,
2583
+ height: D.offsetHeight
2584
+ }, L = k(j);
2585
+ if (c === "none")
2586
+ return {
2587
+ top: null,
2588
+ left: null,
2589
+ transformOrigin: st(L)
2590
+ };
2591
+ const q = U();
2592
+ let ne = q.top - L.vertical, oe = q.left - L.horizontal;
2593
+ const qe = ne + j.height, He = oe + j.width, Be = te(Re(s)), fe = Be.innerHeight - f, Ke = Be.innerWidth - f;
2594
+ if (f !== null && ne < f) {
2595
+ const B = ne - f;
2596
+ ne -= B, L.vertical += B;
2597
+ } else if (f !== null && qe > fe) {
2598
+ const B = qe - fe;
2599
+ ne -= B, L.vertical += B;
2600
+ }
2601
+ if (process.env.NODE_ENV !== "production" && j.height > fe && j.height && fe && console.error(["MUI: The popover component is too tall.", `Some part of it can not be seen on the screen (${j.height - fe}px).`, "Please consider adding a `max-height` to improve the user-experience."].join(`
2602
+ `)), f !== null && oe < f) {
2603
+ const B = oe - f;
2604
+ oe -= B, L.horizontal += B;
2605
+ } else if (He > Ke) {
2606
+ const B = He - Ke;
2607
+ oe -= B, L.horizontal += B;
2608
+ }
2609
+ return {
2610
+ top: `${Math.round(ne)}px`,
2611
+ left: `${Math.round(oe)}px`,
2612
+ transformOrigin: st(L)
2613
+ };
2614
+ }, [s, c, U, k, f]), [E, M] = p.useState(b), V = p.useCallback(() => {
2615
+ const D = F.current;
2616
+ if (!D)
2617
+ return;
2618
+ const j = h(D);
2619
+ j.top !== null && D.style.setProperty("top", j.top), j.left !== null && (D.style.left = j.left), D.style.transformOrigin = j.transformOrigin, M(!0);
2620
+ }, [h]);
2621
+ p.useEffect(() => (R && window.addEventListener("scroll", V), () => window.removeEventListener("scroll", V)), [s, R, V]);
2622
+ const $ = (D, j) => {
2623
+ v && v(D, j), V();
2624
+ }, K = () => {
2625
+ M(!1);
2626
+ };
2627
+ p.useEffect(() => {
2628
+ b && V();
2629
+ }), p.useImperativeHandle(i, () => b ? {
2630
+ updatePosition: () => {
2631
+ V();
2632
+ }
2633
+ } : null, [b, V]), p.useEffect(() => {
2634
+ if (!b)
2635
+ return;
2636
+ const D = Yt(() => {
2637
+ V();
2638
+ }), j = te(s);
2639
+ return j.addEventListener("resize", D), () => {
2640
+ D.clear(), j.removeEventListener("resize", D);
2641
+ };
2642
+ }, [s, b, V]);
2643
+ let pe = m;
2644
+ m === "auto" && !u.muiSupportAuto && (pe = void 0);
2645
+ const ge = g || (s ? z(Re(s)).body : void 0), Z = {
2646
+ slots: S,
2647
+ slotProps: {
2648
+ ...T,
2649
+ paper: w
2650
+ }
2651
+ }, [H, J] = ie("paper", {
2652
+ elementType: jt,
2653
+ externalForwardedProps: Z,
2654
+ additionalProps: {
2655
+ elevation: x,
2656
+ className: W(_.paper, w == null ? void 0 : w.className),
2657
+ style: E ? w.style : {
2658
+ ...w.style,
2659
+ opacity: 0
2660
+ }
2661
+ },
2662
+ ownerState: A
2663
+ }), [de, {
2664
+ slotProps: Me,
2665
+ ...ke
2666
+ }] = ie("root", {
2667
+ elementType: Bn,
2668
+ externalForwardedProps: Z,
2669
+ additionalProps: {
2670
+ slotProps: {
2671
+ backdrop: {
2672
+ invisible: !0
2673
+ }
2674
+ },
2675
+ container: ge,
2676
+ open: b
2677
+ },
2678
+ ownerState: A,
2679
+ className: W(_.root, y)
2680
+ }), De = X(F, J.ref);
2681
+ return /* @__PURE__ */ I(de, {
2682
+ ...ke,
2683
+ ...!un(de) && {
2684
+ slotProps: Me,
2685
+ disableScrollLock: R
2686
+ },
2687
+ ...P,
2688
+ ref: o,
2689
+ children: /* @__PURE__ */ I(u, {
2690
+ appear: !0,
2691
+ in: b,
2692
+ onEntering: $,
2693
+ onExited: K,
2694
+ timeout: pe,
2695
+ ...N,
2696
+ children: /* @__PURE__ */ I(H, {
2697
+ ...J,
2698
+ ref: De,
2699
+ children: d
2700
+ })
2701
+ })
2702
+ });
2703
+ });
2704
+ process.env.NODE_ENV !== "production" && (Lt.propTypes = {
2705
+ // ┌────────────────────────────── Warning ──────────────────────────────┐
2706
+ // │ These PropTypes are generated from the TypeScript type definitions. │
2707
+ // │ To update them, edit the d.ts file and run `pnpm proptypes`. │
2708
+ // └─────────────────────────────────────────────────────────────────────┘
2709
+ /**
2710
+ * A ref for imperative actions.
2711
+ * It currently only supports updatePosition() action.
2712
+ */
2713
+ action: Bt,
2714
+ /**
2715
+ * An HTML element, [PopoverVirtualElement](https://mui.com/material-ui/react-popover/#virtual-element),
2716
+ * or a function that returns either.
2717
+ * It's used to set the position of the popover.
2718
+ */
2719
+ anchorEl: Ce(e.oneOfType([Ee, e.func]), (t) => {
2720
+ if (t.open && (!t.anchorReference || t.anchorReference === "anchorEl")) {
2721
+ const n = Re(t.anchorEl);
2722
+ if (n && n.nodeType === 1) {
2723
+ const o = n.getBoundingClientRect();
2724
+ if (process.env.NODE_ENV !== "test" && o.top === 0 && o.left === 0 && o.right === 0 && o.bottom === 0)
2725
+ return new Error(["MUI: The `anchorEl` prop provided to the component is invalid.", "The anchor element should be part of the document layout.", "Make sure the element is present in the document or that it's not display none."].join(`
2726
+ `));
2727
+ } else
2728
+ return new Error(["MUI: The `anchorEl` prop provided to the component is invalid.", `It should be an Element or PopoverVirtualElement instance but it's \`${n}\` instead.`].join(`
2729
+ `));
2730
+ }
2731
+ return null;
2732
+ }),
2733
+ /**
2734
+ * This is the point on the anchor where the popover's
2735
+ * `anchorEl` will attach to. This is not used when the
2736
+ * anchorReference is 'anchorPosition'.
2737
+ *
2738
+ * Options:
2739
+ * vertical: [top, center, bottom];
2740
+ * horizontal: [left, center, right].
2741
+ * @default {
2742
+ * vertical: 'top',
2743
+ * horizontal: 'left',
2744
+ * }
2745
+ */
2746
+ anchorOrigin: e.shape({
2747
+ horizontal: e.oneOfType([e.oneOf(["center", "left", "right"]), e.number]).isRequired,
2748
+ vertical: e.oneOfType([e.oneOf(["bottom", "center", "top"]), e.number]).isRequired
2749
+ }),
2750
+ /**
2751
+ * This is the position that may be used to set the position of the popover.
2752
+ * The coordinates are relative to the application's client area.
2753
+ */
2754
+ anchorPosition: e.shape({
2755
+ left: e.number.isRequired,
2756
+ top: e.number.isRequired
2757
+ }),
2758
+ /**
2759
+ * This determines which anchor prop to refer to when setting
2760
+ * the position of the popover.
2761
+ * @default 'anchorEl'
2762
+ */
2763
+ anchorReference: e.oneOf(["anchorEl", "anchorPosition", "none"]),
2764
+ /**
2765
+ * A backdrop component. This prop enables custom backdrop rendering.
2766
+ * @deprecated Use `slotProps.root.slots.backdrop` instead. While this prop currently works, it will be removed in the next major version.
2767
+ * Use the `slotProps.root.slots.backdrop` prop to make your application ready for the next version of Material UI.
2768
+ * @default styled(Backdrop, {
2769
+ * name: 'MuiModal',
2770
+ * slot: 'Backdrop',
2771
+ * overridesResolver: (props, styles) => {
2772
+ * return styles.backdrop;
2773
+ * },
2774
+ * })({
2775
+ * zIndex: -1,
2776
+ * })
2777
+ */
2778
+ BackdropComponent: e.elementType,
2779
+ /**
2780
+ * Props applied to the [`Backdrop`](/material-ui/api/backdrop/) element.
2781
+ * @deprecated Use `slotProps.root.slotProps.backdrop` instead.
2782
+ */
2783
+ BackdropProps: e.object,
2784
+ /**
2785
+ * The content of the component.
2786
+ */
2787
+ children: e.node,
2788
+ /**
2789
+ * Override or extend the styles applied to the component.
2790
+ */
2791
+ classes: e.object,
2792
+ /**
2793
+ * @ignore
2794
+ */
2795
+ className: e.string,
2796
+ /**
2797
+ * An HTML element, component instance, or function that returns either.
2798
+ * The `container` will passed to the Modal component.
2799
+ *
2800
+ * By default, it uses the body of the anchorEl's top-level document object,
2801
+ * so it's simply `document.body` most of the time.
2802
+ */
2803
+ container: e.oneOfType([Ee, e.func]),
2804
+ /**
2805
+ * Disable the scroll lock behavior.
2806
+ * @default false
2807
+ */
2808
+ disableScrollLock: e.bool,
2809
+ /**
2810
+ * The elevation of the popover.
2811
+ * @default 8
2812
+ */
2813
+ elevation: bt,
2814
+ /**
2815
+ * Specifies how close to the edge of the window the popover can appear.
2816
+ * If null, the popover will not be constrained by the window.
2817
+ * @default 16
2818
+ */
2819
+ marginThreshold: e.number,
2820
+ /**
2821
+ * Callback fired when the component requests to be closed.
2822
+ * The `reason` parameter can optionally be used to control the response to `onClose`.
2823
+ */
2824
+ onClose: e.func,
2825
+ /**
2826
+ * If `true`, the component is shown.
2827
+ */
2828
+ open: e.bool.isRequired,
2829
+ /**
2830
+ * Props applied to the [`Paper`](https://mui.com/material-ui/api/paper/) element.
2831
+ *
2832
+ * This prop is an alias for `slotProps.paper` and will be overriden by it if both are used.
2833
+ * @deprecated Use `slotProps.paper` instead.
2834
+ *
2835
+ * @default {}
2836
+ */
2837
+ PaperProps: e.shape({
2838
+ component: Kt
2839
+ }),
2840
+ /**
2841
+ * The props used for each slot inside.
2842
+ * @default {}
2843
+ */
2844
+ slotProps: e.shape({
2845
+ paper: e.oneOfType([e.func, e.object]),
2846
+ root: e.oneOfType([e.func, e.object])
2847
+ }),
2848
+ /**
2849
+ * The components used for each slot inside.
2850
+ * @default {}
2851
+ */
2852
+ slots: e.shape({
2853
+ paper: e.elementType,
2854
+ root: e.elementType
2855
+ }),
2856
+ /**
2857
+ * The system prop that allows defining system overrides as well as additional CSS styles.
2858
+ */
2859
+ sx: e.oneOfType([e.arrayOf(e.oneOfType([e.func, e.object, e.bool])), e.func, e.object]),
2860
+ /**
2861
+ * This is the point on the popover which
2862
+ * will attach to the anchor's origin.
2863
+ *
2864
+ * Options:
2865
+ * vertical: [top, center, bottom, x(px)];
2866
+ * horizontal: [left, center, right, x(px)].
2867
+ * @default {
2868
+ * vertical: 'top',
2869
+ * horizontal: 'left',
2870
+ * }
2871
+ */
2872
+ transformOrigin: e.shape({
2873
+ horizontal: e.oneOfType([e.oneOf(["center", "left", "right"]), e.number]).isRequired,
2874
+ vertical: e.oneOfType([e.oneOf(["bottom", "center", "top"]), e.number]).isRequired
2875
+ }),
2876
+ /**
2877
+ * The component used for the transition.
2878
+ * [Follow this guide](https://mui.com/material-ui/transitions/#transitioncomponent-prop) to learn more about the requirements for this component.
2879
+ * @default Grow
2880
+ */
2881
+ TransitionComponent: e.elementType,
2882
+ /**
2883
+ * Set to 'auto' to automatically calculate transition time based on height.
2884
+ * @default 'auto'
2885
+ */
2886
+ transitionDuration: e.oneOfType([e.oneOf(["auto"]), e.number, e.shape({
2887
+ appear: e.number,
2888
+ enter: e.number,
2889
+ exit: e.number
2890
+ })]),
2891
+ /**
2892
+ * Props applied to the transition element.
2893
+ * By default, the element is based on this [`Transition`](https://reactcommunity.org/react-transition-group/transition/) component.
2894
+ * @default {}
2895
+ */
2896
+ TransitionProps: e.object
2897
+ });
2898
+ function Kn(t) {
2899
+ return le("MuiMenu", t);
2900
+ }
2901
+ ae("MuiMenu", ["root", "paper", "list"]);
2902
+ const Wn = {
2903
+ vertical: "top",
2904
+ horizontal: "right"
2905
+ }, zn = {
2906
+ vertical: "top",
2907
+ horizontal: "left"
2908
+ }, Gn = (t) => {
2909
+ const {
2910
+ classes: n
2911
+ } = t;
2912
+ return ue({
2913
+ root: ["root"],
2914
+ paper: ["paper"],
2915
+ list: ["list"]
2916
+ }, Kn, n);
2917
+ }, Xn = G(Lt, {
2918
+ shouldForwardProp: (t) => _t(t) || t === "classes",
2919
+ name: "MuiMenu",
2920
+ slot: "Root",
2921
+ overridesResolver: (t, n) => n.root
2922
+ })({}), Yn = G(jt, {
2923
+ name: "MuiMenu",
2924
+ slot: "Paper",
2925
+ overridesResolver: (t, n) => n.paper
2926
+ })({
2927
+ // specZ: The maximum height of a simple menu should be one or more rows less than the view
2928
+ // height. This ensures a tappable area outside of the simple menu with which to dismiss
2929
+ // the menu.
2930
+ maxHeight: "calc(100% - 96px)",
2931
+ // Add iOS momentum scrolling for iOS < 13.0
2932
+ WebkitOverflowScrolling: "touch"
2933
+ }), Zn = G(Ct, {
2934
+ name: "MuiMenu",
2935
+ slot: "List",
2936
+ overridesResolver: (t, n) => n.list
2937
+ })({
2938
+ // We disable the focus ring for mouse, touch and keyboard users.
2939
+ outline: 0
2940
+ }), Jn = /* @__PURE__ */ p.forwardRef(function(n, o) {
2941
+ const r = ce({
2942
+ props: n,
2943
+ name: "MuiMenu"
2944
+ }), {
2945
+ autoFocus: i = !0,
2946
+ children: s,
2947
+ className: a,
2948
+ disableAutoFocusItem: l = !1,
2949
+ MenuListProps: c = {},
2950
+ onClose: d,
2951
+ open: y,
2952
+ PaperProps: g = {},
2953
+ PopoverClasses: x,
2954
+ transitionDuration: f = "auto",
2955
+ TransitionProps: {
2956
+ onEntering: b,
2957
+ ...O
2958
+ } = {},
2959
+ variant: S = "selectedMenu",
2960
+ slots: T = {},
2961
+ slotProps: C = {},
2962
+ ...u
2963
+ } = r, m = an(), v = {
2964
+ ...r,
2965
+ autoFocus: i,
2966
+ disableAutoFocusItem: l,
2967
+ MenuListProps: c,
2968
+ onEntering: b,
2969
+ PaperProps: g,
2970
+ transitionDuration: f,
2971
+ TransitionProps: O,
2972
+ variant: S
2973
+ }, N = Gn(v), R = i && !l && y, P = p.useRef(null), w = (E, M) => {
2974
+ P.current && P.current.adjustStyleForScrollbar(E, {
2975
+ direction: m ? "rtl" : "ltr"
2976
+ }), b && b(E, M);
2977
+ }, F = (E) => {
2978
+ E.key === "Tab" && (E.preventDefault(), d && d(E, "tabKeyDown"));
2979
+ };
2980
+ let A = -1;
2981
+ p.Children.map(s, (E, M) => {
2982
+ /* @__PURE__ */ p.isValidElement(E) && (process.env.NODE_ENV !== "production" && lt.isFragment(E) && console.error(["MUI: The Menu component doesn't accept a Fragment as a child.", "Consider providing an array instead."].join(`
2983
+ `)), E.props.disabled || (S === "selectedMenu" && E.props.selected || A === -1) && (A = M));
2984
+ });
2985
+ const _ = T.paper ?? Yn, U = C.paper ?? g, k = Je({
2986
+ elementType: T.root,
2987
+ externalSlotProps: C.root,
2988
+ ownerState: v,
2989
+ className: [N.root, a]
2990
+ }), h = Je({
2991
+ elementType: _,
2992
+ externalSlotProps: U,
2993
+ ownerState: v,
2994
+ className: N.paper
2995
+ });
2996
+ return /* @__PURE__ */ I(Xn, {
2997
+ onClose: d,
2998
+ anchorOrigin: {
2999
+ vertical: "bottom",
3000
+ horizontal: m ? "right" : "left"
3001
+ },
3002
+ transformOrigin: m ? Wn : zn,
3003
+ slots: {
3004
+ paper: _,
3005
+ root: T.root
3006
+ },
3007
+ slotProps: {
3008
+ root: k,
3009
+ paper: h
3010
+ },
3011
+ open: y,
3012
+ ref: o,
3013
+ transitionDuration: f,
3014
+ TransitionProps: {
3015
+ onEntering: w,
3016
+ ...O
3017
+ },
3018
+ ownerState: v,
3019
+ ...u,
3020
+ classes: x,
3021
+ children: /* @__PURE__ */ I(Zn, {
3022
+ onKeyDown: F,
3023
+ actions: P,
3024
+ autoFocus: i && (A === -1 || l),
3025
+ autoFocusItem: R,
3026
+ variant: S,
3027
+ ...c,
3028
+ className: W(N.list, c.className),
3029
+ children: s
3030
+ })
3031
+ });
3032
+ });
3033
+ process.env.NODE_ENV !== "production" && (Jn.propTypes = {
3034
+ // ┌────────────────────────────── Warning ──────────────────────────────┐
3035
+ // │ These PropTypes are generated from the TypeScript type definitions. │
3036
+ // │ To update them, edit the d.ts file and run `pnpm proptypes`. │
3037
+ // └─────────────────────────────────────────────────────────────────────┘
3038
+ /**
3039
+ * An HTML element, or a function that returns one.
3040
+ * It's used to set the position of the menu.
3041
+ */
3042
+ anchorEl: e.oneOfType([Ee, e.func]),
3043
+ /**
3044
+ * If `true` (Default) will focus the `[role="menu"]` if no focusable child is found. Disabled
3045
+ * children are not focusable. If you set this prop to `false` focus will be placed
3046
+ * on the parent modal container. This has severe accessibility implications
3047
+ * and should only be considered if you manage focus otherwise.
3048
+ * @default true
3049
+ */
3050
+ autoFocus: e.bool,
3051
+ /**
3052
+ * Menu contents, normally `MenuItem`s.
3053
+ */
3054
+ children: e.node,
3055
+ /**
3056
+ * Override or extend the styles applied to the component.
3057
+ */
3058
+ classes: e.object,
3059
+ /**
3060
+ * @ignore
3061
+ */
3062
+ className: e.string,
3063
+ /**
3064
+ * When opening the menu will not focus the active item but the `[role="menu"]`
3065
+ * unless `autoFocus` is also set to `false`. Not using the default means not
3066
+ * following WAI-ARIA authoring practices. Please be considerate about possible
3067
+ * accessibility implications.
3068
+ * @default false
3069
+ */
3070
+ disableAutoFocusItem: e.bool,
3071
+ /**
3072
+ * Props applied to the [`MenuList`](https://mui.com/material-ui/api/menu-list/) element.
3073
+ * @default {}
3074
+ */
3075
+ MenuListProps: e.object,
3076
+ /**
3077
+ * Callback fired when the component requests to be closed.
3078
+ *
3079
+ * @param {object} event The event source of the callback.
3080
+ * @param {string} reason Can be: `"escapeKeyDown"`, `"backdropClick"`, `"tabKeyDown"`.
3081
+ */
3082
+ onClose: e.func,
3083
+ /**
3084
+ * If `true`, the component is shown.
3085
+ */
3086
+ open: e.bool.isRequired,
3087
+ /**
3088
+ * @ignore
3089
+ */
3090
+ PaperProps: e.object,
3091
+ /**
3092
+ * `classes` prop applied to the [`Popover`](https://mui.com/material-ui/api/popover/) element.
3093
+ */
3094
+ PopoverClasses: e.object,
3095
+ /**
3096
+ * The props used for each slot inside.
3097
+ * @default {}
3098
+ */
3099
+ slotProps: e.shape({
3100
+ paper: e.oneOfType([e.func, e.object]),
3101
+ root: e.oneOfType([e.func, e.object])
3102
+ }),
3103
+ /**
3104
+ * The components used for each slot inside.
3105
+ * @default {}
3106
+ */
3107
+ slots: e.shape({
3108
+ paper: e.elementType,
3109
+ root: e.elementType
3110
+ }),
3111
+ /**
3112
+ * The system prop that allows defining system overrides as well as additional CSS styles.
3113
+ */
3114
+ sx: e.oneOfType([e.arrayOf(e.oneOfType([e.func, e.object, e.bool])), e.func, e.object]),
3115
+ /**
3116
+ * The length of the transition in `ms`, or 'auto'
3117
+ * @default 'auto'
3118
+ */
3119
+ transitionDuration: e.oneOfType([e.oneOf(["auto"]), e.number, e.shape({
3120
+ appear: e.number,
3121
+ enter: e.number,
3122
+ exit: e.number
3123
+ })]),
3124
+ /**
3125
+ * Props applied to the transition element.
3126
+ * By default, the element is based on this [`Transition`](https://reactcommunity.org/react-transition-group/transition/) component.
3127
+ * @default {}
3128
+ */
3129
+ TransitionProps: e.object,
3130
+ /**
3131
+ * The variant to use. Use `menu` to prevent selected items from impacting the initial focus.
3132
+ * @default 'selectedMenu'
3133
+ */
3134
+ variant: e.oneOf(["menu", "selectedMenu"])
3135
+ });
3136
+ export {
3137
+ Ee as H,
3138
+ Ot as L,
3139
+ Dt as M,
3140
+ It as P,
3141
+ Y as T,
3142
+ Pe as a,
3143
+ an as b,
3144
+ io as c,
3145
+ Yt as d,
3146
+ ye as e,
3147
+ un as f,
3148
+ we as g,
3149
+ lo as h,
3150
+ bt as i,
3151
+ Nt as j,
3152
+ Jn as k,
3153
+ xt as l,
3154
+ ao as m,
3155
+ z as n,
3156
+ te as o,
3157
+ ie as p,
3158
+ wt as r,
3159
+ Ue as u
3160
+ };