import pt, { jsx as x, jsxs as de } from "react/jsx-runtime";
import { a as Z, P as n, _ as f, o as q, C as ft, b as H, e as mt, s as ge, g as ye, h as ht, i as bt, j as vt, k as Ee, l as Y, m as gt, n as yt, p as Q, q as ee, r as L, t as $e, v as te, w as z, x as pe, y as V, z as ne, A as He, B as Ue, D as le, E as ze, F as We, G as Et, H as Me, I as xt, J as Tt, K as kt, S as ke, L as Pt, M as Rt, N as Nt } from "./Stack-CU3sSZaK.js";
import * as u from "react";
import * as wt from "react-dom";
var be = {};
function Ct(e) {
  const {
    prototype: t = {}
  } = e;
  return !!t.isReactComponent;
}
function Ke(e, t, r, o, i) {
  const s = e[t], a = i || t;
  if (s == null || // When server-side rendering React doesn't warn either.
  // This is not an accurate check for SSR.
  // This is only in place for Emotion compat.
  // TODO: Revisit once https://github.com/facebook/react/issues/20047 is resolved.
  typeof window > "u")
    return null;
  let l;
  const c = s.type;
  return typeof c == "function" && !Ct(c) && (l = "Did you accidentally use a plain function component for an element instead?"), l !== void 0 ? new Error(`Invalid ${o} \`${a}\` supplied to \`${r}\`. Expected an element that can hold a ref. ${l} For more information see https://mui.com/r/caveat-with-refs-guide`) : null;
}
const oe = Z(n.element, Ke);
oe.isRequired = Z(n.element.isRequired, Ke);
const Ot = "exact-prop: ​";
function Ye(e) {
  return process.env.NODE_ENV === "production" ? e : f({}, e, {
    [Ot]: (t) => {
      const r = Object.keys(t).filter((o) => !e.hasOwnProperty(o));
      return r.length > 0 ? new Error(`The following props are not supported: ${r.map((o) => `\`${o}\``).join(", ")}. Please remove them.`) : null;
    }
  });
}
function Pe(e, t, r, o, i) {
  if (process.env.NODE_ENV === "production")
    return null;
  const s = e[t], a = i || t;
  return s == null ? null : s && s.nodeType !== 1 ? new Error(`Invalid ${o} \`${a}\` supplied to \`${r}\`. Expected an HTMLElement.`) : null;
}
function xe(...e) {
  return e.reduce((t, r) => r == null ? t : function(...i) {
    t.apply(this, i), r.apply(this, i);
  }, () => {
  });
}
function Ge(e, t = 166) {
  let r;
  function o(...i) {
    const s = () => {
      e.apply(this, i);
    };
    clearTimeout(r), r = setTimeout(s, t);
  }
  return o.clear = () => {
    clearTimeout(r);
  }, o;
}
function St(e, t) {
  return process.env.NODE_ENV === "production" ? () => null : (r, o, i, s, a) => {
    const l = i || "<<anonymous>>", c = a || o;
    return typeof r[o] < "u" ? new Error(`The ${s} \`${c}\` of \`${l}\` is deprecated. ${t}`) : null;
  };
}
function Dt(e, t) {
  var r, o;
  return /* @__PURE__ */ u.isValidElement(e) && t.indexOf(
    // For server components `muiName` is avaialble in element.type._payload.value.muiName
    // relevant info - https://github.com/facebook/react/blob/2807d781a08db8e9873687fccc25c0f12b4fb3d4/packages/react/src/ReactLazy.js#L45
    // eslint-disable-next-line no-underscore-dangle
    (r = e.type.muiName) != null ? r : (o = e.type) == null || (o = o._payload) == null || (o = o.value) == null ? void 0 : o.muiName
  ) !== -1;
}
function G(e) {
  return q(e).defaultView || window;
}
function $t(e, t) {
  if (process.env.NODE_ENV === "production")
    return () => null;
  const r = t ? f({}, t.propTypes) : null;
  return (i) => (s, a, l, c, d, ...m) => {
    const v = d || a, g = r == null ? void 0 : r[v];
    if (g) {
      const y = g(s, a, l, c, d, ...m);
      if (y)
        return y;
    }
    return typeof s[a] < "u" && !s[i] ? new Error(`The prop \`${v}\` of \`${e}\` can only be used together with the \`${i}\` prop.`) : null;
  };
}
function Mt(e) {
  const t = e.documentElement.clientWidth;
  return Math.abs(window.innerWidth - t);
}
function It(e) {
  const t = typeof e;
  switch (t) {
    case "number":
      return Number.isNaN(e) ? "NaN" : Number.isFinite(e) ? e !== Math.floor(e) ? "float" : "number" : "Infinity";
    case "object":
      return e === null ? "null" : e.constructor.name;
    default:
      return t;
  }
}
function _t(e) {
  return typeof e == "number" && isFinite(e) && Math.floor(e) === e;
}
const Ft = Number.isInteger || _t;
function Xe(e, t, r, o) {
  const i = e[t];
  if (i == null || !Ft(i)) {
    const s = It(i);
    return new RangeError(`Invalid ${o} \`${t}\` of type \`${s}\` supplied to \`${r}\`, expected \`integer\`.`);
  }
  return null;
}
function Je(e, t, ...r) {
  return e[t] === void 0 ? null : Xe(e, t, ...r);
}
function Te() {
  return null;
}
Je.isRequired = Xe;
Te.isRequired = Te;
const Ze = process.env.NODE_ENV === "production" ? Te : Je, Bt = {
  configure: (e) => {
    process.env.NODE_ENV !== "production" && console.warn(["MUI: `ClassNameGenerator` import from `@mui/material/utils` is outdated and might cause unexpected issues.", "", "You should use `import { unstable_ClassNameGenerator } from '@mui/material/className'` instead", "", "The detail of the issue: https://github.com/mui/material-ui/issues/30011#issuecomment-1024993401", "", "The updated documentation: https://mui.com/guides/classname-generator/"].join(`
`)), ft.configure(e);
  }
}, jt = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  capitalize: H,
  createChainedFunction: xe,
  createSvgIcon: mt,
  debounce: Ge,
  deprecatedPropType: St,
  isMuiElement: Dt,
  ownerDocument: q,
  ownerWindow: G,
  requirePropFactory: $t,
  setRef: ge,
  unstable_ClassNameGenerator: Bt,
  unstable_useEnhancedEffect: ye,
  unstable_useId: ht,
  unsupportedProp: bt,
  useControlled: vt,
  useEventCallback: Ee,
  useForkRef: Y,
  useIsFocusVisible: gt
}, Symbol.toStringTag, { value: "Module" })), At = /* @__PURE__ */ yt(jt);
var Ie;
function Lt() {
  return Ie || (Ie = 1, function(e) {
    "use client";
    Object.defineProperty(e, "__esModule", {
      value: !0
    }), Object.defineProperty(e, "default", {
      enumerable: !0,
      get: function() {
        return t.createSvgIcon;
      }
    });
    var t = At;
  }(be)), be;
}
const _e = (e) => {
  let t;
  return e < 1 ? t = 5.11916 * e ** 2 : t = 4.5 * Math.log(e + 1) + 2, (t / 100).toFixed(2);
};
function Vt(e) {
  return Q("MuiPaper", e);
}
ee("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"]);
const qt = ["className", "component", "elevation", "square", "variant"], Ht = (e) => {
  const {
    square: t,
    elevation: r,
    variant: o,
    classes: i
  } = e, s = {
    root: ["root", o, !t && "rounded", o === "elevation" && `elevation${r}`]
  };
  return ne(s, Vt, i);
}, Ut = L("div", {
  name: "MuiPaper",
  slot: "Root",
  overridesResolver: (e, t) => {
    const {
      ownerState: r
    } = e;
    return [t.root, t[r.variant], !r.square && t.rounded, r.variant === "elevation" && t[`elevation${r.elevation}`]];
  }
})(({
  theme: e,
  ownerState: t
}) => {
  var r;
  return f({
    backgroundColor: (e.vars || e).palette.background.paper,
    color: (e.vars || e).palette.text.primary,
    transition: e.transitions.create("box-shadow")
  }, !t.square && {
    borderRadius: e.shape.borderRadius
  }, t.variant === "outlined" && {
    border: `1px solid ${(e.vars || e).palette.divider}`
  }, t.variant === "elevation" && f({
    boxShadow: (e.vars || e).shadows[t.elevation]
  }, !e.vars && e.palette.mode === "dark" && {
    backgroundImage: `linear-gradient(${$e("#fff", _e(t.elevation))}, ${$e("#fff", _e(t.elevation))})`
  }, e.vars && {
    backgroundImage: (r = e.vars.overlays) == null ? void 0 : r[t.elevation]
  }));
}), Qe = /* @__PURE__ */ u.forwardRef(function(t, r) {
  const o = te({
    props: t,
    name: "MuiPaper"
  }), {
    className: i,
    component: s = "div",
    elevation: a = 1,
    square: l = !1,
    variant: c = "elevation"
  } = o, d = z(o, qt), m = f({}, o, {
    component: s,
    elevation: a,
    square: l,
    variant: c
  }), v = Ht(m);
  return process.env.NODE_ENV !== "production" && pe().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(`
`)), /* @__PURE__ */ x(Ut, f({
    as: s,
    ownerState: m,
    className: V(v.root, i),
    ref: r
  }, d));
});
process.env.NODE_ENV !== "production" && (Qe.propTypes = {
  // ┌────────────────────────────── Warning ──────────────────────────────┐
  // │ These PropTypes are generated from the TypeScript type definitions. │
  // │    To update them, edit the d.ts file and run `pnpm proptypes`.     │
  // └─────────────────────────────────────────────────────────────────────┘
  /**
   * The content of the component.
   */
  children: n.node,
  /**
   * Override or extend the styles applied to the component.
   */
  classes: n.object,
  /**
   * @ignore
   */
  className: n.string,
  /**
   * The component used for the root node.
   * Either a string to use a HTML element or a component.
   */
  component: n.elementType,
  /**
   * Shadow depth, corresponds to `dp` in the spec.
   * It accepts values between 0 and 24 inclusive.
   * @default 1
   */
  elevation: Z(Ze, (e) => {
    const {
      elevation: t,
      variant: r
    } = e;
    return t > 0 && r === "outlined" ? new Error(`MUI: Combining \`elevation={${t}}\` with \`variant="${r}"\` has no effect. Either use \`elevation={0}\` or use a different \`variant\`.`) : null;
  }),
  /**
   * If `true`, rounded corners are disabled.
   * @default false
   */
  square: n.bool,
  /**
   * The system prop that allows defining system overrides as well as additional CSS styles.
   */
  sx: n.oneOfType([n.arrayOf(n.oneOfType([n.func, n.object, n.bool])), n.func, n.object]),
  /**
   * The variant to use.
   * @default 'elevation'
   */
  variant: n.oneOfType([n.oneOf(["elevation", "outlined"]), n.string])
});
function zt(e) {
  return typeof e == "function" ? e() : e;
}
const ce = /* @__PURE__ */ u.forwardRef(function(t, r) {
  const {
    children: o,
    container: i,
    disablePortal: s = !1
  } = t, [a, l] = u.useState(null), c = Y(/* @__PURE__ */ u.isValidElement(o) ? o.ref : null, r);
  if (ye(() => {
    s || l(zt(i) || document.body);
  }, [i, s]), ye(() => {
    if (a && !s)
      return ge(r, a), () => {
        ge(r, null);
      };
  }, [r, a, s]), s) {
    if (/* @__PURE__ */ u.isValidElement(o)) {
      const d = {
        ref: c
      };
      return /* @__PURE__ */ u.cloneElement(o, d);
    }
    return /* @__PURE__ */ x(u.Fragment, {
      children: o
    });
  }
  return /* @__PURE__ */ x(u.Fragment, {
    children: a && /* @__PURE__ */ wt.createPortal(o, a)
  });
});
process.env.NODE_ENV !== "production" && (ce.propTypes = {
  // ┌────────────────────────────── Warning ──────────────────────────────┐
  // │ These PropTypes are generated from the TypeScript type definitions. │
  // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │
  // └─────────────────────────────────────────────────────────────────────┘
  /**
   * The children to render into the `container`.
   */
  children: n.node,
  /**
   * An HTML element or function that returns one.
   * The `container` will have the portal children appended to it.
   *
   * You can also provide a callback, which is called in a React layout effect.
   * This lets you set the container from a ref, and also makes server-side rendering possible.
   *
   * By default, it uses the body of the top-level document object,
   * so it's simply `document.body` most of the time.
   */
  container: n.oneOfType([Pe, n.func]),
  /**
   * The `children` will be under the DOM hierarchy of the parent component.
   * @default false
   */
  disablePortal: n.bool
});
process.env.NODE_ENV !== "production" && (ce.propTypes = Ye(ce.propTypes));
const Wt = ["addEndListener", "appear", "children", "easing", "in", "onEnter", "onEntered", "onEntering", "onExit", "onExited", "onExiting", "style", "timeout", "TransitionComponent"], Kt = {
  entering: {
    opacity: 1
  },
  entered: {
    opacity: 1
  }
}, et = /* @__PURE__ */ u.forwardRef(function(t, r) {
  const o = pe(), i = {
    enter: o.transitions.duration.enteringScreen,
    exit: o.transitions.duration.leavingScreen
  }, {
    addEndListener: s,
    appear: a = !0,
    children: l,
    easing: c,
    in: d,
    onEnter: m,
    onEntered: v,
    onEntering: g,
    onExit: y,
    onExited: b,
    onExiting: C,
    style: N,
    timeout: O = i,
    // eslint-disable-next-line react/prop-types
    TransitionComponent: $ = He
  } = t, p = z(t, Wt), T = u.useRef(null), w = Y(T, l.ref, r), S = (P) => (A) => {
    if (P) {
      const k = T.current;
      A === void 0 ? P(k) : P(k, A);
    }
  }, E = S(g), I = S((P, A) => {
    Ue(P);
    const k = le({
      style: N,
      timeout: O,
      easing: c
    }, {
      mode: "enter"
    });
    P.style.webkitTransition = o.transitions.create("opacity", k), P.style.transition = o.transitions.create("opacity", k), m && m(P, A);
  }), _ = S(v), D = S(C), M = S((P) => {
    const A = le({
      style: N,
      timeout: O,
      easing: c
    }, {
      mode: "exit"
    });
    P.style.webkitTransition = o.transitions.create("opacity", A), P.style.transition = o.transitions.create("opacity", A), y && y(P);
  }), B = S(b);
  return /* @__PURE__ */ x($, f({
    appear: a,
    in: d,
    nodeRef: T,
    onEnter: I,
    onEntered: _,
    onEntering: E,
    onExit: M,
    onExited: B,
    onExiting: D,
    addEndListener: (P) => {
      s && s(T.current, P);
    },
    timeout: O
  }, p, {
    children: (P, A) => /* @__PURE__ */ u.cloneElement(l, f({
      style: f({
        opacity: 0,
        visibility: P === "exited" && !d ? "hidden" : void 0
      }, Kt[P], N, l.props.style),
      ref: w
    }, A))
  }));
});
process.env.NODE_ENV !== "production" && (et.propTypes = {
  // ┌────────────────────────────── Warning ──────────────────────────────┐
  // │ These PropTypes are generated from the TypeScript type definitions. │
  // │    To update them, edit the d.ts file and run `pnpm proptypes`.     │
  // └─────────────────────────────────────────────────────────────────────┘
  /**
   * Add a custom transition end trigger. Called with the transitioning DOM
   * node and a done callback. Allows for more fine grained transition end
   * logic. Note: Timeouts are still used as a fallback if provided.
   */
  addEndListener: n.func,
  /**
   * Perform the enter transition when it first mounts if `in` is also `true`.
   * Set this to `false` to disable this behavior.
   * @default true
   */
  appear: n.bool,
  /**
   * A single child content element.
   */
  children: oe.isRequired,
  /**
   * The transition timing function.
   * You may specify a single easing or a object containing enter and exit values.
   */
  easing: n.oneOfType([n.shape({
    enter: n.string,
    exit: n.string
  }), n.string]),
  /**
   * If `true`, the component will transition in.
   */
  in: n.bool,
  /**
   * @ignore
   */
  onEnter: n.func,
  /**
   * @ignore
   */
  onEntered: n.func,
  /**
   * @ignore
   */
  onEntering: n.func,
  /**
   * @ignore
   */
  onExit: n.func,
  /**
   * @ignore
   */
  onExited: n.func,
  /**
   * @ignore
   */
  onExiting: n.func,
  /**
   * @ignore
   */
  style: n.object,
  /**
   * The duration for the transition, in milliseconds.
   * You may specify a single timeout for all transitions, or individually with an object.
   * @default {
   *   enter: theme.transitions.duration.enteringScreen,
   *   exit: theme.transitions.duration.leavingScreen,
   * }
   */
  timeout: n.oneOfType([n.number, n.shape({
    appear: n.number,
    enter: n.number,
    exit: n.number
  })])
});
function Yt(e) {
  return Q("MuiBackdrop", e);
}
ee("MuiBackdrop", ["root", "invisible"]);
const Gt = ["children", "className", "component", "components", "componentsProps", "invisible", "open", "slotProps", "slots", "TransitionComponent", "transitionDuration"], Xt = (e) => {
  const {
    classes: t,
    invisible: r
  } = e;
  return ne({
    root: ["root", r && "invisible"]
  }, Yt, t);
}, Jt = L("div", {
  name: "MuiBackdrop",
  slot: "Root",
  overridesResolver: (e, t) => {
    const {
      ownerState: r
    } = e;
    return [t.root, r.invisible && t.invisible];
  }
})(({
  ownerState: e
}) => f({
  position: "fixed",
  display: "flex",
  alignItems: "center",
  justifyContent: "center",
  right: 0,
  bottom: 0,
  top: 0,
  left: 0,
  backgroundColor: "rgba(0, 0, 0, 0.5)",
  WebkitTapHighlightColor: "transparent"
}, e.invisible && {
  backgroundColor: "transparent"
})), Re = /* @__PURE__ */ u.forwardRef(function(t, r) {
  var o, i, s;
  const a = te({
    props: t,
    name: "MuiBackdrop"
  }), {
    children: l,
    className: c,
    component: d = "div",
    components: m = {},
    componentsProps: v = {},
    invisible: g = !1,
    open: y,
    slotProps: b = {},
    slots: C = {},
    TransitionComponent: N = et,
    transitionDuration: O
  } = a, $ = z(a, Gt), p = f({}, a, {
    component: d,
    invisible: g
  }), T = Xt(p), w = (o = b.root) != null ? o : v.root;
  return /* @__PURE__ */ x(N, f({
    in: y,
    timeout: O
  }, $, {
    children: /* @__PURE__ */ x(Jt, f({
      "aria-hidden": !0
    }, w, {
      as: (i = (s = C.root) != null ? s : m.Root) != null ? i : d,
      className: V(T.root, c, w == null ? void 0 : w.className),
      ownerState: f({}, p, w == null ? void 0 : w.ownerState),
      classes: T,
      ref: r,
      children: l
    }))
  }));
});
process.env.NODE_ENV !== "production" && (Re.propTypes = {
  // ┌────────────────────────────── Warning ──────────────────────────────┐
  // │ These PropTypes are generated from the TypeScript type definitions. │
  // │    To update them, edit the d.ts file and run `pnpm proptypes`.     │
  // └─────────────────────────────────────────────────────────────────────┘
  /**
   * The content of the component.
   */
  children: n.node,
  /**
   * Override or extend the styles applied to the component.
   */
  classes: n.object,
  /**
   * @ignore
   */
  className: n.string,
  /**
   * The component used for the root node.
   * Either a string to use a HTML element or a component.
   */
  component: n.elementType,
  /**
   * The components used for each slot inside.
   *
   * This prop is an alias for the `slots` prop.
   * It's recommended to use the `slots` prop instead.
   *
   * @default {}
   */
  components: n.shape({
    Root: n.elementType
  }),
  /**
   * The extra props for the slot components.
   * You can override the existing props or add new ones.
   *
   * This prop is an alias for the `slotProps` prop.
   * It's recommended to use the `slotProps` prop instead, as `componentsProps` will be deprecated in the future.
   *
   * @default {}
   */
  componentsProps: n.shape({
    root: n.object
  }),
  /**
   * If `true`, the backdrop is invisible.
   * It can be used when rendering a popover or a custom select component.
   * @default false
   */
  invisible: n.bool,
  /**
   * If `true`, the component is shown.
   */
  open: n.bool.isRequired,
  /**
   * The extra props for the slot components.
   * You can override the existing props or add new ones.
   *
   * This prop is an alias for the `componentsProps` prop, which will be deprecated in the future.
   *
   * @default {}
   */
  slotProps: n.shape({
    root: n.object
  }),
  /**
   * The components used for each slot inside.
   *
   * This prop is an alias for the `components` prop, which will be deprecated in the future.
   *
   * @default {}
   */
  slots: n.shape({
    root: n.elementType
  }),
  /**
   * The system prop that allows defining system overrides as well as additional CSS styles.
   */
  sx: n.oneOfType([n.arrayOf(n.oneOfType([n.func, n.object, n.bool])), n.func, n.object]),
  /**
   * The component used for the transition.
   * [Follow this guide](/material-ui/transitions/#transitioncomponent-prop) to learn more about the requirements for this component.
   * @default Fade
   */
  TransitionComponent: n.elementType,
  /**
   * The duration for the transition, in milliseconds.
   * You may specify a single timeout for all transitions, or individually with an object.
   */
  transitionDuration: n.oneOfType([n.number, n.shape({
    appear: n.number,
    enter: n.number,
    exit: n.number
  })])
});
function Zt(e) {
  return Q("MuiCircularProgress", e);
}
ee("MuiCircularProgress", ["root", "determinate", "indeterminate", "colorPrimary", "colorSecondary", "svg", "circle", "circleDeterminate", "circleIndeterminate", "circleDisableShrink"]);
const Qt = ["className", "color", "disableShrink", "size", "style", "thickness", "value", "variant"];
let fe = (e) => e, Fe, Be, je, Ae;
const U = 44, en = ze(Fe || (Fe = fe`
  0% {
    transform: rotate(0deg);
  }

  100% {
    transform: rotate(360deg);
  }
`)), tn = ze(Be || (Be = fe`
  0% {
    stroke-dasharray: 1px, 200px;
    stroke-dashoffset: 0;
  }

  50% {
    stroke-dasharray: 100px, 200px;
    stroke-dashoffset: -15px;
  }

  100% {
    stroke-dasharray: 100px, 200px;
    stroke-dashoffset: -125px;
  }
`)), nn = (e) => {
  const {
    classes: t,
    variant: r,
    color: o,
    disableShrink: i
  } = e, s = {
    root: ["root", r, `color${H(o)}`],
    svg: ["svg"],
    circle: ["circle", `circle${H(r)}`, i && "circleDisableShrink"]
  };
  return ne(s, Zt, t);
}, on = L("span", {
  name: "MuiCircularProgress",
  slot: "Root",
  overridesResolver: (e, t) => {
    const {
      ownerState: r
    } = e;
    return [t.root, t[r.variant], t[`color${H(r.color)}`]];
  }
})(({
  ownerState: e,
  theme: t
}) => f({
  display: "inline-block"
}, e.variant === "determinate" && {
  transition: t.transitions.create("transform")
}, e.color !== "inherit" && {
  color: (t.vars || t).palette[e.color].main
}), ({
  ownerState: e
}) => e.variant === "indeterminate" && We(je || (je = fe`
      animation: ${0} 1.4s linear infinite;
    `), en)), rn = L("svg", {
  name: "MuiCircularProgress",
  slot: "Svg",
  overridesResolver: (e, t) => t.svg
})({
  display: "block"
  // Keeps the progress centered
}), sn = L("circle", {
  name: "MuiCircularProgress",
  slot: "Circle",
  overridesResolver: (e, t) => {
    const {
      ownerState: r
    } = e;
    return [t.circle, t[`circle${H(r.variant)}`], r.disableShrink && t.circleDisableShrink];
  }
})(({
  ownerState: e,
  theme: t
}) => f({
  stroke: "currentColor"
}, e.variant === "determinate" && {
  transition: t.transitions.create("stroke-dashoffset")
}, e.variant === "indeterminate" && {
  // Some default value that looks fine waiting for the animation to kicks in.
  strokeDasharray: "80px, 200px",
  strokeDashoffset: 0
  // Add the unit to fix a Edge 16 and below bug.
}), ({
  ownerState: e
}) => e.variant === "indeterminate" && !e.disableShrink && We(Ae || (Ae = fe`
      animation: ${0} 1.4s ease-in-out infinite;
    `), tn)), tt = /* @__PURE__ */ u.forwardRef(function(t, r) {
  const o = te({
    props: t,
    name: "MuiCircularProgress"
  }), {
    className: i,
    color: s = "primary",
    disableShrink: a = !1,
    size: l = 40,
    style: c,
    thickness: d = 3.6,
    value: m = 0,
    variant: v = "indeterminate"
  } = o, g = z(o, Qt), y = f({}, o, {
    color: s,
    disableShrink: a,
    size: l,
    thickness: d,
    value: m,
    variant: v
  }), b = nn(y), C = {}, N = {}, O = {};
  if (v === "determinate") {
    const $ = 2 * Math.PI * ((U - d) / 2);
    C.strokeDasharray = $.toFixed(3), O["aria-valuenow"] = Math.round(m), C.strokeDashoffset = `${((100 - m) / 100 * $).toFixed(3)}px`, N.transform = "rotate(-90deg)";
  }
  return /* @__PURE__ */ x(on, f({
    className: V(b.root, i),
    style: f({
      width: l,
      height: l
    }, N, c),
    ownerState: y,
    ref: r,
    role: "progressbar"
  }, O, g, {
    children: /* @__PURE__ */ x(rn, {
      className: b.svg,
      ownerState: y,
      viewBox: `${U / 2} ${U / 2} ${U} ${U}`,
      children: /* @__PURE__ */ x(sn, {
        className: b.circle,
        style: C,
        ownerState: y,
        cx: U,
        cy: U,
        r: (U - d) / 2,
        fill: "none",
        strokeWidth: d
      })
    })
  }));
});
process.env.NODE_ENV !== "production" && (tt.propTypes = {
  // ┌────────────────────────────── Warning ──────────────────────────────┐
  // │ These PropTypes are generated from the TypeScript type definitions. │
  // │    To update them, edit the d.ts file and run `pnpm proptypes`.     │
  // └─────────────────────────────────────────────────────────────────────┘
  /**
   * Override or extend the styles applied to the component.
   */
  classes: n.object,
  /**
   * @ignore
   */
  className: n.string,
  /**
   * The color of the component.
   * It supports both default and custom theme colors, which can be added as shown in the
   * [palette customization guide](https://mui.com/material-ui/customization/palette/#custom-colors).
   * @default 'primary'
   */
  color: n.oneOfType([n.oneOf(["inherit", "primary", "secondary", "error", "info", "success", "warning"]), n.string]),
  /**
   * If `true`, the shrink animation is disabled.
   * This only works if variant is `indeterminate`.
   * @default false
   */
  disableShrink: Z(n.bool, (e) => e.disableShrink && e.variant && e.variant !== "indeterminate" ? new Error("MUI: You have provided the `disableShrink` prop with a variant other than `indeterminate`. This will have no effect.") : null),
  /**
   * The size of the component.
   * If using a number, the pixel unit is assumed.
   * If using a string, you need to provide the CSS unit, for example '3rem'.
   * @default 40
   */
  size: n.oneOfType([n.number, n.string]),
  /**
   * @ignore
   */
  style: n.object,
  /**
   * The system prop that allows defining system overrides as well as additional CSS styles.
   */
  sx: n.oneOfType([n.arrayOf(n.oneOfType([n.func, n.object, n.bool])), n.func, n.object]),
  /**
   * The thickness of the circle.
   * @default 3.6
   */
  thickness: n.number,
  /**
   * The value of the progress indicator for the determinate variant.
   * Value between 0 and 100.
   * @default 0
   */
  value: n.number,
  /**
   * The variant to use.
   * Use indeterminate when there is no progress value.
   * @default 'indeterminate'
   */
  variant: n.oneOf(["determinate", "indeterminate"])
});
function an(e) {
  const t = q(e);
  return t.body === e ? G(e).innerWidth > t.documentElement.clientWidth : e.scrollHeight > e.clientHeight;
}
function J(e, t) {
  t ? e.setAttribute("aria-hidden", "true") : e.removeAttribute("aria-hidden");
}
function Le(e) {
  return parseInt(G(e).getComputedStyle(e).paddingRight, 10) || 0;
}
function ln(e) {
  const r = ["TEMPLATE", "SCRIPT", "STYLE", "LINK", "MAP", "META", "NOSCRIPT", "PICTURE", "COL", "COLGROUP", "PARAM", "SLOT", "SOURCE", "TRACK"].indexOf(e.tagName) !== -1, o = e.tagName === "INPUT" && e.getAttribute("type") === "hidden";
  return r || o;
}
function Ve(e, t, r, o, i) {
  const s = [t, r, ...o];
  [].forEach.call(e.children, (a) => {
    const l = s.indexOf(a) === -1, c = !ln(a);
    l && c && J(a, i);
  });
}
function ve(e, t) {
  let r = -1;
  return e.some((o, i) => t(o) ? (r = i, !0) : !1), r;
}
function cn(e, t) {
  const r = [], o = e.container;
  if (!t.disableScrollLock) {
    if (an(o)) {
      const a = Mt(q(o));
      r.push({
        value: o.style.paddingRight,
        property: "padding-right",
        el: o
      }), o.style.paddingRight = `${Le(o) + a}px`;
      const l = q(o).querySelectorAll(".mui-fixed");
      [].forEach.call(l, (c) => {
        r.push({
          value: c.style.paddingRight,
          property: "padding-right",
          el: c
        }), c.style.paddingRight = `${Le(c) + a}px`;
      });
    }
    let s;
    if (o.parentNode instanceof DocumentFragment)
      s = q(o).body;
    else {
      const a = o.parentElement, l = G(o);
      s = (a == null ? void 0 : a.nodeName) === "HTML" && l.getComputedStyle(a).overflowY === "scroll" ? a : o;
    }
    r.push({
      value: s.style.overflow,
      property: "overflow",
      el: s
    }, {
      value: s.style.overflowX,
      property: "overflow-x",
      el: s
    }, {
      value: s.style.overflowY,
      property: "overflow-y",
      el: s
    }), s.style.overflow = "hidden";
  }
  return () => {
    r.forEach(({
      value: s,
      el: a,
      property: l
    }) => {
      s ? a.style.setProperty(l, s) : a.style.removeProperty(l);
    });
  };
}
function un(e) {
  const t = [];
  return [].forEach.call(e.children, (r) => {
    r.getAttribute("aria-hidden") === "true" && t.push(r);
  }), t;
}
class dn {
  constructor() {
    this.containers = void 0, this.modals = void 0, this.modals = [], this.containers = [];
  }
  add(t, r) {
    let o = this.modals.indexOf(t);
    if (o !== -1)
      return o;
    o = this.modals.length, this.modals.push(t), t.modalRef && J(t.modalRef, !1);
    const i = un(r);
    Ve(r, t.mount, t.modalRef, i, !0);
    const s = ve(this.containers, (a) => a.container === r);
    return s !== -1 ? (this.containers[s].modals.push(t), o) : (this.containers.push({
      modals: [t],
      container: r,
      restore: null,
      hiddenSiblings: i
    }), o);
  }
  mount(t, r) {
    const o = ve(this.containers, (s) => s.modals.indexOf(t) !== -1), i = this.containers[o];
    i.restore || (i.restore = cn(i, r));
  }
  remove(t, r = !0) {
    const o = this.modals.indexOf(t);
    if (o === -1)
      return o;
    const i = ve(this.containers, (a) => a.modals.indexOf(t) !== -1), s = this.containers[i];
    if (s.modals.splice(s.modals.indexOf(t), 1), this.modals.splice(o, 1), s.modals.length === 0)
      s.restore && s.restore(), t.modalRef && J(t.modalRef, r), Ve(s.container, t.mount, t.modalRef, s.hiddenSiblings, !1), this.containers.splice(i, 1);
    else {
      const a = s.modals[s.modals.length - 1];
      a.modalRef && J(a.modalRef, !1);
    }
    return o;
  }
  isTopModal(t) {
    return this.modals.length > 0 && this.modals[this.modals.length - 1] === t;
  }
}
const pn = ["input", "select", "textarea", "a[href]", "button", "[tabindex]", "audio[controls]", "video[controls]", '[contenteditable]:not([contenteditable="false"])'].join(",");
function fn(e) {
  const t = parseInt(e.getAttribute("tabindex") || "", 10);
  return Number.isNaN(t) ? e.contentEditable === "true" || (e.nodeName === "AUDIO" || e.nodeName === "VIDEO" || e.nodeName === "DETAILS") && e.getAttribute("tabindex") === null ? 0 : e.tabIndex : t;
}
function mn(e) {
  if (e.tagName !== "INPUT" || e.type !== "radio" || !e.name)
    return !1;
  const t = (o) => e.ownerDocument.querySelector(`input[type="radio"]${o}`);
  let r = t(`[name="${e.name}"]:checked`);
  return r || (r = t(`[name="${e.name}"]`)), r !== e;
}
function hn(e) {
  return !(e.disabled || e.tagName === "INPUT" && e.type === "hidden" || mn(e));
}
function bn(e) {
  const t = [], r = [];
  return Array.from(e.querySelectorAll(pn)).forEach((o, i) => {
    const s = fn(o);
    s === -1 || !hn(o) || (s === 0 ? t.push(o) : r.push({
      documentOrder: i,
      tabIndex: s,
      node: o
    }));
  }), r.sort((o, i) => o.tabIndex === i.tabIndex ? o.documentOrder - i.documentOrder : o.tabIndex - i.tabIndex).map((o) => o.node).concat(t);
}
function vn() {
  return !0;
}
function ue(e) {
  const {
    children: t,
    disableAutoFocus: r = !1,
    disableEnforceFocus: o = !1,
    disableRestoreFocus: i = !1,
    getTabbable: s = bn,
    isEnabled: a = vn,
    open: l
  } = e, c = u.useRef(!1), d = u.useRef(null), m = u.useRef(null), v = u.useRef(null), g = u.useRef(null), y = u.useRef(!1), b = u.useRef(null), C = Y(t.ref, b), N = u.useRef(null);
  u.useEffect(() => {
    !l || !b.current || (y.current = !r);
  }, [r, l]), u.useEffect(() => {
    if (!l || !b.current)
      return;
    const p = q(b.current);
    return b.current.contains(p.activeElement) || (b.current.hasAttribute("tabIndex") || (process.env.NODE_ENV !== "production" && console.error(["MUI: The modal content node does not accept focus.", 'For the benefit of assistive technologies, the tabIndex of the node is being set to "-1".'].join(`
`)), b.current.setAttribute("tabIndex", "-1")), y.current && b.current.focus()), () => {
      i || (v.current && v.current.focus && (c.current = !0, v.current.focus()), v.current = null);
    };
  }, [l]), u.useEffect(() => {
    if (!l || !b.current)
      return;
    const p = q(b.current), T = (E) => {
      N.current = E, !(o || !a() || E.key !== "Tab") && p.activeElement === b.current && E.shiftKey && (c.current = !0, m.current && m.current.focus());
    }, w = () => {
      const E = b.current;
      if (E === null)
        return;
      if (!p.hasFocus() || !a() || c.current) {
        c.current = !1;
        return;
      }
      if (E.contains(p.activeElement) || o && p.activeElement !== d.current && p.activeElement !== m.current)
        return;
      if (p.activeElement !== g.current)
        g.current = null;
      else if (g.current !== null)
        return;
      if (!y.current)
        return;
      let I = [];
      if ((p.activeElement === d.current || p.activeElement === m.current) && (I = s(b.current)), I.length > 0) {
        var _, D;
        const M = !!((_ = N.current) != null && _.shiftKey && ((D = N.current) == null ? void 0 : D.key) === "Tab"), B = I[0], j = I[I.length - 1];
        typeof B != "string" && typeof j != "string" && (M ? j.focus() : B.focus());
      } else
        E.focus();
    };
    p.addEventListener("focusin", w), p.addEventListener("keydown", T, !0);
    const S = setInterval(() => {
      p.activeElement && p.activeElement.tagName === "BODY" && w();
    }, 50);
    return () => {
      clearInterval(S), p.removeEventListener("focusin", w), p.removeEventListener("keydown", T, !0);
    };
  }, [r, o, i, a, l, s]);
  const O = (p) => {
    v.current === null && (v.current = p.relatedTarget), y.current = !0, g.current = p.target;
    const T = t.props.onFocus;
    T && T(p);
  }, $ = (p) => {
    v.current === null && (v.current = p.relatedTarget), y.current = !0;
  };
  return /* @__PURE__ */ de(u.Fragment, {
    children: [/* @__PURE__ */ x("div", {
      tabIndex: l ? 0 : -1,
      onFocus: $,
      ref: d,
      "data-testid": "sentinelStart"
    }), /* @__PURE__ */ u.cloneElement(t, {
      ref: C,
      onFocus: O
    }), /* @__PURE__ */ x("div", {
      tabIndex: l ? 0 : -1,
      onFocus: $,
      ref: m,
      "data-testid": "sentinelEnd"
    })]
  });
}
process.env.NODE_ENV !== "production" && (ue.propTypes = {
  // ┌────────────────────────────── Warning ──────────────────────────────┐
  // │ These PropTypes are generated from the TypeScript type definitions. │
  // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │
  // └─────────────────────────────────────────────────────────────────────┘
  /**
   * A single child content element.
   */
  children: oe,
  /**
   * If `true`, the focus trap will not automatically shift focus to itself when it opens, and
   * replace it to the last focused element when it closes.
   * This also works correctly with any focus trap children that have the `disableAutoFocus` prop.
   *
   * Generally this should never be set to `true` as it makes the focus trap less
   * accessible to assistive technologies, like screen readers.
   * @default false
   */
  disableAutoFocus: n.bool,
  /**
   * If `true`, the focus trap will not prevent focus from leaving the focus trap while open.
   *
   * Generally this should never be set to `true` as it makes the focus trap less
   * accessible to assistive technologies, like screen readers.
   * @default false
   */
  disableEnforceFocus: n.bool,
  /**
   * If `true`, the focus trap will not restore focus to previously focused element once
   * focus trap is hidden or unmounted.
   * @default false
   */
  disableRestoreFocus: n.bool,
  /**
   * Returns an array of ordered tabbable nodes (i.e. in tab order) within the root.
   * For instance, you can provide the "tabbable" npm dependency.
   * @param {HTMLElement} root
   */
  getTabbable: n.func,
  /**
   * This prop extends the `open` prop.
   * It allows to toggle the open state without having to wait for a rerender when changing the `open` prop.
   * This prop should be memoized.
   * It can be used to support multiple focus trap mounted at the same time.
   * @default function defaultIsEnabled(): boolean {
   *   return true;
   * }
   */
  isEnabled: n.func,
  /**
   * If `true`, focus is locked.
   */
  open: n.bool.isRequired
});
process.env.NODE_ENV !== "production" && (ue.propTypes = Ye(ue.propTypes));
function gn(e) {
  return typeof e == "function" ? e() : e;
}
function yn(e) {
  return e ? e.props.hasOwnProperty("in") : !1;
}
const En = new dn();
function xn(e) {
  const {
    container: t,
    disableEscapeKeyDown: r = !1,
    disableScrollLock: o = !1,
    // @ts-ignore internal logic - Base UI supports the manager as a prop too
    manager: i = En,
    closeAfterTransition: s = !1,
    onTransitionEnter: a,
    onTransitionExited: l,
    children: c,
    onClose: d,
    open: m,
    rootRef: v
  } = e, g = u.useRef({}), y = u.useRef(null), b = u.useRef(null), C = Y(b, v), [N, O] = u.useState(!m), $ = yn(c);
  let p = !0;
  (e["aria-hidden"] === "false" || e["aria-hidden"] === !1) && (p = !1);
  const T = () => q(y.current), w = () => (g.current.modalRef = b.current, g.current.mount = y.current, g.current), S = () => {
    i.mount(w(), {
      disableScrollLock: o
    }), b.current && (b.current.scrollTop = 0);
  }, E = Ee(() => {
    const k = gn(t) || T().body;
    i.add(w(), k), b.current && S();
  }), I = u.useCallback(() => i.isTopModal(w()), [i]), _ = Ee((k) => {
    y.current = k, k && (m && I() ? S() : b.current && J(b.current, p));
  }), D = u.useCallback(() => {
    i.remove(w(), p);
  }, [p, i]);
  u.useEffect(() => () => {
    D();
  }, [D]), u.useEffect(() => {
    m ? E() : (!$ || !s) && D();
  }, [m, D, $, s, E]);
  const M = (k) => (R) => {
    var h;
    (h = k.onKeyDown) == null || h.call(k, R), !(R.key !== "Escape" || R.which === 229 || // Wait until IME is settled.
    !I()) && (r || (R.stopPropagation(), d && d(R, "escapeKeyDown")));
  }, B = (k) => (R) => {
    var h;
    (h = k.onClick) == null || h.call(k, R), R.target === R.currentTarget && d && d(R, "backdropClick");
  };
  return {
    getRootProps: (k = {}) => {
      const R = Et(e);
      delete R.onTransitionEnter, delete R.onTransitionExited;
      const h = f({}, R, k);
      return f({
        role: "presentation"
      }, h, {
        onKeyDown: M(h),
        ref: C
      });
    },
    getBackdropProps: (k = {}) => {
      const R = k;
      return f({
        "aria-hidden": !0
      }, R, {
        onClick: B(R),
        open: m
      });
    },
    getTransitionProps: () => {
      const k = () => {
        O(!1), a && a();
      }, R = () => {
        O(!0), l && l(), s && D();
      };
      return {
        onEnter: xe(k, c == null ? void 0 : c.props.onEnter),
        onExited: xe(R, c == null ? void 0 : c.props.onExited)
      };
    },
    rootRef: C,
    portalRef: _,
    isTopModal: I,
    exited: N,
    hasTransition: $
  };
}
function Tn(e) {
  return Q("MuiModal", e);
}
ee("MuiModal", ["root", "hidden", "backdrop"]);
const kn = ["BackdropComponent", "BackdropProps", "classes", "className", "closeAfterTransition", "children", "container", "component", "components", "componentsProps", "disableAutoFocus", "disableEnforceFocus", "disableEscapeKeyDown", "disablePortal", "disableRestoreFocus", "disableScrollLock", "hideBackdrop", "keepMounted", "onBackdropClick", "onClose", "onTransitionEnter", "onTransitionExited", "open", "slotProps", "slots", "theme"], Pn = (e) => {
  const {
    open: t,
    exited: r,
    classes: o
  } = e;
  return ne({
    root: ["root", !t && r && "hidden"],
    backdrop: ["backdrop"]
  }, Tn, o);
}, Rn = L("div", {
  name: "MuiModal",
  slot: "Root",
  overridesResolver: (e, t) => {
    const {
      ownerState: r
    } = e;
    return [t.root, !r.open && r.exited && t.hidden];
  }
})(({
  theme: e,
  ownerState: t
}) => f({
  position: "fixed",
  zIndex: (e.vars || e).zIndex.modal,
  right: 0,
  bottom: 0,
  top: 0,
  left: 0
}, !t.open && t.exited && {
  visibility: "hidden"
})), Nn = L(Re, {
  name: "MuiModal",
  slot: "Backdrop",
  overridesResolver: (e, t) => t.backdrop
})({
  zIndex: -1
}), nt = /* @__PURE__ */ u.forwardRef(function(t, r) {
  var o, i, s, a, l, c;
  const d = te({
    name: "MuiModal",
    props: t
  }), {
    BackdropComponent: m = Nn,
    BackdropProps: v,
    className: g,
    closeAfterTransition: y = !1,
    children: b,
    container: C,
    component: N,
    components: O = {},
    componentsProps: $ = {},
    disableAutoFocus: p = !1,
    disableEnforceFocus: T = !1,
    disableEscapeKeyDown: w = !1,
    disablePortal: S = !1,
    disableRestoreFocus: E = !1,
    disableScrollLock: I = !1,
    hideBackdrop: _ = !1,
    keepMounted: D = !1,
    onBackdropClick: M,
    open: B,
    slotProps: j,
    slots: P
    // eslint-disable-next-line react/prop-types
  } = d, A = z(d, kn), k = f({}, d, {
    closeAfterTransition: y,
    disableAutoFocus: p,
    disableEnforceFocus: T,
    disableEscapeKeyDown: w,
    disablePortal: S,
    disableRestoreFocus: E,
    disableScrollLock: I,
    hideBackdrop: _,
    keepMounted: D
  }), {
    getRootProps: R,
    getBackdropProps: h,
    getTransitionProps: F,
    portalRef: re,
    isTopModal: ct,
    exited: Ce,
    hasTransition: Oe
  } = xn(f({}, k, {
    rootRef: r
  })), X = f({}, k, {
    exited: Ce
  }), W = Pn(X), ie = {};
  if (b.props.tabIndex === void 0 && (ie.tabIndex = "-1"), Oe) {
    const {
      onEnter: K,
      onExited: se
    } = F();
    ie.onEnter = K, ie.onExited = se;
  }
  const Se = (o = (i = P == null ? void 0 : P.root) != null ? i : O.Root) != null ? o : Rn, De = (s = (a = P == null ? void 0 : P.backdrop) != null ? a : O.Backdrop) != null ? s : m, me = (l = j == null ? void 0 : j.root) != null ? l : $.root, he = (c = j == null ? void 0 : j.backdrop) != null ? c : $.backdrop, ut = Me({
    elementType: Se,
    externalSlotProps: me,
    externalForwardedProps: A,
    getSlotProps: R,
    additionalProps: {
      ref: r,
      as: N
    },
    ownerState: X,
    className: V(g, me == null ? void 0 : me.className, W == null ? void 0 : W.root, !X.open && X.exited && (W == null ? void 0 : W.hidden))
  }), dt = Me({
    elementType: De,
    externalSlotProps: he,
    additionalProps: v,
    getSlotProps: (K) => h(f({}, K, {
      onClick: (se) => {
        M && M(se), K != null && K.onClick && K.onClick(se);
      }
    })),
    className: V(he == null ? void 0 : he.className, v == null ? void 0 : v.className, W == null ? void 0 : W.backdrop),
    ownerState: X
  });
  return !D && !B && (!Oe || Ce) ? null : /* @__PURE__ */ x(ce, {
    ref: re,
    container: C,
    disablePortal: S,
    children: /* @__PURE__ */ de(Se, f({}, ut, {
      children: [!_ && m ? /* @__PURE__ */ x(De, f({}, dt)) : null, /* @__PURE__ */ x(ue, {
        disableEnforceFocus: T,
        disableAutoFocus: p,
        disableRestoreFocus: E,
        isEnabled: ct,
        open: B,
        children: /* @__PURE__ */ u.cloneElement(b, ie)
      })]
    }))
  });
});
process.env.NODE_ENV !== "production" && (nt.propTypes = {
  // ┌────────────────────────────── Warning ──────────────────────────────┐
  // │ These PropTypes are generated from the TypeScript type definitions. │
  // │    To update them, edit the d.ts file and run `pnpm proptypes`.     │
  // └─────────────────────────────────────────────────────────────────────┘
  /**
   * A backdrop component. This prop enables custom backdrop rendering.
   * @deprecated Use `slots.backdrop` instead. While this prop currently works, it will be removed in the next major version.
   * Use the `slots.backdrop` prop to make your application ready for the next version of Material UI.
   * @default styled(Backdrop, {
   *   name: 'MuiModal',
   *   slot: 'Backdrop',
   *   overridesResolver: (props, styles) => {
   *     return styles.backdrop;
   *   },
   * })({
   *   zIndex: -1,
   * })
   */
  BackdropComponent: n.elementType,
  /**
   * Props applied to the [`Backdrop`](/material-ui/api/backdrop/) element.
   * @deprecated Use `slotProps.backdrop` instead.
   */
  BackdropProps: n.object,
  /**
   * A single child content element.
   */
  children: oe.isRequired,
  /**
   * Override or extend the styles applied to the component.
   */
  classes: n.object,
  /**
   * @ignore
   */
  className: n.string,
  /**
   * When set to true the Modal waits until a nested Transition is completed before closing.
   * @default false
   */
  closeAfterTransition: n.bool,
  /**
   * The component used for the root node.
   * Either a string to use a HTML element or a component.
   */
  component: n.elementType,
  /**
   * The components used for each slot inside.
   *
   * This prop is an alias for the `slots` prop.
   * It's recommended to use the `slots` prop instead.
   *
   * @default {}
   */
  components: n.shape({
    Backdrop: n.elementType,
    Root: n.elementType
  }),
  /**
   * The extra props for the slot components.
   * You can override the existing props or add new ones.
   *
   * This prop is an alias for the `slotProps` prop.
   * It's recommended to use the `slotProps` prop instead, as `componentsProps` will be deprecated in the future.
   *
   * @default {}
   */
  componentsProps: n.shape({
    backdrop: n.oneOfType([n.func, n.object]),
    root: n.oneOfType([n.func, n.object])
  }),
  /**
   * An HTML element or function that returns one.
   * The `container` will have the portal children appended to it.
   *
   * You can also provide a callback, which is called in a React layout effect.
   * This lets you set the container from a ref, and also makes server-side rendering possible.
   *
   * By default, it uses the body of the top-level document object,
   * so it's simply `document.body` most of the time.
   */
  container: n.oneOfType([Pe, n.func]),
  /**
   * If `true`, the modal will not automatically shift focus to itself when it opens, and
   * replace it to the last focused element when it closes.
   * This also works correctly with any modal children that have the `disableAutoFocus` prop.
   *
   * Generally this should never be set to `true` as it makes the modal less
   * accessible to assistive technologies, like screen readers.
   * @default false
   */
  disableAutoFocus: n.bool,
  /**
   * If `true`, the modal will not prevent focus from leaving the modal while open.
   *
   * Generally this should never be set to `true` as it makes the modal less
   * accessible to assistive technologies, like screen readers.
   * @default false
   */
  disableEnforceFocus: n.bool,
  /**
   * If `true`, hitting escape will not fire the `onClose` callback.
   * @default false
   */
  disableEscapeKeyDown: n.bool,
  /**
   * The `children` will be under the DOM hierarchy of the parent component.
   * @default false
   */
  disablePortal: n.bool,
  /**
   * If `true`, the modal will not restore focus to previously focused element once
   * modal is hidden or unmounted.
   * @default false
   */
  disableRestoreFocus: n.bool,
  /**
   * Disable the scroll lock behavior.
   * @default false
   */
  disableScrollLock: n.bool,
  /**
   * If `true`, the backdrop is not rendered.
   * @default false
   */
  hideBackdrop: n.bool,
  /**
   * Always keep the children in the DOM.
   * This prop can be useful in SEO situation or
   * when you want to maximize the responsiveness of the Modal.
   * @default false
   */
  keepMounted: n.bool,
  /**
   * Callback fired when the backdrop is clicked.
   * @deprecated Use the `onClose` prop with the `reason` argument to handle the `backdropClick` events.
   */
  onBackdropClick: n.func,
  /**
   * Callback fired when the component requests to be closed.
   * The `reason` parameter can optionally be used to control the response to `onClose`.
   *
   * @param {object} event The event source of the callback.
   * @param {string} reason Can be: `"escapeKeyDown"`, `"backdropClick"`.
   */
  onClose: n.func,
  /**
   * A function called when a transition enters.
   */
  onTransitionEnter: n.func,
  /**
   * A function called when a transition has exited.
   */
  onTransitionExited: n.func,
  /**
   * If `true`, the component is shown.
   */
  open: n.bool.isRequired,
  /**
   * The props used for each slot inside the Modal.
   * @default {}
   */
  slotProps: n.shape({
    backdrop: n.oneOfType([n.func, n.object]),
    root: n.oneOfType([n.func, n.object])
  }),
  /**
   * The components used for each slot inside the Modal.
   * Either a string to use a HTML element or a component.
   * @default {}
   */
  slots: n.shape({
    backdrop: n.elementType,
    root: n.elementType
  }),
  /**
   * The system prop that allows defining system overrides as well as additional CSS styles.
   */
  sx: n.oneOfType([n.arrayOf(n.oneOfType([n.func, n.object, n.bool])), n.func, n.object])
});
const wn = ["addEndListener", "appear", "children", "container", "direction", "easing", "in", "onEnter", "onEntered", "onEntering", "onExit", "onExited", "onExiting", "style", "timeout", "TransitionComponent"];
function Cn(e, t, r) {
  const o = t.getBoundingClientRect(), i = r && r.getBoundingClientRect(), s = G(t);
  let a;
  if (t.fakeTransform)
    a = t.fakeTransform;
  else {
    const d = s.getComputedStyle(t);
    a = d.getPropertyValue("-webkit-transform") || d.getPropertyValue("transform");
  }
  let l = 0, c = 0;
  if (a && a !== "none" && typeof a == "string") {
    const d = a.split("(")[1].split(")")[0].split(",");
    l = parseInt(d[4], 10), c = parseInt(d[5], 10);
  }
  return e === "left" ? i ? `translateX(${i.right + l - o.left}px)` : `translateX(${s.innerWidth + l - o.left}px)` : e === "right" ? i ? `translateX(-${o.right - i.left - l}px)` : `translateX(-${o.left + o.width - l}px)` : e === "up" ? i ? `translateY(${i.bottom + c - o.top}px)` : `translateY(${s.innerHeight + c - o.top}px)` : i ? `translateY(-${o.top - i.top + o.height - c}px)` : `translateY(-${o.top + o.height - c}px)`;
}
function ot(e) {
  return typeof e == "function" ? e() : e;
}
function ae(e, t, r) {
  const o = ot(r), i = Cn(e, t, o);
  i && (t.style.webkitTransform = i, t.style.transform = i);
}
const rt = /* @__PURE__ */ u.forwardRef(function(t, r) {
  const o = pe(), i = {
    enter: o.transitions.easing.easeOut,
    exit: o.transitions.easing.sharp
  }, s = {
    enter: o.transitions.duration.enteringScreen,
    exit: o.transitions.duration.leavingScreen
  }, {
    addEndListener: a,
    appear: l = !0,
    children: c,
    container: d,
    direction: m = "down",
    easing: v = i,
    in: g,
    onEnter: y,
    onEntered: b,
    onEntering: C,
    onExit: N,
    onExited: O,
    onExiting: $,
    style: p,
    timeout: T = s,
    // eslint-disable-next-line react/prop-types
    TransitionComponent: w = He
  } = t, S = z(t, wn), E = u.useRef(null), I = Y(c.ref, E, r), _ = (h) => (F) => {
    h && (F === void 0 ? h(E.current) : h(E.current, F));
  }, D = _((h, F) => {
    ae(m, h, d), Ue(h), y && y(h, F);
  }), M = _((h, F) => {
    const re = le({
      timeout: T,
      style: p,
      easing: v
    }, {
      mode: "enter"
    });
    h.style.webkitTransition = o.transitions.create("-webkit-transform", f({}, re)), h.style.transition = o.transitions.create("transform", f({}, re)), h.style.webkitTransform = "none", h.style.transform = "none", C && C(h, F);
  }), B = _(b), j = _($), P = _((h) => {
    const F = le({
      timeout: T,
      style: p,
      easing: v
    }, {
      mode: "exit"
    });
    h.style.webkitTransition = o.transitions.create("-webkit-transform", F), h.style.transition = o.transitions.create("transform", F), ae(m, h, d), N && N(h);
  }), A = _((h) => {
    h.style.webkitTransition = "", h.style.transition = "", O && O(h);
  }), k = (h) => {
    a && a(E.current, h);
  }, R = u.useCallback(() => {
    E.current && ae(m, E.current, d);
  }, [m, d]);
  return u.useEffect(() => {
    if (g || m === "down" || m === "right")
      return;
    const h = Ge(() => {
      E.current && ae(m, E.current, d);
    }), F = G(E.current);
    return F.addEventListener("resize", h), () => {
      h.clear(), F.removeEventListener("resize", h);
    };
  }, [m, g, d]), u.useEffect(() => {
    g || R();
  }, [g, R]), /* @__PURE__ */ x(w, f({
    nodeRef: E,
    onEnter: D,
    onEntered: B,
    onEntering: M,
    onExit: P,
    onExited: A,
    onExiting: j,
    addEndListener: k,
    appear: l,
    in: g,
    timeout: T
  }, S, {
    children: (h, F) => /* @__PURE__ */ u.cloneElement(c, f({
      ref: I,
      style: f({
        visibility: h === "exited" && !g ? "hidden" : void 0
      }, p, c.props.style)
    }, F))
  }));
});
process.env.NODE_ENV !== "production" && (rt.propTypes = {
  // ┌────────────────────────────── Warning ──────────────────────────────┐
  // │ These PropTypes are generated from the TypeScript type definitions. │
  // │    To update them, edit the d.ts file and run `pnpm proptypes`.     │
  // └─────────────────────────────────────────────────────────────────────┘
  /**
   * Add a custom transition end trigger. Called with the transitioning DOM
   * node and a done callback. Allows for more fine grained transition end
   * logic. Note: Timeouts are still used as a fallback if provided.
   */
  addEndListener: n.func,
  /**
   * Perform the enter transition when it first mounts if `in` is also `true`.
   * Set this to `false` to disable this behavior.
   * @default true
   */
  appear: n.bool,
  /**
   * A single child content element.
   */
  children: oe.isRequired,
  /**
   * An HTML element, or a function that returns one.
   * It's used to set the container the Slide is transitioning from.
   */
  container: Z(n.oneOfType([Pe, n.func]), (e) => {
    if (e.open) {
      const t = ot(e.container);
      if (t && t.nodeType === 1) {
        const r = t.getBoundingClientRect();
        if (process.env.NODE_ENV !== "test" && r.top === 0 && r.left === 0 && r.right === 0 && r.bottom === 0)
          return new Error(["MUI: The `container` prop provided to the component is invalid.", "The anchor element should be part of the document layout.", "Make sure the element is present in the document or that it's not display none."].join(`
`));
      } else if (!t || typeof t.getBoundingClientRect != "function" || t.contextElement != null && t.contextElement.nodeType !== 1)
        return new Error(["MUI: The `container` prop provided to the component is invalid.", "It should be an HTML element instance."].join(`
`));
    }
    return null;
  }),
  /**
   * Direction the child node will enter from.
   * @default 'down'
   */
  direction: n.oneOf(["down", "left", "right", "up"]),
  /**
   * The transition timing function.
   * You may specify a single easing or a object containing enter and exit values.
   * @default {
   *   enter: theme.transitions.easing.easeOut,
   *   exit: theme.transitions.easing.sharp,
   * }
   */
  easing: n.oneOfType([n.shape({
    enter: n.string,
    exit: n.string
  }), n.string]),
  /**
   * If `true`, the component will transition in.
   */
  in: n.bool,
  /**
   * @ignore
   */
  onEnter: n.func,
  /**
   * @ignore
   */
  onEntered: n.func,
  /**
   * @ignore
   */
  onEntering: n.func,
  /**
   * @ignore
   */
  onExit: n.func,
  /**
   * @ignore
   */
  onExited: n.func,
  /**
   * @ignore
   */
  onExiting: n.func,
  /**
   * @ignore
   */
  style: n.object,
  /**
   * The duration for the transition, in milliseconds.
   * You may specify a single timeout for all transitions, or individually with an object.
   * @default {
   *   enter: theme.transitions.duration.enteringScreen,
   *   exit: theme.transitions.duration.leavingScreen,
   * }
   */
  timeout: n.oneOfType([n.number, n.shape({
    appear: n.number,
    enter: n.number,
    exit: n.number
  })])
});
function On(e) {
  return Q("MuiDrawer", e);
}
ee("MuiDrawer", ["root", "docked", "paper", "paperAnchorLeft", "paperAnchorRight", "paperAnchorTop", "paperAnchorBottom", "paperAnchorDockedLeft", "paperAnchorDockedRight", "paperAnchorDockedTop", "paperAnchorDockedBottom", "modal"]);
const Sn = ["BackdropProps"], Dn = ["anchor", "BackdropProps", "children", "className", "elevation", "hideBackdrop", "ModalProps", "onClose", "open", "PaperProps", "SlideProps", "TransitionComponent", "transitionDuration", "variant"], it = (e, t) => {
  const {
    ownerState: r
  } = e;
  return [t.root, (r.variant === "permanent" || r.variant === "persistent") && t.docked, t.modal];
}, $n = (e) => {
  const {
    classes: t,
    anchor: r,
    variant: o
  } = e, i = {
    root: ["root"],
    docked: [(o === "permanent" || o === "persistent") && "docked"],
    modal: ["modal"],
    paper: ["paper", `paperAnchor${H(r)}`, o !== "temporary" && `paperAnchorDocked${H(r)}`]
  };
  return ne(i, On, t);
}, Mn = L(nt, {
  name: "MuiDrawer",
  slot: "Root",
  overridesResolver: it
})(({
  theme: e
}) => ({
  zIndex: (e.vars || e).zIndex.drawer
})), qe = L("div", {
  shouldForwardProp: xt,
  name: "MuiDrawer",
  slot: "Docked",
  skipVariantsResolver: !1,
  overridesResolver: it
})({
  flex: "0 0 auto"
}), In = L(Qe, {
  name: "MuiDrawer",
  slot: "Paper",
  overridesResolver: (e, t) => {
    const {
      ownerState: r
    } = e;
    return [t.paper, t[`paperAnchor${H(r.anchor)}`], r.variant !== "temporary" && t[`paperAnchorDocked${H(r.anchor)}`]];
  }
})(({
  theme: e,
  ownerState: t
}) => f({
  overflowY: "auto",
  display: "flex",
  flexDirection: "column",
  height: "100%",
  flex: "1 0 auto",
  zIndex: (e.vars || e).zIndex.drawer,
  // Add iOS momentum scrolling for iOS < 13.0
  WebkitOverflowScrolling: "touch",
  // temporary style
  position: "fixed",
  top: 0,
  // We disable the focus ring for mouse, touch and keyboard users.
  // At some point, it would be better to keep it for keyboard users.
  // :focus-ring CSS pseudo-class will help.
  outline: 0
}, t.anchor === "left" && {
  left: 0
}, t.anchor === "top" && {
  top: 0,
  left: 0,
  right: 0,
  height: "auto",
  maxHeight: "100%"
}, t.anchor === "right" && {
  right: 0
}, t.anchor === "bottom" && {
  top: "auto",
  left: 0,
  bottom: 0,
  right: 0,
  height: "auto",
  maxHeight: "100%"
}, t.anchor === "left" && t.variant !== "temporary" && {
  borderRight: `1px solid ${(e.vars || e).palette.divider}`
}, t.anchor === "top" && t.variant !== "temporary" && {
  borderBottom: `1px solid ${(e.vars || e).palette.divider}`
}, t.anchor === "right" && t.variant !== "temporary" && {
  borderLeft: `1px solid ${(e.vars || e).palette.divider}`
}, t.anchor === "bottom" && t.variant !== "temporary" && {
  borderTop: `1px solid ${(e.vars || e).palette.divider}`
})), st = {
  left: "right",
  right: "left",
  top: "down",
  bottom: "up"
};
function _n(e) {
  return ["left", "right"].indexOf(e) !== -1;
}
function Fn({
  direction: e
}, t) {
  return e === "rtl" && _n(t) ? st[t] : t;
}
const at = /* @__PURE__ */ u.forwardRef(function(t, r) {
  const o = te({
    props: t,
    name: "MuiDrawer"
  }), i = pe(), s = Tt(), a = {
    enter: i.transitions.duration.enteringScreen,
    exit: i.transitions.duration.leavingScreen
  }, {
    anchor: l = "left",
    BackdropProps: c,
    children: d,
    className: m,
    elevation: v = 16,
    hideBackdrop: g = !1,
    ModalProps: {
      BackdropProps: y
    } = {},
    onClose: b,
    open: C = !1,
    PaperProps: N = {},
    SlideProps: O,
    // eslint-disable-next-line react/prop-types
    TransitionComponent: $ = rt,
    transitionDuration: p = a,
    variant: T = "temporary"
  } = o, w = z(o.ModalProps, Sn), S = z(o, Dn), E = u.useRef(!1);
  u.useEffect(() => {
    E.current = !0;
  }, []);
  const I = Fn({
    direction: s ? "rtl" : "ltr"
  }, l), D = f({}, o, {
    anchor: l,
    elevation: v,
    open: C,
    variant: T
  }, S), M = $n(D), B = /* @__PURE__ */ x(In, f({
    elevation: T === "temporary" ? v : 0,
    square: !0
  }, N, {
    className: V(M.paper, N.className),
    ownerState: D,
    children: d
  }));
  if (T === "permanent")
    return /* @__PURE__ */ x(qe, f({
      className: V(M.root, M.docked, m),
      ownerState: D,
      ref: r
    }, S, {
      children: B
    }));
  const j = /* @__PURE__ */ x($, f({
    in: C,
    direction: st[I],
    timeout: p,
    appear: E.current
  }, O, {
    children: B
  }));
  return T === "persistent" ? /* @__PURE__ */ x(qe, f({
    className: V(M.root, M.docked, m),
    ownerState: D,
    ref: r
  }, S, {
    children: j
  })) : /* @__PURE__ */ x(Mn, f({
    BackdropProps: f({}, c, y, {
      transitionDuration: p
    }),
    className: V(M.root, M.modal, m),
    open: C,
    ownerState: D,
    onClose: b,
    hideBackdrop: g,
    ref: r
  }, S, w, {
    children: j
  }));
});
process.env.NODE_ENV !== "production" && (at.propTypes = {
  // ┌────────────────────────────── Warning ──────────────────────────────┐
  // │ These PropTypes are generated from the TypeScript type definitions. │
  // │    To update them, edit the d.ts file and run `pnpm proptypes`.     │
  // └─────────────────────────────────────────────────────────────────────┘
  /**
   * Side from which the drawer will appear.
   * @default 'left'
   */
  anchor: n.oneOf(["bottom", "left", "right", "top"]),
  /**
   * @ignore
   */
  BackdropProps: n.object,
  /**
   * The content of the component.
   */
  children: n.node,
  /**
   * Override or extend the styles applied to the component.
   */
  classes: n.object,
  /**
   * @ignore
   */
  className: n.string,
  /**
   * The elevation of the drawer.
   * @default 16
   */
  elevation: Ze,
  /**
   * If `true`, the backdrop is not rendered.
   * @default false
   */
  hideBackdrop: n.bool,
  /**
   * Props applied to the [`Modal`](/material-ui/api/modal/) element.
   * @default {}
   */
  ModalProps: n.object,
  /**
   * Callback fired when the component requests to be closed.
   * The `reason` parameter can optionally be used to control the response to `onClose`.
   *
   * @param {object} event The event source of the callback.
   * @param {string} reason Can be: `"escapeKeyDown"`, `"backdropClick"`.
   */
  onClose: n.func,
  /**
   * If `true`, the component is shown.
   * @default false
   */
  open: n.bool,
  /**
   * Props applied to the [`Paper`](/material-ui/api/paper/) element.
   * @default {}
   */
  PaperProps: n.object,
  /**
   * Props applied to the [`Slide`](/material-ui/api/slide/) element.
   */
  SlideProps: n.object,
  /**
   * The system prop that allows defining system overrides as well as additional CSS styles.
   */
  sx: n.oneOfType([n.arrayOf(n.oneOfType([n.func, n.object, n.bool])), n.func, n.object]),
  /**
   * The duration for the transition, in milliseconds.
   * You may specify a single timeout for all transitions, or individually with an object.
   * @default {
   *   enter: theme.transitions.duration.enteringScreen,
   *   exit: theme.transitions.duration.leavingScreen,
   * }
   */
  transitionDuration: n.oneOfType([n.number, n.shape({
    appear: n.number,
    enter: n.number,
    exit: n.number
  })]),
  /**
   * The variant to use.
   * @default 'temporary'
   */
  variant: n.oneOf(["permanent", "persistent", "temporary"])
});
const Bn = ({
  size: e = 36,
  ...t
}) => /* @__PURE__ */ x(
  Re,
  {
    ...t,
    sx: { position: "absolute", backgroundColor: "rgba(0, 0, 0, 0.3)" },
    "data-testid": "loading-backdrop",
    children: /* @__PURE__ */ x(tt, { color: "secondary", size: e })
  }
), jn = ({ children: e }) => /* @__PURE__ */ x(kt, { flex: 1, children: e }), An = ({ children: e }) => /* @__PURE__ */ x(ke, { direction: "row", justifyContent: "end", columnGap: 1, pb: 2, children: e });
var Ne = {}, Ln = Pt;
Object.defineProperty(Ne, "__esModule", {
  value: !0
});
var lt = Ne.default = void 0, Vn = Ln(Lt()), qn = pt;
lt = Ne.default = (0, Vn.default)(/* @__PURE__ */ (0, qn.jsx)("path", {
  d: "M19 6.41 17.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"
}), "Close");
const Hn = ({ children: e, onClose: t }) => /* @__PURE__ */ de(
  ke,
  {
    direction: "row",
    justifyContent: "space-between",
    alignItems: "center",
    pb: 2,
    children: [
      /* @__PURE__ */ x(Rt, { fontSize: 16, fontWeight: "bold", children: e }),
      /* @__PURE__ */ x(Nt, { size: "small", onClick: t, "data-testid": "drawer-close", children: /* @__PURE__ */ x(lt, { fontSize: "inherit" }) })
    ]
  }
), we = ({
  anchor: e = "right",
  children: t,
  width: r,
  loading: o = !1,
  ...i
}) => /* @__PURE__ */ x(at, { anchor: e, "data-testid": "drawer", ...i, children: /* @__PURE__ */ de(ke, { height: "100%", p: 2, width: r, position: "relative", children: [
  t,
  /* @__PURE__ */ x(Bn, { open: o })
] }) });
we.Header = Hn;
we.Content = jn;
we.Footer = An;
export {
  Re as B,
  tt as C,
  we as D,
  et as F,
  Pe as H,
  Bn as L,
  nt as M,
  Qe as P,
  ce as a,
  oe as b,
  Dt as c,
  Ge as d,
  Ye as e,
  $t as f,
  Mt as g,
  ue as h,
  Ze as i,
  lt as j,
  G as o,
  Lt as r
};
