{"version":3,"file":"js/306-2f7c4b214ffa24baa997.js","mappings":"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","sources":["webpack://app/./node_modules/@mui/material/Backdrop/backdropClasses.js","webpack://app/./node_modules/@mui/material/Backdrop/Backdrop.js","webpack://app/./node_modules/@mui/material/Fade/Fade.js","webpack://app/./node_modules/@mui/material/Grow/Grow.js","webpack://app/./node_modules/@mui/material/List/listClasses.js","webpack://app/./node_modules/@mui/material/List/List.js","webpack://app/./node_modules/@mui/material/List/ListContext.js","webpack://app/./node_modules/@mui/material/utils/debounce.js","webpack://app/./node_modules/@mui/material/Popover/popoverClasses.js","webpack://app/./node_modules/@mui/material/Popover/Popover.js","webpack://app/./node_modules/@mui/material/Menu/menuClasses.js","webpack://app/./node_modules/@mui/material/Menu/Menu.js","webpack://app/./node_modules/@mui/material/utils/getScrollbarSize.js","webpack://app/./node_modules/@mui/material/MenuList/MenuList.js","webpack://app/./node_modules/@mui/material/Modal/ModalManager.js","webpack://app/./node_modules/@mui/material/Modal/useModal.js","webpack://app/./node_modules/@mui/material/Modal/modalClasses.js","webpack://app/./node_modules/@mui/material/Modal/Modal.js","webpack://app/./node_modules/@mui/material/Portal/Portal.js","webpack://app/./node_modules/@mui/material/Unstable_TrapFocus/FocusTrap.js","webpack://app/./node_modules/@mui/material/node_modules/react-is/cjs/react-is.production.min.js","webpack://app/./node_modules/@mui/material/node_modules/react-is/index.js","webpack://app/./node_modules/@mui/material/transitions/utils.js","webpack://app/./node_modules/@mui/material/utils/isHostComponent.js","webpack://app/./node_modules/@mui/material/utils/ownerDocument.js","webpack://app/./node_modules/@mui/material/utils/ownerWindow.js","webpack://app/./node_modules/@mui/material/utils/useControlled.js","webpack://app/./node_modules/@mui/material/utils/useEnhancedEffect.js","webpack://app/./node_modules/@mui/material/utils/useSlot.js","webpack://app/./node_modules/@mui/utils/esm/isHostComponent/isHostComponent.js","webpack://app/./node_modules/@mui/utils/esm/appendOwnerState/appendOwnerState.js","webpack://app/./node_modules/@mui/utils/esm/createChainedFunction/createChainedFunction.js","webpack://app/./node_modules/@mui/utils/esm/debounce/debounce.js","webpack://app/./node_modules/@mui/utils/esm/extractEventHandlers/extractEventHandlers.js","webpack://app/./node_modules/@mui/utils/esm/getReactElementRef/getReactElementRef.js","webpack://app/./node_modules/@mui/utils/esm/getScrollbarSize/getScrollbarSize.js","webpack://app/./node_modules/@mui/utils/esm/omitEventHandlers/omitEventHandlers.js","webpack://app/./node_modules/@mui/utils/esm/mergeSlotProps/mergeSlotProps.js","webpack://app/./node_modules/@mui/utils/esm/ownerDocument/ownerDocument.js","webpack://app/./node_modules/@mui/utils/esm/ownerWindow/ownerWindow.js","webpack://app/./node_modules/@mui/utils/esm/resolveComponentProps/resolveComponentProps.js","webpack://app/./node_modules/@mui/utils/esm/useControlled/useControlled.js","webpack://app/./node_modules/@mui/utils/esm/useId/useId.js","webpack://app/./node_modules/@mui/utils/esm/useSlotProps/useSlotProps.js","webpack://app/./node_modules/react-transition-group/esm/config.js","webpack://app/./node_modules/react-transition-group/esm/Transition.js","webpack://app/./node_modules/react-transition-group/esm/utils/reflow.js"],"sourcesContent":["import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getBackdropUtilityClass(slot) {\n return generateUtilityClass('MuiBackdrop', slot);\n}\nconst backdropClasses = generateUtilityClasses('MuiBackdrop', ['root', 'invisible']);\nexport default backdropClasses;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { styled } from \"../zero-styled/index.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport useSlot from \"../utils/useSlot.js\";\nimport Fade from \"../Fade/index.js\";\nimport { getBackdropUtilityClass } from \"./backdropClasses.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst removeOwnerState = props => {\n const {\n ownerState,\n ...rest\n } = props;\n return rest;\n};\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n invisible\n } = ownerState;\n const slots = {\n root: ['root', invisible && 'invisible']\n };\n return composeClasses(slots, getBackdropUtilityClass, classes);\n};\nconst BackdropRoot = styled('div', {\n name: 'MuiBackdrop',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.invisible && styles.invisible];\n }\n})({\n position: 'fixed',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n right: 0,\n bottom: 0,\n top: 0,\n left: 0,\n backgroundColor: 'rgba(0, 0, 0, 0.5)',\n WebkitTapHighlightColor: 'transparent',\n variants: [{\n props: {\n invisible: true\n },\n style: {\n backgroundColor: 'transparent'\n }\n }]\n});\nconst Backdrop = /*#__PURE__*/React.forwardRef(function Backdrop(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiBackdrop'\n });\n const {\n children,\n className,\n component = 'div',\n invisible = false,\n open,\n components = {},\n componentsProps = {},\n slotProps = {},\n slots = {},\n TransitionComponent: TransitionComponentProp,\n transitionDuration,\n ...other\n } = props;\n const ownerState = {\n ...props,\n component,\n invisible\n };\n const classes = useUtilityClasses(ownerState);\n const backwardCompatibleSlots = {\n transition: TransitionComponentProp,\n root: components.Root,\n ...slots\n };\n const backwardCompatibleSlotProps = {\n ...componentsProps,\n ...slotProps\n };\n const externalForwardedProps = {\n slots: backwardCompatibleSlots,\n slotProps: backwardCompatibleSlotProps\n };\n const [RootSlot, rootProps] = useSlot('root', {\n elementType: BackdropRoot,\n externalForwardedProps,\n className: clsx(classes.root, className),\n ownerState\n });\n const [TransitionSlot, transitionProps] = useSlot('transition', {\n elementType: Fade,\n externalForwardedProps,\n ownerState\n });\n const transitionPropsRemoved = removeOwnerState(transitionProps);\n return /*#__PURE__*/_jsx(TransitionSlot, {\n in: open,\n timeout: transitionDuration,\n ...other,\n ...transitionPropsRemoved,\n children: /*#__PURE__*/_jsx(RootSlot, {\n \"aria-hidden\": true,\n ...rootProps,\n classes: classes,\n ref: ref,\n children: children\n })\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? Backdrop.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * The components used for each slot inside.\n *\n * @deprecated Use the `slots` prop instead. This prop will be removed in v7. See [Migrating from deprecated APIs](https://mui.com/material-ui/migration/migrating-from-deprecated-apis/) for more details.\n *\n * @default {}\n */\n components: PropTypes.shape({\n Root: PropTypes.elementType\n }),\n /**\n * The extra props for the slot components.\n * You can override the existing props or add new ones.\n *\n * @deprecated Use the `slotProps` prop instead. This prop will be removed in v7. See [Migrating from deprecated APIs](https://mui.com/material-ui/migration/migrating-from-deprecated-apis/) for more details.\n *\n * @default {}\n */\n componentsProps: PropTypes.shape({\n root: PropTypes.object\n }),\n /**\n * If `true`, the backdrop is invisible.\n * It can be used when rendering a popover or a custom select component.\n * @default false\n */\n invisible: PropTypes.bool,\n /**\n * If `true`, the component is shown.\n */\n open: PropTypes.bool.isRequired,\n /**\n * The props used for each slot inside.\n * @default {}\n */\n slotProps: PropTypes.shape({\n root: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n transition: PropTypes.oneOfType([PropTypes.func, PropTypes.object])\n }),\n /**\n * The components used for each slot inside.\n * @default {}\n */\n slots: PropTypes.shape({\n root: PropTypes.elementType,\n transition: PropTypes.elementType\n }),\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The component used for the transition.\n * [Follow this guide](https://mui.com/material-ui/transitions/#transitioncomponent-prop) to learn more about the requirements for this component.\n * @default Fade\n * @deprecated Use `slots.transition` instead. This prop will be removed in v7. See [Migrating from deprecated APIs](/material-ui/migration/migrating-from-deprecated-apis/) for more details.\n */\n TransitionComponent: PropTypes.elementType,\n /**\n * The duration for the transition, in milliseconds.\n * You may specify a single timeout for all transitions, or individually with an object.\n */\n transitionDuration: PropTypes.oneOfType([PropTypes.number, PropTypes.shape({\n appear: PropTypes.number,\n enter: PropTypes.number,\n exit: PropTypes.number\n })])\n} : void 0;\nexport default Backdrop;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { Transition } from 'react-transition-group';\nimport elementAcceptingRef from '@mui/utils/elementAcceptingRef';\nimport getReactElementRef from '@mui/utils/getReactElementRef';\nimport { useTheme } from \"../zero-styled/index.js\";\nimport { reflow, getTransitionProps } from \"../transitions/utils.js\";\nimport useForkRef from \"../utils/useForkRef.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst styles = {\n entering: {\n opacity: 1\n },\n entered: {\n opacity: 1\n }\n};\n\n/**\n * The Fade transition is used by the [Modal](/material-ui/react-modal/) component.\n * It uses [react-transition-group](https://github.com/reactjs/react-transition-group) internally.\n */\nconst Fade = /*#__PURE__*/React.forwardRef(function Fade(props, ref) {\n const theme = useTheme();\n const defaultTimeout = {\n enter: theme.transitions.duration.enteringScreen,\n exit: theme.transitions.duration.leavingScreen\n };\n const {\n addEndListener,\n appear = true,\n children,\n easing,\n in: inProp,\n onEnter,\n onEntered,\n onEntering,\n onExit,\n onExited,\n onExiting,\n style,\n timeout = defaultTimeout,\n // eslint-disable-next-line react/prop-types\n TransitionComponent = Transition,\n ...other\n } = props;\n const enableStrictModeCompat = true;\n const nodeRef = React.useRef(null);\n const handleRef = useForkRef(nodeRef, getReactElementRef(children), ref);\n const normalizedTransitionCallback = callback => maybeIsAppearing => {\n if (callback) {\n const node = nodeRef.current;\n\n // onEnterXxx and onExitXxx callbacks have a different arguments.length value.\n if (maybeIsAppearing === undefined) {\n callback(node);\n } else {\n callback(node, maybeIsAppearing);\n }\n }\n };\n const handleEntering = normalizedTransitionCallback(onEntering);\n const handleEnter = normalizedTransitionCallback((node, isAppearing) => {\n reflow(node); // So the animation always start from the start.\n\n const transitionProps = getTransitionProps({\n style,\n timeout,\n easing\n }, {\n mode: 'enter'\n });\n node.style.webkitTransition = theme.transitions.create('opacity', transitionProps);\n node.style.transition = theme.transitions.create('opacity', transitionProps);\n if (onEnter) {\n onEnter(node, isAppearing);\n }\n });\n const handleEntered = normalizedTransitionCallback(onEntered);\n const handleExiting = normalizedTransitionCallback(onExiting);\n const handleExit = normalizedTransitionCallback(node => {\n const transitionProps = getTransitionProps({\n style,\n timeout,\n easing\n }, {\n mode: 'exit'\n });\n node.style.webkitTransition = theme.transitions.create('opacity', transitionProps);\n node.style.transition = theme.transitions.create('opacity', transitionProps);\n if (onExit) {\n onExit(node);\n }\n });\n const handleExited = normalizedTransitionCallback(onExited);\n const handleAddEndListener = next => {\n if (addEndListener) {\n // Old call signature before `react-transition-group` implemented `nodeRef`\n addEndListener(nodeRef.current, next);\n }\n };\n return /*#__PURE__*/_jsx(TransitionComponent, {\n appear: appear,\n in: inProp,\n nodeRef: enableStrictModeCompat ? nodeRef : undefined,\n onEnter: handleEnter,\n onEntered: handleEntered,\n onEntering: handleEntering,\n onExit: handleExit,\n onExited: handleExited,\n onExiting: handleExiting,\n addEndListener: handleAddEndListener,\n timeout: timeout,\n ...other,\n children: (state, childProps) => {\n return /*#__PURE__*/React.cloneElement(children, {\n style: {\n opacity: 0,\n visibility: state === 'exited' && !inProp ? 'hidden' : undefined,\n ...styles[state],\n ...style,\n ...children.props.style\n },\n ref: handleRef,\n ...childProps\n });\n }\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? Fade.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * Add a custom transition end trigger. Called with the transitioning DOM\n * node and a done callback. Allows for more fine grained transition end\n * logic. Note: Timeouts are still used as a fallback if provided.\n */\n addEndListener: PropTypes.func,\n /**\n * Perform the enter transition when it first mounts if `in` is also `true`.\n * Set this to `false` to disable this behavior.\n * @default true\n */\n appear: PropTypes.bool,\n /**\n * A single child content element.\n */\n children: elementAcceptingRef.isRequired,\n /**\n * The transition timing function.\n * You may specify a single easing or a object containing enter and exit values.\n */\n easing: PropTypes.oneOfType([PropTypes.shape({\n enter: PropTypes.string,\n exit: PropTypes.string\n }), PropTypes.string]),\n /**\n * If `true`, the component will transition in.\n */\n in: PropTypes.bool,\n /**\n * @ignore\n */\n onEnter: PropTypes.func,\n /**\n * @ignore\n */\n onEntered: PropTypes.func,\n /**\n * @ignore\n */\n onEntering: PropTypes.func,\n /**\n * @ignore\n */\n onExit: PropTypes.func,\n /**\n * @ignore\n */\n onExited: PropTypes.func,\n /**\n * @ignore\n */\n onExiting: PropTypes.func,\n /**\n * @ignore\n */\n style: PropTypes.object,\n /**\n * The duration for the transition, in milliseconds.\n * You may specify a single timeout for all transitions, or individually with an object.\n * @default {\n * enter: theme.transitions.duration.enteringScreen,\n * exit: theme.transitions.duration.leavingScreen,\n * }\n */\n timeout: PropTypes.oneOfType([PropTypes.number, PropTypes.shape({\n appear: PropTypes.number,\n enter: PropTypes.number,\n exit: PropTypes.number\n })])\n} : void 0;\nexport default Fade;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport useTimeout from '@mui/utils/useTimeout';\nimport elementAcceptingRef from '@mui/utils/elementAcceptingRef';\nimport getReactElementRef from '@mui/utils/getReactElementRef';\nimport { Transition } from 'react-transition-group';\nimport { useTheme } from \"../zero-styled/index.js\";\nimport { getTransitionProps, reflow } from \"../transitions/utils.js\";\nimport useForkRef from \"../utils/useForkRef.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction getScale(value) {\n return `scale(${value}, ${value ** 2})`;\n}\nconst styles = {\n entering: {\n opacity: 1,\n transform: getScale(1)\n },\n entered: {\n opacity: 1,\n transform: 'none'\n }\n};\n\n/*\n TODO v6: remove\n Conditionally apply a workaround for the CSS transition bug in Safari 15.4 / WebKit browsers.\n */\nconst isWebKit154 = typeof navigator !== 'undefined' && /^((?!chrome|android).)*(safari|mobile)/i.test(navigator.userAgent) && /(os |version\\/)15(.|_)4/i.test(navigator.userAgent);\n\n/**\n * The Grow transition is used by the [Tooltip](/material-ui/react-tooltip/) and\n * [Popover](/material-ui/react-popover/) components.\n * It uses [react-transition-group](https://github.com/reactjs/react-transition-group) internally.\n */\nconst Grow = /*#__PURE__*/React.forwardRef(function Grow(props, ref) {\n const {\n addEndListener,\n appear = true,\n children,\n easing,\n in: inProp,\n onEnter,\n onEntered,\n onEntering,\n onExit,\n onExited,\n onExiting,\n style,\n timeout = 'auto',\n // eslint-disable-next-line react/prop-types\n TransitionComponent = Transition,\n ...other\n } = props;\n const timer = useTimeout();\n const autoTimeout = React.useRef();\n const theme = useTheme();\n const nodeRef = React.useRef(null);\n const handleRef = useForkRef(nodeRef, getReactElementRef(children), ref);\n const normalizedTransitionCallback = callback => maybeIsAppearing => {\n if (callback) {\n const node = nodeRef.current;\n\n // onEnterXxx and onExitXxx callbacks have a different arguments.length value.\n if (maybeIsAppearing === undefined) {\n callback(node);\n } else {\n callback(node, maybeIsAppearing);\n }\n }\n };\n const handleEntering = normalizedTransitionCallback(onEntering);\n const handleEnter = normalizedTransitionCallback((node, isAppearing) => {\n reflow(node); // So the animation always start from the start.\n\n const {\n duration: transitionDuration,\n delay,\n easing: transitionTimingFunction\n } = getTransitionProps({\n style,\n timeout,\n easing\n }, {\n mode: 'enter'\n });\n let duration;\n if (timeout === 'auto') {\n duration = theme.transitions.getAutoHeightDuration(node.clientHeight);\n autoTimeout.current = duration;\n } else {\n duration = transitionDuration;\n }\n node.style.transition = [theme.transitions.create('opacity', {\n duration,\n delay\n }), theme.transitions.create('transform', {\n duration: isWebKit154 ? duration : duration * 0.666,\n delay,\n easing: transitionTimingFunction\n })].join(',');\n if (onEnter) {\n onEnter(node, isAppearing);\n }\n });\n const handleEntered = normalizedTransitionCallback(onEntered);\n const handleExiting = normalizedTransitionCallback(onExiting);\n const handleExit = normalizedTransitionCallback(node => {\n const {\n duration: transitionDuration,\n delay,\n easing: transitionTimingFunction\n } = getTransitionProps({\n style,\n timeout,\n easing\n }, {\n mode: 'exit'\n });\n let duration;\n if (timeout === 'auto') {\n duration = theme.transitions.getAutoHeightDuration(node.clientHeight);\n autoTimeout.current = duration;\n } else {\n duration = transitionDuration;\n }\n node.style.transition = [theme.transitions.create('opacity', {\n duration,\n delay\n }), theme.transitions.create('transform', {\n duration: isWebKit154 ? duration : duration * 0.666,\n delay: isWebKit154 ? delay : delay || duration * 0.333,\n easing: transitionTimingFunction\n })].join(',');\n node.style.opacity = 0;\n node.style.transform = getScale(0.75);\n if (onExit) {\n onExit(node);\n }\n });\n const handleExited = normalizedTransitionCallback(onExited);\n const handleAddEndListener = next => {\n if (timeout === 'auto') {\n timer.start(autoTimeout.current || 0, next);\n }\n if (addEndListener) {\n // Old call signature before `react-transition-group` implemented `nodeRef`\n addEndListener(nodeRef.current, next);\n }\n };\n return /*#__PURE__*/_jsx(TransitionComponent, {\n appear: appear,\n in: inProp,\n nodeRef: nodeRef,\n onEnter: handleEnter,\n onEntered: handleEntered,\n onEntering: handleEntering,\n onExit: handleExit,\n onExited: handleExited,\n onExiting: handleExiting,\n addEndListener: handleAddEndListener,\n timeout: timeout === 'auto' ? null : timeout,\n ...other,\n children: (state, childProps) => {\n return /*#__PURE__*/React.cloneElement(children, {\n style: {\n opacity: 0,\n transform: getScale(0.75),\n visibility: state === 'exited' && !inProp ? 'hidden' : undefined,\n ...styles[state],\n ...style,\n ...children.props.style\n },\n ref: handleRef,\n ...childProps\n });\n }\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? Grow.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * Add a custom transition end trigger. Called with the transitioning DOM\n * node and a done callback. Allows for more fine grained transition end\n * logic. Note: Timeouts are still used as a fallback if provided.\n */\n addEndListener: PropTypes.func,\n /**\n * Perform the enter transition when it first mounts if `in` is also `true`.\n * Set this to `false` to disable this behavior.\n * @default true\n */\n appear: PropTypes.bool,\n /**\n * A single child content element.\n */\n children: elementAcceptingRef.isRequired,\n /**\n * The transition timing function.\n * You may specify a single easing or a object containing enter and exit values.\n */\n easing: PropTypes.oneOfType([PropTypes.shape({\n enter: PropTypes.string,\n exit: PropTypes.string\n }), PropTypes.string]),\n /**\n * If `true`, the component will transition in.\n */\n in: PropTypes.bool,\n /**\n * @ignore\n */\n onEnter: PropTypes.func,\n /**\n * @ignore\n */\n onEntered: PropTypes.func,\n /**\n * @ignore\n */\n onEntering: PropTypes.func,\n /**\n * @ignore\n */\n onExit: PropTypes.func,\n /**\n * @ignore\n */\n onExited: PropTypes.func,\n /**\n * @ignore\n */\n onExiting: PropTypes.func,\n /**\n * @ignore\n */\n style: PropTypes.object,\n /**\n * The duration for the transition, in milliseconds.\n * You may specify a single timeout for all transitions, or individually with an object.\n *\n * Set to 'auto' to automatically calculate transition time based on height.\n * @default 'auto'\n */\n timeout: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number, PropTypes.shape({\n appear: PropTypes.number,\n enter: PropTypes.number,\n exit: PropTypes.number\n })])\n} : void 0;\nif (Grow) {\n Grow.muiSupportAuto = true;\n}\nexport default Grow;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getListUtilityClass(slot) {\n return generateUtilityClass('MuiList', slot);\n}\nconst listClasses = generateUtilityClasses('MuiList', ['root', 'padding', 'dense', 'subheader']);\nexport default listClasses;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { styled } from \"../zero-styled/index.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport ListContext from \"./ListContext.js\";\nimport { getListUtilityClass } from \"./listClasses.js\";\nimport { jsxs as _jsxs, jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n disablePadding,\n dense,\n subheader\n } = ownerState;\n const slots = {\n root: ['root', !disablePadding && 'padding', dense && 'dense', subheader && 'subheader']\n };\n return composeClasses(slots, getListUtilityClass, classes);\n};\nconst ListRoot = styled('ul', {\n name: 'MuiList',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, !ownerState.disablePadding && styles.padding, ownerState.dense && styles.dense, ownerState.subheader && styles.subheader];\n }\n})({\n listStyle: 'none',\n margin: 0,\n padding: 0,\n position: 'relative',\n variants: [{\n props: ({\n ownerState\n }) => !ownerState.disablePadding,\n style: {\n paddingTop: 8,\n paddingBottom: 8\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.subheader,\n style: {\n paddingTop: 0\n }\n }]\n});\nconst List = /*#__PURE__*/React.forwardRef(function List(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiList'\n });\n const {\n children,\n className,\n component = 'ul',\n dense = false,\n disablePadding = false,\n subheader,\n ...other\n } = props;\n const context = React.useMemo(() => ({\n dense\n }), [dense]);\n const ownerState = {\n ...props,\n component,\n dense,\n disablePadding\n };\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(ListContext.Provider, {\n value: context,\n children: /*#__PURE__*/_jsxs(ListRoot, {\n as: component,\n className: clsx(classes.root, className),\n ref: ref,\n ownerState: ownerState,\n ...other,\n children: [subheader, children]\n })\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? List.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * If `true`, compact vertical padding designed for keyboard and mouse input is used for\n * the list and list items.\n * The prop is available to descendant components as the `dense` context.\n * @default false\n */\n dense: PropTypes.bool,\n /**\n * If `true`, vertical padding is removed from the list.\n * @default false\n */\n disablePadding: PropTypes.bool,\n /**\n * The content of the subheader, normally `ListSubheader`.\n */\n subheader: PropTypes.node,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default List;","'use client';\n\nimport * as React from 'react';\n\n/**\n * @ignore - internal component.\n */\nconst ListContext = /*#__PURE__*/React.createContext({});\nif (process.env.NODE_ENV !== 'production') {\n ListContext.displayName = 'ListContext';\n}\nexport default ListContext;","import debounce from '@mui/utils/debounce';\nexport default debounce;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getPopoverUtilityClass(slot) {\n return generateUtilityClass('MuiPopover', slot);\n}\nconst popoverClasses = generateUtilityClasses('MuiPopover', ['root', 'paper']);\nexport default popoverClasses;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport HTMLElementType from '@mui/utils/HTMLElementType';\nimport refType from '@mui/utils/refType';\nimport elementTypeAcceptingRef from '@mui/utils/elementTypeAcceptingRef';\nimport integerPropType from '@mui/utils/integerPropType';\nimport chainPropTypes from '@mui/utils/chainPropTypes';\nimport isHostComponent from \"../utils/isHostComponent.js\";\nimport { styled } from \"../zero-styled/index.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport debounce from \"../utils/debounce.js\";\nimport ownerDocument from \"../utils/ownerDocument.js\";\nimport ownerWindow from \"../utils/ownerWindow.js\";\nimport useForkRef from \"../utils/useForkRef.js\";\nimport Grow from \"../Grow/index.js\";\nimport Modal from \"../Modal/index.js\";\nimport PaperBase from \"../Paper/index.js\";\nimport { getPopoverUtilityClass } from \"./popoverClasses.js\";\nimport useSlot from \"../utils/useSlot.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport function getOffsetTop(rect, vertical) {\n let offset = 0;\n if (typeof vertical === 'number') {\n offset = vertical;\n } else if (vertical === 'center') {\n offset = rect.height / 2;\n } else if (vertical === 'bottom') {\n offset = rect.height;\n }\n return offset;\n}\nexport function getOffsetLeft(rect, horizontal) {\n let offset = 0;\n if (typeof horizontal === 'number') {\n offset = horizontal;\n } else if (horizontal === 'center') {\n offset = rect.width / 2;\n } else if (horizontal === 'right') {\n offset = rect.width;\n }\n return offset;\n}\nfunction getTransformOriginValue(transformOrigin) {\n return [transformOrigin.horizontal, transformOrigin.vertical].map(n => typeof n === 'number' ? `${n}px` : n).join(' ');\n}\nfunction resolveAnchorEl(anchorEl) {\n return typeof anchorEl === 'function' ? anchorEl() : anchorEl;\n}\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root'],\n paper: ['paper']\n };\n return composeClasses(slots, getPopoverUtilityClass, classes);\n};\nexport const PopoverRoot = styled(Modal, {\n name: 'MuiPopover',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({});\nexport const PopoverPaper = styled(PaperBase, {\n name: 'MuiPopover',\n slot: 'Paper',\n overridesResolver: (props, styles) => styles.paper\n})({\n position: 'absolute',\n overflowY: 'auto',\n overflowX: 'hidden',\n // So we see the popover when it's empty.\n // It's most likely on issue on userland.\n minWidth: 16,\n minHeight: 16,\n maxWidth: 'calc(100% - 32px)',\n maxHeight: 'calc(100% - 32px)',\n // We disable the focus ring for mouse, touch and keyboard users.\n outline: 0\n});\nconst Popover = /*#__PURE__*/React.forwardRef(function Popover(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiPopover'\n });\n const {\n action,\n anchorEl,\n anchorOrigin = {\n vertical: 'top',\n horizontal: 'left'\n },\n anchorPosition,\n anchorReference = 'anchorEl',\n children,\n className,\n container: containerProp,\n elevation = 8,\n marginThreshold = 16,\n open,\n PaperProps: PaperPropsProp = {},\n slots = {},\n slotProps = {},\n transformOrigin = {\n vertical: 'top',\n horizontal: 'left'\n },\n TransitionComponent = Grow,\n transitionDuration: transitionDurationProp = 'auto',\n TransitionProps: {\n onEntering,\n ...TransitionProps\n } = {},\n disableScrollLock = false,\n ...other\n } = props;\n const externalPaperSlotProps = slotProps?.paper ?? PaperPropsProp;\n const paperRef = React.useRef();\n const ownerState = {\n ...props,\n anchorOrigin,\n anchorReference,\n elevation,\n marginThreshold,\n externalPaperSlotProps,\n transformOrigin,\n TransitionComponent,\n transitionDuration: transitionDurationProp,\n TransitionProps\n };\n const classes = useUtilityClasses(ownerState);\n\n // Returns the top/left offset of the position\n // to attach to on the anchor element (or body if none is provided)\n const getAnchorOffset = React.useCallback(() => {\n if (anchorReference === 'anchorPosition') {\n if (process.env.NODE_ENV !== 'production') {\n if (!anchorPosition) {\n console.error('MUI: You need to provide a `anchorPosition` prop when using ' + '.');\n }\n }\n return anchorPosition;\n }\n const resolvedAnchorEl = resolveAnchorEl(anchorEl);\n\n // If an anchor element wasn't provided, just use the parent body element of this Popover\n const anchorElement = resolvedAnchorEl && resolvedAnchorEl.nodeType === 1 ? resolvedAnchorEl : ownerDocument(paperRef.current).body;\n const anchorRect = anchorElement.getBoundingClientRect();\n if (process.env.NODE_ENV !== 'production') {\n const box = anchorElement.getBoundingClientRect();\n if (process.env.NODE_ENV !== 'test' && box.top === 0 && box.left === 0 && box.right === 0 && box.bottom === 0) {\n console.warn(['MUI: The `anchorEl` prop provided to the component is invalid.', 'The anchor element should be part of the document layout.', \"Make sure the element is present in the document or that it's not display none.\"].join('\\n'));\n }\n }\n return {\n top: anchorRect.top + getOffsetTop(anchorRect, anchorOrigin.vertical),\n left: anchorRect.left + getOffsetLeft(anchorRect, anchorOrigin.horizontal)\n };\n }, [anchorEl, anchorOrigin.horizontal, anchorOrigin.vertical, anchorPosition, anchorReference]);\n\n // Returns the base transform origin using the element\n const getTransformOrigin = React.useCallback(elemRect => {\n return {\n vertical: getOffsetTop(elemRect, transformOrigin.vertical),\n horizontal: getOffsetLeft(elemRect, transformOrigin.horizontal)\n };\n }, [transformOrigin.horizontal, transformOrigin.vertical]);\n const getPositioningStyle = React.useCallback(element => {\n const elemRect = {\n width: element.offsetWidth,\n height: element.offsetHeight\n };\n\n // Get the transform origin point on the element itself\n const elemTransformOrigin = getTransformOrigin(elemRect);\n if (anchorReference === 'none') {\n return {\n top: null,\n left: null,\n transformOrigin: getTransformOriginValue(elemTransformOrigin)\n };\n }\n\n // Get the offset of the anchoring element\n const anchorOffset = getAnchorOffset();\n\n // Calculate element positioning\n let top = anchorOffset.top - elemTransformOrigin.vertical;\n let left = anchorOffset.left - elemTransformOrigin.horizontal;\n const bottom = top + elemRect.height;\n const right = left + elemRect.width;\n\n // Use the parent window of the anchorEl if provided\n const containerWindow = ownerWindow(resolveAnchorEl(anchorEl));\n\n // Window thresholds taking required margin into account\n const heightThreshold = containerWindow.innerHeight - marginThreshold;\n const widthThreshold = containerWindow.innerWidth - marginThreshold;\n\n // Check if the vertical axis needs shifting\n if (marginThreshold !== null && top < marginThreshold) {\n const diff = top - marginThreshold;\n top -= diff;\n elemTransformOrigin.vertical += diff;\n } else if (marginThreshold !== null && bottom > heightThreshold) {\n const diff = bottom - heightThreshold;\n top -= diff;\n elemTransformOrigin.vertical += diff;\n }\n if (process.env.NODE_ENV !== 'production') {\n if (elemRect.height > heightThreshold && elemRect.height && heightThreshold) {\n console.error(['MUI: The popover component is too tall.', `Some part of it can not be seen on the screen (${elemRect.height - heightThreshold}px).`, 'Please consider adding a `max-height` to improve the user-experience.'].join('\\n'));\n }\n }\n\n // Check if the horizontal axis needs shifting\n if (marginThreshold !== null && left < marginThreshold) {\n const diff = left - marginThreshold;\n left -= diff;\n elemTransformOrigin.horizontal += diff;\n } else if (right > widthThreshold) {\n const diff = right - widthThreshold;\n left -= diff;\n elemTransformOrigin.horizontal += diff;\n }\n return {\n top: `${Math.round(top)}px`,\n left: `${Math.round(left)}px`,\n transformOrigin: getTransformOriginValue(elemTransformOrigin)\n };\n }, [anchorEl, anchorReference, getAnchorOffset, getTransformOrigin, marginThreshold]);\n const [isPositioned, setIsPositioned] = React.useState(open);\n const setPositioningStyles = React.useCallback(() => {\n const element = paperRef.current;\n if (!element) {\n return;\n }\n const positioning = getPositioningStyle(element);\n if (positioning.top !== null) {\n element.style.setProperty('top', positioning.top);\n }\n if (positioning.left !== null) {\n element.style.left = positioning.left;\n }\n element.style.transformOrigin = positioning.transformOrigin;\n setIsPositioned(true);\n }, [getPositioningStyle]);\n React.useEffect(() => {\n if (disableScrollLock) {\n window.addEventListener('scroll', setPositioningStyles);\n }\n return () => window.removeEventListener('scroll', setPositioningStyles);\n }, [anchorEl, disableScrollLock, setPositioningStyles]);\n const handleEntering = (element, isAppearing) => {\n if (onEntering) {\n onEntering(element, isAppearing);\n }\n setPositioningStyles();\n };\n const handleExited = () => {\n setIsPositioned(false);\n };\n React.useEffect(() => {\n if (open) {\n setPositioningStyles();\n }\n });\n React.useImperativeHandle(action, () => open ? {\n updatePosition: () => {\n setPositioningStyles();\n }\n } : null, [open, setPositioningStyles]);\n React.useEffect(() => {\n if (!open) {\n return undefined;\n }\n const handleResize = debounce(() => {\n setPositioningStyles();\n });\n const containerWindow = ownerWindow(anchorEl);\n containerWindow.addEventListener('resize', handleResize);\n return () => {\n handleResize.clear();\n containerWindow.removeEventListener('resize', handleResize);\n };\n }, [anchorEl, open, setPositioningStyles]);\n let transitionDuration = transitionDurationProp;\n if (transitionDurationProp === 'auto' && !TransitionComponent.muiSupportAuto) {\n transitionDuration = undefined;\n }\n\n // If the container prop is provided, use that\n // If the anchorEl prop is provided, use its parent body element as the container\n // If neither are provided let the Modal take care of choosing the container\n const container = containerProp || (anchorEl ? ownerDocument(resolveAnchorEl(anchorEl)).body : undefined);\n const externalForwardedProps = {\n slots,\n slotProps: {\n ...slotProps,\n paper: externalPaperSlotProps\n }\n };\n const [PaperSlot, paperProps] = useSlot('paper', {\n elementType: PopoverPaper,\n externalForwardedProps,\n additionalProps: {\n elevation,\n className: clsx(classes.paper, externalPaperSlotProps?.className),\n style: isPositioned ? externalPaperSlotProps.style : {\n ...externalPaperSlotProps.style,\n opacity: 0\n }\n },\n ownerState\n });\n const [RootSlot, {\n slotProps: rootSlotPropsProp,\n ...rootProps\n }] = useSlot('root', {\n elementType: PopoverRoot,\n externalForwardedProps,\n additionalProps: {\n slotProps: {\n backdrop: {\n invisible: true\n }\n },\n container,\n open\n },\n ownerState,\n className: clsx(classes.root, className)\n });\n const handlePaperRef = useForkRef(paperRef, paperProps.ref);\n return /*#__PURE__*/_jsx(RootSlot, {\n ...rootProps,\n ...(!isHostComponent(RootSlot) && {\n slotProps: rootSlotPropsProp,\n disableScrollLock\n }),\n ...other,\n ref: ref,\n children: /*#__PURE__*/_jsx(TransitionComponent, {\n appear: true,\n in: open,\n onEntering: handleEntering,\n onExited: handleExited,\n timeout: transitionDuration,\n ...TransitionProps,\n children: /*#__PURE__*/_jsx(PaperSlot, {\n ...paperProps,\n ref: handlePaperRef,\n children: children\n })\n })\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? Popover.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * A ref for imperative actions.\n * It currently only supports updatePosition() action.\n */\n action: refType,\n /**\n * An HTML element, [PopoverVirtualElement](https://mui.com/material-ui/react-popover/#virtual-element),\n * or a function that returns either.\n * It's used to set the position of the popover.\n */\n anchorEl: chainPropTypes(PropTypes.oneOfType([HTMLElementType, PropTypes.func]), props => {\n if (props.open && (!props.anchorReference || props.anchorReference === 'anchorEl')) {\n const resolvedAnchorEl = resolveAnchorEl(props.anchorEl);\n if (resolvedAnchorEl && resolvedAnchorEl.nodeType === 1) {\n const box = resolvedAnchorEl.getBoundingClientRect();\n if (process.env.NODE_ENV !== 'test' && box.top === 0 && box.left === 0 && box.right === 0 && box.bottom === 0) {\n return new Error(['MUI: The `anchorEl` prop provided to the component is invalid.', 'The anchor element should be part of the document layout.', \"Make sure the element is present in the document or that it's not display none.\"].join('\\n'));\n }\n } else {\n return new Error(['MUI: The `anchorEl` prop provided to the component is invalid.', `It should be an Element or PopoverVirtualElement instance but it's \\`${resolvedAnchorEl}\\` instead.`].join('\\n'));\n }\n }\n return null;\n }),\n /**\n * This is the point on the anchor where the popover's\n * `anchorEl` will attach to. This is not used when the\n * anchorReference is 'anchorPosition'.\n *\n * Options:\n * vertical: [top, center, bottom];\n * horizontal: [left, center, right].\n * @default {\n * vertical: 'top',\n * horizontal: 'left',\n * }\n */\n anchorOrigin: PropTypes.shape({\n horizontal: PropTypes.oneOfType([PropTypes.oneOf(['center', 'left', 'right']), PropTypes.number]).isRequired,\n vertical: PropTypes.oneOfType([PropTypes.oneOf(['bottom', 'center', 'top']), PropTypes.number]).isRequired\n }),\n /**\n * This is the position that may be used to set the position of the popover.\n * The coordinates are relative to the application's client area.\n */\n anchorPosition: PropTypes.shape({\n left: PropTypes.number.isRequired,\n top: PropTypes.number.isRequired\n }),\n /**\n * This determines which anchor prop to refer to when setting\n * the position of the popover.\n * @default 'anchorEl'\n */\n anchorReference: PropTypes.oneOf(['anchorEl', 'anchorPosition', 'none']),\n /**\n * A backdrop component. This prop enables custom backdrop rendering.\n * @deprecated Use `slotProps.root.slots.backdrop` instead. While this prop currently works, it will be removed in the next major version.\n * Use the `slotProps.root.slots.backdrop` prop to make your application ready for the next version of Material UI.\n * @default styled(Backdrop, {\n * name: 'MuiModal',\n * slot: 'Backdrop',\n * overridesResolver: (props, styles) => {\n * return styles.backdrop;\n * },\n * })({\n * zIndex: -1,\n * })\n */\n BackdropComponent: PropTypes.elementType,\n /**\n * Props applied to the [`Backdrop`](/material-ui/api/backdrop/) element.\n * @deprecated Use `slotProps.root.slotProps.backdrop` instead.\n */\n BackdropProps: PropTypes.object,\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * An HTML element, component instance, or function that returns either.\n * The `container` will passed to the Modal component.\n *\n * By default, it uses the body of the anchorEl's top-level document object,\n * so it's simply `document.body` most of the time.\n */\n container: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([HTMLElementType, PropTypes.func]),\n /**\n * Disable the scroll lock behavior.\n * @default false\n */\n disableScrollLock: PropTypes.bool,\n /**\n * The elevation of the popover.\n * @default 8\n */\n elevation: integerPropType,\n /**\n * Specifies how close to the edge of the window the popover can appear.\n * If null, the popover will not be constrained by the window.\n * @default 16\n */\n marginThreshold: PropTypes.number,\n /**\n * Callback fired when the component requests to be closed.\n * The `reason` parameter can optionally be used to control the response to `onClose`.\n */\n onClose: PropTypes.func,\n /**\n * If `true`, the component is shown.\n */\n open: PropTypes.bool.isRequired,\n /**\n * Props applied to the [`Paper`](https://mui.com/material-ui/api/paper/) element.\n *\n * This prop is an alias for `slotProps.paper` and will be overriden by it if both are used.\n * @deprecated Use `slotProps.paper` instead.\n *\n * @default {}\n */\n PaperProps: PropTypes /* @typescript-to-proptypes-ignore */.shape({\n component: elementTypeAcceptingRef\n }),\n /**\n * The props used for each slot inside.\n * @default {}\n */\n slotProps: PropTypes.shape({\n paper: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n root: PropTypes.oneOfType([PropTypes.func, PropTypes.object])\n }),\n /**\n * The components used for each slot inside.\n * @default {}\n */\n slots: PropTypes.shape({\n paper: PropTypes.elementType,\n root: PropTypes.elementType\n }),\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * This is the point on the popover which\n * will attach to the anchor's origin.\n *\n * Options:\n * vertical: [top, center, bottom, x(px)];\n * horizontal: [left, center, right, x(px)].\n * @default {\n * vertical: 'top',\n * horizontal: 'left',\n * }\n */\n transformOrigin: PropTypes.shape({\n horizontal: PropTypes.oneOfType([PropTypes.oneOf(['center', 'left', 'right']), PropTypes.number]).isRequired,\n vertical: PropTypes.oneOfType([PropTypes.oneOf(['bottom', 'center', 'top']), PropTypes.number]).isRequired\n }),\n /**\n * The component used for the transition.\n * [Follow this guide](https://mui.com/material-ui/transitions/#transitioncomponent-prop) to learn more about the requirements for this component.\n * @default Grow\n */\n TransitionComponent: PropTypes.elementType,\n /**\n * Set to 'auto' to automatically calculate transition time based on height.\n * @default 'auto'\n */\n transitionDuration: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number, PropTypes.shape({\n appear: PropTypes.number,\n enter: PropTypes.number,\n exit: PropTypes.number\n })]),\n /**\n * Props applied to the transition element.\n * By default, the element is based on this [`Transition`](https://reactcommunity.org/react-transition-group/transition/) component.\n * @default {}\n */\n TransitionProps: PropTypes.object\n} : void 0;\nexport default Popover;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getMenuUtilityClass(slot) {\n return generateUtilityClass('MuiMenu', slot);\n}\nconst menuClasses = generateUtilityClasses('MuiMenu', ['root', 'paper', 'list']);\nexport default menuClasses;","'use client';\n\nimport * as React from 'react';\nimport { isFragment } from 'react-is';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport HTMLElementType from '@mui/utils/HTMLElementType';\nimport { useRtl } from '@mui/system/RtlProvider';\nimport useSlotProps from '@mui/utils/useSlotProps';\nimport MenuList from \"../MenuList/index.js\";\nimport Popover, { PopoverPaper } from \"../Popover/index.js\";\nimport rootShouldForwardProp from \"../styles/rootShouldForwardProp.js\";\nimport { styled } from \"../zero-styled/index.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport { getMenuUtilityClass } from \"./menuClasses.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst RTL_ORIGIN = {\n vertical: 'top',\n horizontal: 'right'\n};\nconst LTR_ORIGIN = {\n vertical: 'top',\n horizontal: 'left'\n};\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root'],\n paper: ['paper'],\n list: ['list']\n };\n return composeClasses(slots, getMenuUtilityClass, classes);\n};\nconst MenuRoot = styled(Popover, {\n shouldForwardProp: prop => rootShouldForwardProp(prop) || prop === 'classes',\n name: 'MuiMenu',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({});\nexport const MenuPaper = styled(PopoverPaper, {\n name: 'MuiMenu',\n slot: 'Paper',\n overridesResolver: (props, styles) => styles.paper\n})({\n // specZ: The maximum height of a simple menu should be one or more rows less than the view\n // height. This ensures a tappable area outside of the simple menu with which to dismiss\n // the menu.\n maxHeight: 'calc(100% - 96px)',\n // Add iOS momentum scrolling for iOS < 13.0\n WebkitOverflowScrolling: 'touch'\n});\nconst MenuMenuList = styled(MenuList, {\n name: 'MuiMenu',\n slot: 'List',\n overridesResolver: (props, styles) => styles.list\n})({\n // We disable the focus ring for mouse, touch and keyboard users.\n outline: 0\n});\nconst Menu = /*#__PURE__*/React.forwardRef(function Menu(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiMenu'\n });\n const {\n autoFocus = true,\n children,\n className,\n disableAutoFocusItem = false,\n MenuListProps = {},\n onClose,\n open,\n PaperProps = {},\n PopoverClasses,\n transitionDuration = 'auto',\n TransitionProps: {\n onEntering,\n ...TransitionProps\n } = {},\n variant = 'selectedMenu',\n slots = {},\n slotProps = {},\n ...other\n } = props;\n const isRtl = useRtl();\n const ownerState = {\n ...props,\n autoFocus,\n disableAutoFocusItem,\n MenuListProps,\n onEntering,\n PaperProps,\n transitionDuration,\n TransitionProps,\n variant\n };\n const classes = useUtilityClasses(ownerState);\n const autoFocusItem = autoFocus && !disableAutoFocusItem && open;\n const menuListActionsRef = React.useRef(null);\n const handleEntering = (element, isAppearing) => {\n if (menuListActionsRef.current) {\n menuListActionsRef.current.adjustStyleForScrollbar(element, {\n direction: isRtl ? 'rtl' : 'ltr'\n });\n }\n if (onEntering) {\n onEntering(element, isAppearing);\n }\n };\n const handleListKeyDown = event => {\n if (event.key === 'Tab') {\n event.preventDefault();\n if (onClose) {\n onClose(event, 'tabKeyDown');\n }\n }\n };\n\n /**\n * the index of the item should receive focus\n * in a `variant=\"selectedMenu\"` it's the first `selected` item\n * otherwise it's the very first item.\n */\n let activeItemIndex = -1;\n // since we inject focus related props into children we have to do a lookahead\n // to check if there is a `selected` item. We're looking for the last `selected`\n // item and use the first valid item as a fallback\n React.Children.map(children, (child, index) => {\n if (! /*#__PURE__*/React.isValidElement(child)) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n if (isFragment(child)) {\n console.error([\"MUI: The Menu component doesn't accept a Fragment as a child.\", 'Consider providing an array instead.'].join('\\n'));\n }\n }\n if (!child.props.disabled) {\n if (variant === 'selectedMenu' && child.props.selected) {\n activeItemIndex = index;\n } else if (activeItemIndex === -1) {\n activeItemIndex = index;\n }\n }\n });\n const PaperSlot = slots.paper ?? MenuPaper;\n const paperExternalSlotProps = slotProps.paper ?? PaperProps;\n const rootSlotProps = useSlotProps({\n elementType: slots.root,\n externalSlotProps: slotProps.root,\n ownerState,\n className: [classes.root, className]\n });\n const paperSlotProps = useSlotProps({\n elementType: PaperSlot,\n externalSlotProps: paperExternalSlotProps,\n ownerState,\n className: classes.paper\n });\n return /*#__PURE__*/_jsx(MenuRoot, {\n onClose: onClose,\n anchorOrigin: {\n vertical: 'bottom',\n horizontal: isRtl ? 'right' : 'left'\n },\n transformOrigin: isRtl ? RTL_ORIGIN : LTR_ORIGIN,\n slots: {\n paper: PaperSlot,\n root: slots.root\n },\n slotProps: {\n root: rootSlotProps,\n paper: paperSlotProps\n },\n open: open,\n ref: ref,\n transitionDuration: transitionDuration,\n TransitionProps: {\n onEntering: handleEntering,\n ...TransitionProps\n },\n ownerState: ownerState,\n ...other,\n classes: PopoverClasses,\n children: /*#__PURE__*/_jsx(MenuMenuList, {\n onKeyDown: handleListKeyDown,\n actions: menuListActionsRef,\n autoFocus: autoFocus && (activeItemIndex === -1 || disableAutoFocusItem),\n autoFocusItem: autoFocusItem,\n variant: variant,\n ...MenuListProps,\n className: clsx(classes.list, MenuListProps.className),\n children: children\n })\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? Menu.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * An HTML element, or a function that returns one.\n * It's used to set the position of the menu.\n */\n anchorEl: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([HTMLElementType, PropTypes.func]),\n /**\n * If `true` (Default) will focus the `[role=\"menu\"]` if no focusable child is found. Disabled\n * children are not focusable. If you set this prop to `false` focus will be placed\n * on the parent modal container. This has severe accessibility implications\n * and should only be considered if you manage focus otherwise.\n * @default true\n */\n autoFocus: PropTypes.bool,\n /**\n * Menu contents, normally `MenuItem`s.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * When opening the menu will not focus the active item but the `[role=\"menu\"]`\n * unless `autoFocus` is also set to `false`. Not using the default means not\n * following WAI-ARIA authoring practices. Please be considerate about possible\n * accessibility implications.\n * @default false\n */\n disableAutoFocusItem: PropTypes.bool,\n /**\n * Props applied to the [`MenuList`](https://mui.com/material-ui/api/menu-list/) element.\n * @default {}\n */\n MenuListProps: PropTypes.object,\n /**\n * Callback fired when the component requests to be closed.\n *\n * @param {object} event The event source of the callback.\n * @param {string} reason Can be: `\"escapeKeyDown\"`, `\"backdropClick\"`, `\"tabKeyDown\"`.\n */\n onClose: PropTypes.func,\n /**\n * If `true`, the component is shown.\n */\n open: PropTypes.bool.isRequired,\n /**\n * @ignore\n */\n PaperProps: PropTypes.object,\n /**\n * `classes` prop applied to the [`Popover`](https://mui.com/material-ui/api/popover/) element.\n */\n PopoverClasses: PropTypes.object,\n /**\n * The props used for each slot inside.\n * @default {}\n */\n slotProps: PropTypes.shape({\n paper: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n root: PropTypes.oneOfType([PropTypes.func, PropTypes.object])\n }),\n /**\n * The components used for each slot inside.\n * @default {}\n */\n slots: PropTypes.shape({\n paper: PropTypes.elementType,\n root: PropTypes.elementType\n }),\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The length of the transition in `ms`, or 'auto'\n * @default 'auto'\n */\n transitionDuration: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number, PropTypes.shape({\n appear: PropTypes.number,\n enter: PropTypes.number,\n exit: PropTypes.number\n })]),\n /**\n * Props applied to the transition element.\n * By default, the element is based on this [`Transition`](https://reactcommunity.org/react-transition-group/transition/) component.\n * @default {}\n */\n TransitionProps: PropTypes.object,\n /**\n * The variant to use. Use `menu` to prevent selected items from impacting the initial focus.\n * @default 'selectedMenu'\n */\n variant: PropTypes.oneOf(['menu', 'selectedMenu'])\n} : void 0;\nexport default Menu;","import getScrollbarSize from '@mui/utils/getScrollbarSize';\nexport default getScrollbarSize;","'use client';\n\nimport * as React from 'react';\nimport { isFragment } from 'react-is';\nimport PropTypes from 'prop-types';\nimport ownerDocument from \"../utils/ownerDocument.js\";\nimport List from \"../List/index.js\";\nimport getScrollbarSize from \"../utils/getScrollbarSize.js\";\nimport useForkRef from \"../utils/useForkRef.js\";\nimport useEnhancedEffect from \"../utils/useEnhancedEffect.js\";\nimport { ownerWindow } from \"../utils/index.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction nextItem(list, item, disableListWrap) {\n if (list === item) {\n return list.firstChild;\n }\n if (item && item.nextElementSibling) {\n return item.nextElementSibling;\n }\n return disableListWrap ? null : list.firstChild;\n}\nfunction previousItem(list, item, disableListWrap) {\n if (list === item) {\n return disableListWrap ? list.firstChild : list.lastChild;\n }\n if (item && item.previousElementSibling) {\n return item.previousElementSibling;\n }\n return disableListWrap ? null : list.lastChild;\n}\nfunction textCriteriaMatches(nextFocus, textCriteria) {\n if (textCriteria === undefined) {\n return true;\n }\n let text = nextFocus.innerText;\n if (text === undefined) {\n // jsdom doesn't support innerText\n text = nextFocus.textContent;\n }\n text = text.trim().toLowerCase();\n if (text.length === 0) {\n return false;\n }\n if (textCriteria.repeating) {\n return text[0] === textCriteria.keys[0];\n }\n return text.startsWith(textCriteria.keys.join(''));\n}\nfunction moveFocus(list, currentFocus, disableListWrap, disabledItemsFocusable, traversalFunction, textCriteria) {\n let wrappedOnce = false;\n let nextFocus = traversalFunction(list, currentFocus, currentFocus ? disableListWrap : false);\n while (nextFocus) {\n // Prevent infinite loop.\n if (nextFocus === list.firstChild) {\n if (wrappedOnce) {\n return false;\n }\n wrappedOnce = true;\n }\n\n // Same logic as useAutocomplete.js\n const nextFocusDisabled = disabledItemsFocusable ? false : nextFocus.disabled || nextFocus.getAttribute('aria-disabled') === 'true';\n if (!nextFocus.hasAttribute('tabindex') || !textCriteriaMatches(nextFocus, textCriteria) || nextFocusDisabled) {\n // Move to the next element.\n nextFocus = traversalFunction(list, nextFocus, disableListWrap);\n } else {\n nextFocus.focus();\n return true;\n }\n }\n return false;\n}\n\n/**\n * A permanently displayed menu following https://www.w3.org/WAI/ARIA/apg/patterns/menu-button/.\n * It's exposed to help customization of the [`Menu`](/material-ui/api/menu/) component if you\n * use it separately you need to move focus into the component manually. Once\n * the focus is placed inside the component it is fully keyboard accessible.\n */\nconst MenuList = /*#__PURE__*/React.forwardRef(function MenuList(props, ref) {\n const {\n // private\n // eslint-disable-next-line react/prop-types\n actions,\n autoFocus = false,\n autoFocusItem = false,\n children,\n className,\n disabledItemsFocusable = false,\n disableListWrap = false,\n onKeyDown,\n variant = 'selectedMenu',\n ...other\n } = props;\n const listRef = React.useRef(null);\n const textCriteriaRef = React.useRef({\n keys: [],\n repeating: true,\n previousKeyMatched: true,\n lastTime: null\n });\n useEnhancedEffect(() => {\n if (autoFocus) {\n listRef.current.focus();\n }\n }, [autoFocus]);\n React.useImperativeHandle(actions, () => ({\n adjustStyleForScrollbar: (containerElement, {\n direction\n }) => {\n // Let's ignore that piece of logic if users are already overriding the width\n // of the menu.\n const noExplicitWidth = !listRef.current.style.width;\n if (containerElement.clientHeight < listRef.current.clientHeight && noExplicitWidth) {\n const scrollbarSize = `${getScrollbarSize(ownerWindow(containerElement))}px`;\n listRef.current.style[direction === 'rtl' ? 'paddingLeft' : 'paddingRight'] = scrollbarSize;\n listRef.current.style.width = `calc(100% + ${scrollbarSize})`;\n }\n return listRef.current;\n }\n }), []);\n const handleKeyDown = event => {\n const list = listRef.current;\n const key = event.key;\n const isModifierKeyPressed = event.ctrlKey || event.metaKey || event.altKey;\n if (isModifierKeyPressed) {\n if (onKeyDown) {\n onKeyDown(event);\n }\n return;\n }\n\n /**\n * @type {Element} - will always be defined since we are in a keydown handler\n * attached to an element. A keydown event is either dispatched to the activeElement\n * or document.body or document.documentElement. Only the first case will\n * trigger this specific handler.\n */\n const currentFocus = ownerDocument(list).activeElement;\n if (key === 'ArrowDown') {\n // Prevent scroll of the page\n event.preventDefault();\n moveFocus(list, currentFocus, disableListWrap, disabledItemsFocusable, nextItem);\n } else if (key === 'ArrowUp') {\n event.preventDefault();\n moveFocus(list, currentFocus, disableListWrap, disabledItemsFocusable, previousItem);\n } else if (key === 'Home') {\n event.preventDefault();\n moveFocus(list, null, disableListWrap, disabledItemsFocusable, nextItem);\n } else if (key === 'End') {\n event.preventDefault();\n moveFocus(list, null, disableListWrap, disabledItemsFocusable, previousItem);\n } else if (key.length === 1) {\n const criteria = textCriteriaRef.current;\n const lowerKey = key.toLowerCase();\n const currTime = performance.now();\n if (criteria.keys.length > 0) {\n // Reset\n if (currTime - criteria.lastTime > 500) {\n criteria.keys = [];\n criteria.repeating = true;\n criteria.previousKeyMatched = true;\n } else if (criteria.repeating && lowerKey !== criteria.keys[0]) {\n criteria.repeating = false;\n }\n }\n criteria.lastTime = currTime;\n criteria.keys.push(lowerKey);\n const keepFocusOnCurrent = currentFocus && !criteria.repeating && textCriteriaMatches(currentFocus, criteria);\n if (criteria.previousKeyMatched && (keepFocusOnCurrent || moveFocus(list, currentFocus, false, disabledItemsFocusable, nextItem, criteria))) {\n event.preventDefault();\n } else {\n criteria.previousKeyMatched = false;\n }\n }\n if (onKeyDown) {\n onKeyDown(event);\n }\n };\n const handleRef = useForkRef(listRef, ref);\n\n /**\n * the index of the item should receive focus\n * in a `variant=\"selectedMenu\"` it's the first `selected` item\n * otherwise it's the very first item.\n */\n let activeItemIndex = -1;\n // since we inject focus related props into children we have to do a lookahead\n // to check if there is a `selected` item. We're looking for the last `selected`\n // item and use the first valid item as a fallback\n React.Children.forEach(children, (child, index) => {\n if (! /*#__PURE__*/React.isValidElement(child)) {\n if (activeItemIndex === index) {\n activeItemIndex += 1;\n if (activeItemIndex >= children.length) {\n // there are no focusable items within the list.\n activeItemIndex = -1;\n }\n }\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n if (isFragment(child)) {\n console.error([\"MUI: The Menu component doesn't accept a Fragment as a child.\", 'Consider providing an array instead.'].join('\\n'));\n }\n }\n if (!child.props.disabled) {\n if (variant === 'selectedMenu' && child.props.selected) {\n activeItemIndex = index;\n } else if (activeItemIndex === -1) {\n activeItemIndex = index;\n }\n }\n if (activeItemIndex === index && (child.props.disabled || child.props.muiSkipListHighlight || child.type.muiSkipListHighlight)) {\n activeItemIndex += 1;\n if (activeItemIndex >= children.length) {\n // there are no focusable items within the list.\n activeItemIndex = -1;\n }\n }\n });\n const items = React.Children.map(children, (child, index) => {\n if (index === activeItemIndex) {\n const newChildProps = {};\n if (autoFocusItem) {\n newChildProps.autoFocus = true;\n }\n if (child.props.tabIndex === undefined && variant === 'selectedMenu') {\n newChildProps.tabIndex = 0;\n }\n return /*#__PURE__*/React.cloneElement(child, newChildProps);\n }\n return child;\n });\n return /*#__PURE__*/_jsx(List, {\n role: \"menu\",\n ref: handleRef,\n className: className,\n onKeyDown: handleKeyDown,\n tabIndex: autoFocus ? 0 : -1,\n ...other,\n children: items\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? MenuList.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * If `true`, will focus the `[role=\"menu\"]` container and move into tab order.\n * @default false\n */\n autoFocus: PropTypes.bool,\n /**\n * If `true`, will focus the first menuitem if `variant=\"menu\"` or selected item\n * if `variant=\"selectedMenu\"`.\n * @default false\n */\n autoFocusItem: PropTypes.bool,\n /**\n * MenuList contents, normally `MenuItem`s.\n */\n children: PropTypes.node,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * If `true`, will allow focus on disabled items.\n * @default false\n */\n disabledItemsFocusable: PropTypes.bool,\n /**\n * If `true`, the menu items will not wrap focus.\n * @default false\n */\n disableListWrap: PropTypes.bool,\n /**\n * @ignore\n */\n onKeyDown: PropTypes.func,\n /**\n * The variant to use. Use `menu` to prevent selected items from impacting the initial focus\n * and the vertical alignment relative to the anchor element.\n * @default 'selectedMenu'\n */\n variant: PropTypes.oneOf(['menu', 'selectedMenu'])\n} : void 0;\nexport default MenuList;","import { unstable_ownerWindow as ownerWindow, unstable_ownerDocument as ownerDocument, unstable_getScrollbarSize as getScrollbarSize } from '@mui/utils';\n// Is a vertical scrollbar displayed?\nfunction isOverflowing(container) {\n const doc = ownerDocument(container);\n if (doc.body === container) {\n return ownerWindow(container).innerWidth > doc.documentElement.clientWidth;\n }\n return container.scrollHeight > container.clientHeight;\n}\nexport function ariaHidden(element, hide) {\n if (hide) {\n element.setAttribute('aria-hidden', 'true');\n } else {\n element.removeAttribute('aria-hidden');\n }\n}\nfunction getPaddingRight(element) {\n return parseInt(ownerWindow(element).getComputedStyle(element).paddingRight, 10) || 0;\n}\nfunction isAriaHiddenForbiddenOnElement(element) {\n // The forbidden HTML tags are the ones from ARIA specification that\n // can be children of body and can't have aria-hidden attribute.\n // cf. https://www.w3.org/TR/html-aria/#docconformance\n const forbiddenTagNames = ['TEMPLATE', 'SCRIPT', 'STYLE', 'LINK', 'MAP', 'META', 'NOSCRIPT', 'PICTURE', 'COL', 'COLGROUP', 'PARAM', 'SLOT', 'SOURCE', 'TRACK'];\n const isForbiddenTagName = forbiddenTagNames.includes(element.tagName);\n const isInputHidden = element.tagName === 'INPUT' && element.getAttribute('type') === 'hidden';\n return isForbiddenTagName || isInputHidden;\n}\nfunction ariaHiddenSiblings(container, mountElement, currentElement, elementsToExclude, hide) {\n const blacklist = [mountElement, currentElement, ...elementsToExclude];\n [].forEach.call(container.children, element => {\n const isNotExcludedElement = !blacklist.includes(element);\n const isNotForbiddenElement = !isAriaHiddenForbiddenOnElement(element);\n if (isNotExcludedElement && isNotForbiddenElement) {\n ariaHidden(element, hide);\n }\n });\n}\nfunction findIndexOf(items, callback) {\n let idx = -1;\n items.some((item, index) => {\n if (callback(item)) {\n idx = index;\n return true;\n }\n return false;\n });\n return idx;\n}\nfunction handleContainer(containerInfo, props) {\n const restoreStyle = [];\n const container = containerInfo.container;\n if (!props.disableScrollLock) {\n if (isOverflowing(container)) {\n // Compute the size before applying overflow hidden to avoid any scroll jumps.\n const scrollbarSize = getScrollbarSize(ownerWindow(container));\n restoreStyle.push({\n value: container.style.paddingRight,\n property: 'padding-right',\n el: container\n });\n // Use computed style, here to get the real padding to add our scrollbar width.\n container.style.paddingRight = `${getPaddingRight(container) + scrollbarSize}px`;\n\n // .mui-fixed is a global helper.\n const fixedElements = ownerDocument(container).querySelectorAll('.mui-fixed');\n [].forEach.call(fixedElements, element => {\n restoreStyle.push({\n value: element.style.paddingRight,\n property: 'padding-right',\n el: element\n });\n element.style.paddingRight = `${getPaddingRight(element) + scrollbarSize}px`;\n });\n }\n let scrollContainer;\n if (container.parentNode instanceof DocumentFragment) {\n scrollContainer = ownerDocument(container).body;\n } else {\n // Support html overflow-y: auto for scroll stability between pages\n // https://css-tricks.com/snippets/css/force-vertical-scrollbar/\n const parent = container.parentElement;\n const containerWindow = ownerWindow(container);\n scrollContainer = parent?.nodeName === 'HTML' && containerWindow.getComputedStyle(parent).overflowY === 'scroll' ? parent : container;\n }\n\n // Block the scroll even if no scrollbar is visible to account for mobile keyboard\n // screensize shrink.\n restoreStyle.push({\n value: scrollContainer.style.overflow,\n property: 'overflow',\n el: scrollContainer\n }, {\n value: scrollContainer.style.overflowX,\n property: 'overflow-x',\n el: scrollContainer\n }, {\n value: scrollContainer.style.overflowY,\n property: 'overflow-y',\n el: scrollContainer\n });\n scrollContainer.style.overflow = 'hidden';\n }\n const restore = () => {\n restoreStyle.forEach(({\n value,\n el,\n property\n }) => {\n if (value) {\n el.style.setProperty(property, value);\n } else {\n el.style.removeProperty(property);\n }\n });\n };\n return restore;\n}\nfunction getHiddenSiblings(container) {\n const hiddenSiblings = [];\n [].forEach.call(container.children, element => {\n if (element.getAttribute('aria-hidden') === 'true') {\n hiddenSiblings.push(element);\n }\n });\n return hiddenSiblings;\n}\n/**\n * @ignore - do not document.\n *\n * Proper state management for containers and the modals in those containers.\n * Simplified, but inspired by react-overlay's ModalManager class.\n * Used by the Modal to ensure proper styling of containers.\n */\nexport class ModalManager {\n constructor() {\n this.modals = [];\n this.containers = [];\n }\n add(modal, container) {\n let modalIndex = this.modals.indexOf(modal);\n if (modalIndex !== -1) {\n return modalIndex;\n }\n modalIndex = this.modals.length;\n this.modals.push(modal);\n\n // If the modal we are adding is already in the DOM.\n if (modal.modalRef) {\n ariaHidden(modal.modalRef, false);\n }\n const hiddenSiblings = getHiddenSiblings(container);\n ariaHiddenSiblings(container, modal.mount, modal.modalRef, hiddenSiblings, true);\n const containerIndex = findIndexOf(this.containers, item => item.container === container);\n if (containerIndex !== -1) {\n this.containers[containerIndex].modals.push(modal);\n return modalIndex;\n }\n this.containers.push({\n modals: [modal],\n container,\n restore: null,\n hiddenSiblings\n });\n return modalIndex;\n }\n mount(modal, props) {\n const containerIndex = findIndexOf(this.containers, item => item.modals.includes(modal));\n const containerInfo = this.containers[containerIndex];\n if (!containerInfo.restore) {\n containerInfo.restore = handleContainer(containerInfo, props);\n }\n }\n remove(modal, ariaHiddenState = true) {\n const modalIndex = this.modals.indexOf(modal);\n if (modalIndex === -1) {\n return modalIndex;\n }\n const containerIndex = findIndexOf(this.containers, item => item.modals.includes(modal));\n const containerInfo = this.containers[containerIndex];\n containerInfo.modals.splice(containerInfo.modals.indexOf(modal), 1);\n this.modals.splice(modalIndex, 1);\n\n // If that was the last modal in a container, clean up the container.\n if (containerInfo.modals.length === 0) {\n // The modal might be closed before it had the chance to be mounted in the DOM.\n if (containerInfo.restore) {\n containerInfo.restore();\n }\n if (modal.modalRef) {\n // In case the modal wasn't in the DOM yet.\n ariaHidden(modal.modalRef, ariaHiddenState);\n }\n ariaHiddenSiblings(containerInfo.container, modal.mount, modal.modalRef, containerInfo.hiddenSiblings, false);\n this.containers.splice(containerIndex, 1);\n } else {\n // Otherwise make sure the next top modal is visible to a screen reader.\n const nextTop = containerInfo.modals[containerInfo.modals.length - 1];\n // as soon as a modal is adding its modalRef is undefined. it can't set\n // aria-hidden because the dom element doesn't exist either\n // when modal was unmounted before modalRef gets null\n if (nextTop.modalRef) {\n ariaHidden(nextTop.modalRef, false);\n }\n }\n return modalIndex;\n }\n isTopModal(modal) {\n return this.modals.length > 0 && this.modals[this.modals.length - 1] === modal;\n }\n}","'use client';\n\nimport * as React from 'react';\nimport { unstable_ownerDocument as ownerDocument, unstable_useForkRef as useForkRef, unstable_useEventCallback as useEventCallback, unstable_createChainedFunction as createChainedFunction } from '@mui/utils';\nimport extractEventHandlers from '@mui/utils/extractEventHandlers';\nimport { ModalManager, ariaHidden } from \"./ModalManager.js\";\nfunction getContainer(container) {\n return typeof container === 'function' ? container() : container;\n}\nfunction getHasTransition(children) {\n return children ? children.props.hasOwnProperty('in') : false;\n}\nconst noop = () => {};\n\n// A modal manager used to track and manage the state of open Modals.\n// Modals don't open on the server so this won't conflict with concurrent requests.\nconst manager = new ModalManager();\n/**\n *\n * Demos:\n *\n * - [Modal](https://mui.com/base-ui/react-modal/#hook)\n *\n * API:\n *\n * - [useModal API](https://mui.com/base-ui/react-modal/hooks-api/#use-modal)\n */\nfunction useModal(parameters) {\n const {\n container,\n disableEscapeKeyDown = false,\n disableScrollLock = false,\n closeAfterTransition = false,\n onTransitionEnter,\n onTransitionExited,\n children,\n onClose,\n open,\n rootRef\n } = parameters;\n\n // @ts-ignore internal logic\n const modal = React.useRef({});\n const mountNodeRef = React.useRef(null);\n const modalRef = React.useRef(null);\n const handleRef = useForkRef(modalRef, rootRef);\n const [exited, setExited] = React.useState(!open);\n const hasTransition = getHasTransition(children);\n let ariaHiddenProp = true;\n if (parameters['aria-hidden'] === 'false' || parameters['aria-hidden'] === false) {\n ariaHiddenProp = false;\n }\n const getDoc = () => ownerDocument(mountNodeRef.current);\n const getModal = () => {\n modal.current.modalRef = modalRef.current;\n modal.current.mount = mountNodeRef.current;\n return modal.current;\n };\n const handleMounted = () => {\n manager.mount(getModal(), {\n disableScrollLock\n });\n\n // Fix a bug on Chrome where the scroll isn't initially 0.\n if (modalRef.current) {\n modalRef.current.scrollTop = 0;\n }\n };\n const handleOpen = useEventCallback(() => {\n const resolvedContainer = getContainer(container) || getDoc().body;\n manager.add(getModal(), resolvedContainer);\n\n // The element was already mounted.\n if (modalRef.current) {\n handleMounted();\n }\n });\n const isTopModal = () => manager.isTopModal(getModal());\n const handlePortalRef = useEventCallback(node => {\n mountNodeRef.current = node;\n if (!node) {\n return;\n }\n if (open && isTopModal()) {\n handleMounted();\n } else if (modalRef.current) {\n ariaHidden(modalRef.current, ariaHiddenProp);\n }\n });\n const handleClose = React.useCallback(() => {\n manager.remove(getModal(), ariaHiddenProp);\n }, [ariaHiddenProp]);\n React.useEffect(() => {\n return () => {\n handleClose();\n };\n }, [handleClose]);\n React.useEffect(() => {\n if (open) {\n handleOpen();\n } else if (!hasTransition || !closeAfterTransition) {\n handleClose();\n }\n }, [open, handleClose, hasTransition, closeAfterTransition, handleOpen]);\n const createHandleKeyDown = otherHandlers => event => {\n otherHandlers.onKeyDown?.(event);\n\n // The handler doesn't take event.defaultPrevented into account:\n //\n // event.preventDefault() is meant to stop default behaviors like\n // clicking a checkbox to check it, hitting a button to submit a form,\n // and hitting left arrow to move the cursor in a text input etc.\n // Only special HTML elements have these default behaviors.\n if (event.key !== 'Escape' || event.which === 229 ||\n // Wait until IME is settled.\n !isTopModal()) {\n return;\n }\n if (!disableEscapeKeyDown) {\n // Swallow the event, in case someone is listening for the escape key on the body.\n event.stopPropagation();\n if (onClose) {\n onClose(event, 'escapeKeyDown');\n }\n }\n };\n const createHandleBackdropClick = otherHandlers => event => {\n otherHandlers.onClick?.(event);\n if (event.target !== event.currentTarget) {\n return;\n }\n if (onClose) {\n onClose(event, 'backdropClick');\n }\n };\n const getRootProps = (otherHandlers = {}) => {\n const propsEventHandlers = extractEventHandlers(parameters);\n\n // The custom event handlers shouldn't be spread on the root element\n delete propsEventHandlers.onTransitionEnter;\n delete propsEventHandlers.onTransitionExited;\n const externalEventHandlers = {\n ...propsEventHandlers,\n ...otherHandlers\n };\n return {\n /*\n * Marking an element with the role presentation indicates to assistive technology\n * that this element should be ignored; it exists to support the web application and\n * is not meant for humans to interact with directly.\n * https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/no-static-element-interactions.md\n */\n role: 'presentation',\n ...externalEventHandlers,\n onKeyDown: createHandleKeyDown(externalEventHandlers),\n ref: handleRef\n };\n };\n const getBackdropProps = (otherHandlers = {}) => {\n const externalEventHandlers = otherHandlers;\n return {\n 'aria-hidden': true,\n ...externalEventHandlers,\n onClick: createHandleBackdropClick(externalEventHandlers),\n open\n };\n };\n const getTransitionProps = () => {\n const handleEnter = () => {\n setExited(false);\n if (onTransitionEnter) {\n onTransitionEnter();\n }\n };\n const handleExited = () => {\n setExited(true);\n if (onTransitionExited) {\n onTransitionExited();\n }\n if (closeAfterTransition) {\n handleClose();\n }\n };\n return {\n onEnter: createChainedFunction(handleEnter, children?.props.onEnter ?? noop),\n onExited: createChainedFunction(handleExited, children?.props.onExited ?? noop)\n };\n };\n return {\n getRootProps,\n getBackdropProps,\n getTransitionProps,\n rootRef: handleRef,\n portalRef: handlePortalRef,\n isTopModal,\n exited,\n hasTransition\n };\n}\nexport default useModal;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getModalUtilityClass(slot) {\n return generateUtilityClass('MuiModal', slot);\n}\nconst modalClasses = generateUtilityClasses('MuiModal', ['root', 'hidden', 'backdrop']);\nexport default modalClasses;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport HTMLElementType from '@mui/utils/HTMLElementType';\nimport elementAcceptingRef from '@mui/utils/elementAcceptingRef';\nimport composeClasses from '@mui/utils/composeClasses';\nimport FocusTrap from \"../Unstable_TrapFocus/index.js\";\nimport Portal from \"../Portal/index.js\";\nimport { styled } from \"../zero-styled/index.js\";\nimport memoTheme from \"../utils/memoTheme.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport Backdrop from \"../Backdrop/index.js\";\nimport useModal from \"./useModal.js\";\nimport { getModalUtilityClass } from \"./modalClasses.js\";\nimport useSlot from \"../utils/useSlot.js\";\nimport { useForkRef } from \"../utils/index.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n open,\n exited,\n classes\n } = ownerState;\n const slots = {\n root: ['root', !open && exited && 'hidden'],\n backdrop: ['backdrop']\n };\n return composeClasses(slots, getModalUtilityClass, classes);\n};\nconst ModalRoot = styled('div', {\n name: 'MuiModal',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, !ownerState.open && ownerState.exited && styles.hidden];\n }\n})(memoTheme(({\n theme\n}) => ({\n position: 'fixed',\n zIndex: (theme.vars || theme).zIndex.modal,\n right: 0,\n bottom: 0,\n top: 0,\n left: 0,\n variants: [{\n props: ({\n ownerState\n }) => !ownerState.open && ownerState.exited,\n style: {\n visibility: 'hidden'\n }\n }]\n})));\nconst ModalBackdrop = styled(Backdrop, {\n name: 'MuiModal',\n slot: 'Backdrop',\n overridesResolver: (props, styles) => {\n return styles.backdrop;\n }\n})({\n zIndex: -1\n});\n\n/**\n * Modal is a lower-level construct that is leveraged by the following components:\n *\n * - [Dialog](/material-ui/api/dialog/)\n * - [Drawer](/material-ui/api/drawer/)\n * - [Menu](/material-ui/api/menu/)\n * - [Popover](/material-ui/api/popover/)\n *\n * If you are creating a modal dialog, you probably want to use the [Dialog](/material-ui/api/dialog/) component\n * rather than directly using Modal.\n *\n * This component shares many concepts with [react-overlays](https://react-bootstrap.github.io/react-overlays/#modals).\n */\nconst Modal = /*#__PURE__*/React.forwardRef(function Modal(inProps, ref) {\n const props = useDefaultProps({\n name: 'MuiModal',\n props: inProps\n });\n const {\n BackdropComponent = ModalBackdrop,\n BackdropProps,\n classes: classesProp,\n className,\n closeAfterTransition = false,\n children,\n container,\n component,\n components = {},\n componentsProps = {},\n disableAutoFocus = false,\n disableEnforceFocus = false,\n disableEscapeKeyDown = false,\n disablePortal = false,\n disableRestoreFocus = false,\n disableScrollLock = false,\n hideBackdrop = false,\n keepMounted = false,\n onBackdropClick,\n onClose,\n onTransitionEnter,\n onTransitionExited,\n open,\n slotProps = {},\n slots = {},\n // eslint-disable-next-line react/prop-types\n theme,\n ...other\n } = props;\n const propsWithDefaults = {\n ...props,\n closeAfterTransition,\n disableAutoFocus,\n disableEnforceFocus,\n disableEscapeKeyDown,\n disablePortal,\n disableRestoreFocus,\n disableScrollLock,\n hideBackdrop,\n keepMounted\n };\n const {\n getRootProps,\n getBackdropProps,\n getTransitionProps,\n portalRef,\n isTopModal,\n exited,\n hasTransition\n } = useModal({\n ...propsWithDefaults,\n rootRef: ref\n });\n const ownerState = {\n ...propsWithDefaults,\n exited\n };\n const classes = useUtilityClasses(ownerState);\n const childProps = {};\n if (children.props.tabIndex === undefined) {\n childProps.tabIndex = '-1';\n }\n\n // It's a Transition like component\n if (hasTransition) {\n const {\n onEnter,\n onExited\n } = getTransitionProps();\n childProps.onEnter = onEnter;\n childProps.onExited = onExited;\n }\n const externalForwardedProps = {\n ...other,\n slots: {\n root: components.Root,\n backdrop: components.Backdrop,\n ...slots\n },\n slotProps: {\n ...componentsProps,\n ...slotProps\n }\n };\n const [RootSlot, rootProps] = useSlot('root', {\n elementType: ModalRoot,\n externalForwardedProps,\n getSlotProps: getRootProps,\n additionalProps: {\n ref,\n as: component\n },\n ownerState,\n className: clsx(className, classes?.root, !ownerState.open && ownerState.exited && classes?.hidden)\n });\n const [BackdropSlot, backdropProps] = useSlot('backdrop', {\n elementType: BackdropComponent,\n externalForwardedProps,\n additionalProps: BackdropProps,\n getSlotProps: otherHandlers => {\n return getBackdropProps({\n ...otherHandlers,\n onClick: event => {\n if (onBackdropClick) {\n onBackdropClick(event);\n }\n if (otherHandlers?.onClick) {\n otherHandlers.onClick(event);\n }\n }\n });\n },\n className: clsx(BackdropProps?.className, classes?.backdrop),\n ownerState\n });\n const backdropRef = useForkRef(BackdropProps?.ref, backdropProps.ref);\n if (!keepMounted && !open && (!hasTransition || exited)) {\n return null;\n }\n return /*#__PURE__*/_jsx(Portal, {\n ref: portalRef,\n container: container,\n disablePortal: disablePortal,\n children: /*#__PURE__*/_jsxs(RootSlot, {\n ...rootProps,\n children: [!hideBackdrop && BackdropComponent ? /*#__PURE__*/_jsx(BackdropSlot, {\n ...backdropProps,\n ref: backdropRef\n }) : null, /*#__PURE__*/_jsx(FocusTrap, {\n disableEnforceFocus: disableEnforceFocus,\n disableAutoFocus: disableAutoFocus,\n disableRestoreFocus: disableRestoreFocus,\n isEnabled: isTopModal,\n open: open,\n children: /*#__PURE__*/React.cloneElement(children, childProps)\n })]\n })\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? Modal.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * A backdrop component. This prop enables custom backdrop rendering.\n * @deprecated Use `slots.backdrop` instead. While this prop currently works, it will be removed in the next major version.\n * Use the `slots.backdrop` prop to make your application ready for the next version of Material UI.\n * @default styled(Backdrop, {\n * name: 'MuiModal',\n * slot: 'Backdrop',\n * overridesResolver: (props, styles) => {\n * return styles.backdrop;\n * },\n * })({\n * zIndex: -1,\n * })\n */\n BackdropComponent: PropTypes.elementType,\n /**\n * Props applied to the [`Backdrop`](https://mui.com/material-ui/api/backdrop/) element.\n * @deprecated Use `slotProps.backdrop` instead.\n */\n BackdropProps: PropTypes.object,\n /**\n * A single child content element.\n */\n children: elementAcceptingRef.isRequired,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * When set to true the Modal waits until a nested Transition is completed before closing.\n * @default false\n */\n closeAfterTransition: PropTypes.bool,\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * The components used for each slot inside.\n *\n * @deprecated Use the `slots` prop instead. This prop will be removed in v7. See [Migrating from deprecated APIs](https://mui.com/material-ui/migration/migrating-from-deprecated-apis/) for more details.\n *\n * @default {}\n */\n components: PropTypes.shape({\n Backdrop: PropTypes.elementType,\n Root: PropTypes.elementType\n }),\n /**\n * The extra props for the slot components.\n * You can override the existing props or add new ones.\n *\n * @deprecated Use the `slotProps` prop instead. This prop will be removed in v7. See [Migrating from deprecated APIs](https://mui.com/material-ui/migration/migrating-from-deprecated-apis/) for more details.\n *\n * @default {}\n */\n componentsProps: PropTypes.shape({\n backdrop: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n root: PropTypes.oneOfType([PropTypes.func, PropTypes.object])\n }),\n /**\n * An HTML element or function that returns one.\n * The `container` will have the portal children appended to it.\n *\n * You can also provide a callback, which is called in a React layout effect.\n * This lets you set the container from a ref, and also makes server-side rendering possible.\n *\n * By default, it uses the body of the top-level document object,\n * so it's simply `document.body` most of the time.\n */\n container: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([HTMLElementType, PropTypes.func]),\n /**\n * If `true`, the modal will not automatically shift focus to itself when it opens, and\n * replace it to the last focused element when it closes.\n * This also works correctly with any modal children that have the `disableAutoFocus` prop.\n *\n * Generally this should never be set to `true` as it makes the modal less\n * accessible to assistive technologies, like screen readers.\n * @default false\n */\n disableAutoFocus: PropTypes.bool,\n /**\n * If `true`, the modal will not prevent focus from leaving the modal while open.\n *\n * Generally this should never be set to `true` as it makes the modal less\n * accessible to assistive technologies, like screen readers.\n * @default false\n */\n disableEnforceFocus: PropTypes.bool,\n /**\n * If `true`, hitting escape will not fire the `onClose` callback.\n * @default false\n */\n disableEscapeKeyDown: PropTypes.bool,\n /**\n * The `children` will be under the DOM hierarchy of the parent component.\n * @default false\n */\n disablePortal: PropTypes.bool,\n /**\n * If `true`, the modal will not restore focus to previously focused element once\n * modal is hidden or unmounted.\n * @default false\n */\n disableRestoreFocus: PropTypes.bool,\n /**\n * Disable the scroll lock behavior.\n * @default false\n */\n disableScrollLock: PropTypes.bool,\n /**\n * If `true`, the backdrop is not rendered.\n * @default false\n */\n hideBackdrop: PropTypes.bool,\n /**\n * Always keep the children in the DOM.\n * This prop can be useful in SEO situation or\n * when you want to maximize the responsiveness of the Modal.\n * @default false\n */\n keepMounted: PropTypes.bool,\n /**\n * Callback fired when the backdrop is clicked.\n * @deprecated Use the `onClose` prop with the `reason` argument to handle the `backdropClick` events.\n */\n onBackdropClick: PropTypes.func,\n /**\n * Callback fired when the component requests to be closed.\n * The `reason` parameter can optionally be used to control the response to `onClose`.\n *\n * @param {object} event The event source of the callback.\n * @param {string} reason Can be: `\"escapeKeyDown\"`, `\"backdropClick\"`.\n */\n onClose: PropTypes.func,\n /**\n * A function called when a transition enters.\n */\n onTransitionEnter: PropTypes.func,\n /**\n * A function called when a transition has exited.\n */\n onTransitionExited: PropTypes.func,\n /**\n * If `true`, the component is shown.\n */\n open: PropTypes.bool.isRequired,\n /**\n * The props used for each slot inside the Modal.\n * @default {}\n */\n slotProps: PropTypes.shape({\n backdrop: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n root: PropTypes.oneOfType([PropTypes.func, PropTypes.object])\n }),\n /**\n * The components used for each slot inside the Modal.\n * Either a string to use a HTML element or a component.\n * @default {}\n */\n slots: PropTypes.shape({\n backdrop: PropTypes.elementType,\n root: PropTypes.elementType\n }),\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default Modal;","'use client';\n\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport { exactProp, HTMLElementType, unstable_useEnhancedEffect as useEnhancedEffect, unstable_useForkRef as useForkRef, unstable_setRef as setRef, unstable_getReactElementRef as getReactElementRef } from '@mui/utils';\nfunction getContainer(container) {\n return typeof container === 'function' ? container() : container;\n}\n\n/**\n * Portals provide a first-class way to render children into a DOM node\n * that exists outside the DOM hierarchy of the parent component.\n *\n * Demos:\n *\n * - [Portal](https://mui.com/material-ui/react-portal/)\n *\n * API:\n *\n * - [Portal API](https://mui.com/material-ui/api/portal/)\n */\nconst Portal = /*#__PURE__*/React.forwardRef(function Portal(props, forwardedRef) {\n const {\n children,\n container,\n disablePortal = false\n } = props;\n const [mountNode, setMountNode] = React.useState(null);\n const handleRef = useForkRef(/*#__PURE__*/React.isValidElement(children) ? getReactElementRef(children) : null, forwardedRef);\n useEnhancedEffect(() => {\n if (!disablePortal) {\n setMountNode(getContainer(container) || document.body);\n }\n }, [container, disablePortal]);\n useEnhancedEffect(() => {\n if (mountNode && !disablePortal) {\n setRef(forwardedRef, mountNode);\n return () => {\n setRef(forwardedRef, null);\n };\n }\n return undefined;\n }, [forwardedRef, mountNode, disablePortal]);\n if (disablePortal) {\n if (/*#__PURE__*/React.isValidElement(children)) {\n const newProps = {\n ref: handleRef\n };\n return /*#__PURE__*/React.cloneElement(children, newProps);\n }\n return children;\n }\n return mountNode ? /*#__PURE__*/ReactDOM.createPortal(children, mountNode) : mountNode;\n});\nprocess.env.NODE_ENV !== \"production\" ? Portal.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The children to render into the `container`.\n */\n children: PropTypes.node,\n /**\n * An HTML element or function that returns one.\n * The `container` will have the portal children appended to it.\n *\n * You can also provide a callback, which is called in a React layout effect.\n * This lets you set the container from a ref, and also makes server-side rendering possible.\n *\n * By default, it uses the body of the top-level document object,\n * so it's simply `document.body` most of the time.\n */\n container: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([HTMLElementType, PropTypes.func]),\n /**\n * The `children` will be under the DOM hierarchy of the parent component.\n * @default false\n */\n disablePortal: PropTypes.bool\n} : void 0;\nif (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line\n Portal['propTypes' + ''] = exactProp(Portal.propTypes);\n}\nexport default Portal;","'use client';\n\n/* eslint-disable consistent-return, jsx-a11y/no-noninteractive-tabindex */\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { exactProp, elementAcceptingRef, unstable_useForkRef as useForkRef, unstable_ownerDocument as ownerDocument, unstable_getReactElementRef as getReactElementRef } from '@mui/utils';\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\n// Inspired by https://github.com/focus-trap/tabbable\nconst candidatesSelector = ['input', 'select', 'textarea', 'a[href]', 'button', '[tabindex]', 'audio[controls]', 'video[controls]', '[contenteditable]:not([contenteditable=\"false\"])'].join(',');\nfunction getTabIndex(node) {\n const tabindexAttr = parseInt(node.getAttribute('tabindex') || '', 10);\n if (!Number.isNaN(tabindexAttr)) {\n return tabindexAttr;\n }\n\n // Browsers do not return `tabIndex` correctly for contentEditable nodes;\n // https://issues.chromium.org/issues/41283952\n // so if they don't have a tabindex attribute specifically set, assume it's 0.\n // in Chrome, , and elements get a default\n // `tabIndex` of -1 when the 'tabindex' attribute isn't specified in the DOM,\n // yet they are still part of the regular tab order; in FF, they get a default\n // `tabIndex` of 0; since Chrome still puts those elements in the regular tab\n // order, consider their tab index to be 0.\n if (node.contentEditable === 'true' || (node.nodeName === 'AUDIO' || node.nodeName === 'VIDEO' || node.nodeName === 'DETAILS') && node.getAttribute('tabindex') === null) {\n return 0;\n }\n return node.tabIndex;\n}\nfunction isNonTabbableRadio(node) {\n if (node.tagName !== 'INPUT' || node.type !== 'radio') {\n return false;\n }\n if (!node.name) {\n return false;\n }\n const getRadio = selector => node.ownerDocument.querySelector(`input[type=\"radio\"]${selector}`);\n let roving = getRadio(`[name=\"${node.name}\"]:checked`);\n if (!roving) {\n roving = getRadio(`[name=\"${node.name}\"]`);\n }\n return roving !== node;\n}\nfunction isNodeMatchingSelectorFocusable(node) {\n if (node.disabled || node.tagName === 'INPUT' && node.type === 'hidden' || isNonTabbableRadio(node)) {\n return false;\n }\n return true;\n}\nfunction defaultGetTabbable(root) {\n const regularTabNodes = [];\n const orderedTabNodes = [];\n Array.from(root.querySelectorAll(candidatesSelector)).forEach((node, i) => {\n const nodeTabIndex = getTabIndex(node);\n if (nodeTabIndex === -1 || !isNodeMatchingSelectorFocusable(node)) {\n return;\n }\n if (nodeTabIndex === 0) {\n regularTabNodes.push(node);\n } else {\n orderedTabNodes.push({\n documentOrder: i,\n tabIndex: nodeTabIndex,\n node: node\n });\n }\n });\n return orderedTabNodes.sort((a, b) => a.tabIndex === b.tabIndex ? a.documentOrder - b.documentOrder : a.tabIndex - b.tabIndex).map(a => a.node).concat(regularTabNodes);\n}\nfunction defaultIsEnabled() {\n return true;\n}\n\n/**\n * @ignore - internal component.\n */\nfunction FocusTrap(props) {\n const {\n children,\n disableAutoFocus = false,\n disableEnforceFocus = false,\n disableRestoreFocus = false,\n getTabbable = defaultGetTabbable,\n isEnabled = defaultIsEnabled,\n open\n } = props;\n const ignoreNextEnforceFocus = React.useRef(false);\n const sentinelStart = React.useRef(null);\n const sentinelEnd = React.useRef(null);\n const nodeToRestore = React.useRef(null);\n const reactFocusEventTarget = React.useRef(null);\n // This variable is useful when disableAutoFocus is true.\n // It waits for the active element to move into the component to activate.\n const activated = React.useRef(false);\n const rootRef = React.useRef(null);\n const handleRef = useForkRef(getReactElementRef(children), rootRef);\n const lastKeydown = React.useRef(null);\n React.useEffect(() => {\n // We might render an empty child.\n if (!open || !rootRef.current) {\n return;\n }\n activated.current = !disableAutoFocus;\n }, [disableAutoFocus, open]);\n React.useEffect(() => {\n // We might render an empty child.\n if (!open || !rootRef.current) {\n return;\n }\n const doc = ownerDocument(rootRef.current);\n if (!rootRef.current.contains(doc.activeElement)) {\n if (!rootRef.current.hasAttribute('tabIndex')) {\n if (process.env.NODE_ENV !== 'production') {\n 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('\\n'));\n }\n rootRef.current.setAttribute('tabIndex', '-1');\n }\n if (activated.current) {\n rootRef.current.focus();\n }\n }\n return () => {\n // restoreLastFocus()\n if (!disableRestoreFocus) {\n // In IE11 it is possible for document.activeElement to be null resulting\n // in nodeToRestore.current being null.\n // Not all elements in IE11 have a focus method.\n // Once IE11 support is dropped the focus() call can be unconditional.\n if (nodeToRestore.current && nodeToRestore.current.focus) {\n ignoreNextEnforceFocus.current = true;\n nodeToRestore.current.focus();\n }\n nodeToRestore.current = null;\n }\n };\n // Missing `disableRestoreFocus` which is fine.\n // We don't support changing that prop on an open FocusTrap\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [open]);\n React.useEffect(() => {\n // We might render an empty child.\n if (!open || !rootRef.current) {\n return;\n }\n const doc = ownerDocument(rootRef.current);\n const loopFocus = nativeEvent => {\n lastKeydown.current = nativeEvent;\n if (disableEnforceFocus || !isEnabled() || nativeEvent.key !== 'Tab') {\n return;\n }\n\n // Make sure the next tab starts from the right place.\n // doc.activeElement refers to the origin.\n if (doc.activeElement === rootRef.current && nativeEvent.shiftKey) {\n // We need to ignore the next contain as\n // it will try to move the focus back to the rootRef element.\n ignoreNextEnforceFocus.current = true;\n if (sentinelEnd.current) {\n sentinelEnd.current.focus();\n }\n }\n };\n const contain = () => {\n const rootElement = rootRef.current;\n\n // Cleanup functions are executed lazily in React 17.\n // Contain can be called between the component being unmounted and its cleanup function being run.\n if (rootElement === null) {\n return;\n }\n if (!doc.hasFocus() || !isEnabled() || ignoreNextEnforceFocus.current) {\n ignoreNextEnforceFocus.current = false;\n return;\n }\n\n // The focus is already inside\n if (rootElement.contains(doc.activeElement)) {\n return;\n }\n\n // The disableEnforceFocus is set and the focus is outside of the focus trap (and sentinel nodes)\n if (disableEnforceFocus && doc.activeElement !== sentinelStart.current && doc.activeElement !== sentinelEnd.current) {\n return;\n }\n\n // if the focus event is not coming from inside the children's react tree, reset the refs\n if (doc.activeElement !== reactFocusEventTarget.current) {\n reactFocusEventTarget.current = null;\n } else if (reactFocusEventTarget.current !== null) {\n return;\n }\n if (!activated.current) {\n return;\n }\n let tabbable = [];\n if (doc.activeElement === sentinelStart.current || doc.activeElement === sentinelEnd.current) {\n tabbable = getTabbable(rootRef.current);\n }\n\n // one of the sentinel nodes was focused, so move the focus\n // to the first/last tabbable element inside the focus trap\n if (tabbable.length > 0) {\n const isShiftTab = Boolean(lastKeydown.current?.shiftKey && lastKeydown.current?.key === 'Tab');\n const focusNext = tabbable[0];\n const focusPrevious = tabbable[tabbable.length - 1];\n if (typeof focusNext !== 'string' && typeof focusPrevious !== 'string') {\n if (isShiftTab) {\n focusPrevious.focus();\n } else {\n focusNext.focus();\n }\n }\n // no tabbable elements in the trap focus or the focus was outside of the focus trap\n } else {\n rootElement.focus();\n }\n };\n doc.addEventListener('focusin', contain);\n doc.addEventListener('keydown', loopFocus, true);\n\n // With Edge, Safari and Firefox, no focus related events are fired when the focused area stops being a focused area.\n // for example https://bugzilla.mozilla.org/show_bug.cgi?id=559561.\n // Instead, we can look if the active element was restored on the BODY element.\n //\n // The whatwg spec defines how the browser should behave but does not explicitly mention any events:\n // https://html.spec.whatwg.org/multipage/interaction.html#focus-fixup-rule.\n const interval = setInterval(() => {\n if (doc.activeElement && doc.activeElement.tagName === 'BODY') {\n contain();\n }\n }, 50);\n return () => {\n clearInterval(interval);\n doc.removeEventListener('focusin', contain);\n doc.removeEventListener('keydown', loopFocus, true);\n };\n }, [disableAutoFocus, disableEnforceFocus, disableRestoreFocus, isEnabled, open, getTabbable]);\n const onFocus = event => {\n if (nodeToRestore.current === null) {\n nodeToRestore.current = event.relatedTarget;\n }\n activated.current = true;\n reactFocusEventTarget.current = event.target;\n const childrenPropsHandler = children.props.onFocus;\n if (childrenPropsHandler) {\n childrenPropsHandler(event);\n }\n };\n const handleFocusSentinel = event => {\n if (nodeToRestore.current === null) {\n nodeToRestore.current = event.relatedTarget;\n }\n activated.current = true;\n };\n return /*#__PURE__*/_jsxs(React.Fragment, {\n children: [/*#__PURE__*/_jsx(\"div\", {\n tabIndex: open ? 0 : -1,\n onFocus: handleFocusSentinel,\n ref: sentinelStart,\n \"data-testid\": \"sentinelStart\"\n }), /*#__PURE__*/React.cloneElement(children, {\n ref: handleRef,\n onFocus\n }), /*#__PURE__*/_jsx(\"div\", {\n tabIndex: open ? 0 : -1,\n onFocus: handleFocusSentinel,\n ref: sentinelEnd,\n \"data-testid\": \"sentinelEnd\"\n })]\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? FocusTrap.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * A single child content element.\n */\n children: elementAcceptingRef,\n /**\n * If `true`, the focus trap will not automatically shift focus to itself when it opens, and\n * replace it to the last focused element when it closes.\n * This also works correctly with any focus trap children that have the `disableAutoFocus` prop.\n *\n * Generally this should never be set to `true` as it makes the focus trap less\n * accessible to assistive technologies, like screen readers.\n * @default false\n */\n disableAutoFocus: PropTypes.bool,\n /**\n * If `true`, the focus trap will not prevent focus from leaving the focus trap while open.\n *\n * Generally this should never be set to `true` as it makes the focus trap less\n * accessible to assistive technologies, like screen readers.\n * @default false\n */\n disableEnforceFocus: PropTypes.bool,\n /**\n * If `true`, the focus trap will not restore focus to previously focused element once\n * focus trap is hidden or unmounted.\n * @default false\n */\n disableRestoreFocus: PropTypes.bool,\n /**\n * Returns an array of ordered tabbable nodes (i.e. in tab order) within the root.\n * For instance, you can provide the \"tabbable\" npm dependency.\n * @param {HTMLElement} root\n */\n getTabbable: PropTypes.func,\n /**\n * This prop extends the `open` prop.\n * It allows to toggle the open state without having to wait for a rerender when changing the `open` prop.\n * This prop should be memoized.\n * It can be used to support multiple focus trap mounted at the same time.\n * @default function defaultIsEnabled(): boolean {\n * return true;\n * }\n */\n isEnabled: PropTypes.func,\n /**\n * If `true`, focus is locked.\n */\n open: PropTypes.bool.isRequired\n} : void 0;\nif (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line\n FocusTrap['propTypes' + ''] = exactProp(FocusTrap.propTypes);\n}\nexport default FocusTrap;","/**\n * @license React\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var b=Symbol.for(\"react.element\"),c=Symbol.for(\"react.portal\"),d=Symbol.for(\"react.fragment\"),e=Symbol.for(\"react.strict_mode\"),f=Symbol.for(\"react.profiler\"),g=Symbol.for(\"react.provider\"),h=Symbol.for(\"react.context\"),k=Symbol.for(\"react.server_context\"),l=Symbol.for(\"react.forward_ref\"),m=Symbol.for(\"react.suspense\"),n=Symbol.for(\"react.suspense_list\"),p=Symbol.for(\"react.memo\"),q=Symbol.for(\"react.lazy\"),t=Symbol.for(\"react.offscreen\"),u;u=Symbol.for(\"react.module.reference\");\nfunction v(a){if(\"object\"===typeof a&&null!==a){var r=a.$$typeof;switch(r){case b:switch(a=a.type,a){case d:case f:case e:case m:case n:return a;default:switch(a=a&&a.$$typeof,a){case k:case h:case l:case q:case p:case g:return a;default:return r}}case c:return r}}}exports.ContextConsumer=h;exports.ContextProvider=g;exports.Element=b;exports.ForwardRef=l;exports.Fragment=d;exports.Lazy=q;exports.Memo=p;exports.Portal=c;exports.Profiler=f;exports.StrictMode=e;exports.Suspense=m;\nexports.SuspenseList=n;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return v(a)===h};exports.isContextProvider=function(a){return v(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return v(a)===l};exports.isFragment=function(a){return v(a)===d};exports.isLazy=function(a){return v(a)===q};exports.isMemo=function(a){return v(a)===p};\nexports.isPortal=function(a){return v(a)===c};exports.isProfiler=function(a){return v(a)===f};exports.isStrictMode=function(a){return v(a)===e};exports.isSuspense=function(a){return v(a)===m};exports.isSuspenseList=function(a){return v(a)===n};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===e||a===m||a===n||a===t||\"object\"===typeof a&&null!==a&&(a.$$typeof===q||a.$$typeof===p||a.$$typeof===g||a.$$typeof===h||a.$$typeof===l||a.$$typeof===u||void 0!==a.getModuleId)?!0:!1};exports.typeOf=v;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","export const reflow = node => node.scrollTop;\nexport function getTransitionProps(props, options) {\n const {\n timeout,\n easing,\n style = {}\n } = props;\n return {\n duration: style.transitionDuration ?? (typeof timeout === 'number' ? timeout : timeout[options.mode] || 0),\n easing: style.transitionTimingFunction ?? (typeof easing === 'object' ? easing[options.mode] : easing),\n delay: style.transitionDelay\n };\n}","/**\n * Determines if a given element is a DOM element name (i.e. not a React component).\n */\nfunction isHostComponent(element) {\n return typeof element === 'string';\n}\nexport default isHostComponent;","import ownerDocument from '@mui/utils/ownerDocument';\nexport default ownerDocument;","import ownerWindow from '@mui/utils/ownerWindow';\nexport default ownerWindow;","'use client';\n\nimport useControlled from '@mui/utils/useControlled';\nexport default useControlled;","'use client';\n\nimport useEnhancedEffect from '@mui/utils/useEnhancedEffect';\nexport default useEnhancedEffect;","'use client';\n\nimport useForkRef from '@mui/utils/useForkRef';\nimport appendOwnerState from '@mui/utils/appendOwnerState';\nimport resolveComponentProps from '@mui/utils/resolveComponentProps';\nimport mergeSlotProps from '@mui/utils/mergeSlotProps';\n/**\n * An internal function to create a Material UI slot.\n *\n * This is an advanced version of Base UI `useSlotProps` because Material UI allows leaf component to be customized via `component` prop\n * while Base UI does not need to support leaf component customization.\n *\n * @param {string} name: name of the slot\n * @param {object} parameters\n * @returns {[Slot, slotProps]} The slot's React component and the slot's props\n *\n * Note: the returned slot's props\n * - will never contain `component` prop.\n * - might contain `as` prop.\n */\nexport default function useSlot(\n/**\n * The slot's name. All Material UI components should have `root` slot.\n *\n * If the name is `root`, the logic behaves differently from other slots,\n * e.g. the `externalForwardedProps` are spread to `root` slot but not other slots.\n */\nname, parameters) {\n const {\n className,\n elementType: initialElementType,\n ownerState,\n externalForwardedProps,\n internalForwardedProps,\n ...useSlotPropsParams\n } = parameters;\n const {\n component: rootComponent,\n slots = {\n [name]: undefined\n },\n slotProps = {\n [name]: undefined\n },\n ...other\n } = externalForwardedProps;\n const elementType = slots[name] || initialElementType;\n\n // `slotProps[name]` can be a callback that receives the component's ownerState.\n // `resolvedComponentsProps` is always a plain object.\n const resolvedComponentsProps = resolveComponentProps(slotProps[name], ownerState);\n const {\n props: {\n component: slotComponent,\n ...mergedProps\n },\n internalRef\n } = mergeSlotProps({\n className,\n ...useSlotPropsParams,\n externalForwardedProps: name === 'root' ? other : undefined,\n externalSlotProps: resolvedComponentsProps\n });\n const ref = useForkRef(internalRef, resolvedComponentsProps?.ref, parameters.ref);\n const LeafComponent = name === 'root' ? slotComponent || rootComponent : slotComponent;\n const props = appendOwnerState(elementType, {\n ...(name === 'root' && !rootComponent && !slots[name] && internalForwardedProps),\n ...(name !== 'root' && !slots[name] && internalForwardedProps),\n ...mergedProps,\n ...(LeafComponent && {\n as: LeafComponent\n }),\n ref\n }, ownerState);\n return [elementType, props];\n}","/**\n * Determines if a given element is a DOM element name (i.e. not a React component).\n */\nfunction isHostComponent(element) {\n return typeof element === 'string';\n}\nexport default isHostComponent;","import isHostComponent from \"../isHostComponent/index.js\";\n\n/**\n * Type of the ownerState based on the type of an element it applies to.\n * This resolves to the provided OwnerState for React components and `undefined` for host components.\n * Falls back to `OwnerState | undefined` when the exact type can't be determined in development time.\n */\n\n/**\n * Appends the ownerState object to the props, merging with the existing one if necessary.\n *\n * @param elementType Type of the element that owns the `existingProps`. If the element is a DOM node or undefined, `ownerState` is not applied.\n * @param otherProps Props of the element.\n * @param ownerState\n */\nfunction appendOwnerState(elementType, otherProps, ownerState) {\n if (elementType === undefined || isHostComponent(elementType)) {\n return otherProps;\n }\n return {\n ...otherProps,\n ownerState: {\n ...otherProps.ownerState,\n ...ownerState\n }\n };\n}\nexport default appendOwnerState;","/**\n * Safe chained function.\n *\n * Will only create a new function if needed,\n * otherwise will pass back existing functions or null.\n */\nexport default function createChainedFunction(...funcs) {\n return funcs.reduce((acc, func) => {\n if (func == null) {\n return acc;\n }\n return function chainedFunction(...args) {\n acc.apply(this, args);\n func.apply(this, args);\n };\n }, () => {});\n}","// Corresponds to 10 frames at 60 Hz.\n// A few bytes payload overhead when lodash/debounce is ~3 kB and debounce ~300 B.\nexport default function debounce(func, wait = 166) {\n let timeout;\n function debounced(...args) {\n const later = () => {\n // @ts-ignore\n func.apply(this, args);\n };\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n }\n debounced.clear = () => {\n clearTimeout(timeout);\n };\n return debounced;\n}","/**\n * Extracts event handlers from a given object.\n * A prop is considered an event handler if it is a function and its name starts with `on`.\n *\n * @param object An object to extract event handlers from.\n * @param excludeKeys An array of keys to exclude from the returned object.\n */\nfunction extractEventHandlers(object, excludeKeys = []) {\n if (object === undefined) {\n return {};\n }\n const result = {};\n Object.keys(object).filter(prop => prop.match(/^on[A-Z]/) && typeof object[prop] === 'function' && !excludeKeys.includes(prop)).forEach(prop => {\n result[prop] = object[prop];\n });\n return result;\n}\nexport default extractEventHandlers;","import * as React from 'react';\n\n/**\n * Returns the ref of a React element handling differences between React 19 and older versions.\n * It will throw runtime error if the element is not a valid React element.\n *\n * @param element React.ReactElement\n * @returns React.Ref | null\n */\nexport default function getReactElementRef(element) {\n // 'ref' is passed as prop in React 19, whereas 'ref' is directly attached to children in older versions\n if (parseInt(React.version, 10) >= 19) {\n return element?.props?.ref || null;\n }\n // @ts-expect-error element.ref is not included in the ReactElement type\n // https://github.com/DefinitelyTyped/DefinitelyTyped/discussions/70189\n return element?.ref || null;\n}","// A change of the browser zoom change the scrollbar size.\n// Credit https://github.com/twbs/bootstrap/blob/488fd8afc535ca3a6ad4dc581f5e89217b6a36ac/js/src/util/scrollbar.js#L14-L18\nexport default function getScrollbarSize(win = window) {\n // https://developer.mozilla.org/en-US/docs/Web/API/Window/innerWidth#usage_notes\n const documentWidth = win.document.documentElement.clientWidth;\n return win.innerWidth - documentWidth;\n}","/**\n * Removes event handlers from the given object.\n * A field is considered an event handler if it is a function with a name beginning with `on`.\n *\n * @param object Object to remove event handlers from.\n * @returns Object with event handlers removed.\n */\nfunction omitEventHandlers(object) {\n if (object === undefined) {\n return {};\n }\n const result = {};\n Object.keys(object).filter(prop => !(prop.match(/^on[A-Z]/) && typeof object[prop] === 'function')).forEach(prop => {\n result[prop] = object[prop];\n });\n return result;\n}\nexport default omitEventHandlers;","import clsx from 'clsx';\nimport extractEventHandlers from \"../extractEventHandlers/index.js\";\nimport omitEventHandlers from \"../omitEventHandlers/index.js\";\n/**\n * Merges the slot component internal props (usually coming from a hook)\n * with the externally provided ones.\n *\n * The merge order is (the latter overrides the former):\n * 1. The internal props (specified as a getter function to work with get*Props hook result)\n * 2. Additional props (specified internally on a Base UI component)\n * 3. External props specified on the owner component. These should only be used on a root slot.\n * 4. External props specified in the `slotProps.*` prop.\n * 5. The `className` prop - combined from all the above.\n * @param parameters\n * @returns\n */\nfunction mergeSlotProps(parameters) {\n const {\n getSlotProps,\n additionalProps,\n externalSlotProps,\n externalForwardedProps,\n className\n } = parameters;\n if (!getSlotProps) {\n // The simpler case - getSlotProps is not defined, so no internal event handlers are defined,\n // so we can simply merge all the props without having to worry about extracting event handlers.\n const joinedClasses = clsx(additionalProps?.className, className, externalForwardedProps?.className, externalSlotProps?.className);\n const mergedStyle = {\n ...additionalProps?.style,\n ...externalForwardedProps?.style,\n ...externalSlotProps?.style\n };\n const props = {\n ...additionalProps,\n ...externalForwardedProps,\n ...externalSlotProps\n };\n if (joinedClasses.length > 0) {\n props.className = joinedClasses;\n }\n if (Object.keys(mergedStyle).length > 0) {\n props.style = mergedStyle;\n }\n return {\n props,\n internalRef: undefined\n };\n }\n\n // In this case, getSlotProps is responsible for calling the external event handlers.\n // We don't need to include them in the merged props because of this.\n\n const eventHandlers = extractEventHandlers({\n ...externalForwardedProps,\n ...externalSlotProps\n });\n const componentsPropsWithoutEventHandlers = omitEventHandlers(externalSlotProps);\n const otherPropsWithoutEventHandlers = omitEventHandlers(externalForwardedProps);\n const internalSlotProps = getSlotProps(eventHandlers);\n\n // The order of classes is important here.\n // Emotion (that we use in libraries consuming Base UI) depends on this order\n // to properly override style. It requires the most important classes to be last\n // (see https://github.com/mui/material-ui/pull/33205) for the related discussion.\n const joinedClasses = clsx(internalSlotProps?.className, additionalProps?.className, className, externalForwardedProps?.className, externalSlotProps?.className);\n const mergedStyle = {\n ...internalSlotProps?.style,\n ...additionalProps?.style,\n ...externalForwardedProps?.style,\n ...externalSlotProps?.style\n };\n const props = {\n ...internalSlotProps,\n ...additionalProps,\n ...otherPropsWithoutEventHandlers,\n ...componentsPropsWithoutEventHandlers\n };\n if (joinedClasses.length > 0) {\n props.className = joinedClasses;\n }\n if (Object.keys(mergedStyle).length > 0) {\n props.style = mergedStyle;\n }\n return {\n props,\n internalRef: internalSlotProps.ref\n };\n}\nexport default mergeSlotProps;","export default function ownerDocument(node) {\n return node && node.ownerDocument || document;\n}","import ownerDocument from \"../ownerDocument/index.js\";\nexport default function ownerWindow(node) {\n const doc = ownerDocument(node);\n return doc.defaultView || window;\n}","/**\n * If `componentProps` is a function, calls it with the provided `ownerState`.\n * Otherwise, just returns `componentProps`.\n */\nfunction resolveComponentProps(componentProps, ownerState, slotState) {\n if (typeof componentProps === 'function') {\n return componentProps(ownerState, slotState);\n }\n return componentProps;\n}\nexport default resolveComponentProps;","'use client';\n\n// TODO: uncomment once we enable eslint-plugin-react-compiler // eslint-disable-next-line react-compiler/react-compiler -- process.env never changes, dependency arrays are intentionally ignored\n/* eslint-disable react-hooks/rules-of-hooks, react-hooks/exhaustive-deps */\nimport * as React from 'react';\nexport default function useControlled({\n controlled,\n default: defaultProp,\n name,\n state = 'value'\n}) {\n // isControlled is ignored in the hook dependency lists as it should never change.\n const {\n current: isControlled\n } = React.useRef(controlled !== undefined);\n const [valueState, setValue] = React.useState(defaultProp);\n const value = isControlled ? controlled : valueState;\n if (process.env.NODE_ENV !== 'production') {\n React.useEffect(() => {\n if (isControlled !== (controlled !== undefined)) {\n console.error([`MUI: A component is changing the ${isControlled ? '' : 'un'}controlled ${state} state of ${name} to be ${isControlled ? 'un' : ''}controlled.`, 'Elements should not switch from uncontrolled to controlled (or vice versa).', `Decide between using a controlled or uncontrolled ${name} ` + 'element for the lifetime of the component.', \"The nature of the state is determined during the first render. It's considered controlled if the value is not `undefined`.\", 'More info: https://fb.me/react-controlled-components'].join('\\n'));\n }\n }, [state, name, controlled]);\n const {\n current: defaultValue\n } = React.useRef(defaultProp);\n React.useEffect(() => {\n // Object.is() is not equivalent to the === operator.\n // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is for more details.\n if (!isControlled && !Object.is(defaultValue, defaultProp)) {\n console.error([`MUI: A component is changing the default ${state} state of an uncontrolled ${name} after being initialized. ` + `To suppress this warning opt to use a controlled ${name}.`].join('\\n'));\n }\n }, [JSON.stringify(defaultProp)]);\n }\n const setValueIfUncontrolled = React.useCallback(newValue => {\n if (!isControlled) {\n setValue(newValue);\n }\n }, []);\n return [value, setValueIfUncontrolled];\n}","'use client';\n\nimport * as React from 'react';\nlet globalId = 0;\n\n// TODO React 17: Remove `useGlobalId` once React 17 support is removed\nfunction useGlobalId(idOverride) {\n const [defaultId, setDefaultId] = React.useState(idOverride);\n const id = idOverride || defaultId;\n React.useEffect(() => {\n if (defaultId == null) {\n // Fallback to this default id when possible.\n // Use the incrementing value for client-side rendering only.\n // We can't use it server-side.\n // If you want to use random values please consider the Birthday Problem: https://en.wikipedia.org/wiki/Birthday_problem\n globalId += 1;\n setDefaultId(`mui-${globalId}`);\n }\n }, [defaultId]);\n return id;\n}\n\n// See https://github.com/mui/material-ui/issues/41190#issuecomment-2040873379 for why\nconst safeReact = {\n ...React\n};\nconst maybeReactUseId = safeReact.useId;\n\n/**\n *\n * @example \n * @param idOverride\n * @returns {string}\n */\nexport default function useId(idOverride) {\n // React.useId() is only available from React 17.0.0.\n if (maybeReactUseId !== undefined) {\n const reactId = maybeReactUseId();\n return idOverride ?? reactId;\n }\n\n // TODO: uncomment once we enable eslint-plugin-react-compiler // eslint-disable-next-line react-compiler/react-compiler\n // eslint-disable-next-line react-hooks/rules-of-hooks -- `React.useId` is invariant at runtime.\n return useGlobalId(idOverride);\n}","'use client';\n\nimport useForkRef from \"../useForkRef/index.js\";\nimport appendOwnerState from \"../appendOwnerState/index.js\";\nimport mergeSlotProps from \"../mergeSlotProps/index.js\";\nimport resolveComponentProps from \"../resolveComponentProps/index.js\";\n/**\n * @ignore - do not document.\n * Builds the props to be passed into the slot of an unstyled component.\n * It merges the internal props of the component with the ones supplied by the user, allowing to customize the behavior.\n * If the slot component is not a host component, it also merges in the `ownerState`.\n *\n * @param parameters.getSlotProps - A function that returns the props to be passed to the slot component.\n */\nfunction useSlotProps(parameters) {\n const {\n elementType,\n externalSlotProps,\n ownerState,\n skipResolvingSlotProps = false,\n ...other\n } = parameters;\n const resolvedComponentsProps = skipResolvingSlotProps ? {} : resolveComponentProps(externalSlotProps, ownerState);\n const {\n props: mergedProps,\n internalRef\n } = mergeSlotProps({\n ...other,\n externalSlotProps: resolvedComponentsProps\n });\n const ref = useForkRef(internalRef, resolvedComponentsProps?.ref, parameters.additionalProps?.ref);\n const props = appendOwnerState(elementType, {\n ...mergedProps,\n ref\n }, ownerState);\n return props;\n}\nexport default useSlotProps;","export default {\n disabled: false\n};","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport config from './config';\nimport { timeoutsShape } from './utils/PropTypes';\nimport TransitionGroupContext from './TransitionGroupContext';\nimport { forceReflow } from './utils/reflow';\nexport var UNMOUNTED = 'unmounted';\nexport var EXITED = 'exited';\nexport var ENTERING = 'entering';\nexport var ENTERED = 'entered';\nexport var EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n * transition: `opacity ${duration}ms ease-in-out`,\n * opacity: 0,\n * }\n *\n * const transitionStyles = {\n * entering: { opacity: 1 },\n * entered: { opacity: 1 },\n * exiting: { opacity: 0 },\n * exited: { opacity: 0 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n * \n * {state => (\n *
\n * I'm a fade Transition!\n *
\n * )}\n * \n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n * - `'entering'`\n * - `'entered'`\n * - `'exiting'`\n * - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
\n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nvar Transition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n } // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n ;\n\n var _proto = Transition.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n\n if (nextStatus === ENTERING) {\n if (this.props.unmountOnExit || this.props.mountOnEnter) {\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this); // https://github.com/reactjs/react-transition-group/pull/749\n // With unmountOnExit or mountOnEnter, the enter animation should happen at the transition between `exited` and `entering`.\n // To make the animation happen, we have to separate each rendering and avoid being processed as batched.\n\n if (node) forceReflow(node);\n }\n\n this.performEnter(mounting);\n } else {\n this.performExit();\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context ? this.context.isMounting : mounting;\n\n var _ref2 = this.props.nodeRef ? [appearing] : [ReactDOM.findDOMNode(this), appearing],\n maybeNode = _ref2[0],\n maybeAppearing = _ref2[1];\n\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter || config.disabled) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode);\n });\n return;\n }\n\n this.props.onEnter(maybeNode, maybeAppearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(maybeNode, maybeAppearing);\n\n _this2.onTransitionEnd(enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode, maybeAppearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit() {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts();\n var maybeNode = this.props.nodeRef ? undefined : ReactDOM.findDOMNode(this); // no exit animation skip right to EXITED\n\n if (!exit || config.disabled) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n return;\n }\n\n this.props.onExit(maybeNode);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(maybeNode);\n\n _this3.onTransitionEnd(timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(timeout, handler) {\n this.setNextCallback(handler);\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n var _ref3 = this.props.nodeRef ? [this.nextCallback] : [node, this.nextCallback],\n maybeNode = _ref3[0],\n maybeNextCallback = _ref3[1];\n\n this.props.addEndListener(maybeNode, maybeNextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n _in = _this$props.in,\n _mountOnEnter = _this$props.mountOnEnter,\n _unmountOnExit = _this$props.unmountOnExit,\n _appear = _this$props.appear,\n _enter = _this$props.enter,\n _exit = _this$props.exit,\n _timeout = _this$props.timeout,\n _addEndListener = _this$props.addEndListener,\n _onEnter = _this$props.onEnter,\n _onEntering = _this$props.onEntering,\n _onEntered = _this$props.onEntered,\n _onExit = _this$props.onExit,\n _onExiting = _this$props.onExiting,\n _onExited = _this$props.onExited,\n _nodeRef = _this$props.nodeRef,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"in\", \"mountOnEnter\", \"unmountOnExit\", \"appear\", \"enter\", \"exit\", \"timeout\", \"addEndListener\", \"onEnter\", \"onEntering\", \"onEntered\", \"onExit\", \"onExiting\", \"onExited\", \"nodeRef\"]);\n\n return (\n /*#__PURE__*/\n // allows for nested Transitions\n React.createElement(TransitionGroupContext.Provider, {\n value: null\n }, typeof children === 'function' ? children(status, childProps) : React.cloneElement(React.Children.only(children), childProps))\n );\n };\n\n return Transition;\n}(React.Component);\n\nTransition.contextType = TransitionGroupContext;\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * A React reference to DOM element that need to transition:\n * https://stackoverflow.com/a/51127130/4671932\n *\n * - When `nodeRef` prop is used, `node` is not passed to callback functions\n * (e.g. `onEnter`) because user already has direct access to the node.\n * - When changing `key` prop of `Transition` in a `TransitionGroup` a new\n * `nodeRef` need to be provided to `Transition` with changed `key` prop\n * (see\n * [test/CSSTransition-test.js](https://github.com/reactjs/react-transition-group/blob/13435f897b3ab71f6e19d724f145596f5910581c/test/CSSTransition-test.js#L362-L437)).\n */\n nodeRef: PropTypes.shape({\n current: typeof Element === 'undefined' ? PropTypes.any : function (propValue, key, componentName, location, propFullName, secret) {\n var value = propValue[key];\n return PropTypes.instanceOf(value && 'ownerDocument' in value ? value.ownerDocument.defaultView.Element : Element)(propValue, key, componentName, location, propFullName, secret);\n }\n }),\n\n /**\n * A `function` child can be used instead of a React element. This function is\n * called with the current transition status (`'entering'`, `'entered'`,\n * `'exiting'`, `'exited'`), which can be used to apply context\n * specific props to a component.\n *\n * ```jsx\n * \n * {state => (\n * \n * )}\n * \n * ```\n */\n children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n /**\n * Show the component; triggers the enter or exit states\n */\n in: PropTypes.bool,\n\n /**\n * By default the child component is mounted immediately along with\n * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n */\n mountOnEnter: PropTypes.bool,\n\n /**\n * By default the child component stays mounted after it reaches the `'exited'` state.\n * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n */\n unmountOnExit: PropTypes.bool,\n\n /**\n * By default the child component does not perform the enter transition when\n * it first mounts, regardless of the value of `in`. If you want this\n * behavior, set both `appear` and `in` to `true`.\n *\n * > **Note**: there are no special appear states like `appearing`/`appeared`, this prop\n * > only adds an additional enter transition. However, in the\n * > `` component that first enter transition does result in\n * > additional `.appear-*` classes, that way you can choose to style it\n * > differently.\n */\n appear: PropTypes.bool,\n\n /**\n * Enable or disable enter transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * Enable or disable exit transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * The duration of the transition, in milliseconds.\n * Required unless `addEndListener` is provided.\n *\n * You may specify a single timeout for all transitions:\n *\n * ```jsx\n * timeout={500}\n * ```\n *\n * or individually:\n *\n * ```jsx\n * timeout={{\n * appear: 500,\n * enter: 300,\n * exit: 500,\n * }}\n * ```\n *\n * - `appear` defaults to the value of `enter`\n * - `enter` defaults to `0`\n * - `exit` defaults to `0`\n *\n * @type {number | { enter?: number, exit?: number, appear?: number }}\n */\n timeout: function timeout(props) {\n var pt = timeoutsShape;\n if (!props.addEndListener) pt = pt.isRequired;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return pt.apply(void 0, [props].concat(args));\n },\n\n /**\n * Add a custom transition end trigger. Called with the transitioning\n * DOM node and a `done` callback. Allows for more fine grained transition end\n * logic. Timeouts are still used as a fallback if provided.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * ```jsx\n * addEndListener={(node, done) => {\n * // use the css transitionend event to mark the finish of a transition\n * node.addEventListener('transitionend', done, false);\n * }}\n * ```\n */\n addEndListener: PropTypes.func,\n\n /**\n * Callback fired before the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired after the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired after the \"entered\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired before the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired after the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExiting: PropTypes.func,\n\n /**\n * Callback fired after the \"exited\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExited: PropTypes.func\n} : {}; // Name the function so it is clearer in the documentation\n\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = UNMOUNTED;\nTransition.EXITED = EXITED;\nTransition.ENTERING = ENTERING;\nTransition.ENTERED = ENTERED;\nTransition.EXITING = EXITING;\nexport default Transition;","export var forceReflow = function forceReflow(node) {\n return node.scrollTop;\n};"],"names":["getBackdropUtilityClass","slot","generateUtilityClass","generateUtilityClasses","BackdropRoot","styled","name","overridesResolver","props","styles","ownerState","root","invisible","position","display","alignItems","justifyContent","right","bottom","top","left","backgroundColor","WebkitTapHighlightColor","variants","style","inProps","ref","children","className","component","open","components","componentsProps","slotProps","slots","TransitionComponent","TransitionComponentProp","transitionDuration","other","classes","composeClasses","useUtilityClasses","externalForwardedProps","transition","Root","RootSlot","rootProps","useSlot","elementType","clsx","TransitionSlot","transitionProps","Fade","transitionPropsRemoved","rest","removeOwnerState","in","timeout","entering","opacity","entered","theme","defaultTimeout","enter","transitions","duration","enteringScreen","exit","leavingScreen","addEndListener","appear","easing","inProp","onEnter","onEntered","onEntering","onExit","onExited","onExiting","nodeRef","handleRef","normalizedTransitionCallback","callback","maybeIsAppearing","node","current","undefined","handleEntering","handleEnter","isAppearing","mode","webkitTransition","create","handleEntered","handleExiting","handleExit","handleExited","next","state","childProps","visibility","getScale","value","transform","isWebKit154","navigator","test","userAgent","Grow","timer","autoTimeout","delay","transitionTimingFunction","getAutoHeightDuration","clientHeight","join","start","muiSupportAuto","getListUtilityClass","ListRoot","disablePadding","padding","dense","subheader","listStyle","margin","paddingTop","paddingBottom","context","ListContext","Provider","as","getPopoverUtilityClass","getOffsetTop","rect","vertical","offset","height","getOffsetLeft","horizontal","width","getTransformOriginValue","transformOrigin","map","n","resolveAnchorEl","anchorEl","PopoverRoot","Modal","PopoverPaper","Paper","paper","overflowY","overflowX","minWidth","minHeight","maxWidth","maxHeight","outline","action","anchorOrigin","anchorPosition","anchorReference","container","containerProp","elevation","marginThreshold","PaperProps","PaperPropsProp","transitionDurationProp","TransitionProps","disableScrollLock","externalPaperSlotProps","paperRef","getAnchorOffset","resolvedAnchorEl","anchorRect","nodeType","ownerDocument","body","getBoundingClientRect","getTransformOrigin","elemRect","getPositioningStyle","element","offsetWidth","offsetHeight","elemTransformOrigin","anchorOffset","containerWindow","ownerWindow","heightThreshold","innerHeight","widthThreshold","innerWidth","diff","Math","round","isPositioned","setIsPositioned","setPositioningStyles","positioning","setProperty","window","addEventListener","removeEventListener","updatePosition","handleResize","clear","PaperSlot","paperProps","additionalProps","rootSlotPropsProp","backdrop","handlePaperRef","useForkRef","isHostComponent","getMenuUtilityClass","RTL_ORIGIN","LTR_ORIGIN","MenuRoot","shouldForwardProp","prop","rootShouldForwardProp","MenuPaper","WebkitOverflowScrolling","MenuMenuList","MenuList","list","autoFocus","disableAutoFocusItem","MenuListProps","onClose","PopoverClasses","variant","isRtl","autoFocusItem","menuListActionsRef","activeItemIndex","child","index","disabled","selected","paperExternalSlotProps","rootSlotProps","useSlotProps","externalSlotProps","paperSlotProps","adjustStyleForScrollbar","direction","onKeyDown","event","key","preventDefault","actions","nextItem","item","disableListWrap","firstChild","nextElementSibling","previousItem","lastChild","previousElementSibling","textCriteriaMatches","nextFocus","textCriteria","text","innerText","textContent","trim","toLowerCase","length","repeating","keys","startsWith","moveFocus","currentFocus","disabledItemsFocusable","traversalFunction","wrappedOnce","nextFocusDisabled","getAttribute","hasAttribute","focus","listRef","textCriteriaRef","previousKeyMatched","lastTime","useEnhancedEffect","containerElement","noExplicitWidth","scrollbarSize","forEach","muiSkipListHighlight","type","items","newChildProps","tabIndex","List","role","ctrlKey","metaKey","altKey","activeElement","criteria","lowerKey","currTime","performance","now","push","keepFocusOnCurrent","ariaHidden","hide","setAttribute","removeAttribute","getPaddingRight","parseInt","getComputedStyle","paddingRight","ariaHiddenSiblings","mountElement","currentElement","elementsToExclude","blacklist","call","isNotExcludedElement","includes","isNotForbiddenElement","isForbiddenTagName","tagName","isInputHidden","isAriaHiddenForbiddenOnElement","findIndexOf","idx","some","handleContainer","containerInfo","restoreStyle","doc","documentElement","clientWidth","scrollHeight","isOverflowing","getScrollbarSize","property","el","fixedElements","querySelectorAll","scrollContainer","parentNode","DocumentFragment","parent","parentElement","nodeName","overflow","removeProperty","noop","manager","constructor","this","modals","containers","add","modal","modalIndex","indexOf","modalRef","hiddenSiblings","getHiddenSiblings","mount","containerIndex","restore","remove","ariaHiddenState","splice","nextTop","isTopModal","parameters","disableEscapeKeyDown","closeAfterTransition","onTransitionEnter","onTransitionExited","rootRef","mountNodeRef","exited","setExited","hasTransition","hasOwnProperty","getHasTransition","ariaHiddenProp","getModal","handleMounted","scrollTop","handleOpen","useEventCallback","resolvedContainer","getContainer","handlePortalRef","handleClose","createHandleKeyDown","otherHandlers","which","stopPropagation","createHandleBackdropClick","onClick","target","currentTarget","getRootProps","propsEventHandlers","extractEventHandlers","externalEventHandlers","getBackdropProps","getTransitionProps","createChainedFunction","portalRef","getModalUtilityClass","ModalRoot","hidden","memoTheme","zIndex","vars","ModalBackdrop","Backdrop","BackdropComponent","BackdropProps","classesProp","disableAutoFocus","disableEnforceFocus","disablePortal","disableRestoreFocus","hideBackdrop","keepMounted","onBackdropClick","propsWithDefaults","getSlotProps","BackdropSlot","backdropProps","backdropRef","Portal","FocusTrap","isEnabled","forwardedRef","mountNode","setMountNode","document","newProps","candidatesSelector","defaultGetTabbable","regularTabNodes","orderedTabNodes","Array","from","i","nodeTabIndex","tabindexAttr","Number","isNaN","contentEditable","getTabIndex","getRadio","selector","querySelector","roving","isNonTabbableRadio","isNodeMatchingSelectorFocusable","documentOrder","sort","a","b","concat","defaultIsEnabled","getTabbable","ignoreNextEnforceFocus","sentinelStart","sentinelEnd","nodeToRestore","reactFocusEventTarget","activated","lastKeydown","contains","loopFocus","nativeEvent","shiftKey","contain","rootElement","hasFocus","tabbable","isShiftTab","Boolean","focusNext","focusPrevious","interval","setInterval","clearInterval","handleFocusSentinel","relatedTarget","onFocus","childrenPropsHandler","u","Symbol","for","c","d","e","f","g","h","k","l","m","p","q","t","v","r","$$typeof","reflow","options","transitionDelay","initialElementType","internalForwardedProps","useSlotPropsParams","rootComponent","resolvedComponentsProps","slotComponent","mergedProps","internalRef","LeafComponent","otherProps","funcs","reduce","acc","func","args","apply","debounce","wait","debounced","clearTimeout","setTimeout","object","excludeKeys","result","Object","filter","match","getReactElementRef","win","documentWidth","joinedClasses","mergedStyle","eventHandlers","componentsPropsWithoutEventHandlers","otherPropsWithoutEventHandlers","internalSlotProps","defaultView","componentProps","slotState","useControlled","controlled","default","defaultProp","isControlled","valueState","setValue","newValue","globalId","maybeReactUseId","useId","idOverride","reactId","defaultId","setDefaultId","id","useGlobalId","skipResolvingSlotProps","UNMOUNTED","EXITED","ENTERING","ENTERED","EXITING","Transition","_React$Component","_this","initialStatus","isMounting","appearStatus","unmountOnExit","mountOnEnter","status","nextCallback","getDerivedStateFromProps","_ref","prevState","_proto","prototype","componentDidMount","updateStatus","componentDidUpdate","prevProps","nextStatus","componentWillUnmount","cancelNextCallback","getTimeouts","mounting","performEnter","performExit","setState","_this2","appearing","_ref2","maybeNode","maybeAppearing","timeouts","enterTimeout","config","safeSetState","onTransitionEnd","_this3","cancel","nextState","setNextCallback","_this4","active","handler","doesNotHaveTimeoutOrListener","_ref3","maybeNextCallback","render","_this$props","TransitionGroupContext","only","contextType","propTypes","defaultProps","forceReflow"],"sourceRoot":""}