import { GlobalStyles_default } from "./chunk-WDD75YPL.js"; import { getOverlayAlpha_default, getUnit, toUnitless, useTheme } from "./chunk-Y5IG6O7D.js"; import { alpha, createBox, createStack, useRtl } from "./chunk-ZHUI7O2A.js"; import { capitalize_default, createSvgIcon, debounce_default, isMuiElement_default, ownerDocument_default, ownerWindow_default, unsupportedProp_default, useControlled_default, useEnhancedEffect_default as useEnhancedEffect_default2, useEventCallback_default as useEventCallback_default2, useForkRef_default, useId_default, useIsFocusVisible_default } from "./chunk-ANTY7EHM.js"; import { useDefaultProps } from "./chunk-4B2NWW42.js"; import { rootShouldForwardProp_default, slotShouldForwardProp_default, styled_default } from "./chunk-JWRIH3ST.js"; import { ClassNameGenerator_default, HTMLElementType, Timeout, _extends, _objectWithoutPropertiesLoose, appendOwnerState_default, chainPropTypes, clsx_default, composeClasses, createChainedFunction, createTheme_default2 as createTheme_default, css, debounce, deepmerge, elementAcceptingRef_default, elementTypeAcceptingRef_default, exactProp, extendSxProp, extractEventHandlers_default, generateUtilityClass, generateUtilityClasses, getReactElementRef, getScrollbarSize, identifier_default, init_deepmerge, init_extends, init_formatMuiErrorMessage, init_styled_engine, integerPropType_default, isHostComponent_default, keyframes, ownerDocument, ownerWindow, refType_default, require_colorManipulator, require_prop_types, require_react_is, resolveProps, setRef, styled_engine_exports, useControlled, useEnhancedEffect_default, useEventCallback_default, useForkRef, useId, usePreviousProps_default, useSlotProps_default, useTimeout } from "./chunk-QLKRFDUE.js"; import { require_react_dom } from "./chunk-UPELNCPK.js"; import { require_jsx_runtime } from "./chunk-WKPQ4ZTV.js"; import { require_react } from "./chunk-BG45W2ER.js"; import { __commonJS, __toCommonJS, __toESM } from "./chunk-HXA6O6EE.js"; // node_modules/@mui/system/useThemeWithoutDefault.js var require_useThemeWithoutDefault = __commonJS({ "node_modules/@mui/system/useThemeWithoutDefault.js"(exports) { "use strict"; "use client"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var React80 = _interopRequireWildcard(require_react()); var _styledEngine = (init_styled_engine(), __toCommonJS(styled_engine_exports)); function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = /* @__PURE__ */ new WeakMap(), t = /* @__PURE__ */ new WeakMap(); return (_getRequireWildcardCache = function(e2) { return e2 ? t : r; })(e); } function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } function isObjectEmpty2(obj) { return Object.keys(obj).length === 0; } function useTheme3(defaultTheme2 = null) { const contextTheme = React80.useContext(_styledEngine.ThemeContext); return !contextTheme || isObjectEmpty2(contextTheme) ? defaultTheme2 : contextTheme; } var _default = exports.default = useTheme3; } }); // node_modules/@mui/material/Paper/paperClasses.js function getPaperUtilityClass(slot) { return generateUtilityClass("MuiPaper", slot); } var paperClasses = generateUtilityClasses("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"]); var paperClasses_default = paperClasses; // node_modules/@mui/material/Paper/Paper.js init_extends(); var React = __toESM(require_react()); var import_prop_types = __toESM(require_prop_types()); var import_colorManipulator = __toESM(require_colorManipulator()); var import_jsx_runtime = __toESM(require_jsx_runtime()); var _excluded = ["className", "component", "elevation", "square", "variant"]; var useUtilityClasses = (ownerState) => { const { square, elevation, variant, classes } = ownerState; const slots = { root: ["root", variant, !square && "rounded", variant === "elevation" && `elevation${elevation}`] }; return composeClasses(slots, getPaperUtilityClass, classes); }; var PaperRoot = styled_default("div", { name: "MuiPaper", slot: "Root", overridesResolver: (props, styles4) => { const { ownerState } = props; return [styles4.root, styles4[ownerState.variant], !ownerState.square && styles4.rounded, ownerState.variant === "elevation" && styles4[`elevation${ownerState.elevation}`]]; } })(({ theme, ownerState }) => { var _theme$vars$overlays; return _extends({ backgroundColor: (theme.vars || theme).palette.background.paper, color: (theme.vars || theme).palette.text.primary, transition: theme.transitions.create("box-shadow") }, !ownerState.square && { borderRadius: theme.shape.borderRadius }, ownerState.variant === "outlined" && { border: `1px solid ${(theme.vars || theme).palette.divider}` }, ownerState.variant === "elevation" && _extends({ boxShadow: (theme.vars || theme).shadows[ownerState.elevation] }, !theme.vars && theme.palette.mode === "dark" && { backgroundImage: `linear-gradient(${(0, import_colorManipulator.alpha)("#fff", getOverlayAlpha_default(ownerState.elevation))}, ${(0, import_colorManipulator.alpha)("#fff", getOverlayAlpha_default(ownerState.elevation))})` }, theme.vars && { backgroundImage: (_theme$vars$overlays = theme.vars.overlays) == null ? void 0 : _theme$vars$overlays[ownerState.elevation] })); }); var Paper = React.forwardRef(function Paper2(inProps, ref) { const props = useDefaultProps({ props: inProps, name: "MuiPaper" }); const { className, component = "div", elevation = 1, square = false, variant = "elevation" } = props, other = _objectWithoutPropertiesLoose(props, _excluded); const ownerState = _extends({}, props, { component, elevation, square, variant }); const classes = useUtilityClasses(ownerState); if (true) { const theme = useTheme(); if (theme.shadows[elevation] === void 0) { console.error([`MUI: The elevation provided is not available in the theme.`, `Please make sure that \`theme.shadows[${elevation}]\` is defined.`].join("\n")); } } return (0, import_jsx_runtime.jsx)(PaperRoot, _extends({ as: component, ownerState, className: clsx_default(classes.root, className), ref }, other)); }); true ? Paper.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: import_prop_types.default.node, /** * Override or extend the styles applied to the component. */ classes: import_prop_types.default.object, /** * @ignore */ className: import_prop_types.default.string, /** * The component used for the root node. * Either a string to use a HTML element or a component. */ component: import_prop_types.default.elementType, /** * Shadow depth, corresponds to `dp` in the spec. * It accepts values between 0 and 24 inclusive. * @default 1 */ elevation: chainPropTypes(integerPropType_default, (props) => { const { elevation, variant } = props; if (elevation > 0 && variant === "outlined") { return new Error(`MUI: Combining \`elevation={${elevation}}\` with \`variant="${variant}"\` has no effect. Either use \`elevation={0}\` or use a different \`variant\`.`); } return null; }), /** * If `true`, rounded corners are disabled. * @default false */ square: import_prop_types.default.bool, /** * The system prop that allows defining system overrides as well as additional CSS styles. */ sx: import_prop_types.default.oneOfType([import_prop_types.default.arrayOf(import_prop_types.default.oneOfType([import_prop_types.default.func, import_prop_types.default.object, import_prop_types.default.bool])), import_prop_types.default.func, import_prop_types.default.object]), /** * The variant to use. * @default 'elevation' */ variant: import_prop_types.default.oneOfType([import_prop_types.default.oneOf(["elevation", "outlined"]), import_prop_types.default.string]) } : void 0; var Paper_default = Paper; // node_modules/@mui/material/ButtonBase/touchRippleClasses.js function getTouchRippleUtilityClass(slot) { return generateUtilityClass("MuiTouchRipple", slot); } var touchRippleClasses = generateUtilityClasses("MuiTouchRipple", ["root", "ripple", "rippleVisible", "ripplePulsate", "child", "childLeaving", "childPulsate"]); var touchRippleClasses_default = touchRippleClasses; // node_modules/@mui/material/ButtonBase/buttonBaseClasses.js function getButtonBaseUtilityClass(slot) { return generateUtilityClass("MuiButtonBase", slot); } var buttonBaseClasses = generateUtilityClasses("MuiButtonBase", ["root", "disabled", "focusVisible"]); var buttonBaseClasses_default = buttonBaseClasses; // node_modules/@mui/material/ButtonBase/ButtonBase.js init_extends(); var React10 = __toESM(require_react()); var import_prop_types10 = __toESM(require_prop_types()); // node_modules/@mui/material/ButtonBase/TouchRipple.js init_extends(); var React9 = __toESM(require_react()); var import_prop_types9 = __toESM(require_prop_types()); // node_modules/react-transition-group/esm/CSSTransition.js init_extends(); // node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function(t2, e2) { return t2.__proto__ = e2, t2; }, _setPrototypeOf(t, e); } // node_modules/@babel/runtime/helpers/esm/inheritsLoose.js function _inheritsLoose(t, o) { t.prototype = Object.create(o.prototype), t.prototype.constructor = t, _setPrototypeOf(t, o); } // node_modules/react-transition-group/esm/CSSTransition.js var import_prop_types4 = __toESM(require_prop_types()); // node_modules/dom-helpers/esm/hasClass.js function hasClass(element, className) { if (element.classList) return !!className && element.classList.contains(className); return (" " + (element.className.baseVal || element.className) + " ").indexOf(" " + className + " ") !== -1; } // node_modules/dom-helpers/esm/addClass.js function addClass(element, className) { if (element.classList) element.classList.add(className); else if (!hasClass(element, className)) if (typeof element.className === "string") element.className = element.className + " " + className; else element.setAttribute("class", (element.className && element.className.baseVal || "") + " " + className); } // node_modules/dom-helpers/esm/removeClass.js function replaceClassName(origClass, classToRemove) { return origClass.replace(new RegExp("(^|\\s)" + classToRemove + "(?:\\s|$)", "g"), "$1").replace(/\s+/g, " ").replace(/^\s*|\s*$/g, ""); } function removeClass(element, className) { if (element.classList) { element.classList.remove(className); } else if (typeof element.className === "string") { element.className = replaceClassName(element.className, className); } else { element.setAttribute("class", replaceClassName(element.className && element.className.baseVal || "", className)); } } // node_modules/react-transition-group/esm/CSSTransition.js var import_react3 = __toESM(require_react()); // node_modules/react-transition-group/esm/Transition.js var import_prop_types3 = __toESM(require_prop_types()); var import_react2 = __toESM(require_react()); var import_react_dom = __toESM(require_react_dom()); // node_modules/react-transition-group/esm/config.js var config_default = { disabled: false }; // node_modules/react-transition-group/esm/utils/PropTypes.js var import_prop_types2 = __toESM(require_prop_types()); var timeoutsShape = true ? import_prop_types2.default.oneOfType([import_prop_types2.default.number, import_prop_types2.default.shape({ enter: import_prop_types2.default.number, exit: import_prop_types2.default.number, appear: import_prop_types2.default.number }).isRequired]) : null; var classNamesShape = true ? import_prop_types2.default.oneOfType([import_prop_types2.default.string, import_prop_types2.default.shape({ enter: import_prop_types2.default.string, exit: import_prop_types2.default.string, active: import_prop_types2.default.string }), import_prop_types2.default.shape({ enter: import_prop_types2.default.string, enterDone: import_prop_types2.default.string, enterActive: import_prop_types2.default.string, exit: import_prop_types2.default.string, exitDone: import_prop_types2.default.string, exitActive: import_prop_types2.default.string })]) : null; // node_modules/react-transition-group/esm/TransitionGroupContext.js var import_react = __toESM(require_react()); var TransitionGroupContext_default = import_react.default.createContext(null); // node_modules/react-transition-group/esm/utils/reflow.js var forceReflow = function forceReflow2(node) { return node.scrollTop; }; // node_modules/react-transition-group/esm/Transition.js var UNMOUNTED = "unmounted"; var EXITED = "exited"; var ENTERING = "entering"; var ENTERED = "entered"; var EXITING = "exiting"; var Transition = function(_React$Component) { _inheritsLoose(Transition2, _React$Component); function Transition2(props, context) { var _this; _this = _React$Component.call(this, props, context) || this; var parentGroup = context; var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear; var initialStatus; _this.appearStatus = null; if (props.in) { if (appear) { initialStatus = EXITED; _this.appearStatus = ENTERING; } else { initialStatus = ENTERED; } } else { if (props.unmountOnExit || props.mountOnEnter) { initialStatus = UNMOUNTED; } else { initialStatus = EXITED; } } _this.state = { status: initialStatus }; _this.nextCallback = null; return _this; } Transition2.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) { var nextIn = _ref.in; if (nextIn && prevState.status === UNMOUNTED) { return { status: EXITED }; } return null; }; var _proto = Transition2.prototype; _proto.componentDidMount = function componentDidMount() { this.updateStatus(true, this.appearStatus); }; _proto.componentDidUpdate = function componentDidUpdate(prevProps) { var nextStatus = null; if (prevProps !== this.props) { var status = this.state.status; if (this.props.in) { if (status !== ENTERING && status !== ENTERED) { nextStatus = ENTERING; } } else { if (status === ENTERING || status === ENTERED) { nextStatus = EXITING; } } } this.updateStatus(false, nextStatus); }; _proto.componentWillUnmount = function componentWillUnmount() { this.cancelNextCallback(); }; _proto.getTimeouts = function getTimeouts() { var timeout2 = this.props.timeout; var exit, enter, appear; exit = enter = appear = timeout2; if (timeout2 != null && typeof timeout2 !== "number") { exit = timeout2.exit; enter = timeout2.enter; appear = timeout2.appear !== void 0 ? timeout2.appear : enter; } return { exit, enter, appear }; }; _proto.updateStatus = function updateStatus(mounting, nextStatus) { if (mounting === void 0) { mounting = false; } if (nextStatus !== null) { this.cancelNextCallback(); if (nextStatus === ENTERING) { if (this.props.unmountOnExit || this.props.mountOnEnter) { var node = this.props.nodeRef ? this.props.nodeRef.current : import_react_dom.default.findDOMNode(this); if (node) forceReflow(node); } this.performEnter(mounting); } else { this.performExit(); } } else if (this.props.unmountOnExit && this.state.status === EXITED) { this.setState({ status: UNMOUNTED }); } }; _proto.performEnter = function performEnter(mounting) { var _this2 = this; var enter = this.props.enter; var appearing = this.context ? this.context.isMounting : mounting; var _ref2 = this.props.nodeRef ? [appearing] : [import_react_dom.default.findDOMNode(this), appearing], maybeNode = _ref2[0], maybeAppearing = _ref2[1]; var timeouts = this.getTimeouts(); var enterTimeout = appearing ? timeouts.appear : timeouts.enter; if (!mounting && !enter || config_default.disabled) { this.safeSetState({ status: ENTERED }, function() { _this2.props.onEntered(maybeNode); }); return; } this.props.onEnter(maybeNode, maybeAppearing); this.safeSetState({ status: ENTERING }, function() { _this2.props.onEntering(maybeNode, maybeAppearing); _this2.onTransitionEnd(enterTimeout, function() { _this2.safeSetState({ status: ENTERED }, function() { _this2.props.onEntered(maybeNode, maybeAppearing); }); }); }); }; _proto.performExit = function performExit() { var _this3 = this; var exit = this.props.exit; var timeouts = this.getTimeouts(); var maybeNode = this.props.nodeRef ? void 0 : import_react_dom.default.findDOMNode(this); if (!exit || config_default.disabled) { this.safeSetState({ status: EXITED }, function() { _this3.props.onExited(maybeNode); }); return; } this.props.onExit(maybeNode); this.safeSetState({ status: EXITING }, function() { _this3.props.onExiting(maybeNode); _this3.onTransitionEnd(timeouts.exit, function() { _this3.safeSetState({ status: EXITED }, function() { _this3.props.onExited(maybeNode); }); }); }); }; _proto.cancelNextCallback = function cancelNextCallback() { if (this.nextCallback !== null) { this.nextCallback.cancel(); this.nextCallback = null; } }; _proto.safeSetState = function safeSetState(nextState, callback) { callback = this.setNextCallback(callback); this.setState(nextState, callback); }; _proto.setNextCallback = function setNextCallback(callback) { var _this4 = this; var active = true; this.nextCallback = function(event) { if (active) { active = false; _this4.nextCallback = null; callback(event); } }; this.nextCallback.cancel = function() { active = false; }; return this.nextCallback; }; _proto.onTransitionEnd = function onTransitionEnd(timeout2, handler) { this.setNextCallback(handler); var node = this.props.nodeRef ? this.props.nodeRef.current : import_react_dom.default.findDOMNode(this); var doesNotHaveTimeoutOrListener = timeout2 == null && !this.props.addEndListener; if (!node || doesNotHaveTimeoutOrListener) { setTimeout(this.nextCallback, 0); return; } if (this.props.addEndListener) { var _ref3 = this.props.nodeRef ? [this.nextCallback] : [node, this.nextCallback], maybeNode = _ref3[0], maybeNextCallback = _ref3[1]; this.props.addEndListener(maybeNode, maybeNextCallback); } if (timeout2 != null) { setTimeout(this.nextCallback, timeout2); } }; _proto.render = function render() { var status = this.state.status; if (status === UNMOUNTED) { return null; } var _this$props = this.props, children2 = _this$props.children, _in = _this$props.in, _mountOnEnter = _this$props.mountOnEnter, _unmountOnExit = _this$props.unmountOnExit, _appear = _this$props.appear, _enter = _this$props.enter, _exit = _this$props.exit, _timeout = _this$props.timeout, _addEndListener = _this$props.addEndListener, _onEnter = _this$props.onEnter, _onEntering = _this$props.onEntering, _onEntered = _this$props.onEntered, _onExit = _this$props.onExit, _onExiting = _this$props.onExiting, _onExited = _this$props.onExited, _nodeRef = _this$props.nodeRef, childProps = _objectWithoutPropertiesLoose(_this$props, ["children", "in", "mountOnEnter", "unmountOnExit", "appear", "enter", "exit", "timeout", "addEndListener", "onEnter", "onEntering", "onEntered", "onExit", "onExiting", "onExited", "nodeRef"]); return ( // allows for nested Transitions import_react2.default.createElement(TransitionGroupContext_default.Provider, { value: null }, typeof children2 === "function" ? children2(status, childProps) : import_react2.default.cloneElement(import_react2.default.Children.only(children2), childProps)) ); }; return Transition2; }(import_react2.default.Component); Transition.contextType = TransitionGroupContext_default; Transition.propTypes = true ? { /** * A React reference to DOM element that need to transition: * https://stackoverflow.com/a/51127130/4671932 * * - When `nodeRef` prop is used, `node` is not passed to callback functions * (e.g. `onEnter`) because user already has direct access to the node. * - When changing `key` prop of `Transition` in a `TransitionGroup` a new * `nodeRef` need to be provided to `Transition` with changed `key` prop * (see * [test/CSSTransition-test.js](https://github.com/reactjs/react-transition-group/blob/13435f897b3ab71f6e19d724f145596f5910581c/test/CSSTransition-test.js#L362-L437)). */ nodeRef: import_prop_types3.default.shape({ current: typeof Element === "undefined" ? import_prop_types3.default.any : function(propValue, key, componentName, location, propFullName, secret) { var value = propValue[key]; return import_prop_types3.default.instanceOf(value && "ownerDocument" in value ? value.ownerDocument.defaultView.Element : Element)(propValue, key, componentName, location, propFullName, secret); } }), /** * A `function` child can be used instead of a React element. This function is * called with the current transition status (`'entering'`, `'entered'`, * `'exiting'`, `'exited'`), which can be used to apply context * specific props to a component. * * ```jsx * * {state => ( * * )} * * ``` */ children: import_prop_types3.default.oneOfType([import_prop_types3.default.func.isRequired, import_prop_types3.default.element.isRequired]).isRequired, /** * Show the component; triggers the enter or exit states */ in: import_prop_types3.default.bool, /** * By default the child component is mounted immediately along with * the parent `Transition` component. If you want to "lazy mount" the component on the * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay * mounted, even on "exited", unless you also specify `unmountOnExit`. */ mountOnEnter: import_prop_types3.default.bool, /** * By default the child component stays mounted after it reaches the `'exited'` state. * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting. */ unmountOnExit: import_prop_types3.default.bool, /** * By default the child component does not perform the enter transition when * it first mounts, regardless of the value of `in`. If you want this * behavior, set both `appear` and `in` to `true`. * * > **Note**: there are no special appear states like `appearing`/`appeared`, this prop * > only adds an additional enter transition. However, in the * > `` component that first enter transition does result in * > additional `.appear-*` classes, that way you can choose to style it * > differently. */ appear: import_prop_types3.default.bool, /** * Enable or disable enter transitions. */ enter: import_prop_types3.default.bool, /** * Enable or disable exit transitions. */ exit: import_prop_types3.default.bool, /** * The duration of the transition, in milliseconds. * Required unless `addEndListener` is provided. * * You may specify a single timeout for all transitions: * * ```jsx * timeout={500} * ``` * * or individually: * * ```jsx * timeout={{ * appear: 500, * enter: 300, * exit: 500, * }} * ``` * * - `appear` defaults to the value of `enter` * - `enter` defaults to `0` * - `exit` defaults to `0` * * @type {number | { enter?: number, exit?: number, appear?: number }} */ timeout: function timeout(props) { var pt = timeoutsShape; if (!props.addEndListener) pt = pt.isRequired; for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { args[_key - 1] = arguments[_key]; } return pt.apply(void 0, [props].concat(args)); }, /** * Add a custom transition end trigger. Called with the transitioning * DOM node and a `done` callback. Allows for more fine grained transition end * logic. Timeouts are still used as a fallback if provided. * * **Note**: when `nodeRef` prop is passed, `node` is not passed. * * ```jsx * addEndListener={(node, done) => { * // use the css transitionend event to mark the finish of a transition * node.addEventListener('transitionend', done, false); * }} * ``` */ addEndListener: import_prop_types3.default.func, /** * Callback fired before the "entering" status is applied. An extra parameter * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount * * **Note**: when `nodeRef` prop is passed, `node` is not passed. * * @type Function(node: HtmlElement, isAppearing: bool) -> void */ onEnter: import_prop_types3.default.func, /** * Callback fired after the "entering" status is applied. An extra parameter * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount * * **Note**: when `nodeRef` prop is passed, `node` is not passed. * * @type Function(node: HtmlElement, isAppearing: bool) */ onEntering: import_prop_types3.default.func, /** * Callback fired after the "entered" status is applied. An extra parameter * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount * * **Note**: when `nodeRef` prop is passed, `node` is not passed. * * @type Function(node: HtmlElement, isAppearing: bool) -> void */ onEntered: import_prop_types3.default.func, /** * Callback fired before the "exiting" status is applied. * * **Note**: when `nodeRef` prop is passed, `node` is not passed. * * @type Function(node: HtmlElement) -> void */ onExit: import_prop_types3.default.func, /** * Callback fired after the "exiting" status is applied. * * **Note**: when `nodeRef` prop is passed, `node` is not passed. * * @type Function(node: HtmlElement) -> void */ onExiting: import_prop_types3.default.func, /** * Callback fired after the "exited" status is applied. * * **Note**: when `nodeRef` prop is passed, `node` is not passed * * @type Function(node: HtmlElement) -> void */ onExited: import_prop_types3.default.func } : {}; function noop() { } Transition.defaultProps = { in: false, mountOnEnter: false, unmountOnExit: false, appear: false, enter: true, exit: true, onEnter: noop, onEntering: noop, onEntered: noop, onExit: noop, onExiting: noop, onExited: noop }; Transition.UNMOUNTED = UNMOUNTED; Transition.EXITED = EXITED; Transition.ENTERING = ENTERING; Transition.ENTERED = ENTERED; Transition.EXITING = EXITING; var Transition_default = Transition; // node_modules/react-transition-group/esm/CSSTransition.js var _addClass = function addClass2(node, classes) { return node && classes && classes.split(" ").forEach(function(c) { return addClass(node, c); }); }; var removeClass2 = function removeClass3(node, classes) { return node && classes && classes.split(" ").forEach(function(c) { return removeClass(node, c); }); }; var CSSTransition = function(_React$Component) { _inheritsLoose(CSSTransition2, _React$Component); function CSSTransition2() { var _this; for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this; _this.appliedClasses = { appear: {}, enter: {}, exit: {} }; _this.onEnter = function(maybeNode, maybeAppearing) { var _this$resolveArgument = _this.resolveArguments(maybeNode, maybeAppearing), node = _this$resolveArgument[0], appearing = _this$resolveArgument[1]; _this.removeClasses(node, "exit"); _this.addClass(node, appearing ? "appear" : "enter", "base"); if (_this.props.onEnter) { _this.props.onEnter(maybeNode, maybeAppearing); } }; _this.onEntering = function(maybeNode, maybeAppearing) { var _this$resolveArgument2 = _this.resolveArguments(maybeNode, maybeAppearing), node = _this$resolveArgument2[0], appearing = _this$resolveArgument2[1]; var type = appearing ? "appear" : "enter"; _this.addClass(node, type, "active"); if (_this.props.onEntering) { _this.props.onEntering(maybeNode, maybeAppearing); } }; _this.onEntered = function(maybeNode, maybeAppearing) { var _this$resolveArgument3 = _this.resolveArguments(maybeNode, maybeAppearing), node = _this$resolveArgument3[0], appearing = _this$resolveArgument3[1]; var type = appearing ? "appear" : "enter"; _this.removeClasses(node, type); _this.addClass(node, type, "done"); if (_this.props.onEntered) { _this.props.onEntered(maybeNode, maybeAppearing); } }; _this.onExit = function(maybeNode) { var _this$resolveArgument4 = _this.resolveArguments(maybeNode), node = _this$resolveArgument4[0]; _this.removeClasses(node, "appear"); _this.removeClasses(node, "enter"); _this.addClass(node, "exit", "base"); if (_this.props.onExit) { _this.props.onExit(maybeNode); } }; _this.onExiting = function(maybeNode) { var _this$resolveArgument5 = _this.resolveArguments(maybeNode), node = _this$resolveArgument5[0]; _this.addClass(node, "exit", "active"); if (_this.props.onExiting) { _this.props.onExiting(maybeNode); } }; _this.onExited = function(maybeNode) { var _this$resolveArgument6 = _this.resolveArguments(maybeNode), node = _this$resolveArgument6[0]; _this.removeClasses(node, "exit"); _this.addClass(node, "exit", "done"); if (_this.props.onExited) { _this.props.onExited(maybeNode); } }; _this.resolveArguments = function(maybeNode, maybeAppearing) { return _this.props.nodeRef ? [_this.props.nodeRef.current, maybeNode] : [maybeNode, maybeAppearing]; }; _this.getClassNames = function(type) { var classNames = _this.props.classNames; var isStringClassNames = typeof classNames === "string"; var prefix = isStringClassNames && classNames ? classNames + "-" : ""; var baseClassName = isStringClassNames ? "" + prefix + type : classNames[type]; var activeClassName = isStringClassNames ? baseClassName + "-active" : classNames[type + "Active"]; var doneClassName = isStringClassNames ? baseClassName + "-done" : classNames[type + "Done"]; return { baseClassName, activeClassName, doneClassName }; }; return _this; } var _proto = CSSTransition2.prototype; _proto.addClass = function addClass3(node, type, phase) { var className = this.getClassNames(type)[phase + "ClassName"]; var _this$getClassNames = this.getClassNames("enter"), doneClassName = _this$getClassNames.doneClassName; if (type === "appear" && phase === "done" && doneClassName) { className += " " + doneClassName; } if (phase === "active") { if (node) forceReflow(node); } if (className) { this.appliedClasses[type][phase] = className; _addClass(node, className); } }; _proto.removeClasses = function removeClasses(node, type) { var _this$appliedClasses$ = this.appliedClasses[type], baseClassName = _this$appliedClasses$.base, activeClassName = _this$appliedClasses$.active, doneClassName = _this$appliedClasses$.done; this.appliedClasses[type] = {}; if (baseClassName) { removeClass2(node, baseClassName); } if (activeClassName) { removeClass2(node, activeClassName); } if (doneClassName) { removeClass2(node, doneClassName); } }; _proto.render = function render() { var _this$props = this.props, _4 = _this$props.classNames, props = _objectWithoutPropertiesLoose(_this$props, ["classNames"]); return import_react3.default.createElement(Transition_default, _extends({}, props, { onEnter: this.onEnter, onEntered: this.onEntered, onEntering: this.onEntering, onExit: this.onExit, onExiting: this.onExiting, onExited: this.onExited })); }; return CSSTransition2; }(import_react3.default.Component); CSSTransition.defaultProps = { classNames: "" }; CSSTransition.propTypes = true ? _extends({}, Transition_default.propTypes, { /** * The animation classNames applied to the component as it appears, enters, * exits or has finished the transition. A single name can be provided, which * will be suffixed for each stage, e.g. `classNames="fade"` applies: * * - `fade-appear`, `fade-appear-active`, `fade-appear-done` * - `fade-enter`, `fade-enter-active`, `fade-enter-done` * - `fade-exit`, `fade-exit-active`, `fade-exit-done` * * A few details to note about how these classes are applied: * * 1. They are _joined_ with the ones that are already defined on the child * component, so if you want to add some base styles, you can use * `className` without worrying that it will be overridden. * * 2. If the transition component mounts with `in={false}`, no classes are * applied yet. You might be expecting `*-exit-done`, but if you think * about it, a component cannot finish exiting if it hasn't entered yet. * * 2. `fade-appear-done` and `fade-enter-done` will _both_ be applied. This * allows you to define different behavior for when appearing is done and * when regular entering is done, using selectors like * `.fade-enter-done:not(.fade-appear-done)`. For example, you could apply * an epic entrance animation when element first appears in the DOM using * [Animate.css](https://daneden.github.io/animate.css/). Otherwise you can * simply use `fade-enter-done` for defining both cases. * * Each individual classNames can also be specified independently like: * * ```js * classNames={{ * appear: 'my-appear', * appearActive: 'my-active-appear', * appearDone: 'my-done-appear', * enter: 'my-enter', * enterActive: 'my-active-enter', * enterDone: 'my-done-enter', * exit: 'my-exit', * exitActive: 'my-active-exit', * exitDone: 'my-done-exit', * }} * ``` * * If you want to set these classes using CSS Modules: * * ```js * import styles from './styles.css'; * ``` * * you might want to use camelCase in your CSS file, that way could simply * spread them instead of listing them one by one: * * ```js * classNames={{ ...styles }} * ``` * * @type {string | { * appear?: string, * appearActive?: string, * appearDone?: string, * enter?: string, * enterActive?: string, * enterDone?: string, * exit?: string, * exitActive?: string, * exitDone?: string, * }} */ classNames: classNamesShape, /** * A `` callback fired immediately after the 'enter' or 'appear' class is * applied. * * **Note**: when `nodeRef` prop is passed, `node` is not passed. * * @type Function(node: HtmlElement, isAppearing: bool) */ onEnter: import_prop_types4.default.func, /** * A `` callback fired immediately after the 'enter-active' or * 'appear-active' class is applied. * * **Note**: when `nodeRef` prop is passed, `node` is not passed. * * @type Function(node: HtmlElement, isAppearing: bool) */ onEntering: import_prop_types4.default.func, /** * A `` callback fired immediately after the 'enter' or * 'appear' classes are **removed** and the `done` class is added to the DOM node. * * **Note**: when `nodeRef` prop is passed, `node` is not passed. * * @type Function(node: HtmlElement, isAppearing: bool) */ onEntered: import_prop_types4.default.func, /** * A `` callback fired immediately after the 'exit' class is * applied. * * **Note**: when `nodeRef` prop is passed, `node` is not passed * * @type Function(node: HtmlElement) */ onExit: import_prop_types4.default.func, /** * A `` callback fired immediately after the 'exit-active' is applied. * * **Note**: when `nodeRef` prop is passed, `node` is not passed * * @type Function(node: HtmlElement) */ onExiting: import_prop_types4.default.func, /** * A `` callback fired immediately after the 'exit' classes * are **removed** and the `exit-done` class is added to the DOM node. * * **Note**: when `nodeRef` prop is passed, `node` is not passed * * @type Function(node: HtmlElement) */ onExited: import_prop_types4.default.func }) : {}; // node_modules/react-transition-group/esm/ReplaceTransition.js var import_prop_types6 = __toESM(require_prop_types()); var import_react6 = __toESM(require_react()); var import_react_dom2 = __toESM(require_react_dom()); // node_modules/react-transition-group/esm/TransitionGroup.js init_extends(); // node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js function _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } // node_modules/react-transition-group/esm/TransitionGroup.js var import_prop_types5 = __toESM(require_prop_types()); var import_react5 = __toESM(require_react()); // node_modules/react-transition-group/esm/utils/ChildMapping.js var import_react4 = __toESM(require_react()); function getChildMapping(children2, mapFn) { var mapper = function mapper2(child) { return mapFn && (0, import_react4.isValidElement)(child) ? mapFn(child) : child; }; var result = /* @__PURE__ */ Object.create(null); if (children2) import_react4.Children.map(children2, function(c) { return c; }).forEach(function(child) { result[child.key] = mapper(child); }); return result; } function mergeChildMappings(prev, next) { prev = prev || {}; next = next || {}; function getValueForKey(key) { return key in next ? next[key] : prev[key]; } var nextKeysPending = /* @__PURE__ */ Object.create(null); var pendingKeys = []; for (var prevKey in prev) { if (prevKey in next) { if (pendingKeys.length) { nextKeysPending[prevKey] = pendingKeys; pendingKeys = []; } } else { pendingKeys.push(prevKey); } } var i; var childMapping = {}; for (var nextKey in next) { if (nextKeysPending[nextKey]) { for (i = 0; i < nextKeysPending[nextKey].length; i++) { var pendingNextKey = nextKeysPending[nextKey][i]; childMapping[nextKeysPending[nextKey][i]] = getValueForKey(pendingNextKey); } } childMapping[nextKey] = getValueForKey(nextKey); } for (i = 0; i < pendingKeys.length; i++) { childMapping[pendingKeys[i]] = getValueForKey(pendingKeys[i]); } return childMapping; } function getProp(child, prop, props) { return props[prop] != null ? props[prop] : child.props[prop]; } function getInitialChildMapping(props, onExited) { return getChildMapping(props.children, function(child) { return (0, import_react4.cloneElement)(child, { onExited: onExited.bind(null, child), in: true, appear: getProp(child, "appear", props), enter: getProp(child, "enter", props), exit: getProp(child, "exit", props) }); }); } function getNextChildMapping(nextProps, prevChildMapping, onExited) { var nextChildMapping = getChildMapping(nextProps.children); var children2 = mergeChildMappings(prevChildMapping, nextChildMapping); Object.keys(children2).forEach(function(key) { var child = children2[key]; if (!(0, import_react4.isValidElement)(child)) return; var hasPrev = key in prevChildMapping; var hasNext = key in nextChildMapping; var prevChild = prevChildMapping[key]; var isLeaving = (0, import_react4.isValidElement)(prevChild) && !prevChild.props.in; if (hasNext && (!hasPrev || isLeaving)) { children2[key] = (0, import_react4.cloneElement)(child, { onExited: onExited.bind(null, child), in: true, exit: getProp(child, "exit", nextProps), enter: getProp(child, "enter", nextProps) }); } else if (!hasNext && hasPrev && !isLeaving) { children2[key] = (0, import_react4.cloneElement)(child, { in: false }); } else if (hasNext && hasPrev && (0, import_react4.isValidElement)(prevChild)) { children2[key] = (0, import_react4.cloneElement)(child, { onExited: onExited.bind(null, child), in: prevChild.props.in, exit: getProp(child, "exit", nextProps), enter: getProp(child, "enter", nextProps) }); } }); return children2; } // node_modules/react-transition-group/esm/TransitionGroup.js var values = Object.values || function(obj) { return Object.keys(obj).map(function(k) { return obj[k]; }); }; var defaultProps = { component: "div", childFactory: function childFactory(child) { return child; } }; var TransitionGroup = function(_React$Component) { _inheritsLoose(TransitionGroup2, _React$Component); function TransitionGroup2(props, context) { var _this; _this = _React$Component.call(this, props, context) || this; var handleExited = _this.handleExited.bind(_assertThisInitialized(_this)); _this.state = { contextValue: { isMounting: true }, handleExited, firstRender: true }; return _this; } var _proto = TransitionGroup2.prototype; _proto.componentDidMount = function componentDidMount() { this.mounted = true; this.setState({ contextValue: { isMounting: false } }); }; _proto.componentWillUnmount = function componentWillUnmount() { this.mounted = false; }; TransitionGroup2.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, _ref) { var prevChildMapping = _ref.children, handleExited = _ref.handleExited, firstRender = _ref.firstRender; return { children: firstRender ? getInitialChildMapping(nextProps, handleExited) : getNextChildMapping(nextProps, prevChildMapping, handleExited), firstRender: false }; }; _proto.handleExited = function handleExited(child, node) { var currentChildMapping = getChildMapping(this.props.children); if (child.key in currentChildMapping) return; if (child.props.onExited) { child.props.onExited(node); } if (this.mounted) { this.setState(function(state) { var children2 = _extends({}, state.children); delete children2[child.key]; return { children: children2 }; }); } }; _proto.render = function render() { var _this$props = this.props, Component = _this$props.component, childFactory2 = _this$props.childFactory, props = _objectWithoutPropertiesLoose(_this$props, ["component", "childFactory"]); var contextValue = this.state.contextValue; var children2 = values(this.state.children).map(childFactory2); delete props.appear; delete props.enter; delete props.exit; if (Component === null) { return import_react5.default.createElement(TransitionGroupContext_default.Provider, { value: contextValue }, children2); } return import_react5.default.createElement(TransitionGroupContext_default.Provider, { value: contextValue }, import_react5.default.createElement(Component, props, children2)); }; return TransitionGroup2; }(import_react5.default.Component); TransitionGroup.propTypes = true ? { /** * `` renders a `
` by default. You can change this * behavior by providing a `component` prop. * If you use React v16+ and would like to avoid a wrapping `
` element * you can pass in `component={null}`. This is useful if the wrapping div * borks your css styles. */ component: import_prop_types5.default.any, /** * A set of `` components, that are toggled `in` and out as they * leave. the `` will inject specific transition props, so * remember to spread them through if you are wrapping the `` as * with our `` example. * * While this component is meant for multiple `Transition` or `CSSTransition` * children, sometimes you may want to have a single transition child with * content that you want to be transitioned out and in when you change it * (e.g. routes, images etc.) In that case you can change the `key` prop of * the transition child as you change its content, this will cause * `TransitionGroup` to transition the child out and back in. */ children: import_prop_types5.default.node, /** * A convenience prop that enables or disables appear animations * for all children. Note that specifying this will override any defaults set * on individual children Transitions. */ appear: import_prop_types5.default.bool, /** * A convenience prop that enables or disables enter animations * for all children. Note that specifying this will override any defaults set * on individual children Transitions. */ enter: import_prop_types5.default.bool, /** * A convenience prop that enables or disables exit animations * for all children. Note that specifying this will override any defaults set * on individual children Transitions. */ exit: import_prop_types5.default.bool, /** * You may need to apply reactive updates to a child as it is exiting. * This is generally done by using `cloneElement` however in the case of an exiting * child the element has already been removed and not accessible to the consumer. * * If you do need to update a child as it leaves you can provide a `childFactory` * to wrap every child, even the ones that are leaving. * * @type Function(child: ReactElement) -> ReactElement */ childFactory: import_prop_types5.default.func } : {}; TransitionGroup.defaultProps = defaultProps; var TransitionGroup_default = TransitionGroup; // node_modules/react-transition-group/esm/ReplaceTransition.js var ReplaceTransition = function(_React$Component) { _inheritsLoose(ReplaceTransition2, _React$Component); function ReplaceTransition2() { var _this; for (var _len = arguments.length, _args = new Array(_len), _key = 0; _key < _len; _key++) { _args[_key] = arguments[_key]; } _this = _React$Component.call.apply(_React$Component, [this].concat(_args)) || this; _this.handleEnter = function() { for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { args[_key2] = arguments[_key2]; } return _this.handleLifecycle("onEnter", 0, args); }; _this.handleEntering = function() { for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) { args[_key3] = arguments[_key3]; } return _this.handleLifecycle("onEntering", 0, args); }; _this.handleEntered = function() { for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) { args[_key4] = arguments[_key4]; } return _this.handleLifecycle("onEntered", 0, args); }; _this.handleExit = function() { for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) { args[_key5] = arguments[_key5]; } return _this.handleLifecycle("onExit", 1, args); }; _this.handleExiting = function() { for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) { args[_key6] = arguments[_key6]; } return _this.handleLifecycle("onExiting", 1, args); }; _this.handleExited = function() { for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) { args[_key7] = arguments[_key7]; } return _this.handleLifecycle("onExited", 1, args); }; return _this; } var _proto = ReplaceTransition2.prototype; _proto.handleLifecycle = function handleLifecycle(handler, idx, originalArgs) { var _child$props; var children2 = this.props.children; var child = import_react6.default.Children.toArray(children2)[idx]; if (child.props[handler]) (_child$props = child.props)[handler].apply(_child$props, originalArgs); if (this.props[handler]) { var maybeNode = child.props.nodeRef ? void 0 : import_react_dom2.default.findDOMNode(this); this.props[handler](maybeNode); } }; _proto.render = function render() { var _this$props = this.props, children2 = _this$props.children, inProp = _this$props.in, props = _objectWithoutPropertiesLoose(_this$props, ["children", "in"]); var _React$Children$toArr = import_react6.default.Children.toArray(children2), first = _React$Children$toArr[0], second = _React$Children$toArr[1]; delete props.onEnter; delete props.onEntering; delete props.onEntered; delete props.onExit; delete props.onExiting; delete props.onExited; return import_react6.default.createElement(TransitionGroup_default, props, inProp ? import_react6.default.cloneElement(first, { key: "first", onEnter: this.handleEnter, onEntering: this.handleEntering, onEntered: this.handleEntered }) : import_react6.default.cloneElement(second, { key: "second", onEnter: this.handleExit, onEntering: this.handleExiting, onEntered: this.handleExited })); }; return ReplaceTransition2; }(import_react6.default.Component); ReplaceTransition.propTypes = true ? { in: import_prop_types6.default.bool.isRequired, children: function children(props, propName) { if (import_react6.default.Children.count(props[propName]) !== 2) return new Error('"' + propName + '" must be exactly two transition components.'); return null; } } : {}; // node_modules/react-transition-group/esm/SwitchTransition.js var import_react7 = __toESM(require_react()); var import_prop_types7 = __toESM(require_prop_types()); var _leaveRenders; var _enterRenders; function areChildrenDifferent(oldChildren, newChildren) { if (oldChildren === newChildren) return false; if (import_react7.default.isValidElement(oldChildren) && import_react7.default.isValidElement(newChildren) && oldChildren.key != null && oldChildren.key === newChildren.key) { return false; } return true; } var modes = { out: "out-in", in: "in-out" }; var callHook = function callHook2(element, name, cb) { return function() { var _element$props; element.props[name] && (_element$props = element.props)[name].apply(_element$props, arguments); cb(); }; }; var leaveRenders = (_leaveRenders = {}, _leaveRenders[modes.out] = function(_ref) { var current = _ref.current, changeState = _ref.changeState; return import_react7.default.cloneElement(current, { in: false, onExited: callHook(current, "onExited", function() { changeState(ENTERING, null); }) }); }, _leaveRenders[modes.in] = function(_ref2) { var current = _ref2.current, changeState = _ref2.changeState, children2 = _ref2.children; return [current, import_react7.default.cloneElement(children2, { in: true, onEntered: callHook(children2, "onEntered", function() { changeState(ENTERING); }) })]; }, _leaveRenders); var enterRenders = (_enterRenders = {}, _enterRenders[modes.out] = function(_ref3) { var children2 = _ref3.children, changeState = _ref3.changeState; return import_react7.default.cloneElement(children2, { in: true, onEntered: callHook(children2, "onEntered", function() { changeState(ENTERED, import_react7.default.cloneElement(children2, { in: true })); }) }); }, _enterRenders[modes.in] = function(_ref4) { var current = _ref4.current, children2 = _ref4.children, changeState = _ref4.changeState; return [import_react7.default.cloneElement(current, { in: false, onExited: callHook(current, "onExited", function() { changeState(ENTERED, import_react7.default.cloneElement(children2, { in: true })); }) }), import_react7.default.cloneElement(children2, { in: true })]; }, _enterRenders); var SwitchTransition = function(_React$Component) { _inheritsLoose(SwitchTransition2, _React$Component); function SwitchTransition2() { var _this; for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this; _this.state = { status: ENTERED, current: null }; _this.appeared = false; _this.changeState = function(status, current) { if (current === void 0) { current = _this.state.current; } _this.setState({ status, current }); }; return _this; } var _proto = SwitchTransition2.prototype; _proto.componentDidMount = function componentDidMount() { this.appeared = true; }; SwitchTransition2.getDerivedStateFromProps = function getDerivedStateFromProps(props, state) { if (props.children == null) { return { current: null }; } if (state.status === ENTERING && props.mode === modes.in) { return { status: ENTERING }; } if (state.current && areChildrenDifferent(state.current, props.children)) { return { status: EXITING }; } return { current: import_react7.default.cloneElement(props.children, { in: true }) }; }; _proto.render = function render() { var _this$props = this.props, children2 = _this$props.children, mode = _this$props.mode, _this$state = this.state, status = _this$state.status, current = _this$state.current; var data = { children: children2, current, changeState: this.changeState, status }; var component; switch (status) { case ENTERING: component = enterRenders[mode](data); break; case EXITING: component = leaveRenders[mode](data); break; case ENTERED: component = current; } return import_react7.default.createElement(TransitionGroupContext_default.Provider, { value: { isMounting: !this.appeared } }, component); }; return SwitchTransition2; }(import_react7.default.Component); SwitchTransition.propTypes = true ? { /** * Transition modes. * `out-in`: Current element transitions out first, then when complete, the new element transitions in. * `in-out`: New element transitions in first, then when complete, the current element transitions out. * * @type {'out-in'|'in-out'} */ mode: import_prop_types7.default.oneOf([modes.in, modes.out]), /** * Any `Transition` or `CSSTransition` component. */ children: import_prop_types7.default.oneOfType([import_prop_types7.default.element.isRequired]) } : {}; SwitchTransition.defaultProps = { mode: modes.out }; // node_modules/@mui/material/ButtonBase/Ripple.js var React8 = __toESM(require_react()); var import_prop_types8 = __toESM(require_prop_types()); var import_jsx_runtime2 = __toESM(require_jsx_runtime()); function Ripple(props) { const { className, classes, pulsate = false, rippleX, rippleY, rippleSize, in: inProp, onExited, timeout: timeout2 } = props; const [leaving, setLeaving] = React8.useState(false); const rippleClassName = clsx_default(className, classes.ripple, classes.rippleVisible, pulsate && classes.ripplePulsate); const rippleStyles = { width: rippleSize, height: rippleSize, top: -(rippleSize / 2) + rippleY, left: -(rippleSize / 2) + rippleX }; const childClassName = clsx_default(classes.child, leaving && classes.childLeaving, pulsate && classes.childPulsate); if (!inProp && !leaving) { setLeaving(true); } React8.useEffect(() => { if (!inProp && onExited != null) { const timeoutId = setTimeout(onExited, timeout2); return () => { clearTimeout(timeoutId); }; } return void 0; }, [onExited, inProp, timeout2]); return (0, import_jsx_runtime2.jsx)("span", { className: rippleClassName, style: rippleStyles, children: (0, import_jsx_runtime2.jsx)("span", { className: childClassName }) }); } true ? Ripple.propTypes = { /** * Override or extend the styles applied to the component. */ classes: import_prop_types8.default.object.isRequired, className: import_prop_types8.default.string, /** * @ignore - injected from TransitionGroup */ in: import_prop_types8.default.bool, /** * @ignore - injected from TransitionGroup */ onExited: import_prop_types8.default.func, /** * If `true`, the ripple pulsates, typically indicating the keyboard focus state of an element. */ pulsate: import_prop_types8.default.bool, /** * Diameter of the ripple. */ rippleSize: import_prop_types8.default.number, /** * Horizontal position of the ripple center. */ rippleX: import_prop_types8.default.number, /** * Vertical position of the ripple center. */ rippleY: import_prop_types8.default.number, /** * exit delay */ timeout: import_prop_types8.default.number.isRequired } : void 0; var Ripple_default = Ripple; // node_modules/@mui/material/ButtonBase/TouchRipple.js var import_jsx_runtime3 = __toESM(require_jsx_runtime()); var _excluded2 = ["center", "classes", "className"]; var _ = (t) => t; var _t; var _t2; var _t3; var _t4; var DURATION = 550; var DELAY_RIPPLE = 80; var enterKeyframe = keyframes(_t || (_t = _` 0% { transform: scale(0); opacity: 0.1; } 100% { transform: scale(1); opacity: 0.3; } `)); var exitKeyframe = keyframes(_t2 || (_t2 = _` 0% { opacity: 1; } 100% { opacity: 0; } `)); var pulsateKeyframe = keyframes(_t3 || (_t3 = _` 0% { transform: scale(1); } 50% { transform: scale(0.92); } 100% { transform: scale(1); } `)); var TouchRippleRoot = styled_default("span", { name: "MuiTouchRipple", slot: "Root" })({ overflow: "hidden", pointerEvents: "none", position: "absolute", zIndex: 0, top: 0, right: 0, bottom: 0, left: 0, borderRadius: "inherit" }); var TouchRippleRipple = styled_default(Ripple_default, { name: "MuiTouchRipple", slot: "Ripple" })(_t4 || (_t4 = _` opacity: 0; position: absolute; &.${0} { opacity: 0.3; transform: scale(1); animation-name: ${0}; animation-duration: ${0}ms; animation-timing-function: ${0}; } &.${0} { animation-duration: ${0}ms; } & .${0} { opacity: 1; display: block; width: 100%; height: 100%; border-radius: 50%; background-color: currentColor; } & .${0} { opacity: 0; animation-name: ${0}; animation-duration: ${0}ms; animation-timing-function: ${0}; } & .${0} { position: absolute; /* @noflip */ left: 0px; top: 0; animation-name: ${0}; animation-duration: 2500ms; animation-timing-function: ${0}; animation-iteration-count: infinite; animation-delay: 200ms; } `), touchRippleClasses_default.rippleVisible, enterKeyframe, DURATION, ({ theme }) => theme.transitions.easing.easeInOut, touchRippleClasses_default.ripplePulsate, ({ theme }) => theme.transitions.duration.shorter, touchRippleClasses_default.child, touchRippleClasses_default.childLeaving, exitKeyframe, DURATION, ({ theme }) => theme.transitions.easing.easeInOut, touchRippleClasses_default.childPulsate, pulsateKeyframe, ({ theme }) => theme.transitions.easing.easeInOut); var TouchRipple = React9.forwardRef(function TouchRipple2(inProps, ref) { const props = useDefaultProps({ props: inProps, name: "MuiTouchRipple" }); const { center: centerProp = false, classes = {}, className } = props, other = _objectWithoutPropertiesLoose(props, _excluded2); const [ripples, setRipples] = React9.useState([]); const nextKey = React9.useRef(0); const rippleCallback = React9.useRef(null); React9.useEffect(() => { if (rippleCallback.current) { rippleCallback.current(); rippleCallback.current = null; } }, [ripples]); const ignoringMouseDown = React9.useRef(false); const startTimer = useTimeout(); const startTimerCommit = React9.useRef(null); const container = React9.useRef(null); const startCommit = React9.useCallback((params) => { const { pulsate: pulsate2, rippleX, rippleY, rippleSize, cb } = params; setRipples((oldRipples) => [...oldRipples, (0, import_jsx_runtime3.jsx)(TouchRippleRipple, { classes: { ripple: clsx_default(classes.ripple, touchRippleClasses_default.ripple), rippleVisible: clsx_default(classes.rippleVisible, touchRippleClasses_default.rippleVisible), ripplePulsate: clsx_default(classes.ripplePulsate, touchRippleClasses_default.ripplePulsate), child: clsx_default(classes.child, touchRippleClasses_default.child), childLeaving: clsx_default(classes.childLeaving, touchRippleClasses_default.childLeaving), childPulsate: clsx_default(classes.childPulsate, touchRippleClasses_default.childPulsate) }, timeout: DURATION, pulsate: pulsate2, rippleX, rippleY, rippleSize }, nextKey.current)]); nextKey.current += 1; rippleCallback.current = cb; }, [classes]); const start2 = React9.useCallback((event = {}, options = {}, cb = () => { }) => { const { pulsate: pulsate2 = false, center = centerProp || options.pulsate, fakeElement = false // For test purposes } = options; if ((event == null ? void 0 : event.type) === "mousedown" && ignoringMouseDown.current) { ignoringMouseDown.current = false; return; } if ((event == null ? void 0 : event.type) === "touchstart") { ignoringMouseDown.current = true; } const element = fakeElement ? null : container.current; const rect = element ? element.getBoundingClientRect() : { width: 0, height: 0, left: 0, top: 0 }; let rippleX; let rippleY; let rippleSize; if (center || event === void 0 || event.clientX === 0 && event.clientY === 0 || !event.clientX && !event.touches) { rippleX = Math.round(rect.width / 2); rippleY = Math.round(rect.height / 2); } else { const { clientX, clientY } = event.touches && event.touches.length > 0 ? event.touches[0] : event; rippleX = Math.round(clientX - rect.left); rippleY = Math.round(clientY - rect.top); } if (center) { rippleSize = Math.sqrt((2 * rect.width ** 2 + rect.height ** 2) / 3); if (rippleSize % 2 === 0) { rippleSize += 1; } } else { const sizeX = Math.max(Math.abs((element ? element.clientWidth : 0) - rippleX), rippleX) * 2 + 2; const sizeY = Math.max(Math.abs((element ? element.clientHeight : 0) - rippleY), rippleY) * 2 + 2; rippleSize = Math.sqrt(sizeX ** 2 + sizeY ** 2); } if (event != null && event.touches) { if (startTimerCommit.current === null) { startTimerCommit.current = () => { startCommit({ pulsate: pulsate2, rippleX, rippleY, rippleSize, cb }); }; startTimer.start(DELAY_RIPPLE, () => { if (startTimerCommit.current) { startTimerCommit.current(); startTimerCommit.current = null; } }); } } else { startCommit({ pulsate: pulsate2, rippleX, rippleY, rippleSize, cb }); } }, [centerProp, startCommit, startTimer]); const pulsate = React9.useCallback(() => { start2({}, { pulsate: true }); }, [start2]); const stop = React9.useCallback((event, cb) => { startTimer.clear(); if ((event == null ? void 0 : event.type) === "touchend" && startTimerCommit.current) { startTimerCommit.current(); startTimerCommit.current = null; startTimer.start(0, () => { stop(event, cb); }); return; } startTimerCommit.current = null; setRipples((oldRipples) => { if (oldRipples.length > 0) { return oldRipples.slice(1); } return oldRipples; }); rippleCallback.current = cb; }, [startTimer]); React9.useImperativeHandle(ref, () => ({ pulsate, start: start2, stop }), [pulsate, start2, stop]); return (0, import_jsx_runtime3.jsx)(TouchRippleRoot, _extends({ className: clsx_default(touchRippleClasses_default.root, classes.root, className), ref: container }, other, { children: (0, import_jsx_runtime3.jsx)(TransitionGroup_default, { component: null, exit: true, children: ripples }) })); }); true ? TouchRipple.propTypes = { /** * If `true`, the ripple starts at the center of the component * rather than at the point of interaction. */ center: import_prop_types9.default.bool, /** * Override or extend the styles applied to the component. */ classes: import_prop_types9.default.object, /** * @ignore */ className: import_prop_types9.default.string } : void 0; var TouchRipple_default = TouchRipple; // node_modules/@mui/material/ButtonBase/ButtonBase.js var import_jsx_runtime4 = __toESM(require_jsx_runtime()); var import_jsx_runtime5 = __toESM(require_jsx_runtime()); var _excluded3 = ["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"]; var useUtilityClasses2 = (ownerState) => { const { disabled, focusVisible, focusVisibleClassName, classes } = ownerState; const slots = { root: ["root", disabled && "disabled", focusVisible && "focusVisible"] }; const composedClasses = composeClasses(slots, getButtonBaseUtilityClass, classes); if (focusVisible && focusVisibleClassName) { composedClasses.root += ` ${focusVisibleClassName}`; } return composedClasses; }; var ButtonBaseRoot = styled_default("button", { name: "MuiButtonBase", slot: "Root", overridesResolver: (props, styles4) => styles4.root })({ display: "inline-flex", alignItems: "center", justifyContent: "center", position: "relative", boxSizing: "border-box", WebkitTapHighlightColor: "transparent", backgroundColor: "transparent", // Reset default value // We disable the focus ring for mouse, touch and keyboard users. outline: 0, border: 0, margin: 0, // Remove the margin in Safari borderRadius: 0, padding: 0, // Remove the padding in Firefox cursor: "pointer", userSelect: "none", verticalAlign: "middle", MozAppearance: "none", // Reset WebkitAppearance: "none", // Reset textDecoration: "none", // So we take precedent over the style of a native element. color: "inherit", "&::-moz-focus-inner": { borderStyle: "none" // Remove Firefox dotted outline. }, [`&.${buttonBaseClasses_default.disabled}`]: { pointerEvents: "none", // Disable link interactions cursor: "default" }, "@media print": { colorAdjust: "exact" } }); var ButtonBase = React10.forwardRef(function ButtonBase2(inProps, ref) { const props = useDefaultProps({ props: inProps, name: "MuiButtonBase" }); const { action, centerRipple = false, children: children2, className, component = "button", disabled = false, disableRipple = false, disableTouchRipple = false, focusRipple = false, LinkComponent = "a", onBlur, onClick, onContextMenu, onDragLeave, onFocus, onFocusVisible, onKeyDown, onKeyUp, onMouseDown, onMouseLeave, onMouseUp, onTouchEnd, onTouchMove, onTouchStart, tabIndex = 0, TouchRippleProps, touchRippleRef, type } = props, other = _objectWithoutPropertiesLoose(props, _excluded3); const buttonRef = React10.useRef(null); const rippleRef = React10.useRef(null); const handleRippleRef = useForkRef_default(rippleRef, touchRippleRef); const { isFocusVisibleRef, onFocus: handleFocusVisible, onBlur: handleBlurVisible, ref: focusVisibleRef } = useIsFocusVisible_default(); const [focusVisible, setFocusVisible] = React10.useState(false); if (disabled && focusVisible) { setFocusVisible(false); } React10.useImperativeHandle(action, () => ({ focusVisible: () => { setFocusVisible(true); buttonRef.current.focus(); } }), []); const [mountedState, setMountedState] = React10.useState(false); React10.useEffect(() => { setMountedState(true); }, []); const enableTouchRipple = mountedState && !disableRipple && !disabled; React10.useEffect(() => { if (focusVisible && focusRipple && !disableRipple && mountedState) { rippleRef.current.pulsate(); } }, [disableRipple, focusRipple, focusVisible, mountedState]); function useRippleHandler(rippleAction, eventCallback, skipRippleAction = disableTouchRipple) { return useEventCallback_default2((event) => { if (eventCallback) { eventCallback(event); } const ignore = skipRippleAction; if (!ignore && rippleRef.current) { rippleRef.current[rippleAction](event); } return true; }); } const handleMouseDown = useRippleHandler("start", onMouseDown); const handleContextMenu = useRippleHandler("stop", onContextMenu); const handleDragLeave = useRippleHandler("stop", onDragLeave); const handleMouseUp = useRippleHandler("stop", onMouseUp); const handleMouseLeave = useRippleHandler("stop", (event) => { if (focusVisible) { event.preventDefault(); } if (onMouseLeave) { onMouseLeave(event); } }); const handleTouchStart = useRippleHandler("start", onTouchStart); const handleTouchEnd = useRippleHandler("stop", onTouchEnd); const handleTouchMove = useRippleHandler("stop", onTouchMove); const handleBlur = useRippleHandler("stop", (event) => { handleBlurVisible(event); if (isFocusVisibleRef.current === false) { setFocusVisible(false); } if (onBlur) { onBlur(event); } }, false); const handleFocus = useEventCallback_default2((event) => { if (!buttonRef.current) { buttonRef.current = event.currentTarget; } handleFocusVisible(event); if (isFocusVisibleRef.current === true) { setFocusVisible(true); if (onFocusVisible) { onFocusVisible(event); } } if (onFocus) { onFocus(event); } }); const isNonNativeButton = () => { const button = buttonRef.current; return component && component !== "button" && !(button.tagName === "A" && button.href); }; const keydownRef = React10.useRef(false); const handleKeyDown = useEventCallback_default2((event) => { if (focusRipple && !keydownRef.current && focusVisible && rippleRef.current && event.key === " ") { keydownRef.current = true; rippleRef.current.stop(event, () => { rippleRef.current.start(event); }); } if (event.target === event.currentTarget && isNonNativeButton() && event.key === " ") { event.preventDefault(); } if (onKeyDown) { onKeyDown(event); } if (event.target === event.currentTarget && isNonNativeButton() && event.key === "Enter" && !disabled) { event.preventDefault(); if (onClick) { onClick(event); } } }); const handleKeyUp = useEventCallback_default2((event) => { if (focusRipple && event.key === " " && rippleRef.current && focusVisible && !event.defaultPrevented) { keydownRef.current = false; rippleRef.current.stop(event, () => { rippleRef.current.pulsate(event); }); } if (onKeyUp) { onKeyUp(event); } if (onClick && event.target === event.currentTarget && isNonNativeButton() && event.key === " " && !event.defaultPrevented) { onClick(event); } }); let ComponentProp = component; if (ComponentProp === "button" && (other.href || other.to)) { ComponentProp = LinkComponent; } const buttonProps = {}; if (ComponentProp === "button") { buttonProps.type = type === void 0 ? "button" : type; buttonProps.disabled = disabled; } else { if (!other.href && !other.to) { buttonProps.role = "button"; } if (disabled) { buttonProps["aria-disabled"] = disabled; } } const handleRef = useForkRef_default(ref, focusVisibleRef, buttonRef); if (true) { React10.useEffect(() => { if (enableTouchRipple && !rippleRef.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("\n")); } }, [enableTouchRipple]); } const ownerState = _extends({}, props, { centerRipple, component, disabled, disableRipple, disableTouchRipple, focusRipple, tabIndex, focusVisible }); const classes = useUtilityClasses2(ownerState); return (0, import_jsx_runtime5.jsxs)(ButtonBaseRoot, _extends({ as: ComponentProp, className: clsx_default(classes.root, className), ownerState, onBlur: handleBlur, onClick, onContextMenu: handleContextMenu, onFocus: handleFocus, onKeyDown: handleKeyDown, onKeyUp: handleKeyUp, onMouseDown: handleMouseDown, onMouseLeave: handleMouseLeave, onMouseUp: handleMouseUp, onDragLeave: handleDragLeave, onTouchEnd: handleTouchEnd, onTouchMove: handleTouchMove, onTouchStart: handleTouchStart, ref: handleRef, tabIndex: disabled ? -1 : tabIndex, type }, buttonProps, other, { children: [children2, enableTouchRipple ? ( /* TouchRipple is only needed client-side, x2 boost on the server. */ (0, import_jsx_runtime4.jsx)(TouchRipple_default, _extends({ ref: handleRippleRef, center: centerRipple }, TouchRippleProps)) ) : null] })); }); true ? ButtonBase.propTypes = { // ┌────────────────────────────── Warning ──────────────────────────────┐ // │ These PropTypes are generated from the TypeScript type definitions. │ // │ To update them, edit the d.ts file and run `pnpm proptypes`. │ // └─────────────────────────────────────────────────────────────────────┘ /** * A ref for imperative actions. * It currently only supports `focusVisible()` action. */ action: refType_default, /** * If `true`, the ripples are centered. * They won't start at the cursor interaction position. * @default false */ centerRipple: import_prop_types10.default.bool, /** * The content of the component. */ children: import_prop_types10.default.node, /** * Override or extend the styles applied to the component. */ classes: import_prop_types10.default.object, /** * @ignore */ className: import_prop_types10.default.string, /** * The component used for the root node. * Either a string to use a HTML element or a component. */ component: elementTypeAcceptingRef_default, /** * If `true`, the component is disabled. * @default false */ disabled: import_prop_types10.default.bool, /** * If `true`, the ripple effect is disabled. * * ⚠️ Without a ripple there is no styling for :focus-visible by default. Be sure * to highlight the element by applying separate styles with the `.Mui-focusVisible` class. * @default false */ disableRipple: import_prop_types10.default.bool, /** * If `true`, the touch ripple effect is disabled. * @default false */ disableTouchRipple: import_prop_types10.default.bool, /** * If `true`, the base button will have a keyboard focus ripple. * @default false */ focusRipple: import_prop_types10.default.bool, /** * This prop can help identify which element has keyboard focus. * The class name will be applied when the element gains the focus through keyboard interaction. * It's a polyfill for the [CSS :focus-visible selector](https://drafts.csswg.org/selectors-4/#the-focus-visible-pseudo). * The rationale for using this feature [is explained here](https://github.com/WICG/focus-visible/blob/HEAD/explainer.md). * A [polyfill can be used](https://github.com/WICG/focus-visible) to apply a `focus-visible` class to other components * if needed. */ focusVisibleClassName: import_prop_types10.default.string, /** * @ignore */ href: import_prop_types10.default.any, /** * The component used to render a link when the `href` prop is provided. * @default 'a' */ LinkComponent: import_prop_types10.default.elementType, /** * @ignore */ onBlur: import_prop_types10.default.func, /** * @ignore */ onClick: import_prop_types10.default.func, /** * @ignore */ onContextMenu: import_prop_types10.default.func, /** * @ignore */ onDragLeave: import_prop_types10.default.func, /** * @ignore */ onFocus: import_prop_types10.default.func, /** * Callback fired when the component is focused with a keyboard. * We trigger a `onFocus` callback too. */ onFocusVisible: import_prop_types10.default.func, /** * @ignore */ onKeyDown: import_prop_types10.default.func, /** * @ignore */ onKeyUp: import_prop_types10.default.func, /** * @ignore */ onMouseDown: import_prop_types10.default.func, /** * @ignore */ onMouseLeave: import_prop_types10.default.func, /** * @ignore */ onMouseUp: import_prop_types10.default.func, /** * @ignore */ onTouchEnd: import_prop_types10.default.func, /** * @ignore */ onTouchMove: import_prop_types10.default.func, /** * @ignore */ onTouchStart: import_prop_types10.default.func, /** * The system prop that allows defining system overrides as well as additional CSS styles. */ sx: import_prop_types10.default.oneOfType([import_prop_types10.default.arrayOf(import_prop_types10.default.oneOfType([import_prop_types10.default.func, import_prop_types10.default.object, import_prop_types10.default.bool])), import_prop_types10.default.func, import_prop_types10.default.object]), /** * @default 0 */ tabIndex: import_prop_types10.default.number, /** * Props applied to the `TouchRipple` element. */ TouchRippleProps: import_prop_types10.default.object, /** * A ref that points to the `TouchRipple` element. */ touchRippleRef: import_prop_types10.default.oneOfType([import_prop_types10.default.func, import_prop_types10.default.shape({ current: import_prop_types10.default.shape({ pulsate: import_prop_types10.default.func.isRequired, start: import_prop_types10.default.func.isRequired, stop: import_prop_types10.default.func.isRequired }) })]), /** * @ignore */ type: import_prop_types10.default.oneOfType([import_prop_types10.default.oneOf(["button", "reset", "submit"]), import_prop_types10.default.string]) } : void 0; var ButtonBase_default = ButtonBase; // node_modules/@mui/material/IconButton/iconButtonClasses.js function getIconButtonUtilityClass(slot) { return generateUtilityClass("MuiIconButton", slot); } var iconButtonClasses = generateUtilityClasses("MuiIconButton", ["root", "disabled", "colorInherit", "colorPrimary", "colorSecondary", "colorError", "colorInfo", "colorSuccess", "colorWarning", "edgeStart", "edgeEnd", "sizeSmall", "sizeMedium", "sizeLarge"]); var iconButtonClasses_default = iconButtonClasses; // node_modules/@mui/material/IconButton/IconButton.js init_extends(); var React11 = __toESM(require_react()); var import_prop_types11 = __toESM(require_prop_types()); var import_colorManipulator2 = __toESM(require_colorManipulator()); var import_jsx_runtime6 = __toESM(require_jsx_runtime()); var _excluded4 = ["edge", "children", "className", "color", "disabled", "disableFocusRipple", "size"]; var useUtilityClasses3 = (ownerState) => { const { classes, disabled, color, edge, size } = ownerState; const slots = { root: ["root", disabled && "disabled", color !== "default" && `color${capitalize_default(color)}`, edge && `edge${capitalize_default(edge)}`, `size${capitalize_default(size)}`] }; return composeClasses(slots, getIconButtonUtilityClass, classes); }; var IconButtonRoot = styled_default(ButtonBase_default, { name: "MuiIconButton", slot: "Root", overridesResolver: (props, styles4) => { const { ownerState } = props; return [styles4.root, ownerState.color !== "default" && styles4[`color${capitalize_default(ownerState.color)}`], ownerState.edge && styles4[`edge${capitalize_default(ownerState.edge)}`], styles4[`size${capitalize_default(ownerState.size)}`]]; } })(({ theme, ownerState }) => _extends({ textAlign: "center", flex: "0 0 auto", fontSize: theme.typography.pxToRem(24), padding: 8, borderRadius: "50%", overflow: "visible", // Explicitly set the default value to solve a bug on IE11. color: (theme.vars || theme).palette.action.active, transition: theme.transitions.create("background-color", { duration: theme.transitions.duration.shortest }) }, !ownerState.disableRipple && { "&:hover": { backgroundColor: theme.vars ? `rgba(${theme.vars.palette.action.activeChannel} / ${theme.vars.palette.action.hoverOpacity})` : (0, import_colorManipulator2.alpha)(theme.palette.action.active, theme.palette.action.hoverOpacity), // Reset on touch devices, it doesn't add specificity "@media (hover: none)": { backgroundColor: "transparent" } } }, ownerState.edge === "start" && { marginLeft: ownerState.size === "small" ? -3 : -12 }, ownerState.edge === "end" && { marginRight: ownerState.size === "small" ? -3 : -12 }), ({ theme, ownerState }) => { var _palette; const palette = (_palette = (theme.vars || theme).palette) == null ? void 0 : _palette[ownerState.color]; return _extends({}, ownerState.color === "inherit" && { color: "inherit" }, ownerState.color !== "inherit" && ownerState.color !== "default" && _extends({ color: palette == null ? void 0 : palette.main }, !ownerState.disableRipple && { "&:hover": _extends({}, palette && { backgroundColor: theme.vars ? `rgba(${palette.mainChannel} / ${theme.vars.palette.action.hoverOpacity})` : (0, import_colorManipulator2.alpha)(palette.main, theme.palette.action.hoverOpacity) }, { // Reset on touch devices, it doesn't add specificity "@media (hover: none)": { backgroundColor: "transparent" } }) }), ownerState.size === "small" && { padding: 5, fontSize: theme.typography.pxToRem(18) }, ownerState.size === "large" && { padding: 12, fontSize: theme.typography.pxToRem(28) }, { [`&.${iconButtonClasses_default.disabled}`]: { backgroundColor: "transparent", color: (theme.vars || theme).palette.action.disabled } }); }); var IconButton = React11.forwardRef(function IconButton2(inProps, ref) { const props = useDefaultProps({ props: inProps, name: "MuiIconButton" }); const { edge = false, children: children2, className, color = "default", disabled = false, disableFocusRipple = false, size = "medium" } = props, other = _objectWithoutPropertiesLoose(props, _excluded4); const ownerState = _extends({}, props, { edge, color, disabled, disableFocusRipple, size }); const classes = useUtilityClasses3(ownerState); return (0, import_jsx_runtime6.jsx)(IconButtonRoot, _extends({ className: clsx_default(classes.root, className), centerRipple: true, focusRipple: !disableFocusRipple, disabled, ref }, other, { ownerState, children: children2 })); }); true ? IconButton.propTypes = { // ┌────────────────────────────── Warning ──────────────────────────────┐ // │ These PropTypes are generated from the TypeScript type definitions. │ // │ To update them, edit the d.ts file and run `pnpm proptypes`. │ // └─────────────────────────────────────────────────────────────────────┘ /** * The icon to display. */ children: chainPropTypes(import_prop_types11.default.node, (props) => { const found = React11.Children.toArray(props.children).some((child) => React11.isValidElement(child) && child.props.onClick); if (found) { return 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