@evolver-fi/evolver-basics-admin-components 0.0.8

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 (69) hide show
  1. package/dist/ArrowBack-C8PcQDeL.js +161 -0
  2. package/dist/ArrowBack-C8PcQDeL.js.map +1 -0
  3. package/dist/BreadCrumbs-EFff4Rip.js +19 -0
  4. package/dist/BreadCrumbs-EFff4Rip.js.map +1 -0
  5. package/dist/BreadCrumbs.css +1 -0
  6. package/dist/ConfirmButton-jayUa8_J.js +16 -0
  7. package/dist/ConfirmButton-jayUa8_J.js.map +1 -0
  8. package/dist/ExpandMore-CCOUGfS4.js +14 -0
  9. package/dist/ExpandMore-CCOUGfS4.js.map +1 -0
  10. package/dist/JwtTokensRoute-C7ue3mI1.js +2334 -0
  11. package/dist/JwtTokensRoute-C7ue3mI1.js.map +1 -0
  12. package/dist/ScheduledTaskFormRoute-CcBBzEsv.js +1038 -0
  13. package/dist/ScheduledTaskFormRoute-CcBBzEsv.js.map +1 -0
  14. package/dist/SingleLogMessageRoute-yVcnPuBs.js +245 -0
  15. package/dist/SingleLogMessageRoute-yVcnPuBs.js.map +1 -0
  16. package/dist/SingleMessageRoute-wSsAUDru.js +254 -0
  17. package/dist/SingleMessageRoute-wSsAUDru.js.map +1 -0
  18. package/dist/TriggerablesRoute-i4z1o99f.js +3536 -0
  19. package/dist/TriggerablesRoute-i4z1o99f.js.map +1 -0
  20. package/dist/breadcrumbs/index.js +5 -0
  21. package/dist/breadcrumbs/index.js.map +1 -0
  22. package/dist/createSvgIcon-DHqCx8A0.js +5533 -0
  23. package/dist/createSvgIcon-DHqCx8A0.js.map +1 -0
  24. package/dist/jsx-runtime-B6kdoens.js +635 -0
  25. package/dist/jsx-runtime-B6kdoens.js.map +1 -0
  26. package/dist/jwt-tokens/index.js +7 -0
  27. package/dist/jwt-tokens/index.js.map +1 -0
  28. package/dist/main/index.js +34 -0
  29. package/dist/main/index.js.map +1 -0
  30. package/dist/message-log/index.js +10 -0
  31. package/dist/message-log/index.js.map +1 -0
  32. package/dist/message-sending/index.js +10 -0
  33. package/dist/message-sending/index.js.map +1 -0
  34. package/dist/scheduled-tasks/index.js +10 -0
  35. package/dist/scheduled-tasks/index.js.map +1 -0
  36. package/dist/triggerables/index.js +7 -0
  37. package/dist/triggerables/index.js.map +1 -0
  38. package/dist/types/admin-components/src/components/breadcrumbs/BreadCrumbs.d.ts +10 -0
  39. package/dist/types/admin-components/src/components/breadcrumbs/index.d.ts +1 -0
  40. package/dist/types/admin-components/src/index.d.ts +6 -0
  41. package/dist/types/admin-components/src/routes/jwt-tokens/JwtTokensRoute.d.ts +2 -0
  42. package/dist/types/admin-components/src/routes/jwt-tokens/index.d.ts +2 -0
  43. package/dist/types/admin-components/src/routes/jwt-tokens/loader.d.ts +11 -0
  44. package/dist/types/admin-components/src/routes/message-log/MessageLogRoute.d.ts +2 -0
  45. package/dist/types/admin-components/src/routes/message-log/SingleLogMessageRoute.d.ts +2 -0
  46. package/dist/types/admin-components/src/routes/message-log/index.d.ts +3 -0
  47. package/dist/types/admin-components/src/routes/message-log/loader.d.ts +7 -0
  48. package/dist/types/admin-components/src/routes/message-sending/MessageSendingRoute.d.ts +2 -0
  49. package/dist/types/admin-components/src/routes/message-sending/SingleMessageRoute.d.ts +2 -0
  50. package/dist/types/admin-components/src/routes/message-sending/index.d.ts +3 -0
  51. package/dist/types/admin-components/src/routes/message-sending/loader.d.ts +6 -0
  52. package/dist/types/admin-components/src/routes/scheduled-tasks/ScheduledTaskFormRoute.d.ts +2 -0
  53. package/dist/types/admin-components/src/routes/scheduled-tasks/ScheduledTasksRoute.d.ts +2 -0
  54. package/dist/types/admin-components/src/routes/scheduled-tasks/index.d.ts +3 -0
  55. package/dist/types/admin-components/src/routes/scheduled-tasks/loader.d.ts +9 -0
  56. package/dist/types/admin-components/src/routes/triggerables/TriggerablesRoute.d.ts +2 -0
  57. package/dist/types/admin-components/src/routes/triggerables/index.d.ts +2 -0
  58. package/dist/types/admin-components/src/routes/triggerables/loader.d.ts +9 -0
  59. package/dist/types/admin-ui/src/front-page/FrontPage.d.ts +2 -0
  60. package/dist/types/breadcrumbs.d.ts +2 -0
  61. package/dist/types/jwt-tokens.d.ts +2 -0
  62. package/dist/types/main.d.ts +2 -0
  63. package/dist/types/message-log.d.ts +2 -0
  64. package/dist/types/message-sending.d.ts +2 -0
  65. package/dist/types/scheduled-tasks.d.ts +2 -0
  66. package/dist/types/triggerables.d.ts +2 -0
  67. package/dist/validation-C1lKYJJR.js +6112 -0
  68. package/dist/validation-C1lKYJJR.js.map +1 -0
  69. package/package.json +82 -0
@@ -0,0 +1,3536 @@
1
+ import { j as p } from "./jsx-runtime-B6kdoens.js";
2
+ import * as m from "react";
3
+ import Z, { Children as an, isValidElement as Se, cloneElement as Re, useState as Ne } from "react";
4
+ import { Card as ln, CardHeader as cn, CircularProgress as un, CardContent as ct, Typography as ce, CardActions as dn, Tooltip as ut, IconButton as dt, Collapse as pn, Box as fn, TextField as gn, Button as hn } from "@mui/material";
5
+ import { P as t, _ as f, B as w, g as we, c as Me, a as Nt, r as mn, i as vn, C as bn, D as A, E as Oe, F as xn, G as yn, H as X, I as J, J as P, K as $e, L as Y, M as Q, N as Ot, O as En, Q as Ee, U as K, d as ve, V as pt, W as ft, X as $t, Y as Tn, Z as ke, $ as Ye, a0 as Cn, a1 as Sn, a2 as Rn } from "./createSvgIcon-DHqCx8A0.js";
6
+ import { ThemeContext as Nn, keyframes as Ze } from "@emotion/react";
7
+ import { d as jt } from "./ExpandMore-CCOUGfS4.js";
8
+ import Te from "react-dom";
9
+ import { useNavigate as On, useRevalidator as $n, useLoaderData as jn } from "react-router-dom";
10
+ function Pe(e, n) {
11
+ return process.env.NODE_ENV === "production" ? () => null : function(...r) {
12
+ return e(...r) || n(...r);
13
+ };
14
+ }
15
+ function wn(e) {
16
+ const {
17
+ prototype: n = {}
18
+ } = e;
19
+ return !!n.isReactComponent;
20
+ }
21
+ function Mn(e, n, o, r, i) {
22
+ const s = e[n], a = i || n;
23
+ if (s == null || // When server-side rendering React doesn't warn either.
24
+ // This is not an accurate check for SSR.
25
+ // This is only in place for emotion compat.
26
+ // TODO: Revisit once https://github.com/facebook/react/issues/20047 is resolved.
27
+ typeof window > "u")
28
+ return null;
29
+ let l;
30
+ return typeof s == "function" && !wn(s) && (l = "Did you accidentally provide a plain function component instead?"), l !== void 0 ? new Error(`Invalid ${r} \`${a}\` supplied to \`${o}\`. Expected an element type that can hold a ref. ${l} For more information see https://mui.com/r/caveat-with-refs-guide`) : null;
31
+ }
32
+ const wt = Pe(t.elementType, Mn), kn = t.oneOfType([t.func, t.object]);
33
+ function Pn(e) {
34
+ const n = typeof e;
35
+ switch (n) {
36
+ case "number":
37
+ return Number.isNaN(e) ? "NaN" : Number.isFinite(e) ? e !== Math.floor(e) ? "float" : "number" : "Infinity";
38
+ case "object":
39
+ return e === null ? "null" : e.constructor.name;
40
+ default:
41
+ return n;
42
+ }
43
+ }
44
+ function In(e) {
45
+ return typeof e == "number" && isFinite(e) && Math.floor(e) === e;
46
+ }
47
+ const Vn = Number.isInteger || In;
48
+ function Mt(e, n, o, r) {
49
+ const i = e[n];
50
+ if (i == null || !Vn(i)) {
51
+ const s = Pn(i);
52
+ return new RangeError(`Invalid ${r} \`${n}\` of type \`${s}\` supplied to \`${o}\`, expected \`integer\`.`);
53
+ }
54
+ return null;
55
+ }
56
+ function kt(e, n, ...o) {
57
+ return e[n] === void 0 ? null : Mt(e, n, ...o);
58
+ }
59
+ function Ue() {
60
+ return null;
61
+ }
62
+ kt.isRequired = Mt;
63
+ Ue.isRequired = Ue;
64
+ const An = process.env.NODE_ENV === "production" ? Ue : kt;
65
+ function Dn(e) {
66
+ return typeof e == "string";
67
+ }
68
+ function Bn(e, n, o) {
69
+ return e === void 0 || Dn(e) ? n : f({}, n, {
70
+ ownerState: f({}, n.ownerState, o)
71
+ });
72
+ }
73
+ function zn(e, n = []) {
74
+ if (e === void 0)
75
+ return {};
76
+ const o = {};
77
+ return Object.keys(e).filter((r) => r.match(/^on[A-Z]/) && typeof e[r] == "function" && !n.includes(r)).forEach((r) => {
78
+ o[r] = e[r];
79
+ }), o;
80
+ }
81
+ function gt(e) {
82
+ if (e === void 0)
83
+ return {};
84
+ const n = {};
85
+ return Object.keys(e).filter((o) => !(o.match(/^on[A-Z]/) && typeof e[o] == "function")).forEach((o) => {
86
+ n[o] = e[o];
87
+ }), n;
88
+ }
89
+ function Ln(e) {
90
+ const {
91
+ getSlotProps: n,
92
+ additionalProps: o,
93
+ externalSlotProps: r,
94
+ externalForwardedProps: i,
95
+ className: s
96
+ } = e;
97
+ if (!n) {
98
+ const x = w(o == null ? void 0 : o.className, s, i == null ? void 0 : i.className, r == null ? void 0 : r.className), y = f({}, o == null ? void 0 : o.style, i == null ? void 0 : i.style, r == null ? void 0 : r.style), E = f({}, o, i, r);
99
+ return x.length > 0 && (E.className = x), Object.keys(y).length > 0 && (E.style = y), {
100
+ props: E,
101
+ internalRef: void 0
102
+ };
103
+ }
104
+ const a = zn(f({}, i, r)), l = gt(r), d = gt(i), c = n(a), u = w(c == null ? void 0 : c.className, o == null ? void 0 : o.className, s, i == null ? void 0 : i.className, r == null ? void 0 : r.className), g = f({}, c == null ? void 0 : c.style, o == null ? void 0 : o.style, i == null ? void 0 : i.style, r == null ? void 0 : r.style), h = f({}, c, o, d, l);
105
+ return u.length > 0 && (h.className = u), Object.keys(g).length > 0 && (h.style = g), {
106
+ props: h,
107
+ internalRef: c.ref
108
+ };
109
+ }
110
+ function _n(e, n, o) {
111
+ return typeof e == "function" ? e(n, o) : e;
112
+ }
113
+ const Pt = (e) => (e || we()).get("task/list/active"), Wn = (e, n) => we().get(`task/${e}`), _e = Me("task/fetchActiveTasks", async (e, n) => {
114
+ const o = await Pt();
115
+ return o.status !== 200 ? n.rejectWithValue({
116
+ message: "Failed to fetch task statuses"
117
+ }) : o.data;
118
+ }), Fn = Me("task/fetchTaskStatus", async (e, n) => {
119
+ const o = await Wn(e);
120
+ return o.status !== 200 ? n.rejectWithValue({
121
+ message: `Failed to fetch task status for ${e}`
122
+ }) : o.data;
123
+ }), Un = {
124
+ fetchStatus: "loading"
125
+ };
126
+ Nt({
127
+ name: "taskStatus",
128
+ initialState: Un,
129
+ reducers: {},
130
+ extraReducers: (e) => {
131
+ e.addCase(_e.pending, (n) => {
132
+ n.fetchStatus = "loading", n.fetchError = "undefined";
133
+ }), e.addCase(_e.fulfilled, (n, { payload: o }) => {
134
+ let r = {};
135
+ n.triggeredTaskStatuses && (r = { ...n.triggeredTaskStatuses }), o.forEach((i) => {
136
+ r[i.id] = i;
137
+ }), n.activeTaskStatuses = r, n.fetchStatus = "succeeded";
138
+ }), e.addCase(_e.rejected, (n, { payload: o }) => {
139
+ o && (n.fetchError = o.message), n.fetchStatus = "failed", n.activeTaskStatuses = void 0;
140
+ }), e.addCase(Fn.fulfilled, (n, { payload: o }) => {
141
+ n.triggeredTaskStatuses ? n.triggeredTaskStatuses[o.id] = o : n.triggeredTaskStatuses = { [o.id]: o }, n.activeTaskStatuses ? n.activeTaskStatuses[o.id] = o : n.activeTaskStatuses = { [o.id]: o };
142
+ });
143
+ }
144
+ });
145
+ var Je = {}, Gn = vn;
146
+ Object.defineProperty(Je, "__esModule", {
147
+ value: !0
148
+ });
149
+ var It = Je.default = void 0, qn = Gn(mn()), Hn = p;
150
+ It = Je.default = (0, qn.default)(/* @__PURE__ */ (0, Hn.jsx)("path", {
151
+ d: "M17 10H7v2h10zm2-7h-1V1h-2v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2m0 16H5V8h14zm-5-5H7v2h7z"
152
+ }), "EventNote");
153
+ const Kn = ({ taskStatus: e, openMessageChain: n }) => {
154
+ const [o, r] = Z.useState(!1), i = () => {
155
+ r(!o);
156
+ };
157
+ return p.jsxs(ln, { children: [p.jsx(cn, { title: `#${e.id} ${e.group}`, subheader: e.description, avatar: e.state === "RUNNING" || e.state === "CANCELLING" ? p.jsx(un, {}) : void 0 }), p.jsxs(ct, { children: [p.jsx(ce, { variant: "body2", color: "textSecondary", component: "p", children: `Task state is ${e.state}. ${e.durationMs ? `Run took ${e.durationMs / 1e3} seconds.` : ""}` }), p.jsx(ce, { variant: "body2", color: "textSecondary", component: "p", children: e.message })] }), p.jsxs(dn, { disableSpacing: !0, children: [p.jsx(ut, { title: "Show message chain", children: p.jsx(dt, { "aria-label": "show message chain", onClick: () => {
158
+ const s = e.metadata.find((a) => a.key === "MessageChainId");
159
+ s && n(Number(s.value));
160
+ }, children: p.jsx(It, {}) }) }), p.jsx(ut, { title: o ? "Hide metadata" : "Show metadata", children: p.jsx(dt, { sx: {
161
+ transform: o ? "rotate(180deg)" : "rotate(0deg)",
162
+ marginLeft: "auto",
163
+ transition: "transform duration.shortest",
164
+ // TODO: create a story and test this
165
+ display: e.metadata.length ? "flex" : "none"
166
+ }, onClick: i, "aria-expanded": o, "aria-label": "show metadata", children: p.jsx(jt, {}) }) })] }), p.jsx(pn, { in: o, timeout: "auto", unmountOnExit: !0, children: p.jsxs(ct, { children: [p.jsx(ce, { paragraph: !0, children: "Metadata:" }), e.metadata.map((s) => p.jsxs(ce, { children: [s.key, ": ", s.value] }, `task-status-md-${e.id}-${s.key}`))] }) })] });
167
+ }, Vt = (e) => (e || we()).get("trigger"), Xn = (e) => new URLSearchParams(e), At = (e, n, o) => {
168
+ const r = we(), i = Xn(n), s = i.toString() ? `?${i.toString()}` : "";
169
+ return r.post(`trigger/${e}/async${s}`);
170
+ }, We = Me("triggerables/fetchTriggerables", async (e, n) => {
171
+ const o = await Vt();
172
+ return o.status !== 200 ? n.rejectWithValue({
173
+ message: "Failed to fetch triggerables"
174
+ }) : o.data;
175
+ }), Fe = Me("triggerables/trigger", async ({ triggerName: e, triggerParams: n }, o) => {
176
+ const r = await At(e, n);
177
+ return r.status !== 200 ? o.rejectWithValue({
178
+ message: "Failed to fetch triggerables"
179
+ }) : r.data;
180
+ }), Yn = {
181
+ triggerables: {},
182
+ fetchStatus: "loading"
183
+ };
184
+ Nt({
185
+ name: "triggerable",
186
+ initialState: Yn,
187
+ reducers: {},
188
+ extraReducers: (e) => {
189
+ e.addCase(We.pending, (n) => {
190
+ n.fetchStatus = "loading", n.fetchError = "undefined";
191
+ }), e.addCase(We.fulfilled, (n, { payload: o }) => {
192
+ n.triggerables = o, n.fetchStatus = "succeeded";
193
+ }), e.addCase(We.rejected, (n, { payload: o }) => {
194
+ o && (n.fetchError = o.message), n.fetchStatus = "failed";
195
+ }), e.addCase(Fe.pending, (n) => {
196
+ n.triggerStatus = "loading";
197
+ }), e.addCase(Fe.fulfilled, (n, { payload: o }) => {
198
+ n.triggerResponse = o, n.triggerStatus = "succeeded";
199
+ }), e.addCase(Fe.rejected, (n, { payload: o }) => {
200
+ o && (n.triggerError = o.message), n.triggerStatus = "failed";
201
+ });
202
+ }
203
+ });
204
+ function Zn(e) {
205
+ return Object.keys(e).length === 0;
206
+ }
207
+ function Jn(e = null) {
208
+ const n = m.useContext(Nn);
209
+ return !n || Zn(n) ? e : n;
210
+ }
211
+ const Qn = bn();
212
+ function eo(e = Qn) {
213
+ return Jn(e);
214
+ }
215
+ const to = ["className", "elementType", "ownerState", "externalForwardedProps", "getSlotOwnerState", "internalForwardedProps"], no = ["component", "slots", "slotProps"], oo = ["component"];
216
+ function Ge(e, n) {
217
+ const {
218
+ className: o,
219
+ elementType: r,
220
+ ownerState: i,
221
+ externalForwardedProps: s,
222
+ getSlotOwnerState: a,
223
+ internalForwardedProps: l
224
+ } = n, d = A(n, to), {
225
+ component: c,
226
+ slots: u = {
227
+ [e]: void 0
228
+ },
229
+ slotProps: g = {
230
+ [e]: void 0
231
+ }
232
+ } = s, h = A(s, no), x = u[e] || r, y = _n(g[e], i), E = Ln(f({
233
+ className: o
234
+ }, d, {
235
+ externalForwardedProps: e === "root" ? h : void 0,
236
+ externalSlotProps: y
237
+ })), {
238
+ props: {
239
+ component: $
240
+ },
241
+ internalRef: C
242
+ } = E, M = A(E.props, oo), j = Oe(C, y == null ? void 0 : y.ref, n.ref), v = a ? a(M) : {}, N = f({}, i, v), R = e === "root" ? $ || c : $, O = Bn(x, f({}, e === "root" && !c && !u[e] && l, e !== "root" && !u[e] && l, M, R && {
243
+ as: R
244
+ }, {
245
+ ref: j
246
+ }), N);
247
+ return Object.keys(v).forEach((k) => {
248
+ delete O[k];
249
+ }), [x, O];
250
+ }
251
+ const ht = (e) => {
252
+ let n;
253
+ return e < 1 ? n = 5.11916 * e ** 2 : n = 4.5 * Math.log(e + 1) + 2, (n / 100).toFixed(2);
254
+ };
255
+ function Qe() {
256
+ const e = eo(yn);
257
+ return process.env.NODE_ENV !== "production" && m.useDebugValue(e), e[xn] || e;
258
+ }
259
+ function ro(e) {
260
+ return J("MuiPaper", e);
261
+ }
262
+ X("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"]);
263
+ const so = ["className", "component", "elevation", "square", "variant"], io = (e) => {
264
+ const {
265
+ square: n,
266
+ elevation: o,
267
+ variant: r,
268
+ classes: i
269
+ } = e, s = {
270
+ root: ["root", r, !n && "rounded", r === "elevation" && `elevation${o}`]
271
+ };
272
+ return Q(s, ro, i);
273
+ }, ao = P("div", {
274
+ name: "MuiPaper",
275
+ slot: "Root",
276
+ overridesResolver: (e, n) => {
277
+ const {
278
+ ownerState: o
279
+ } = e;
280
+ return [n.root, n[o.variant], !o.square && n.rounded, o.variant === "elevation" && n[`elevation${o.elevation}`]];
281
+ }
282
+ })(({
283
+ theme: e,
284
+ ownerState: n
285
+ }) => {
286
+ var o;
287
+ return f({
288
+ backgroundColor: (e.vars || e).palette.background.paper,
289
+ color: (e.vars || e).palette.text.primary,
290
+ transition: e.transitions.create("box-shadow")
291
+ }, !n.square && {
292
+ borderRadius: e.shape.borderRadius
293
+ }, n.variant === "outlined" && {
294
+ border: `1px solid ${(e.vars || e).palette.divider}`
295
+ }, n.variant === "elevation" && f({
296
+ boxShadow: (e.vars || e).shadows[n.elevation]
297
+ }, !e.vars && e.palette.mode === "dark" && {
298
+ backgroundImage: `linear-gradient(${$e("#fff", ht(n.elevation))}, ${$e("#fff", ht(n.elevation))})`
299
+ }, e.vars && {
300
+ backgroundImage: (o = e.vars.overlays) == null ? void 0 : o[n.elevation]
301
+ }));
302
+ }), et = /* @__PURE__ */ m.forwardRef(function(n, o) {
303
+ const r = Y({
304
+ props: n,
305
+ name: "MuiPaper"
306
+ }), {
307
+ className: i,
308
+ component: s = "div",
309
+ elevation: a = 1,
310
+ square: l = !1,
311
+ variant: d = "elevation"
312
+ } = r, c = A(r, so), u = f({}, r, {
313
+ component: s,
314
+ elevation: a,
315
+ square: l,
316
+ variant: d
317
+ }), g = io(u);
318
+ return process.env.NODE_ENV !== "production" && Qe().shadows[a] === void 0 && console.error([`MUI: The elevation provided <Paper elevation={${a}}> is not available in the theme.`, `Please make sure that \`theme.shadows[${a}]\` is defined.`].join(`
319
+ `)), /* @__PURE__ */ p.jsx(ao, f({
320
+ as: s,
321
+ ownerState: u,
322
+ className: w(g.root, i),
323
+ ref: o
324
+ }, c));
325
+ });
326
+ process.env.NODE_ENV !== "production" && (et.propTypes = {
327
+ // ┌────────────────────────────── Warning ──────────────────────────────┐
328
+ // │ These PropTypes are generated from the TypeScript type definitions. │
329
+ // │ To update them, edit the d.ts file and run `pnpm proptypes`. │
330
+ // └─────────────────────────────────────────────────────────────────────┘
331
+ /**
332
+ * The content of the component.
333
+ */
334
+ children: t.node,
335
+ /**
336
+ * Override or extend the styles applied to the component.
337
+ */
338
+ classes: t.object,
339
+ /**
340
+ * @ignore
341
+ */
342
+ className: t.string,
343
+ /**
344
+ * The component used for the root node.
345
+ * Either a string to use a HTML element or a component.
346
+ */
347
+ component: t.elementType,
348
+ /**
349
+ * Shadow depth, corresponds to `dp` in the spec.
350
+ * It accepts values between 0 and 24 inclusive.
351
+ * @default 1
352
+ */
353
+ elevation: Pe(An, (e) => {
354
+ const {
355
+ elevation: n,
356
+ variant: o
357
+ } = e;
358
+ 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;
359
+ }),
360
+ /**
361
+ * If `true`, rounded corners are disabled.
362
+ * @default false
363
+ */
364
+ square: t.bool,
365
+ /**
366
+ * The system prop that allows defining system overrides as well as additional CSS styles.
367
+ */
368
+ sx: t.oneOfType([t.arrayOf(t.oneOfType([t.func, t.object, t.bool])), t.func, t.object]),
369
+ /**
370
+ * The variant to use.
371
+ * @default 'elevation'
372
+ */
373
+ variant: t.oneOfType([t.oneOf(["elevation", "outlined"]), t.string])
374
+ });
375
+ function lo(e) {
376
+ return J("MuiAlert", e);
377
+ }
378
+ const mt = X("MuiAlert", ["root", "action", "icon", "message", "filled", "colorSuccess", "colorInfo", "colorWarning", "colorError", "filledSuccess", "filledInfo", "filledWarning", "filledError", "outlined", "outlinedSuccess", "outlinedInfo", "outlinedWarning", "outlinedError", "standard", "standardSuccess", "standardInfo", "standardWarning", "standardError"]);
379
+ function qe(e, n) {
380
+ return qe = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function(o, r) {
381
+ return o.__proto__ = r, o;
382
+ }, qe(e, n);
383
+ }
384
+ function Dt(e, n) {
385
+ e.prototype = Object.create(n.prototype), e.prototype.constructor = e, qe(e, n);
386
+ }
387
+ const vt = {
388
+ disabled: !1
389
+ };
390
+ var co = process.env.NODE_ENV !== "production" ? t.oneOfType([t.number, t.shape({
391
+ enter: t.number,
392
+ exit: t.number,
393
+ appear: t.number
394
+ }).isRequired]) : null;
395
+ process.env.NODE_ENV !== "production" && t.oneOfType([t.string, t.shape({
396
+ enter: t.string,
397
+ exit: t.string,
398
+ active: t.string
399
+ }), t.shape({
400
+ enter: t.string,
401
+ enterDone: t.string,
402
+ enterActive: t.string,
403
+ exit: t.string,
404
+ exitDone: t.string,
405
+ exitActive: t.string
406
+ })]);
407
+ const je = Z.createContext(null);
408
+ var uo = function(n) {
409
+ return n.scrollTop;
410
+ }, he = "unmounted", ne = "exited", oe = "entering", le = "entered", He = "exiting", te = /* @__PURE__ */ function(e) {
411
+ Dt(n, e);
412
+ function n(r, i) {
413
+ var s;
414
+ s = e.call(this, r, i) || this;
415
+ var a = i, l = a && !a.isMounting ? r.enter : r.appear, d;
416
+ return s.appearStatus = null, r.in ? l ? (d = ne, s.appearStatus = oe) : d = le : r.unmountOnExit || r.mountOnEnter ? d = he : d = ne, s.state = {
417
+ status: d
418
+ }, s.nextCallback = null, s;
419
+ }
420
+ n.getDerivedStateFromProps = function(i, s) {
421
+ var a = i.in;
422
+ return a && s.status === he ? {
423
+ status: ne
424
+ } : null;
425
+ };
426
+ var o = n.prototype;
427
+ return o.componentDidMount = function() {
428
+ this.updateStatus(!0, this.appearStatus);
429
+ }, o.componentDidUpdate = function(i) {
430
+ var s = null;
431
+ if (i !== this.props) {
432
+ var a = this.state.status;
433
+ this.props.in ? a !== oe && a !== le && (s = oe) : (a === oe || a === le) && (s = He);
434
+ }
435
+ this.updateStatus(!1, s);
436
+ }, o.componentWillUnmount = function() {
437
+ this.cancelNextCallback();
438
+ }, o.getTimeouts = function() {
439
+ var i = this.props.timeout, s, a, l;
440
+ return s = a = l = i, i != null && typeof i != "number" && (s = i.exit, a = i.enter, l = i.appear !== void 0 ? i.appear : a), {
441
+ exit: s,
442
+ enter: a,
443
+ appear: l
444
+ };
445
+ }, o.updateStatus = function(i, s) {
446
+ if (i === void 0 && (i = !1), s !== null)
447
+ if (this.cancelNextCallback(), s === oe) {
448
+ if (this.props.unmountOnExit || this.props.mountOnEnter) {
449
+ var a = this.props.nodeRef ? this.props.nodeRef.current : Te.findDOMNode(this);
450
+ a && uo(a);
451
+ }
452
+ this.performEnter(i);
453
+ } else
454
+ this.performExit();
455
+ else this.props.unmountOnExit && this.state.status === ne && this.setState({
456
+ status: he
457
+ });
458
+ }, o.performEnter = function(i) {
459
+ var s = this, a = this.props.enter, l = this.context ? this.context.isMounting : i, d = this.props.nodeRef ? [l] : [Te.findDOMNode(this), l], c = d[0], u = d[1], g = this.getTimeouts(), h = l ? g.appear : g.enter;
460
+ if (!i && !a || vt.disabled) {
461
+ this.safeSetState({
462
+ status: le
463
+ }, function() {
464
+ s.props.onEntered(c);
465
+ });
466
+ return;
467
+ }
468
+ this.props.onEnter(c, u), this.safeSetState({
469
+ status: oe
470
+ }, function() {
471
+ s.props.onEntering(c, u), s.onTransitionEnd(h, function() {
472
+ s.safeSetState({
473
+ status: le
474
+ }, function() {
475
+ s.props.onEntered(c, u);
476
+ });
477
+ });
478
+ });
479
+ }, o.performExit = function() {
480
+ var i = this, s = this.props.exit, a = this.getTimeouts(), l = this.props.nodeRef ? void 0 : Te.findDOMNode(this);
481
+ if (!s || vt.disabled) {
482
+ this.safeSetState({
483
+ status: ne
484
+ }, function() {
485
+ i.props.onExited(l);
486
+ });
487
+ return;
488
+ }
489
+ this.props.onExit(l), this.safeSetState({
490
+ status: He
491
+ }, function() {
492
+ i.props.onExiting(l), i.onTransitionEnd(a.exit, function() {
493
+ i.safeSetState({
494
+ status: ne
495
+ }, function() {
496
+ i.props.onExited(l);
497
+ });
498
+ });
499
+ });
500
+ }, o.cancelNextCallback = function() {
501
+ this.nextCallback !== null && (this.nextCallback.cancel(), this.nextCallback = null);
502
+ }, o.safeSetState = function(i, s) {
503
+ s = this.setNextCallback(s), this.setState(i, s);
504
+ }, o.setNextCallback = function(i) {
505
+ var s = this, a = !0;
506
+ return this.nextCallback = function(l) {
507
+ a && (a = !1, s.nextCallback = null, i(l));
508
+ }, this.nextCallback.cancel = function() {
509
+ a = !1;
510
+ }, this.nextCallback;
511
+ }, o.onTransitionEnd = function(i, s) {
512
+ this.setNextCallback(s);
513
+ var a = this.props.nodeRef ? this.props.nodeRef.current : Te.findDOMNode(this), l = i == null && !this.props.addEndListener;
514
+ if (!a || l) {
515
+ setTimeout(this.nextCallback, 0);
516
+ return;
517
+ }
518
+ if (this.props.addEndListener) {
519
+ var d = this.props.nodeRef ? [this.nextCallback] : [a, this.nextCallback], c = d[0], u = d[1];
520
+ this.props.addEndListener(c, u);
521
+ }
522
+ i != null && setTimeout(this.nextCallback, i);
523
+ }, o.render = function() {
524
+ var i = this.state.status;
525
+ if (i === he)
526
+ return null;
527
+ var s = this.props, a = s.children;
528
+ 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;
529
+ var l = A(s, ["children", "in", "mountOnEnter", "unmountOnExit", "appear", "enter", "exit", "timeout", "addEndListener", "onEnter", "onEntering", "onEntered", "onExit", "onExiting", "onExited", "nodeRef"]);
530
+ return (
531
+ // allows for nested Transitions
532
+ /* @__PURE__ */ Z.createElement(je.Provider, {
533
+ value: null
534
+ }, typeof a == "function" ? a(i, l) : Z.cloneElement(Z.Children.only(a), l))
535
+ );
536
+ }, n;
537
+ }(Z.Component);
538
+ te.contextType = je;
539
+ te.propTypes = process.env.NODE_ENV !== "production" ? {
540
+ /**
541
+ * A React reference to DOM element that need to transition:
542
+ * https://stackoverflow.com/a/51127130/4671932
543
+ *
544
+ * - When `nodeRef` prop is used, `node` is not passed to callback functions
545
+ * (e.g. `onEnter`) because user already has direct access to the node.
546
+ * - When changing `key` prop of `Transition` in a `TransitionGroup` a new
547
+ * `nodeRef` need to be provided to `Transition` with changed `key` prop
548
+ * (see
549
+ * [test/CSSTransition-test.js](https://github.com/reactjs/react-transition-group/blob/13435f897b3ab71f6e19d724f145596f5910581c/test/CSSTransition-test.js#L362-L437)).
550
+ */
551
+ nodeRef: t.shape({
552
+ current: typeof Element > "u" ? t.any : function(e, n, o, r, i, s) {
553
+ var a = e[n];
554
+ return t.instanceOf(a && "ownerDocument" in a ? a.ownerDocument.defaultView.Element : Element)(e, n, o, r, i, s);
555
+ }
556
+ }),
557
+ /**
558
+ * A `function` child can be used instead of a React element. This function is
559
+ * called with the current transition status (`'entering'`, `'entered'`,
560
+ * `'exiting'`, `'exited'`), which can be used to apply context
561
+ * specific props to a component.
562
+ *
563
+ * ```jsx
564
+ * <Transition in={this.state.in} timeout={150}>
565
+ * {state => (
566
+ * <MyComponent className={`fade fade-${state}`} />
567
+ * )}
568
+ * </Transition>
569
+ * ```
570
+ */
571
+ children: t.oneOfType([t.func.isRequired, t.element.isRequired]).isRequired,
572
+ /**
573
+ * Show the component; triggers the enter or exit states
574
+ */
575
+ in: t.bool,
576
+ /**
577
+ * By default the child component is mounted immediately along with
578
+ * the parent `Transition` component. If you want to "lazy mount" the component on the
579
+ * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay
580
+ * mounted, even on "exited", unless you also specify `unmountOnExit`.
581
+ */
582
+ mountOnEnter: t.bool,
583
+ /**
584
+ * By default the child component stays mounted after it reaches the `'exited'` state.
585
+ * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.
586
+ */
587
+ unmountOnExit: t.bool,
588
+ /**
589
+ * By default the child component does not perform the enter transition when
590
+ * it first mounts, regardless of the value of `in`. If you want this
591
+ * behavior, set both `appear` and `in` to `true`.
592
+ *
593
+ * > **Note**: there are no special appear states like `appearing`/`appeared`, this prop
594
+ * > only adds an additional enter transition. However, in the
595
+ * > `<CSSTransition>` component that first enter transition does result in
596
+ * > additional `.appear-*` classes, that way you can choose to style it
597
+ * > differently.
598
+ */
599
+ appear: t.bool,
600
+ /**
601
+ * Enable or disable enter transitions.
602
+ */
603
+ enter: t.bool,
604
+ /**
605
+ * Enable or disable exit transitions.
606
+ */
607
+ exit: t.bool,
608
+ /**
609
+ * The duration of the transition, in milliseconds.
610
+ * Required unless `addEndListener` is provided.
611
+ *
612
+ * You may specify a single timeout for all transitions:
613
+ *
614
+ * ```jsx
615
+ * timeout={500}
616
+ * ```
617
+ *
618
+ * or individually:
619
+ *
620
+ * ```jsx
621
+ * timeout={{
622
+ * appear: 500,
623
+ * enter: 300,
624
+ * exit: 500,
625
+ * }}
626
+ * ```
627
+ *
628
+ * - `appear` defaults to the value of `enter`
629
+ * - `enter` defaults to `0`
630
+ * - `exit` defaults to `0`
631
+ *
632
+ * @type {number | { enter?: number, exit?: number, appear?: number }}
633
+ */
634
+ timeout: function(n) {
635
+ var o = co;
636
+ n.addEndListener || (o = o.isRequired);
637
+ for (var r = arguments.length, i = new Array(r > 1 ? r - 1 : 0), s = 1; s < r; s++)
638
+ i[s - 1] = arguments[s];
639
+ return o.apply(void 0, [n].concat(i));
640
+ },
641
+ /**
642
+ * Add a custom transition end trigger. Called with the transitioning
643
+ * DOM node and a `done` callback. Allows for more fine grained transition end
644
+ * logic. Timeouts are still used as a fallback if provided.
645
+ *
646
+ * **Note**: when `nodeRef` prop is passed, `node` is not passed.
647
+ *
648
+ * ```jsx
649
+ * addEndListener={(node, done) => {
650
+ * // use the css transitionend event to mark the finish of a transition
651
+ * node.addEventListener('transitionend', done, false);
652
+ * }}
653
+ * ```
654
+ */
655
+ addEndListener: t.func,
656
+ /**
657
+ * Callback fired before the "entering" status is applied. An extra parameter
658
+ * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount
659
+ *
660
+ * **Note**: when `nodeRef` prop is passed, `node` is not passed.
661
+ *
662
+ * @type Function(node: HtmlElement, isAppearing: bool) -> void
663
+ */
664
+ onEnter: t.func,
665
+ /**
666
+ * Callback fired after the "entering" status is applied. An extra parameter
667
+ * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount
668
+ *
669
+ * **Note**: when `nodeRef` prop is passed, `node` is not passed.
670
+ *
671
+ * @type Function(node: HtmlElement, isAppearing: bool)
672
+ */
673
+ onEntering: t.func,
674
+ /**
675
+ * Callback fired after the "entered" status is applied. An extra parameter
676
+ * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount
677
+ *
678
+ * **Note**: when `nodeRef` prop is passed, `node` is not passed.
679
+ *
680
+ * @type Function(node: HtmlElement, isAppearing: bool) -> void
681
+ */
682
+ onEntered: t.func,
683
+ /**
684
+ * Callback fired before the "exiting" status is applied.
685
+ *
686
+ * **Note**: when `nodeRef` prop is passed, `node` is not passed.
687
+ *
688
+ * @type Function(node: HtmlElement) -> void
689
+ */
690
+ onExit: t.func,
691
+ /**
692
+ * Callback fired after the "exiting" status is applied.
693
+ *
694
+ * **Note**: when `nodeRef` prop is passed, `node` is not passed.
695
+ *
696
+ * @type Function(node: HtmlElement) -> void
697
+ */
698
+ onExiting: t.func,
699
+ /**
700
+ * Callback fired after the "exited" status is applied.
701
+ *
702
+ * **Note**: when `nodeRef` prop is passed, `node` is not passed
703
+ *
704
+ * @type Function(node: HtmlElement) -> void
705
+ */
706
+ onExited: t.func
707
+ } : {};
708
+ function ae() {
709
+ }
710
+ te.defaultProps = {
711
+ in: !1,
712
+ mountOnEnter: !1,
713
+ unmountOnExit: !1,
714
+ appear: !1,
715
+ enter: !0,
716
+ exit: !0,
717
+ onEnter: ae,
718
+ onEntering: ae,
719
+ onEntered: ae,
720
+ onExit: ae,
721
+ onExiting: ae,
722
+ onExited: ae
723
+ };
724
+ te.UNMOUNTED = he;
725
+ te.EXITED = ne;
726
+ te.ENTERING = oe;
727
+ te.ENTERED = le;
728
+ te.EXITING = He;
729
+ function po(e) {
730
+ if (e === void 0) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
731
+ return e;
732
+ }
733
+ function tt(e, n) {
734
+ var o = function(s) {
735
+ return n && Se(s) ? n(s) : s;
736
+ }, r = /* @__PURE__ */ Object.create(null);
737
+ return e && an.map(e, function(i) {
738
+ return i;
739
+ }).forEach(function(i) {
740
+ r[i.key] = o(i);
741
+ }), r;
742
+ }
743
+ function fo(e, n) {
744
+ e = e || {}, n = n || {};
745
+ function o(u) {
746
+ return u in n ? n[u] : e[u];
747
+ }
748
+ var r = /* @__PURE__ */ Object.create(null), i = [];
749
+ for (var s in e)
750
+ s in n ? i.length && (r[s] = i, i = []) : i.push(s);
751
+ var a, l = {};
752
+ for (var d in n) {
753
+ if (r[d])
754
+ for (a = 0; a < r[d].length; a++) {
755
+ var c = r[d][a];
756
+ l[r[d][a]] = o(c);
757
+ }
758
+ l[d] = o(d);
759
+ }
760
+ for (a = 0; a < i.length; a++)
761
+ l[i[a]] = o(i[a]);
762
+ return l;
763
+ }
764
+ function re(e, n, o) {
765
+ return o[n] != null ? o[n] : e.props[n];
766
+ }
767
+ function go(e, n) {
768
+ return tt(e.children, function(o) {
769
+ return Re(o, {
770
+ onExited: n.bind(null, o),
771
+ in: !0,
772
+ appear: re(o, "appear", e),
773
+ enter: re(o, "enter", e),
774
+ exit: re(o, "exit", e)
775
+ });
776
+ });
777
+ }
778
+ function ho(e, n, o) {
779
+ var r = tt(e.children), i = fo(n, r);
780
+ return Object.keys(i).forEach(function(s) {
781
+ var a = i[s];
782
+ if (Se(a)) {
783
+ var l = s in n, d = s in r, c = n[s], u = Se(c) && !c.props.in;
784
+ d && (!l || u) ? i[s] = Re(a, {
785
+ onExited: o.bind(null, a),
786
+ in: !0,
787
+ exit: re(a, "exit", e),
788
+ enter: re(a, "enter", e)
789
+ }) : !d && l && !u ? i[s] = Re(a, {
790
+ in: !1
791
+ }) : d && l && Se(c) && (i[s] = Re(a, {
792
+ onExited: o.bind(null, a),
793
+ in: c.props.in,
794
+ exit: re(a, "exit", e),
795
+ enter: re(a, "enter", e)
796
+ }));
797
+ }
798
+ }), i;
799
+ }
800
+ var mo = Object.values || function(e) {
801
+ return Object.keys(e).map(function(n) {
802
+ return e[n];
803
+ });
804
+ }, vo = {
805
+ component: "div",
806
+ childFactory: function(n) {
807
+ return n;
808
+ }
809
+ }, nt = /* @__PURE__ */ function(e) {
810
+ Dt(n, e);
811
+ function n(r, i) {
812
+ var s;
813
+ s = e.call(this, r, i) || this;
814
+ var a = s.handleExited.bind(po(s));
815
+ return s.state = {
816
+ contextValue: {
817
+ isMounting: !0
818
+ },
819
+ handleExited: a,
820
+ firstRender: !0
821
+ }, s;
822
+ }
823
+ var o = n.prototype;
824
+ return o.componentDidMount = function() {
825
+ this.mounted = !0, this.setState({
826
+ contextValue: {
827
+ isMounting: !1
828
+ }
829
+ });
830
+ }, o.componentWillUnmount = function() {
831
+ this.mounted = !1;
832
+ }, n.getDerivedStateFromProps = function(i, s) {
833
+ var a = s.children, l = s.handleExited, d = s.firstRender;
834
+ return {
835
+ children: d ? go(i, l) : ho(i, a, l),
836
+ firstRender: !1
837
+ };
838
+ }, o.handleExited = function(i, s) {
839
+ var a = tt(this.props.children);
840
+ i.key in a || (i.props.onExited && i.props.onExited(s), this.mounted && this.setState(function(l) {
841
+ var d = f({}, l.children);
842
+ return delete d[i.key], {
843
+ children: d
844
+ };
845
+ }));
846
+ }, o.render = function() {
847
+ var i = this.props, s = i.component, a = i.childFactory, l = A(i, ["component", "childFactory"]), d = this.state.contextValue, c = mo(this.state.children).map(a);
848
+ return delete l.appear, delete l.enter, delete l.exit, s === null ? /* @__PURE__ */ Z.createElement(je.Provider, {
849
+ value: d
850
+ }, c) : /* @__PURE__ */ Z.createElement(je.Provider, {
851
+ value: d
852
+ }, /* @__PURE__ */ Z.createElement(s, l, c));
853
+ }, n;
854
+ }(Z.Component);
855
+ nt.propTypes = process.env.NODE_ENV !== "production" ? {
856
+ /**
857
+ * `<TransitionGroup>` renders a `<div>` by default. You can change this
858
+ * behavior by providing a `component` prop.
859
+ * If you use React v16+ and would like to avoid a wrapping `<div>` element
860
+ * you can pass in `component={null}`. This is useful if the wrapping div
861
+ * borks your css styles.
862
+ */
863
+ component: t.any,
864
+ /**
865
+ * A set of `<Transition>` components, that are toggled `in` and out as they
866
+ * leave. the `<TransitionGroup>` will inject specific transition props, so
867
+ * remember to spread them through if you are wrapping the `<Transition>` as
868
+ * with our `<Fade>` example.
869
+ *
870
+ * While this component is meant for multiple `Transition` or `CSSTransition`
871
+ * children, sometimes you may want to have a single transition child with
872
+ * content that you want to be transitioned out and in when you change it
873
+ * (e.g. routes, images etc.) In that case you can change the `key` prop of
874
+ * the transition child as you change its content, this will cause
875
+ * `TransitionGroup` to transition the child out and back in.
876
+ */
877
+ children: t.node,
878
+ /**
879
+ * A convenience prop that enables or disables appear animations
880
+ * for all children. Note that specifying this will override any defaults set
881
+ * on individual children Transitions.
882
+ */
883
+ appear: t.bool,
884
+ /**
885
+ * A convenience prop that enables or disables enter animations
886
+ * for all children. Note that specifying this will override any defaults set
887
+ * on individual children Transitions.
888
+ */
889
+ enter: t.bool,
890
+ /**
891
+ * A convenience prop that enables or disables exit animations
892
+ * for all children. Note that specifying this will override any defaults set
893
+ * on individual children Transitions.
894
+ */
895
+ exit: t.bool,
896
+ /**
897
+ * You may need to apply reactive updates to a child as it is exiting.
898
+ * This is generally done by using `cloneElement` however in the case of an exiting
899
+ * child the element has already been removed and not accessible to the consumer.
900
+ *
901
+ * If you do need to update a child as it leaves you can provide a `childFactory`
902
+ * to wrap every child, even the ones that are leaving.
903
+ *
904
+ * @type Function(child: ReactElement) -> ReactElement
905
+ */
906
+ childFactory: t.func
907
+ } : {};
908
+ nt.defaultProps = vo;
909
+ function Bt(e) {
910
+ const {
911
+ className: n,
912
+ classes: o,
913
+ pulsate: r = !1,
914
+ rippleX: i,
915
+ rippleY: s,
916
+ rippleSize: a,
917
+ in: l,
918
+ onExited: d,
919
+ timeout: c
920
+ } = e, [u, g] = m.useState(!1), h = w(n, o.ripple, o.rippleVisible, r && o.ripplePulsate), x = {
921
+ width: a,
922
+ height: a,
923
+ top: -(a / 2) + s,
924
+ left: -(a / 2) + i
925
+ }, y = w(o.child, u && o.childLeaving, r && o.childPulsate);
926
+ return !l && !u && g(!0), m.useEffect(() => {
927
+ if (!l && d != null) {
928
+ const E = setTimeout(d, c);
929
+ return () => {
930
+ clearTimeout(E);
931
+ };
932
+ }
933
+ }, [d, l, c]), /* @__PURE__ */ p.jsx("span", {
934
+ className: h,
935
+ style: x,
936
+ children: /* @__PURE__ */ p.jsx("span", {
937
+ className: y
938
+ })
939
+ });
940
+ }
941
+ process.env.NODE_ENV !== "production" && (Bt.propTypes = {
942
+ /**
943
+ * Override or extend the styles applied to the component.
944
+ */
945
+ classes: t.object.isRequired,
946
+ className: t.string,
947
+ /**
948
+ * @ignore - injected from TransitionGroup
949
+ */
950
+ in: t.bool,
951
+ /**
952
+ * @ignore - injected from TransitionGroup
953
+ */
954
+ onExited: t.func,
955
+ /**
956
+ * If `true`, the ripple pulsates, typically indicating the keyboard focus state of an element.
957
+ */
958
+ pulsate: t.bool,
959
+ /**
960
+ * Diameter of the ripple.
961
+ */
962
+ rippleSize: t.number,
963
+ /**
964
+ * Horizontal position of the ripple center.
965
+ */
966
+ rippleX: t.number,
967
+ /**
968
+ * Vertical position of the ripple center.
969
+ */
970
+ rippleY: t.number,
971
+ /**
972
+ * exit delay
973
+ */
974
+ timeout: t.number.isRequired
975
+ });
976
+ const q = X("MuiTouchRipple", ["root", "ripple", "rippleVisible", "ripplePulsate", "child", "childLeaving", "childPulsate"]), bo = ["center", "classes", "className"];
977
+ let Ie = (e) => e, bt, xt, yt, Et;
978
+ const Ke = 550, xo = 80, yo = Ze(bt || (bt = Ie`
979
+ 0% {
980
+ transform: scale(0);
981
+ opacity: 0.1;
982
+ }
983
+
984
+ 100% {
985
+ transform: scale(1);
986
+ opacity: 0.3;
987
+ }
988
+ `)), Eo = Ze(xt || (xt = Ie`
989
+ 0% {
990
+ opacity: 1;
991
+ }
992
+
993
+ 100% {
994
+ opacity: 0;
995
+ }
996
+ `)), To = Ze(yt || (yt = Ie`
997
+ 0% {
998
+ transform: scale(1);
999
+ }
1000
+
1001
+ 50% {
1002
+ transform: scale(0.92);
1003
+ }
1004
+
1005
+ 100% {
1006
+ transform: scale(1);
1007
+ }
1008
+ `)), Co = P("span", {
1009
+ name: "MuiTouchRipple",
1010
+ slot: "Root"
1011
+ })({
1012
+ overflow: "hidden",
1013
+ pointerEvents: "none",
1014
+ position: "absolute",
1015
+ zIndex: 0,
1016
+ top: 0,
1017
+ right: 0,
1018
+ bottom: 0,
1019
+ left: 0,
1020
+ borderRadius: "inherit"
1021
+ }), So = P(Bt, {
1022
+ name: "MuiTouchRipple",
1023
+ slot: "Ripple"
1024
+ })(Et || (Et = Ie`
1025
+ opacity: 0;
1026
+ position: absolute;
1027
+
1028
+ &.${0} {
1029
+ opacity: 0.3;
1030
+ transform: scale(1);
1031
+ animation-name: ${0};
1032
+ animation-duration: ${0}ms;
1033
+ animation-timing-function: ${0};
1034
+ }
1035
+
1036
+ &.${0} {
1037
+ animation-duration: ${0}ms;
1038
+ }
1039
+
1040
+ & .${0} {
1041
+ opacity: 1;
1042
+ display: block;
1043
+ width: 100%;
1044
+ height: 100%;
1045
+ border-radius: 50%;
1046
+ background-color: currentColor;
1047
+ }
1048
+
1049
+ & .${0} {
1050
+ opacity: 0;
1051
+ animation-name: ${0};
1052
+ animation-duration: ${0}ms;
1053
+ animation-timing-function: ${0};
1054
+ }
1055
+
1056
+ & .${0} {
1057
+ position: absolute;
1058
+ /* @noflip */
1059
+ left: 0px;
1060
+ top: 0;
1061
+ animation-name: ${0};
1062
+ animation-duration: 2500ms;
1063
+ animation-timing-function: ${0};
1064
+ animation-iteration-count: infinite;
1065
+ animation-delay: 200ms;
1066
+ }
1067
+ `), q.rippleVisible, yo, Ke, ({
1068
+ theme: e
1069
+ }) => e.transitions.easing.easeInOut, q.ripplePulsate, ({
1070
+ theme: e
1071
+ }) => e.transitions.duration.shorter, q.child, q.childLeaving, Eo, Ke, ({
1072
+ theme: e
1073
+ }) => e.transitions.easing.easeInOut, q.childPulsate, To, ({
1074
+ theme: e
1075
+ }) => e.transitions.easing.easeInOut), zt = /* @__PURE__ */ m.forwardRef(function(n, o) {
1076
+ const r = Y({
1077
+ props: n,
1078
+ name: "MuiTouchRipple"
1079
+ }), {
1080
+ center: i = !1,
1081
+ classes: s = {},
1082
+ className: a
1083
+ } = r, l = A(r, bo), [d, c] = m.useState([]), u = m.useRef(0), g = m.useRef(null);
1084
+ m.useEffect(() => {
1085
+ g.current && (g.current(), g.current = null);
1086
+ }, [d]);
1087
+ const h = m.useRef(!1), x = Ot(), y = m.useRef(null), E = m.useRef(null), $ = m.useCallback((v) => {
1088
+ const {
1089
+ pulsate: N,
1090
+ rippleX: R,
1091
+ rippleY: O,
1092
+ rippleSize: k,
1093
+ cb: W
1094
+ } = v;
1095
+ c((S) => [...S, /* @__PURE__ */ p.jsx(So, {
1096
+ classes: {
1097
+ ripple: w(s.ripple, q.ripple),
1098
+ rippleVisible: w(s.rippleVisible, q.rippleVisible),
1099
+ ripplePulsate: w(s.ripplePulsate, q.ripplePulsate),
1100
+ child: w(s.child, q.child),
1101
+ childLeaving: w(s.childLeaving, q.childLeaving),
1102
+ childPulsate: w(s.childPulsate, q.childPulsate)
1103
+ },
1104
+ timeout: Ke,
1105
+ pulsate: N,
1106
+ rippleX: R,
1107
+ rippleY: O,
1108
+ rippleSize: k
1109
+ }, u.current)]), u.current += 1, g.current = W;
1110
+ }, [s]), C = m.useCallback((v = {}, N = {}, R = () => {
1111
+ }) => {
1112
+ const {
1113
+ pulsate: O = !1,
1114
+ center: k = i || N.pulsate,
1115
+ fakeElement: W = !1
1116
+ // For test purposes
1117
+ } = N;
1118
+ if ((v == null ? void 0 : v.type) === "mousedown" && h.current) {
1119
+ h.current = !1;
1120
+ return;
1121
+ }
1122
+ (v == null ? void 0 : v.type) === "touchstart" && (h.current = !0);
1123
+ const S = W ? null : E.current, z = S ? S.getBoundingClientRect() : {
1124
+ width: 0,
1125
+ height: 0,
1126
+ left: 0,
1127
+ top: 0
1128
+ };
1129
+ let I, V, L;
1130
+ if (k || v === void 0 || v.clientX === 0 && v.clientY === 0 || !v.clientX && !v.touches)
1131
+ I = Math.round(z.width / 2), V = Math.round(z.height / 2);
1132
+ else {
1133
+ const {
1134
+ clientX: U,
1135
+ clientY: H
1136
+ } = v.touches && v.touches.length > 0 ? v.touches[0] : v;
1137
+ I = Math.round(U - z.left), V = Math.round(H - z.top);
1138
+ }
1139
+ if (k)
1140
+ L = Math.sqrt((2 * z.width ** 2 + z.height ** 2) / 3), L % 2 === 0 && (L += 1);
1141
+ else {
1142
+ const U = Math.max(Math.abs((S ? S.clientWidth : 0) - I), I) * 2 + 2, H = Math.max(Math.abs((S ? S.clientHeight : 0) - V), V) * 2 + 2;
1143
+ L = Math.sqrt(U ** 2 + H ** 2);
1144
+ }
1145
+ v != null && v.touches ? y.current === null && (y.current = () => {
1146
+ $({
1147
+ pulsate: O,
1148
+ rippleX: I,
1149
+ rippleY: V,
1150
+ rippleSize: L,
1151
+ cb: R
1152
+ });
1153
+ }, x.start(xo, () => {
1154
+ y.current && (y.current(), y.current = null);
1155
+ })) : $({
1156
+ pulsate: O,
1157
+ rippleX: I,
1158
+ rippleY: V,
1159
+ rippleSize: L,
1160
+ cb: R
1161
+ });
1162
+ }, [i, $, x]), M = m.useCallback(() => {
1163
+ C({}, {
1164
+ pulsate: !0
1165
+ });
1166
+ }, [C]), j = m.useCallback((v, N) => {
1167
+ if (x.clear(), (v == null ? void 0 : v.type) === "touchend" && y.current) {
1168
+ y.current(), y.current = null, x.start(0, () => {
1169
+ j(v, N);
1170
+ });
1171
+ return;
1172
+ }
1173
+ y.current = null, c((R) => R.length > 0 ? R.slice(1) : R), g.current = N;
1174
+ }, [x]);
1175
+ return m.useImperativeHandle(o, () => ({
1176
+ pulsate: M,
1177
+ start: C,
1178
+ stop: j
1179
+ }), [M, C, j]), /* @__PURE__ */ p.jsx(Co, f({
1180
+ className: w(q.root, s.root, a),
1181
+ ref: E
1182
+ }, l, {
1183
+ children: /* @__PURE__ */ p.jsx(nt, {
1184
+ component: null,
1185
+ exit: !0,
1186
+ children: d
1187
+ })
1188
+ }));
1189
+ });
1190
+ process.env.NODE_ENV !== "production" && (zt.propTypes = {
1191
+ /**
1192
+ * If `true`, the ripple starts at the center of the component
1193
+ * rather than at the point of interaction.
1194
+ */
1195
+ center: t.bool,
1196
+ /**
1197
+ * Override or extend the styles applied to the component.
1198
+ */
1199
+ classes: t.object,
1200
+ /**
1201
+ * @ignore
1202
+ */
1203
+ className: t.string
1204
+ });
1205
+ function Ro(e) {
1206
+ return J("MuiButtonBase", e);
1207
+ }
1208
+ const No = X("MuiButtonBase", ["root", "disabled", "focusVisible"]), Oo = ["action", "centerRipple", "children", "className", "component", "disabled", "disableRipple", "disableTouchRipple", "focusRipple", "focusVisibleClassName", "LinkComponent", "onBlur", "onClick", "onContextMenu", "onDragLeave", "onFocus", "onFocusVisible", "onKeyDown", "onKeyUp", "onMouseDown", "onMouseLeave", "onMouseUp", "onTouchEnd", "onTouchMove", "onTouchStart", "tabIndex", "TouchRippleProps", "touchRippleRef", "type"], $o = (e) => {
1209
+ const {
1210
+ disabled: n,
1211
+ focusVisible: o,
1212
+ focusVisibleClassName: r,
1213
+ classes: i
1214
+ } = e, a = Q({
1215
+ root: ["root", n && "disabled", o && "focusVisible"]
1216
+ }, Ro, i);
1217
+ return o && r && (a.root += ` ${r}`), a;
1218
+ }, jo = P("button", {
1219
+ name: "MuiButtonBase",
1220
+ slot: "Root",
1221
+ overridesResolver: (e, n) => n.root
1222
+ })({
1223
+ display: "inline-flex",
1224
+ alignItems: "center",
1225
+ justifyContent: "center",
1226
+ position: "relative",
1227
+ boxSizing: "border-box",
1228
+ WebkitTapHighlightColor: "transparent",
1229
+ backgroundColor: "transparent",
1230
+ // Reset default value
1231
+ // We disable the focus ring for mouse, touch and keyboard users.
1232
+ outline: 0,
1233
+ border: 0,
1234
+ margin: 0,
1235
+ // Remove the margin in Safari
1236
+ borderRadius: 0,
1237
+ padding: 0,
1238
+ // Remove the padding in Firefox
1239
+ cursor: "pointer",
1240
+ userSelect: "none",
1241
+ verticalAlign: "middle",
1242
+ MozAppearance: "none",
1243
+ // Reset
1244
+ WebkitAppearance: "none",
1245
+ // Reset
1246
+ textDecoration: "none",
1247
+ // So we take precedent over the style of a native <a /> element.
1248
+ color: "inherit",
1249
+ "&::-moz-focus-inner": {
1250
+ borderStyle: "none"
1251
+ // Remove Firefox dotted outline.
1252
+ },
1253
+ [`&.${No.disabled}`]: {
1254
+ pointerEvents: "none",
1255
+ // Disable link interactions
1256
+ cursor: "default"
1257
+ },
1258
+ "@media print": {
1259
+ colorAdjust: "exact"
1260
+ }
1261
+ }), ot = /* @__PURE__ */ m.forwardRef(function(n, o) {
1262
+ const r = Y({
1263
+ props: n,
1264
+ name: "MuiButtonBase"
1265
+ }), {
1266
+ action: i,
1267
+ centerRipple: s = !1,
1268
+ children: a,
1269
+ className: l,
1270
+ component: d = "button",
1271
+ disabled: c = !1,
1272
+ disableRipple: u = !1,
1273
+ disableTouchRipple: g = !1,
1274
+ focusRipple: h = !1,
1275
+ LinkComponent: x = "a",
1276
+ onBlur: y,
1277
+ onClick: E,
1278
+ onContextMenu: $,
1279
+ onDragLeave: C,
1280
+ onFocus: M,
1281
+ onFocusVisible: j,
1282
+ onKeyDown: v,
1283
+ onKeyUp: N,
1284
+ onMouseDown: R,
1285
+ onMouseLeave: O,
1286
+ onMouseUp: k,
1287
+ onTouchEnd: W,
1288
+ onTouchMove: S,
1289
+ onTouchStart: z,
1290
+ tabIndex: I = 0,
1291
+ TouchRippleProps: V,
1292
+ touchRippleRef: L,
1293
+ type: U
1294
+ } = r, H = A(r, Oo), G = m.useRef(null), D = m.useRef(null), Ve = Oe(D, L), {
1295
+ isFocusVisibleRef: be,
1296
+ onFocus: Ae,
1297
+ onBlur: De,
1298
+ ref: Be
1299
+ } = En(), [ee, se] = m.useState(!1);
1300
+ c && ee && se(!1), m.useImperativeHandle(i, () => ({
1301
+ focusVisible: () => {
1302
+ se(!0), G.current.focus();
1303
+ }
1304
+ }), []);
1305
+ const [T, _] = m.useState(!1);
1306
+ m.useEffect(() => {
1307
+ _(!0);
1308
+ }, []);
1309
+ const F = T && !u && !c;
1310
+ m.useEffect(() => {
1311
+ ee && h && !u && T && D.current.pulsate();
1312
+ }, [u, h, ee, T]);
1313
+ function B(b, at, sn = g) {
1314
+ return Ee((lt) => (at && at(lt), !sn && D.current && D.current[b](lt), !0));
1315
+ }
1316
+ const ie = B("start", R), xe = B("stop", $), Ht = B("stop", C), Kt = B("stop", k), Xt = B("stop", (b) => {
1317
+ ee && b.preventDefault(), O && O(b);
1318
+ }), Yt = B("start", z), Zt = B("stop", W), Jt = B("stop", S), Qt = B("stop", (b) => {
1319
+ De(b), be.current === !1 && se(!1), y && y(b);
1320
+ }, !1), en = Ee((b) => {
1321
+ G.current || (G.current = b.currentTarget), Ae(b), be.current === !0 && (se(!0), j && j(b)), M && M(b);
1322
+ }), ze = () => {
1323
+ const b = G.current;
1324
+ return d && d !== "button" && !(b.tagName === "A" && b.href);
1325
+ }, Le = m.useRef(!1), tn = Ee((b) => {
1326
+ h && !Le.current && ee && D.current && b.key === " " && (Le.current = !0, D.current.stop(b, () => {
1327
+ D.current.start(b);
1328
+ })), b.target === b.currentTarget && ze() && b.key === " " && b.preventDefault(), v && v(b), b.target === b.currentTarget && ze() && b.key === "Enter" && !c && (b.preventDefault(), E && E(b));
1329
+ }), nn = Ee((b) => {
1330
+ h && b.key === " " && D.current && ee && !b.defaultPrevented && (Le.current = !1, D.current.stop(b, () => {
1331
+ D.current.pulsate(b);
1332
+ })), N && N(b), E && b.target === b.currentTarget && ze() && b.key === " " && !b.defaultPrevented && E(b);
1333
+ });
1334
+ let ye = d;
1335
+ ye === "button" && (H.href || H.to) && (ye = x);
1336
+ const fe = {};
1337
+ ye === "button" ? (fe.type = U === void 0 ? "button" : U, fe.disabled = c) : (!H.href && !H.to && (fe.role = "button"), c && (fe["aria-disabled"] = c));
1338
+ const on = Oe(o, Be, G);
1339
+ process.env.NODE_ENV !== "production" && m.useEffect(() => {
1340
+ F && !D.current && console.error(["MUI: The `component` prop provided to ButtonBase is invalid.", "Please make sure the children prop is rendered in this custom component."].join(`
1341
+ `));
1342
+ }, [F]);
1343
+ const it = f({}, r, {
1344
+ centerRipple: s,
1345
+ component: d,
1346
+ disabled: c,
1347
+ disableRipple: u,
1348
+ disableTouchRipple: g,
1349
+ focusRipple: h,
1350
+ tabIndex: I,
1351
+ focusVisible: ee
1352
+ }), rn = $o(it);
1353
+ return /* @__PURE__ */ p.jsxs(jo, f({
1354
+ as: ye,
1355
+ className: w(rn.root, l),
1356
+ ownerState: it,
1357
+ onBlur: Qt,
1358
+ onClick: E,
1359
+ onContextMenu: xe,
1360
+ onFocus: en,
1361
+ onKeyDown: tn,
1362
+ onKeyUp: nn,
1363
+ onMouseDown: ie,
1364
+ onMouseLeave: Xt,
1365
+ onMouseUp: Kt,
1366
+ onDragLeave: Ht,
1367
+ onTouchEnd: Zt,
1368
+ onTouchMove: Jt,
1369
+ onTouchStart: Yt,
1370
+ ref: on,
1371
+ tabIndex: c ? -1 : I,
1372
+ type: U
1373
+ }, fe, H, {
1374
+ children: [a, F ? (
1375
+ /* TouchRipple is only needed client-side, x2 boost on the server. */
1376
+ /* @__PURE__ */ p.jsx(zt, f({
1377
+ ref: Ve,
1378
+ center: s
1379
+ }, V))
1380
+ ) : null]
1381
+ }));
1382
+ });
1383
+ process.env.NODE_ENV !== "production" && (ot.propTypes = {
1384
+ // ┌────────────────────────────── Warning ──────────────────────────────┐
1385
+ // │ These PropTypes are generated from the TypeScript type definitions. │
1386
+ // │ To update them, edit the d.ts file and run `pnpm proptypes`. │
1387
+ // └─────────────────────────────────────────────────────────────────────┘
1388
+ /**
1389
+ * A ref for imperative actions.
1390
+ * It currently only supports `focusVisible()` action.
1391
+ */
1392
+ action: kn,
1393
+ /**
1394
+ * If `true`, the ripples are centered.
1395
+ * They won't start at the cursor interaction position.
1396
+ * @default false
1397
+ */
1398
+ centerRipple: t.bool,
1399
+ /**
1400
+ * The content of the component.
1401
+ */
1402
+ children: t.node,
1403
+ /**
1404
+ * Override or extend the styles applied to the component.
1405
+ */
1406
+ classes: t.object,
1407
+ /**
1408
+ * @ignore
1409
+ */
1410
+ className: t.string,
1411
+ /**
1412
+ * The component used for the root node.
1413
+ * Either a string to use a HTML element or a component.
1414
+ */
1415
+ component: wt,
1416
+ /**
1417
+ * If `true`, the component is disabled.
1418
+ * @default false
1419
+ */
1420
+ disabled: t.bool,
1421
+ /**
1422
+ * If `true`, the ripple effect is disabled.
1423
+ *
1424
+ * ⚠️ Without a ripple there is no styling for :focus-visible by default. Be sure
1425
+ * to highlight the element by applying separate styles with the `.Mui-focusVisible` class.
1426
+ * @default false
1427
+ */
1428
+ disableRipple: t.bool,
1429
+ /**
1430
+ * If `true`, the touch ripple effect is disabled.
1431
+ * @default false
1432
+ */
1433
+ disableTouchRipple: t.bool,
1434
+ /**
1435
+ * If `true`, the base button will have a keyboard focus ripple.
1436
+ * @default false
1437
+ */
1438
+ focusRipple: t.bool,
1439
+ /**
1440
+ * This prop can help identify which element has keyboard focus.
1441
+ * The class name will be applied when the element gains the focus through keyboard interaction.
1442
+ * It's a polyfill for the [CSS :focus-visible selector](https://drafts.csswg.org/selectors-4/#the-focus-visible-pseudo).
1443
+ * The rationale for using this feature [is explained here](https://github.com/WICG/focus-visible/blob/HEAD/explainer.md).
1444
+ * A [polyfill can be used](https://github.com/WICG/focus-visible) to apply a `focus-visible` class to other components
1445
+ * if needed.
1446
+ */
1447
+ focusVisibleClassName: t.string,
1448
+ /**
1449
+ * @ignore
1450
+ */
1451
+ href: t.any,
1452
+ /**
1453
+ * The component used to render a link when the `href` prop is provided.
1454
+ * @default 'a'
1455
+ */
1456
+ LinkComponent: t.elementType,
1457
+ /**
1458
+ * @ignore
1459
+ */
1460
+ onBlur: t.func,
1461
+ /**
1462
+ * @ignore
1463
+ */
1464
+ onClick: t.func,
1465
+ /**
1466
+ * @ignore
1467
+ */
1468
+ onContextMenu: t.func,
1469
+ /**
1470
+ * @ignore
1471
+ */
1472
+ onDragLeave: t.func,
1473
+ /**
1474
+ * @ignore
1475
+ */
1476
+ onFocus: t.func,
1477
+ /**
1478
+ * Callback fired when the component is focused with a keyboard.
1479
+ * We trigger a `onFocus` callback too.
1480
+ */
1481
+ onFocusVisible: t.func,
1482
+ /**
1483
+ * @ignore
1484
+ */
1485
+ onKeyDown: t.func,
1486
+ /**
1487
+ * @ignore
1488
+ */
1489
+ onKeyUp: t.func,
1490
+ /**
1491
+ * @ignore
1492
+ */
1493
+ onMouseDown: t.func,
1494
+ /**
1495
+ * @ignore
1496
+ */
1497
+ onMouseLeave: t.func,
1498
+ /**
1499
+ * @ignore
1500
+ */
1501
+ onMouseUp: t.func,
1502
+ /**
1503
+ * @ignore
1504
+ */
1505
+ onTouchEnd: t.func,
1506
+ /**
1507
+ * @ignore
1508
+ */
1509
+ onTouchMove: t.func,
1510
+ /**
1511
+ * @ignore
1512
+ */
1513
+ onTouchStart: t.func,
1514
+ /**
1515
+ * The system prop that allows defining system overrides as well as additional CSS styles.
1516
+ */
1517
+ sx: t.oneOfType([t.arrayOf(t.oneOfType([t.func, t.object, t.bool])), t.func, t.object]),
1518
+ /**
1519
+ * @default 0
1520
+ */
1521
+ tabIndex: t.number,
1522
+ /**
1523
+ * Props applied to the `TouchRipple` element.
1524
+ */
1525
+ TouchRippleProps: t.object,
1526
+ /**
1527
+ * A ref that points to the `TouchRipple` element.
1528
+ */
1529
+ touchRippleRef: t.oneOfType([t.func, t.shape({
1530
+ current: t.shape({
1531
+ pulsate: t.func.isRequired,
1532
+ start: t.func.isRequired,
1533
+ stop: t.func.isRequired
1534
+ })
1535
+ })]),
1536
+ /**
1537
+ * @ignore
1538
+ */
1539
+ type: t.oneOfType([t.oneOf(["button", "reset", "submit"]), t.string])
1540
+ });
1541
+ function wo(e) {
1542
+ return J("MuiIconButton", e);
1543
+ }
1544
+ const Mo = X("MuiIconButton", ["root", "disabled", "colorInherit", "colorPrimary", "colorSecondary", "colorError", "colorInfo", "colorSuccess", "colorWarning", "edgeStart", "edgeEnd", "sizeSmall", "sizeMedium", "sizeLarge"]), ko = ["edge", "children", "className", "color", "disabled", "disableFocusRipple", "size"], Po = (e) => {
1545
+ const {
1546
+ classes: n,
1547
+ disabled: o,
1548
+ color: r,
1549
+ edge: i,
1550
+ size: s
1551
+ } = e, a = {
1552
+ root: ["root", o && "disabled", r !== "default" && `color${K(r)}`, i && `edge${K(i)}`, `size${K(s)}`]
1553
+ };
1554
+ return Q(a, wo, n);
1555
+ }, Io = P(ot, {
1556
+ name: "MuiIconButton",
1557
+ slot: "Root",
1558
+ overridesResolver: (e, n) => {
1559
+ const {
1560
+ ownerState: o
1561
+ } = e;
1562
+ return [n.root, o.color !== "default" && n[`color${K(o.color)}`], o.edge && n[`edge${K(o.edge)}`], n[`size${K(o.size)}`]];
1563
+ }
1564
+ })(({
1565
+ theme: e,
1566
+ ownerState: n
1567
+ }) => f({
1568
+ textAlign: "center",
1569
+ flex: "0 0 auto",
1570
+ fontSize: e.typography.pxToRem(24),
1571
+ padding: 8,
1572
+ borderRadius: "50%",
1573
+ overflow: "visible",
1574
+ // Explicitly set the default value to solve a bug on IE11.
1575
+ color: (e.vars || e).palette.action.active,
1576
+ transition: e.transitions.create("background-color", {
1577
+ duration: e.transitions.duration.shortest
1578
+ })
1579
+ }, !n.disableRipple && {
1580
+ "&:hover": {
1581
+ backgroundColor: e.vars ? `rgba(${e.vars.palette.action.activeChannel} / ${e.vars.palette.action.hoverOpacity})` : $e(e.palette.action.active, e.palette.action.hoverOpacity),
1582
+ // Reset on touch devices, it doesn't add specificity
1583
+ "@media (hover: none)": {
1584
+ backgroundColor: "transparent"
1585
+ }
1586
+ }
1587
+ }, n.edge === "start" && {
1588
+ marginLeft: n.size === "small" ? -3 : -12
1589
+ }, n.edge === "end" && {
1590
+ marginRight: n.size === "small" ? -3 : -12
1591
+ }), ({
1592
+ theme: e,
1593
+ ownerState: n
1594
+ }) => {
1595
+ var o;
1596
+ const r = (o = (e.vars || e).palette) == null ? void 0 : o[n.color];
1597
+ return f({}, n.color === "inherit" && {
1598
+ color: "inherit"
1599
+ }, n.color !== "inherit" && n.color !== "default" && f({
1600
+ color: r == null ? void 0 : r.main
1601
+ }, !n.disableRipple && {
1602
+ "&:hover": f({}, r && {
1603
+ backgroundColor: e.vars ? `rgba(${r.mainChannel} / ${e.vars.palette.action.hoverOpacity})` : $e(r.main, e.palette.action.hoverOpacity)
1604
+ }, {
1605
+ // Reset on touch devices, it doesn't add specificity
1606
+ "@media (hover: none)": {
1607
+ backgroundColor: "transparent"
1608
+ }
1609
+ })
1610
+ }), n.size === "small" && {
1611
+ padding: 5,
1612
+ fontSize: e.typography.pxToRem(18)
1613
+ }, n.size === "large" && {
1614
+ padding: 12,
1615
+ fontSize: e.typography.pxToRem(28)
1616
+ }, {
1617
+ [`&.${Mo.disabled}`]: {
1618
+ backgroundColor: "transparent",
1619
+ color: (e.vars || e).palette.action.disabled
1620
+ }
1621
+ });
1622
+ }), Lt = /* @__PURE__ */ m.forwardRef(function(n, o) {
1623
+ const r = Y({
1624
+ props: n,
1625
+ name: "MuiIconButton"
1626
+ }), {
1627
+ edge: i = !1,
1628
+ children: s,
1629
+ className: a,
1630
+ color: l = "default",
1631
+ disabled: d = !1,
1632
+ disableFocusRipple: c = !1,
1633
+ size: u = "medium"
1634
+ } = r, g = A(r, ko), h = f({}, r, {
1635
+ edge: i,
1636
+ color: l,
1637
+ disabled: d,
1638
+ disableFocusRipple: c,
1639
+ size: u
1640
+ }), x = Po(h);
1641
+ return /* @__PURE__ */ p.jsx(Io, f({
1642
+ className: w(x.root, a),
1643
+ centerRipple: !0,
1644
+ focusRipple: !c,
1645
+ disabled: d,
1646
+ ref: o
1647
+ }, g, {
1648
+ ownerState: h,
1649
+ children: s
1650
+ }));
1651
+ });
1652
+ process.env.NODE_ENV !== "production" && (Lt.propTypes = {
1653
+ // ┌────────────────────────────── Warning ──────────────────────────────┐
1654
+ // │ These PropTypes are generated from the TypeScript type definitions. │
1655
+ // │ To update them, edit the d.ts file and run `pnpm proptypes`. │
1656
+ // └─────────────────────────────────────────────────────────────────────┘
1657
+ /**
1658
+ * The icon to display.
1659
+ */
1660
+ children: Pe(t.node, (e) => m.Children.toArray(e.children).some((o) => /* @__PURE__ */ m.isValidElement(o) && o.props.onClick) ? new Error(["MUI: You are providing an onClick event listener to a child of a button element.", "Prefer applying it to the IconButton directly.", "This guarantees that the whole <button> will be responsive to click events."].join(`
1661
+ `)) : null),
1662
+ /**
1663
+ * Override or extend the styles applied to the component.
1664
+ */
1665
+ classes: t.object,
1666
+ /**
1667
+ * @ignore
1668
+ */
1669
+ className: t.string,
1670
+ /**
1671
+ * The color of the component.
1672
+ * It supports both default and custom theme colors, which can be added as shown in the
1673
+ * [palette customization guide](https://mui.com/material-ui/customization/palette/#custom-colors).
1674
+ * @default 'default'
1675
+ */
1676
+ color: t.oneOfType([t.oneOf(["inherit", "default", "primary", "secondary", "error", "info", "success", "warning"]), t.string]),
1677
+ /**
1678
+ * If `true`, the component is disabled.
1679
+ * @default false
1680
+ */
1681
+ disabled: t.bool,
1682
+ /**
1683
+ * If `true`, the keyboard focus ripple is disabled.
1684
+ * @default false
1685
+ */
1686
+ disableFocusRipple: t.bool,
1687
+ /**
1688
+ * If `true`, the ripple effect is disabled.
1689
+ *
1690
+ * ⚠️ Without a ripple there is no styling for :focus-visible by default. Be sure
1691
+ * to highlight the element by applying separate styles with the `.Mui-focusVisible` class.
1692
+ * @default false
1693
+ */
1694
+ disableRipple: t.bool,
1695
+ /**
1696
+ * If given, uses a negative margin to counteract the padding on one
1697
+ * side (this is often helpful for aligning the left or right
1698
+ * side of the icon with content above or below, without ruining the border
1699
+ * size and shape).
1700
+ * @default false
1701
+ */
1702
+ edge: t.oneOf(["end", "start", !1]),
1703
+ /**
1704
+ * The size of the component.
1705
+ * `small` is equivalent to the dense button styling.
1706
+ * @default 'medium'
1707
+ */
1708
+ size: t.oneOfType([t.oneOf(["small", "medium", "large"]), t.string]),
1709
+ /**
1710
+ * The system prop that allows defining system overrides as well as additional CSS styles.
1711
+ */
1712
+ sx: t.oneOfType([t.arrayOf(t.oneOfType([t.func, t.object, t.bool])), t.func, t.object])
1713
+ });
1714
+ const Vo = ve(/* @__PURE__ */ p.jsx("path", {
1715
+ d: "M20,12A8,8 0 0,1 12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4C12.76,4 13.5,4.11 14.2, 4.31L15.77,2.74C14.61,2.26 13.34,2 12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0, 0 22,12M7.91,10.08L6.5,11.5L11,16L21,6L19.59,4.58L11,13.17L7.91,10.08Z"
1716
+ }), "SuccessOutlined"), Ao = ve(/* @__PURE__ */ p.jsx("path", {
1717
+ d: "M12 5.99L19.53 19H4.47L12 5.99M12 2L1 21h22L12 2zm1 14h-2v2h2v-2zm0-6h-2v4h2v-4z"
1718
+ }), "ReportProblemOutlined"), Do = ve(/* @__PURE__ */ p.jsx("path", {
1719
+ d: "M11 15h2v2h-2zm0-8h2v6h-2zm.99-5C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"
1720
+ }), "ErrorOutline"), Bo = ve(/* @__PURE__ */ p.jsx("path", {
1721
+ d: "M11,9H13V7H11M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20, 12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10, 10 0 0,0 12,2M11,17H13V11H11V17Z"
1722
+ }), "InfoOutlined"), zo = ve(/* @__PURE__ */ p.jsx("path", {
1723
+ d: "M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"
1724
+ }), "Close"), Lo = ["action", "children", "className", "closeText", "color", "components", "componentsProps", "icon", "iconMapping", "onClose", "role", "severity", "slotProps", "slots", "variant"], _o = (e) => {
1725
+ const {
1726
+ variant: n,
1727
+ color: o,
1728
+ severity: r,
1729
+ classes: i
1730
+ } = e, s = {
1731
+ root: ["root", `color${K(o || r)}`, `${n}${K(o || r)}`, `${n}`],
1732
+ icon: ["icon"],
1733
+ message: ["message"],
1734
+ action: ["action"]
1735
+ };
1736
+ return Q(s, lo, i);
1737
+ }, Wo = P(et, {
1738
+ name: "MuiAlert",
1739
+ slot: "Root",
1740
+ overridesResolver: (e, n) => {
1741
+ const {
1742
+ ownerState: o
1743
+ } = e;
1744
+ return [n.root, n[o.variant], n[`${o.variant}${K(o.color || o.severity)}`]];
1745
+ }
1746
+ })(({
1747
+ theme: e
1748
+ }) => {
1749
+ const n = e.palette.mode === "light" ? pt : ft, o = e.palette.mode === "light" ? ft : pt;
1750
+ return f({}, e.typography.body2, {
1751
+ backgroundColor: "transparent",
1752
+ display: "flex",
1753
+ padding: "6px 16px",
1754
+ variants: [...Object.entries(e.palette).filter(([, r]) => r.main && r.light).map(([r]) => ({
1755
+ props: {
1756
+ colorSeverity: r,
1757
+ variant: "standard"
1758
+ },
1759
+ style: {
1760
+ color: e.vars ? e.vars.palette.Alert[`${r}Color`] : n(e.palette[r].light, 0.6),
1761
+ backgroundColor: e.vars ? e.vars.palette.Alert[`${r}StandardBg`] : o(e.palette[r].light, 0.9),
1762
+ [`& .${mt.icon}`]: e.vars ? {
1763
+ color: e.vars.palette.Alert[`${r}IconColor`]
1764
+ } : {
1765
+ color: e.palette[r].main
1766
+ }
1767
+ }
1768
+ })), ...Object.entries(e.palette).filter(([, r]) => r.main && r.light).map(([r]) => ({
1769
+ props: {
1770
+ colorSeverity: r,
1771
+ variant: "outlined"
1772
+ },
1773
+ style: {
1774
+ color: e.vars ? e.vars.palette.Alert[`${r}Color`] : n(e.palette[r].light, 0.6),
1775
+ border: `1px solid ${(e.vars || e).palette[r].light}`,
1776
+ [`& .${mt.icon}`]: e.vars ? {
1777
+ color: e.vars.palette.Alert[`${r}IconColor`]
1778
+ } : {
1779
+ color: e.palette[r].main
1780
+ }
1781
+ }
1782
+ })), ...Object.entries(e.palette).filter(([, r]) => r.main && r.dark).map(([r]) => ({
1783
+ props: {
1784
+ colorSeverity: r,
1785
+ variant: "filled"
1786
+ },
1787
+ style: f({
1788
+ fontWeight: e.typography.fontWeightMedium
1789
+ }, e.vars ? {
1790
+ color: e.vars.palette.Alert[`${r}FilledColor`],
1791
+ backgroundColor: e.vars.palette.Alert[`${r}FilledBg`]
1792
+ } : {
1793
+ backgroundColor: e.palette.mode === "dark" ? e.palette[r].dark : e.palette[r].main,
1794
+ color: e.palette.getContrastText(e.palette[r].main)
1795
+ })
1796
+ }))]
1797
+ });
1798
+ }), Fo = P("div", {
1799
+ name: "MuiAlert",
1800
+ slot: "Icon",
1801
+ overridesResolver: (e, n) => n.icon
1802
+ })({
1803
+ marginRight: 12,
1804
+ padding: "7px 0",
1805
+ display: "flex",
1806
+ fontSize: 22,
1807
+ opacity: 0.9
1808
+ }), Uo = P("div", {
1809
+ name: "MuiAlert",
1810
+ slot: "Message",
1811
+ overridesResolver: (e, n) => n.message
1812
+ })({
1813
+ padding: "8px 0",
1814
+ minWidth: 0,
1815
+ overflow: "auto"
1816
+ }), Tt = P("div", {
1817
+ name: "MuiAlert",
1818
+ slot: "Action",
1819
+ overridesResolver: (e, n) => n.action
1820
+ })({
1821
+ display: "flex",
1822
+ alignItems: "flex-start",
1823
+ padding: "4px 0 0 16px",
1824
+ marginLeft: "auto",
1825
+ marginRight: -8
1826
+ }), Ct = {
1827
+ success: /* @__PURE__ */ p.jsx(Vo, {
1828
+ fontSize: "inherit"
1829
+ }),
1830
+ warning: /* @__PURE__ */ p.jsx(Ao, {
1831
+ fontSize: "inherit"
1832
+ }),
1833
+ error: /* @__PURE__ */ p.jsx(Do, {
1834
+ fontSize: "inherit"
1835
+ }),
1836
+ info: /* @__PURE__ */ p.jsx(Bo, {
1837
+ fontSize: "inherit"
1838
+ })
1839
+ }, _t = /* @__PURE__ */ m.forwardRef(function(n, o) {
1840
+ const r = Y({
1841
+ props: n,
1842
+ name: "MuiAlert"
1843
+ }), {
1844
+ action: i,
1845
+ children: s,
1846
+ className: a,
1847
+ closeText: l = "Close",
1848
+ color: d,
1849
+ components: c = {},
1850
+ componentsProps: u = {},
1851
+ icon: g,
1852
+ iconMapping: h = Ct,
1853
+ onClose: x,
1854
+ role: y = "alert",
1855
+ severity: E = "success",
1856
+ slotProps: $ = {},
1857
+ slots: C = {},
1858
+ variant: M = "standard"
1859
+ } = r, j = A(r, Lo), v = f({}, r, {
1860
+ color: d,
1861
+ severity: E,
1862
+ variant: M,
1863
+ colorSeverity: d || E
1864
+ }), N = _o(v), R = {
1865
+ slots: f({
1866
+ closeButton: c.CloseButton,
1867
+ closeIcon: c.CloseIcon
1868
+ }, C),
1869
+ slotProps: f({}, u, $)
1870
+ }, [O, k] = Ge("closeButton", {
1871
+ elementType: Lt,
1872
+ externalForwardedProps: R,
1873
+ ownerState: v
1874
+ }), [W, S] = Ge("closeIcon", {
1875
+ elementType: zo,
1876
+ externalForwardedProps: R,
1877
+ ownerState: v
1878
+ });
1879
+ return /* @__PURE__ */ p.jsxs(Wo, f({
1880
+ role: y,
1881
+ elevation: 0,
1882
+ ownerState: v,
1883
+ className: w(N.root, a),
1884
+ ref: o
1885
+ }, j, {
1886
+ children: [g !== !1 ? /* @__PURE__ */ p.jsx(Fo, {
1887
+ ownerState: v,
1888
+ className: N.icon,
1889
+ children: g || h[E] || Ct[E]
1890
+ }) : null, /* @__PURE__ */ p.jsx(Uo, {
1891
+ ownerState: v,
1892
+ className: N.message,
1893
+ children: s
1894
+ }), i != null ? /* @__PURE__ */ p.jsx(Tt, {
1895
+ ownerState: v,
1896
+ className: N.action,
1897
+ children: i
1898
+ }) : null, i == null && x ? /* @__PURE__ */ p.jsx(Tt, {
1899
+ ownerState: v,
1900
+ className: N.action,
1901
+ children: /* @__PURE__ */ p.jsx(O, f({
1902
+ size: "small",
1903
+ "aria-label": l,
1904
+ title: l,
1905
+ color: "inherit",
1906
+ onClick: x
1907
+ }, k, {
1908
+ children: /* @__PURE__ */ p.jsx(W, f({
1909
+ fontSize: "small"
1910
+ }, S))
1911
+ }))
1912
+ }) : null]
1913
+ }));
1914
+ });
1915
+ process.env.NODE_ENV !== "production" && (_t.propTypes = {
1916
+ // ┌────────────────────────────── Warning ──────────────────────────────┐
1917
+ // │ These PropTypes are generated from the TypeScript type definitions. │
1918
+ // │ To update them, edit the d.ts file and run `pnpm proptypes`. │
1919
+ // └─────────────────────────────────────────────────────────────────────┘
1920
+ /**
1921
+ * The action to display. It renders after the message, at the end of the alert.
1922
+ */
1923
+ action: t.node,
1924
+ /**
1925
+ * The content of the component.
1926
+ */
1927
+ children: t.node,
1928
+ /**
1929
+ * Override or extend the styles applied to the component.
1930
+ */
1931
+ classes: t.object,
1932
+ /**
1933
+ * @ignore
1934
+ */
1935
+ className: t.string,
1936
+ /**
1937
+ * Override the default label for the *close popup* icon button.
1938
+ *
1939
+ * For localization purposes, you can use the provided [translations](/material-ui/guides/localization/).
1940
+ * @default 'Close'
1941
+ */
1942
+ closeText: t.string,
1943
+ /**
1944
+ * The color of the component. Unless provided, the value is taken from the `severity` prop.
1945
+ * It supports both default and custom theme colors, which can be added as shown in the
1946
+ * [palette customization guide](https://mui.com/material-ui/customization/palette/#custom-colors).
1947
+ */
1948
+ color: t.oneOfType([t.oneOf(["error", "info", "success", "warning"]), t.string]),
1949
+ /**
1950
+ * The components used for each slot inside.
1951
+ *
1952
+ * @deprecated use the `slots` prop instead. This prop will be removed in v7. [How to migrate](/material-ui/migration/migrating-from-deprecated-apis/).
1953
+ *
1954
+ * @default {}
1955
+ */
1956
+ components: t.shape({
1957
+ CloseButton: t.elementType,
1958
+ CloseIcon: t.elementType
1959
+ }),
1960
+ /**
1961
+ * The extra props for the slot components.
1962
+ * You can override the existing props or add new ones.
1963
+ *
1964
+ * @deprecated use the `slotProps` prop instead. This prop will be removed in v7. [How to migrate](/material-ui/migration/migrating-from-deprecated-apis/).
1965
+ *
1966
+ * @default {}
1967
+ */
1968
+ componentsProps: t.shape({
1969
+ closeButton: t.object,
1970
+ closeIcon: t.object
1971
+ }),
1972
+ /**
1973
+ * Override the icon displayed before the children.
1974
+ * Unless provided, the icon is mapped to the value of the `severity` prop.
1975
+ * Set to `false` to remove the `icon`.
1976
+ */
1977
+ icon: t.node,
1978
+ /**
1979
+ * The component maps the `severity` prop to a range of different icons,
1980
+ * for instance success to `<SuccessOutlined>`.
1981
+ * If you wish to change this mapping, you can provide your own.
1982
+ * Alternatively, you can use the `icon` prop to override the icon displayed.
1983
+ */
1984
+ iconMapping: t.shape({
1985
+ error: t.node,
1986
+ info: t.node,
1987
+ success: t.node,
1988
+ warning: t.node
1989
+ }),
1990
+ /**
1991
+ * Callback fired when the component requests to be closed.
1992
+ * When provided and no `action` prop is set, a close icon button is displayed that triggers the callback when clicked.
1993
+ * @param {React.SyntheticEvent} event The event source of the callback.
1994
+ */
1995
+ onClose: t.func,
1996
+ /**
1997
+ * The ARIA role attribute of the element.
1998
+ * @default 'alert'
1999
+ */
2000
+ role: t.string,
2001
+ /**
2002
+ * The severity of the alert. This defines the color and icon used.
2003
+ * @default 'success'
2004
+ */
2005
+ severity: t.oneOfType([t.oneOf(["error", "info", "success", "warning"]), t.string]),
2006
+ /**
2007
+ * The props used for each slot inside.
2008
+ * @default {}
2009
+ */
2010
+ slotProps: t.shape({
2011
+ closeButton: t.oneOfType([t.func, t.object]),
2012
+ closeIcon: t.oneOfType([t.func, t.object])
2013
+ }),
2014
+ /**
2015
+ * The components used for each slot inside.
2016
+ * @default {}
2017
+ */
2018
+ slots: t.shape({
2019
+ closeButton: t.elementType,
2020
+ closeIcon: t.elementType
2021
+ }),
2022
+ /**
2023
+ * The system prop that allows defining system overrides as well as additional CSS styles.
2024
+ */
2025
+ sx: t.oneOfType([t.arrayOf(t.oneOfType([t.func, t.object, t.bool])), t.func, t.object]),
2026
+ /**
2027
+ * The variant to use.
2028
+ * @default 'standard'
2029
+ */
2030
+ variant: t.oneOfType([t.oneOf(["filled", "outlined", "standard"]), t.string])
2031
+ });
2032
+ const Go = ({ triggerResponse: e, showNotification: n, onClose: o }) => e && n ? p.jsxs(_t, { onClose: o, sx: { marginBottom: 20 }, elevation: 6, severity: "success", variant: "filled", children: ["Backend response: ", e] }) : null, Xe = /* @__PURE__ */ m.createContext();
2033
+ process.env.NODE_ENV !== "production" && (Xe.displayName = "GridContext");
2034
+ function qo(e) {
2035
+ return J("MuiGrid", e);
2036
+ }
2037
+ const Ho = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], Ko = ["column-reverse", "column", "row-reverse", "row"], Xo = ["nowrap", "wrap-reverse", "wrap"], ge = ["auto", !0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], me = X("MuiGrid", [
2038
+ "root",
2039
+ "container",
2040
+ "item",
2041
+ "zeroMinWidth",
2042
+ // spacings
2043
+ ...Ho.map((e) => `spacing-xs-${e}`),
2044
+ // direction values
2045
+ ...Ko.map((e) => `direction-xs-${e}`),
2046
+ // wrap values
2047
+ ...Xo.map((e) => `wrap-xs-${e}`),
2048
+ // grid sizes for all breakpoints
2049
+ ...ge.map((e) => `grid-xs-${e}`),
2050
+ ...ge.map((e) => `grid-sm-${e}`),
2051
+ ...ge.map((e) => `grid-md-${e}`),
2052
+ ...ge.map((e) => `grid-lg-${e}`),
2053
+ ...ge.map((e) => `grid-xl-${e}`)
2054
+ ]), Yo = ["className", "columns", "columnSpacing", "component", "container", "direction", "item", "rowSpacing", "spacing", "wrap", "zeroMinWidth"];
2055
+ function de(e) {
2056
+ const n = parseFloat(e);
2057
+ return `${n}${String(e).replace(String(n), "") || "px"}`;
2058
+ }
2059
+ function Zo({
2060
+ theme: e,
2061
+ ownerState: n
2062
+ }) {
2063
+ let o;
2064
+ return e.breakpoints.keys.reduce((r, i) => {
2065
+ let s = {};
2066
+ if (n[i] && (o = n[i]), !o)
2067
+ return r;
2068
+ if (o === !0)
2069
+ s = {
2070
+ flexBasis: 0,
2071
+ flexGrow: 1,
2072
+ maxWidth: "100%"
2073
+ };
2074
+ else if (o === "auto")
2075
+ s = {
2076
+ flexBasis: "auto",
2077
+ flexGrow: 0,
2078
+ flexShrink: 0,
2079
+ maxWidth: "none",
2080
+ width: "auto"
2081
+ };
2082
+ else {
2083
+ const a = ke({
2084
+ values: n.columns,
2085
+ breakpoints: e.breakpoints.values
2086
+ }), l = typeof a == "object" ? a[i] : a;
2087
+ if (l == null)
2088
+ return r;
2089
+ const d = `${Math.round(o / l * 1e8) / 1e6}%`;
2090
+ let c = {};
2091
+ if (n.container && n.item && n.columnSpacing !== 0) {
2092
+ const u = e.spacing(n.columnSpacing);
2093
+ if (u !== "0px") {
2094
+ const g = `calc(${d} + ${de(u)})`;
2095
+ c = {
2096
+ flexBasis: g,
2097
+ maxWidth: g
2098
+ };
2099
+ }
2100
+ }
2101
+ s = f({
2102
+ flexBasis: d,
2103
+ flexGrow: 0,
2104
+ maxWidth: d
2105
+ }, c);
2106
+ }
2107
+ return e.breakpoints.values[i] === 0 ? Object.assign(r, s) : r[e.breakpoints.up(i)] = s, r;
2108
+ }, {});
2109
+ }
2110
+ function Jo({
2111
+ theme: e,
2112
+ ownerState: n
2113
+ }) {
2114
+ const o = ke({
2115
+ values: n.direction,
2116
+ breakpoints: e.breakpoints.values
2117
+ });
2118
+ return Ye({
2119
+ theme: e
2120
+ }, o, (r) => {
2121
+ const i = {
2122
+ flexDirection: r
2123
+ };
2124
+ return r.indexOf("column") === 0 && (i[`& > .${me.item}`] = {
2125
+ maxWidth: "none"
2126
+ }), i;
2127
+ });
2128
+ }
2129
+ function Wt({
2130
+ breakpoints: e,
2131
+ values: n
2132
+ }) {
2133
+ let o = "";
2134
+ Object.keys(n).forEach((i) => {
2135
+ o === "" && n[i] !== 0 && (o = i);
2136
+ });
2137
+ const r = Object.keys(e).sort((i, s) => e[i] - e[s]);
2138
+ return r.slice(0, r.indexOf(o));
2139
+ }
2140
+ function Qo({
2141
+ theme: e,
2142
+ ownerState: n
2143
+ }) {
2144
+ const {
2145
+ container: o,
2146
+ rowSpacing: r
2147
+ } = n;
2148
+ let i = {};
2149
+ if (o && r !== 0) {
2150
+ const s = ke({
2151
+ values: r,
2152
+ breakpoints: e.breakpoints.values
2153
+ });
2154
+ let a;
2155
+ typeof s == "object" && (a = Wt({
2156
+ breakpoints: e.breakpoints.values,
2157
+ values: s
2158
+ })), i = Ye({
2159
+ theme: e
2160
+ }, s, (l, d) => {
2161
+ var c;
2162
+ const u = e.spacing(l);
2163
+ return u !== "0px" ? {
2164
+ marginTop: `-${de(u)}`,
2165
+ [`& > .${me.item}`]: {
2166
+ paddingTop: de(u)
2167
+ }
2168
+ } : (c = a) != null && c.includes(d) ? {} : {
2169
+ marginTop: 0,
2170
+ [`& > .${me.item}`]: {
2171
+ paddingTop: 0
2172
+ }
2173
+ };
2174
+ });
2175
+ }
2176
+ return i;
2177
+ }
2178
+ function er({
2179
+ theme: e,
2180
+ ownerState: n
2181
+ }) {
2182
+ const {
2183
+ container: o,
2184
+ columnSpacing: r
2185
+ } = n;
2186
+ let i = {};
2187
+ if (o && r !== 0) {
2188
+ const s = ke({
2189
+ values: r,
2190
+ breakpoints: e.breakpoints.values
2191
+ });
2192
+ let a;
2193
+ typeof s == "object" && (a = Wt({
2194
+ breakpoints: e.breakpoints.values,
2195
+ values: s
2196
+ })), i = Ye({
2197
+ theme: e
2198
+ }, s, (l, d) => {
2199
+ var c;
2200
+ const u = e.spacing(l);
2201
+ return u !== "0px" ? {
2202
+ width: `calc(100% + ${de(u)})`,
2203
+ marginLeft: `-${de(u)}`,
2204
+ [`& > .${me.item}`]: {
2205
+ paddingLeft: de(u)
2206
+ }
2207
+ } : (c = a) != null && c.includes(d) ? {} : {
2208
+ width: "100%",
2209
+ marginLeft: 0,
2210
+ [`& > .${me.item}`]: {
2211
+ paddingLeft: 0
2212
+ }
2213
+ };
2214
+ });
2215
+ }
2216
+ return i;
2217
+ }
2218
+ function tr(e, n, o = {}) {
2219
+ if (!e || e <= 0)
2220
+ return [];
2221
+ if (typeof e == "string" && !Number.isNaN(Number(e)) || typeof e == "number")
2222
+ return [o[`spacing-xs-${String(e)}`]];
2223
+ const r = [];
2224
+ return n.forEach((i) => {
2225
+ const s = e[i];
2226
+ Number(s) > 0 && r.push(o[`spacing-${i}-${String(s)}`]);
2227
+ }), r;
2228
+ }
2229
+ const nr = P("div", {
2230
+ name: "MuiGrid",
2231
+ slot: "Root",
2232
+ overridesResolver: (e, n) => {
2233
+ const {
2234
+ ownerState: o
2235
+ } = e, {
2236
+ container: r,
2237
+ direction: i,
2238
+ item: s,
2239
+ spacing: a,
2240
+ wrap: l,
2241
+ zeroMinWidth: d,
2242
+ breakpoints: c
2243
+ } = o;
2244
+ let u = [];
2245
+ r && (u = tr(a, c, n));
2246
+ const g = [];
2247
+ return c.forEach((h) => {
2248
+ const x = o[h];
2249
+ x && g.push(n[`grid-${h}-${String(x)}`]);
2250
+ }), [n.root, r && n.container, s && n.item, d && n.zeroMinWidth, ...u, i !== "row" && n[`direction-xs-${String(i)}`], l !== "wrap" && n[`wrap-xs-${String(l)}`], ...g];
2251
+ }
2252
+ })(({
2253
+ ownerState: e
2254
+ }) => f({
2255
+ boxSizing: "border-box"
2256
+ }, e.container && {
2257
+ display: "flex",
2258
+ flexWrap: "wrap",
2259
+ width: "100%"
2260
+ }, e.item && {
2261
+ margin: 0
2262
+ // For instance, it's useful when used with a `figure` element.
2263
+ }, e.zeroMinWidth && {
2264
+ minWidth: 0
2265
+ }, e.wrap !== "wrap" && {
2266
+ flexWrap: e.wrap
2267
+ }), Jo, Qo, er, Zo);
2268
+ function or(e, n) {
2269
+ if (!e || e <= 0)
2270
+ return [];
2271
+ if (typeof e == "string" && !Number.isNaN(Number(e)) || typeof e == "number")
2272
+ return [`spacing-xs-${String(e)}`];
2273
+ const o = [];
2274
+ return n.forEach((r) => {
2275
+ const i = e[r];
2276
+ if (Number(i) > 0) {
2277
+ const s = `spacing-${r}-${String(i)}`;
2278
+ o.push(s);
2279
+ }
2280
+ }), o;
2281
+ }
2282
+ const rr = (e) => {
2283
+ const {
2284
+ classes: n,
2285
+ container: o,
2286
+ direction: r,
2287
+ item: i,
2288
+ spacing: s,
2289
+ wrap: a,
2290
+ zeroMinWidth: l,
2291
+ breakpoints: d
2292
+ } = e;
2293
+ let c = [];
2294
+ o && (c = or(s, d));
2295
+ const u = [];
2296
+ d.forEach((h) => {
2297
+ const x = e[h];
2298
+ x && u.push(`grid-${h}-${String(x)}`);
2299
+ });
2300
+ const g = {
2301
+ root: ["root", o && "container", i && "item", l && "zeroMinWidth", ...c, r !== "row" && `direction-xs-${String(r)}`, a !== "wrap" && `wrap-xs-${String(a)}`, ...u]
2302
+ };
2303
+ return Q(g, qo, n);
2304
+ }, pe = /* @__PURE__ */ m.forwardRef(function(n, o) {
2305
+ const r = Y({
2306
+ props: n,
2307
+ name: "MuiGrid"
2308
+ }), {
2309
+ breakpoints: i
2310
+ } = Qe(), s = $t(r), {
2311
+ className: a,
2312
+ columns: l,
2313
+ columnSpacing: d,
2314
+ component: c = "div",
2315
+ container: u = !1,
2316
+ direction: g = "row",
2317
+ item: h = !1,
2318
+ rowSpacing: x,
2319
+ spacing: y = 0,
2320
+ wrap: E = "wrap",
2321
+ zeroMinWidth: $ = !1
2322
+ } = s, C = A(s, Yo), M = x || y, j = d || y, v = m.useContext(Xe), N = u ? l || 12 : v, R = {}, O = f({}, C);
2323
+ i.keys.forEach((S) => {
2324
+ C[S] != null && (R[S] = C[S], delete O[S]);
2325
+ });
2326
+ const k = f({}, s, {
2327
+ columns: N,
2328
+ container: u,
2329
+ direction: g,
2330
+ item: h,
2331
+ rowSpacing: M,
2332
+ columnSpacing: j,
2333
+ wrap: E,
2334
+ zeroMinWidth: $,
2335
+ spacing: y
2336
+ }, R, {
2337
+ breakpoints: i.keys
2338
+ }), W = rr(k);
2339
+ return /* @__PURE__ */ p.jsx(Xe.Provider, {
2340
+ value: N,
2341
+ children: /* @__PURE__ */ p.jsx(nr, f({
2342
+ ownerState: k,
2343
+ className: w(W.root, a),
2344
+ as: c,
2345
+ ref: o
2346
+ }, O))
2347
+ });
2348
+ });
2349
+ process.env.NODE_ENV !== "production" && (pe.propTypes = {
2350
+ // ┌────────────────────────────── Warning ──────────────────────────────┐
2351
+ // │ These PropTypes are generated from the TypeScript type definitions. │
2352
+ // │ To update them, edit the d.ts file and run `pnpm proptypes`. │
2353
+ // └─────────────────────────────────────────────────────────────────────┘
2354
+ /**
2355
+ * The content of the component.
2356
+ */
2357
+ children: t.node,
2358
+ /**
2359
+ * Override or extend the styles applied to the component.
2360
+ */
2361
+ classes: t.object,
2362
+ /**
2363
+ * @ignore
2364
+ */
2365
+ className: t.string,
2366
+ /**
2367
+ * The number of columns.
2368
+ * @default 12
2369
+ */
2370
+ columns: t.oneOfType([t.arrayOf(t.number), t.number, t.object]),
2371
+ /**
2372
+ * Defines the horizontal space between the type `item` components.
2373
+ * It overrides the value of the `spacing` prop.
2374
+ */
2375
+ columnSpacing: t.oneOfType([t.arrayOf(t.oneOfType([t.number, t.string])), t.number, t.object, t.string]),
2376
+ /**
2377
+ * The component used for the root node.
2378
+ * Either a string to use a HTML element or a component.
2379
+ */
2380
+ component: t.elementType,
2381
+ /**
2382
+ * If `true`, the component will have the flex *container* behavior.
2383
+ * You should be wrapping *items* with a *container*.
2384
+ * @default false
2385
+ */
2386
+ container: t.bool,
2387
+ /**
2388
+ * Defines the `flex-direction` style property.
2389
+ * It is applied for all screen sizes.
2390
+ * @default 'row'
2391
+ */
2392
+ direction: t.oneOfType([t.oneOf(["column-reverse", "column", "row-reverse", "row"]), t.arrayOf(t.oneOf(["column-reverse", "column", "row-reverse", "row"])), t.object]),
2393
+ /**
2394
+ * If `true`, the component will have the flex *item* behavior.
2395
+ * You should be wrapping *items* with a *container*.
2396
+ * @default false
2397
+ */
2398
+ item: t.bool,
2399
+ /**
2400
+ * If a number, it sets the number of columns the grid item uses.
2401
+ * It can't be greater than the total number of columns of the container (12 by default).
2402
+ * If 'auto', the grid item's width matches its content.
2403
+ * If false, the prop is ignored.
2404
+ * If true, the grid item's width grows to use the space available in the grid container.
2405
+ * The value is applied for the `lg` breakpoint and wider screens if not overridden.
2406
+ * @default false
2407
+ */
2408
+ lg: t.oneOfType([t.oneOf(["auto"]), t.number, t.bool]),
2409
+ /**
2410
+ * If a number, it sets the number of columns the grid item uses.
2411
+ * It can't be greater than the total number of columns of the container (12 by default).
2412
+ * If 'auto', the grid item's width matches its content.
2413
+ * If false, the prop is ignored.
2414
+ * If true, the grid item's width grows to use the space available in the grid container.
2415
+ * The value is applied for the `md` breakpoint and wider screens if not overridden.
2416
+ * @default false
2417
+ */
2418
+ md: t.oneOfType([t.oneOf(["auto"]), t.number, t.bool]),
2419
+ /**
2420
+ * Defines the vertical space between the type `item` components.
2421
+ * It overrides the value of the `spacing` prop.
2422
+ */
2423
+ rowSpacing: t.oneOfType([t.arrayOf(t.oneOfType([t.number, t.string])), t.number, t.object, t.string]),
2424
+ /**
2425
+ * If a number, it sets the number of columns the grid item uses.
2426
+ * It can't be greater than the total number of columns of the container (12 by default).
2427
+ * If 'auto', the grid item's width matches its content.
2428
+ * If false, the prop is ignored.
2429
+ * If true, the grid item's width grows to use the space available in the grid container.
2430
+ * The value is applied for the `sm` breakpoint and wider screens if not overridden.
2431
+ * @default false
2432
+ */
2433
+ sm: t.oneOfType([t.oneOf(["auto"]), t.number, t.bool]),
2434
+ /**
2435
+ * Defines the space between the type `item` components.
2436
+ * It can only be used on a type `container` component.
2437
+ * @default 0
2438
+ */
2439
+ spacing: t.oneOfType([t.arrayOf(t.oneOfType([t.number, t.string])), t.number, t.object, t.string]),
2440
+ /**
2441
+ * The system prop that allows defining system overrides as well as additional CSS styles.
2442
+ */
2443
+ sx: t.oneOfType([t.arrayOf(t.oneOfType([t.func, t.object, t.bool])), t.func, t.object]),
2444
+ /**
2445
+ * Defines the `flex-wrap` style property.
2446
+ * It's applied for all screen sizes.
2447
+ * @default 'wrap'
2448
+ */
2449
+ wrap: t.oneOf(["nowrap", "wrap-reverse", "wrap"]),
2450
+ /**
2451
+ * If a number, it sets the number of columns the grid item uses.
2452
+ * It can't be greater than the total number of columns of the container (12 by default).
2453
+ * If 'auto', the grid item's width matches its content.
2454
+ * If false, the prop is ignored.
2455
+ * If true, the grid item's width grows to use the space available in the grid container.
2456
+ * The value is applied for the `xl` breakpoint and wider screens if not overridden.
2457
+ * @default false
2458
+ */
2459
+ xl: t.oneOfType([t.oneOf(["auto"]), t.number, t.bool]),
2460
+ /**
2461
+ * If a number, it sets the number of columns the grid item uses.
2462
+ * It can't be greater than the total number of columns of the container (12 by default).
2463
+ * If 'auto', the grid item's width matches its content.
2464
+ * If false, the prop is ignored.
2465
+ * If true, the grid item's width grows to use the space available in the grid container.
2466
+ * The value is applied for all the screen sizes with the lowest priority.
2467
+ * @default false
2468
+ */
2469
+ xs: t.oneOfType([t.oneOf(["auto"]), t.number, t.bool]),
2470
+ /**
2471
+ * If `true`, it sets `min-width: 0` on the item.
2472
+ * Refer to the limitations section of the documentation to better understand the use case.
2473
+ * @default false
2474
+ */
2475
+ zeroMinWidth: t.bool
2476
+ });
2477
+ if (process.env.NODE_ENV !== "production") {
2478
+ const e = Tn("Grid", pe);
2479
+ pe.propTypes = f({}, pe.propTypes, {
2480
+ direction: e("container"),
2481
+ lg: e("item"),
2482
+ md: e("item"),
2483
+ sm: e("item"),
2484
+ spacing: e("container"),
2485
+ wrap: e("container"),
2486
+ xs: e("item"),
2487
+ zeroMinWidth: e("item")
2488
+ });
2489
+ }
2490
+ const sr = ({ activeTaskStatuses: e, openMessageChain: n }) => e ? p.jsx(pe, { container: !0, spacing: 2, sx: {
2491
+ marginBottom: 20
2492
+ }, children: Object.values(e).map((o) => p.jsx(pe, { item: !0, xs: 6, children: p.jsx(Kn, { taskStatus: o, openMessageChain: n }) }, `task-status-grid-item-${o.id}`)) }) : null;
2493
+ function St(e, n) {
2494
+ var o, r;
2495
+ const {
2496
+ timeout: i,
2497
+ easing: s,
2498
+ style: a = {}
2499
+ } = e;
2500
+ return {
2501
+ duration: (o = a.transitionDuration) != null ? o : typeof i == "number" ? i : i[n.mode] || 0,
2502
+ easing: (r = a.transitionTimingFunction) != null ? r : typeof s == "object" ? s[n.mode] : s,
2503
+ delay: a.transitionDelay
2504
+ };
2505
+ }
2506
+ function ir(e) {
2507
+ return J("MuiCollapse", e);
2508
+ }
2509
+ X("MuiCollapse", ["root", "horizontal", "vertical", "entered", "hidden", "wrapper", "wrapperInner"]);
2510
+ const ar = ["addEndListener", "children", "className", "collapsedSize", "component", "easing", "in", "onEnter", "onEntered", "onEntering", "onExit", "onExited", "onExiting", "orientation", "style", "timeout", "TransitionComponent"], lr = (e) => {
2511
+ const {
2512
+ orientation: n,
2513
+ classes: o
2514
+ } = e, r = {
2515
+ root: ["root", `${n}`],
2516
+ entered: ["entered"],
2517
+ hidden: ["hidden"],
2518
+ wrapper: ["wrapper", `${n}`],
2519
+ wrapperInner: ["wrapperInner", `${n}`]
2520
+ };
2521
+ return Q(r, ir, o);
2522
+ }, cr = P("div", {
2523
+ name: "MuiCollapse",
2524
+ slot: "Root",
2525
+ overridesResolver: (e, n) => {
2526
+ const {
2527
+ ownerState: o
2528
+ } = e;
2529
+ return [n.root, n[o.orientation], o.state === "entered" && n.entered, o.state === "exited" && !o.in && o.collapsedSize === "0px" && n.hidden];
2530
+ }
2531
+ })(({
2532
+ theme: e,
2533
+ ownerState: n
2534
+ }) => f({
2535
+ height: 0,
2536
+ overflow: "hidden",
2537
+ transition: e.transitions.create("height")
2538
+ }, n.orientation === "horizontal" && {
2539
+ height: "auto",
2540
+ width: 0,
2541
+ transition: e.transitions.create("width")
2542
+ }, n.state === "entered" && f({
2543
+ height: "auto",
2544
+ overflow: "visible"
2545
+ }, n.orientation === "horizontal" && {
2546
+ width: "auto"
2547
+ }), n.state === "exited" && !n.in && n.collapsedSize === "0px" && {
2548
+ visibility: "hidden"
2549
+ })), ur = P("div", {
2550
+ name: "MuiCollapse",
2551
+ slot: "Wrapper",
2552
+ overridesResolver: (e, n) => n.wrapper
2553
+ })(({
2554
+ ownerState: e
2555
+ }) => f({
2556
+ // Hack to get children with a negative margin to not falsify the height computation.
2557
+ display: "flex",
2558
+ width: "100%"
2559
+ }, e.orientation === "horizontal" && {
2560
+ width: "auto",
2561
+ height: "100%"
2562
+ })), dr = P("div", {
2563
+ name: "MuiCollapse",
2564
+ slot: "WrapperInner",
2565
+ overridesResolver: (e, n) => n.wrapperInner
2566
+ })(({
2567
+ ownerState: e
2568
+ }) => f({
2569
+ width: "100%"
2570
+ }, e.orientation === "horizontal" && {
2571
+ width: "auto",
2572
+ height: "100%"
2573
+ })), rt = /* @__PURE__ */ m.forwardRef(function(n, o) {
2574
+ const r = Y({
2575
+ props: n,
2576
+ name: "MuiCollapse"
2577
+ }), {
2578
+ addEndListener: i,
2579
+ children: s,
2580
+ className: a,
2581
+ collapsedSize: l = "0px",
2582
+ component: d,
2583
+ easing: c,
2584
+ in: u,
2585
+ onEnter: g,
2586
+ onEntered: h,
2587
+ onEntering: x,
2588
+ onExit: y,
2589
+ onExited: E,
2590
+ onExiting: $,
2591
+ orientation: C = "vertical",
2592
+ style: M,
2593
+ timeout: j = Cn.standard,
2594
+ // eslint-disable-next-line react/prop-types
2595
+ TransitionComponent: v = te
2596
+ } = r, N = A(r, ar), R = f({}, r, {
2597
+ orientation: C,
2598
+ collapsedSize: l
2599
+ }), O = lr(R), k = Qe(), W = Ot(), S = m.useRef(null), z = m.useRef(), I = typeof l == "number" ? `${l}px` : l, V = C === "horizontal", L = V ? "width" : "height", U = m.useRef(null), H = Oe(o, U), G = (T) => (_) => {
2600
+ if (T) {
2601
+ const F = U.current;
2602
+ _ === void 0 ? T(F) : T(F, _);
2603
+ }
2604
+ }, D = () => S.current ? S.current[V ? "clientWidth" : "clientHeight"] : 0, Ve = G((T, _) => {
2605
+ S.current && V && (S.current.style.position = "absolute"), T.style[L] = I, g && g(T, _);
2606
+ }), be = G((T, _) => {
2607
+ const F = D();
2608
+ S.current && V && (S.current.style.position = "");
2609
+ const {
2610
+ duration: B,
2611
+ easing: ie
2612
+ } = St({
2613
+ style: M,
2614
+ timeout: j,
2615
+ easing: c
2616
+ }, {
2617
+ mode: "enter"
2618
+ });
2619
+ if (j === "auto") {
2620
+ const xe = k.transitions.getAutoHeightDuration(F);
2621
+ T.style.transitionDuration = `${xe}ms`, z.current = xe;
2622
+ } else
2623
+ T.style.transitionDuration = typeof B == "string" ? B : `${B}ms`;
2624
+ T.style[L] = `${F}px`, T.style.transitionTimingFunction = ie, x && x(T, _);
2625
+ }), Ae = G((T, _) => {
2626
+ T.style[L] = "auto", h && h(T, _);
2627
+ }), De = G((T) => {
2628
+ T.style[L] = `${D()}px`, y && y(T);
2629
+ }), Be = G(E), ee = G((T) => {
2630
+ const _ = D(), {
2631
+ duration: F,
2632
+ easing: B
2633
+ } = St({
2634
+ style: M,
2635
+ timeout: j,
2636
+ easing: c
2637
+ }, {
2638
+ mode: "exit"
2639
+ });
2640
+ if (j === "auto") {
2641
+ const ie = k.transitions.getAutoHeightDuration(_);
2642
+ T.style.transitionDuration = `${ie}ms`, z.current = ie;
2643
+ } else
2644
+ T.style.transitionDuration = typeof F == "string" ? F : `${F}ms`;
2645
+ T.style[L] = I, T.style.transitionTimingFunction = B, $ && $(T);
2646
+ }), se = (T) => {
2647
+ j === "auto" && W.start(z.current || 0, T), i && i(U.current, T);
2648
+ };
2649
+ return /* @__PURE__ */ p.jsx(v, f({
2650
+ in: u,
2651
+ onEnter: Ve,
2652
+ onEntered: Ae,
2653
+ onEntering: be,
2654
+ onExit: De,
2655
+ onExited: Be,
2656
+ onExiting: ee,
2657
+ addEndListener: se,
2658
+ nodeRef: U,
2659
+ timeout: j === "auto" ? null : j
2660
+ }, N, {
2661
+ children: (T, _) => /* @__PURE__ */ p.jsx(cr, f({
2662
+ as: d,
2663
+ className: w(O.root, a, {
2664
+ entered: O.entered,
2665
+ exited: !u && I === "0px" && O.hidden
2666
+ }[T]),
2667
+ style: f({
2668
+ [V ? "minWidth" : "minHeight"]: I
2669
+ }, M),
2670
+ ref: H
2671
+ }, _, {
2672
+ // `ownerState` is set after `childProps` to override any existing `ownerState` property in `childProps`
2673
+ // that might have been forwarded from the Transition component.
2674
+ ownerState: f({}, R, {
2675
+ state: T
2676
+ }),
2677
+ children: /* @__PURE__ */ p.jsx(ur, {
2678
+ ownerState: f({}, R, {
2679
+ state: T
2680
+ }),
2681
+ className: O.wrapper,
2682
+ ref: S,
2683
+ children: /* @__PURE__ */ p.jsx(dr, {
2684
+ ownerState: f({}, R, {
2685
+ state: T
2686
+ }),
2687
+ className: O.wrapperInner,
2688
+ children: s
2689
+ })
2690
+ })
2691
+ }))
2692
+ }));
2693
+ });
2694
+ process.env.NODE_ENV !== "production" && (rt.propTypes = {
2695
+ // ┌────────────────────────────── Warning ──────────────────────────────┐
2696
+ // │ These PropTypes are generated from the TypeScript type definitions. │
2697
+ // │ To update them, edit the d.ts file and run `pnpm proptypes`. │
2698
+ // └─────────────────────────────────────────────────────────────────────┘
2699
+ /**
2700
+ * Add a custom transition end trigger. Called with the transitioning DOM
2701
+ * node and a done callback. Allows for more fine grained transition end
2702
+ * logic. Note: Timeouts are still used as a fallback if provided.
2703
+ */
2704
+ addEndListener: t.func,
2705
+ /**
2706
+ * The content node to be collapsed.
2707
+ */
2708
+ children: t.node,
2709
+ /**
2710
+ * Override or extend the styles applied to the component.
2711
+ */
2712
+ classes: t.object,
2713
+ /**
2714
+ * @ignore
2715
+ */
2716
+ className: t.string,
2717
+ /**
2718
+ * The width (horizontal) or height (vertical) of the container when collapsed.
2719
+ * @default '0px'
2720
+ */
2721
+ collapsedSize: t.oneOfType([t.number, t.string]),
2722
+ /**
2723
+ * The component used for the root node.
2724
+ * Either a string to use a HTML element or a component.
2725
+ */
2726
+ component: wt,
2727
+ /**
2728
+ * The transition timing function.
2729
+ * You may specify a single easing or a object containing enter and exit values.
2730
+ */
2731
+ easing: t.oneOfType([t.shape({
2732
+ enter: t.string,
2733
+ exit: t.string
2734
+ }), t.string]),
2735
+ /**
2736
+ * If `true`, the component will transition in.
2737
+ */
2738
+ in: t.bool,
2739
+ /**
2740
+ * @ignore
2741
+ */
2742
+ onEnter: t.func,
2743
+ /**
2744
+ * @ignore
2745
+ */
2746
+ onEntered: t.func,
2747
+ /**
2748
+ * @ignore
2749
+ */
2750
+ onEntering: t.func,
2751
+ /**
2752
+ * @ignore
2753
+ */
2754
+ onExit: t.func,
2755
+ /**
2756
+ * @ignore
2757
+ */
2758
+ onExited: t.func,
2759
+ /**
2760
+ * @ignore
2761
+ */
2762
+ onExiting: t.func,
2763
+ /**
2764
+ * The transition orientation.
2765
+ * @default 'vertical'
2766
+ */
2767
+ orientation: t.oneOf(["horizontal", "vertical"]),
2768
+ /**
2769
+ * @ignore
2770
+ */
2771
+ style: t.object,
2772
+ /**
2773
+ * The system prop that allows defining system overrides as well as additional CSS styles.
2774
+ */
2775
+ sx: t.oneOfType([t.arrayOf(t.oneOfType([t.func, t.object, t.bool])), t.func, t.object]),
2776
+ /**
2777
+ * The duration for the transition, in milliseconds.
2778
+ * You may specify a single timeout for all transitions, or individually with an object.
2779
+ *
2780
+ * Set to 'auto' to automatically calculate transition time based on height.
2781
+ * @default duration.standard
2782
+ */
2783
+ timeout: t.oneOfType([t.oneOf(["auto"]), t.number, t.shape({
2784
+ appear: t.number,
2785
+ enter: t.number,
2786
+ exit: t.number
2787
+ })])
2788
+ });
2789
+ rt.muiSupportAuto = !0;
2790
+ const st = /* @__PURE__ */ m.createContext({});
2791
+ process.env.NODE_ENV !== "production" && (st.displayName = "AccordionContext");
2792
+ function pr(e) {
2793
+ return J("MuiAccordion", e);
2794
+ }
2795
+ const Ce = X("MuiAccordion", ["root", "rounded", "expanded", "disabled", "gutters", "region"]), fr = ["children", "className", "defaultExpanded", "disabled", "disableGutters", "expanded", "onChange", "square", "slots", "slotProps", "TransitionComponent", "TransitionProps"], gr = (e) => {
2796
+ const {
2797
+ classes: n,
2798
+ square: o,
2799
+ expanded: r,
2800
+ disabled: i,
2801
+ disableGutters: s
2802
+ } = e;
2803
+ return Q({
2804
+ root: ["root", !o && "rounded", r && "expanded", i && "disabled", !s && "gutters"],
2805
+ region: ["region"]
2806
+ }, pr, n);
2807
+ }, hr = P(et, {
2808
+ name: "MuiAccordion",
2809
+ slot: "Root",
2810
+ overridesResolver: (e, n) => {
2811
+ const {
2812
+ ownerState: o
2813
+ } = e;
2814
+ return [{
2815
+ [`& .${Ce.region}`]: n.region
2816
+ }, n.root, !o.square && n.rounded, !o.disableGutters && n.gutters];
2817
+ }
2818
+ })(({
2819
+ theme: e
2820
+ }) => {
2821
+ const n = {
2822
+ duration: e.transitions.duration.shortest
2823
+ };
2824
+ return {
2825
+ position: "relative",
2826
+ transition: e.transitions.create(["margin"], n),
2827
+ overflowAnchor: "none",
2828
+ // Keep the same scrolling position
2829
+ "&::before": {
2830
+ position: "absolute",
2831
+ left: 0,
2832
+ top: -1,
2833
+ right: 0,
2834
+ height: 1,
2835
+ content: '""',
2836
+ opacity: 1,
2837
+ backgroundColor: (e.vars || e).palette.divider,
2838
+ transition: e.transitions.create(["opacity", "background-color"], n)
2839
+ },
2840
+ "&:first-of-type": {
2841
+ "&::before": {
2842
+ display: "none"
2843
+ }
2844
+ },
2845
+ [`&.${Ce.expanded}`]: {
2846
+ "&::before": {
2847
+ opacity: 0
2848
+ },
2849
+ "&:first-of-type": {
2850
+ marginTop: 0
2851
+ },
2852
+ "&:last-of-type": {
2853
+ marginBottom: 0
2854
+ },
2855
+ "& + &": {
2856
+ "&::before": {
2857
+ display: "none"
2858
+ }
2859
+ }
2860
+ },
2861
+ [`&.${Ce.disabled}`]: {
2862
+ backgroundColor: (e.vars || e).palette.action.disabledBackground
2863
+ }
2864
+ };
2865
+ }, ({
2866
+ theme: e
2867
+ }) => ({
2868
+ variants: [{
2869
+ props: (n) => !n.square,
2870
+ style: {
2871
+ borderRadius: 0,
2872
+ "&:first-of-type": {
2873
+ borderTopLeftRadius: (e.vars || e).shape.borderRadius,
2874
+ borderTopRightRadius: (e.vars || e).shape.borderRadius
2875
+ },
2876
+ "&:last-of-type": {
2877
+ borderBottomLeftRadius: (e.vars || e).shape.borderRadius,
2878
+ borderBottomRightRadius: (e.vars || e).shape.borderRadius,
2879
+ // Fix a rendering issue on Edge
2880
+ "@supports (-ms-ime-align: auto)": {
2881
+ borderBottomLeftRadius: 0,
2882
+ borderBottomRightRadius: 0
2883
+ }
2884
+ }
2885
+ }
2886
+ }, {
2887
+ props: (n) => !n.disableGutters,
2888
+ style: {
2889
+ [`&.${Ce.expanded}`]: {
2890
+ margin: "16px 0"
2891
+ }
2892
+ }
2893
+ }]
2894
+ })), Ft = /* @__PURE__ */ m.forwardRef(function(n, o) {
2895
+ const r = Y({
2896
+ props: n,
2897
+ name: "MuiAccordion"
2898
+ }), {
2899
+ children: i,
2900
+ className: s,
2901
+ defaultExpanded: a = !1,
2902
+ disabled: l = !1,
2903
+ disableGutters: d = !1,
2904
+ expanded: c,
2905
+ onChange: u,
2906
+ square: g = !1,
2907
+ slots: h = {},
2908
+ slotProps: x = {},
2909
+ TransitionComponent: y,
2910
+ TransitionProps: E
2911
+ } = r, $ = A(r, fr), [C, M] = Sn({
2912
+ controlled: c,
2913
+ default: a,
2914
+ name: "Accordion",
2915
+ state: "expanded"
2916
+ }), j = m.useCallback((V) => {
2917
+ M(!C), u && u(V, !C);
2918
+ }, [C, u, M]), [v, ...N] = m.Children.toArray(i), R = m.useMemo(() => ({
2919
+ expanded: C,
2920
+ disabled: l,
2921
+ disableGutters: d,
2922
+ toggle: j
2923
+ }), [C, l, d, j]), O = f({}, r, {
2924
+ square: g,
2925
+ disabled: l,
2926
+ disableGutters: d,
2927
+ expanded: C
2928
+ }), k = gr(O), W = f({
2929
+ transition: y
2930
+ }, h), S = f({
2931
+ transition: E
2932
+ }, x), [z, I] = Ge("transition", {
2933
+ elementType: rt,
2934
+ externalForwardedProps: {
2935
+ slots: W,
2936
+ slotProps: S
2937
+ },
2938
+ ownerState: O
2939
+ });
2940
+ return /* @__PURE__ */ p.jsxs(hr, f({
2941
+ className: w(k.root, s),
2942
+ ref: o,
2943
+ ownerState: O,
2944
+ square: g
2945
+ }, $, {
2946
+ children: [/* @__PURE__ */ p.jsx(st.Provider, {
2947
+ value: R,
2948
+ children: v
2949
+ }), /* @__PURE__ */ p.jsx(z, f({
2950
+ in: C,
2951
+ timeout: "auto"
2952
+ }, I, {
2953
+ children: /* @__PURE__ */ p.jsx("div", {
2954
+ "aria-labelledby": v.props.id,
2955
+ id: v.props["aria-controls"],
2956
+ role: "region",
2957
+ className: k.region,
2958
+ children: N
2959
+ })
2960
+ }))]
2961
+ }));
2962
+ });
2963
+ process.env.NODE_ENV !== "production" && (Ft.propTypes = {
2964
+ // ┌────────────────────────────── Warning ──────────────────────────────┐
2965
+ // │ These PropTypes are generated from the TypeScript type definitions. │
2966
+ // │ To update them, edit the d.ts file and run `pnpm proptypes`. │
2967
+ // └─────────────────────────────────────────────────────────────────────┘
2968
+ /**
2969
+ * The content of the component.
2970
+ */
2971
+ children: Pe(t.node.isRequired, (e) => {
2972
+ const n = m.Children.toArray(e.children)[0];
2973
+ return Rn.isFragment(n) ? new Error("MUI: The Accordion doesn't accept a Fragment as a child. Consider providing an array instead.") : /* @__PURE__ */ m.isValidElement(n) ? null : new Error("MUI: Expected the first child of Accordion to be a valid element.");
2974
+ }),
2975
+ /**
2976
+ * Override or extend the styles applied to the component.
2977
+ */
2978
+ classes: t.object,
2979
+ /**
2980
+ * @ignore
2981
+ */
2982
+ className: t.string,
2983
+ /**
2984
+ * If `true`, expands the accordion by default.
2985
+ * @default false
2986
+ */
2987
+ defaultExpanded: t.bool,
2988
+ /**
2989
+ * If `true`, the component is disabled.
2990
+ * @default false
2991
+ */
2992
+ disabled: t.bool,
2993
+ /**
2994
+ * If `true`, it removes the margin between two expanded accordion items and the increase of height.
2995
+ * @default false
2996
+ */
2997
+ disableGutters: t.bool,
2998
+ /**
2999
+ * If `true`, expands the accordion, otherwise collapse it.
3000
+ * Setting this prop enables control over the accordion.
3001
+ */
3002
+ expanded: t.bool,
3003
+ /**
3004
+ * Callback fired when the expand/collapse state is changed.
3005
+ *
3006
+ * @param {React.SyntheticEvent} event The event source of the callback. **Warning**: This is a generic event not a change event.
3007
+ * @param {boolean} expanded The `expanded` state of the accordion.
3008
+ */
3009
+ onChange: t.func,
3010
+ /**
3011
+ * The props used for each slot inside.
3012
+ * @default {}
3013
+ */
3014
+ slotProps: t.shape({
3015
+ transition: t.oneOfType([t.func, t.object])
3016
+ }),
3017
+ /**
3018
+ * The components used for each slot inside.
3019
+ * @default {}
3020
+ */
3021
+ slots: t.shape({
3022
+ transition: t.elementType
3023
+ }),
3024
+ /**
3025
+ * If `true`, rounded corners are disabled.
3026
+ * @default false
3027
+ */
3028
+ square: t.bool,
3029
+ /**
3030
+ * The system prop that allows defining system overrides as well as additional CSS styles.
3031
+ */
3032
+ sx: t.oneOfType([t.arrayOf(t.oneOfType([t.func, t.object, t.bool])), t.func, t.object]),
3033
+ /**
3034
+ * The component used for the transition.
3035
+ * [Follow this guide](/material-ui/transitions/#transitioncomponent-prop) to learn more about the requirements for this component.
3036
+ * @deprecated Use `slots.transition` instead. This prop will be removed in v7. [How to migrate](/material-ui/migration/migrating-from-deprecated-apis/).
3037
+ */
3038
+ TransitionComponent: t.elementType,
3039
+ /**
3040
+ * Props applied to the transition element.
3041
+ * By default, the element is based on this [`Transition`](https://reactcommunity.org/react-transition-group/transition/) component.
3042
+ * @deprecated Use `slotProps.transition` instead. This prop will be removed in v7. [How to migrate](/material-ui/migration/migrating-from-deprecated-apis/).
3043
+ */
3044
+ TransitionProps: t.object
3045
+ });
3046
+ function mr(e) {
3047
+ return J("MuiAccordionDetails", e);
3048
+ }
3049
+ X("MuiAccordionDetails", ["root"]);
3050
+ const vr = ["className"], br = (e) => {
3051
+ const {
3052
+ classes: n
3053
+ } = e;
3054
+ return Q({
3055
+ root: ["root"]
3056
+ }, mr, n);
3057
+ }, xr = P("div", {
3058
+ name: "MuiAccordionDetails",
3059
+ slot: "Root",
3060
+ overridesResolver: (e, n) => n.root
3061
+ })(({
3062
+ theme: e
3063
+ }) => ({
3064
+ padding: e.spacing(1, 2, 2)
3065
+ })), Ut = /* @__PURE__ */ m.forwardRef(function(n, o) {
3066
+ const r = Y({
3067
+ props: n,
3068
+ name: "MuiAccordionDetails"
3069
+ }), {
3070
+ className: i
3071
+ } = r, s = A(r, vr), a = r, l = br(a);
3072
+ return /* @__PURE__ */ p.jsx(xr, f({
3073
+ className: w(l.root, i),
3074
+ ref: o,
3075
+ ownerState: a
3076
+ }, s));
3077
+ });
3078
+ process.env.NODE_ENV !== "production" && (Ut.propTypes = {
3079
+ // ┌────────────────────────────── Warning ──────────────────────────────┐
3080
+ // │ These PropTypes are generated from the TypeScript type definitions. │
3081
+ // │ To update them, edit the d.ts file and run `pnpm proptypes`. │
3082
+ // └─────────────────────────────────────────────────────────────────────┘
3083
+ /**
3084
+ * The content of the component.
3085
+ */
3086
+ children: t.node,
3087
+ /**
3088
+ * Override or extend the styles applied to the component.
3089
+ */
3090
+ classes: t.object,
3091
+ /**
3092
+ * @ignore
3093
+ */
3094
+ className: t.string,
3095
+ /**
3096
+ * The system prop that allows defining system overrides as well as additional CSS styles.
3097
+ */
3098
+ sx: t.oneOfType([t.arrayOf(t.oneOfType([t.func, t.object, t.bool])), t.func, t.object])
3099
+ });
3100
+ function yr(e) {
3101
+ return J("MuiAccordionSummary", e);
3102
+ }
3103
+ const ue = X("MuiAccordionSummary", ["root", "expanded", "focusVisible", "disabled", "gutters", "contentGutters", "content", "expandIconWrapper"]), Er = ["children", "className", "expandIcon", "focusVisibleClassName", "onClick"], Tr = (e) => {
3104
+ const {
3105
+ classes: n,
3106
+ expanded: o,
3107
+ disabled: r,
3108
+ disableGutters: i
3109
+ } = e;
3110
+ return Q({
3111
+ root: ["root", o && "expanded", r && "disabled", !i && "gutters"],
3112
+ focusVisible: ["focusVisible"],
3113
+ content: ["content", o && "expanded", !i && "contentGutters"],
3114
+ expandIconWrapper: ["expandIconWrapper", o && "expanded"]
3115
+ }, yr, n);
3116
+ }, Cr = P(ot, {
3117
+ name: "MuiAccordionSummary",
3118
+ slot: "Root",
3119
+ overridesResolver: (e, n) => n.root
3120
+ })(({
3121
+ theme: e
3122
+ }) => {
3123
+ const n = {
3124
+ duration: e.transitions.duration.shortest
3125
+ };
3126
+ return {
3127
+ display: "flex",
3128
+ minHeight: 48,
3129
+ padding: e.spacing(0, 2),
3130
+ transition: e.transitions.create(["min-height", "background-color"], n),
3131
+ [`&.${ue.focusVisible}`]: {
3132
+ backgroundColor: (e.vars || e).palette.action.focus
3133
+ },
3134
+ [`&.${ue.disabled}`]: {
3135
+ opacity: (e.vars || e).palette.action.disabledOpacity
3136
+ },
3137
+ [`&:hover:not(.${ue.disabled})`]: {
3138
+ cursor: "pointer"
3139
+ },
3140
+ variants: [{
3141
+ props: (o) => !o.disableGutters,
3142
+ style: {
3143
+ [`&.${ue.expanded}`]: {
3144
+ minHeight: 64
3145
+ }
3146
+ }
3147
+ }]
3148
+ };
3149
+ }), Sr = P("div", {
3150
+ name: "MuiAccordionSummary",
3151
+ slot: "Content",
3152
+ overridesResolver: (e, n) => n.content
3153
+ })(({
3154
+ theme: e
3155
+ }) => ({
3156
+ display: "flex",
3157
+ flexGrow: 1,
3158
+ margin: "12px 0",
3159
+ variants: [{
3160
+ props: (n) => !n.disableGutters,
3161
+ style: {
3162
+ transition: e.transitions.create(["margin"], {
3163
+ duration: e.transitions.duration.shortest
3164
+ }),
3165
+ [`&.${ue.expanded}`]: {
3166
+ margin: "20px 0"
3167
+ }
3168
+ }
3169
+ }]
3170
+ })), Rr = P("div", {
3171
+ name: "MuiAccordionSummary",
3172
+ slot: "ExpandIconWrapper",
3173
+ overridesResolver: (e, n) => n.expandIconWrapper
3174
+ })(({
3175
+ theme: e
3176
+ }) => ({
3177
+ display: "flex",
3178
+ color: (e.vars || e).palette.action.active,
3179
+ transform: "rotate(0deg)",
3180
+ transition: e.transitions.create("transform", {
3181
+ duration: e.transitions.duration.shortest
3182
+ }),
3183
+ [`&.${ue.expanded}`]: {
3184
+ transform: "rotate(180deg)"
3185
+ }
3186
+ })), Gt = /* @__PURE__ */ m.forwardRef(function(n, o) {
3187
+ const r = Y({
3188
+ props: n,
3189
+ name: "MuiAccordionSummary"
3190
+ }), {
3191
+ children: i,
3192
+ className: s,
3193
+ expandIcon: a,
3194
+ focusVisibleClassName: l,
3195
+ onClick: d
3196
+ } = r, c = A(r, Er), {
3197
+ disabled: u = !1,
3198
+ disableGutters: g,
3199
+ expanded: h,
3200
+ toggle: x
3201
+ } = m.useContext(st), y = (C) => {
3202
+ x && x(C), d && d(C);
3203
+ }, E = f({}, r, {
3204
+ expanded: h,
3205
+ disabled: u,
3206
+ disableGutters: g
3207
+ }), $ = Tr(E);
3208
+ return /* @__PURE__ */ p.jsxs(Cr, f({
3209
+ focusRipple: !1,
3210
+ disableRipple: !0,
3211
+ disabled: u,
3212
+ component: "div",
3213
+ "aria-expanded": h,
3214
+ className: w($.root, s),
3215
+ focusVisibleClassName: w($.focusVisible, l),
3216
+ onClick: y,
3217
+ ref: o,
3218
+ ownerState: E
3219
+ }, c, {
3220
+ children: [/* @__PURE__ */ p.jsx(Sr, {
3221
+ className: $.content,
3222
+ ownerState: E,
3223
+ children: i
3224
+ }), a && /* @__PURE__ */ p.jsx(Rr, {
3225
+ className: $.expandIconWrapper,
3226
+ ownerState: E,
3227
+ children: a
3228
+ })]
3229
+ }));
3230
+ });
3231
+ process.env.NODE_ENV !== "production" && (Gt.propTypes = {
3232
+ // ┌────────────────────────────── Warning ──────────────────────────────┐
3233
+ // │ These PropTypes are generated from the TypeScript type definitions. │
3234
+ // │ To update them, edit the d.ts file and run `pnpm proptypes`. │
3235
+ // └─────────────────────────────────────────────────────────────────────┘
3236
+ /**
3237
+ * The content of the component.
3238
+ */
3239
+ children: t.node,
3240
+ /**
3241
+ * Override or extend the styles applied to the component.
3242
+ */
3243
+ classes: t.object,
3244
+ /**
3245
+ * @ignore
3246
+ */
3247
+ className: t.string,
3248
+ /**
3249
+ * The icon to display as the expand indicator.
3250
+ */
3251
+ expandIcon: t.node,
3252
+ /**
3253
+ * This prop can help identify which element has keyboard focus.
3254
+ * The class name will be applied when the element gains the focus through keyboard interaction.
3255
+ * It's a polyfill for the [CSS :focus-visible selector](https://drafts.csswg.org/selectors-4/#the-focus-visible-pseudo).
3256
+ * The rationale for using this feature [is explained here](https://github.com/WICG/focus-visible/blob/HEAD/explainer.md).
3257
+ * A [polyfill can be used](https://github.com/WICG/focus-visible) to apply a `focus-visible` class to other components
3258
+ * if needed.
3259
+ */
3260
+ focusVisibleClassName: t.string,
3261
+ /**
3262
+ * @ignore
3263
+ */
3264
+ onClick: t.func,
3265
+ /**
3266
+ * The system prop that allows defining system overrides as well as additional CSS styles.
3267
+ */
3268
+ sx: t.oneOfType([t.arrayOf(t.oneOfType([t.func, t.object, t.bool])), t.func, t.object])
3269
+ });
3270
+ function Nr(e) {
3271
+ return J("MuiTypography", e);
3272
+ }
3273
+ X("MuiTypography", ["root", "h1", "h2", "h3", "h4", "h5", "h6", "subtitle1", "subtitle2", "body1", "body2", "inherit", "button", "caption", "overline", "alignLeft", "alignRight", "alignCenter", "alignJustify", "noWrap", "gutterBottom", "paragraph"]);
3274
+ const Or = ["align", "className", "component", "gutterBottom", "noWrap", "paragraph", "variant", "variantMapping"], $r = (e) => {
3275
+ const {
3276
+ align: n,
3277
+ gutterBottom: o,
3278
+ noWrap: r,
3279
+ paragraph: i,
3280
+ variant: s,
3281
+ classes: a
3282
+ } = e, l = {
3283
+ root: ["root", s, e.align !== "inherit" && `align${K(n)}`, o && "gutterBottom", r && "noWrap", i && "paragraph"]
3284
+ };
3285
+ return Q(l, Nr, a);
3286
+ }, jr = P("span", {
3287
+ name: "MuiTypography",
3288
+ slot: "Root",
3289
+ overridesResolver: (e, n) => {
3290
+ const {
3291
+ ownerState: o
3292
+ } = e;
3293
+ return [n.root, o.variant && n[o.variant], o.align !== "inherit" && n[`align${K(o.align)}`], o.noWrap && n.noWrap, o.gutterBottom && n.gutterBottom, o.paragraph && n.paragraph];
3294
+ }
3295
+ })(({
3296
+ theme: e,
3297
+ ownerState: n
3298
+ }) => f({
3299
+ margin: 0
3300
+ }, n.variant === "inherit" && {
3301
+ // Some elements, like <button> on Chrome have default font that doesn't inherit, reset this.
3302
+ font: "inherit"
3303
+ }, n.variant !== "inherit" && e.typography[n.variant], n.align !== "inherit" && {
3304
+ textAlign: n.align
3305
+ }, n.noWrap && {
3306
+ overflow: "hidden",
3307
+ textOverflow: "ellipsis",
3308
+ whiteSpace: "nowrap"
3309
+ }, n.gutterBottom && {
3310
+ marginBottom: "0.35em"
3311
+ }, n.paragraph && {
3312
+ marginBottom: 16
3313
+ })), Rt = {
3314
+ h1: "h1",
3315
+ h2: "h2",
3316
+ h3: "h3",
3317
+ h4: "h4",
3318
+ h5: "h5",
3319
+ h6: "h6",
3320
+ subtitle1: "h6",
3321
+ subtitle2: "h6",
3322
+ body1: "p",
3323
+ body2: "p",
3324
+ inherit: "p"
3325
+ }, wr = {
3326
+ primary: "primary.main",
3327
+ textPrimary: "text.primary",
3328
+ secondary: "secondary.main",
3329
+ textSecondary: "text.secondary",
3330
+ error: "error.main"
3331
+ }, Mr = (e) => wr[e] || e, qt = /* @__PURE__ */ m.forwardRef(function(n, o) {
3332
+ const r = Y({
3333
+ props: n,
3334
+ name: "MuiTypography"
3335
+ }), i = Mr(r.color), s = $t(f({}, r, {
3336
+ color: i
3337
+ })), {
3338
+ align: a = "inherit",
3339
+ className: l,
3340
+ component: d,
3341
+ gutterBottom: c = !1,
3342
+ noWrap: u = !1,
3343
+ paragraph: g = !1,
3344
+ variant: h = "body1",
3345
+ variantMapping: x = Rt
3346
+ } = s, y = A(s, Or), E = f({}, s, {
3347
+ align: a,
3348
+ color: i,
3349
+ className: l,
3350
+ component: d,
3351
+ gutterBottom: c,
3352
+ noWrap: u,
3353
+ paragraph: g,
3354
+ variant: h,
3355
+ variantMapping: x
3356
+ }), $ = d || (g ? "p" : x[h] || Rt[h]) || "span", C = $r(E);
3357
+ return /* @__PURE__ */ p.jsx(jr, f({
3358
+ as: $,
3359
+ ref: o,
3360
+ ownerState: E,
3361
+ className: w(C.root, l)
3362
+ }, y));
3363
+ });
3364
+ process.env.NODE_ENV !== "production" && (qt.propTypes = {
3365
+ // ┌────────────────────────────── Warning ──────────────────────────────┐
3366
+ // │ These PropTypes are generated from the TypeScript type definitions. │
3367
+ // │ To update them, edit the d.ts file and run `pnpm proptypes`. │
3368
+ // └─────────────────────────────────────────────────────────────────────┘
3369
+ /**
3370
+ * Set the text-align on the component.
3371
+ * @default 'inherit'
3372
+ */
3373
+ align: t.oneOf(["center", "inherit", "justify", "left", "right"]),
3374
+ /**
3375
+ * The content of the component.
3376
+ */
3377
+ children: t.node,
3378
+ /**
3379
+ * Override or extend the styles applied to the component.
3380
+ */
3381
+ classes: t.object,
3382
+ /**
3383
+ * @ignore
3384
+ */
3385
+ className: t.string,
3386
+ /**
3387
+ * The component used for the root node.
3388
+ * Either a string to use a HTML element or a component.
3389
+ */
3390
+ component: t.elementType,
3391
+ /**
3392
+ * If `true`, the text will have a bottom margin.
3393
+ * @default false
3394
+ */
3395
+ gutterBottom: t.bool,
3396
+ /**
3397
+ * If `true`, the text will not wrap, but instead will truncate with a text overflow ellipsis.
3398
+ *
3399
+ * Note that text overflow can only happen with block or inline-block level elements
3400
+ * (the element needs to have a width in order to overflow).
3401
+ * @default false
3402
+ */
3403
+ noWrap: t.bool,
3404
+ /**
3405
+ * If `true`, the element will be a paragraph element.
3406
+ * @default false
3407
+ */
3408
+ paragraph: t.bool,
3409
+ /**
3410
+ * The system prop that allows defining system overrides as well as additional CSS styles.
3411
+ */
3412
+ sx: t.oneOfType([t.arrayOf(t.oneOfType([t.func, t.object, t.bool])), t.func, t.object]),
3413
+ /**
3414
+ * Applies the theme typography styles.
3415
+ * @default 'body1'
3416
+ */
3417
+ variant: t.oneOfType([t.oneOf(["body1", "body2", "button", "caption", "h1", "h2", "h3", "h4", "h5", "h6", "inherit", "overline", "subtitle1", "subtitle2"]), t.string]),
3418
+ /**
3419
+ * The component maps the variant prop to a range of different HTML element types.
3420
+ * For instance, subtitle1 to `<h6>`.
3421
+ * If you wish to change that mapping, you can provide your own.
3422
+ * Alternatively, you can use the `component` prop.
3423
+ * @default {
3424
+ * h1: 'h1',
3425
+ * h2: 'h2',
3426
+ * h3: 'h3',
3427
+ * h4: 'h4',
3428
+ * h5: 'h5',
3429
+ * h6: 'h6',
3430
+ * subtitle1: 'h6',
3431
+ * subtitle2: 'h6',
3432
+ * body1: 'p',
3433
+ * body2: 'p',
3434
+ * inherit: 'p',
3435
+ * }
3436
+ */
3437
+ variantMapping: t.object
3438
+ });
3439
+ const kr = (e) => !isNaN(parseFloat(e)) && !isNaN(Number(e) - 0), Pr = {
3440
+ "java.lang.Integer": !0,
3441
+ "java.lang.Long": !0,
3442
+ "java.lang.Double": !0,
3443
+ "java.lang.Float": !0
3444
+ }, Ir = (e, n) => {
3445
+ if (!n.required && !e)
3446
+ return;
3447
+ if (n.required && (!e || e.trim().length === 0))
3448
+ return `${n.name} is mandatory!`;
3449
+ if (Pr[n.type]) {
3450
+ if (!kr(e))
3451
+ return "Value must be numeric!";
3452
+ const i = Number(e);
3453
+ if (n.type === "java.lang.Integer" && !Number.isInteger(i))
3454
+ return "Value must be an Integer!";
3455
+ const s = n.minValue || Number.MIN_VALUE, a = n.maxValue || Number.MAX_VALUE;
3456
+ if (i < s)
3457
+ return `Value too small, must be >= ${s}`;
3458
+ if (i > a)
3459
+ return `Value too large, must be <= ${a}`;
3460
+ }
3461
+ const o = n.minLength || 0, r = n.maxLength;
3462
+ if (e.length < o)
3463
+ return `Value too short, must at least ${o} characters`;
3464
+ if (r && e.length > r)
3465
+ return `Value too long, must be at most ${r} characters`;
3466
+ }, Vr = (e) => {
3467
+ const n = {};
3468
+ return e.forEach((o) => {
3469
+ o.required && (n[o.name] = "");
3470
+ }), n;
3471
+ }, Ar = ({ triggerName: e, triggerParams: n, triggerAction: o }) => {
3472
+ const [r, i] = Ne({}), [s, a] = Ne(Vr(n)), l = (c) => {
3473
+ const u = { ...s };
3474
+ delete u[c], a(u);
3475
+ }, d = (c, u) => {
3476
+ const { name: g } = c;
3477
+ i({
3478
+ ...r,
3479
+ [g]: u.target.value
3480
+ });
3481
+ const h = Ir(u.target.value, c);
3482
+ h ? a({
3483
+ ...s,
3484
+ [g]: h
3485
+ }) : l(g);
3486
+ };
3487
+ return p.jsx("form", { onSubmit: (c) => {
3488
+ c.preventDefault(), o(e, r);
3489
+ }, children: p.jsxs(fn, { display: "flex", flexWrap: "wrap", gap: 4, rowGap: 4, children: [n.length === 0 ? p.jsx(ce, { children: "Trigger does not support additional parameters" }) : p.jsxs(p.Fragment, { children: [p.jsx(ce, { minWidth: "100%", children: "Trigger parameters" }), n.map((c) => {
3490
+ const { name: u } = c, g = s ? s[u] : void 0;
3491
+ return p.jsx(gn, { sx: { marginBottom: 10 }, error: !!g, id: `${e}-${u}-input`, helperText: g || "", required: c.required, label: u, onChange: (h) => d(c, h) }, `${e}-${u}-input`);
3492
+ })] }), p.jsx(hn, { id: `${e}-submit-btn`, variant: "contained", type: "submit", disabled: s ? Object.keys(s).length > 0 : !1, sx: { marginTop: 10, float: "right", marginLeft: "auto", height: "fit-content" }, children: "Trigger" })] }) });
3493
+ }, Dr = ({ triggerables: e, triggerAction: n }) => p.jsx(p.Fragment, { children: Object.entries(e).map(([o, r]) => p.jsxs(Ft, { sx: { width: "100%", marginBottom: "5px" }, children: [p.jsx(Gt, { expandIcon: p.jsx(jt, {}), "aria-controls": `${o}-content`, id: `${o}-header`, children: p.jsx(qt, { sx: { fontSize: 18, flexBasis: "33.33%", flexShrink: 0 }, children: o }) }), p.jsx(Ut, { sx: { flexDirection: "column" }, children: p.jsx(Ar, { triggerName: o, triggerParams: r, triggerAction: n }) })] }, `${o}-container`)) }), Br = ({ activeTaskStatuses: e, triggerables: n, triggerResponse: o, openMessageChain: r, handleTriggerAction: i }) => {
3494
+ const [s, a] = Ne(!0);
3495
+ return p.jsxs(p.Fragment, { children: [p.jsx(Go, { triggerResponse: o, showNotification: s, onClose: () => a(!1) }), p.jsx(sr, { activeTaskStatuses: e, openMessageChain: r }), p.jsx(Dr, { triggerables: n, triggerAction: i })] });
3496
+ }, zr = (e) => async () => {
3497
+ try {
3498
+ const n = await Vt(e), o = await Pt(
3499
+ e
3500
+ ), { data: r } = n, { data: i } = o;
3501
+ return { triggerables: r, activeTaskStatuses: i };
3502
+ } catch (n) {
3503
+ throw console.error(n), new Error("Failed to fetch triggerables");
3504
+ }
3505
+ }, Xr = zr(), Yr = () => {
3506
+ const e = On(), n = $n(), [o, r] = Ne(), i = jn(), { activeTaskStatuses: s, triggerables: a } = i, l = s.reduce((c, u) => (c[u.id] = u, c), {}), d = async (c, u) => {
3507
+ try {
3508
+ const g = await At(c, u);
3509
+ r(g);
3510
+ } catch (g) {
3511
+ console.error(g), r({
3512
+ status: 500,
3513
+ data: `Failed to trigger ${c}`
3514
+ });
3515
+ }
3516
+ n.revalidate();
3517
+ };
3518
+ return /* @__PURE__ */ p.jsx(
3519
+ Br,
3520
+ {
3521
+ triggerResponse: o == null ? void 0 : o.data,
3522
+ activeTaskStatuses: l,
3523
+ triggerables: a,
3524
+ openMessageChain: (c) => {
3525
+ e(`/message-log/${c}`);
3526
+ },
3527
+ handleTriggerAction: d
3528
+ }
3529
+ );
3530
+ };
3531
+ export {
3532
+ Yr as T,
3533
+ zr as g,
3534
+ Xr as l
3535
+ };
3536
+ //# sourceMappingURL=TriggerablesRoute-i4z1o99f.js.map