8 lines
750 KiB
Plaintext
8 lines
750 KiB
Plaintext
{
|
||
"version": 3,
|
||
"sources": ["../../@mui/base/ClickAwayListener/ClickAwayListener.js", "../../@mui/base/FocusTrap/FocusTrap.js", "../../@mui/base/unstable_useModal/ModalManager.js", "../../@mui/base/NoSsr/NoSsr.js", "../../@mui/base/TextareaAutosize/TextareaAutosize.js", "../../@mui/base/useAutocomplete/useAutocomplete.js", "../../@mui/material/GlobalStyles/GlobalStyles.js", "../../@mui/material/InputBase/inputBaseClasses.js", "../../@mui/material/InputBase/InputBase.js", "../../@mui/base/Badge/Badge.js", "../../@mui/base/useBadge/useBadge.js", "../../@mui/base/Badge/badgeClasses.js", "../../@mui/base/Button/Button.js", "../../@mui/base/Button/buttonClasses.js", "../../@mui/base/useButton/useButton.js", "../../@mui/base/Dropdown/Dropdown.js", "../../@mui/base/useDropdown/DropdownContext.js", "../../@mui/base/useDropdown/useDropdown.js", "../../@mui/base/utils/useControllableReducer.js", "../../@mui/base/useDropdown/useDropdown.types.js", "../../@mui/base/useDropdown/dropdownReducer.js", "../../@mui/base/FormControl/FormControl.js", "../../@mui/base/FormControl/FormControlContext.js", "../../@mui/base/FormControl/formControlClasses.js", "../../@mui/base/FormControl/useFormControlContext.js", "../../@mui/base/Input/Input.js", "../../@mui/base/Input/inputClasses.js", "../../@mui/base/useInput/useInput.js", "../../@mui/base/Menu/Menu.js", "../../@mui/base/Menu/menuClasses.js", "../../@mui/base/useMenu/useMenu.js", "../../@mui/base/useMenu/menuReducer.js", "../../@mui/base/useList/useList.js", "../../@mui/base/useList/listActions.types.js", "../../@mui/base/useList/listReducer.js", "../../@mui/base/utils/useTextNavigation.js", "../../@mui/base/useList/useListItem.js", "../../@mui/base/useList/ListContext.js", "../../@mui/base/useCompound/useCompoundParent.js", "../../@mui/base/useCompound/useCompoundItem.js", "../../@mui/base/utils/combineHooksSlotProps.js", "../../@mui/base/useMenu/MenuProvider.js", "../../@mui/base/Unstable_Popup/Popup.js", "../../@floating-ui/utils/dist/floating-ui.utils.mjs", "../../@floating-ui/core/dist/floating-ui.core.mjs", "../../@floating-ui/utils/dist/floating-ui.utils.dom.mjs", "../../@floating-ui/dom/dist/floating-ui.dom.mjs", "../../@floating-ui/react-dom/dist/floating-ui.react-dom.mjs", "../../@mui/base/Unstable_Popup/popupClasses.js", "../../@mui/base/useTransition/useTransitionStateManager.js", "../../@mui/base/useTransition/TransitionContext.js", "../../@mui/base/useTransition/useTransitionTrigger.js", "../../@mui/base/Unstable_Popup/PopupContext.js", "../../@mui/base/MenuButton/MenuButton.js", "../../@mui/base/useMenuButton/useMenuButton.js", "../../@mui/base/MenuButton/menuButtonClasses.js", "../../@mui/base/MenuItem/MenuItem.js", "../../@mui/base/MenuItem/menuItemClasses.js", "../../@mui/base/useMenuItem/useMenuItem.js", "../../@mui/base/useMenuItem/useMenuItemContextStabilizer.js", "../../@mui/base/Modal/Modal.js", "../../@mui/base/unstable_useModal/useModal.js", "../../@mui/base/Modal/modalClasses.js", "../../@mui/base/Unstable_NumberInput/NumberInput.js", "../../@mui/base/Unstable_NumberInput/numberInputClasses.js", "../../@mui/base/unstable_useNumberInput/useNumberInput.js", "../../@mui/base/unstable_useNumberInput/numberInputAction.types.js", "../../@mui/base/unstable_useNumberInput/numberInputReducer.js", "../../@mui/base/unstable_useNumberInput/utils.js", "../../@mui/base/OptionGroup/OptionGroup.js", "../../@mui/base/OptionGroup/optionGroupClasses.js", "../../@mui/base/Option/Option.js", "../../@mui/base/Option/optionClasses.js", "../../@mui/base/useOption/useOption.js", "../../@mui/base/useOption/useOptionContextStabilizer.js", "../../@mui/base/Select/Select.js", "../../@mui/base/useSelect/useSelect.js", "../../@mui/base/useSelect/useSelect.types.js", "../../@mui/base/useSelect/defaultOptionStringifier.js", "../../@mui/base/useSelect/selectReducer.js", "../../@mui/base/useSelect/SelectProvider.js", "../../@mui/base/Select/selectClasses.js", "../../@mui/base/Slider/Slider.js", "../../@mui/base/Slider/sliderClasses.js", "../../@mui/base/useSlider/useSlider.js", "../../@mui/base/Snackbar/Snackbar.js", "../../@mui/base/Snackbar/snackbarClasses.js", "../../@mui/base/useSnackbar/useSnackbar.js", "../../@mui/base/Switch/Switch.js", "../../@mui/base/useSwitch/useSwitch.js", "../../@mui/base/Switch/switchClasses.js", "../../@mui/base/TablePagination/TablePagination.js", "../../@mui/base/TablePagination/TablePaginationActions.js", "../../@mui/base/TablePagination/tablePaginationClasses.js", "../../@mui/base/TabPanel/TabPanel.js", "../../@mui/base/TabPanel/tabPanelClasses.js", "../../@mui/base/useTabPanel/useTabPanel.js", "../../@mui/base/Tabs/Tabs.js", "../../@mui/base/Tabs/tabsClasses.js", "../../@mui/base/useTabs/useTabs.js", "../../@mui/base/useTabs/TabsProvider.js", "../../@mui/base/Tabs/TabsContext.js", "../../@mui/base/TabsList/TabsList.js", "../../@mui/base/TabsList/tabsListClasses.js", "../../@mui/base/useTabsList/useTabsList.js", "../../@mui/base/useTabsList/useTabsList.types.js", "../../@mui/base/useTabsList/tabsListReducer.js", "../../@mui/base/useTabsList/TabsListProvider.js", "../../@mui/base/Tab/Tab.js", "../../@mui/base/Tab/tabClasses.js", "../../@mui/base/useTab/useTab.js", "../../@mui/base/Transitions/CssAnimation.js", "../../@mui/base/Transitions/CssTransition.js", "../../@mui/material/OutlinedInput/outlinedInputClasses.js"],
|
||
"sourcesContent": ["'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { elementAcceptingRef, exactProp, unstable_ownerDocument as ownerDocument, unstable_useForkRef as useForkRef, unstable_useEventCallback as useEventCallback } from '@mui/utils';\n\n// TODO: return `EventHandlerName extends `on${infer EventName}` ? Lowercase<EventName> : never` once generatePropTypes runs with TS 4.1\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction mapEventPropToEvent(eventProp) {\n return eventProp.substring(2).toLowerCase();\n}\nfunction clickedRootScrollbar(event, doc) {\n return doc.documentElement.clientWidth < event.clientX || doc.documentElement.clientHeight < event.clientY;\n}\n/**\n * Listen for click events that occur somewhere in the document, outside of the element itself.\n * For instance, if you need to hide a menu when people click anywhere else on your page.\n *\n * Demos:\n *\n * - [Click-Away Listener](https://mui.com/base-ui/react-click-away-listener/)\n *\n * API:\n *\n * - [ClickAwayListener API](https://mui.com/base-ui/react-click-away-listener/components-api/#click-away-listener)\n */\nfunction ClickAwayListener(props) {\n const {\n children,\n disableReactTree = false,\n mouseEvent = 'onClick',\n onClickAway,\n touchEvent = 'onTouchEnd'\n } = props;\n const movedRef = React.useRef(false);\n const nodeRef = React.useRef(null);\n const activatedRef = React.useRef(false);\n const syntheticEventRef = React.useRef(false);\n React.useEffect(() => {\n // Ensure that this component is not \"activated\" synchronously.\n // https://github.com/facebook/react/issues/20074\n setTimeout(() => {\n activatedRef.current = true;\n }, 0);\n return () => {\n activatedRef.current = false;\n };\n }, []);\n const handleRef = useForkRef(\n // @ts-expect-error TODO upstream fix\n children.ref, nodeRef);\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 const handleClickAway = useEventCallback(event => {\n // Given developers can stop the propagation of the synthetic event,\n // we can only be confident with a positive value.\n const insideReactTree = syntheticEventRef.current;\n syntheticEventRef.current = false;\n const doc = ownerDocument(nodeRef.current);\n\n // 1. IE11 support, which trigger the handleClickAway even after the unbind\n // 2. The child might render null.\n // 3. Behave like a blur listener.\n if (!activatedRef.current || !nodeRef.current || 'clientX' in event && clickedRootScrollbar(event, doc)) {\n return;\n }\n\n // Do not act if user performed touchmove\n if (movedRef.current) {\n movedRef.current = false;\n return;\n }\n let insideDOM;\n\n // If not enough, can use https://github.com/DieterHolvoet/event-propagation-path/blob/master/propagationPath.js\n if (event.composedPath) {\n insideDOM = event.composedPath().indexOf(nodeRef.current) > -1;\n } else {\n insideDOM = !doc.documentElement.contains(\n // @ts-expect-error returns `false` as intended when not dispatched from a Node\n event.target) || nodeRef.current.contains(\n // @ts-expect-error returns `false` as intended when not dispatched from a Node\n event.target);\n }\n if (!insideDOM && (disableReactTree || !insideReactTree)) {\n onClickAway(event);\n }\n });\n\n // Keep track of mouse/touch events that bubbled up through the portal.\n const createHandleSynthetic = handlerName => event => {\n syntheticEventRef.current = true;\n const childrenPropsHandler = children.props[handlerName];\n if (childrenPropsHandler) {\n childrenPropsHandler(event);\n }\n };\n const childrenProps = {\n ref: handleRef\n };\n if (touchEvent !== false) {\n childrenProps[touchEvent] = createHandleSynthetic(touchEvent);\n }\n React.useEffect(() => {\n if (touchEvent !== false) {\n const mappedTouchEvent = mapEventPropToEvent(touchEvent);\n const doc = ownerDocument(nodeRef.current);\n const handleTouchMove = () => {\n movedRef.current = true;\n };\n doc.addEventListener(mappedTouchEvent, handleClickAway);\n doc.addEventListener('touchmove', handleTouchMove);\n return () => {\n doc.removeEventListener(mappedTouchEvent, handleClickAway);\n doc.removeEventListener('touchmove', handleTouchMove);\n };\n }\n return undefined;\n }, [handleClickAway, touchEvent]);\n if (mouseEvent !== false) {\n childrenProps[mouseEvent] = createHandleSynthetic(mouseEvent);\n }\n React.useEffect(() => {\n if (mouseEvent !== false) {\n const mappedMouseEvent = mapEventPropToEvent(mouseEvent);\n const doc = ownerDocument(nodeRef.current);\n doc.addEventListener(mappedMouseEvent, handleClickAway);\n return () => {\n doc.removeEventListener(mappedMouseEvent, handleClickAway);\n };\n }\n return undefined;\n }, [handleClickAway, mouseEvent]);\n return /*#__PURE__*/_jsx(React.Fragment, {\n children: /*#__PURE__*/React.cloneElement(children, childrenProps)\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? ClickAwayListener.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 wrapped element.\n */\n children: elementAcceptingRef.isRequired,\n /**\n * If `true`, the React tree is ignored and only the DOM tree is considered.\n * This prop changes how portaled elements are handled.\n * @default false\n */\n disableReactTree: PropTypes.bool,\n /**\n * The mouse event to listen to. You can disable the listener by providing `false`.\n * @default 'onClick'\n */\n mouseEvent: PropTypes.oneOf(['onClick', 'onMouseDown', 'onMouseUp', 'onPointerDown', 'onPointerUp', false]),\n /**\n * Callback fired when a \"click away\" event is detected.\n */\n onClickAway: PropTypes.func.isRequired,\n /**\n * The touch event to listen to. You can disable the listener by providing `false`.\n * @default 'onTouchEnd'\n */\n touchEvent: PropTypes.oneOf(['onTouchEnd', 'onTouchStart', false])\n} : void 0;\nif (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line\n ClickAwayListener['propTypes' + ''] = exactProp(ClickAwayListener.propTypes);\n}\nexport { ClickAwayListener };", "'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 } from '@mui/utils';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { 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://bugs.chromium.org/p/chromium/issues/detail?id=661108&q=contenteditable%20tabindex&can=2\n // so if they don't have a tabindex attribute specifically set, assume it's 0.\n // in Chrome, <details/>, <audio controls/> and <video controls/> 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 * Utility component that locks focus inside the component.\n *\n * Demos:\n *\n * - [Focus Trap](https://mui.com/base-ui/react-focus-trap/)\n *\n * API:\n *\n * - [FocusTrap API](https://mui.com/base-ui/react-focus-trap/components-api/#focus-trap)\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 // @ts-expect-error TODO upstream fix\n const handleRef = useForkRef(children.ref, 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 var _lastKeydown$current, _lastKeydown$current2;\n const isShiftTab = Boolean(((_lastKeydown$current = lastKeydown.current) == null ? void 0 : _lastKeydown$current.shiftKey) && ((_lastKeydown$current2 = lastKeydown.current) == null ? void 0 : _lastKeydown$current2.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 // e.g. 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 { FocusTrap };", "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, show) {\n if (show) {\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.indexOf(element.tagName) !== -1;\n const isInputHidden = element.tagName === 'INPUT' && element.getAttribute('type') === 'hidden';\n return isForbiddenTagName || isInputHidden;\n}\nfunction ariaHiddenSiblings(container, mountElement, currentElement, elementsToExclude, show) {\n const blacklist = [mountElement, currentElement, ...elementsToExclude];\n [].forEach.call(container.children, element => {\n const isNotExcludedElement = blacklist.indexOf(element) === -1;\n const isNotForbiddenElement = !isAriaHiddenForbiddenOnElement(element);\n if (isNotExcludedElement && isNotForbiddenElement) {\n ariaHidden(element, show);\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(ownerDocument(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 == null ? void 0 : 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.containers = void 0;\n this.modals = void 0;\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.indexOf(modal) !== -1);\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.indexOf(modal) !== -1);\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 PropTypes from 'prop-types';\nimport { exactProp, unstable_useEnhancedEffect as useEnhancedEffect } from '@mui/utils';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * NoSsr purposely removes components from the subject of Server Side Rendering (SSR).\n *\n * This component can be useful in a variety of situations:\n *\n * * Escape hatch for broken dependencies not supporting SSR.\n * * Improve the time-to-first paint on the client by only rendering above the fold.\n * * Reduce the rendering time on the server.\n * * Under too heavy server load, you can turn on service degradation.\n *\n * Demos:\n *\n * - [No SSR](https://mui.com/base-ui/react-no-ssr/)\n *\n * API:\n *\n * - [NoSsr API](https://mui.com/base-ui/react-no-ssr/components-api/#no-ssr)\n */\nfunction NoSsr(props) {\n const {\n children,\n defer = false,\n fallback = null\n } = props;\n const [mountedState, setMountedState] = React.useState(false);\n useEnhancedEffect(() => {\n if (!defer) {\n setMountedState(true);\n }\n }, [defer]);\n React.useEffect(() => {\n if (defer) {\n setMountedState(true);\n }\n }, [defer]);\n\n // We need the Fragment here to force react-docgen to recognise NoSsr as a component.\n return /*#__PURE__*/_jsx(React.Fragment, {\n children: mountedState ? children : fallback\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? NoSsr.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 * You can wrap a node.\n */\n children: PropTypes.node,\n /**\n * If `true`, the component will not only prevent server-side rendering.\n * It will also defer the rendering of the children into a different screen frame.\n * @default false\n */\n defer: PropTypes.bool,\n /**\n * The fallback content to display.\n * @default null\n */\n fallback: PropTypes.node\n} : void 0;\nif (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line\n NoSsr['propTypes' + ''] = exactProp(NoSsr.propTypes);\n}\nexport { NoSsr };", "'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"onChange\", \"maxRows\", \"minRows\", \"style\", \"value\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { unstable_debounce as debounce, unstable_useForkRef as useForkRef, unstable_useEnhancedEffect as useEnhancedEffect, unstable_ownerWindow as ownerWindow } from '@mui/utils';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nfunction getStyleValue(value) {\n return parseInt(value, 10) || 0;\n}\nconst styles = {\n shadow: {\n // Visibility needed to hide the extra text area on iPads\n visibility: 'hidden',\n // Remove from the content flow\n position: 'absolute',\n // Ignore the scrollbar width\n overflow: 'hidden',\n height: 0,\n top: 0,\n left: 0,\n // Create a new layer, increase the isolation of the computed values\n transform: 'translateZ(0)'\n }\n};\nfunction isEmpty(obj) {\n return obj === undefined || obj === null || Object.keys(obj).length === 0 || obj.outerHeightStyle === 0 && !obj.overflowing;\n}\n\n/**\n *\n * Demos:\n *\n * - [Textarea Autosize](https://mui.com/base-ui/react-textarea-autosize/)\n * - [Textarea Autosize](https://mui.com/material-ui/react-textarea-autosize/)\n *\n * API:\n *\n * - [TextareaAutosize API](https://mui.com/base-ui/react-textarea-autosize/components-api/#textarea-autosize)\n */\nconst TextareaAutosize = /*#__PURE__*/React.forwardRef(function TextareaAutosize(props, forwardedRef) {\n const {\n onChange,\n maxRows,\n minRows = 1,\n style,\n value\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const {\n current: isControlled\n } = React.useRef(value != null);\n const inputRef = React.useRef(null);\n const handleRef = useForkRef(forwardedRef, inputRef);\n const shadowRef = React.useRef(null);\n const calculateTextareaStyles = React.useCallback(() => {\n const input = inputRef.current;\n const containerWindow = ownerWindow(input);\n const computedStyle = containerWindow.getComputedStyle(input);\n\n // If input's width is shrunk and it's not visible, don't sync height.\n if (computedStyle.width === '0px') {\n return {\n outerHeightStyle: 0,\n overflowing: false\n };\n }\n const inputShallow = shadowRef.current;\n inputShallow.style.width = computedStyle.width;\n inputShallow.value = input.value || props.placeholder || 'x';\n if (inputShallow.value.slice(-1) === '\\n') {\n // Certain fonts which overflow the line height will cause the textarea\n // to report a different scrollHeight depending on whether the last line\n // is empty. Make it non-empty to avoid this issue.\n inputShallow.value += ' ';\n }\n const boxSizing = computedStyle.boxSizing;\n const padding = getStyleValue(computedStyle.paddingBottom) + getStyleValue(computedStyle.paddingTop);\n const border = getStyleValue(computedStyle.borderBottomWidth) + getStyleValue(computedStyle.borderTopWidth);\n\n // The height of the inner content\n const innerHeight = inputShallow.scrollHeight;\n\n // Measure height of a textarea with a single row\n inputShallow.value = 'x';\n const singleRowHeight = inputShallow.scrollHeight;\n\n // The height of the outer content\n let outerHeight = innerHeight;\n if (minRows) {\n outerHeight = Math.max(Number(minRows) * singleRowHeight, outerHeight);\n }\n if (maxRows) {\n outerHeight = Math.min(Number(maxRows) * singleRowHeight, outerHeight);\n }\n outerHeight = Math.max(outerHeight, singleRowHeight);\n\n // Take the box sizing into account for applying this value as a style.\n const outerHeightStyle = outerHeight + (boxSizing === 'border-box' ? padding + border : 0);\n const overflowing = Math.abs(outerHeight - innerHeight) <= 1;\n return {\n outerHeightStyle,\n overflowing\n };\n }, [maxRows, minRows, props.placeholder]);\n const syncHeight = React.useCallback(() => {\n const textareaStyles = calculateTextareaStyles();\n if (isEmpty(textareaStyles)) {\n return;\n }\n const input = inputRef.current;\n input.style.height = `${textareaStyles.outerHeightStyle}px`;\n input.style.overflow = textareaStyles.overflowing ? 'hidden' : '';\n }, [calculateTextareaStyles]);\n useEnhancedEffect(() => {\n const handleResize = () => {\n syncHeight();\n };\n // Workaround a \"ResizeObserver loop completed with undelivered notifications\" error\n // in test.\n // Note that we might need to use this logic in production per https://github.com/WICG/resize-observer/issues/38\n // Also see https://github.com/mui/mui-x/issues/8733\n let rAF;\n const rAFHandleResize = () => {\n cancelAnimationFrame(rAF);\n rAF = requestAnimationFrame(() => {\n handleResize();\n });\n };\n const debounceHandleResize = debounce(handleResize);\n const input = inputRef.current;\n const containerWindow = ownerWindow(input);\n containerWindow.addEventListener('resize', debounceHandleResize);\n let resizeObserver;\n if (typeof ResizeObserver !== 'undefined') {\n resizeObserver = new ResizeObserver(process.env.NODE_ENV === 'test' ? rAFHandleResize : handleResize);\n resizeObserver.observe(input);\n }\n return () => {\n debounceHandleResize.clear();\n cancelAnimationFrame(rAF);\n containerWindow.removeEventListener('resize', debounceHandleResize);\n if (resizeObserver) {\n resizeObserver.disconnect();\n }\n };\n }, [calculateTextareaStyles, syncHeight]);\n useEnhancedEffect(() => {\n syncHeight();\n });\n const handleChange = event => {\n if (!isControlled) {\n syncHeight();\n }\n if (onChange) {\n onChange(event);\n }\n };\n return /*#__PURE__*/_jsxs(React.Fragment, {\n children: [/*#__PURE__*/_jsx(\"textarea\", _extends({\n value: value,\n onChange: handleChange,\n ref: handleRef\n // Apply the rows prop to get a \"correct\" first SSR paint\n ,\n rows: minRows,\n style: style\n }, other)), /*#__PURE__*/_jsx(\"textarea\", {\n \"aria-hidden\": true,\n className: props.className,\n readOnly: true,\n ref: shadowRef,\n tabIndex: -1,\n style: _extends({}, styles.shadow, style, {\n paddingTop: 0,\n paddingBottom: 0\n })\n })]\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? TextareaAutosize.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 * @ignore\n */\n className: PropTypes.string,\n /**\n * Maximum number of rows to display.\n */\n maxRows: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n /**\n * Minimum number of rows to display.\n * @default 1\n */\n minRows: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n /**\n * @ignore\n */\n onChange: PropTypes.func,\n /**\n * @ignore\n */\n placeholder: PropTypes.string,\n /**\n * @ignore\n */\n style: PropTypes.object,\n /**\n * @ignore\n */\n value: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.string), PropTypes.number, PropTypes.string])\n} : void 0;\nexport { TextareaAutosize };", "'use client';\n\n/* eslint-disable no-constant-condition */\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { unstable_setRef as setRef, unstable_useEventCallback as useEventCallback, unstable_useControlled as useControlled, unstable_useId as useId, usePreviousProps } from '@mui/utils';\n\n// https://stackoverflow.com/questions/990904/remove-accents-diacritics-in-a-string-in-javascript\n// Give up on IE11 support for this feature\nfunction stripDiacritics(string) {\n return typeof string.normalize !== 'undefined' ? string.normalize('NFD').replace(/[\\u0300-\\u036f]/g, '') : string;\n}\nexport function createFilterOptions(config = {}) {\n const {\n ignoreAccents = true,\n ignoreCase = true,\n limit,\n matchFrom = 'any',\n stringify,\n trim = false\n } = config;\n return (options, {\n inputValue,\n getOptionLabel\n }) => {\n let input = trim ? inputValue.trim() : inputValue;\n if (ignoreCase) {\n input = input.toLowerCase();\n }\n if (ignoreAccents) {\n input = stripDiacritics(input);\n }\n const filteredOptions = !input ? options : options.filter(option => {\n let candidate = (stringify || getOptionLabel)(option);\n if (ignoreCase) {\n candidate = candidate.toLowerCase();\n }\n if (ignoreAccents) {\n candidate = stripDiacritics(candidate);\n }\n return matchFrom === 'start' ? candidate.indexOf(input) === 0 : candidate.indexOf(input) > -1;\n });\n return typeof limit === 'number' ? filteredOptions.slice(0, limit) : filteredOptions;\n };\n}\n\n// To replace with .findIndex() once we stop IE11 support.\nfunction findIndex(array, comp) {\n for (let i = 0; i < array.length; i += 1) {\n if (comp(array[i])) {\n return i;\n }\n }\n return -1;\n}\nconst defaultFilterOptions = createFilterOptions();\n\n// Number of options to jump in list box when `Page Up` and `Page Down` keys are used.\nconst pageSize = 5;\nconst defaultIsActiveElementInListbox = listboxRef => {\n var _listboxRef$current$p;\n return listboxRef.current !== null && ((_listboxRef$current$p = listboxRef.current.parentElement) == null ? void 0 : _listboxRef$current$p.contains(document.activeElement));\n};\nexport function useAutocomplete(props) {\n const {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n unstable_isActiveElementInListbox = defaultIsActiveElementInListbox,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n unstable_classNamePrefix = 'Mui',\n autoComplete = false,\n autoHighlight = false,\n autoSelect = false,\n blurOnSelect = false,\n clearOnBlur = !props.freeSolo,\n clearOnEscape = false,\n componentName = 'useAutocomplete',\n defaultValue = props.multiple ? [] : null,\n disableClearable = false,\n disableCloseOnSelect = false,\n disabled: disabledProp,\n disabledItemsFocusable = false,\n disableListWrap = false,\n filterOptions = defaultFilterOptions,\n filterSelectedOptions = false,\n freeSolo = false,\n getOptionDisabled,\n getOptionKey,\n getOptionLabel: getOptionLabelProp = option => {\n var _option$label;\n return (_option$label = option.label) != null ? _option$label : option;\n },\n groupBy,\n handleHomeEndKeys = !props.freeSolo,\n id: idProp,\n includeInputInList = false,\n inputValue: inputValueProp,\n isOptionEqualToValue = (option, value) => option === value,\n multiple = false,\n onChange,\n onClose,\n onHighlightChange,\n onInputChange,\n onOpen,\n open: openProp,\n openOnFocus = false,\n options,\n readOnly = false,\n selectOnFocus = !props.freeSolo,\n value: valueProp\n } = props;\n const id = useId(idProp);\n let getOptionLabel = getOptionLabelProp;\n getOptionLabel = option => {\n const optionLabel = getOptionLabelProp(option);\n if (typeof optionLabel !== 'string') {\n if (process.env.NODE_ENV !== 'production') {\n const erroneousReturn = optionLabel === undefined ? 'undefined' : `${typeof optionLabel} (${optionLabel})`;\n console.error(`MUI: The \\`getOptionLabel\\` method of ${componentName} returned ${erroneousReturn} instead of a string for ${JSON.stringify(option)}.`);\n }\n return String(optionLabel);\n }\n return optionLabel;\n };\n const ignoreFocus = React.useRef(false);\n const firstFocus = React.useRef(true);\n const inputRef = React.useRef(null);\n const listboxRef = React.useRef(null);\n const [anchorEl, setAnchorEl] = React.useState(null);\n const [focusedTag, setFocusedTag] = React.useState(-1);\n const defaultHighlighted = autoHighlight ? 0 : -1;\n const highlightedIndexRef = React.useRef(defaultHighlighted);\n const [value, setValueState] = useControlled({\n controlled: valueProp,\n default: defaultValue,\n name: componentName\n });\n const [inputValue, setInputValueState] = useControlled({\n controlled: inputValueProp,\n default: '',\n name: componentName,\n state: 'inputValue'\n });\n const [focused, setFocused] = React.useState(false);\n const resetInputValue = React.useCallback((event, newValue) => {\n // retain current `inputValue` if new option isn't selected and `clearOnBlur` is false\n // When `multiple` is enabled, `newValue` is an array of all selected items including the newly selected item\n const isOptionSelected = multiple ? value.length < newValue.length : newValue !== null;\n if (!isOptionSelected && !clearOnBlur) {\n return;\n }\n let newInputValue;\n if (multiple) {\n newInputValue = '';\n } else if (newValue == null) {\n newInputValue = '';\n } else {\n const optionLabel = getOptionLabel(newValue);\n newInputValue = typeof optionLabel === 'string' ? optionLabel : '';\n }\n if (inputValue === newInputValue) {\n return;\n }\n setInputValueState(newInputValue);\n if (onInputChange) {\n onInputChange(event, newInputValue, 'reset');\n }\n }, [getOptionLabel, inputValue, multiple, onInputChange, setInputValueState, clearOnBlur, value]);\n const [open, setOpenState] = useControlled({\n controlled: openProp,\n default: false,\n name: componentName,\n state: 'open'\n });\n const [inputPristine, setInputPristine] = React.useState(true);\n const inputValueIsSelectedValue = !multiple && value != null && inputValue === getOptionLabel(value);\n const popupOpen = open && !readOnly;\n const filteredOptions = popupOpen ? filterOptions(options.filter(option => {\n if (filterSelectedOptions && (multiple ? value : [value]).some(value2 => value2 !== null && isOptionEqualToValue(option, value2))) {\n return false;\n }\n return true;\n }),\n // we use the empty string to manipulate `filterOptions` to not filter any options\n // i.e. the filter predicate always returns true\n {\n inputValue: inputValueIsSelectedValue && inputPristine ? '' : inputValue,\n getOptionLabel\n }) : [];\n const previousProps = usePreviousProps({\n filteredOptions,\n value,\n inputValue\n });\n React.useEffect(() => {\n const valueChange = value !== previousProps.value;\n if (focused && !valueChange) {\n return;\n }\n\n // Only reset the input's value when freeSolo if the component's value changes.\n if (freeSolo && !valueChange) {\n return;\n }\n resetInputValue(null, value);\n }, [value, resetInputValue, focused, previousProps.value, freeSolo]);\n const listboxAvailable = open && filteredOptions.length > 0 && !readOnly;\n if (process.env.NODE_ENV !== 'production') {\n if (value !== null && !freeSolo && options.length > 0) {\n const missingValue = (multiple ? value : [value]).filter(value2 => !options.some(option => isOptionEqualToValue(option, value2)));\n if (missingValue.length > 0) {\n console.warn([`MUI: The value provided to ${componentName} is invalid.`, `None of the options match with \\`${missingValue.length > 1 ? JSON.stringify(missingValue) : JSON.stringify(missingValue[0])}\\`.`, 'You can use the `isOptionEqualToValue` prop to customize the equality test.'].join('\\n'));\n }\n }\n }\n const focusTag = useEventCallback(tagToFocus => {\n if (tagToFocus === -1) {\n inputRef.current.focus();\n } else {\n anchorEl.querySelector(`[data-tag-index=\"${tagToFocus}\"]`).focus();\n }\n });\n\n // Ensure the focusedTag is never inconsistent\n React.useEffect(() => {\n if (multiple && focusedTag > value.length - 1) {\n setFocusedTag(-1);\n focusTag(-1);\n }\n }, [value, multiple, focusedTag, focusTag]);\n function validOptionIndex(index, direction) {\n if (!listboxRef.current || index < 0 || index >= filteredOptions.length) {\n return -1;\n }\n let nextFocus = index;\n while (true) {\n const option = listboxRef.current.querySelector(`[data-option-index=\"${nextFocus}\"]`);\n\n // Same logic as MenuList.js\n const nextFocusDisabled = disabledItemsFocusable ? false : !option || option.disabled || option.getAttribute('aria-disabled') === 'true';\n if (option && option.hasAttribute('tabindex') && !nextFocusDisabled) {\n // The next option is available\n return nextFocus;\n }\n\n // The next option is disabled, move to the next element.\n // with looped index\n if (direction === 'next') {\n nextFocus = (nextFocus + 1) % filteredOptions.length;\n } else {\n nextFocus = (nextFocus - 1 + filteredOptions.length) % filteredOptions.length;\n }\n\n // We end up with initial index, that means we don't have available options.\n // All of them are disabled\n if (nextFocus === index) {\n return -1;\n }\n }\n }\n const setHighlightedIndex = useEventCallback(({\n event,\n index,\n reason = 'auto'\n }) => {\n highlightedIndexRef.current = index;\n\n // does the index exist?\n if (index === -1) {\n inputRef.current.removeAttribute('aria-activedescendant');\n } else {\n inputRef.current.setAttribute('aria-activedescendant', `${id}-option-${index}`);\n }\n if (onHighlightChange) {\n onHighlightChange(event, index === -1 ? null : filteredOptions[index], reason);\n }\n if (!listboxRef.current) {\n return;\n }\n const prev = listboxRef.current.querySelector(`[role=\"option\"].${unstable_classNamePrefix}-focused`);\n if (prev) {\n prev.classList.remove(`${unstable_classNamePrefix}-focused`);\n prev.classList.remove(`${unstable_classNamePrefix}-focusVisible`);\n }\n let listboxNode = listboxRef.current;\n if (listboxRef.current.getAttribute('role') !== 'listbox') {\n listboxNode = listboxRef.current.parentElement.querySelector('[role=\"listbox\"]');\n }\n\n // \"No results\"\n if (!listboxNode) {\n return;\n }\n if (index === -1) {\n listboxNode.scrollTop = 0;\n return;\n }\n const option = listboxRef.current.querySelector(`[data-option-index=\"${index}\"]`);\n if (!option) {\n return;\n }\n option.classList.add(`${unstable_classNamePrefix}-focused`);\n if (reason === 'keyboard') {\n option.classList.add(`${unstable_classNamePrefix}-focusVisible`);\n }\n\n // Scroll active descendant into view.\n // Logic copied from https://www.w3.org/WAI/content-assets/wai-aria-practices/patterns/combobox/examples/js/select-only.js\n // In case of mouse clicks and touch (in mobile devices) we avoid scrolling the element and keep both behaviors same.\n // Consider this API instead once it has a better browser support:\n // .scrollIntoView({ scrollMode: 'if-needed', block: 'nearest' });\n if (listboxNode.scrollHeight > listboxNode.clientHeight && reason !== 'mouse' && reason !== 'touch') {\n const element = option;\n const scrollBottom = listboxNode.clientHeight + listboxNode.scrollTop;\n const elementBottom = element.offsetTop + element.offsetHeight;\n if (elementBottom > scrollBottom) {\n listboxNode.scrollTop = elementBottom - listboxNode.clientHeight;\n } else if (element.offsetTop - element.offsetHeight * (groupBy ? 1.3 : 0) < listboxNode.scrollTop) {\n listboxNode.scrollTop = element.offsetTop - element.offsetHeight * (groupBy ? 1.3 : 0);\n }\n }\n });\n const changeHighlightedIndex = useEventCallback(({\n event,\n diff,\n direction = 'next',\n reason = 'auto'\n }) => {\n if (!popupOpen) {\n return;\n }\n const getNextIndex = () => {\n const maxIndex = filteredOptions.length - 1;\n if (diff === 'reset') {\n return defaultHighlighted;\n }\n if (diff === 'start') {\n return 0;\n }\n if (diff === 'end') {\n return maxIndex;\n }\n const newIndex = highlightedIndexRef.current + diff;\n if (newIndex < 0) {\n if (newIndex === -1 && includeInputInList) {\n return -1;\n }\n if (disableListWrap && highlightedIndexRef.current !== -1 || Math.abs(diff) > 1) {\n return 0;\n }\n return maxIndex;\n }\n if (newIndex > maxIndex) {\n if (newIndex === maxIndex + 1 && includeInputInList) {\n return -1;\n }\n if (disableListWrap || Math.abs(diff) > 1) {\n return maxIndex;\n }\n return 0;\n }\n return newIndex;\n };\n const nextIndex = validOptionIndex(getNextIndex(), direction);\n setHighlightedIndex({\n index: nextIndex,\n reason,\n event\n });\n\n // Sync the content of the input with the highlighted option.\n if (autoComplete && diff !== 'reset') {\n if (nextIndex === -1) {\n inputRef.current.value = inputValue;\n } else {\n const option = getOptionLabel(filteredOptions[nextIndex]);\n inputRef.current.value = option;\n\n // The portion of the selected suggestion that has not been typed by the user,\n // a completion string, appears inline after the input cursor in the textbox.\n const index = option.toLowerCase().indexOf(inputValue.toLowerCase());\n if (index === 0 && inputValue.length > 0) {\n inputRef.current.setSelectionRange(inputValue.length, option.length);\n }\n }\n }\n });\n const getPreviousHighlightedOptionIndex = () => {\n const isSameValue = (value1, value2) => {\n const label1 = value1 ? getOptionLabel(value1) : '';\n const label2 = value2 ? getOptionLabel(value2) : '';\n return label1 === label2;\n };\n if (highlightedIndexRef.current !== -1 && previousProps.filteredOptions && previousProps.filteredOptions.length !== filteredOptions.length && previousProps.inputValue === inputValue && (multiple ? value.length === previousProps.value.length && previousProps.value.every((val, i) => getOptionLabel(value[i]) === getOptionLabel(val)) : isSameValue(previousProps.value, value))) {\n const previousHighlightedOption = previousProps.filteredOptions[highlightedIndexRef.current];\n if (previousHighlightedOption) {\n return findIndex(filteredOptions, option => {\n return getOptionLabel(option) === getOptionLabel(previousHighlightedOption);\n });\n }\n }\n return -1;\n };\n const syncHighlightedIndex = React.useCallback(() => {\n if (!popupOpen) {\n return;\n }\n\n // Check if the previously highlighted option still exists in the updated filtered options list and if the value and inputValue haven't changed\n // If it exists and the value and the inputValue haven't changed, just update its index, otherwise continue execution\n const previousHighlightedOptionIndex = getPreviousHighlightedOptionIndex();\n if (previousHighlightedOptionIndex !== -1) {\n highlightedIndexRef.current = previousHighlightedOptionIndex;\n return;\n }\n const valueItem = multiple ? value[0] : value;\n\n // The popup is empty, reset\n if (filteredOptions.length === 0 || valueItem == null) {\n changeHighlightedIndex({\n diff: 'reset'\n });\n return;\n }\n if (!listboxRef.current) {\n return;\n }\n\n // Synchronize the value with the highlighted index\n if (valueItem != null) {\n const currentOption = filteredOptions[highlightedIndexRef.current];\n\n // Keep the current highlighted index if possible\n if (multiple && currentOption && findIndex(value, val => isOptionEqualToValue(currentOption, val)) !== -1) {\n return;\n }\n const itemIndex = findIndex(filteredOptions, optionItem => isOptionEqualToValue(optionItem, valueItem));\n if (itemIndex === -1) {\n changeHighlightedIndex({\n diff: 'reset'\n });\n } else {\n setHighlightedIndex({\n index: itemIndex\n });\n }\n return;\n }\n\n // Prevent the highlighted index to leak outside the boundaries.\n if (highlightedIndexRef.current >= filteredOptions.length - 1) {\n setHighlightedIndex({\n index: filteredOptions.length - 1\n });\n return;\n }\n\n // Restore the focus to the previous index.\n setHighlightedIndex({\n index: highlightedIndexRef.current\n });\n // Ignore filteredOptions (and options, isOptionEqualToValue, getOptionLabel) not to break the scroll position\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n // Only sync the highlighted index when the option switch between empty and not\n filteredOptions.length,\n // Don't sync the highlighted index with the value when multiple\n // eslint-disable-next-line react-hooks/exhaustive-deps\n multiple ? false : value, filterSelectedOptions, changeHighlightedIndex, setHighlightedIndex, popupOpen, inputValue, multiple]);\n const handleListboxRef = useEventCallback(node => {\n setRef(listboxRef, node);\n if (!node) {\n return;\n }\n syncHighlightedIndex();\n });\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useEffect(() => {\n if (!inputRef.current || inputRef.current.nodeName !== 'INPUT') {\n if (inputRef.current && inputRef.current.nodeName === 'TEXTAREA') {\n console.warn([`A textarea element was provided to ${componentName} where input was expected.`, `This is not a supported scenario but it may work under certain conditions.`, `A textarea keyboard navigation may conflict with Autocomplete controls (e.g. enter and arrow keys).`, `Make sure to test keyboard navigation and add custom event handlers if necessary.`].join('\\n'));\n } else {\n console.error([`MUI: Unable to find the input element. It was resolved to ${inputRef.current} while an HTMLInputElement was expected.`, `Instead, ${componentName} expects an input element.`, '', componentName === 'useAutocomplete' ? 'Make sure you have bound getInputProps correctly and that the normal ref/effect resolutions order is guaranteed.' : 'Make sure you have customized the input component correctly.'].join('\\n'));\n }\n }\n }, [componentName]);\n }\n React.useEffect(() => {\n syncHighlightedIndex();\n }, [syncHighlightedIndex]);\n const handleOpen = event => {\n if (open) {\n return;\n }\n setOpenState(true);\n setInputPristine(true);\n if (onOpen) {\n onOpen(event);\n }\n };\n const handleClose = (event, reason) => {\n if (!open) {\n return;\n }\n setOpenState(false);\n if (onClose) {\n onClose(event, reason);\n }\n };\n const handleValue = (event, newValue, reason, details) => {\n if (multiple) {\n if (value.length === newValue.length && value.every((val, i) => val === newValue[i])) {\n return;\n }\n } else if (value === newValue) {\n return;\n }\n if (onChange) {\n onChange(event, newValue, reason, details);\n }\n setValueState(newValue);\n };\n const isTouch = React.useRef(false);\n const selectNewValue = (event, option, reasonProp = 'selectOption', origin = 'options') => {\n let reason = reasonProp;\n let newValue = option;\n if (multiple) {\n newValue = Array.isArray(value) ? value.slice() : [];\n if (process.env.NODE_ENV !== 'production') {\n const matches = newValue.filter(val => isOptionEqualToValue(option, val));\n if (matches.length > 1) {\n console.error([`MUI: The \\`isOptionEqualToValue\\` method of ${componentName} does not handle the arguments correctly.`, `The component expects a single value to match a given option but found ${matches.length} matches.`].join('\\n'));\n }\n }\n const itemIndex = findIndex(newValue, valueItem => isOptionEqualToValue(option, valueItem));\n if (itemIndex === -1) {\n newValue.push(option);\n } else if (origin !== 'freeSolo') {\n newValue.splice(itemIndex, 1);\n reason = 'removeOption';\n }\n }\n resetInputValue(event, newValue);\n handleValue(event, newValue, reason, {\n option\n });\n if (!disableCloseOnSelect && (!event || !event.ctrlKey && !event.metaKey)) {\n handleClose(event, reason);\n }\n if (blurOnSelect === true || blurOnSelect === 'touch' && isTouch.current || blurOnSelect === 'mouse' && !isTouch.current) {\n inputRef.current.blur();\n }\n };\n function validTagIndex(index, direction) {\n if (index === -1) {\n return -1;\n }\n let nextFocus = index;\n while (true) {\n // Out of range\n if (direction === 'next' && nextFocus === value.length || direction === 'previous' && nextFocus === -1) {\n return -1;\n }\n const option = anchorEl.querySelector(`[data-tag-index=\"${nextFocus}\"]`);\n\n // Same logic as MenuList.js\n if (!option || !option.hasAttribute('tabindex') || option.disabled || option.getAttribute('aria-disabled') === 'true') {\n nextFocus += direction === 'next' ? 1 : -1;\n } else {\n return nextFocus;\n }\n }\n }\n const handleFocusTag = (event, direction) => {\n if (!multiple) {\n return;\n }\n if (inputValue === '') {\n handleClose(event, 'toggleInput');\n }\n let nextTag = focusedTag;\n if (focusedTag === -1) {\n if (inputValue === '' && direction === 'previous') {\n nextTag = value.length - 1;\n }\n } else {\n nextTag += direction === 'next' ? 1 : -1;\n if (nextTag < 0) {\n nextTag = 0;\n }\n if (nextTag === value.length) {\n nextTag = -1;\n }\n }\n nextTag = validTagIndex(nextTag, direction);\n setFocusedTag(nextTag);\n focusTag(nextTag);\n };\n const handleClear = event => {\n ignoreFocus.current = true;\n setInputValueState('');\n if (onInputChange) {\n onInputChange(event, '', 'clear');\n }\n handleValue(event, multiple ? [] : null, 'clear');\n };\n const handleKeyDown = other => event => {\n if (other.onKeyDown) {\n other.onKeyDown(event);\n }\n if (event.defaultMuiPrevented) {\n return;\n }\n if (focusedTag !== -1 && ['ArrowLeft', 'ArrowRight'].indexOf(event.key) === -1) {\n setFocusedTag(-1);\n focusTag(-1);\n }\n\n // Wait until IME is settled.\n if (event.which !== 229) {\n switch (event.key) {\n case 'Home':\n if (popupOpen && handleHomeEndKeys) {\n // Prevent scroll of the page\n event.preventDefault();\n changeHighlightedIndex({\n diff: 'start',\n direction: 'next',\n reason: 'keyboard',\n event\n });\n }\n break;\n case 'End':\n if (popupOpen && handleHomeEndKeys) {\n // Prevent scroll of the page\n event.preventDefault();\n changeHighlightedIndex({\n diff: 'end',\n direction: 'previous',\n reason: 'keyboard',\n event\n });\n }\n break;\n case 'PageUp':\n // Prevent scroll of the page\n event.preventDefault();\n changeHighlightedIndex({\n diff: -pageSize,\n direction: 'previous',\n reason: 'keyboard',\n event\n });\n handleOpen(event);\n break;\n case 'PageDown':\n // Prevent scroll of the page\n event.preventDefault();\n changeHighlightedIndex({\n diff: pageSize,\n direction: 'next',\n reason: 'keyboard',\n event\n });\n handleOpen(event);\n break;\n case 'ArrowDown':\n // Prevent cursor move\n event.preventDefault();\n changeHighlightedIndex({\n diff: 1,\n direction: 'next',\n reason: 'keyboard',\n event\n });\n handleOpen(event);\n break;\n case 'ArrowUp':\n // Prevent cursor move\n event.preventDefault();\n changeHighlightedIndex({\n diff: -1,\n direction: 'previous',\n reason: 'keyboard',\n event\n });\n handleOpen(event);\n break;\n case 'ArrowLeft':\n handleFocusTag(event, 'previous');\n break;\n case 'ArrowRight':\n handleFocusTag(event, 'next');\n break;\n case 'Enter':\n if (highlightedIndexRef.current !== -1 && popupOpen) {\n const option = filteredOptions[highlightedIndexRef.current];\n const disabled = getOptionDisabled ? getOptionDisabled(option) : false;\n\n // Avoid early form validation, let the end-users continue filling the form.\n event.preventDefault();\n if (disabled) {\n return;\n }\n selectNewValue(event, option, 'selectOption');\n\n // Move the selection to the end.\n if (autoComplete) {\n inputRef.current.setSelectionRange(inputRef.current.value.length, inputRef.current.value.length);\n }\n } else if (freeSolo && inputValue !== '' && inputValueIsSelectedValue === false) {\n if (multiple) {\n // Allow people to add new values before they submit the form.\n event.preventDefault();\n }\n selectNewValue(event, inputValue, 'createOption', 'freeSolo');\n }\n break;\n case 'Escape':\n if (popupOpen) {\n // Avoid Opera to exit fullscreen mode.\n event.preventDefault();\n // Avoid the Modal to handle the event.\n event.stopPropagation();\n handleClose(event, 'escape');\n } else if (clearOnEscape && (inputValue !== '' || multiple && value.length > 0)) {\n // Avoid Opera to exit fullscreen mode.\n event.preventDefault();\n // Avoid the Modal to handle the event.\n event.stopPropagation();\n handleClear(event);\n }\n break;\n case 'Backspace':\n // Remove the value on the left of the \"cursor\"\n if (multiple && !readOnly && inputValue === '' && value.length > 0) {\n const index = focusedTag === -1 ? value.length - 1 : focusedTag;\n const newValue = value.slice();\n newValue.splice(index, 1);\n handleValue(event, newValue, 'removeOption', {\n option: value[index]\n });\n }\n break;\n case 'Delete':\n // Remove the value on the right of the \"cursor\"\n if (multiple && !readOnly && inputValue === '' && value.length > 0 && focusedTag !== -1) {\n const index = focusedTag;\n const newValue = value.slice();\n newValue.splice(index, 1);\n handleValue(event, newValue, 'removeOption', {\n option: value[index]\n });\n }\n break;\n default:\n }\n }\n };\n const handleFocus = event => {\n setFocused(true);\n if (openOnFocus && !ignoreFocus.current) {\n handleOpen(event);\n }\n };\n const handleBlur = event => {\n // Ignore the event when using the scrollbar with IE11\n if (unstable_isActiveElementInListbox(listboxRef)) {\n inputRef.current.focus();\n return;\n }\n setFocused(false);\n firstFocus.current = true;\n ignoreFocus.current = false;\n if (autoSelect && highlightedIndexRef.current !== -1 && popupOpen) {\n selectNewValue(event, filteredOptions[highlightedIndexRef.current], 'blur');\n } else if (autoSelect && freeSolo && inputValue !== '') {\n selectNewValue(event, inputValue, 'blur', 'freeSolo');\n } else if (clearOnBlur) {\n resetInputValue(event, value);\n }\n handleClose(event, 'blur');\n };\n const handleInputChange = event => {\n const newValue = event.target.value;\n if (inputValue !== newValue) {\n setInputValueState(newValue);\n setInputPristine(false);\n if (onInputChange) {\n onInputChange(event, newValue, 'input');\n }\n }\n if (newValue === '') {\n if (!disableClearable && !multiple) {\n handleValue(event, null, 'clear');\n }\n } else {\n handleOpen(event);\n }\n };\n const handleOptionMouseMove = event => {\n const index = Number(event.currentTarget.getAttribute('data-option-index'));\n if (highlightedIndexRef.current !== index) {\n setHighlightedIndex({\n event,\n index,\n reason: 'mouse'\n });\n }\n };\n const handleOptionTouchStart = event => {\n setHighlightedIndex({\n event,\n index: Number(event.currentTarget.getAttribute('data-option-index')),\n reason: 'touch'\n });\n isTouch.current = true;\n };\n const handleOptionClick = event => {\n const index = Number(event.currentTarget.getAttribute('data-option-index'));\n selectNewValue(event, filteredOptions[index], 'selectOption');\n isTouch.current = false;\n };\n const handleTagDelete = index => event => {\n const newValue = value.slice();\n newValue.splice(index, 1);\n handleValue(event, newValue, 'removeOption', {\n option: value[index]\n });\n };\n const handlePopupIndicator = event => {\n if (open) {\n handleClose(event, 'toggleInput');\n } else {\n handleOpen(event);\n }\n };\n\n // Prevent input blur when interacting with the combobox\n const handleMouseDown = event => {\n // Prevent focusing the input if click is anywhere outside the Autocomplete\n if (!event.currentTarget.contains(event.target)) {\n return;\n }\n if (event.target.getAttribute('id') !== id) {\n event.preventDefault();\n }\n };\n\n // Focus the input when interacting with the combobox\n const handleClick = event => {\n // Prevent focusing the input if click is anywhere outside the Autocomplete\n if (!event.currentTarget.contains(event.target)) {\n return;\n }\n inputRef.current.focus();\n if (selectOnFocus && firstFocus.current && inputRef.current.selectionEnd - inputRef.current.selectionStart === 0) {\n inputRef.current.select();\n }\n firstFocus.current = false;\n };\n const handleInputMouseDown = event => {\n if (!disabledProp && (inputValue === '' || !open)) {\n handlePopupIndicator(event);\n }\n };\n let dirty = freeSolo && inputValue.length > 0;\n dirty = dirty || (multiple ? value.length > 0 : value !== null);\n let groupedOptions = filteredOptions;\n if (groupBy) {\n // used to keep track of key and indexes in the result array\n const indexBy = new Map();\n let warn = false;\n groupedOptions = filteredOptions.reduce((acc, option, index) => {\n const group = groupBy(option);\n if (acc.length > 0 && acc[acc.length - 1].group === group) {\n acc[acc.length - 1].options.push(option);\n } else {\n if (process.env.NODE_ENV !== 'production') {\n if (indexBy.get(group) && !warn) {\n console.warn(`MUI: The options provided combined with the \\`groupBy\\` method of ${componentName} returns duplicated headers.`, 'You can solve the issue by sorting the options with the output of `groupBy`.');\n warn = true;\n }\n indexBy.set(group, true);\n }\n acc.push({\n key: index,\n index,\n group,\n options: [option]\n });\n }\n return acc;\n }, []);\n }\n if (disabledProp && focused) {\n handleBlur();\n }\n return {\n getRootProps: (other = {}) => _extends({\n 'aria-owns': listboxAvailable ? `${id}-listbox` : null\n }, other, {\n onKeyDown: handleKeyDown(other),\n onMouseDown: handleMouseDown,\n onClick: handleClick\n }),\n getInputLabelProps: () => ({\n id: `${id}-label`,\n htmlFor: id\n }),\n getInputProps: () => ({\n id,\n value: inputValue,\n onBlur: handleBlur,\n onFocus: handleFocus,\n onChange: handleInputChange,\n onMouseDown: handleInputMouseDown,\n // if open then this is handled imperatively so don't let react override\n // only have an opinion about this when closed\n 'aria-activedescendant': popupOpen ? '' : null,\n 'aria-autocomplete': autoComplete ? 'both' : 'list',\n 'aria-controls': listboxAvailable ? `${id}-listbox` : undefined,\n 'aria-expanded': listboxAvailable,\n // Disable browser's suggestion that might overlap with the popup.\n // Handle autocomplete but not autofill.\n autoComplete: 'off',\n ref: inputRef,\n autoCapitalize: 'none',\n spellCheck: 'false',\n role: 'combobox',\n disabled: disabledProp\n }),\n getClearProps: () => ({\n tabIndex: -1,\n type: 'button',\n onClick: handleClear\n }),\n getPopupIndicatorProps: () => ({\n tabIndex: -1,\n type: 'button',\n onClick: handlePopupIndicator\n }),\n getTagProps: ({\n index\n }) => _extends({\n key: index,\n 'data-tag-index': index,\n tabIndex: -1\n }, !readOnly && {\n onDelete: handleTagDelete(index)\n }),\n getListboxProps: () => ({\n role: 'listbox',\n id: `${id}-listbox`,\n 'aria-labelledby': `${id}-label`,\n ref: handleListboxRef,\n onMouseDown: event => {\n // Prevent blur\n event.preventDefault();\n }\n }),\n getOptionProps: ({\n index,\n option\n }) => {\n var _getOptionKey;\n const selected = (multiple ? value : [value]).some(value2 => value2 != null && isOptionEqualToValue(option, value2));\n const disabled = getOptionDisabled ? getOptionDisabled(option) : false;\n return {\n key: (_getOptionKey = getOptionKey == null ? void 0 : getOptionKey(option)) != null ? _getOptionKey : getOptionLabel(option),\n tabIndex: -1,\n role: 'option',\n id: `${id}-option-${index}`,\n onMouseMove: handleOptionMouseMove,\n onClick: handleOptionClick,\n onTouchStart: handleOptionTouchStart,\n 'data-option-index': index,\n 'aria-disabled': disabled,\n 'aria-selected': selected\n };\n },\n id,\n inputValue,\n value,\n dirty,\n expanded: popupOpen && anchorEl,\n popupOpen,\n focused: focused || focusedTag !== -1,\n anchorEl,\n setAnchorEl,\n focusedTag,\n groupedOptions\n };\n}", "'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { GlobalStyles as SystemGlobalStyles } from '@mui/system';\nimport defaultTheme from '../styles/defaultTheme';\nimport THEME_ID from '../styles/identifier';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction GlobalStyles(props) {\n return /*#__PURE__*/_jsx(SystemGlobalStyles, _extends({}, props, {\n defaultTheme: defaultTheme,\n themeId: THEME_ID\n }));\n}\nprocess.env.NODE_ENV !== \"production\" ? GlobalStyles.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 styles you want to apply globally.\n */\n styles: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.array, PropTypes.func, PropTypes.number, PropTypes.object, PropTypes.string, PropTypes.bool])\n} : void 0;\nexport default GlobalStyles;", "import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getInputBaseUtilityClass(slot) {\n return generateUtilityClass('MuiInputBase', slot);\n}\nconst inputBaseClasses = generateUtilityClasses('MuiInputBase', ['root', 'formControl', 'focused', 'disabled', 'adornedStart', 'adornedEnd', 'error', 'sizeSmall', 'multiline', 'colorSecondary', 'fullWidth', 'hiddenLabel', 'readOnly', 'input', 'inputSizeSmall', 'inputMultiline', 'inputTypeSearch', 'inputAdornedStart', 'inputAdornedEnd', 'inputHiddenLabel']);\nexport default inputBaseClasses;", "'use client';\n\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _formatMuiErrorMessage from \"@mui/utils/formatMuiErrorMessage\";\nconst _excluded = [\"aria-describedby\", \"autoComplete\", \"autoFocus\", \"className\", \"color\", \"components\", \"componentsProps\", \"defaultValue\", \"disabled\", \"disableInjectingGlobalStyles\", \"endAdornment\", \"error\", \"fullWidth\", \"id\", \"inputComponent\", \"inputProps\", \"inputRef\", \"margin\", \"maxRows\", \"minRows\", \"multiline\", \"name\", \"onBlur\", \"onChange\", \"onClick\", \"onFocus\", \"onKeyDown\", \"onKeyUp\", \"placeholder\", \"readOnly\", \"renderSuffix\", \"rows\", \"size\", \"slotProps\", \"slots\", \"startAdornment\", \"type\", \"value\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport elementTypeAcceptingRef from '@mui/utils/elementTypeAcceptingRef';\nimport refType from '@mui/utils/refType';\nimport { TextareaAutosize } from '@mui/base';\nimport { isHostComponent } from '@mui/base/utils';\nimport composeClasses from '@mui/utils/composeClasses';\nimport formControlState from '../FormControl/formControlState';\nimport FormControlContext from '../FormControl/FormControlContext';\nimport useFormControl from '../FormControl/useFormControl';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport capitalize from '../utils/capitalize';\nimport useForkRef from '../utils/useForkRef';\nimport useEnhancedEffect from '../utils/useEnhancedEffect';\nimport GlobalStyles from '../GlobalStyles';\nimport { isFilled } from './utils';\nimport inputBaseClasses, { getInputBaseUtilityClass } from './inputBaseClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nexport const rootOverridesResolver = (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.formControl && styles.formControl, ownerState.startAdornment && styles.adornedStart, ownerState.endAdornment && styles.adornedEnd, ownerState.error && styles.error, ownerState.size === 'small' && styles.sizeSmall, ownerState.multiline && styles.multiline, ownerState.color && styles[`color${capitalize(ownerState.color)}`], ownerState.fullWidth && styles.fullWidth, ownerState.hiddenLabel && styles.hiddenLabel];\n};\nexport const inputOverridesResolver = (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.input, ownerState.size === 'small' && styles.inputSizeSmall, ownerState.multiline && styles.inputMultiline, ownerState.type === 'search' && styles.inputTypeSearch, ownerState.startAdornment && styles.inputAdornedStart, ownerState.endAdornment && styles.inputAdornedEnd, ownerState.hiddenLabel && styles.inputHiddenLabel];\n};\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n color,\n disabled,\n error,\n endAdornment,\n focused,\n formControl,\n fullWidth,\n hiddenLabel,\n multiline,\n readOnly,\n size,\n startAdornment,\n type\n } = ownerState;\n const slots = {\n root: ['root', `color${capitalize(color)}`, disabled && 'disabled', error && 'error', fullWidth && 'fullWidth', focused && 'focused', formControl && 'formControl', size && size !== 'medium' && `size${capitalize(size)}`, multiline && 'multiline', startAdornment && 'adornedStart', endAdornment && 'adornedEnd', hiddenLabel && 'hiddenLabel', readOnly && 'readOnly'],\n input: ['input', disabled && 'disabled', type === 'search' && 'inputTypeSearch', multiline && 'inputMultiline', size === 'small' && 'inputSizeSmall', hiddenLabel && 'inputHiddenLabel', startAdornment && 'inputAdornedStart', endAdornment && 'inputAdornedEnd', readOnly && 'readOnly']\n };\n return composeClasses(slots, getInputBaseUtilityClass, classes);\n};\nexport const InputBaseRoot = styled('div', {\n name: 'MuiInputBase',\n slot: 'Root',\n overridesResolver: rootOverridesResolver\n})(({\n theme,\n ownerState\n}) => _extends({}, theme.typography.body1, {\n color: (theme.vars || theme).palette.text.primary,\n lineHeight: '1.4375em',\n // 23px\n boxSizing: 'border-box',\n // Prevent padding issue with fullWidth.\n position: 'relative',\n cursor: 'text',\n display: 'inline-flex',\n alignItems: 'center',\n [`&.${inputBaseClasses.disabled}`]: {\n color: (theme.vars || theme).palette.text.disabled,\n cursor: 'default'\n }\n}, ownerState.multiline && _extends({\n padding: '4px 0 5px'\n}, ownerState.size === 'small' && {\n paddingTop: 1\n}), ownerState.fullWidth && {\n width: '100%'\n}));\nexport const InputBaseComponent = styled('input', {\n name: 'MuiInputBase',\n slot: 'Input',\n overridesResolver: inputOverridesResolver\n})(({\n theme,\n ownerState\n}) => {\n const light = theme.palette.mode === 'light';\n const placeholder = _extends({\n color: 'currentColor'\n }, theme.vars ? {\n opacity: theme.vars.opacity.inputPlaceholder\n } : {\n opacity: light ? 0.42 : 0.5\n }, {\n transition: theme.transitions.create('opacity', {\n duration: theme.transitions.duration.shorter\n })\n });\n const placeholderHidden = {\n opacity: '0 !important'\n };\n const placeholderVisible = theme.vars ? {\n opacity: theme.vars.opacity.inputPlaceholder\n } : {\n opacity: light ? 0.42 : 0.5\n };\n return _extends({\n font: 'inherit',\n letterSpacing: 'inherit',\n color: 'currentColor',\n padding: '4px 0 5px',\n border: 0,\n boxSizing: 'content-box',\n background: 'none',\n height: '1.4375em',\n // Reset 23pxthe native input line-height\n margin: 0,\n // Reset for Safari\n WebkitTapHighlightColor: 'transparent',\n display: 'block',\n // Make the flex item shrink with Firefox\n minWidth: 0,\n width: '100%',\n // Fix IE11 width issue\n animationName: 'mui-auto-fill-cancel',\n animationDuration: '10ms',\n '&::-webkit-input-placeholder': placeholder,\n '&::-moz-placeholder': placeholder,\n // Firefox 19+\n '&:-ms-input-placeholder': placeholder,\n // IE11\n '&::-ms-input-placeholder': placeholder,\n // Edge\n '&:focus': {\n outline: 0\n },\n // Reset Firefox invalid required input style\n '&:invalid': {\n boxShadow: 'none'\n },\n '&::-webkit-search-decoration': {\n // Remove the padding when type=search.\n WebkitAppearance: 'none'\n },\n // Show and hide the placeholder logic\n [`label[data-shrink=false] + .${inputBaseClasses.formControl} &`]: {\n '&::-webkit-input-placeholder': placeholderHidden,\n '&::-moz-placeholder': placeholderHidden,\n // Firefox 19+\n '&:-ms-input-placeholder': placeholderHidden,\n // IE11\n '&::-ms-input-placeholder': placeholderHidden,\n // Edge\n '&:focus::-webkit-input-placeholder': placeholderVisible,\n '&:focus::-moz-placeholder': placeholderVisible,\n // Firefox 19+\n '&:focus:-ms-input-placeholder': placeholderVisible,\n // IE11\n '&:focus::-ms-input-placeholder': placeholderVisible // Edge\n },\n [`&.${inputBaseClasses.disabled}`]: {\n opacity: 1,\n // Reset iOS opacity\n WebkitTextFillColor: (theme.vars || theme).palette.text.disabled // Fix opacity Safari bug\n },\n '&:-webkit-autofill': {\n animationDuration: '5000s',\n animationName: 'mui-auto-fill'\n }\n }, ownerState.size === 'small' && {\n paddingTop: 1\n }, ownerState.multiline && {\n height: 'auto',\n resize: 'none',\n padding: 0,\n paddingTop: 0\n }, ownerState.type === 'search' && {\n // Improve type search style.\n MozAppearance: 'textfield'\n });\n});\nconst inputGlobalStyles = /*#__PURE__*/_jsx(GlobalStyles, {\n styles: {\n '@keyframes mui-auto-fill': {\n from: {\n display: 'block'\n }\n },\n '@keyframes mui-auto-fill-cancel': {\n from: {\n display: 'block'\n }\n }\n }\n});\n\n/**\n * `InputBase` contains as few styles as possible.\n * It aims to be a simple building block for creating an input.\n * It contains a load of style reset and some state logic.\n */\nconst InputBase = /*#__PURE__*/React.forwardRef(function InputBase(inProps, ref) {\n var _slotProps$input;\n const props = useThemeProps({\n props: inProps,\n name: 'MuiInputBase'\n });\n const {\n 'aria-describedby': ariaDescribedby,\n autoComplete,\n autoFocus,\n className,\n components = {},\n componentsProps = {},\n defaultValue,\n disabled,\n disableInjectingGlobalStyles,\n endAdornment,\n fullWidth = false,\n id,\n inputComponent = 'input',\n inputProps: inputPropsProp = {},\n inputRef: inputRefProp,\n maxRows,\n minRows,\n multiline = false,\n name,\n onBlur,\n onChange,\n onClick,\n onFocus,\n onKeyDown,\n onKeyUp,\n placeholder,\n readOnly,\n renderSuffix,\n rows,\n slotProps = {},\n slots = {},\n startAdornment,\n type = 'text',\n value: valueProp\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const value = inputPropsProp.value != null ? inputPropsProp.value : valueProp;\n const {\n current: isControlled\n } = React.useRef(value != null);\n const inputRef = React.useRef();\n const handleInputRefWarning = React.useCallback(instance => {\n if (process.env.NODE_ENV !== 'production') {\n if (instance && instance.nodeName !== 'INPUT' && !instance.focus) {\n console.error(['MUI: You have provided a `inputComponent` to the input component', 'that does not correctly handle the `ref` prop.', 'Make sure the `ref` prop is called with a HTMLInputElement.'].join('\\n'));\n }\n }\n }, []);\n const handleInputRef = useForkRef(inputRef, inputRefProp, inputPropsProp.ref, handleInputRefWarning);\n const [focused, setFocused] = React.useState(false);\n const muiFormControl = useFormControl();\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useEffect(() => {\n if (muiFormControl) {\n return muiFormControl.registerEffect();\n }\n return undefined;\n }, [muiFormControl]);\n }\n const fcs = formControlState({\n props,\n muiFormControl,\n states: ['color', 'disabled', 'error', 'hiddenLabel', 'size', 'required', 'filled']\n });\n fcs.focused = muiFormControl ? muiFormControl.focused : focused;\n\n // The blur won't fire when the disabled state is set on a focused input.\n // We need to book keep the focused state manually.\n React.useEffect(() => {\n if (!muiFormControl && disabled && focused) {\n setFocused(false);\n if (onBlur) {\n onBlur();\n }\n }\n }, [muiFormControl, disabled, focused, onBlur]);\n const onFilled = muiFormControl && muiFormControl.onFilled;\n const onEmpty = muiFormControl && muiFormControl.onEmpty;\n const checkDirty = React.useCallback(obj => {\n if (isFilled(obj)) {\n if (onFilled) {\n onFilled();\n }\n } else if (onEmpty) {\n onEmpty();\n }\n }, [onFilled, onEmpty]);\n useEnhancedEffect(() => {\n if (isControlled) {\n checkDirty({\n value\n });\n }\n }, [value, checkDirty, isControlled]);\n const handleFocus = event => {\n // Fix a bug with IE11 where the focus/blur events are triggered\n // while the component is disabled.\n if (fcs.disabled) {\n event.stopPropagation();\n return;\n }\n if (onFocus) {\n onFocus(event);\n }\n if (inputPropsProp.onFocus) {\n inputPropsProp.onFocus(event);\n }\n if (muiFormControl && muiFormControl.onFocus) {\n muiFormControl.onFocus(event);\n } else {\n setFocused(true);\n }\n };\n const handleBlur = event => {\n if (onBlur) {\n onBlur(event);\n }\n if (inputPropsProp.onBlur) {\n inputPropsProp.onBlur(event);\n }\n if (muiFormControl && muiFormControl.onBlur) {\n muiFormControl.onBlur(event);\n } else {\n setFocused(false);\n }\n };\n const handleChange = (event, ...args) => {\n if (!isControlled) {\n const element = event.target || inputRef.current;\n if (element == null) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: Expected valid input target. Did you use a custom \\`inputComponent\\` and forget to forward refs? See https://mui.com/r/input-component-ref-interface for more info.` : _formatMuiErrorMessage(1));\n }\n checkDirty({\n value: element.value\n });\n }\n if (inputPropsProp.onChange) {\n inputPropsProp.onChange(event, ...args);\n }\n\n // Perform in the willUpdate\n if (onChange) {\n onChange(event, ...args);\n }\n };\n\n // Check the input state on mount, in case it was filled by the user\n // or auto filled by the browser before the hydration (for SSR).\n React.useEffect(() => {\n checkDirty(inputRef.current);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n const handleClick = event => {\n if (inputRef.current && event.currentTarget === event.target) {\n inputRef.current.focus();\n }\n if (onClick) {\n onClick(event);\n }\n };\n let InputComponent = inputComponent;\n let inputProps = inputPropsProp;\n if (multiline && InputComponent === 'input') {\n if (rows) {\n if (process.env.NODE_ENV !== 'production') {\n if (minRows || maxRows) {\n console.warn('MUI: You can not use the `minRows` or `maxRows` props when the input `rows` prop is set.');\n }\n }\n inputProps = _extends({\n type: undefined,\n minRows: rows,\n maxRows: rows\n }, inputProps);\n } else {\n inputProps = _extends({\n type: undefined,\n maxRows,\n minRows\n }, inputProps);\n }\n InputComponent = TextareaAutosize;\n }\n const handleAutoFill = event => {\n // Provide a fake value as Chrome might not let you access it for security reasons.\n checkDirty(event.animationName === 'mui-auto-fill-cancel' ? inputRef.current : {\n value: 'x'\n });\n };\n React.useEffect(() => {\n if (muiFormControl) {\n muiFormControl.setAdornedStart(Boolean(startAdornment));\n }\n }, [muiFormControl, startAdornment]);\n const ownerState = _extends({}, props, {\n color: fcs.color || 'primary',\n disabled: fcs.disabled,\n endAdornment,\n error: fcs.error,\n focused: fcs.focused,\n formControl: muiFormControl,\n fullWidth,\n hiddenLabel: fcs.hiddenLabel,\n multiline,\n size: fcs.size,\n startAdornment,\n type\n });\n const classes = useUtilityClasses(ownerState);\n const Root = slots.root || components.Root || InputBaseRoot;\n const rootProps = slotProps.root || componentsProps.root || {};\n const Input = slots.input || components.Input || InputBaseComponent;\n inputProps = _extends({}, inputProps, (_slotProps$input = slotProps.input) != null ? _slotProps$input : componentsProps.input);\n return /*#__PURE__*/_jsxs(React.Fragment, {\n children: [!disableInjectingGlobalStyles && inputGlobalStyles, /*#__PURE__*/_jsxs(Root, _extends({}, rootProps, !isHostComponent(Root) && {\n ownerState: _extends({}, ownerState, rootProps.ownerState)\n }, {\n ref: ref,\n onClick: handleClick\n }, other, {\n className: clsx(classes.root, rootProps.className, className, readOnly && 'MuiInputBase-readOnly'),\n children: [startAdornment, /*#__PURE__*/_jsx(FormControlContext.Provider, {\n value: null,\n children: /*#__PURE__*/_jsx(Input, _extends({\n ownerState: ownerState,\n \"aria-invalid\": fcs.error,\n \"aria-describedby\": ariaDescribedby,\n autoComplete: autoComplete,\n autoFocus: autoFocus,\n defaultValue: defaultValue,\n disabled: fcs.disabled,\n id: id,\n onAnimationStart: handleAutoFill,\n name: name,\n placeholder: placeholder,\n readOnly: readOnly,\n required: fcs.required,\n rows: rows,\n value: value,\n onKeyDown: onKeyDown,\n onKeyUp: onKeyUp,\n type: type\n }, inputProps, !isHostComponent(Input) && {\n as: InputComponent,\n ownerState: _extends({}, ownerState, inputProps.ownerState)\n }, {\n ref: handleInputRef,\n className: clsx(classes.input, inputProps.className, readOnly && 'MuiInputBase-readOnly'),\n onBlur: handleBlur,\n onChange: handleChange,\n onFocus: handleFocus\n }))\n }), endAdornment, renderSuffix ? renderSuffix(_extends({}, fcs, {\n startAdornment\n })) : null]\n }))]\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? InputBase.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 * @ignore\n */\n 'aria-describedby': PropTypes.string,\n /**\n * This prop helps users to fill forms faster, especially on mobile devices.\n * The name can be confusing, as it's more like an autofill.\n * You can learn more about it [following the specification](https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#autofill).\n */\n autoComplete: PropTypes.string,\n /**\n * If `true`, the `input` element is focused during the first mount.\n */\n autoFocus: PropTypes.bool,\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 color of the component.\n * It supports both default and custom theme colors, which can be added as shown in the\n * [palette customization guide](https://mui.com/material-ui/customization/palette/#custom-colors).\n * The prop defaults to the value (`'primary'`) inherited from the parent FormControl component.\n */\n color: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['primary', 'secondary', 'error', 'info', 'success', 'warning']), PropTypes.string]),\n /**\n * The components used for each slot inside.\n *\n * This prop is an alias for the `slots` prop.\n * It's recommended to use the `slots` prop instead.\n *\n * @default {}\n */\n components: PropTypes.shape({\n Input: 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 * This prop is an alias for the `slotProps` prop.\n * It's recommended to use the `slotProps` prop instead, as `componentsProps` will be deprecated in the future.\n *\n * @default {}\n */\n componentsProps: PropTypes.shape({\n input: PropTypes.object,\n root: PropTypes.object\n }),\n /**\n * The default value. Use when the component is not controlled.\n */\n defaultValue: PropTypes.any,\n /**\n * If `true`, the component is disabled.\n * The prop defaults to the value (`false`) inherited from the parent FormControl component.\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, GlobalStyles for the auto-fill keyframes will not be injected/removed on mount/unmount. Make sure to inject them at the top of your application.\n * This option is intended to help with boosting the initial rendering performance if you are loading a big amount of Input components at once.\n * @default false\n */\n disableInjectingGlobalStyles: PropTypes.bool,\n /**\n * End `InputAdornment` for this component.\n */\n endAdornment: PropTypes.node,\n /**\n * If `true`, the `input` will indicate an error.\n * The prop defaults to the value (`false`) inherited from the parent FormControl component.\n */\n error: PropTypes.bool,\n /**\n * If `true`, the `input` will take up the full width of its container.\n * @default false\n */\n fullWidth: PropTypes.bool,\n /**\n * The id of the `input` element.\n */\n id: PropTypes.string,\n /**\n * The component used for the `input` element.\n * Either a string to use a HTML element or a component.\n * @default 'input'\n */\n inputComponent: elementTypeAcceptingRef,\n /**\n * [Attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Attributes) applied to the `input` element.\n * @default {}\n */\n inputProps: PropTypes.object,\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: refType,\n /**\n * If `dense`, will adjust vertical spacing. This is normally obtained via context from\n * FormControl.\n * The prop defaults to the value (`'none'`) inherited from the parent FormControl component.\n */\n margin: PropTypes.oneOf(['dense', 'none']),\n /**\n * Maximum number of rows to display when multiline option is set to true.\n */\n maxRows: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n /**\n * Minimum number of rows to display when multiline option is set to true.\n */\n minRows: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n /**\n * If `true`, a [TextareaAutosize](/material-ui/react-textarea-autosize/) element is rendered.\n * @default false\n */\n multiline: PropTypes.bool,\n /**\n * Name attribute of the `input` element.\n */\n name: PropTypes.string,\n /**\n * Callback fired when the `input` is blurred.\n *\n * Notice that the first argument (event) might be undefined.\n */\n onBlur: PropTypes.func,\n /**\n * Callback fired when the value is changed.\n *\n * @param {React.ChangeEvent<HTMLTextAreaElement | HTMLInputElement>} event The event source of the callback.\n * You can pull out the new value by accessing `event.target.value` (string).\n */\n onChange: PropTypes.func,\n /**\n * @ignore\n */\n onClick: PropTypes.func,\n /**\n * @ignore\n */\n onFocus: PropTypes.func,\n /**\n * Callback fired when the `input` doesn't satisfy its constraints.\n */\n onInvalid: PropTypes.func,\n /**\n * @ignore\n */\n onKeyDown: PropTypes.func,\n /**\n * @ignore\n */\n onKeyUp: PropTypes.func,\n /**\n * The short hint displayed in the `input` before the user enters a value.\n */\n placeholder: PropTypes.string,\n /**\n * It prevents the user from changing the value of the field\n * (not from interacting with the field).\n */\n readOnly: PropTypes.bool,\n /**\n * @ignore\n */\n renderSuffix: PropTypes.func,\n /**\n * If `true`, the `input` element is required.\n * The prop defaults to the value (`false`) inherited from the parent FormControl component.\n */\n required: PropTypes.bool,\n /**\n * Number of rows to display when multiline option is set to true.\n */\n rows: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n /**\n * The size of the component.\n */\n size: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['medium', 'small']), PropTypes.string]),\n /**\n * The extra props for the slot components.\n * You can override the existing props or add new ones.\n *\n * This prop is an alias for the `componentsProps` prop, which will be deprecated in the future.\n *\n * @default {}\n */\n slotProps: PropTypes.shape({\n input: PropTypes.object,\n root: PropTypes.object\n }),\n /**\n * The components used for each slot inside.\n *\n * This prop is an alias for the `components` prop, which will be deprecated in the future.\n *\n * @default {}\n */\n slots: PropTypes.shape({\n input: PropTypes.elementType,\n root: PropTypes.elementType\n }),\n /**\n * Start `InputAdornment` for this component.\n */\n startAdornment: 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 /**\n * Type of the `input` element. It should be [a valid HTML5 input type](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Form_%3Cinput%3E_types).\n * @default 'text'\n */\n type: PropTypes.string,\n /**\n * The value of the `input` element, required for a controlled component.\n */\n value: PropTypes.any\n} : void 0;\nexport default InputBase;", "'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"badgeContent\", \"children\", \"invisible\", \"max\", \"slotProps\", \"slots\", \"showZero\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { unstable_composeClasses as composeClasses } from '../composeClasses';\nimport { useBadge } from '../useBadge';\nimport { getBadgeUtilityClass } from './badgeClasses';\nimport { useSlotProps } from '../utils';\nimport { useClassNamesOverride } from '../utils/ClassNameConfigurator';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n invisible\n } = ownerState;\n const slots = {\n root: ['root'],\n badge: ['badge', invisible && 'invisible']\n };\n return composeClasses(slots, useClassNamesOverride(getBadgeUtilityClass));\n};\n/**\n *\n * Demos:\n *\n * - [Badge](https://mui.com/base-ui/react-badge/)\n *\n * API:\n *\n * - [Badge API](https://mui.com/base-ui/react-badge/components-api/#badge)\n */\nconst Badge = /*#__PURE__*/React.forwardRef(function Badge(props, forwardedRef) {\n var _slots$root, _slots$badge;\n const {\n children,\n max: maxProp = 99,\n slotProps = {},\n slots = {},\n showZero = false\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const {\n badgeContent,\n max,\n displayValue,\n invisible\n } = useBadge(_extends({}, props, {\n max: maxProp\n }));\n const ownerState = _extends({}, props, {\n badgeContent,\n invisible,\n max,\n showZero\n });\n const classes = useUtilityClasses(ownerState);\n const Root = (_slots$root = slots.root) != null ? _slots$root : 'span';\n const rootProps = useSlotProps({\n elementType: Root,\n externalSlotProps: slotProps.root,\n externalForwardedProps: other,\n additionalProps: {\n ref: forwardedRef\n },\n ownerState,\n className: classes.root\n });\n const BadgeComponent = (_slots$badge = slots.badge) != null ? _slots$badge : 'span';\n const badgeProps = useSlotProps({\n elementType: BadgeComponent,\n externalSlotProps: slotProps.badge,\n ownerState,\n className: classes.badge\n });\n return /*#__PURE__*/_jsxs(Root, _extends({}, rootProps, {\n children: [children, /*#__PURE__*/_jsx(BadgeComponent, _extends({}, badgeProps, {\n children: displayValue\n }))]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Badge.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 content rendered within the badge.\n */\n badgeContent: PropTypes.node,\n /**\n * The badge will be added relative to this node.\n */\n children: PropTypes.node,\n /**\n * If `true`, the badge is invisible.\n * @default false\n */\n invisible: PropTypes.bool,\n /**\n * Max count to show.\n * @default 99\n */\n max: PropTypes.number,\n /**\n * Controls whether the badge is hidden when `badgeContent` is zero.\n * @default false\n */\n showZero: PropTypes.bool,\n /**\n * The props used for each slot inside the Badge.\n * @default {}\n */\n slotProps: PropTypes.shape({\n badge: 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 Badge.\n * Either a string to use a HTML element or a component.\n * @default {}\n */\n slots: PropTypes.shape({\n badge: PropTypes.elementType,\n root: PropTypes.elementType\n })\n} : void 0;\nexport { Badge };", "'use client';\n\nimport { usePreviousProps } from '@mui/utils';\n/**\n *\n * Demos:\n *\n * - [Badge](https://mui.com/base-ui/react-badge/#hook)\n *\n * API:\n *\n * - [useBadge API](https://mui.com/base-ui/react-badge/hooks-api/#use-badge)\n */\nexport function useBadge(parameters) {\n const {\n badgeContent: badgeContentProp,\n invisible: invisibleProp = false,\n max: maxProp = 99,\n showZero = false\n } = parameters;\n const prevProps = usePreviousProps({\n badgeContent: badgeContentProp,\n max: maxProp\n });\n let invisible = invisibleProp;\n if (invisibleProp === false && badgeContentProp === 0 && !showZero) {\n invisible = true;\n }\n const {\n badgeContent,\n max = maxProp\n } = invisible ? prevProps : parameters;\n const displayValue = badgeContent && Number(badgeContent) > max ? `${max}+` : badgeContent;\n return {\n badgeContent,\n invisible,\n max,\n displayValue\n };\n}", "import { generateUtilityClasses } from '../generateUtilityClasses';\nimport { generateUtilityClass } from '../generateUtilityClass';\nconst COMPONENT_NAME = 'Badge';\nexport function getBadgeUtilityClass(slot) {\n return generateUtilityClass(COMPONENT_NAME, slot);\n}\nexport const badgeClasses = generateUtilityClasses(COMPONENT_NAME, ['root', 'badge', 'invisible']);", "'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"action\", \"children\", \"disabled\", \"focusableWhenDisabled\", \"onFocusVisible\", \"slotProps\", \"slots\", \"rootElementName\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { unstable_composeClasses as composeClasses } from '../composeClasses';\nimport { getButtonUtilityClass } from './buttonClasses';\nimport { useButton } from '../useButton';\nimport { useSlotProps } from '../utils';\nimport { useClassNamesOverride } from '../utils/ClassNameConfigurator';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n active,\n disabled,\n focusVisible\n } = ownerState;\n const slots = {\n root: ['root', disabled && 'disabled', focusVisible && 'focusVisible', active && 'active']\n };\n return composeClasses(slots, useClassNamesOverride(getButtonUtilityClass));\n};\n/**\n * The foundation for building custom-styled buttons.\n *\n * Demos:\n *\n * - [Button](https://mui.com/base-ui/react-button/)\n *\n * API:\n *\n * - [Button API](https://mui.com/base-ui/react-button/components-api/#button)\n */\nconst Button = /*#__PURE__*/React.forwardRef(function Button(props, forwardedRef) {\n var _slots$root;\n const {\n action,\n children,\n focusableWhenDisabled = false,\n slotProps = {},\n slots = {},\n rootElementName: rootElementNameProp = 'button'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const buttonRef = React.useRef();\n let rootElementName = rootElementNameProp;\n if (typeof slots.root === 'string') {\n rootElementName = slots.root;\n } else if (other.href || other.to) {\n rootElementName = 'a';\n }\n const {\n active,\n focusVisible,\n setFocusVisible,\n getRootProps\n } = useButton(_extends({}, props, {\n focusableWhenDisabled,\n rootElementName\n }));\n React.useImperativeHandle(action, () => ({\n focusVisible: () => {\n setFocusVisible(true);\n buttonRef.current.focus();\n }\n }), [setFocusVisible]);\n const ownerState = _extends({}, props, {\n active,\n focusableWhenDisabled,\n focusVisible\n });\n const classes = useUtilityClasses(ownerState);\n const defaultElement = other.href || other.to ? 'a' : 'button';\n const Root = (_slots$root = slots.root) != null ? _slots$root : defaultElement;\n const rootProps = useSlotProps({\n elementType: Root,\n getSlotProps: getRootProps,\n externalForwardedProps: other,\n externalSlotProps: slotProps.root,\n additionalProps: {\n ref: forwardedRef\n },\n ownerState,\n className: classes.root\n });\n return /*#__PURE__*/_jsx(Root, _extends({}, rootProps, {\n children: children\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Button.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 ref for imperative actions. It currently only supports `focusVisible()` action.\n */\n action: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({\n current: PropTypes.shape({\n focusVisible: PropTypes.func.isRequired\n })\n })]),\n /**\n * @ignore\n */\n children: PropTypes.node,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * If `true`, the component is disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, allows a disabled button to receive focus.\n * @default false\n */\n focusableWhenDisabled: PropTypes.bool,\n /**\n * @ignore\n */\n href: PropTypes.string,\n /**\n * @ignore\n */\n onFocusVisible: PropTypes.func,\n /**\n * The HTML element that is ultimately rendered, for example 'button' or 'a'\n * @default 'button'\n */\n rootElementName: PropTypes /* @typescript-to-proptypes-ignore */.string,\n /**\n * The props used for each slot inside the Button.\n * @default {}\n */\n slotProps: PropTypes.shape({\n root: PropTypes.oneOfType([PropTypes.func, PropTypes.object])\n }),\n /**\n * The components used for each slot inside the Button.\n * Either a string to use a HTML element or a component.\n * @default {}\n */\n slots: PropTypes.shape({\n root: PropTypes.elementType\n }),\n /**\n * @ignore\n */\n to: PropTypes.string\n} : void 0;\nexport { Button };", "import { generateUtilityClass } from '../generateUtilityClass';\nimport { generateUtilityClasses } from '../generateUtilityClasses';\nconst COMPONENT_NAME = 'Button';\nexport function getButtonUtilityClass(slot) {\n return generateUtilityClass(COMPONENT_NAME, slot);\n}\nexport const buttonClasses = generateUtilityClasses(COMPONENT_NAME, ['root', 'active', 'disabled', 'focusVisible']);", "'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { unstable_useForkRef as useForkRef, unstable_useIsFocusVisible as useIsFocusVisible } from '@mui/utils';\nimport { extractEventHandlers } from '../utils/extractEventHandlers';\nimport { useRootElementName } from '../utils/useRootElementName';\n/**\n *\n * Demos:\n *\n * - [Button](https://mui.com/base-ui/react-button/#hook)\n *\n * API:\n *\n * - [useButton API](https://mui.com/base-ui/react-button/hooks-api/#use-button)\n */\nexport function useButton(parameters = {}) {\n const {\n disabled = false,\n focusableWhenDisabled,\n href,\n rootRef: externalRef,\n tabIndex,\n to,\n type,\n rootElementName: rootElementNameProp\n } = parameters;\n const buttonRef = React.useRef();\n const [active, setActive] = React.useState(false);\n const {\n isFocusVisibleRef,\n onFocus: handleFocusVisible,\n onBlur: handleBlurVisible,\n ref: focusVisibleRef\n } = useIsFocusVisible();\n const [focusVisible, setFocusVisible] = React.useState(false);\n if (disabled && !focusableWhenDisabled && focusVisible) {\n setFocusVisible(false);\n }\n React.useEffect(() => {\n isFocusVisibleRef.current = focusVisible;\n }, [focusVisible, isFocusVisibleRef]);\n const [rootElementName, updateRootElementName] = useRootElementName({\n rootElementName: rootElementNameProp != null ? rootElementNameProp : href || to ? 'a' : undefined,\n componentName: 'Button'\n });\n const createHandleMouseLeave = otherHandlers => event => {\n var _otherHandlers$onMous;\n if (focusVisible) {\n event.preventDefault();\n }\n (_otherHandlers$onMous = otherHandlers.onMouseLeave) == null || _otherHandlers$onMous.call(otherHandlers, event);\n };\n const createHandleBlur = otherHandlers => event => {\n var _otherHandlers$onBlur;\n handleBlurVisible(event);\n if (isFocusVisibleRef.current === false) {\n setFocusVisible(false);\n }\n (_otherHandlers$onBlur = otherHandlers.onBlur) == null || _otherHandlers$onBlur.call(otherHandlers, event);\n };\n const createHandleFocus = otherHandlers => event => {\n var _otherHandlers$onFocu2;\n // Fix for https://github.com/facebook/react/issues/7769\n if (!buttonRef.current) {\n buttonRef.current = event.currentTarget;\n }\n handleFocusVisible(event);\n if (isFocusVisibleRef.current === true) {\n var _otherHandlers$onFocu;\n setFocusVisible(true);\n (_otherHandlers$onFocu = otherHandlers.onFocusVisible) == null || _otherHandlers$onFocu.call(otherHandlers, event);\n }\n (_otherHandlers$onFocu2 = otherHandlers.onFocus) == null || _otherHandlers$onFocu2.call(otherHandlers, event);\n };\n const isNativeButton = () => {\n const button = buttonRef.current;\n return rootElementName === 'BUTTON' || rootElementName === 'INPUT' && ['button', 'submit', 'reset'].includes(button == null ? void 0 : button.type) || rootElementName === 'A' && (button == null ? void 0 : button.href);\n };\n const createHandleClick = otherHandlers => event => {\n if (!disabled) {\n var _otherHandlers$onClic;\n (_otherHandlers$onClic = otherHandlers.onClick) == null || _otherHandlers$onClic.call(otherHandlers, event);\n }\n };\n const createHandleMouseDown = otherHandlers => event => {\n var _otherHandlers$onMous2;\n if (!disabled) {\n setActive(true);\n document.addEventListener('mouseup', () => {\n setActive(false);\n }, {\n once: true\n });\n }\n (_otherHandlers$onMous2 = otherHandlers.onMouseDown) == null || _otherHandlers$onMous2.call(otherHandlers, event);\n };\n const createHandleKeyDown = otherHandlers => event => {\n var _otherHandlers$onKeyD;\n (_otherHandlers$onKeyD = otherHandlers.onKeyDown) == null || _otherHandlers$onKeyD.call(otherHandlers, event);\n if (event.defaultMuiPrevented) {\n return;\n }\n if (event.target === event.currentTarget && !isNativeButton() && event.key === ' ') {\n event.preventDefault();\n }\n if (event.target === event.currentTarget && event.key === ' ' && !disabled) {\n setActive(true);\n }\n\n // Keyboard accessibility for non interactive elements\n if (event.target === event.currentTarget && !isNativeButton() && event.key === 'Enter' && !disabled) {\n var _otherHandlers$onClic2;\n (_otherHandlers$onClic2 = otherHandlers.onClick) == null || _otherHandlers$onClic2.call(otherHandlers, event);\n event.preventDefault();\n }\n };\n const createHandleKeyUp = otherHandlers => event => {\n var _otherHandlers$onKeyU;\n // calling preventDefault in keyUp on a <button> will not dispatch a click event if Space is pressed\n // https://codesandbox.io/p/sandbox/button-keyup-preventdefault-dn7f0\n\n if (event.target === event.currentTarget) {\n setActive(false);\n }\n (_otherHandlers$onKeyU = otherHandlers.onKeyUp) == null || _otherHandlers$onKeyU.call(otherHandlers, event);\n\n // Keyboard accessibility for non interactive elements\n if (event.target === event.currentTarget && !isNativeButton() && !disabled && event.key === ' ' && !event.defaultMuiPrevented) {\n var _otherHandlers$onClic3;\n (_otherHandlers$onClic3 = otherHandlers.onClick) == null || _otherHandlers$onClic3.call(otherHandlers, event);\n }\n };\n const handleRef = useForkRef(updateRootElementName, externalRef, focusVisibleRef, buttonRef);\n const buttonProps = {};\n if (tabIndex !== undefined) {\n buttonProps.tabIndex = tabIndex;\n }\n if (rootElementName === 'BUTTON') {\n buttonProps.type = type != null ? type : 'button';\n if (focusableWhenDisabled) {\n buttonProps['aria-disabled'] = disabled;\n } else {\n buttonProps.disabled = disabled;\n }\n } else if (rootElementName === 'INPUT') {\n if (type && ['button', 'submit', 'reset'].includes(type)) {\n if (focusableWhenDisabled) {\n buttonProps['aria-disabled'] = disabled;\n } else {\n buttonProps.disabled = disabled;\n }\n }\n } else if (rootElementName !== '') {\n if (!href && !to) {\n buttonProps.role = 'button';\n buttonProps.tabIndex = tabIndex != null ? tabIndex : 0;\n }\n if (disabled) {\n buttonProps['aria-disabled'] = disabled;\n buttonProps.tabIndex = focusableWhenDisabled ? tabIndex != null ? tabIndex : 0 : -1;\n }\n }\n const getRootProps = (externalProps = {}) => {\n const externalEventHandlers = _extends({}, extractEventHandlers(parameters), extractEventHandlers(externalProps));\n const props = _extends({\n type\n }, externalEventHandlers, buttonProps, externalProps, {\n onBlur: createHandleBlur(externalEventHandlers),\n onClick: createHandleClick(externalEventHandlers),\n onFocus: createHandleFocus(externalEventHandlers),\n onKeyDown: createHandleKeyDown(externalEventHandlers),\n onKeyUp: createHandleKeyUp(externalEventHandlers),\n onMouseDown: createHandleMouseDown(externalEventHandlers),\n onMouseLeave: createHandleMouseLeave(externalEventHandlers),\n ref: handleRef\n });\n\n // onFocusVisible can be present on the props or parameters,\n // but it's not a valid React event handler so it must not be forwarded to the inner component.\n // If present, it will be handled by the focus handler.\n delete props.onFocusVisible;\n return props;\n };\n return {\n getRootProps,\n focusVisible,\n setFocusVisible,\n active,\n rootRef: handleRef\n };\n}", "'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { exactProp } from '@mui/utils';\nimport { DropdownContext } from '../useDropdown/DropdownContext';\nimport { useDropdown } from '../useDropdown/useDropdown';\n/**\n *\n * Demos:\n *\n * - [Menu](https://mui.com/base-ui/react-menu/)\n *\n * API:\n *\n * - [Dropdown API](https://mui.com/base-ui/react-menu/components-api/#dropdown)\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction Dropdown(props) {\n const {\n children,\n open,\n defaultOpen,\n onOpenChange\n } = props;\n const {\n contextValue\n } = useDropdown({\n defaultOpen,\n onOpenChange,\n open\n });\n return /*#__PURE__*/_jsx(DropdownContext.Provider, {\n value: contextValue,\n children: children\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? Dropdown.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 * @ignore\n */\n children: PropTypes.node,\n /**\n * If `true`, the dropdown is initially open.\n */\n defaultOpen: PropTypes.bool,\n /**\n * Callback fired when the component requests to be opened or closed.\n */\n onOpenChange: PropTypes.func,\n /**\n * Allows to control whether the dropdown is open.\n * This is a controlled counterpart of `defaultOpen`.\n */\n open: PropTypes.bool\n} : void 0;\nif (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line\n Dropdown['propTypes' + ''] = exactProp(Dropdown.propTypes);\n}\nexport { Dropdown };", "import * as React from 'react';\nconst DropdownContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== 'production') {\n DropdownContext.displayName = 'DropdownContext';\n}\nexport { DropdownContext };", "'use client';\n\nimport * as React from 'react';\nimport { useControllableReducer } from '../utils/useControllableReducer';\nimport { DropdownActionTypes } from './useDropdown.types';\nimport { dropdownReducer } from './dropdownReducer';\n\n/**\n *\n * Demos:\n *\n * - [Menu](https://mui.com/base-ui/react-menu/#hooks)\n *\n * API:\n *\n * - [useDropdown API](https://mui.com/base-ui/react-menu/hooks-api/#use-dropdown)\n */\nexport function useDropdown(parameters = {}) {\n const {\n defaultOpen,\n onOpenChange,\n open: openProp,\n componentName = 'useDropdown'\n } = parameters;\n const [popupId, setPopupId] = React.useState('');\n const [triggerElement, setTriggerElement] = React.useState(null);\n const lastActionType = React.useRef(null);\n const handleStateChange = React.useCallback((event, field, value, reason) => {\n if (field === 'open') {\n onOpenChange == null || onOpenChange(event, value);\n }\n lastActionType.current = reason;\n }, [onOpenChange]);\n const controlledProps = React.useMemo(() => openProp !== undefined ? {\n open: openProp\n } : {}, [openProp]);\n const [state, dispatch] = useControllableReducer({\n controlledProps,\n initialState: defaultOpen ? {\n open: true,\n changeReason: null\n } : {\n open: false,\n changeReason: null\n },\n onStateChange: handleStateChange,\n reducer: dropdownReducer,\n componentName\n });\n React.useEffect(() => {\n if (!state.open && lastActionType.current !== null && lastActionType.current !== DropdownActionTypes.blur) {\n triggerElement == null || triggerElement.focus();\n }\n }, [state.open, triggerElement]);\n const contextValue = {\n state,\n dispatch,\n popupId,\n registerPopup: setPopupId,\n registerTrigger: setTriggerElement,\n triggerElement\n };\n return {\n contextValue,\n open: state.open\n };\n}", "'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nfunction areEqual(a, b) {\n return a === b;\n}\nconst EMPTY_OBJECT = {};\nconst NOOP = () => {};\n\n/**\n * Gets the current state augmented with controlled values from the outside.\n * If a state item has a corresponding controlled value, it will be used instead of the internal state.\n */\nfunction getControlledState(internalState, controlledProps) {\n const augmentedState = _extends({}, internalState);\n Object.keys(controlledProps).forEach(key => {\n if (controlledProps[key] !== undefined) {\n augmentedState[key] = controlledProps[key];\n }\n });\n return augmentedState;\n}\n/**\n * Defines an effect that compares the next state with the previous state and calls\n * the `onStateChange` callback if the state has changed.\n * The comparison is done based on the `stateComparers` parameter.\n */\nfunction useStateChangeDetection(parameters) {\n const {\n nextState,\n initialState,\n stateComparers,\n onStateChange,\n controlledProps,\n lastActionRef\n } = parameters;\n const internalPreviousStateRef = React.useRef(initialState);\n React.useEffect(() => {\n if (lastActionRef.current === null) {\n // Detect changes only if an action has been dispatched.\n return;\n }\n const previousState = getControlledState(internalPreviousStateRef.current, controlledProps);\n Object.keys(nextState).forEach(key => {\n var _stateComparers$key;\n // go through all state keys and compare them with the previous state\n const stateComparer = (_stateComparers$key = stateComparers[key]) != null ? _stateComparers$key : areEqual;\n const nextStateItem = nextState[key];\n const previousStateItem = previousState[key];\n if (previousStateItem == null && nextStateItem != null || previousStateItem != null && nextStateItem == null || previousStateItem != null && nextStateItem != null && !stateComparer(nextStateItem, previousStateItem)) {\n var _event, _type;\n onStateChange == null || onStateChange((_event = lastActionRef.current.event) != null ? _event : null, key, nextStateItem, (_type = lastActionRef.current.type) != null ? _type : '', nextState);\n }\n });\n internalPreviousStateRef.current = nextState;\n lastActionRef.current = null;\n }, [internalPreviousStateRef, nextState, lastActionRef, onStateChange, stateComparers, controlledProps]);\n}\n\n/**\n * The alternative to `React.useReducer` that lets you control the state from the outside.\n *\n * It can be used in an uncontrolled mode, similar to `React.useReducer`, or in a controlled mode, when the state is controlled by the props.\n * It also supports partially controlled state, when some state items are controlled and some are not.\n *\n * The controlled state items are provided via the `controlledProps` parameter.\n * When a reducer action is dispatched, the internal state is updated with the new values.\n * A change event (`onStateChange`) is then triggered (for each changed state item) if the new state is different from the previous state.\n * This event can be used to update the controlled values.\n *\n * The comparison of the previous and next states is done using the `stateComparers` parameter.\n * If a state item has a corresponding comparer, it will be used to determine if the state has changed.\n * This is useful when the state item is an object and you want to compare only a subset of its properties or if it's an array and you want to compare its contents.\n *\n * An additional feature is the `actionContext` parameter. It allows you to add additional properties to every action object,\n * similarly to how React context is implicitly available to every component.\n *\n * @template State - The type of the state calculated by the reducer.\n * @template Action - The type of the actions that can be dispatched.\n * @template ActionContext - The type of the additional properties that will be added to every action object.\n *\n * @ignore - internal hook.\n */\nexport function useControllableReducer(parameters) {\n const lastActionRef = React.useRef(null);\n const {\n reducer,\n initialState,\n controlledProps = EMPTY_OBJECT,\n stateComparers = EMPTY_OBJECT,\n onStateChange = NOOP,\n actionContext,\n componentName = ''\n } = parameters;\n const controlledPropsRef = React.useRef(controlledProps);\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useEffect(() => {\n Object.keys(controlledProps).forEach(key => {\n if (controlledPropsRef.current[key] !== undefined && controlledProps[key] === undefined) {\n console.error(`useControllableReducer: ${componentName ? `The ${componentName} component` : 'A component'} is changing a controlled prop to be uncontrolled: ${key}`);\n }\n if (controlledPropsRef.current[key] === undefined && controlledProps[key] !== undefined) {\n console.error(`useControllableReducer: ${componentName ? `The ${componentName} component` : 'A component'} is changing an uncontrolled prop to be controlled: ${key}`);\n }\n });\n }, [controlledProps, componentName]);\n }\n\n // The reducer that is passed to React.useReducer is wrapped with a function that augments the state with controlled values.\n const reducerWithControlledState = React.useCallback((state, action) => {\n lastActionRef.current = action;\n const controlledState = getControlledState(state, controlledProps);\n const newState = reducer(controlledState, action);\n return newState;\n }, [controlledProps, reducer]);\n const [nextState, dispatch] = React.useReducer(reducerWithControlledState, initialState);\n\n // The action that is passed to dispatch is augmented with the actionContext.\n const dispatchWithContext = React.useCallback(action => {\n dispatch(_extends({}, action, {\n context: actionContext\n }));\n }, [actionContext]);\n useStateChangeDetection({\n nextState,\n initialState,\n stateComparers: stateComparers != null ? stateComparers : EMPTY_OBJECT,\n onStateChange: onStateChange != null ? onStateChange : NOOP,\n controlledProps,\n lastActionRef\n });\n return [getControlledState(nextState, controlledProps), dispatchWithContext];\n}", "export const DropdownActionTypes = {\n blur: 'dropdown:blur',\n escapeKeyDown: 'dropdown:escapeKeyDown',\n toggle: 'dropdown:toggle',\n open: 'dropdown:open',\n close: 'dropdown:close'\n};", "import { DropdownActionTypes } from './useDropdown.types';\nexport function dropdownReducer(state, action) {\n switch (action.type) {\n case DropdownActionTypes.blur:\n return {\n open: false,\n changeReason: action.event\n };\n case DropdownActionTypes.escapeKeyDown:\n return {\n open: false,\n changeReason: action.event\n };\n case DropdownActionTypes.toggle:\n return {\n open: !state.open,\n changeReason: action.event\n };\n case DropdownActionTypes.open:\n return {\n open: true,\n changeReason: action.event\n };\n case DropdownActionTypes.close:\n return {\n open: false,\n changeReason: action.event\n };\n default:\n throw new Error(`Unhandled action`);\n }\n}", "'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"defaultValue\", \"children\", \"disabled\", \"error\", \"onChange\", \"required\", \"slotProps\", \"slots\", \"value\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport useControlled from '@mui/utils/useControlled';\nimport { FormControlContext } from './FormControlContext';\nimport { getFormControlUtilityClass } from './formControlClasses';\nimport { useSlotProps } from '../utils';\nimport { unstable_composeClasses as composeClasses } from '../composeClasses';\nimport { useClassNamesOverride } from '../utils/ClassNameConfigurator';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction hasValue(value) {\n return value != null && !(Array.isArray(value) && value.length === 0) && value !== '';\n}\nfunction useUtilityClasses(ownerState) {\n const {\n disabled,\n error,\n filled,\n focused,\n required\n } = ownerState;\n const slots = {\n root: ['root', disabled && 'disabled', focused && 'focused', error && 'error', filled && 'filled', required && 'required']\n };\n return composeClasses(slots, useClassNamesOverride(getFormControlUtilityClass));\n}\n\n/**\n * Provides context such as filled/focused/error/required for form inputs.\n * Relying on the context provides high flexibility and ensures that the state always stays\n * consistent across the children of the `FormControl`.\n * This context is used by the following components:\n *\n * * FormLabel\n * * FormHelperText\n * * Input\n * * InputLabel\n *\n * You can find one composition example below and more going to [the demos](https://mui.com/material-ui/react-text-field/#components).\n *\n * ```jsx\n * <FormControl>\n * <InputLabel htmlFor=\"my-input\">Email address</InputLabel>\n * <Input id=\"my-input\" aria-describedby=\"my-helper-text\" />\n * <FormHelperText id=\"my-helper-text\">We'll never share your email.</FormHelperText>\n * </FormControl>\n * ```\n *\n * ⚠️ Only one `Input` can be used within a FormControl because it create visual inconsistencies.\n * For instance, only one input can be focused at the same time, the state shouldn't be shared.\n *\n * Demos:\n *\n * - [Form Control](https://mui.com/base-ui/react-form-control/)\n * - [Input](https://mui.com/joy-ui/react-input/)\n * - [Checkbox](https://mui.com/material-ui/react-checkbox/)\n * - [Radio Group](https://mui.com/material-ui/react-radio-button/)\n * - [Switch](https://mui.com/material-ui/react-switch/)\n * - [Text Field](https://mui.com/material-ui/react-text-field/)\n *\n * API:\n *\n * - [FormControl API](https://mui.com/base-ui/react-form-control/components-api/#form-control)\n */\nconst FormControl = /*#__PURE__*/React.forwardRef(function FormControl(props, forwardedRef) {\n var _slots$root;\n const {\n defaultValue,\n children,\n disabled = false,\n error = false,\n onChange,\n required = false,\n slotProps = {},\n slots = {},\n value: incomingValue\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const [value, setValue] = useControlled({\n controlled: incomingValue,\n default: defaultValue,\n name: 'FormControl',\n state: 'value'\n });\n const filled = hasValue(value);\n const [focusedState, setFocused] = React.useState(false);\n const focused = focusedState && !disabled;\n React.useEffect(() => setFocused(isFocused => disabled ? false : isFocused), [disabled]);\n const ownerState = _extends({}, props, {\n disabled,\n error,\n filled,\n focused,\n required\n });\n const childContext = React.useMemo(() => {\n return {\n disabled,\n error,\n filled,\n focused,\n onBlur: () => {\n setFocused(false);\n },\n onChange: event => {\n setValue(event.target.value);\n onChange == null || onChange(event);\n },\n onFocus: () => {\n setFocused(true);\n },\n required,\n value: value != null ? value : ''\n };\n }, [disabled, error, filled, focused, onChange, required, setValue, value]);\n const classes = useUtilityClasses(ownerState);\n const renderChildren = () => {\n if (typeof children === 'function') {\n return children(childContext);\n }\n return children;\n };\n const Root = (_slots$root = slots.root) != null ? _slots$root : 'div';\n const rootProps = useSlotProps({\n elementType: Root,\n externalSlotProps: slotProps.root,\n externalForwardedProps: other,\n additionalProps: {\n ref: forwardedRef,\n children: renderChildren()\n },\n ownerState,\n className: classes.root\n });\n return /*#__PURE__*/_jsx(FormControlContext.Provider, {\n value: childContext,\n children: /*#__PURE__*/_jsx(Root, _extends({}, rootProps))\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? FormControl.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 content of the component.\n */\n children: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.node, PropTypes.func]),\n /**\n * Class name applied to the root element.\n */\n className: PropTypes.string,\n /**\n * @ignore\n */\n defaultValue: PropTypes.any,\n /**\n * If `true`, the label, input and helper text should be displayed in a disabled state.\n * @default false\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, the label is displayed in an error state.\n * @default false\n */\n error: PropTypes.bool,\n /**\n * Callback fired when the form element's value is modified.\n */\n onChange: PropTypes.func,\n /**\n * If `true`, the label will indicate that the `input` is required.\n * @default false\n */\n required: PropTypes.bool,\n /**\n * The props used for each slot inside the FormControl.\n * @default {}\n */\n slotProps: PropTypes.shape({\n root: PropTypes.oneOfType([PropTypes.func, PropTypes.object])\n }),\n /**\n * The components used for each slot inside the FormControl.\n * Either a string to use a HTML element or a component.\n * @default {}\n */\n slots: PropTypes.shape({\n root: PropTypes.elementType\n }),\n /**\n * The value of the form element.\n */\n value: PropTypes.any\n} : void 0;\nexport { FormControl };", "import * as React from 'react';\n/**\n * @ignore - internal component.\n */\nconst FormControlContext = /*#__PURE__*/React.createContext(undefined);\nif (process.env.NODE_ENV !== 'production') {\n FormControlContext.displayName = 'FormControlContext';\n}\nexport { FormControlContext };", "import { generateUtilityClass } from '../generateUtilityClass';\nimport { generateUtilityClasses } from '../generateUtilityClasses';\nconst COMPONENT_NAME = 'FormControl';\nexport function getFormControlUtilityClass(slot) {\n return generateUtilityClass(COMPONENT_NAME, slot);\n}\nexport const formControlClasses = generateUtilityClasses(COMPONENT_NAME, ['root', 'disabled', 'error', 'filled', 'focused', 'required']);", "'use client';\n\nimport * as React from 'react';\nimport { FormControlContext } from './FormControlContext';\n/**\n *\n * Demos:\n *\n * - [Form Control](https://mui.com/base-ui/react-form-control/#hook)\n *\n * API:\n *\n * - [useFormControlContext API](https://mui.com/base-ui/react-form-control/hooks-api/#use-form-control-context)\n */\nexport function useFormControlContext() {\n return React.useContext(FormControlContext);\n}", "'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"aria-describedby\", \"aria-label\", \"aria-labelledby\", \"autoComplete\", \"autoFocus\", \"className\", \"defaultValue\", \"disabled\", \"endAdornment\", \"error\", \"id\", \"multiline\", \"name\", \"onClick\", \"onChange\", \"onKeyDown\", \"onKeyUp\", \"onFocus\", \"onBlur\", \"placeholder\", \"readOnly\", \"required\", \"startAdornment\", \"value\", \"type\", \"rows\", \"slotProps\", \"slots\", \"minRows\", \"maxRows\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { isHostComponent } from '../utils/isHostComponent';\nimport { getInputUtilityClass } from './inputClasses';\nimport { useInput } from '../useInput';\nimport { useSlotProps } from '../utils';\nimport { unstable_composeClasses as composeClasses } from '../composeClasses';\nimport { useClassNamesOverride } from '../utils/ClassNameConfigurator';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n disabled,\n error,\n focused,\n formControlContext,\n multiline,\n startAdornment,\n endAdornment\n } = ownerState;\n const slots = {\n root: ['root', disabled && 'disabled', error && 'error', focused && 'focused', Boolean(formControlContext) && 'formControl', multiline && 'multiline', Boolean(startAdornment) && 'adornedStart', Boolean(endAdornment) && 'adornedEnd'],\n input: ['input', disabled && 'disabled', multiline && 'multiline']\n };\n return composeClasses(slots, useClassNamesOverride(getInputUtilityClass));\n};\n\n/**\n *\n * Demos:\n *\n * - [Input](https://mui.com/base-ui/react-input/)\n *\n * API:\n *\n * - [Input API](https://mui.com/base-ui/react-input/components-api/#input)\n */\nconst Input = /*#__PURE__*/React.forwardRef(function Input(props, forwardedRef) {\n var _slots$root, _slots$textarea, _slots$input;\n const {\n 'aria-describedby': ariaDescribedby,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n autoComplete,\n autoFocus,\n className,\n defaultValue,\n disabled,\n endAdornment,\n error,\n id,\n multiline = false,\n name,\n onClick,\n onChange,\n onKeyDown,\n onKeyUp,\n onFocus,\n onBlur,\n placeholder,\n readOnly,\n required,\n startAdornment,\n value,\n type: typeProp,\n rows,\n slotProps = {},\n slots = {},\n minRows,\n maxRows\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const {\n getRootProps,\n getInputProps,\n focused,\n formControlContext,\n error: errorState,\n disabled: disabledState\n } = useInput({\n disabled,\n defaultValue,\n error,\n onBlur,\n onClick,\n onChange,\n onFocus,\n required,\n value\n });\n const type = !multiline ? typeProp != null ? typeProp : 'text' : undefined;\n const ownerState = _extends({}, props, {\n disabled: disabledState,\n error: errorState,\n focused,\n formControlContext,\n multiline,\n type\n });\n const classes = useUtilityClasses(ownerState);\n const propsToForward = {\n 'aria-describedby': ariaDescribedby,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n autoComplete,\n autoFocus,\n id,\n onKeyDown,\n onKeyUp,\n name,\n placeholder,\n readOnly,\n type\n };\n const Root = (_slots$root = slots.root) != null ? _slots$root : 'div';\n const rootProps = useSlotProps({\n elementType: Root,\n getSlotProps: getRootProps,\n externalSlotProps: slotProps.root,\n externalForwardedProps: other,\n additionalProps: {\n ref: forwardedRef\n },\n ownerState,\n className: [classes.root, className]\n });\n const InputComponent = multiline ? (_slots$textarea = slots.textarea) != null ? _slots$textarea : 'textarea' : (_slots$input = slots.input) != null ? _slots$input : 'input';\n const inputProps = useSlotProps({\n elementType: InputComponent,\n getSlotProps: otherHandlers => {\n return getInputProps(_extends({}, propsToForward, otherHandlers));\n },\n externalSlotProps: slotProps.input,\n additionalProps: _extends({\n rows: multiline ? rows : undefined\n }, multiline && !isHostComponent(InputComponent) && {\n minRows: rows || minRows,\n maxRows: rows || maxRows\n }),\n ownerState,\n className: classes.input\n });\n if (process.env.NODE_ENV !== 'production') {\n if (multiline) {\n if (rows) {\n if (minRows || maxRows) {\n console.warn('MUI: You can not use the `minRows` or `maxRows` props when the input `rows` prop is set.');\n }\n }\n }\n }\n return /*#__PURE__*/_jsxs(Root, _extends({}, rootProps, {\n children: [startAdornment, /*#__PURE__*/_jsx(InputComponent, _extends({}, inputProps)), endAdornment]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Input.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 * @ignore\n */\n 'aria-describedby': PropTypes.string,\n /**\n * @ignore\n */\n 'aria-label': PropTypes.string,\n /**\n * @ignore\n */\n 'aria-labelledby': PropTypes.string,\n /**\n * This prop helps users to fill forms faster, especially on mobile devices.\n * The name can be confusing, as it's more like an autofill.\n * You can learn more about it [following the specification](https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#autofill).\n */\n autoComplete: PropTypes.string,\n /**\n * If `true`, the `input` element is focused during the first mount.\n */\n autoFocus: PropTypes.bool,\n /**\n * Class name applied to the root element.\n */\n className: PropTypes.string,\n /**\n * The default value. Use when the component is not controlled.\n */\n defaultValue: PropTypes.any,\n /**\n * If `true`, the component is disabled.\n * The prop defaults to the value (`false`) inherited from the parent FormControl component.\n */\n disabled: PropTypes.bool,\n /**\n * Trailing adornment for this input.\n */\n endAdornment: PropTypes.node,\n /**\n * If `true`, the `input` will indicate an error by setting the `aria-invalid` attribute on the input and the `baseui--error` class on the root element.\n * The prop defaults to the value (`false`) inherited from the parent FormControl component.\n */\n error: PropTypes.bool,\n /**\n * The id of the `input` element.\n */\n id: PropTypes.string,\n /**\n * @ignore\n */\n inputRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({\n current: PropTypes.object\n })]),\n /**\n * Maximum number of rows to display when multiline option is set to true.\n */\n maxRows: PropTypes.number,\n /**\n * Minimum number of rows to display when multiline option is set to true.\n */\n minRows: PropTypes.number,\n /**\n * If `true`, a `textarea` element is rendered.\n * @default false\n */\n multiline: PropTypes.bool,\n /**\n * Name attribute of the `input` element.\n */\n name: PropTypes.string,\n /**\n * @ignore\n */\n onBlur: PropTypes.func,\n /**\n * @ignore\n */\n onChange: PropTypes.func,\n /**\n * @ignore\n */\n onClick: PropTypes.func,\n /**\n * @ignore\n */\n onFocus: PropTypes.func,\n /**\n * @ignore\n */\n onKeyDown: PropTypes.func,\n /**\n * @ignore\n */\n onKeyUp: PropTypes.func,\n /**\n * The short hint displayed in the `input` before the user enters a value.\n */\n placeholder: PropTypes.string,\n /**\n * It prevents the user from changing the value of the field\n * (not from interacting with the field).\n */\n readOnly: PropTypes.bool,\n /**\n * If `true`, the `input` element is required.\n * The prop defaults to the value (`false`) inherited from the parent FormControl component.\n */\n required: PropTypes.bool,\n /**\n * Number of rows to display when multiline option is set to true.\n */\n rows: PropTypes.number,\n /**\n * The props used for each slot inside the Input.\n * @default {}\n */\n slotProps: PropTypes.shape({\n input: 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 InputBase.\n * Either a string to use a HTML element or a component.\n * @default {}\n */\n slots: PropTypes.shape({\n input: PropTypes.elementType,\n root: PropTypes.elementType,\n textarea: PropTypes.elementType\n }),\n /**\n * Leading adornment for this input.\n */\n startAdornment: PropTypes.node,\n /**\n * Type of the `input` element. It should be [a valid HTML5 input type](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Form_%3Cinput%3E_types).\n * @default 'text'\n */\n type: PropTypes /* @typescript-to-proptypes-ignore */.oneOf(['button', 'checkbox', 'color', 'date', 'datetime-local', 'email', 'file', 'hidden', 'image', 'month', 'number', 'password', 'radio', 'range', 'reset', 'search', 'submit', 'tel', 'text', 'time', 'url', 'week']),\n /**\n * The value of the `input` element, required for a controlled component.\n */\n value: PropTypes.any\n} : void 0;\nexport { Input };", "import { generateUtilityClass } from '../generateUtilityClass';\nimport { generateUtilityClasses } from '../generateUtilityClasses';\nconst COMPONENT_NAME = 'Input';\nexport function getInputUtilityClass(slot) {\n return generateUtilityClass(COMPONENT_NAME, slot);\n}\nexport const inputClasses = generateUtilityClasses(COMPONENT_NAME, ['root', 'formControl', 'focused', 'disabled', 'error', 'multiline', 'input', 'inputMultiline', 'inputTypeSearch', 'adornedStart', 'adornedEnd']);", "'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _formatMuiErrorMessage from \"@mui/utils/formatMuiErrorMessage\";\nimport * as React from 'react';\nimport { unstable_useForkRef as useForkRef } from '@mui/utils';\nimport { useFormControlContext } from '../FormControl';\nimport { extractEventHandlers } from '../utils/extractEventHandlers';\n/**\n *\n * Demos:\n *\n * - [Input](https://mui.com/base-ui/react-input/#hook)\n *\n * API:\n *\n * - [useInput API](https://mui.com/base-ui/react-input/hooks-api/#use-input)\n */\nexport function useInput(parameters = {}) {\n const {\n defaultValue: defaultValueProp,\n disabled: disabledProp = false,\n error: errorProp = false,\n onBlur,\n onChange,\n onFocus,\n required: requiredProp = false,\n value: valueProp,\n inputRef: inputRefProp\n } = parameters;\n const formControlContext = useFormControlContext();\n let defaultValue;\n let disabled;\n let error;\n let required;\n let value;\n if (formControlContext) {\n var _formControlContext$d, _formControlContext$e, _formControlContext$r;\n defaultValue = undefined;\n disabled = (_formControlContext$d = formControlContext.disabled) != null ? _formControlContext$d : false;\n error = (_formControlContext$e = formControlContext.error) != null ? _formControlContext$e : false;\n required = (_formControlContext$r = formControlContext.required) != null ? _formControlContext$r : false;\n value = formControlContext.value;\n if (process.env.NODE_ENV !== 'production') {\n const definedLocalProps = ['defaultValue', 'disabled', 'error', 'required', 'value'].filter(prop => parameters[prop] !== undefined);\n if (definedLocalProps.length > 0) {\n console.warn(['MUI: You have set props on an input that is inside a FormControl.', 'Set these props on a FormControl instead. Otherwise they will be ignored.', `Ignored props: ${definedLocalProps.join(', ')}`].join('\\n'));\n }\n }\n } else {\n defaultValue = defaultValueProp;\n disabled = disabledProp;\n error = errorProp;\n required = requiredProp;\n value = valueProp;\n }\n const {\n current: isControlled\n } = React.useRef(value != null);\n const handleInputRefWarning = React.useCallback(instance => {\n if (process.env.NODE_ENV !== 'production') {\n if (instance && instance.nodeName !== 'INPUT' && !instance.focus) {\n console.error(['MUI: You have provided a `slots.input` to the input component', 'that does not correctly handle the `ref` prop.', 'Make sure the `ref` prop is called with a HTMLInputElement.'].join('\\n'));\n }\n }\n }, []);\n const inputRef = React.useRef(null);\n const handleInputRef = useForkRef(inputRef, inputRefProp, handleInputRefWarning);\n const [focused, setFocused] = React.useState(false);\n\n // The blur won't fire when the disabled state is set on a focused input.\n // We need to book keep the focused state manually.\n React.useEffect(() => {\n if (!formControlContext && disabled && focused) {\n setFocused(false);\n\n // @ts-ignore\n onBlur == null || onBlur();\n }\n }, [formControlContext, disabled, focused, onBlur]);\n const handleFocus = otherHandlers => event => {\n var _otherHandlers$onFocu;\n // Fix a bug with IE11 where the focus/blur events are triggered\n // while the component is disabled.\n if (formControlContext != null && formControlContext.disabled) {\n event.stopPropagation();\n return;\n }\n (_otherHandlers$onFocu = otherHandlers.onFocus) == null || _otherHandlers$onFocu.call(otherHandlers, event);\n if (formControlContext && formControlContext.onFocus) {\n var _formControlContext$o;\n formControlContext == null || (_formControlContext$o = formControlContext.onFocus) == null || _formControlContext$o.call(formControlContext);\n } else {\n setFocused(true);\n }\n };\n const handleBlur = otherHandlers => event => {\n var _otherHandlers$onBlur;\n (_otherHandlers$onBlur = otherHandlers.onBlur) == null || _otherHandlers$onBlur.call(otherHandlers, event);\n if (formControlContext && formControlContext.onBlur) {\n formControlContext.onBlur();\n } else {\n setFocused(false);\n }\n };\n const handleChange = otherHandlers => (event, ...args) => {\n var _formControlContext$o2, _otherHandlers$onChan;\n if (!isControlled) {\n const element = event.target || inputRef.current;\n if (element == null) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: Expected valid input target. Did you use a custom \\`slots.input\\` and forget to forward refs? See https://mui.com/r/input-component-ref-interface for more info.` : _formatMuiErrorMessage(17));\n }\n }\n formControlContext == null || (_formControlContext$o2 = formControlContext.onChange) == null || _formControlContext$o2.call(formControlContext, event);\n\n // @ts-ignore\n (_otherHandlers$onChan = otherHandlers.onChange) == null || _otherHandlers$onChan.call(otherHandlers, event, ...args);\n };\n const handleClick = otherHandlers => event => {\n var _otherHandlers$onClic;\n if (inputRef.current && event.currentTarget === event.target) {\n inputRef.current.focus();\n }\n (_otherHandlers$onClic = otherHandlers.onClick) == null || _otherHandlers$onClic.call(otherHandlers, event);\n };\n const getRootProps = (externalProps = {}) => {\n // onBlur, onChange and onFocus are forwarded to the input slot.\n const propsEventHandlers = extractEventHandlers(parameters, ['onBlur', 'onChange', 'onFocus']);\n const externalEventHandlers = _extends({}, propsEventHandlers, extractEventHandlers(externalProps));\n return _extends({}, externalProps, externalEventHandlers, {\n onClick: handleClick(externalEventHandlers)\n });\n };\n const getInputProps = (externalProps = {}) => {\n const propsEventHandlers = {\n onBlur,\n onChange,\n onFocus\n };\n const externalEventHandlers = _extends({}, propsEventHandlers, extractEventHandlers(externalProps));\n const mergedEventHandlers = _extends({}, externalEventHandlers, {\n onBlur: handleBlur(externalEventHandlers),\n onChange: handleChange(externalEventHandlers),\n onFocus: handleFocus(externalEventHandlers)\n });\n return _extends({}, mergedEventHandlers, {\n 'aria-invalid': error || undefined,\n defaultValue: defaultValue,\n value: value,\n required,\n disabled\n }, externalProps, {\n ref: handleInputRef\n }, mergedEventHandlers);\n };\n return {\n disabled,\n error,\n focused,\n formControlContext,\n getInputProps,\n getRootProps,\n inputRef: handleInputRef,\n required,\n value\n };\n}", "'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"actions\", \"anchor\", \"children\", \"onItemsChange\", \"slotProps\", \"slots\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { HTMLElementType, refType } from '@mui/utils';\nimport { getMenuUtilityClass } from './menuClasses';\nimport { useMenu } from '../useMenu';\nimport { MenuProvider } from '../useMenu/MenuProvider';\nimport { unstable_composeClasses as composeClasses } from '../composeClasses';\nimport { Unstable_Popup as Popup } from '../Unstable_Popup';\nimport { useSlotProps } from '../utils/useSlotProps';\nimport { useClassNamesOverride } from '../utils/ClassNameConfigurator';\nimport { ListActionTypes } from '../useList';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction useUtilityClasses(ownerState) {\n const {\n open\n } = ownerState;\n const slots = {\n root: ['root', open && 'expanded'],\n listbox: ['listbox', open && 'expanded']\n };\n return composeClasses(slots, useClassNamesOverride(getMenuUtilityClass));\n}\n\n/**\n *\n * Demos:\n *\n * - [Menu](https://mui.com/base-ui/react-menu/)\n *\n * API:\n *\n * - [Menu API](https://mui.com/base-ui/react-menu/components-api/#menu)\n */\nconst Menu = /*#__PURE__*/React.forwardRef(function Menu(props, forwardedRef) {\n var _slots$root, _slots$listbox;\n const {\n actions,\n anchor: anchorProp,\n children,\n onItemsChange,\n slotProps = {},\n slots = {}\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const {\n contextValue,\n getListboxProps,\n dispatch,\n open,\n triggerElement\n } = useMenu({\n onItemsChange,\n componentName: 'Menu'\n });\n const anchor = anchorProp != null ? anchorProp : triggerElement;\n React.useImperativeHandle(actions, () => ({\n dispatch,\n resetHighlight: () => dispatch({\n type: ListActionTypes.resetHighlight,\n event: null\n })\n }), [dispatch]);\n const ownerState = _extends({}, props, {\n open\n });\n const classes = useUtilityClasses(ownerState);\n const Root = (_slots$root = slots.root) != null ? _slots$root : 'div';\n const rootProps = useSlotProps({\n elementType: Root,\n externalSlotProps: slotProps.root,\n externalForwardedProps: other,\n additionalProps: {\n ref: forwardedRef,\n role: undefined\n },\n className: classes.root,\n ownerState\n });\n const Listbox = (_slots$listbox = slots.listbox) != null ? _slots$listbox : 'ul';\n const listboxProps = useSlotProps({\n elementType: Listbox,\n getSlotProps: getListboxProps,\n externalSlotProps: slotProps.listbox,\n className: classes.listbox,\n ownerState\n });\n if (open === true && anchor == null) {\n return /*#__PURE__*/_jsx(Root, _extends({}, rootProps, {\n children: /*#__PURE__*/_jsx(Listbox, _extends({}, listboxProps, {\n children: /*#__PURE__*/_jsx(MenuProvider, {\n value: contextValue,\n children: children\n })\n }))\n }));\n }\n return /*#__PURE__*/_jsx(Popup, _extends({\n keepMounted: true\n }, rootProps, {\n open: open,\n anchor: anchor,\n slots: {\n root: Root\n },\n children: /*#__PURE__*/_jsx(Listbox, _extends({}, listboxProps, {\n children: /*#__PURE__*/_jsx(MenuProvider, {\n value: contextValue,\n children: children\n })\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 TypeScript types and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * A ref with imperative actions that can be performed on the menu.\n */\n actions: refType,\n /**\n * The element based on which the menu is positioned.\n */\n anchor: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([HTMLElementType, PropTypes.object, PropTypes.func]),\n /**\n * @ignore\n */\n children: PropTypes.node,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * Function called when the items displayed in the menu change.\n */\n onItemsChange: PropTypes.func,\n /**\n * The props used for each slot inside the Menu.\n * @default {}\n */\n slotProps: PropTypes.shape({\n listbox: 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 Menu.\n * Either a string to use a HTML element or a component.\n * @default {}\n */\n slots: PropTypes.shape({\n listbox: PropTypes.elementType,\n root: PropTypes.elementType\n })\n} : void 0;\nexport { Menu };", "import { generateUtilityClass } from '../generateUtilityClass';\nimport { generateUtilityClasses } from '../generateUtilityClasses';\nconst COMPONENT_NAME = 'Menu';\nexport function getMenuUtilityClass(slot) {\n return generateUtilityClass(COMPONENT_NAME, slot);\n}\nexport const menuClasses = generateUtilityClasses(COMPONENT_NAME, ['root', 'listbox', 'expanded']);", "'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { unstable_useForkRef as useForkRef, unstable_useId as useId, unstable_useEnhancedEffect as useEnhancedEffect } from '@mui/utils';\nimport { menuReducer } from './menuReducer';\nimport { DropdownContext } from '../useDropdown/DropdownContext';\nimport { ListActionTypes, useList } from '../useList';\nimport { DropdownActionTypes } from '../useDropdown';\nimport { useCompoundParent } from '../useCompound';\nimport { combineHooksSlotProps } from '../utils/combineHooksSlotProps';\nimport { extractEventHandlers } from '../utils/extractEventHandlers';\nconst FALLBACK_MENU_CONTEXT = {\n dispatch: () => {},\n popupId: '',\n registerPopup: () => {},\n registerTrigger: () => {},\n state: {\n open: true,\n changeReason: null\n },\n triggerElement: null\n};\n\n/**\n *\n * Demos:\n *\n * - [Menu](https://mui.com/base-ui/react-menu/#hooks)\n *\n * API:\n *\n * - [useMenu API](https://mui.com/base-ui/react-menu/hooks-api/#use-menu)\n */\nexport function useMenu(parameters = {}) {\n var _useId, _React$useContext;\n const {\n listboxRef: listboxRefProp,\n onItemsChange,\n id: idParam,\n disabledItemsFocusable = true,\n disableListWrap = false,\n autoFocus = true,\n componentName = 'useMenu'\n } = parameters;\n const rootRef = React.useRef(null);\n const handleRef = useForkRef(rootRef, listboxRefProp);\n const listboxId = (_useId = useId(idParam)) != null ? _useId : '';\n const {\n state: {\n open,\n changeReason\n },\n dispatch: menuDispatch,\n triggerElement,\n registerPopup\n } = (_React$useContext = React.useContext(DropdownContext)) != null ? _React$useContext : FALLBACK_MENU_CONTEXT;\n\n // store the initial open state to prevent focus stealing\n // (the first menu items gets focued only when the menu is opened by the user)\n const isInitiallyOpen = React.useRef(open);\n const {\n subitems,\n contextValue: compoundComponentContextValue\n } = useCompoundParent();\n const subitemKeys = React.useMemo(() => Array.from(subitems.keys()), [subitems]);\n const getItemDomElement = React.useCallback(itemId => {\n var _subitems$get$ref$cur, _subitems$get;\n if (itemId == null) {\n return null;\n }\n return (_subitems$get$ref$cur = (_subitems$get = subitems.get(itemId)) == null ? void 0 : _subitems$get.ref.current) != null ? _subitems$get$ref$cur : null;\n }, [subitems]);\n const isItemDisabled = React.useCallback(id => {\n var _subitems$get2;\n return (subitems == null || (_subitems$get2 = subitems.get(id)) == null ? void 0 : _subitems$get2.disabled) || false;\n }, [subitems]);\n const getItemAsString = React.useCallback(id => {\n var _subitems$get3, _subitems$get4;\n return ((_subitems$get3 = subitems.get(id)) == null ? void 0 : _subitems$get3.label) || ((_subitems$get4 = subitems.get(id)) == null || (_subitems$get4 = _subitems$get4.ref.current) == null ? void 0 : _subitems$get4.innerText);\n }, [subitems]);\n const reducerActionContext = React.useMemo(() => ({\n listboxRef: rootRef\n }), [rootRef]);\n const {\n dispatch: listDispatch,\n getRootProps: getListRootProps,\n contextValue: listContextValue,\n state: {\n highlightedValue\n },\n rootRef: mergedListRef\n } = useList({\n disabledItemsFocusable,\n disableListWrap,\n focusManagement: 'DOM',\n getItemDomElement,\n getInitialState: () => ({\n selectedValues: [],\n highlightedValue: null\n }),\n isItemDisabled,\n items: subitemKeys,\n getItemAsString,\n rootRef: handleRef,\n onItemsChange,\n reducerActionContext,\n selectionMode: 'none',\n stateReducer: menuReducer,\n componentName\n });\n useEnhancedEffect(() => {\n registerPopup(listboxId);\n }, [listboxId, registerPopup]);\n useEnhancedEffect(() => {\n if (open && (changeReason == null ? void 0 : changeReason.type) === 'keydown' && changeReason.key === 'ArrowUp') {\n listDispatch({\n type: ListActionTypes.highlightLast,\n event: changeReason\n });\n }\n }, [open, changeReason, listDispatch]);\n React.useEffect(() => {\n if (open && autoFocus && highlightedValue && !isInitiallyOpen.current) {\n var _subitems$get5;\n (_subitems$get5 = subitems.get(highlightedValue)) == null || (_subitems$get5 = _subitems$get5.ref) == null || (_subitems$get5 = _subitems$get5.current) == null || _subitems$get5.focus();\n }\n }, [open, autoFocus, highlightedValue, subitems, subitemKeys]);\n React.useEffect(() => {\n var _rootRef$current;\n // set focus to the highlighted item (but prevent stealing focus from other elements on the page)\n if ((_rootRef$current = rootRef.current) != null && _rootRef$current.contains(document.activeElement) && highlightedValue !== null) {\n var _subitems$get6;\n subitems == null || (_subitems$get6 = subitems.get(highlightedValue)) == null || (_subitems$get6 = _subitems$get6.ref.current) == null || _subitems$get6.focus();\n }\n }, [highlightedValue, subitems]);\n const createHandleBlur = otherHandlers => event => {\n var _otherHandlers$onBlur, _rootRef$current2;\n (_otherHandlers$onBlur = otherHandlers.onBlur) == null || _otherHandlers$onBlur.call(otherHandlers, event);\n if (event.defaultMuiPrevented) {\n return;\n }\n if ((_rootRef$current2 = rootRef.current) != null && _rootRef$current2.contains(event.relatedTarget) || event.relatedTarget === triggerElement) {\n return;\n }\n menuDispatch({\n type: DropdownActionTypes.blur,\n event\n });\n };\n const createHandleKeyDown = otherHandlers => event => {\n var _otherHandlers$onKeyD;\n (_otherHandlers$onKeyD = otherHandlers.onKeyDown) == null || _otherHandlers$onKeyD.call(otherHandlers, event);\n if (event.defaultMuiPrevented) {\n return;\n }\n if (event.key === 'Escape') {\n menuDispatch({\n type: DropdownActionTypes.escapeKeyDown,\n event\n });\n }\n };\n const getOwnListboxHandlers = (otherHandlers = {}) => ({\n onBlur: createHandleBlur(otherHandlers),\n onKeyDown: createHandleKeyDown(otherHandlers)\n });\n const getListboxProps = (externalProps = {}) => {\n const getCombinedRootProps = combineHooksSlotProps(getOwnListboxHandlers, getListRootProps);\n const externalEventHandlers = extractEventHandlers(externalProps);\n return _extends({}, externalProps, externalEventHandlers, getCombinedRootProps(externalEventHandlers), {\n id: listboxId,\n role: 'menu'\n });\n };\n React.useDebugValue({\n subitems,\n highlightedValue\n });\n return {\n contextValue: _extends({}, compoundComponentContextValue, listContextValue),\n dispatch: listDispatch,\n getListboxProps,\n highlightedValue,\n listboxRef: mergedListRef,\n menuItems: subitems,\n open,\n triggerElement\n };\n}", "import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { ListActionTypes, listReducer } from '../useList';\nexport function menuReducer(state, action) {\n if (action.type === ListActionTypes.itemHover) {\n return _extends({}, state, {\n highlightedValue: action.item\n });\n }\n const newState = listReducer(state, action);\n\n // make sure an item is always highlighted\n if (newState.highlightedValue === null && action.context.items.length > 0) {\n return _extends({}, newState, {\n highlightedValue: action.context.items[0]\n });\n }\n if (action.type === ListActionTypes.keyDown) {\n if (action.event.key === 'Escape') {\n return _extends({}, newState, {\n open: false\n });\n }\n }\n if (action.type === ListActionTypes.blur) {\n var _action$context$listb;\n if (!((_action$context$listb = action.context.listboxRef.current) != null && _action$context$listb.contains(action.event.relatedTarget))) {\n var _action$context$listb2, _action$event$related;\n // To prevent the menu from closing when the focus leaves the menu to the button.\n // For more details, see https://github.com/mui/material-ui/pull/36917#issuecomment-1566992698\n const listboxId = (_action$context$listb2 = action.context.listboxRef.current) == null ? void 0 : _action$context$listb2.getAttribute('id');\n const controlledBy = (_action$event$related = action.event.relatedTarget) == null ? void 0 : _action$event$related.getAttribute('aria-controls');\n if (listboxId && controlledBy && listboxId === controlledBy) {\n return newState;\n }\n return _extends({}, newState, {\n open: false,\n highlightedValue: action.context.items[0]\n });\n }\n }\n return newState;\n}", "'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { unstable_useForkRef as useForkRef } from '@mui/utils';\nimport { ListActionTypes } from './listActions.types';\nimport { listReducer as defaultReducer } from './listReducer';\nimport { useControllableReducer } from '../utils/useControllableReducer';\nimport { areArraysEqual } from '../utils/areArraysEqual';\nimport { useTextNavigation } from '../utils/useTextNavigation';\nimport { extractEventHandlers } from '../utils/extractEventHandlers';\nconst EMPTY_OBJECT = {};\nconst NOOP = () => {};\nconst defaultItemComparer = (optionA, optionB) => optionA === optionB;\nconst defaultIsItemDisabled = () => false;\nconst defaultItemStringifier = item => typeof item === 'string' ? item : String(item);\nconst defaultGetInitialState = () => ({\n highlightedValue: null,\n selectedValues: []\n});\n\n/**\n * The useList is a lower-level utility that is used to build list-like components.\n * It's used to manage the state of the list and its items.\n *\n * Supports highlighting a single item and selecting an arbitrary number of items.\n *\n * The state of the list is managed by a controllable reducer - that is a reducer that can have its state\n * controlled from outside.\n *\n * By default, the state consists of `selectedValues` and `highlightedValue` but can be extended by the caller of the hook.\n * Also the actions that can be dispatched and the reducer function can be defined externally.\n *\n * @template ItemValue The type of the item values.\n * @template State The type of the list state. This should be a subtype of `ListState<ItemValue>`.\n * @template CustomAction The type of the actions that can be dispatched (besides the standard ListAction).\n * @template CustomActionContext The shape of additional properties that will be added to actions when dispatched.\n *\n * @ignore - internal hook.\n */\nfunction useList(params) {\n const {\n controlledProps = EMPTY_OBJECT,\n disabledItemsFocusable = false,\n disableListWrap = false,\n focusManagement = 'activeDescendant',\n getInitialState = defaultGetInitialState,\n getItemDomElement,\n getItemId,\n isItemDisabled = defaultIsItemDisabled,\n rootRef: externalListRef,\n onStateChange = NOOP,\n items,\n itemComparer = defaultItemComparer,\n getItemAsString = defaultItemStringifier,\n onChange,\n onHighlightChange,\n onItemsChange,\n orientation = 'vertical',\n pageSize = 5,\n reducerActionContext = EMPTY_OBJECT,\n selectionMode = 'single',\n stateReducer: externalReducer,\n componentName = 'useList'\n } = params;\n if (process.env.NODE_ENV !== 'production') {\n if (focusManagement === 'DOM' && getItemDomElement == null) {\n throw new Error('useList: The `getItemDomElement` prop is required when using the `DOM` focus management.');\n }\n if (focusManagement === 'activeDescendant' && getItemId == null) {\n throw new Error('useList: The `getItemId` prop is required when using the `activeDescendant` focus management.');\n }\n }\n const listRef = React.useRef(null);\n const handleRef = useForkRef(externalListRef, listRef);\n const handleHighlightChange = React.useCallback((event, value, reason) => {\n onHighlightChange == null || onHighlightChange(event, value, reason);\n if (focusManagement === 'DOM' && value != null && (reason === ListActionTypes.itemClick || reason === ListActionTypes.keyDown || reason === ListActionTypes.textNavigation)) {\n var _getItemDomElement;\n getItemDomElement == null || (_getItemDomElement = getItemDomElement(value)) == null || _getItemDomElement.focus();\n }\n }, [getItemDomElement, onHighlightChange, focusManagement]);\n const stateComparers = React.useMemo(() => ({\n highlightedValue: itemComparer,\n selectedValues: (valuesArray1, valuesArray2) => areArraysEqual(valuesArray1, valuesArray2, itemComparer)\n }), [itemComparer]);\n\n // This gets called whenever a reducer changes the state.\n const handleStateChange = React.useCallback((event, field, value, reason, state) => {\n onStateChange == null || onStateChange(event, field, value, reason, state);\n switch (field) {\n case 'highlightedValue':\n handleHighlightChange(event, value, reason);\n break;\n case 'selectedValues':\n onChange == null || onChange(event, value, reason);\n break;\n default:\n break;\n }\n }, [handleHighlightChange, onChange, onStateChange]);\n\n // The following object is added to each action when it's dispatched.\n // It's accessible in the reducer via the `action.context` field.\n const listActionContext = React.useMemo(() => {\n return {\n disabledItemsFocusable,\n disableListWrap,\n focusManagement,\n isItemDisabled,\n itemComparer,\n items,\n getItemAsString,\n onHighlightChange: handleHighlightChange,\n orientation,\n pageSize,\n selectionMode,\n stateComparers\n };\n }, [disabledItemsFocusable, disableListWrap, focusManagement, isItemDisabled, itemComparer, items, getItemAsString, handleHighlightChange, orientation, pageSize, selectionMode, stateComparers]);\n const initialState = getInitialState();\n const reducer = externalReducer != null ? externalReducer : defaultReducer;\n const actionContext = React.useMemo(() => _extends({}, reducerActionContext, listActionContext), [reducerActionContext, listActionContext]);\n const [state, dispatch] = useControllableReducer({\n reducer,\n actionContext,\n initialState: initialState,\n controlledProps,\n stateComparers,\n onStateChange: handleStateChange,\n componentName\n });\n const {\n highlightedValue,\n selectedValues\n } = state;\n const handleTextNavigation = useTextNavigation((searchString, event) => dispatch({\n type: ListActionTypes.textNavigation,\n event,\n searchString\n }));\n const previousItems = React.useRef([]);\n React.useEffect(() => {\n // Whenever the `items` object changes, we need to determine if the actual items changed.\n // If they did, we need to dispatch an `itemsChange` action, so the selected/highlighted state is updated.\n if (areArraysEqual(previousItems.current, items, itemComparer)) {\n return;\n }\n dispatch({\n type: ListActionTypes.itemsChange,\n event: null,\n items,\n previousItems: previousItems.current\n });\n previousItems.current = items;\n onItemsChange == null || onItemsChange(items);\n }, [items, itemComparer, dispatch, onItemsChange]);\n const createHandleKeyDown = externalHandlers => event => {\n var _externalHandlers$onK;\n (_externalHandlers$onK = externalHandlers.onKeyDown) == null || _externalHandlers$onK.call(externalHandlers, event);\n if (event.defaultMuiPrevented) {\n return;\n }\n const keysToPreventDefault = ['Home', 'End', 'PageUp', 'PageDown'];\n if (orientation === 'vertical') {\n keysToPreventDefault.push('ArrowUp', 'ArrowDown');\n } else {\n keysToPreventDefault.push('ArrowLeft', 'ArrowRight');\n }\n if (focusManagement === 'activeDescendant') {\n // When the child element is focused using the activeDescendant attribute,\n // the list handles keyboard events on its behalf.\n // We have to `preventDefault()` is this case to prevent the browser from\n // scrolling the view when space is pressed or submitting forms when enter is pressed.\n keysToPreventDefault.push(' ', 'Enter');\n }\n if (keysToPreventDefault.includes(event.key)) {\n event.preventDefault();\n }\n dispatch({\n type: ListActionTypes.keyDown,\n key: event.key,\n event\n });\n handleTextNavigation(event);\n };\n const createHandleBlur = externalHandlers => event => {\n var _externalHandlers$onB, _listRef$current;\n (_externalHandlers$onB = externalHandlers.onBlur) == null || _externalHandlers$onB.call(externalHandlers, event);\n if (event.defaultMuiPrevented) {\n return;\n }\n if ((_listRef$current = listRef.current) != null && _listRef$current.contains(event.relatedTarget)) {\n // focus remains within the list\n return;\n }\n dispatch({\n type: ListActionTypes.blur,\n event\n });\n };\n const getRootProps = (externalProps = {}) => {\n const externalEventHandlers = extractEventHandlers(externalProps);\n return _extends({}, externalProps, {\n 'aria-activedescendant': focusManagement === 'activeDescendant' && highlightedValue != null ? getItemId(highlightedValue) : undefined,\n tabIndex: focusManagement === 'DOM' ? -1 : 0,\n ref: handleRef\n }, externalEventHandlers, {\n onBlur: createHandleBlur(externalEventHandlers),\n onKeyDown: createHandleKeyDown(externalEventHandlers)\n });\n };\n const getItemState = React.useCallback(item => {\n const selected = (selectedValues != null ? selectedValues : []).some(value => value != null && itemComparer(item, value));\n const highlighted = highlightedValue != null && itemComparer(item, highlightedValue);\n const focusable = focusManagement === 'DOM';\n return {\n focusable,\n highlighted,\n selected\n };\n }, [itemComparer, selectedValues, highlightedValue, focusManagement]);\n const contextValue = React.useMemo(() => ({\n dispatch,\n getItemState\n }), [dispatch, getItemState]);\n React.useDebugValue({\n state\n });\n return {\n contextValue,\n dispatch,\n getRootProps,\n rootRef: handleRef,\n state\n };\n}\nexport { useList };", "export const ListActionTypes = {\n blur: 'list:blur',\n focus: 'list:focus',\n itemClick: 'list:itemClick',\n itemHover: 'list:itemHover',\n itemsChange: 'list:itemsChange',\n keyDown: 'list:keyDown',\n resetHighlight: 'list:resetHighlight',\n highlightLast: 'list:highlightLast',\n textNavigation: 'list:textNavigation',\n clearSelection: 'list:clearSelection'\n};\n\n/**\n * A union of all standard actions that can be dispatched to the list reducer.\n */", "import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { ListActionTypes } from './listActions.types';\n/**\n * Looks up the next valid item to highlight within the list.\n *\n * @param currentIndex The index of the start of the search.\n * @param lookupDirection Whether to look for the next or previous item.\n * @param items The array of items to search.\n * @param includeDisabledItems Whether to include disabled items in the search.\n * @param isItemDisabled A function that determines whether an item is disabled.\n * @param wrapAround Whether to wrap around the list when searching.\n * @returns The index of the next valid item to highlight or -1 if no valid item is found.\n */\nfunction findValidItemToHighlight(currentIndex, lookupDirection, items, includeDisabledItems, isItemDisabled, wrapAround) {\n if (items.length === 0 || !includeDisabledItems && items.every((item, itemIndex) => isItemDisabled(item, itemIndex))) {\n return -1;\n }\n let nextFocus = currentIndex;\n for (;;) {\n // No valid items found\n if (!wrapAround && lookupDirection === 'next' && nextFocus === items.length || !wrapAround && lookupDirection === 'previous' && nextFocus === -1) {\n return -1;\n }\n const nextFocusDisabled = includeDisabledItems ? false : isItemDisabled(items[nextFocus], nextFocus);\n if (nextFocusDisabled) {\n nextFocus += lookupDirection === 'next' ? 1 : -1;\n if (wrapAround) {\n nextFocus = (nextFocus + items.length) % items.length;\n }\n } else {\n return nextFocus;\n }\n }\n}\n\n/**\n * Gets the next item to highlight based on the current highlighted item and the search direction.\n *\n * @param previouslyHighlightedValue The item from which to start the search for the next candidate.\n * @param offset The offset from the previously highlighted item to search for the next candidate or a special named value ('reset', 'start', 'end').\n * @param context The list action context.\n *\n * @returns The next item to highlight or null if no item is valid.\n */\nexport function moveHighlight(previouslyHighlightedValue, offset, context) {\n var _items$nextIndex;\n const {\n items,\n isItemDisabled,\n disableListWrap,\n disabledItemsFocusable,\n itemComparer,\n focusManagement\n } = context;\n\n // TODO: make this configurable\n // The always should be an item highlighted when focus is managed by the DOM\n // so that it's accessible by the `tab` key.\n const defaultHighlightedIndex = focusManagement === 'DOM' ? 0 : -1;\n const maxIndex = items.length - 1;\n const previouslyHighlightedIndex = previouslyHighlightedValue == null ? -1 : items.findIndex(item => itemComparer(item, previouslyHighlightedValue));\n let nextIndexCandidate;\n let lookupDirection;\n let wrapAround = !disableListWrap;\n switch (offset) {\n case 'reset':\n if (defaultHighlightedIndex === -1) {\n return null;\n }\n nextIndexCandidate = 0;\n lookupDirection = 'next';\n wrapAround = false;\n break;\n case 'start':\n nextIndexCandidate = 0;\n lookupDirection = 'next';\n wrapAround = false;\n break;\n case 'end':\n nextIndexCandidate = maxIndex;\n lookupDirection = 'previous';\n wrapAround = false;\n break;\n default:\n {\n const newIndex = previouslyHighlightedIndex + offset;\n if (newIndex < 0) {\n if (!wrapAround && previouslyHighlightedIndex !== -1 || Math.abs(offset) > 1) {\n nextIndexCandidate = 0;\n lookupDirection = 'next';\n } else {\n nextIndexCandidate = maxIndex;\n lookupDirection = 'previous';\n }\n } else if (newIndex > maxIndex) {\n if (!wrapAround || Math.abs(offset) > 1) {\n nextIndexCandidate = maxIndex;\n lookupDirection = 'previous';\n } else {\n nextIndexCandidate = 0;\n lookupDirection = 'next';\n }\n } else {\n nextIndexCandidate = newIndex;\n lookupDirection = offset >= 0 ? 'next' : 'previous';\n }\n }\n }\n const nextIndex = findValidItemToHighlight(nextIndexCandidate, lookupDirection, items, disabledItemsFocusable, isItemDisabled, wrapAround);\n\n // If there are no valid items to highlight, return the previously highlighted item (if it's still valid).\n if (nextIndex === -1 && previouslyHighlightedValue !== null && !isItemDisabled(previouslyHighlightedValue, previouslyHighlightedIndex)) {\n return previouslyHighlightedValue;\n }\n return (_items$nextIndex = items[nextIndex]) != null ? _items$nextIndex : null;\n}\n\n/**\n * Toggles the selection of an item.\n *\n * @param item Item to toggle.\n * @param selectedValues Already selected items.\n * @param selectionMode The number of items that can be simultanously selected.\n * @param itemComparer A custom item comparer function.\n *\n * @returns The new array of selected items.\n */\nexport function toggleSelection(item, selectedValues, selectionMode, itemComparer) {\n if (selectionMode === 'none') {\n return [];\n }\n if (selectionMode === 'single') {\n // if the item to select has already been selected, return the original array\n if (itemComparer(selectedValues[0], item)) {\n return selectedValues;\n }\n return [item];\n }\n\n // The toggled item is selected; remove it from the selection.\n if (selectedValues.some(sv => itemComparer(sv, item))) {\n return selectedValues.filter(sv => !itemComparer(sv, item));\n }\n\n // The toggled item is not selected - add it to the selection.\n return [...selectedValues, item];\n}\n\n/**\n * Handles item selection in a list.\n *\n * @param item - The item to be selected.\n * @param state - The current state of the list.\n * @param context - The context of the list action.\n * @returns The new state of the list after the item has been selected, or the original state if the item is disabled.\n */\nexport function handleItemSelection(item, state, context) {\n const {\n itemComparer,\n isItemDisabled,\n selectionMode,\n items\n } = context;\n const {\n selectedValues\n } = state;\n const itemIndex = items.findIndex(i => itemComparer(item, i));\n if (isItemDisabled(item, itemIndex)) {\n return state;\n }\n\n // if the item is already selected, remove it from the selection, otherwise add it\n const newSelectedValues = toggleSelection(item, selectedValues, selectionMode, itemComparer);\n return _extends({}, state, {\n selectedValues: newSelectedValues,\n highlightedValue: item\n });\n}\nfunction handleKeyDown(key, state, context) {\n const previouslySelectedValue = state.highlightedValue;\n const {\n orientation,\n pageSize\n } = context;\n switch (key) {\n case 'Home':\n return _extends({}, state, {\n highlightedValue: moveHighlight(previouslySelectedValue, 'start', context)\n });\n case 'End':\n return _extends({}, state, {\n highlightedValue: moveHighlight(previouslySelectedValue, 'end', context)\n });\n case 'PageUp':\n return _extends({}, state, {\n highlightedValue: moveHighlight(previouslySelectedValue, -pageSize, context)\n });\n case 'PageDown':\n return _extends({}, state, {\n highlightedValue: moveHighlight(previouslySelectedValue, pageSize, context)\n });\n case 'ArrowUp':\n if (orientation !== 'vertical') {\n break;\n }\n return _extends({}, state, {\n highlightedValue: moveHighlight(previouslySelectedValue, -1, context)\n });\n case 'ArrowDown':\n if (orientation !== 'vertical') {\n break;\n }\n return _extends({}, state, {\n highlightedValue: moveHighlight(previouslySelectedValue, 1, context)\n });\n case 'ArrowLeft':\n {\n if (orientation === 'vertical') {\n break;\n }\n const offset = orientation === 'horizontal-ltr' ? -1 : 1;\n return _extends({}, state, {\n highlightedValue: moveHighlight(previouslySelectedValue, offset, context)\n });\n }\n case 'ArrowRight':\n {\n if (orientation === 'vertical') {\n break;\n }\n const offset = orientation === 'horizontal-ltr' ? 1 : -1;\n return _extends({}, state, {\n highlightedValue: moveHighlight(previouslySelectedValue, offset, context)\n });\n }\n case 'Enter':\n case ' ':\n if (state.highlightedValue === null) {\n return state;\n }\n return handleItemSelection(state.highlightedValue, state, context);\n default:\n break;\n }\n return state;\n}\nfunction handleBlur(state, context) {\n if (context.focusManagement === 'DOM') {\n return state;\n }\n return _extends({}, state, {\n highlightedValue: null\n });\n}\nfunction textCriteriaMatches(nextFocus, searchString, stringifyItem) {\n var _stringifyItem;\n const text = (_stringifyItem = stringifyItem(nextFocus)) == null ? void 0 : _stringifyItem.trim().toLowerCase();\n if (!text || text.length === 0) {\n // Make item not navigable if stringification fails or results in empty string.\n return false;\n }\n return text.indexOf(searchString) === 0;\n}\nfunction handleTextNavigation(state, searchString, context) {\n const {\n items,\n isItemDisabled,\n disabledItemsFocusable,\n getItemAsString\n } = context;\n const startWithCurrentItem = searchString.length > 1;\n let nextItem = startWithCurrentItem ? state.highlightedValue : moveHighlight(state.highlightedValue, 1, context);\n for (let index = 0; index < items.length; index += 1) {\n // Return un-mutated state if looped back to the currently highlighted value\n if (!nextItem || !startWithCurrentItem && state.highlightedValue === nextItem) {\n return state;\n }\n if (textCriteriaMatches(nextItem, searchString, getItemAsString) && (!isItemDisabled(nextItem, items.indexOf(nextItem)) || disabledItemsFocusable)) {\n // The nextItem is the element to be highlighted\n return _extends({}, state, {\n highlightedValue: nextItem\n });\n }\n // Move to the next element.\n nextItem = moveHighlight(nextItem, 1, context);\n }\n\n // No item matches the text search criteria\n return state;\n}\nfunction handleItemsChange(items, previousItems, state, context) {\n var _state$selectedValues;\n const {\n itemComparer,\n focusManagement\n } = context;\n let newHighlightedValue = null;\n if (state.highlightedValue != null) {\n var _items$find;\n newHighlightedValue = (_items$find = items.find(item => itemComparer(item, state.highlightedValue))) != null ? _items$find : null;\n } else if (focusManagement === 'DOM' && previousItems.length === 0) {\n newHighlightedValue = moveHighlight(null, 'reset', context);\n }\n\n // exclude selected values that are no longer in the items list\n const selectedValues = (_state$selectedValues = state.selectedValues) != null ? _state$selectedValues : [];\n const newSelectedValues = selectedValues.filter(selectedValue => items.some(item => itemComparer(item, selectedValue)));\n return _extends({}, state, {\n highlightedValue: newHighlightedValue,\n selectedValues: newSelectedValues\n });\n}\nfunction handleResetHighlight(state, context) {\n return _extends({}, state, {\n highlightedValue: moveHighlight(null, 'reset', context)\n });\n}\nfunction handleHighlightLast(state, context) {\n return _extends({}, state, {\n highlightedValue: moveHighlight(null, 'end', context)\n });\n}\nfunction handleClearSelection(state, context) {\n return _extends({}, state, {\n selectedValues: [],\n highlightedValue: moveHighlight(null, 'reset', context)\n });\n}\nexport function listReducer(state, action) {\n const {\n type,\n context\n } = action;\n switch (type) {\n case ListActionTypes.keyDown:\n return handleKeyDown(action.key, state, context);\n case ListActionTypes.itemClick:\n return handleItemSelection(action.item, state, context);\n case ListActionTypes.blur:\n return handleBlur(state, context);\n case ListActionTypes.textNavigation:\n return handleTextNavigation(state, action.searchString, context);\n case ListActionTypes.itemsChange:\n return handleItemsChange(action.items, action.previousItems, state, context);\n case ListActionTypes.resetHighlight:\n return handleResetHighlight(state, context);\n case ListActionTypes.highlightLast:\n return handleHighlightLast(state, context);\n case ListActionTypes.clearSelection:\n return handleClearSelection(state, context);\n default:\n return state;\n }\n}", "'use client';\n\nimport * as React from 'react';\nconst TEXT_NAVIGATION_RESET_TIMEOUT = 500; // milliseconds\n\n/**\n * @ignore - internal hook.\n *\n * Provides a handler for text navigation.\n * It's used to navigate a list by typing the first letters of the options.\n *\n * @param callback A function to be called when the navigation should be performed.\n * @returns A function to be used in a keydown event handler.\n */\nexport function useTextNavigation(callback) {\n const textCriteriaRef = React.useRef({\n searchString: '',\n lastTime: null\n });\n return React.useCallback(event => {\n if (event.key.length === 1 && event.key !== ' ') {\n const textCriteria = textCriteriaRef.current;\n const lowerKey = event.key.toLowerCase();\n const currentTime = performance.now();\n if (textCriteria.searchString.length > 0 && textCriteria.lastTime && currentTime - textCriteria.lastTime > TEXT_NAVIGATION_RESET_TIMEOUT) {\n textCriteria.searchString = lowerKey;\n } else if (textCriteria.searchString.length !== 1 || lowerKey !== textCriteria.searchString) {\n // If there is just one character in the buffer and the key is the same, do not append\n textCriteria.searchString += lowerKey;\n }\n textCriteria.lastTime = currentTime;\n callback(textCriteria.searchString, event);\n }\n }, [callback]);\n}", "'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { extractEventHandlers } from '../utils/extractEventHandlers';\nimport { ListActionTypes } from './listActions.types';\nimport { ListContext } from './ListContext';\n\n/**\n * Contains the logic for an item of a list-like component (e.g. Select, Menu, etc.).\n * It handles the item's mouse events and tab index.\n *\n * @template ItemValue The type of the item's value. This should be consistent with the type of useList's `items` parameter.\n * @ignore - internal hook.\n */\nexport function useListItem(parameters) {\n const {\n handlePointerOverEvents = false,\n item\n } = parameters;\n const listContext = React.useContext(ListContext);\n if (!listContext) {\n throw new Error('useListItem must be used within a ListProvider');\n }\n const {\n dispatch,\n getItemState\n } = listContext;\n const {\n highlighted,\n selected,\n focusable\n } = getItemState(item);\n const createHandleClick = React.useCallback(externalHandlers => event => {\n var _externalHandlers$onC;\n (_externalHandlers$onC = externalHandlers.onClick) == null || _externalHandlers$onC.call(externalHandlers, event);\n if (event.defaultPrevented) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n if (item === undefined) {\n throw new Error(['MUI: The `item` provided to useListItem() is undefined.', 'This should happen only during server-side rendering under React 17.'].join('\\n'));\n }\n }\n dispatch({\n type: ListActionTypes.itemClick,\n item: item,\n event\n });\n }, [dispatch, item]);\n const createHandlePointerOver = React.useCallback(externalHandlers => event => {\n var _externalHandlers$onM;\n (_externalHandlers$onM = externalHandlers.onMouseOver) == null || _externalHandlers$onM.call(externalHandlers, event);\n if (event.defaultPrevented) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n if (item === undefined) {\n throw new Error(['MUI: The `item` provided to useListItem() is undefined.', 'This should happen only during server-side rendering under React 17.'].join('\\n'));\n }\n }\n dispatch({\n type: ListActionTypes.itemHover,\n item: item,\n event\n });\n }, [dispatch, item]);\n let tabIndex;\n if (focusable) {\n tabIndex = highlighted ? 0 : -1;\n }\n const getRootProps = (externalProps = {}) => {\n const externalEventHandlers = extractEventHandlers(externalProps);\n return _extends({}, externalProps, {\n onClick: createHandleClick(externalEventHandlers),\n onPointerOver: handlePointerOverEvents ? createHandlePointerOver(externalEventHandlers) : undefined,\n tabIndex\n });\n };\n return {\n getRootProps,\n highlighted,\n selected\n };\n}", "import * as React from 'react';\nexport const ListContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== 'production') {\n ListContext.displayName = 'ListContext';\n}", "'use client';\n\nimport * as React from 'react';\nexport const CompoundComponentContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== 'production') {\n CompoundComponentContext.displayName = 'CompoundComponentContext';\n}\n/**\n * Sorts the subitems by their position in the DOM.\n */\nfunction sortSubitems(subitems) {\n const subitemsArray = Array.from(subitems.keys()).map(key => {\n const subitem = subitems.get(key);\n return {\n key,\n subitem\n };\n });\n subitemsArray.sort((a, b) => {\n const aNode = a.subitem.ref.current;\n const bNode = b.subitem.ref.current;\n if (aNode === null || bNode === null || aNode === bNode) {\n return 0;\n }\n\n // eslint-disable-next-line no-bitwise\n return aNode.compareDocumentPosition(bNode) & Node.DOCUMENT_POSITION_PRECEDING ? 1 : -1;\n });\n return new Map(subitemsArray.map(item => [item.key, item.subitem]));\n}\n\n/**\n * Provides a way for a component to know about its children.\n *\n * Child components register themselves with the `useCompoundItem` hook, passing in arbitrary metadata to the parent.\n *\n * This is a more powerful altervantive to `children` traversal, as child components don't have to be placed\n * directly inside the parent component. They can be anywhere in the tree (and even rendered by other components).\n *\n * The downside is that this doesn't work with SSR as it relies on the useEffect hook.\n *\n * @ignore - internal hook.\n */\nexport function useCompoundParent() {\n const [subitems, setSubitems] = React.useState(new Map());\n const subitemKeys = React.useRef(new Set());\n const deregisterItem = React.useCallback(function deregisterItem(id) {\n subitemKeys.current.delete(id);\n setSubitems(previousState => {\n const newState = new Map(previousState);\n newState.delete(id);\n return newState;\n });\n }, []);\n const registerItem = React.useCallback(function registerItem(id, item) {\n let providedOrGeneratedId;\n if (typeof id === 'function') {\n providedOrGeneratedId = id(subitemKeys.current);\n } else {\n providedOrGeneratedId = id;\n }\n subitemKeys.current.add(providedOrGeneratedId);\n setSubitems(previousState => {\n const newState = new Map(previousState);\n newState.set(providedOrGeneratedId, item);\n return newState;\n });\n return {\n id: providedOrGeneratedId,\n deregister: () => deregisterItem(providedOrGeneratedId)\n };\n }, [deregisterItem]);\n const sortedSubitems = React.useMemo(() => sortSubitems(subitems), [subitems]);\n const getItemIndex = React.useCallback(function getItemIndex(id) {\n return Array.from(sortedSubitems.keys()).indexOf(id);\n }, [sortedSubitems]);\n const contextValue = React.useMemo(() => ({\n getItemIndex,\n registerItem,\n totalSubitemCount: subitems.size\n }), [getItemIndex, registerItem, subitems.size]);\n return {\n contextValue,\n subitems: sortedSubitems\n };\n}", "'use client';\n\nimport * as React from 'react';\nimport { unstable_useEnhancedEffect as useEnhancedEffect } from '@mui/utils';\nimport { CompoundComponentContext } from './useCompoundParent';\n/**\n * Registers a child component with the parent component.\n *\n * @param id A unique key for the child component. If the `id` is `undefined`, the registration logic will not run (this can sometimes be the case during SSR).\n * This can be either a value, or a function that generates a value based on already registered siblings' ids.\n * If a function, it's called with the set of the ids of all the items that have already been registered.\n * Return `existingKeys.size` if you want to use the index of the new item as the id.\n * @param itemMetadata Arbitrary metadata to pass to the parent component. This should be a stable reference (e.g. a memoized object), to avoid unnecessary re-registrations.\n *\n * @ignore - internal hook.\n */\nexport function useCompoundItem(id, itemMetadata) {\n const context = React.useContext(CompoundComponentContext);\n if (context === null) {\n throw new Error('useCompoundItem must be used within a useCompoundParent');\n }\n const {\n registerItem\n } = context;\n const [registeredId, setRegisteredId] = React.useState(typeof id === 'function' ? undefined : id);\n useEnhancedEffect(() => {\n const {\n id: returnedId,\n deregister\n } = registerItem(id, itemMetadata);\n setRegisteredId(returnedId);\n return deregister;\n }, [registerItem, itemMetadata, id]);\n return {\n id: registeredId,\n index: registeredId !== undefined ? context.getItemIndex(registeredId) : -1,\n totalItemCount: context.totalSubitemCount\n };\n}", "import _extends from \"@babel/runtime/helpers/esm/extends\";\n/**\n * Combines the two get*Props functions from Base UI hooks into one.\n * Useful when a hook uses two other hooks behind the scenes\n * (such as useSelect that depends on useList and useButton for its root slot).\n *\n * The resulting function will return the combined props.\n * They are merged from left to right, similarly to how Object.assign works.\n *\n * The getSecondProps function will receive the result of the getFirstProps function as its argument,\n * so its event handlers can call the previous handlers and act depending on its result.\n *\n * @param getFirstProps - A getter function that returns the props for the first slot. It receives the external event handlers as its argument.\n * @param getSecondProps - A getter function that returns the props for the second slot. It receives the result of the getFirstProps function as its argument.\n */\nexport function combineHooksSlotProps(getFirstProps, getSecondProps) {\n return function getCombinedProps(external = {}) {\n const firstResult = _extends({}, external, getFirstProps(external));\n const result = _extends({}, firstResult, getSecondProps(firstResult));\n return result;\n };\n}", "'use client';\n\nimport * as React from 'react';\nimport { ListContext } from '../useList/ListContext';\nimport { CompoundComponentContext } from '../useCompound';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * Sets up the contexts for the underlying MenuItem components.\n *\n * @ignore - do not document.\n */\nexport function MenuProvider(props) {\n const {\n value,\n children\n } = props;\n const {\n dispatch,\n getItemIndex,\n getItemState,\n registerItem,\n totalSubitemCount\n } = value;\n const listContextValue = React.useMemo(() => ({\n dispatch,\n getItemState,\n getItemIndex\n }), [dispatch, getItemIndex, getItemState]);\n const compoundComponentContextValue = React.useMemo(() => ({\n getItemIndex,\n registerItem,\n totalSubitemCount\n }), [registerItem, getItemIndex, totalSubitemCount]);\n return /*#__PURE__*/_jsx(CompoundComponentContext.Provider, {\n value: compoundComponentContextValue,\n children: /*#__PURE__*/_jsx(ListContext.Provider, {\n value: listContextValue,\n children: children\n })\n });\n}", "'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"anchor\", \"children\", \"container\", \"disablePortal\", \"keepMounted\", \"middleware\", \"offset\", \"open\", \"placement\", \"slotProps\", \"slots\", \"strategy\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { autoUpdate, flip, offset, shift, useFloating } from '@floating-ui/react-dom';\nimport { HTMLElementType, unstable_useEnhancedEffect as useEnhancedEffect, unstable_useForkRef as useForkRef } from '@mui/utils';\nimport { unstable_composeClasses as composeClasses } from '../composeClasses';\nimport { Portal } from '../Portal';\nimport { useSlotProps } from '../utils';\nimport { useClassNamesOverride } from '../utils/ClassNameConfigurator';\nimport { getPopupUtilityClass } from './popupClasses';\nimport { useTransitionTrigger, TransitionContext } from '../useTransition';\nimport { PopupContext } from './PopupContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction useUtilityClasses(ownerState) {\n const {\n open\n } = ownerState;\n const slots = {\n root: ['root', open && 'open']\n };\n return composeClasses(slots, useClassNamesOverride(getPopupUtilityClass));\n}\nfunction resolveAnchor(anchor) {\n return typeof anchor === 'function' ? anchor() : anchor;\n}\n\n/**\n *\n * Demos:\n *\n * - [Popup](https://mui.com/base-ui/react-popup/)\n *\n * API:\n *\n * - [Popup API](https://mui.com/base-ui/react-popup/components-api/#popup)\n */\nconst Popup = /*#__PURE__*/React.forwardRef(function Popup(props, forwardedRef) {\n var _slots$root;\n const {\n anchor: anchorProp,\n children,\n container,\n disablePortal = false,\n keepMounted = false,\n middleware,\n offset: offsetProp = 0,\n open = false,\n placement = 'bottom',\n slotProps = {},\n slots = {},\n strategy = 'absolute'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const {\n refs,\n elements,\n floatingStyles,\n update,\n placement: finalPlacement\n } = useFloating({\n elements: {\n reference: resolveAnchor(anchorProp)\n },\n open,\n middleware: middleware != null ? middleware : [offset(offsetProp != null ? offsetProp : 0), flip(), shift()],\n placement,\n strategy,\n whileElementsMounted: !keepMounted ? autoUpdate : undefined\n });\n const handleRef = useForkRef(refs.setFloating, forwardedRef);\n useEnhancedEffect(() => {\n if (keepMounted && open && elements.reference && elements.floating) {\n const cleanup = autoUpdate(elements.reference, elements.floating, update);\n return cleanup;\n }\n return undefined;\n }, [keepMounted, open, elements, update]);\n const ownerState = _extends({}, props, {\n disablePortal,\n keepMounted,\n offset,\n open,\n placement,\n finalPlacement,\n strategy\n });\n const {\n contextValue,\n hasExited: hasTransitionExited\n } = useTransitionTrigger(open);\n const visibility = keepMounted && hasTransitionExited ? 'hidden' : undefined;\n const classes = useUtilityClasses(ownerState);\n const Root = (_slots$root = slots == null ? void 0 : slots.root) != null ? _slots$root : 'div';\n const rootProps = useSlotProps({\n elementType: Root,\n externalSlotProps: slotProps.root,\n externalForwardedProps: other,\n ownerState,\n className: classes.root,\n additionalProps: {\n ref: handleRef,\n role: 'tooltip',\n style: _extends({}, floatingStyles, {\n visibility\n })\n }\n });\n const popupContextValue = React.useMemo(() => ({\n placement: finalPlacement\n }), [finalPlacement]);\n const shouldRender = keepMounted || !hasTransitionExited;\n if (!shouldRender) {\n return null;\n }\n return /*#__PURE__*/_jsx(Portal, {\n disablePortal: disablePortal,\n container: container,\n children: /*#__PURE__*/_jsx(PopupContext.Provider, {\n value: popupContextValue,\n children: /*#__PURE__*/_jsx(TransitionContext.Provider, {\n value: contextValue,\n children: /*#__PURE__*/_jsx(Root, _extends({}, rootProps, {\n children: children\n }))\n })\n })\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? Popup.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 * An HTML element, [virtual element](https://floating-ui.com/docs/virtual-elements),\n * or a function that returns either.\n * It's used to set the position of the popup.\n */\n anchor: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([HTMLElementType, PropTypes.object, PropTypes.func]),\n /**\n * @ignore\n */\n children: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.node, PropTypes.func]),\n /**\n * An HTML element or function that returns one. The container will have the portal children appended to it.\n * By default, it uses the body of the top-level document object, so it's `document.body` in these cases.\n */\n container: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([HTMLElementType, PropTypes.func]),\n /**\n * If `true`, the popup will be rendered where it is defined, without the use of portals.\n * @default false\n */\n disablePortal: PropTypes.bool,\n /**\n * If `true`, the popup will exist in the DOM even if it's closed.\n * Its visibility will be controlled by the `visibility` CSS property.\n *\n * Otherwise, a closed popup will be removed from the DOM.\n *\n * @default false\n */\n keepMounted: PropTypes.bool,\n /**\n * Collection of Floating UI middleware to use when positioning the popup.\n * If not provided, the [`offset`](https://floating-ui.com/docs/offset)\n * and [`flip`](https://floating-ui.com/docs/flip) functions will be used.\n *\n * @see https://floating-ui.com/docs/computePosition#middleware\n */\n middleware: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.oneOf([false]), PropTypes.shape({\n fn: PropTypes.func.isRequired,\n name: PropTypes.string.isRequired,\n options: PropTypes.any\n })])),\n /**\n * Distance between a popup and the trigger element.\n * This prop is ignored when custom `middleware` is provided.\n *\n * @default 0\n * @see https://floating-ui.com/docs/offset\n */\n offset: PropTypes.oneOfType([PropTypes.func, PropTypes.number, PropTypes.shape({\n alignmentAxis: PropTypes.number,\n crossAxis: PropTypes.number,\n mainAxis: PropTypes.number\n })]),\n /**\n * If `true`, the popup is visible.\n *\n * @default false\n */\n open: PropTypes.bool,\n /**\n * Determines where to place the popup relative to the trigger element.\n *\n * @default 'bottom'\n * @see https://floating-ui.com/docs/computePosition#placement\n */\n placement: PropTypes.oneOf(['bottom-end', 'bottom-start', 'bottom', 'left-end', 'left-start', 'left', 'right-end', 'right-start', 'right', 'top-end', 'top-start', 'top']),\n /**\n * The props used for each slot inside the Popup.\n *\n * @default {}\n */\n slotProps: PropTypes.shape({\n root: PropTypes.oneOfType([PropTypes.func, PropTypes.object])\n }),\n /**\n * The components used for each slot inside the Popup.\n * Either a string to use a HTML element or a component.\n *\n * @default {}\n */\n slots: PropTypes.shape({\n root: PropTypes.elementType\n }),\n /**\n * The type of CSS position property to use (absolute or fixed).\n *\n * @default 'absolute'\n * @see https://floating-ui.com/docs/computePosition#strategy\n */\n strategy: PropTypes.oneOf(['absolute', 'fixed'])\n} : void 0;\nexport { Popup };", "/**\n * Custom positioning reference element.\n * @see https://floating-ui.com/docs/virtual-elements\n */\n\nconst sides = ['top', 'right', 'bottom', 'left'];\nconst alignments = ['start', 'end'];\nconst placements = /*#__PURE__*/sides.reduce((acc, side) => acc.concat(side, side + \"-\" + alignments[0], side + \"-\" + alignments[1]), []);\nconst min = Math.min;\nconst max = Math.max;\nconst round = Math.round;\nconst floor = Math.floor;\nconst createCoords = v => ({\n x: v,\n y: v\n});\nconst oppositeSideMap = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nconst oppositeAlignmentMap = {\n start: 'end',\n end: 'start'\n};\nfunction clamp(start, value, end) {\n return max(start, min(value, end));\n}\nfunction evaluate(value, param) {\n return typeof value === 'function' ? value(param) : value;\n}\nfunction getSide(placement) {\n return placement.split('-')[0];\n}\nfunction getAlignment(placement) {\n return placement.split('-')[1];\n}\nfunction getOppositeAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}\nfunction getAxisLength(axis) {\n return axis === 'y' ? 'height' : 'width';\n}\nfunction getSideAxis(placement) {\n return ['top', 'bottom'].includes(getSide(placement)) ? 'y' : 'x';\n}\nfunction getAlignmentAxis(placement) {\n return getOppositeAxis(getSideAxis(placement));\n}\nfunction getAlignmentSides(placement, rects, rtl) {\n if (rtl === void 0) {\n rtl = false;\n }\n const alignment = getAlignment(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const length = getAxisLength(alignmentAxis);\n let mainAlignmentSide = alignmentAxis === 'x' ? alignment === (rtl ? 'end' : 'start') ? 'right' : 'left' : alignment === 'start' ? 'bottom' : 'top';\n if (rects.reference[length] > rects.floating[length]) {\n mainAlignmentSide = getOppositePlacement(mainAlignmentSide);\n }\n return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)];\n}\nfunction getExpandedPlacements(placement) {\n const oppositePlacement = getOppositePlacement(placement);\n return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];\n}\nfunction getOppositeAlignmentPlacement(placement) {\n return placement.replace(/start|end/g, alignment => oppositeAlignmentMap[alignment]);\n}\nfunction getSideList(side, isStart, rtl) {\n const lr = ['left', 'right'];\n const rl = ['right', 'left'];\n const tb = ['top', 'bottom'];\n const bt = ['bottom', 'top'];\n switch (side) {\n case 'top':\n case 'bottom':\n if (rtl) return isStart ? rl : lr;\n return isStart ? lr : rl;\n case 'left':\n case 'right':\n return isStart ? tb : bt;\n default:\n return [];\n }\n}\nfunction getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {\n const alignment = getAlignment(placement);\n let list = getSideList(getSide(placement), direction === 'start', rtl);\n if (alignment) {\n list = list.map(side => side + \"-\" + alignment);\n if (flipAlignment) {\n list = list.concat(list.map(getOppositeAlignmentPlacement));\n }\n }\n return list;\n}\nfunction getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, side => oppositeSideMap[side]);\n}\nfunction expandPaddingObject(padding) {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...padding\n };\n}\nfunction getPaddingObject(padding) {\n return typeof padding !== 'number' ? expandPaddingObject(padding) : {\n top: padding,\n right: padding,\n bottom: padding,\n left: padding\n };\n}\nfunction rectToClientRect(rect) {\n return {\n ...rect,\n top: rect.y,\n left: rect.x,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n };\n}\n\nexport { alignments, clamp, createCoords, evaluate, expandPaddingObject, floor, getAlignment, getAlignmentAxis, getAlignmentSides, getAxisLength, getExpandedPlacements, getOppositeAlignmentPlacement, getOppositeAxis, getOppositeAxisPlacements, getOppositePlacement, getPaddingObject, getSide, getSideAxis, max, min, placements, rectToClientRect, round, sides };\n", "import { getSideAxis, getAlignmentAxis, getAxisLength, getSide, getAlignment, evaluate, getPaddingObject, rectToClientRect, min, clamp, placements, getAlignmentSides, getOppositeAlignmentPlacement, getOppositePlacement, getExpandedPlacements, getOppositeAxisPlacements, sides, max, getOppositeAxis } from '@floating-ui/utils';\nexport { rectToClientRect } from '@floating-ui/utils';\n\nfunction computeCoordsFromPlacement(_ref, placement, rtl) {\n let {\n reference,\n floating\n } = _ref;\n const sideAxis = getSideAxis(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const alignLength = getAxisLength(alignmentAxis);\n const side = getSide(placement);\n const isVertical = sideAxis === 'y';\n const commonX = reference.x + reference.width / 2 - floating.width / 2;\n const commonY = reference.y + reference.height / 2 - floating.height / 2;\n const commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2;\n let coords;\n switch (side) {\n case 'top':\n coords = {\n x: commonX,\n y: reference.y - floating.height\n };\n break;\n case 'bottom':\n coords = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n case 'right':\n coords = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n case 'left':\n coords = {\n x: reference.x - floating.width,\n y: commonY\n };\n break;\n default:\n coords = {\n x: reference.x,\n y: reference.y\n };\n }\n switch (getAlignment(placement)) {\n case 'start':\n coords[alignmentAxis] -= commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n case 'end':\n coords[alignmentAxis] += commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n }\n return coords;\n}\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n *\n * This export does not have any `platform` interface logic. You will need to\n * write one for the platform you are using Floating UI with.\n */\nconst computePosition = async (reference, floating, config) => {\n const {\n placement = 'bottom',\n strategy = 'absolute',\n middleware = [],\n platform\n } = config;\n const validMiddleware = middleware.filter(Boolean);\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(floating));\n let rects = await platform.getElementRects({\n reference,\n floating,\n strategy\n });\n let {\n x,\n y\n } = computeCoordsFromPlacement(rects, placement, rtl);\n let statefulPlacement = placement;\n let middlewareData = {};\n let resetCount = 0;\n for (let i = 0; i < validMiddleware.length; i++) {\n const {\n name,\n fn\n } = validMiddleware[i];\n const {\n x: nextX,\n y: nextY,\n data,\n reset\n } = await fn({\n x,\n y,\n initialPlacement: placement,\n placement: statefulPlacement,\n strategy,\n middlewareData,\n rects,\n platform,\n elements: {\n reference,\n floating\n }\n });\n x = nextX != null ? nextX : x;\n y = nextY != null ? nextY : y;\n middlewareData = {\n ...middlewareData,\n [name]: {\n ...middlewareData[name],\n ...data\n }\n };\n if (reset && resetCount <= 50) {\n resetCount++;\n if (typeof reset === 'object') {\n if (reset.placement) {\n statefulPlacement = reset.placement;\n }\n if (reset.rects) {\n rects = reset.rects === true ? await platform.getElementRects({\n reference,\n floating,\n strategy\n }) : reset.rects;\n }\n ({\n x,\n y\n } = computeCoordsFromPlacement(rects, statefulPlacement, rtl));\n }\n i = -1;\n }\n }\n return {\n x,\n y,\n placement: statefulPlacement,\n strategy,\n middlewareData\n };\n};\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nasync function detectOverflow(state, options) {\n var _await$platform$isEle;\n if (options === void 0) {\n options = {};\n }\n const {\n x,\n y,\n platform,\n rects,\n elements,\n strategy\n } = state;\n const {\n boundary = 'clippingAncestors',\n rootBoundary = 'viewport',\n elementContext = 'floating',\n altBoundary = false,\n padding = 0\n } = evaluate(options, state);\n const paddingObject = getPaddingObject(padding);\n const altContext = elementContext === 'floating' ? 'reference' : 'floating';\n const element = elements[altBoundary ? altContext : elementContext];\n const clippingClientRect = rectToClientRect(await platform.getClippingRect({\n element: ((_await$platform$isEle = await (platform.isElement == null ? void 0 : platform.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || (await (platform.getDocumentElement == null ? void 0 : platform.getDocumentElement(elements.floating))),\n boundary,\n rootBoundary,\n strategy\n }));\n const rect = elementContext === 'floating' ? {\n ...rects.floating,\n x,\n y\n } : rects.reference;\n const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating));\n const offsetScale = (await (platform.isElement == null ? void 0 : platform.isElement(offsetParent))) ? (await (platform.getScale == null ? void 0 : platform.getScale(offsetParent))) || {\n x: 1,\n y: 1\n } : {\n x: 1,\n y: 1\n };\n const elementClientRect = rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({\n elements,\n rect,\n offsetParent,\n strategy\n }) : rect);\n return {\n top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,\n bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,\n left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,\n right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x\n };\n}\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = options => ({\n name: 'arrow',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n platform,\n elements,\n middlewareData\n } = state;\n // Since `element` is required, we don't Partial<> the type.\n const {\n element,\n padding = 0\n } = evaluate(options, state) || {};\n if (element == null) {\n return {};\n }\n const paddingObject = getPaddingObject(padding);\n const coords = {\n x,\n y\n };\n const axis = getAlignmentAxis(placement);\n const length = getAxisLength(axis);\n const arrowDimensions = await platform.getDimensions(element);\n const isYAxis = axis === 'y';\n const minProp = isYAxis ? 'top' : 'left';\n const maxProp = isYAxis ? 'bottom' : 'right';\n const clientProp = isYAxis ? 'clientHeight' : 'clientWidth';\n const endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length];\n const startDiff = coords[axis] - rects.reference[axis];\n const arrowOffsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(element));\n let clientSize = arrowOffsetParent ? arrowOffsetParent[clientProp] : 0;\n\n // DOM platform can return `window` as the `offsetParent`.\n if (!clientSize || !(await (platform.isElement == null ? void 0 : platform.isElement(arrowOffsetParent)))) {\n clientSize = elements.floating[clientProp] || rects.floating[length];\n }\n const centerToReference = endDiff / 2 - startDiff / 2;\n\n // If the padding is large enough that it causes the arrow to no longer be\n // centered, modify the padding so that it is centered.\n const largestPossiblePadding = clientSize / 2 - arrowDimensions[length] / 2 - 1;\n const minPadding = min(paddingObject[minProp], largestPossiblePadding);\n const maxPadding = min(paddingObject[maxProp], largestPossiblePadding);\n\n // Make sure the arrow doesn't overflow the floating element if the center\n // point is outside the floating element's bounds.\n const min$1 = minPadding;\n const max = clientSize - arrowDimensions[length] - maxPadding;\n const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;\n const offset = clamp(min$1, center, max);\n\n // If the reference is small enough that the arrow's padding causes it to\n // to point to nothing for an aligned placement, adjust the offset of the\n // floating element itself. To ensure `shift()` continues to take action,\n // a single reset is performed when this is true.\n const shouldAddOffset = !middlewareData.arrow && getAlignment(placement) != null && center !== offset && rects.reference[length] / 2 - (center < min$1 ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0;\n const alignmentOffset = shouldAddOffset ? center < min$1 ? center - min$1 : center - max : 0;\n return {\n [axis]: coords[axis] + alignmentOffset,\n data: {\n [axis]: offset,\n centerOffset: center - offset - alignmentOffset,\n ...(shouldAddOffset && {\n alignmentOffset\n })\n },\n reset: shouldAddOffset\n };\n }\n});\n\nfunction getPlacementList(alignment, autoAlignment, allowedPlacements) {\n const allowedPlacementsSortedByAlignment = alignment ? [...allowedPlacements.filter(placement => getAlignment(placement) === alignment), ...allowedPlacements.filter(placement => getAlignment(placement) !== alignment)] : allowedPlacements.filter(placement => getSide(placement) === placement);\n return allowedPlacementsSortedByAlignment.filter(placement => {\n if (alignment) {\n return getAlignment(placement) === alignment || (autoAlignment ? getOppositeAlignmentPlacement(placement) !== placement : false);\n }\n return true;\n });\n}\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'autoPlacement',\n options,\n async fn(state) {\n var _middlewareData$autoP, _middlewareData$autoP2, _placementsThatFitOnE;\n const {\n rects,\n middlewareData,\n placement,\n platform,\n elements\n } = state;\n const {\n crossAxis = false,\n alignment,\n allowedPlacements = placements,\n autoAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n const placements$1 = alignment !== undefined || allowedPlacements === placements ? getPlacementList(alignment || null, autoAlignment, allowedPlacements) : allowedPlacements;\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const currentIndex = ((_middlewareData$autoP = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP.index) || 0;\n const currentPlacement = placements$1[currentIndex];\n if (currentPlacement == null) {\n return {};\n }\n const alignmentSides = getAlignmentSides(currentPlacement, rects, await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating)));\n\n // Make `computeCoords` start from the right place.\n if (placement !== currentPlacement) {\n return {\n reset: {\n placement: placements$1[0]\n }\n };\n }\n const currentOverflows = [overflow[getSide(currentPlacement)], overflow[alignmentSides[0]], overflow[alignmentSides[1]]];\n const allOverflows = [...(((_middlewareData$autoP2 = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP2.overflows) || []), {\n placement: currentPlacement,\n overflows: currentOverflows\n }];\n const nextPlacement = placements$1[currentIndex + 1];\n\n // There are more placements to check.\n if (nextPlacement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n const placementsSortedByMostSpace = allOverflows.map(d => {\n const alignment = getAlignment(d.placement);\n return [d.placement, alignment && crossAxis ?\n // Check along the mainAxis and main crossAxis side.\n d.overflows.slice(0, 2).reduce((acc, v) => acc + v, 0) :\n // Check only the mainAxis.\n d.overflows[0], d.overflows];\n }).sort((a, b) => a[1] - b[1]);\n const placementsThatFitOnEachSide = placementsSortedByMostSpace.filter(d => d[2].slice(0,\n // Aligned placements should not check their opposite crossAxis\n // side.\n getAlignment(d[0]) ? 2 : 3).every(v => v <= 0));\n const resetPlacement = ((_placementsThatFitOnE = placementsThatFitOnEachSide[0]) == null ? void 0 : _placementsThatFitOnE[0]) || placementsSortedByMostSpace[0][0];\n if (resetPlacement !== placement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: resetPlacement\n }\n };\n }\n return {};\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'flip',\n options,\n async fn(state) {\n var _middlewareData$arrow, _middlewareData$flip;\n const {\n placement,\n middlewareData,\n rects,\n initialPlacement,\n platform,\n elements\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true,\n fallbackPlacements: specifiedFallbackPlacements,\n fallbackStrategy = 'bestFit',\n fallbackAxisSideDirection = 'none',\n flipAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n\n // If a reset by the arrow was caused due to an alignment offset being\n // added, we should skip any logic now since `flip()` has already done its\n // work.\n // https://github.com/floating-ui/floating-ui/issues/2549#issuecomment-1719601643\n if ((_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n const side = getSide(placement);\n const isBasePlacement = getSide(initialPlacement) === initialPlacement;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));\n if (!specifiedFallbackPlacements && fallbackAxisSideDirection !== 'none') {\n fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));\n }\n const placements = [initialPlacement, ...fallbackPlacements];\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const overflows = [];\n let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];\n if (checkMainAxis) {\n overflows.push(overflow[side]);\n }\n if (checkCrossAxis) {\n const sides = getAlignmentSides(placement, rects, rtl);\n overflows.push(overflow[sides[0]], overflow[sides[1]]);\n }\n overflowsData = [...overflowsData, {\n placement,\n overflows\n }];\n\n // One or more sides is overflowing.\n if (!overflows.every(side => side <= 0)) {\n var _middlewareData$flip2, _overflowsData$filter;\n const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;\n const nextPlacement = placements[nextIndex];\n if (nextPlacement) {\n // Try next placement and re-run the lifecycle.\n return {\n data: {\n index: nextIndex,\n overflows: overflowsData\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n\n // First, find the candidates that fit on the mainAxis side of overflow,\n // then find the placement that fits the best on the main crossAxis side.\n let resetPlacement = (_overflowsData$filter = overflowsData.filter(d => d.overflows[0] <= 0).sort((a, b) => a.overflows[1] - b.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement;\n\n // Otherwise fallback.\n if (!resetPlacement) {\n switch (fallbackStrategy) {\n case 'bestFit':\n {\n var _overflowsData$map$so;\n const placement = (_overflowsData$map$so = overflowsData.map(d => [d.placement, d.overflows.filter(overflow => overflow > 0).reduce((acc, overflow) => acc + overflow, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$map$so[0];\n if (placement) {\n resetPlacement = placement;\n }\n break;\n }\n case 'initialPlacement':\n resetPlacement = initialPlacement;\n break;\n }\n }\n if (placement !== resetPlacement) {\n return {\n reset: {\n placement: resetPlacement\n }\n };\n }\n }\n return {};\n }\n };\n};\n\nfunction getSideOffsets(overflow, rect) {\n return {\n top: overflow.top - rect.height,\n right: overflow.right - rect.width,\n bottom: overflow.bottom - rect.height,\n left: overflow.left - rect.width\n };\n}\nfunction isAnySideFullyClipped(overflow) {\n return sides.some(side => overflow[side] >= 0);\n}\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'hide',\n options,\n async fn(state) {\n const {\n rects\n } = state;\n const {\n strategy = 'referenceHidden',\n ...detectOverflowOptions\n } = evaluate(options, state);\n switch (strategy) {\n case 'referenceHidden':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n elementContext: 'reference'\n });\n const offsets = getSideOffsets(overflow, rects.reference);\n return {\n data: {\n referenceHiddenOffsets: offsets,\n referenceHidden: isAnySideFullyClipped(offsets)\n }\n };\n }\n case 'escaped':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n altBoundary: true\n });\n const offsets = getSideOffsets(overflow, rects.floating);\n return {\n data: {\n escapedOffsets: offsets,\n escaped: isAnySideFullyClipped(offsets)\n }\n };\n }\n default:\n {\n return {};\n }\n }\n }\n };\n};\n\nfunction getBoundingRect(rects) {\n const minX = min(...rects.map(rect => rect.left));\n const minY = min(...rects.map(rect => rect.top));\n const maxX = max(...rects.map(rect => rect.right));\n const maxY = max(...rects.map(rect => rect.bottom));\n return {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n}\nfunction getRectsByLine(rects) {\n const sortedRects = rects.slice().sort((a, b) => a.y - b.y);\n const groups = [];\n let prevRect = null;\n for (let i = 0; i < sortedRects.length; i++) {\n const rect = sortedRects[i];\n if (!prevRect || rect.y - prevRect.y > prevRect.height / 2) {\n groups.push([rect]);\n } else {\n groups[groups.length - 1].push(rect);\n }\n prevRect = rect;\n }\n return groups.map(rect => rectToClientRect(getBoundingRect(rect)));\n}\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'inline',\n options,\n async fn(state) {\n const {\n placement,\n elements,\n rects,\n platform,\n strategy\n } = state;\n // A MouseEvent's client{X,Y} coords can be up to 2 pixels off a\n // ClientRect's bounds, despite the event listener being triggered. A\n // padding of 2 seems to handle this issue.\n const {\n padding = 2,\n x,\n y\n } = evaluate(options, state);\n const nativeClientRects = Array.from((await (platform.getClientRects == null ? void 0 : platform.getClientRects(elements.reference))) || []);\n const clientRects = getRectsByLine(nativeClientRects);\n const fallback = rectToClientRect(getBoundingRect(nativeClientRects));\n const paddingObject = getPaddingObject(padding);\n function getBoundingClientRect() {\n // There are two rects and they are disjoined.\n if (clientRects.length === 2 && clientRects[0].left > clientRects[1].right && x != null && y != null) {\n // Find the first rect in which the point is fully inside.\n return clientRects.find(rect => x > rect.left - paddingObject.left && x < rect.right + paddingObject.right && y > rect.top - paddingObject.top && y < rect.bottom + paddingObject.bottom) || fallback;\n }\n\n // There are 2 or more connected rects.\n if (clientRects.length >= 2) {\n if (getSideAxis(placement) === 'y') {\n const firstRect = clientRects[0];\n const lastRect = clientRects[clientRects.length - 1];\n const isTop = getSide(placement) === 'top';\n const top = firstRect.top;\n const bottom = lastRect.bottom;\n const left = isTop ? firstRect.left : lastRect.left;\n const right = isTop ? firstRect.right : lastRect.right;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n const isLeftSide = getSide(placement) === 'left';\n const maxRight = max(...clientRects.map(rect => rect.right));\n const minLeft = min(...clientRects.map(rect => rect.left));\n const measureRects = clientRects.filter(rect => isLeftSide ? rect.left === minLeft : rect.right === maxRight);\n const top = measureRects[0].top;\n const bottom = measureRects[measureRects.length - 1].bottom;\n const left = minLeft;\n const right = maxRight;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n return fallback;\n }\n const resetRects = await platform.getElementRects({\n reference: {\n getBoundingClientRect\n },\n floating: elements.floating,\n strategy\n });\n if (rects.reference.x !== resetRects.reference.x || rects.reference.y !== resetRects.reference.y || rects.reference.width !== resetRects.reference.width || rects.reference.height !== resetRects.reference.height) {\n return {\n reset: {\n rects: resetRects\n }\n };\n }\n return {};\n }\n };\n};\n\n// For type backwards-compatibility, the `OffsetOptions` type was also\n// Derivable.\n\nasync function convertValueToCoords(state, options) {\n const {\n placement,\n platform,\n elements\n } = state;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isVertical = getSideAxis(placement) === 'y';\n const mainAxisMulti = ['left', 'top'].includes(side) ? -1 : 1;\n const crossAxisMulti = rtl && isVertical ? -1 : 1;\n const rawValue = evaluate(options, state);\n let {\n mainAxis,\n crossAxis,\n alignmentAxis\n } = typeof rawValue === 'number' ? {\n mainAxis: rawValue,\n crossAxis: 0,\n alignmentAxis: null\n } : {\n mainAxis: 0,\n crossAxis: 0,\n alignmentAxis: null,\n ...rawValue\n };\n if (alignment && typeof alignmentAxis === 'number') {\n crossAxis = alignment === 'end' ? alignmentAxis * -1 : alignmentAxis;\n }\n return isVertical ? {\n x: crossAxis * crossAxisMulti,\n y: mainAxis * mainAxisMulti\n } : {\n x: mainAxis * mainAxisMulti,\n y: crossAxis * crossAxisMulti\n };\n}\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = function (options) {\n if (options === void 0) {\n options = 0;\n }\n return {\n name: 'offset',\n options,\n async fn(state) {\n var _middlewareData$offse, _middlewareData$arrow;\n const {\n x,\n y,\n placement,\n middlewareData\n } = state;\n const diffCoords = await convertValueToCoords(state, options);\n\n // If the placement is the same and the arrow caused an alignment offset\n // then we don't need to change the positioning coordinates.\n if (placement === ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse.placement) && (_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n return {\n x: x + diffCoords.x,\n y: y + diffCoords.y,\n data: {\n ...diffCoords,\n placement\n }\n };\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'shift',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = false,\n limiter = {\n fn: _ref => {\n let {\n x,\n y\n } = _ref;\n return {\n x,\n y\n };\n }\n },\n ...detectOverflowOptions\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const crossAxis = getSideAxis(getSide(placement));\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n if (checkMainAxis) {\n const minSide = mainAxis === 'y' ? 'top' : 'left';\n const maxSide = mainAxis === 'y' ? 'bottom' : 'right';\n const min = mainAxisCoord + overflow[minSide];\n const max = mainAxisCoord - overflow[maxSide];\n mainAxisCoord = clamp(min, mainAxisCoord, max);\n }\n if (checkCrossAxis) {\n const minSide = crossAxis === 'y' ? 'top' : 'left';\n const maxSide = crossAxis === 'y' ? 'bottom' : 'right';\n const min = crossAxisCoord + overflow[minSide];\n const max = crossAxisCoord - overflow[maxSide];\n crossAxisCoord = clamp(min, crossAxisCoord, max);\n }\n const limitedCoords = limiter.fn({\n ...state,\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n });\n return {\n ...limitedCoords,\n data: {\n x: limitedCoords.x - x,\n y: limitedCoords.y - y\n }\n };\n }\n };\n};\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n options,\n fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n middlewareData\n } = state;\n const {\n offset = 0,\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const crossAxis = getSideAxis(placement);\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n const rawOffset = evaluate(offset, state);\n const computedOffset = typeof rawOffset === 'number' ? {\n mainAxis: rawOffset,\n crossAxis: 0\n } : {\n mainAxis: 0,\n crossAxis: 0,\n ...rawOffset\n };\n if (checkMainAxis) {\n const len = mainAxis === 'y' ? 'height' : 'width';\n const limitMin = rects.reference[mainAxis] - rects.floating[len] + computedOffset.mainAxis;\n const limitMax = rects.reference[mainAxis] + rects.reference[len] - computedOffset.mainAxis;\n if (mainAxisCoord < limitMin) {\n mainAxisCoord = limitMin;\n } else if (mainAxisCoord > limitMax) {\n mainAxisCoord = limitMax;\n }\n }\n if (checkCrossAxis) {\n var _middlewareData$offse, _middlewareData$offse2;\n const len = mainAxis === 'y' ? 'width' : 'height';\n const isOriginSide = ['top', 'left'].includes(getSide(placement));\n const limitMin = rects.reference[crossAxis] - rects.floating[len] + (isOriginSide ? ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse[crossAxis]) || 0 : 0) + (isOriginSide ? 0 : computedOffset.crossAxis);\n const limitMax = rects.reference[crossAxis] + rects.reference[len] + (isOriginSide ? 0 : ((_middlewareData$offse2 = middlewareData.offset) == null ? void 0 : _middlewareData$offse2[crossAxis]) || 0) - (isOriginSide ? computedOffset.crossAxis : 0);\n if (crossAxisCoord < limitMin) {\n crossAxisCoord = limitMin;\n } else if (crossAxisCoord > limitMax) {\n crossAxisCoord = limitMax;\n }\n }\n return {\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n };\n }\n };\n};\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'size',\n options,\n async fn(state) {\n const {\n placement,\n rects,\n platform,\n elements\n } = state;\n const {\n apply = () => {},\n ...detectOverflowOptions\n } = evaluate(options, state);\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isYAxis = getSideAxis(placement) === 'y';\n const {\n width,\n height\n } = rects.floating;\n let heightSide;\n let widthSide;\n if (side === 'top' || side === 'bottom') {\n heightSide = side;\n widthSide = alignment === ((await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating))) ? 'start' : 'end') ? 'left' : 'right';\n } else {\n widthSide = side;\n heightSide = alignment === 'end' ? 'top' : 'bottom';\n }\n const overflowAvailableHeight = height - overflow[heightSide];\n const overflowAvailableWidth = width - overflow[widthSide];\n const noShift = !state.middlewareData.shift;\n let availableHeight = overflowAvailableHeight;\n let availableWidth = overflowAvailableWidth;\n if (isYAxis) {\n const maximumClippingWidth = width - overflow.left - overflow.right;\n availableWidth = alignment || noShift ? min(overflowAvailableWidth, maximumClippingWidth) : maximumClippingWidth;\n } else {\n const maximumClippingHeight = height - overflow.top - overflow.bottom;\n availableHeight = alignment || noShift ? min(overflowAvailableHeight, maximumClippingHeight) : maximumClippingHeight;\n }\n if (noShift && !alignment) {\n const xMin = max(overflow.left, 0);\n const xMax = max(overflow.right, 0);\n const yMin = max(overflow.top, 0);\n const yMax = max(overflow.bottom, 0);\n if (isYAxis) {\n availableWidth = width - 2 * (xMin !== 0 || xMax !== 0 ? xMin + xMax : max(overflow.left, overflow.right));\n } else {\n availableHeight = height - 2 * (yMin !== 0 || yMax !== 0 ? yMin + yMax : max(overflow.top, overflow.bottom));\n }\n }\n await apply({\n ...state,\n availableWidth,\n availableHeight\n });\n const nextDimensions = await platform.getDimensions(elements.floating);\n if (width !== nextDimensions.width || height !== nextDimensions.height) {\n return {\n reset: {\n rects: true\n }\n };\n }\n return {};\n }\n };\n};\n\nexport { arrow, autoPlacement, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, shift, size };\n", "function getNodeName(node) {\n if (isNode(node)) {\n return (node.nodeName || '').toLowerCase();\n }\n // Mocked nodes in testing environments may not be instances of Node. By\n // returning `#document` an infinite loop won't occur.\n // https://github.com/floating-ui/floating-ui/issues/2317\n return '#document';\n}\nfunction getWindow(node) {\n var _node$ownerDocument;\n return (node == null || (_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window;\n}\nfunction getDocumentElement(node) {\n var _ref;\n return (_ref = (isNode(node) ? node.ownerDocument : node.document) || window.document) == null ? void 0 : _ref.documentElement;\n}\nfunction isNode(value) {\n return value instanceof Node || value instanceof getWindow(value).Node;\n}\nfunction isElement(value) {\n return value instanceof Element || value instanceof getWindow(value).Element;\n}\nfunction isHTMLElement(value) {\n return value instanceof HTMLElement || value instanceof getWindow(value).HTMLElement;\n}\nfunction isShadowRoot(value) {\n // Browsers without `ShadowRoot` support.\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;\n}\nfunction isOverflowElement(element) {\n const {\n overflow,\n overflowX,\n overflowY,\n display\n } = getComputedStyle(element);\n return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !['inline', 'contents'].includes(display);\n}\nfunction isTableElement(element) {\n return ['table', 'td', 'th'].includes(getNodeName(element));\n}\nfunction isContainingBlock(element) {\n const webkit = isWebKit();\n const css = getComputedStyle(element);\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n return css.transform !== 'none' || css.perspective !== 'none' || (css.containerType ? css.containerType !== 'normal' : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== 'none' : false) || !webkit && (css.filter ? css.filter !== 'none' : false) || ['transform', 'perspective', 'filter'].some(value => (css.willChange || '').includes(value)) || ['paint', 'layout', 'strict', 'content'].some(value => (css.contain || '').includes(value));\n}\nfunction getContainingBlock(element) {\n let currentNode = getParentNode(element);\n while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) {\n if (isContainingBlock(currentNode)) {\n return currentNode;\n } else {\n currentNode = getParentNode(currentNode);\n }\n }\n return null;\n}\nfunction isWebKit() {\n if (typeof CSS === 'undefined' || !CSS.supports) return false;\n return CSS.supports('-webkit-backdrop-filter', 'none');\n}\nfunction isLastTraversableNode(node) {\n return ['html', 'body', '#document'].includes(getNodeName(node));\n}\nfunction getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}\nfunction getNodeScroll(element) {\n if (isElement(element)) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n }\n return {\n scrollLeft: element.pageXOffset,\n scrollTop: element.pageYOffset\n };\n}\nfunction getParentNode(node) {\n if (getNodeName(node) === 'html') {\n return node;\n }\n const result =\n // Step into the shadow DOM of the parent of a slotted node.\n node.assignedSlot ||\n // DOM Element detected.\n node.parentNode ||\n // ShadowRoot detected.\n isShadowRoot(node) && node.host ||\n // Fallback.\n getDocumentElement(node);\n return isShadowRoot(result) ? result.host : result;\n}\nfunction getNearestOverflowAncestor(node) {\n const parentNode = getParentNode(node);\n if (isLastTraversableNode(parentNode)) {\n return node.ownerDocument ? node.ownerDocument.body : node.body;\n }\n if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {\n return parentNode;\n }\n return getNearestOverflowAncestor(parentNode);\n}\nfunction getOverflowAncestors(node, list, traverseIframes) {\n var _node$ownerDocument2;\n if (list === void 0) {\n list = [];\n }\n if (traverseIframes === void 0) {\n traverseIframes = true;\n }\n const scrollableAncestor = getNearestOverflowAncestor(node);\n const isBody = scrollableAncestor === ((_node$ownerDocument2 = node.ownerDocument) == null ? void 0 : _node$ownerDocument2.body);\n const win = getWindow(scrollableAncestor);\n if (isBody) {\n return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], win.frameElement && traverseIframes ? getOverflowAncestors(win.frameElement) : []);\n }\n return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes));\n}\n\nexport { getComputedStyle, getContainingBlock, getDocumentElement, getNearestOverflowAncestor, getNodeName, getNodeScroll, getOverflowAncestors, getParentNode, getWindow, isContainingBlock, isElement, isHTMLElement, isLastTraversableNode, isNode, isOverflowElement, isShadowRoot, isTableElement, isWebKit };\n", "import { rectToClientRect, autoPlacement as autoPlacement$1, shift as shift$1, flip as flip$1, size as size$1, hide as hide$1, arrow as arrow$1, inline as inline$1, limitShift as limitShift$1, computePosition as computePosition$1 } from '@floating-ui/core';\nexport { detectOverflow, offset } from '@floating-ui/core';\nimport { round, createCoords, max, min, floor } from '@floating-ui/utils';\nimport { getComputedStyle, isHTMLElement, isElement, getWindow, isWebKit, getDocumentElement, getNodeName, isOverflowElement, getNodeScroll, getOverflowAncestors, getParentNode, isLastTraversableNode, isContainingBlock, isTableElement, getContainingBlock } from '@floating-ui/utils/dom';\nexport { getOverflowAncestors } from '@floating-ui/utils/dom';\n\nfunction getCssDimensions(element) {\n const css = getComputedStyle(element);\n // In testing environments, the `width` and `height` properties are empty\n // strings for SVG elements, returning NaN. Fallback to `0` in this case.\n let width = parseFloat(css.width) || 0;\n let height = parseFloat(css.height) || 0;\n const hasOffset = isHTMLElement(element);\n const offsetWidth = hasOffset ? element.offsetWidth : width;\n const offsetHeight = hasOffset ? element.offsetHeight : height;\n const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight;\n if (shouldFallback) {\n width = offsetWidth;\n height = offsetHeight;\n }\n return {\n width,\n height,\n $: shouldFallback\n };\n}\n\nfunction unwrapElement(element) {\n return !isElement(element) ? element.contextElement : element;\n}\n\nfunction getScale(element) {\n const domElement = unwrapElement(element);\n if (!isHTMLElement(domElement)) {\n return createCoords(1);\n }\n const rect = domElement.getBoundingClientRect();\n const {\n width,\n height,\n $\n } = getCssDimensions(domElement);\n let x = ($ ? round(rect.width) : rect.width) / width;\n let y = ($ ? round(rect.height) : rect.height) / height;\n\n // 0, NaN, or Infinity should always fallback to 1.\n\n if (!x || !Number.isFinite(x)) {\n x = 1;\n }\n if (!y || !Number.isFinite(y)) {\n y = 1;\n }\n return {\n x,\n y\n };\n}\n\nconst noOffsets = /*#__PURE__*/createCoords(0);\nfunction getVisualOffsets(element) {\n const win = getWindow(element);\n if (!isWebKit() || !win.visualViewport) {\n return noOffsets;\n }\n return {\n x: win.visualViewport.offsetLeft,\n y: win.visualViewport.offsetTop\n };\n}\nfunction shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n if (!floatingOffsetParent || isFixed && floatingOffsetParent !== getWindow(element)) {\n return false;\n }\n return isFixed;\n}\n\nfunction getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n const clientRect = element.getBoundingClientRect();\n const domElement = unwrapElement(element);\n let scale = createCoords(1);\n if (includeScale) {\n if (offsetParent) {\n if (isElement(offsetParent)) {\n scale = getScale(offsetParent);\n }\n } else {\n scale = getScale(element);\n }\n }\n const visualOffsets = shouldAddVisualOffsets(domElement, isFixedStrategy, offsetParent) ? getVisualOffsets(domElement) : createCoords(0);\n let x = (clientRect.left + visualOffsets.x) / scale.x;\n let y = (clientRect.top + visualOffsets.y) / scale.y;\n let width = clientRect.width / scale.x;\n let height = clientRect.height / scale.y;\n if (domElement) {\n const win = getWindow(domElement);\n const offsetWin = offsetParent && isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;\n let currentWin = win;\n let currentIFrame = currentWin.frameElement;\n while (currentIFrame && offsetParent && offsetWin !== currentWin) {\n const iframeScale = getScale(currentIFrame);\n const iframeRect = currentIFrame.getBoundingClientRect();\n const css = getComputedStyle(currentIFrame);\n const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;\n const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;\n x *= iframeScale.x;\n y *= iframeScale.y;\n width *= iframeScale.x;\n height *= iframeScale.y;\n x += left;\n y += top;\n currentWin = getWindow(currentIFrame);\n currentIFrame = currentWin.frameElement;\n }\n }\n return rectToClientRect({\n width,\n height,\n x,\n y\n });\n}\n\nconst topLayerSelectors = [':popover-open', ':modal'];\nfunction isTopLayer(floating) {\n return topLayerSelectors.some(selector => {\n try {\n return floating.matches(selector);\n } catch (e) {\n return false;\n }\n });\n}\n\nfunction convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {\n let {\n elements,\n rect,\n offsetParent,\n strategy\n } = _ref;\n const isFixed = strategy === 'fixed';\n const documentElement = getDocumentElement(offsetParent);\n const topLayer = elements ? isTopLayer(elements.floating) : false;\n if (offsetParent === documentElement || topLayer && isFixed) {\n return rect;\n }\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n let scale = createCoords(1);\n const offsets = createCoords(0);\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isHTMLElement(offsetParent)) {\n const offsetRect = getBoundingClientRect(offsetParent);\n scale = getScale(offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n }\n }\n return {\n width: rect.width * scale.x,\n height: rect.height * scale.y,\n x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x,\n y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y\n };\n}\n\nfunction getClientRects(element) {\n return Array.from(element.getClientRects());\n}\n\nfunction getWindowScrollBarX(element) {\n // If <html> has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n return getBoundingClientRect(getDocumentElement(element)).left + getNodeScroll(element).scrollLeft;\n}\n\n// Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable.\nfunction getDocumentRect(element) {\n const html = getDocumentElement(element);\n const scroll = getNodeScroll(element);\n const body = element.ownerDocument.body;\n const width = max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);\n const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);\n let x = -scroll.scrollLeft + getWindowScrollBarX(element);\n const y = -scroll.scrollTop;\n if (getComputedStyle(body).direction === 'rtl') {\n x += max(html.clientWidth, body.clientWidth) - width;\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\nfunction getViewportRect(element, strategy) {\n const win = getWindow(element);\n const html = getDocumentElement(element);\n const visualViewport = win.visualViewport;\n let width = html.clientWidth;\n let height = html.clientHeight;\n let x = 0;\n let y = 0;\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n const visualViewportBased = isWebKit();\n if (!visualViewportBased || visualViewportBased && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\n// Returns the inner client rect, subtracting scrollbars if present.\nfunction getInnerBoundingClientRect(element, strategy) {\n const clientRect = getBoundingClientRect(element, true, strategy === 'fixed');\n const top = clientRect.top + element.clientTop;\n const left = clientRect.left + element.clientLeft;\n const scale = isHTMLElement(element) ? getScale(element) : createCoords(1);\n const width = element.clientWidth * scale.x;\n const height = element.clientHeight * scale.y;\n const x = left * scale.x;\n const y = top * scale.y;\n return {\n width,\n height,\n x,\n y\n };\n}\nfunction getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {\n let rect;\n if (clippingAncestor === 'viewport') {\n rect = getViewportRect(element, strategy);\n } else if (clippingAncestor === 'document') {\n rect = getDocumentRect(getDocumentElement(element));\n } else if (isElement(clippingAncestor)) {\n rect = getInnerBoundingClientRect(clippingAncestor, strategy);\n } else {\n const visualOffsets = getVisualOffsets(element);\n rect = {\n ...clippingAncestor,\n x: clippingAncestor.x - visualOffsets.x,\n y: clippingAncestor.y - visualOffsets.y\n };\n }\n return rectToClientRect(rect);\n}\nfunction hasFixedPositionAncestor(element, stopNode) {\n const parentNode = getParentNode(element);\n if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) {\n return false;\n }\n return getComputedStyle(parentNode).position === 'fixed' || hasFixedPositionAncestor(parentNode, stopNode);\n}\n\n// A \"clipping ancestor\" is an `overflow` element with the characteristic of\n// clipping (or hiding) child elements. This returns all clipping ancestors\n// of the given element up the tree.\nfunction getClippingElementAncestors(element, cache) {\n const cachedResult = cache.get(element);\n if (cachedResult) {\n return cachedResult;\n }\n let result = getOverflowAncestors(element, [], false).filter(el => isElement(el) && getNodeName(el) !== 'body');\n let currentContainingBlockComputedStyle = null;\n const elementIsFixed = getComputedStyle(element).position === 'fixed';\n let currentNode = elementIsFixed ? getParentNode(element) : element;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {\n const computedStyle = getComputedStyle(currentNode);\n const currentNodeIsContaining = isContainingBlock(currentNode);\n if (!currentNodeIsContaining && computedStyle.position === 'fixed') {\n currentContainingBlockComputedStyle = null;\n }\n const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && ['absolute', 'fixed'].includes(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);\n if (shouldDropCurrentNode) {\n // Drop non-containing blocks.\n result = result.filter(ancestor => ancestor !== currentNode);\n } else {\n // Record last containing block for next iteration.\n currentContainingBlockComputedStyle = computedStyle;\n }\n currentNode = getParentNode(currentNode);\n }\n cache.set(element, result);\n return result;\n}\n\n// Gets the maximum area that the element is visible in due to any number of\n// clipping ancestors.\nfunction getClippingRect(_ref) {\n let {\n element,\n boundary,\n rootBoundary,\n strategy\n } = _ref;\n const elementClippingAncestors = boundary === 'clippingAncestors' ? getClippingElementAncestors(element, this._c) : [].concat(boundary);\n const clippingAncestors = [...elementClippingAncestors, rootBoundary];\n const firstClippingAncestor = clippingAncestors[0];\n const clippingRect = clippingAncestors.reduce((accRect, clippingAncestor) => {\n const rect = getClientRectFromClippingAncestor(element, clippingAncestor, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromClippingAncestor(element, firstClippingAncestor, strategy));\n return {\n width: clippingRect.right - clippingRect.left,\n height: clippingRect.bottom - clippingRect.top,\n x: clippingRect.left,\n y: clippingRect.top\n };\n}\n\nfunction getDimensions(element) {\n const {\n width,\n height\n } = getCssDimensions(element);\n return {\n width,\n height\n };\n}\n\nfunction getRectRelativeToOffsetParent(element, offsetParent, strategy) {\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n const isFixed = strategy === 'fixed';\n const rect = getBoundingClientRect(element, true, isFixed, offsetParent);\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n const offsets = createCoords(0);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isOffsetParentAnElement) {\n const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n const x = rect.left + scroll.scrollLeft - offsets.x;\n const y = rect.top + scroll.scrollTop - offsets.y;\n return {\n x,\n y,\n width: rect.width,\n height: rect.height\n };\n}\n\nfunction getTrueOffsetParent(element, polyfill) {\n if (!isHTMLElement(element) || getComputedStyle(element).position === 'fixed') {\n return null;\n }\n if (polyfill) {\n return polyfill(element);\n }\n return element.offsetParent;\n}\n\n// Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\nfunction getOffsetParent(element, polyfill) {\n const window = getWindow(element);\n if (!isHTMLElement(element) || isTopLayer(element)) {\n return window;\n }\n let offsetParent = getTrueOffsetParent(element, polyfill);\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent, polyfill);\n }\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static' && !isContainingBlock(offsetParent))) {\n return window;\n }\n return offsetParent || getContainingBlock(element) || window;\n}\n\nconst getElementRects = async function (data) {\n const getOffsetParentFn = this.getOffsetParent || getOffsetParent;\n const getDimensionsFn = this.getDimensions;\n return {\n reference: getRectRelativeToOffsetParent(data.reference, await getOffsetParentFn(data.floating), data.strategy),\n floating: {\n x: 0,\n y: 0,\n ...(await getDimensionsFn(data.floating))\n }\n };\n};\n\nfunction isRTL(element) {\n return getComputedStyle(element).direction === 'rtl';\n}\n\nconst platform = {\n convertOffsetParentRelativeRectToViewportRelativeRect,\n getDocumentElement,\n getClippingRect,\n getOffsetParent,\n getElementRects,\n getClientRects,\n getDimensions,\n getScale,\n isElement,\n isRTL\n};\n\n// https://samthor.au/2021/observing-dom/\nfunction observeMove(element, onMove) {\n let io = null;\n let timeoutId;\n const root = getDocumentElement(element);\n function cleanup() {\n var _io;\n clearTimeout(timeoutId);\n (_io = io) == null || _io.disconnect();\n io = null;\n }\n function refresh(skip, threshold) {\n if (skip === void 0) {\n skip = false;\n }\n if (threshold === void 0) {\n threshold = 1;\n }\n cleanup();\n const {\n left,\n top,\n width,\n height\n } = element.getBoundingClientRect();\n if (!skip) {\n onMove();\n }\n if (!width || !height) {\n return;\n }\n const insetTop = floor(top);\n const insetRight = floor(root.clientWidth - (left + width));\n const insetBottom = floor(root.clientHeight - (top + height));\n const insetLeft = floor(left);\n const rootMargin = -insetTop + \"px \" + -insetRight + \"px \" + -insetBottom + \"px \" + -insetLeft + \"px\";\n const options = {\n rootMargin,\n threshold: max(0, min(1, threshold)) || 1\n };\n let isFirstUpdate = true;\n function handleObserve(entries) {\n const ratio = entries[0].intersectionRatio;\n if (ratio !== threshold) {\n if (!isFirstUpdate) {\n return refresh();\n }\n if (!ratio) {\n timeoutId = setTimeout(() => {\n refresh(false, 1e-7);\n }, 100);\n } else {\n refresh(false, ratio);\n }\n }\n isFirstUpdate = false;\n }\n\n // Older browsers don't support a `document` as the root and will throw an\n // error.\n try {\n io = new IntersectionObserver(handleObserve, {\n ...options,\n // Handle <iframe>s\n root: root.ownerDocument\n });\n } catch (e) {\n io = new IntersectionObserver(handleObserve, options);\n }\n io.observe(element);\n }\n refresh(true);\n return cleanup;\n}\n\n/**\n * Automatically updates the position of the floating element when necessary.\n * Should only be called when the floating element is mounted on the DOM or\n * visible on the screen.\n * @returns cleanup function that should be invoked when the floating element is\n * removed from the DOM or hidden from the screen.\n * @see https://floating-ui.com/docs/autoUpdate\n */\nfunction autoUpdate(reference, floating, update, options) {\n if (options === void 0) {\n options = {};\n }\n const {\n ancestorScroll = true,\n ancestorResize = true,\n elementResize = typeof ResizeObserver === 'function',\n layoutShift = typeof IntersectionObserver === 'function',\n animationFrame = false\n } = options;\n const referenceEl = unwrapElement(reference);\n const ancestors = ancestorScroll || ancestorResize ? [...(referenceEl ? getOverflowAncestors(referenceEl) : []), ...getOverflowAncestors(floating)] : [];\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.addEventListener('scroll', update, {\n passive: true\n });\n ancestorResize && ancestor.addEventListener('resize', update);\n });\n const cleanupIo = referenceEl && layoutShift ? observeMove(referenceEl, update) : null;\n let reobserveFrame = -1;\n let resizeObserver = null;\n if (elementResize) {\n resizeObserver = new ResizeObserver(_ref => {\n let [firstEntry] = _ref;\n if (firstEntry && firstEntry.target === referenceEl && resizeObserver) {\n // Prevent update loops when using the `size` middleware.\n // https://github.com/floating-ui/floating-ui/issues/1740\n resizeObserver.unobserve(floating);\n cancelAnimationFrame(reobserveFrame);\n reobserveFrame = requestAnimationFrame(() => {\n var _resizeObserver;\n (_resizeObserver = resizeObserver) == null || _resizeObserver.observe(floating);\n });\n }\n update();\n });\n if (referenceEl && !animationFrame) {\n resizeObserver.observe(referenceEl);\n }\n resizeObserver.observe(floating);\n }\n let frameId;\n let prevRefRect = animationFrame ? getBoundingClientRect(reference) : null;\n if (animationFrame) {\n frameLoop();\n }\n function frameLoop() {\n const nextRefRect = getBoundingClientRect(reference);\n if (prevRefRect && (nextRefRect.x !== prevRefRect.x || nextRefRect.y !== prevRefRect.y || nextRefRect.width !== prevRefRect.width || nextRefRect.height !== prevRefRect.height)) {\n update();\n }\n prevRefRect = nextRefRect;\n frameId = requestAnimationFrame(frameLoop);\n }\n update();\n return () => {\n var _resizeObserver2;\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.removeEventListener('scroll', update);\n ancestorResize && ancestor.removeEventListener('resize', update);\n });\n cleanupIo == null || cleanupIo();\n (_resizeObserver2 = resizeObserver) == null || _resizeObserver2.disconnect();\n resizeObserver = null;\n if (animationFrame) {\n cancelAnimationFrame(frameId);\n }\n };\n}\n\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = autoPlacement$1;\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = shift$1;\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = flip$1;\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = size$1;\n\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = hide$1;\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = arrow$1;\n\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = inline$1;\n\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = limitShift$1;\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n */\nconst computePosition = (reference, floating, options) => {\n // This caches the expensive `getClippingElementAncestors` function so that\n // multiple lifecycle resets re-use the same result. It only lives for a\n // single call. If other functions become expensive, we can add them as well.\n const cache = new Map();\n const mergedOptions = {\n platform,\n ...options\n };\n const platformWithCache = {\n ...mergedOptions.platform,\n _c: cache\n };\n return computePosition$1(reference, floating, {\n ...mergedOptions,\n platform: platformWithCache\n });\n};\n\nexport { arrow, autoPlacement, autoUpdate, computePosition, flip, hide, inline, limitShift, platform, shift, size };\n", "import { arrow as arrow$1, computePosition } from '@floating-ui/dom';\nexport { autoPlacement, autoUpdate, computePosition, detectOverflow, flip, getOverflowAncestors, hide, inline, limitShift, offset, platform, shift, size } from '@floating-ui/dom';\nimport * as React from 'react';\nimport { useLayoutEffect, useEffect } from 'react';\nimport * as ReactDOM from 'react-dom';\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * This wraps the core `arrow` middleware to allow React refs as the element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = options => {\n function isRef(value) {\n return {}.hasOwnProperty.call(value, 'current');\n }\n return {\n name: 'arrow',\n options,\n fn(state) {\n const {\n element,\n padding\n } = typeof options === 'function' ? options(state) : options;\n if (element && isRef(element)) {\n if (element.current != null) {\n return arrow$1({\n element: element.current,\n padding\n }).fn(state);\n }\n return {};\n }\n if (element) {\n return arrow$1({\n element,\n padding\n }).fn(state);\n }\n return {};\n }\n };\n};\n\nvar index = typeof document !== 'undefined' ? useLayoutEffect : useEffect;\n\n// Fork of `fast-deep-equal` that only does the comparisons we need and compares\n// functions\nfunction deepEqual(a, b) {\n if (a === b) {\n return true;\n }\n if (typeof a !== typeof b) {\n return false;\n }\n if (typeof a === 'function' && a.toString() === b.toString()) {\n return true;\n }\n let length;\n let i;\n let keys;\n if (a && b && typeof a === 'object') {\n if (Array.isArray(a)) {\n length = a.length;\n if (length !== b.length) return false;\n for (i = length; i-- !== 0;) {\n if (!deepEqual(a[i], b[i])) {\n return false;\n }\n }\n return true;\n }\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) {\n return false;\n }\n for (i = length; i-- !== 0;) {\n if (!{}.hasOwnProperty.call(b, keys[i])) {\n return false;\n }\n }\n for (i = length; i-- !== 0;) {\n const key = keys[i];\n if (key === '_owner' && a.$$typeof) {\n continue;\n }\n if (!deepEqual(a[key], b[key])) {\n return false;\n }\n }\n return true;\n }\n\n // biome-ignore lint/suspicious/noSelfCompare: in source\n return a !== a && b !== b;\n}\n\nfunction getDPR(element) {\n if (typeof window === 'undefined') {\n return 1;\n }\n const win = element.ownerDocument.defaultView || window;\n return win.devicePixelRatio || 1;\n}\n\nfunction roundByDPR(element, value) {\n const dpr = getDPR(element);\n return Math.round(value * dpr) / dpr;\n}\n\nfunction useLatestRef(value) {\n const ref = React.useRef(value);\n index(() => {\n ref.current = value;\n });\n return ref;\n}\n\n/**\n * Provides data to position a floating element.\n * @see https://floating-ui.com/docs/useFloating\n */\nfunction useFloating(options) {\n if (options === void 0) {\n options = {};\n }\n const {\n placement = 'bottom',\n strategy = 'absolute',\n middleware = [],\n platform,\n elements: {\n reference: externalReference,\n floating: externalFloating\n } = {},\n transform = true,\n whileElementsMounted,\n open\n } = options;\n const [data, setData] = React.useState({\n x: 0,\n y: 0,\n strategy,\n placement,\n middlewareData: {},\n isPositioned: false\n });\n const [latestMiddleware, setLatestMiddleware] = React.useState(middleware);\n if (!deepEqual(latestMiddleware, middleware)) {\n setLatestMiddleware(middleware);\n }\n const [_reference, _setReference] = React.useState(null);\n const [_floating, _setFloating] = React.useState(null);\n const setReference = React.useCallback(node => {\n if (node !== referenceRef.current) {\n referenceRef.current = node;\n _setReference(node);\n }\n }, []);\n const setFloating = React.useCallback(node => {\n if (node !== floatingRef.current) {\n floatingRef.current = node;\n _setFloating(node);\n }\n }, []);\n const referenceEl = externalReference || _reference;\n const floatingEl = externalFloating || _floating;\n const referenceRef = React.useRef(null);\n const floatingRef = React.useRef(null);\n const dataRef = React.useRef(data);\n const hasWhileElementsMounted = whileElementsMounted != null;\n const whileElementsMountedRef = useLatestRef(whileElementsMounted);\n const platformRef = useLatestRef(platform);\n const update = React.useCallback(() => {\n if (!referenceRef.current || !floatingRef.current) {\n return;\n }\n const config = {\n placement,\n strategy,\n middleware: latestMiddleware\n };\n if (platformRef.current) {\n config.platform = platformRef.current;\n }\n computePosition(referenceRef.current, floatingRef.current, config).then(data => {\n const fullData = {\n ...data,\n isPositioned: true\n };\n if (isMountedRef.current && !deepEqual(dataRef.current, fullData)) {\n dataRef.current = fullData;\n ReactDOM.flushSync(() => {\n setData(fullData);\n });\n }\n });\n }, [latestMiddleware, placement, strategy, platformRef]);\n index(() => {\n if (open === false && dataRef.current.isPositioned) {\n dataRef.current.isPositioned = false;\n setData(data => ({\n ...data,\n isPositioned: false\n }));\n }\n }, [open]);\n const isMountedRef = React.useRef(false);\n index(() => {\n isMountedRef.current = true;\n return () => {\n isMountedRef.current = false;\n };\n }, []);\n\n // biome-ignore lint/correctness/useExhaustiveDependencies: `hasWhileElementsMounted` is intentionally included.\n index(() => {\n if (referenceEl) referenceRef.current = referenceEl;\n if (floatingEl) floatingRef.current = floatingEl;\n if (referenceEl && floatingEl) {\n if (whileElementsMountedRef.current) {\n return whileElementsMountedRef.current(referenceEl, floatingEl, update);\n }\n update();\n }\n }, [referenceEl, floatingEl, update, whileElementsMountedRef, hasWhileElementsMounted]);\n const refs = React.useMemo(() => ({\n reference: referenceRef,\n floating: floatingRef,\n setReference,\n setFloating\n }), [setReference, setFloating]);\n const elements = React.useMemo(() => ({\n reference: referenceEl,\n floating: floatingEl\n }), [referenceEl, floatingEl]);\n const floatingStyles = React.useMemo(() => {\n const initialStyles = {\n position: strategy,\n left: 0,\n top: 0\n };\n if (!elements.floating) {\n return initialStyles;\n }\n const x = roundByDPR(elements.floating, data.x);\n const y = roundByDPR(elements.floating, data.y);\n if (transform) {\n return {\n ...initialStyles,\n transform: \"translate(\" + x + \"px, \" + y + \"px)\",\n ...(getDPR(elements.floating) >= 1.5 && {\n willChange: 'transform'\n })\n };\n }\n return {\n position: strategy,\n left: x,\n top: y\n };\n }, [strategy, transform, elements.floating, data.x, data.y]);\n return React.useMemo(() => ({\n ...data,\n update,\n refs,\n elements,\n floatingStyles\n }), [data, update, refs, elements, floatingStyles]);\n}\n\nexport { arrow, useFloating };\n", "import { generateUtilityClass } from '../generateUtilityClass';\nimport { generateUtilityClasses } from '../generateUtilityClasses';\nconst COMPONENT_NAME = 'Popup';\nexport function getPopupUtilityClass(slot) {\n return generateUtilityClass(COMPONENT_NAME, slot);\n}\nexport const popupClasses = generateUtilityClasses(COMPONENT_NAME, ['root', 'open']);", "'use client';\n\nimport * as React from 'react';\nimport { TransitionContext } from './TransitionContext';\n/**\n * Allows an element to be transitioned in and out.\n * The transition is triggerred by a `TransitionContext` placed above in the component tree.\n *\n * Demos:\n *\n * - [Transitions](https://mui.com/base-ui/react-transitions/#hooks)\n *\n * API:\n *\n * - [useTransitionStateManager API](https://mui.com/base-ui/react-transitions/hooks-api/#use-transition-state-manager)\n */\nexport function useTransitionStateManager() {\n const transitionContext = React.useContext(TransitionContext);\n if (!transitionContext) {\n throw new Error('Missing transition context');\n }\n const {\n registerTransition,\n requestedEnter,\n onExited\n } = transitionContext;\n React.useEffect(() => {\n return registerTransition();\n }, [registerTransition]);\n return {\n onExited,\n requestedEnter\n };\n}", "import * as React from 'react';\nexport const TransitionContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== 'production') {\n TransitionContext.displayName = 'TransitionContext';\n}", "'use client';\n\nimport * as React from 'react';\n/**\n * Allows child elements to be transitioned in and out.\n *\n * Demos:\n *\n * - [Transitions](https://mui.com/base-ui/react-transitions/#hooks)\n *\n * API:\n *\n * - [useTransitionTrigger API](https://mui.com/base-ui/react-transitions/hooks-api/#use-transition-trigger)\n */\nexport function useTransitionTrigger(requestEnter) {\n const [exitTransitionFinished, setExitTransitionFinished] = React.useState(true);\n const hasPendingExitTransition = React.useRef(false);\n const registeredTransitions = React.useRef(0);\n const [hasTransition, setHasTransition] = React.useState(false);\n const previousRequestEnter = React.useRef(requestEnter);\n React.useEffect(() => {\n if (!requestEnter &&\n // checking registeredTransitions.current instead of hasTransition to avoid this effect re-firing whenever hasTransition changes\n registeredTransitions.current > 0 &&\n // prevents waiting for a pending transition right after mounting\n previousRequestEnter.current !== requestEnter) {\n hasPendingExitTransition.current = true;\n setExitTransitionFinished(false);\n }\n previousRequestEnter.current = requestEnter;\n }, [requestEnter]);\n const handleExited = React.useCallback(() => {\n hasPendingExitTransition.current = false;\n setExitTransitionFinished(true);\n }, []);\n const registerTransition = React.useCallback(() => {\n registeredTransitions.current += 1;\n setHasTransition(true);\n return () => {\n registeredTransitions.current -= 1;\n if (registeredTransitions.current === 0) {\n setHasTransition(false);\n }\n };\n }, []);\n let hasExited;\n if (!hasTransition) {\n // If there are no transitions registered, the `exited` state is opposite of `requestEnter` immediately.\n hasExited = !requestEnter;\n } else if (requestEnter) {\n hasExited = false;\n } else {\n hasExited = !hasPendingExitTransition.current && exitTransitionFinished;\n }\n const contextValue = React.useMemo(() => ({\n requestedEnter: requestEnter,\n onExited: handleExited,\n registerTransition,\n hasExited\n }), [handleExited, requestEnter, registerTransition, hasExited]);\n return {\n contextValue,\n hasExited\n };\n}", "import * as React from 'react';\nexport const PopupContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== 'production') {\n PopupContext.displayName = 'PopupContext';\n}", "'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"children\", \"disabled\", \"label\", \"slots\", \"slotProps\", \"focusableWhenDisabled\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { useSlotProps } from '../utils';\nimport { useMenuButton } from '../useMenuButton';\nimport { unstable_composeClasses as composeClasses } from '../composeClasses';\nimport { useClassNamesOverride } from '../utils/ClassNameConfigurator';\nimport { getMenuButtonUtilityClass } from './menuButtonClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n active,\n disabled,\n open\n } = ownerState;\n const slots = {\n root: ['root', disabled && 'disabled', active && 'active', open && 'expanded']\n };\n return composeClasses(slots, useClassNamesOverride(getMenuButtonUtilityClass));\n};\n\n/**\n *\n * Demos:\n *\n * - [Menu](https://mui.com/base-ui/react-menu/)\n *\n * API:\n *\n * - [MenuButton API](https://mui.com/base-ui/react-menu/components-api/#menu-button)\n */\nconst MenuButton = /*#__PURE__*/React.forwardRef(function MenuButton(props, forwardedRef) {\n const {\n children,\n disabled = false,\n slots = {},\n slotProps = {},\n focusableWhenDisabled = false\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const {\n getRootProps,\n open,\n active\n } = useMenuButton({\n disabled,\n focusableWhenDisabled,\n rootRef: forwardedRef\n });\n const ownerState = _extends({}, props, {\n open,\n active,\n disabled,\n focusableWhenDisabled\n });\n const classes = useUtilityClasses(ownerState);\n const Root = slots.root || 'button';\n const rootProps = useSlotProps({\n elementType: Root,\n getSlotProps: getRootProps,\n externalForwardedProps: other,\n externalSlotProps: slotProps.root,\n additionalProps: {\n ref: forwardedRef,\n type: 'button'\n },\n ownerState,\n className: classes.root\n });\n return /*#__PURE__*/_jsx(Root, _extends({}, rootProps, {\n children: children\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? MenuButton.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 * @ignore\n */\n children: PropTypes.node,\n /**\n * Class name applied to the root element.\n */\n className: PropTypes.string,\n /**\n * If `true`, the component is disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, allows a disabled button to receive focus.\n * @default false\n */\n focusableWhenDisabled: PropTypes.bool,\n /**\n * Label of the button\n */\n label: PropTypes.string,\n /**\n * The components used for each slot inside the MenuButton.\n * Either a string to use a HTML element or a component.\n * @default {}\n */\n slotProps: PropTypes.shape({\n root: PropTypes.oneOfType([PropTypes.func, PropTypes.object])\n }),\n /**\n * The props used for each slot inside the MenuButton.\n * @default {}\n */\n slots: PropTypes.shape({\n root: PropTypes.elementType\n })\n} : void 0;\nexport { MenuButton };", "'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { unstable_useForkRef as useForkRef } from '@mui/utils';\nimport { DropdownContext } from '../useDropdown/DropdownContext';\nimport { DropdownActionTypes } from '../useDropdown/useDropdown.types';\nimport { useButton } from '../useButton/useButton';\nimport { combineHooksSlotProps } from '../utils/combineHooksSlotProps';\nimport { extractEventHandlers } from '../utils';\n\n/**\n *\n * Demos:\n *\n * - [Menu](https://mui.com/base-ui/react-menu/#hooks)\n *\n * API:\n *\n * - [useMenuButton API](https://mui.com/base-ui/react-menu/hooks-api/#use-menu-button)\n */\nexport function useMenuButton(parameters = {}) {\n const {\n disabled = false,\n focusableWhenDisabled,\n rootRef: externalRef\n } = parameters;\n const menuContext = React.useContext(DropdownContext);\n if (menuContext === null) {\n throw new Error('useMenuButton: no menu context available.');\n }\n const {\n state,\n dispatch,\n registerTrigger,\n popupId\n } = menuContext;\n const {\n getRootProps: getButtonRootProps,\n rootRef: buttonRootRef,\n active\n } = useButton({\n disabled,\n focusableWhenDisabled,\n rootRef: externalRef\n });\n const handleRef = useForkRef(buttonRootRef, registerTrigger);\n const createHandleClick = otherHandlers => event => {\n var _otherHandlers$onClic;\n (_otherHandlers$onClic = otherHandlers.onClick) == null || _otherHandlers$onClic.call(otherHandlers, event);\n if (event.defaultMuiPrevented) {\n return;\n }\n dispatch({\n type: DropdownActionTypes.toggle,\n event\n });\n };\n const createHandleKeyDown = otherHandlers => event => {\n var _otherHandlers$onKeyD;\n (_otherHandlers$onKeyD = otherHandlers.onKeyDown) == null || _otherHandlers$onKeyD.call(otherHandlers, event);\n if (event.defaultMuiPrevented) {\n return;\n }\n if (event.key === 'ArrowDown' || event.key === 'ArrowUp') {\n event.preventDefault();\n dispatch({\n type: DropdownActionTypes.open,\n event\n });\n }\n };\n const getOwnRootProps = (otherHandlers = {}) => ({\n onClick: createHandleClick(otherHandlers),\n onKeyDown: createHandleKeyDown(otherHandlers)\n });\n const getRootProps = (externalProps = {}) => {\n const externalEventHandlers = extractEventHandlers(externalProps);\n const getCombinedProps = combineHooksSlotProps(getOwnRootProps, getButtonRootProps);\n return _extends({\n 'aria-haspopup': 'menu',\n 'aria-expanded': state.open,\n 'aria-controls': popupId\n }, externalProps, externalEventHandlers, getCombinedProps(externalEventHandlers), {\n tabIndex: 0,\n // this is needed to make the button focused after click in Safari\n ref: handleRef\n });\n };\n return {\n active,\n getRootProps,\n open: state.open,\n rootRef: handleRef\n };\n}", "import { generateUtilityClass } from '../generateUtilityClass';\nimport { generateUtilityClasses } from '../generateUtilityClasses';\nconst COMPONENT_NAME = 'MenuButton';\nexport function getMenuButtonUtilityClass(slot) {\n return generateUtilityClass(COMPONENT_NAME, slot);\n}\nexport const menuButtonClasses = generateUtilityClasses(COMPONENT_NAME, ['root', 'active', 'disabled', 'expanded']);", "'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"children\", \"disabled\", \"label\", \"id\", \"slotProps\", \"slots\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { getMenuItemUtilityClass } from './menuItemClasses';\nimport { useMenuItem, useMenuItemContextStabilizer } from '../useMenuItem';\nimport { unstable_composeClasses as composeClasses } from '../composeClasses';\nimport { useSlotProps } from '../utils/useSlotProps';\nimport { useClassNamesOverride } from '../utils/ClassNameConfigurator';\nimport { ListContext } from '../useList';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction useUtilityClasses(ownerState) {\n const {\n disabled,\n focusVisible\n } = ownerState;\n const slots = {\n root: ['root', disabled && 'disabled', focusVisible && 'focusVisible']\n };\n return composeClasses(slots, useClassNamesOverride(getMenuItemUtilityClass));\n}\nconst InnerMenuItem = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function MenuItem(props, forwardedRef) {\n var _slots$root;\n const {\n children,\n disabled: disabledProp = false,\n label,\n id,\n slotProps = {},\n slots = {}\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const {\n getRootProps,\n disabled,\n focusVisible,\n highlighted\n } = useMenuItem({\n id,\n disabled: disabledProp,\n rootRef: forwardedRef,\n label\n });\n const ownerState = _extends({}, props, {\n disabled,\n focusVisible,\n highlighted\n });\n const classes = useUtilityClasses(ownerState);\n const Root = (_slots$root = slots.root) != null ? _slots$root : 'li';\n const rootProps = useSlotProps({\n elementType: Root,\n getSlotProps: getRootProps,\n externalSlotProps: slotProps.root,\n externalForwardedProps: other,\n className: classes.root,\n ownerState\n });\n return /*#__PURE__*/_jsx(Root, _extends({}, rootProps, {\n children: children\n }));\n}));\n\n/**\n * An unstyled menu item to be used within a Menu.\n *\n * Demos:\n *\n * - [Menu](https://mui.com/base-ui/react-menu/)\n *\n * API:\n *\n * - [MenuItem API](https://mui.com/base-ui/react-menu/components-api/#menu-item)\n */\nconst MenuItem = /*#__PURE__*/React.forwardRef(function MenuItem(props, ref) {\n const {\n id: idProp\n } = props;\n\n // This wrapper component is used as a performance optimization.\n // `useMenuItemContextStabilizer` ensures that the context value\n // is stable across renders, so that the actual MenuItem re-renders\n // only when it needs to.\n const {\n contextValue,\n id\n } = useMenuItemContextStabilizer(idProp);\n return /*#__PURE__*/_jsx(ListContext.Provider, {\n value: contextValue,\n children: /*#__PURE__*/_jsx(InnerMenuItem, _extends({}, props, {\n id: id,\n ref: ref\n }))\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? MenuItem.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 * @ignore\n */\n children: PropTypes.node,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * If `true`, the menu item will be disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, the menu item won't receive focus when the mouse moves over it.\n *\n * @default false\n */\n disableFocusOnHover: PropTypes.bool,\n /**\n * A text representation of the menu item's content.\n * Used for keyboard text navigation matching.\n */\n label: PropTypes.string,\n /**\n * @ignore\n */\n onClick: PropTypes.func,\n /**\n * The props used for each slot inside the MenuItem.\n * @default {}\n */\n slotProps: PropTypes.shape({\n root: PropTypes.oneOfType([PropTypes.func, PropTypes.object])\n }),\n /**\n * The components used for each slot inside the MenuItem.\n * Either a string to use a HTML element or a component.\n * @default {}\n */\n slots: PropTypes.shape({\n root: PropTypes.elementType\n })\n} : void 0;\nexport { MenuItem };", "import { generateUtilityClass } from '../generateUtilityClass';\nimport { generateUtilityClasses } from '../generateUtilityClasses';\nconst COMPONENT_NAME = 'MenuItem';\nexport function getMenuItemUtilityClass(slot) {\n return generateUtilityClass(COMPONENT_NAME, slot);\n}\nexport const menuItemClasses = generateUtilityClasses(COMPONENT_NAME, ['root', 'disabled', 'focusVisible']);", "'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { unstable_useId as useId, unstable_useForkRef as useForkRef } from '@mui/utils';\nimport { useButton } from '../useButton';\nimport { useListItem } from '../useList';\nimport { DropdownActionTypes } from '../useDropdown';\nimport { DropdownContext } from '../useDropdown/DropdownContext';\nimport { combineHooksSlotProps } from '../utils/combineHooksSlotProps';\nimport { useCompoundItem } from '../useCompound';\nimport { extractEventHandlers } from '../utils/extractEventHandlers';\nfunction idGenerator(existingKeys) {\n return `menu-item-${existingKeys.size}`;\n}\nconst FALLBACK_MENU_CONTEXT = {\n dispatch: () => {},\n popupId: '',\n registerPopup: () => {},\n registerTrigger: () => {},\n state: {\n open: true,\n changeReason: null\n },\n triggerElement: null\n};\n\n/**\n *\n * Demos:\n *\n * - [Menu](https://mui.com/base-ui/react-menu/#hooks)\n *\n * API:\n *\n * - [useMenuItem API](https://mui.com/base-ui/react-menu/hooks-api/#use-menu-item)\n */\nexport function useMenuItem(params) {\n var _React$useContext;\n const {\n disabled = false,\n id: idParam,\n rootRef: externalRef,\n label,\n disableFocusOnHover = false\n } = params;\n const id = useId(idParam);\n const itemRef = React.useRef(null);\n const itemMetadata = React.useMemo(() => ({\n disabled,\n id: id != null ? id : '',\n label,\n ref: itemRef\n }), [disabled, id, label]);\n const {\n dispatch\n } = (_React$useContext = React.useContext(DropdownContext)) != null ? _React$useContext : FALLBACK_MENU_CONTEXT;\n const {\n getRootProps: getListRootProps,\n highlighted\n } = useListItem({\n item: id,\n handlePointerOverEvents: !disableFocusOnHover\n });\n const {\n index,\n totalItemCount\n } = useCompoundItem(id != null ? id : idGenerator, itemMetadata);\n const {\n getRootProps: getButtonProps,\n focusVisible,\n rootRef: buttonRefHandler\n } = useButton({\n disabled,\n focusableWhenDisabled: true\n });\n const handleRef = useForkRef(buttonRefHandler, externalRef, itemRef);\n React.useDebugValue({\n id,\n highlighted,\n disabled,\n label\n });\n const createHandleClick = otherHandlers => event => {\n var _otherHandlers$onClic;\n (_otherHandlers$onClic = otherHandlers.onClick) == null || _otherHandlers$onClic.call(otherHandlers, event);\n if (event.defaultMuiPrevented) {\n return;\n }\n dispatch({\n type: DropdownActionTypes.close,\n event\n });\n };\n const getOwnHandlers = (otherHandlers = {}) => _extends({}, otherHandlers, {\n onClick: createHandleClick(otherHandlers)\n });\n function getRootProps(externalProps = {}) {\n const externalEventHandlers = extractEventHandlers(externalProps);\n const getCombinedRootProps = combineHooksSlotProps(getOwnHandlers, combineHooksSlotProps(getButtonProps, getListRootProps));\n return _extends({}, externalProps, externalEventHandlers, getCombinedRootProps(externalEventHandlers), {\n id,\n ref: handleRef,\n role: 'menuitem'\n });\n }\n\n // If `id` is undefined (during SSR in React < 18), we fall back to rendering a simplified menu item\n // which does not have access to infortmation about its position or highlighted state.\n if (id === undefined) {\n return {\n getRootProps,\n disabled: false,\n focusVisible,\n highlighted: false,\n index: -1,\n totalItemCount: 0,\n rootRef: handleRef\n };\n }\n return {\n getRootProps,\n disabled,\n focusVisible,\n highlighted,\n index,\n totalItemCount,\n rootRef: handleRef\n };\n}", "'use client';\n\nimport * as React from 'react';\nimport { unstable_useId as useId } from '@mui/utils';\nimport { ListContext } from '../useList';\n\n/**\n * Stabilizes the ListContext value for the MenuItem component, so it doesn't change when sibling items update.\n *\n * @param id The id of the MenuItem. If undefined, it will be generated with useId.\n * @returns The stable ListContext value and the id of the MenuItem.\n *\n * Demos:\n *\n * - [Menu](https://mui.com/base-ui/react-menu/#hooks)\n *\n * API:\n *\n * - [useMenuItemContextStabilizer API](https://mui.com/base-ui/react-menu/hooks-api/#use-menu-item-context-stabilizer)\n */\nexport function useMenuItemContextStabilizer(id) {\n const listContext = React.useContext(ListContext);\n if (!listContext) {\n throw new Error('MenuItem: ListContext was not found.');\n }\n const itemId = useId(id);\n const {\n getItemState,\n dispatch\n } = listContext;\n let itemState;\n if (itemId != null) {\n itemState = getItemState(itemId);\n } else {\n itemState = {\n focusable: true,\n highlighted: false,\n selected: false\n };\n }\n const {\n highlighted,\n selected,\n focusable\n } = itemState;\n\n // The local version of getItemState can be only called with the current Option's value.\n // It doesn't make much sense to render an Option depending on other Options' state anyway.\n const localGetItemState = React.useCallback(itemValue => {\n if (itemValue !== itemId) {\n throw new Error(['Base UI MenuItem: Tried to access the state of another MenuItem.', `itemValue: ${itemValue} | id: ${itemId}`, 'This is unsupported when the MenuItem uses the MenuItemContextStabilizer as a performance optimization.'].join('/n'));\n }\n return {\n highlighted,\n selected,\n focusable\n };\n }, [highlighted, selected, focusable, itemId]);\n\n // Create a local (per MenuItem) instance of the ListContext that changes only when\n // the getItemState's return value changes.\n // This makes MenuItems re-render only when their state actually change, not when any MenuItem's state changes.\n const localContextValue = React.useMemo(() => ({\n dispatch,\n getItemState: localGetItemState\n }), [dispatch, localGetItemState]);\n return {\n contextValue: localContextValue,\n id: itemId\n };\n}", "'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"children\", \"closeAfterTransition\", \"container\", \"disableAutoFocus\", \"disableEnforceFocus\", \"disableEscapeKeyDown\", \"disablePortal\", \"disableRestoreFocus\", \"disableScrollLock\", \"hideBackdrop\", \"keepMounted\", \"onBackdropClick\", \"onClose\", \"onKeyDown\", \"open\", \"onTransitionEnter\", \"onTransitionExited\", \"slotProps\", \"slots\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { elementAcceptingRef, HTMLElementType } from '@mui/utils';\nimport { useSlotProps } from '../utils';\nimport { useClassNamesOverride } from '../utils/ClassNameConfigurator';\nimport { unstable_composeClasses as composeClasses } from '../composeClasses';\nimport { Portal } from '../Portal';\nimport { unstable_useModal as useModal } from '../unstable_useModal';\nimport { FocusTrap } from '../FocusTrap';\nimport { getModalUtilityClass } from './modalClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n open,\n exited\n } = ownerState;\n const slots = {\n root: ['root', !open && exited && 'hidden'],\n backdrop: ['backdrop']\n };\n return composeClasses(slots, useClassNamesOverride(getModalUtilityClass));\n};\n\n/**\n * Modal is a lower-level construct that is leveraged by the following components:\n *\n * * [Dialog](https://mui.com/material-ui/api/dialog/)\n * * [Drawer](https://mui.com/material-ui/api/drawer/)\n * * [Menu](https://mui.com/material-ui/api/menu/)\n * * [Popover](https://mui.com/material-ui/api/popover/)\n *\n * If you are creating a modal dialog, you probably want to use the [Dialog](https://mui.com/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 *\n * Demos:\n *\n * - [Modal](https://mui.com/base-ui/react-modal/)\n *\n * API:\n *\n * - [Modal API](https://mui.com/base-ui/react-modal/components-api/#modal)\n */\nconst Modal = /*#__PURE__*/React.forwardRef(function Modal(props, forwardedRef) {\n var _slots$root;\n const {\n children,\n closeAfterTransition = false,\n container,\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 open,\n slotProps = {},\n slots = {}\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const propsWithDefaults = _extends({}, 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(_extends({}, propsWithDefaults, {\n rootRef: forwardedRef\n }));\n const ownerState = _extends({}, propsWithDefaults, {\n exited,\n hasTransition\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 Root = (_slots$root = slots.root) != null ? _slots$root : 'div';\n const rootProps = useSlotProps({\n elementType: Root,\n externalSlotProps: slotProps.root,\n externalForwardedProps: other,\n getSlotProps: getRootProps,\n className: classes.root,\n ownerState\n });\n const BackdropComponent = slots.backdrop;\n const backdropProps = useSlotProps({\n elementType: BackdropComponent,\n externalSlotProps: slotProps.backdrop,\n getSlotProps: otherHandlers => {\n return getBackdropProps(_extends({}, otherHandlers, {\n onClick: e => {\n if (onBackdropClick) {\n onBackdropClick(e);\n }\n if (otherHandlers != null && otherHandlers.onClick) {\n otherHandlers.onClick(e);\n }\n }\n }));\n },\n className: classes.backdrop,\n ownerState\n });\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(Root, _extends({}, rootProps, {\n children: [!hideBackdrop && BackdropComponent ? /*#__PURE__*/_jsx(BackdropComponent, _extends({}, backdropProps)) : 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 TypeScript types and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * A single child content element.\n */\n children: elementAcceptingRef.isRequired,\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 * 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} : void 0;\nexport { Modal };", "'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\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 '../utils';\nimport { ModalManager, ariaHidden } from './ModalManager';\nfunction getContainer(container) {\n return typeof container === 'function' ? container() : container;\n}\nfunction getHasTransition(children) {\n return children ? children.props.hasOwnProperty('in') : false;\n}\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 defaultManager = 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 */\nexport function useModal(parameters) {\n const {\n container,\n disableEscapeKeyDown = false,\n disableScrollLock = false,\n // @ts-ignore internal logic - Base UI supports the manager as a prop too\n manager = defaultManager,\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 = React.useCallback(() => manager.isTopModal(getModal()), [manager]);\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, manager]);\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 var _otherHandlers$onKeyD;\n (_otherHandlers$onKeyD = otherHandlers.onKeyDown) == null || _otherHandlers$onKeyD.call(otherHandlers, 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 var _otherHandlers$onClic;\n (_otherHandlers$onClic = otherHandlers.onClick) == null || _otherHandlers$onClic.call(otherHandlers, 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 = _extends({}, propsEventHandlers, otherHandlers);\n return _extends({\n role: 'presentation'\n }, externalEventHandlers, {\n onKeyDown: createHandleKeyDown(externalEventHandlers),\n ref: handleRef\n });\n };\n const getBackdropProps = (otherHandlers = {}) => {\n const externalEventHandlers = otherHandlers;\n return _extends({\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 == null ? void 0 : children.props.onEnter),\n onExited: createChainedFunction(handleExited, children == null ? void 0 : children.props.onExited)\n };\n };\n return {\n getRootProps,\n getBackdropProps,\n getTransitionProps,\n rootRef: handleRef,\n portalRef: handlePortalRef,\n isTopModal,\n exited,\n hasTransition\n };\n}", "import { generateUtilityClasses } from '../generateUtilityClasses';\nimport { generateUtilityClass } from '../generateUtilityClass';\nconst COMPONENT_NAME = 'Modal';\nexport function getModalUtilityClass(slot) {\n return generateUtilityClass(COMPONENT_NAME, slot);\n}\nexport const modalClasses = generateUtilityClasses(COMPONENT_NAME, ['root', 'hidden', 'backdrop']);", "'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"className\", \"defaultValue\", \"disabled\", \"endAdornment\", \"error\", \"id\", \"max\", \"min\", \"onBlur\", \"onInputChange\", \"onFocus\", \"onChange\", \"placeholder\", \"required\", \"readOnly\", \"shiftMultiplier\", \"startAdornment\", \"step\", \"value\", \"slotProps\", \"slots\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { getNumberInputUtilityClass } from './numberInputClasses';\nimport { unstable_useNumberInput as useNumberInput } from '../unstable_useNumberInput';\nimport { unstable_composeClasses as composeClasses } from '../composeClasses';\nimport { useSlotProps } from '../utils';\nimport { useClassNamesOverride } from '../utils/ClassNameConfigurator';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n disabled,\n error,\n focused,\n readOnly,\n formControlContext,\n isIncrementDisabled,\n isDecrementDisabled,\n startAdornment,\n endAdornment\n } = ownerState;\n const slots = {\n root: ['root', disabled && 'disabled', error && 'error', focused && 'focused', readOnly && 'readOnly', Boolean(formControlContext) && 'formControl', Boolean(startAdornment) && 'adornedStart', Boolean(endAdornment) && 'adornedEnd'],\n input: ['input', disabled && 'disabled', readOnly && 'readOnly'],\n incrementButton: ['incrementButton', isIncrementDisabled && 'disabled'],\n decrementButton: ['decrementButton', isDecrementDisabled && 'disabled']\n };\n return composeClasses(slots, useClassNamesOverride(getNumberInputUtilityClass));\n};\n\n/**\n *\n * Demos:\n *\n * - [Number Input](https://mui.com/base-ui/react-number-input/)\n *\n * API:\n *\n * - [NumberInput API](https://mui.com/base-ui/react-number-input/components-api/#number-input)\n */\nconst NumberInput = /*#__PURE__*/React.forwardRef(function NumberInput(props, forwardedRef) {\n var _slots$root, _slots$input, _slots$incrementButto, _slots$decrementButto;\n const {\n className,\n defaultValue,\n disabled,\n endAdornment,\n error,\n id,\n max,\n min,\n onBlur,\n onInputChange,\n onFocus,\n onChange,\n placeholder,\n required,\n readOnly = false,\n shiftMultiplier,\n startAdornment,\n step,\n value,\n slotProps = {},\n slots = {}\n } = props,\n rest = _objectWithoutPropertiesLoose(props, _excluded);\n const {\n getRootProps,\n getInputProps,\n getIncrementButtonProps,\n getDecrementButtonProps,\n focused,\n error: errorState,\n disabled: disabledState,\n formControlContext,\n isIncrementDisabled,\n isDecrementDisabled\n } = useNumberInput({\n min,\n max,\n step,\n shiftMultiplier,\n defaultValue,\n disabled,\n error,\n onFocus,\n onInputChange,\n onBlur,\n onChange,\n required,\n readOnly,\n value,\n inputId: id,\n componentName: 'NumberInput'\n });\n const ownerState = _extends({}, props, {\n disabled: disabledState,\n error: errorState,\n focused,\n readOnly,\n formControlContext,\n isIncrementDisabled,\n isDecrementDisabled\n });\n const classes = useUtilityClasses(ownerState);\n const propsForwardedToInputSlot = {\n placeholder\n };\n const Root = (_slots$root = slots.root) != null ? _slots$root : 'div';\n const rootProps = useSlotProps({\n elementType: Root,\n getSlotProps: getRootProps,\n externalSlotProps: slotProps.root,\n externalForwardedProps: rest,\n additionalProps: {\n ref: forwardedRef\n },\n ownerState,\n className: [classes.root, className]\n });\n const Input = (_slots$input = slots.input) != null ? _slots$input : 'input';\n const inputProps = useSlotProps({\n elementType: Input,\n getSlotProps: otherHandlers => getInputProps(_extends({}, propsForwardedToInputSlot, otherHandlers)),\n externalSlotProps: slotProps.input,\n ownerState,\n className: classes.input\n });\n const IncrementButton = (_slots$incrementButto = slots.incrementButton) != null ? _slots$incrementButto : 'button';\n const incrementButtonProps = useSlotProps({\n elementType: IncrementButton,\n getSlotProps: getIncrementButtonProps,\n externalSlotProps: slotProps.incrementButton,\n ownerState,\n className: classes.incrementButton\n });\n const DecrementButton = (_slots$decrementButto = slots.decrementButton) != null ? _slots$decrementButto : 'button';\n const decrementButtonProps = useSlotProps({\n elementType: DecrementButton,\n getSlotProps: getDecrementButtonProps,\n externalSlotProps: slotProps.decrementButton,\n ownerState,\n className: classes.decrementButton\n });\n return /*#__PURE__*/_jsxs(Root, _extends({}, rootProps, {\n children: [/*#__PURE__*/_jsx(DecrementButton, _extends({}, decrementButtonProps)), /*#__PURE__*/_jsx(IncrementButton, _extends({}, incrementButtonProps)), startAdornment, /*#__PURE__*/_jsx(Input, _extends({}, inputProps)), endAdornment]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? NumberInput.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 * @ignore\n */\n children: PropTypes.node,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The default value. Use when the component is not controlled.\n */\n defaultValue: PropTypes.number,\n /**\n * If `true`, the component is disabled.\n * The prop defaults to the value (`false`) inherited from the parent FormControl component.\n */\n disabled: PropTypes.bool,\n /**\n * Trailing adornment for this input.\n */\n endAdornment: PropTypes.node,\n /**\n * If `true`, the `input` will indicate an error by setting the `aria-invalid` attribute on the input and the `baseui--error` class on the root element.\n */\n error: PropTypes.bool,\n /**\n * The id of the `input` element.\n */\n id: PropTypes.string,\n /**\n * The maximum value.\n */\n max: PropTypes.number,\n /**\n * The minimum value.\n */\n min: PropTypes.number,\n /**\n * @ignore\n */\n onBlur: PropTypes.func,\n /**\n * Callback fired after the value is clamped and changes - when the `input` is blurred or when\n * the stepper buttons are triggered.\n * Called with `undefined` when the value is unset.\n *\n * @param {React.FocusEvent<HTMLInputElement>|React.PointerEvent|React.KeyboardEvent} event The event source of the callback\n * @param {number|undefined} value The new value of the component\n */\n onChange: PropTypes.func,\n /**\n * @ignore\n */\n onFocus: PropTypes.func,\n /**\n * Callback fired when the `input` value changes after each keypress, before clamping is applied.\n * Note that `event.target.value` may contain values that fall outside of `min` and `max` or\n * are otherwise \"invalid\".\n *\n * @param {React.ChangeEvent<HTMLInputElement>} event The event source of the callback.\n */\n onInputChange: PropTypes.func,\n /**\n * The short hint displayed in the `input` before the user enters a value.\n */\n placeholder: PropTypes.string,\n /**\n * If `true`, the `input` element becomes read-only. The stepper buttons remain active,\n * with the addition that they are now keyboard focusable.\n * @default false\n */\n readOnly: PropTypes.bool,\n /**\n * If `true`, the `input` element is required.\n * The prop defaults to the value (`false`) inherited from the parent FormControl component.\n */\n required: PropTypes.bool,\n /**\n * Multiplier applied to `step` if the shift key is held while incrementing\n * or decrementing the value. Defaults to `10`.\n */\n shiftMultiplier: PropTypes.number,\n /**\n * The props used for each slot inside the NumberInput.\n * @default {}\n */\n slotProps: PropTypes.shape({\n decrementButton: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n incrementButton: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n input: 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 InputBase.\n * Either a string to use a HTML element or a component.\n * @default {}\n */\n slots: PropTypes.shape({\n decrementButton: PropTypes.elementType,\n incrementButton: PropTypes.elementType,\n input: PropTypes.elementType,\n root: PropTypes.elementType\n }),\n /**\n * Leading adornment for this input.\n */\n startAdornment: PropTypes.node,\n /**\n * The amount that the value changes on each increment or decrement.\n */\n step: PropTypes.number,\n /**\n * The current value. Use when the component is controlled.\n * @default null\n */\n value: PropTypes.number\n} : void 0;\nexport { NumberInput };", "import { generateUtilityClass } from '../generateUtilityClass';\nimport { generateUtilityClasses } from '../generateUtilityClasses';\nconst COMPONENT_NAME = 'NumberInput';\nexport function getNumberInputUtilityClass(slot) {\n return generateUtilityClass(COMPONENT_NAME, slot);\n}\nexport const numberInputClasses = generateUtilityClasses(COMPONENT_NAME, ['root', 'formControl', 'focused', 'disabled', 'readOnly', 'error', 'input', 'incrementButton', 'decrementButton', 'adornedStart', 'adornedEnd']);", "'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _formatMuiErrorMessage from \"@mui/utils/formatMuiErrorMessage\";\nimport * as React from 'react';\nimport { unstable_useForkRef as useForkRef, unstable_useId as useId } from '@mui/utils';\nimport { extractEventHandlers } from '../utils/extractEventHandlers';\nimport { useControllableReducer } from '../utils/useControllableReducer';\nimport { useFormControlContext } from '../FormControl';\nimport { NumberInputActionTypes } from './numberInputAction.types';\nimport { numberInputReducer } from './numberInputReducer';\nimport { isNumber } from './utils';\nconst STEP_KEYS = ['ArrowUp', 'ArrowDown', 'PageUp', 'PageDown'];\nconst SUPPORTED_KEYS = [...STEP_KEYS, 'Home', 'End'];\nexport function getInputValueAsString(v) {\n return v ? String(v.trim()) : String(v);\n}\n\n/**\n *\n * Demos:\n *\n * - [Number Input](https://mui.com/base-ui/react-number-input/#hook)\n *\n * API:\n *\n * - [useNumberInput API](https://mui.com/base-ui/react-number-input/hooks-api/#use-number-input)\n */\nexport function useNumberInput(parameters) {\n var _ref;\n const {\n min,\n max,\n step,\n shiftMultiplier = 10,\n defaultValue: defaultValueProp,\n disabled: disabledProp = false,\n error: errorProp = false,\n onBlur,\n onInputChange,\n onFocus,\n onChange,\n required: requiredProp = false,\n readOnly: readOnlyProp = false,\n value: valueProp,\n inputRef: inputRefProp,\n inputId: inputIdProp,\n componentName = 'useNumberInput'\n } = parameters;\n\n // TODO: make it work with FormControl\n const formControlContext = useFormControlContext();\n const {\n current: isControlled\n } = React.useRef(valueProp != null);\n const handleInputRefWarning = React.useCallback(instance => {\n if (process.env.NODE_ENV !== 'production') {\n if (instance && instance.nodeName !== 'INPUT' && !instance.focus) {\n console.error(['MUI: You have provided a `slots.input` to the input component', 'that does not correctly handle the `ref` prop.', 'Make sure the `ref` prop is called with a HTMLInputElement.'].join('\\n'));\n }\n }\n }, []);\n const inputRef = React.useRef(null);\n const handleInputRef = useForkRef(inputRef, inputRefProp, handleInputRefWarning);\n const inputId = useId(inputIdProp);\n const [focused, setFocused] = React.useState(false);\n const handleStateChange = React.useCallback((event, field, fieldValue, reason) => {\n if (field === 'value' && typeof fieldValue !== 'string') {\n switch (reason) {\n // only a blur event will dispatch `numberInput:clamp`\n case 'numberInput:clamp':\n onChange == null || onChange(event, fieldValue);\n break;\n case 'numberInput:increment':\n case 'numberInput:decrement':\n case 'numberInput:incrementToMax':\n case 'numberInput:decrementToMin':\n onChange == null || onChange(event, fieldValue);\n break;\n default:\n break;\n }\n }\n }, [onChange]);\n const numberInputActionContext = React.useMemo(() => {\n return {\n min,\n max,\n step,\n shiftMultiplier,\n getInputValueAsString\n };\n }, [min, max, step, shiftMultiplier]);\n const initialValue = (_ref = valueProp != null ? valueProp : defaultValueProp) != null ? _ref : null;\n const initialState = {\n value: initialValue,\n inputValue: initialValue ? String(initialValue) : ''\n };\n const controlledState = React.useMemo(() => ({\n value: valueProp\n }), [valueProp]);\n const [state, dispatch] = useControllableReducer({\n reducer: numberInputReducer,\n controlledProps: controlledState,\n initialState,\n onStateChange: handleStateChange,\n actionContext: React.useMemo(() => numberInputActionContext, [numberInputActionContext]),\n componentName\n });\n const {\n value,\n inputValue\n } = state;\n React.useEffect(() => {\n if (!formControlContext && disabledProp && focused) {\n setFocused(false);\n onBlur == null || onBlur();\n }\n }, [formControlContext, disabledProp, focused, onBlur]);\n React.useEffect(() => {\n if (isControlled && isNumber(value)) {\n dispatch({\n type: NumberInputActionTypes.resetInputValue\n });\n }\n }, [value, dispatch, isControlled]);\n const createHandleFocus = otherHandlers => event => {\n var _otherHandlers$onFocu;\n (_otherHandlers$onFocu = otherHandlers.onFocus) == null || _otherHandlers$onFocu.call(otherHandlers, event);\n if (event.defaultMuiPrevented || event.defaultPrevented) {\n return;\n }\n if (formControlContext && formControlContext.onFocus) {\n var _formControlContext$o;\n formControlContext == null || (_formControlContext$o = formControlContext.onFocus) == null || _formControlContext$o.call(formControlContext);\n }\n setFocused(true);\n };\n const createHandleInputChange = otherHandlers => event => {\n var _formControlContext$o2, _otherHandlers$onInpu;\n if (!isControlled && event.target === null) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: Expected valid input target. Did you use a custom \\`slots.input\\` and forget to forward refs? See https://mui.com/r/input-component-ref-interface for more info.` : _formatMuiErrorMessage(17));\n }\n formControlContext == null || (_formControlContext$o2 = formControlContext.onChange) == null || _formControlContext$o2.call(formControlContext, event);\n (_otherHandlers$onInpu = otherHandlers.onInputChange) == null || _otherHandlers$onInpu.call(otherHandlers, event);\n if (event.defaultMuiPrevented || event.defaultPrevented) {\n return;\n }\n dispatch({\n type: NumberInputActionTypes.inputChange,\n event,\n inputValue: event.currentTarget.value\n });\n };\n const createHandleBlur = otherHandlers => event => {\n var _otherHandlers$onBlur;\n formControlContext == null || formControlContext.onBlur();\n (_otherHandlers$onBlur = otherHandlers.onBlur) == null || _otherHandlers$onBlur.call(otherHandlers, event);\n if (event.defaultMuiPrevented || event.defaultPrevented) {\n return;\n }\n dispatch({\n type: NumberInputActionTypes.clamp,\n event,\n inputValue: event.currentTarget.value\n });\n setFocused(false);\n };\n const createHandleClick = otherHandlers => event => {\n var _otherHandlers$onClic;\n (_otherHandlers$onClic = otherHandlers.onClick) == null || _otherHandlers$onClic.call(otherHandlers, event);\n if (event.defaultMuiPrevented || event.defaultPrevented) {\n return;\n }\n if (inputRef.current && event.currentTarget === event.target) {\n inputRef.current.focus();\n }\n };\n const handleStep = direction => event => {\n const applyMultiplier = Boolean(event.shiftKey);\n const actionType = {\n up: NumberInputActionTypes.increment,\n down: NumberInputActionTypes.decrement\n }[direction];\n dispatch({\n type: actionType,\n event,\n applyMultiplier\n });\n };\n const createHandleKeyDown = otherHandlers => event => {\n var _otherHandlers$onKeyD;\n (_otherHandlers$onKeyD = otherHandlers.onKeyDown) == null || _otherHandlers$onKeyD.call(otherHandlers, event);\n if (event.defaultMuiPrevented || event.defaultPrevented) {\n return;\n }\n\n // this prevents unintended page scrolling\n if (SUPPORTED_KEYS.includes(event.key)) {\n event.preventDefault();\n }\n switch (event.key) {\n case 'ArrowUp':\n dispatch({\n type: NumberInputActionTypes.increment,\n event,\n applyMultiplier: !!event.shiftKey\n });\n break;\n case 'ArrowDown':\n dispatch({\n type: NumberInputActionTypes.decrement,\n event,\n applyMultiplier: !!event.shiftKey\n });\n break;\n case 'PageUp':\n dispatch({\n type: NumberInputActionTypes.increment,\n event,\n applyMultiplier: true\n });\n break;\n case 'PageDown':\n dispatch({\n type: NumberInputActionTypes.decrement,\n event,\n applyMultiplier: true\n });\n break;\n case 'Home':\n dispatch({\n type: NumberInputActionTypes.incrementToMax,\n event\n });\n break;\n case 'End':\n dispatch({\n type: NumberInputActionTypes.decrementToMin,\n event\n });\n break;\n default:\n break;\n }\n };\n const getRootProps = (externalProps = {}) => {\n const propsEventHandlers = extractEventHandlers(parameters, [\n // these are handled by the input slot\n 'onBlur', 'onInputChange', 'onFocus', 'onChange']);\n const externalEventHandlers = _extends({}, propsEventHandlers, extractEventHandlers(externalProps));\n return _extends({}, externalProps, externalEventHandlers, {\n onClick: createHandleClick(externalEventHandlers)\n });\n };\n const getInputProps = (externalProps = {}) => {\n var _ref2;\n const propsEventHandlers = {\n onBlur,\n onFocus,\n // onChange from normal props is the custom onChange so we ignore it here\n onChange: onInputChange\n };\n const externalEventHandlers = _extends({}, propsEventHandlers, extractEventHandlers(externalProps, [\n // onClick is handled by the root slot\n 'onClick'\n // do not ignore 'onInputChange', we want slotProps.input.onInputChange to enter the DOM and throw\n ]));\n const mergedEventHandlers = _extends({}, externalEventHandlers, {\n onFocus: createHandleFocus(externalEventHandlers),\n // slotProps.onChange is renamed to onInputChange and passed to createHandleInputChange\n onChange: createHandleInputChange(_extends({}, externalEventHandlers, {\n onInputChange: externalEventHandlers.onChange\n })),\n onBlur: createHandleBlur(externalEventHandlers),\n onKeyDown: createHandleKeyDown(externalEventHandlers)\n });\n const displayValue = (_ref2 = focused ? inputValue : value) != null ? _ref2 : '';\n\n // get rid of slotProps.input.onInputChange before returning to prevent it from entering the DOM\n // if it was passed, it will be in mergedEventHandlers and throw\n delete externalProps.onInputChange;\n return _extends({\n type: 'text',\n id: inputId,\n 'aria-invalid': errorProp || undefined,\n defaultValue: undefined,\n value: displayValue,\n 'aria-valuenow': displayValue,\n 'aria-valuetext': String(displayValue),\n 'aria-valuemin': min,\n 'aria-valuemax': max,\n autoComplete: 'off',\n autoCorrect: 'off',\n spellCheck: 'false',\n required: requiredProp,\n readOnly: readOnlyProp,\n 'aria-disabled': disabledProp,\n disabled: disabledProp\n }, externalProps, {\n ref: handleInputRef\n }, mergedEventHandlers);\n };\n const handleStepperButtonMouseDown = event => {\n event.preventDefault();\n if (inputRef.current) {\n inputRef.current.focus();\n }\n };\n const stepperButtonCommonProps = {\n 'aria-controls': inputId,\n tabIndex: -1\n };\n const isIncrementDisabled = disabledProp || (isNumber(value) ? value >= (max != null ? max : Number.MAX_SAFE_INTEGER) : false);\n const getIncrementButtonProps = (externalProps = {}) => {\n return _extends({}, externalProps, stepperButtonCommonProps, {\n disabled: isIncrementDisabled,\n 'aria-disabled': isIncrementDisabled,\n onMouseDown: handleStepperButtonMouseDown,\n onClick: handleStep('up')\n });\n };\n const isDecrementDisabled = disabledProp || (isNumber(value) ? value <= (min != null ? min : Number.MIN_SAFE_INTEGER) : false);\n const getDecrementButtonProps = (externalProps = {}) => {\n return _extends({}, externalProps, stepperButtonCommonProps, {\n disabled: isDecrementDisabled,\n 'aria-disabled': isDecrementDisabled,\n onMouseDown: handleStepperButtonMouseDown,\n onClick: handleStep('down')\n });\n };\n return {\n disabled: disabledProp,\n error: errorProp,\n focused,\n formControlContext,\n getInputProps,\n getIncrementButtonProps,\n getDecrementButtonProps,\n getRootProps,\n required: requiredProp,\n value,\n inputValue,\n isIncrementDisabled,\n isDecrementDisabled\n };\n}", "export const NumberInputActionTypes = {\n clamp: 'numberInput:clamp',\n inputChange: 'numberInput:inputChange',\n increment: 'numberInput:increment',\n decrement: 'numberInput:decrement',\n decrementToMin: 'numberInput:decrementToMin',\n incrementToMax: 'numberInput:incrementToMax',\n resetInputValue: 'numberInput:resetInputValue'\n};", "import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { NumberInputActionTypes } from './numberInputAction.types';\nimport { clampStepwise, isNumber } from './utils';\nfunction getClampedValues(rawValue, context) {\n const {\n min,\n max,\n step\n } = context;\n const clampedValue = rawValue === null ? null : clampStepwise(rawValue, min, max, step);\n const newInputValue = clampedValue === null ? '' : String(clampedValue);\n return {\n value: clampedValue,\n inputValue: newInputValue\n };\n}\nfunction stepValue(state, context, direction, multiplier) {\n const {\n value\n } = state;\n const {\n step = 1,\n min,\n max\n } = context;\n if (isNumber(value)) {\n return {\n up: value + (step != null ? step : 1) * multiplier,\n down: value - (step != null ? step : 1) * multiplier\n }[direction];\n }\n return {\n up: min != null ? min : 1,\n down: max != null ? max : -1\n }[direction];\n}\nfunction handleClamp(state, context, inputValue) {\n const {\n getInputValueAsString\n } = context;\n const numberValueAsString = getInputValueAsString(inputValue);\n const intermediateValue = numberValueAsString === '' || numberValueAsString === '-' ? null : parseInt(numberValueAsString, 10);\n const clampedValues = getClampedValues(intermediateValue, context);\n return _extends({}, state, clampedValues);\n}\nfunction handleInputChange(state, context, inputValue) {\n const {\n getInputValueAsString\n } = context;\n const numberValueAsString = getInputValueAsString(inputValue);\n if (numberValueAsString.match(/^-?\\d+?$/) || numberValueAsString === '' || numberValueAsString === '-') {\n return _extends({}, state, {\n inputValue: numberValueAsString\n });\n }\n return state;\n}\n\n// use this for ArrowUp, ArrowDown, button clicks\n// use this with applyMultiplier: true for PageUp, PageDown, button shift-clicks\nfunction handleStep(state, context, applyMultiplier, direction) {\n const multiplier = applyMultiplier ? context.shiftMultiplier : 1;\n const newValue = stepValue(state, context, direction, multiplier);\n const clampedValues = getClampedValues(newValue, context);\n return _extends({}, state, clampedValues);\n}\nfunction handleToMinOrMax(state, context, to) {\n const newValue = context[to];\n if (!isNumber(newValue)) {\n return state;\n }\n return _extends({}, state, {\n value: newValue,\n inputValue: String(newValue)\n });\n}\nexport function numberInputReducer(state, action) {\n const {\n type,\n context\n } = action;\n switch (type) {\n case NumberInputActionTypes.clamp:\n return handleClamp(state, context, action.inputValue);\n case NumberInputActionTypes.inputChange:\n return handleInputChange(state, context, action.inputValue);\n case NumberInputActionTypes.increment:\n return handleStep(state, context, action.applyMultiplier, 'up');\n case NumberInputActionTypes.decrement:\n return handleStep(state, context, action.applyMultiplier, 'down');\n case NumberInputActionTypes.incrementToMax:\n return handleToMinOrMax(state, context, 'max');\n case NumberInputActionTypes.decrementToMin:\n return handleToMinOrMax(state, context, 'min');\n case NumberInputActionTypes.resetInputValue:\n return _extends({}, state, {\n inputValue: String(state.value)\n });\n default:\n return state;\n }\n}", "import { clamp } from '@mui/utils';\nexport function clampStepwise(val, min = Number.MIN_SAFE_INTEGER, max = Number.MAX_SAFE_INTEGER, stepProp = NaN) {\n if (Number.isNaN(stepProp)) {\n return clamp(val, min, max);\n }\n const step = stepProp || 1;\n const remainder = val % step;\n const positivity = Math.sign(remainder);\n if (Math.abs(remainder) > step / 2) {\n return clamp(val + positivity * (step - Math.abs(remainder)), min, max);\n }\n return clamp(val - positivity * Math.abs(remainder), min, max);\n}\nexport function isNumber(val) {\n return typeof val === 'number' && !Number.isNaN(val) && Number.isFinite(val);\n}", "'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"disabled\", \"slotProps\", \"slots\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { unstable_composeClasses as composeClasses } from '../composeClasses';\nimport { getOptionGroupUtilityClass } from './optionGroupClasses';\nimport { useSlotProps } from '../utils';\nimport { useClassNamesOverride } from '../utils/ClassNameConfigurator';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nfunction useUtilityClasses(disabled) {\n const slots = {\n root: ['root', disabled && 'disabled'],\n label: ['label'],\n list: ['list']\n };\n return composeClasses(slots, useClassNamesOverride(getOptionGroupUtilityClass));\n}\n\n/**\n * An unstyled option group to be used within a Select.\n *\n * Demos:\n *\n * - [Select](https://mui.com/base-ui/react-select/)\n *\n * API:\n *\n * - [OptionGroup API](https://mui.com/base-ui/react-select/components-api/#option-group)\n */\nconst OptionGroup = /*#__PURE__*/React.forwardRef(function OptionGroup(props, forwardedRef) {\n const {\n disabled = false,\n slotProps = {},\n slots = {}\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const Root = (slots == null ? void 0 : slots.root) || 'li';\n const Label = (slots == null ? void 0 : slots.label) || 'span';\n const List = (slots == null ? void 0 : slots.list) || 'ul';\n const classes = useUtilityClasses(disabled);\n const rootProps = useSlotProps({\n elementType: Root,\n externalSlotProps: slotProps.root,\n externalForwardedProps: other,\n additionalProps: {\n ref: forwardedRef\n },\n ownerState: props,\n className: classes.root\n });\n const labelProps = useSlotProps({\n elementType: Label,\n externalSlotProps: slotProps.label,\n ownerState: props,\n className: classes.label\n });\n const listProps = useSlotProps({\n elementType: List,\n externalSlotProps: slotProps.list,\n ownerState: props,\n className: classes.list\n });\n return /*#__PURE__*/_jsxs(Root, _extends({}, rootProps, {\n children: [/*#__PURE__*/_jsx(Label, _extends({}, labelProps, {\n children: props.label\n })), /*#__PURE__*/_jsx(List, _extends({}, listProps, {\n children: props.children\n }))]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? OptionGroup.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 * @ignore\n */\n children: PropTypes.node,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * If `true` all the options in the group will be disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n /**\n * The human-readable description of the group.\n */\n label: PropTypes.node,\n /**\n * The props used for each slot inside the Input.\n * @default {}\n */\n slotProps: PropTypes.shape({\n label: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n list: 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 OptionGroup.\n * Either a string to use a HTML element or a component.\n * @default {}\n */\n slots: PropTypes.shape({\n label: PropTypes.elementType,\n list: PropTypes.elementType,\n root: PropTypes.elementType\n })\n} : void 0;\nexport { OptionGroup };", "import { generateUtilityClass } from '../generateUtilityClass';\nimport { generateUtilityClasses } from '../generateUtilityClasses';\nconst COMPONENT_NAME = 'OptionGroup';\nexport function getOptionGroupUtilityClass(slot) {\n return generateUtilityClass(COMPONENT_NAME, slot);\n}\nexport const optionGroupClasses = generateUtilityClasses(COMPONENT_NAME, ['root', 'disabled', 'label', 'list']);", "'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"children\", \"disabled\", \"label\", \"slotProps\", \"slots\", \"value\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { unstable_useForkRef as useForkRef } from '@mui/utils';\nimport { unstable_composeClasses as composeClasses } from '../composeClasses';\nimport { getOptionUtilityClass } from './optionClasses';\nimport { useSlotProps } from '../utils';\nimport { useOption, useOptionContextStabilizer } from '../useOption';\nimport { useClassNamesOverride } from '../utils/ClassNameConfigurator';\nimport { ListContext } from '../useList';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction useUtilityClasses(ownerState) {\n const {\n disabled,\n highlighted,\n selected\n } = ownerState;\n const slots = {\n root: ['root', disabled && 'disabled', highlighted && 'highlighted', selected && 'selected']\n };\n return composeClasses(slots, useClassNamesOverride(getOptionUtilityClass));\n}\nconst InnerOption = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function Option(props, forwardedRef) {\n var _slots$root, _optionRef$current;\n const {\n children,\n disabled = false,\n label,\n slotProps = {},\n slots = {},\n value\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const Root = (_slots$root = slots.root) != null ? _slots$root : 'li';\n const optionRef = React.useRef(null);\n const combinedRef = useForkRef(optionRef, forwardedRef);\n\n // If `label` is not explicitly provided, the `children` are used for convenience.\n // This is used to populate the select's trigger with the selected option's label.\n const computedLabel = label != null ? label : typeof children === 'string' ? children : (_optionRef$current = optionRef.current) == null || (_optionRef$current = _optionRef$current.textContent) == null ? void 0 : _optionRef$current.trim();\n const {\n getRootProps,\n selected,\n highlighted,\n index\n } = useOption({\n disabled,\n label: computedLabel,\n rootRef: combinedRef,\n value\n });\n const ownerState = _extends({}, props, {\n disabled,\n highlighted,\n index,\n selected\n });\n const classes = useUtilityClasses(ownerState);\n const rootProps = useSlotProps({\n getSlotProps: getRootProps,\n elementType: Root,\n externalSlotProps: slotProps.root,\n externalForwardedProps: other,\n className: classes.root,\n ownerState\n });\n return /*#__PURE__*/_jsx(Root, _extends({}, rootProps, {\n children: children\n }));\n}));\n\n/**\n * An unstyled option to be used within a Select.\n *\n * Demos:\n *\n * - [Select](https://mui.com/base-ui/react-select/)\n *\n * API:\n *\n * - [Option API](https://mui.com/base-ui/react-select/components-api/#option)\n */\nconst Option = /*#__PURE__*/React.forwardRef(function Option(props, ref) {\n const {\n value\n } = props;\n\n // This wrapper component is used as a performance optimization.\n // `useOptionContextStabilizer` ensures that the context value\n // is stable across renders, so that the actual Option re-renders\n // only when it needs to.\n const {\n contextValue\n } = useOptionContextStabilizer(value);\n return /*#__PURE__*/_jsx(ListContext.Provider, {\n value: contextValue,\n children: /*#__PURE__*/_jsx(InnerOption, _extends({}, props, {\n ref: ref\n }))\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? Option.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 * @ignore\n */\n children: PropTypes.node,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * If `true`, the option will be disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n /**\n * A text representation of the option's content.\n * Used for keyboard text navigation matching.\n */\n label: PropTypes.string,\n /**\n * The props used for each slot inside the Option.\n * @default {}\n */\n slotProps: PropTypes.shape({\n root: PropTypes.oneOfType([PropTypes.func, PropTypes.object])\n }),\n /**\n * The components used for each slot inside the Option.\n * Either a string to use a HTML element or a component.\n * @default {}\n */\n slots: PropTypes.shape({\n root: PropTypes.elementType\n }),\n /**\n * The value of the option.\n */\n value: PropTypes.any.isRequired\n} : void 0;\nexport { Option };", "import { generateUtilityClass } from '../generateUtilityClass';\nimport { generateUtilityClasses } from '../generateUtilityClasses';\nconst COMPONENT_NAME = 'Option';\nexport function getOptionUtilityClass(slot) {\n return generateUtilityClass(COMPONENT_NAME, slot);\n}\nexport const optionClasses = generateUtilityClasses(COMPONENT_NAME, ['root', 'disabled', 'selected', 'highlighted']);", "'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { unstable_useForkRef as useForkRef, unstable_useId as useId } from '@mui/utils';\nimport { extractEventHandlers } from '../utils/extractEventHandlers';\nimport { useListItem } from '../useList';\nimport { useCompoundItem } from '../useCompound';\nimport { useButton } from '../useButton';\nimport { combineHooksSlotProps } from '../utils/combineHooksSlotProps';\n/**\n *\n * Demos:\n *\n * - [Select](https://mui.com/base-ui/react-select/#hooks)\n *\n * API:\n *\n * - [useOption API](https://mui.com/base-ui/react-select/hooks-api/#use-option)\n */\nexport function useOption(params) {\n const {\n value,\n label,\n disabled,\n rootRef: optionRefParam,\n id: idParam\n } = params;\n const {\n getRootProps: getListItemProps,\n highlighted,\n selected\n } = useListItem({\n item: value\n });\n const {\n getRootProps: getButtonProps,\n rootRef: buttonRefHandler\n } = useButton({\n disabled,\n focusableWhenDisabled: true\n });\n const id = useId(idParam);\n const optionRef = React.useRef(null);\n const selectOption = React.useMemo(() => ({\n disabled,\n label,\n value,\n ref: optionRef,\n id\n }), [disabled, label, value, id]);\n const {\n index\n } = useCompoundItem(value, selectOption);\n const handleRef = useForkRef(optionRefParam, optionRef, buttonRefHandler);\n const createHandleKeyDown = otherHandlers => event => {\n var _otherHandlers$onKeyD;\n (_otherHandlers$onKeyD = otherHandlers.onKeyDown) == null || _otherHandlers$onKeyD.call(otherHandlers, event);\n if (event.defaultMuiPrevented) {\n return;\n }\n if ([' ', 'Enter'].includes(event.key)) {\n event.defaultMuiPrevented = true; // prevent listbox onKeyDown\n }\n };\n const getOwnHandlers = (otherHandlers = {}) => ({\n onKeyDown: createHandleKeyDown(otherHandlers)\n });\n return {\n getRootProps: (externalProps = {}) => {\n const externalEventHandlers = extractEventHandlers(externalProps);\n const getCombinedRootProps = combineHooksSlotProps(getListItemProps, combineHooksSlotProps(getButtonProps, getOwnHandlers));\n return _extends({}, externalProps, externalEventHandlers, getCombinedRootProps(externalEventHandlers), {\n id,\n ref: handleRef,\n role: 'option',\n 'aria-selected': selected\n });\n },\n highlighted,\n index,\n selected,\n rootRef: handleRef\n };\n}", "'use client';\n\nimport * as React from 'react';\nimport { ListContext } from '../useList';\n\n/**\n * Stabilizes the ListContext value for the Option component, so it doesn't change when sibling Options update.\n *\n * @param value The value of the Option.\n * @returns The stable ListContext value.\n *\n * Demos:\n *\n * - [Select](https://mui.com/base-ui/react-select/#hooks)\n *\n * API:\n *\n * - [useOptionContextStabilizer API](https://mui.com/base-ui/react-select/hooks-api/#use-option-context-stabilizer)\n */\nexport function useOptionContextStabilizer(value) {\n const listContext = React.useContext(ListContext);\n if (!listContext) {\n throw new Error('Option: ListContext was not found.');\n }\n const {\n getItemState,\n dispatch\n } = listContext;\n const {\n highlighted,\n selected,\n focusable\n } = getItemState(value);\n\n // The local version of getItemState can be only called with the current Option's value.\n // It doesn't make much sense to render an Option depending on other Options' state anyway.\n const localGetItemState = React.useCallback(itemValue => {\n if (itemValue !== value) {\n throw new Error(['Base UI Option: Tried to access the state of another Option.', 'This is unsupported when the Option uses the OptionContextStabilizer as a performance optimization.'].join('/n'));\n }\n return {\n highlighted,\n selected,\n focusable\n };\n }, [highlighted, selected, focusable, value]);\n\n // Create a local (per Option) instance of the ListContext that changes only when\n // the getItemState's return value changes.\n // This makes Options re-render only when their state actually change, not when any Option's state changes.\n const localContextValue = React.useMemo(() => ({\n dispatch,\n getItemState: localGetItemState\n }), [dispatch, localGetItemState]);\n return {\n contextValue: localContextValue\n };\n}", "'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nvar _span;\nconst _excluded = [\"areOptionsEqual\", \"autoComplete\", \"autoFocus\", \"children\", \"defaultValue\", \"defaultListboxOpen\", \"disabled\", \"getSerializedValue\", \"listboxId\", \"listboxOpen\", \"multiple\", \"name\", \"required\", \"onChange\", \"onListboxOpenChange\", \"getOptionAsString\", \"renderValue\", \"placeholder\", \"slotProps\", \"slots\", \"value\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { unstable_useForkRef as useForkRef } from '@mui/utils';\nimport { useSelect } from '../useSelect';\nimport { useSlotProps } from '../utils';\nimport { Popup } from '../Unstable_Popup/Popup';\nimport { unstable_composeClasses as composeClasses } from '../composeClasses';\nimport { getSelectUtilityClass } from './selectClasses';\nimport { defaultOptionStringifier } from '../useSelect/defaultOptionStringifier';\nimport { useClassNamesOverride } from '../utils/ClassNameConfigurator';\nimport { SelectProvider } from '../useSelect/SelectProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nfunction defaultRenderValue(selectedOptions) {\n var _selectedOptions$labe;\n if (Array.isArray(selectedOptions)) {\n return /*#__PURE__*/_jsx(React.Fragment, {\n children: selectedOptions.map(o => o.label).join(', ')\n });\n }\n return (_selectedOptions$labe = selectedOptions == null ? void 0 : selectedOptions.label) != null ? _selectedOptions$labe : null;\n}\nfunction useUtilityClasses(ownerState) {\n const {\n active,\n disabled,\n open,\n focusVisible\n } = ownerState;\n const slots = {\n root: ['root', disabled && 'disabled', focusVisible && 'focusVisible', active && 'active', open && 'expanded'],\n listbox: ['listbox', disabled && 'disabled'],\n popup: ['popup']\n };\n return composeClasses(slots, useClassNamesOverride(getSelectUtilityClass));\n}\n\n/**\n * The foundation for building custom-styled select components.\n *\n * Demos:\n *\n * - [Select](https://mui.com/base-ui/react-select/)\n *\n * API:\n *\n * - [Select API](https://mui.com/base-ui/react-select/components-api/#select)\n */\nconst Select = /*#__PURE__*/React.forwardRef(function Select(props, forwardedRef) {\n var _slots$root, _slots$listbox, _slots$popup, _ref, _renderValue;\n const {\n areOptionsEqual,\n autoComplete,\n autoFocus,\n children,\n defaultValue,\n defaultListboxOpen = false,\n disabled: disabledProp,\n getSerializedValue,\n listboxId,\n listboxOpen: listboxOpenProp,\n multiple = false,\n name,\n required = false,\n onChange,\n onListboxOpenChange,\n getOptionAsString = defaultOptionStringifier,\n renderValue: renderValueProp,\n placeholder,\n slotProps = {},\n slots = {},\n value: valueProp\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const renderValue = renderValueProp != null ? renderValueProp : defaultRenderValue;\n const [buttonDefined, setButtonDefined] = React.useState(false);\n const buttonRef = React.useRef(null);\n const listboxRef = React.useRef(null);\n const Button = (_slots$root = slots.root) != null ? _slots$root : 'button';\n const ListboxRoot = (_slots$listbox = slots.listbox) != null ? _slots$listbox : 'ul';\n const PopupComponent = (_slots$popup = slots.popup) != null ? _slots$popup : 'div';\n const handleButtonRefChange = React.useCallback(element => {\n setButtonDefined(element != null);\n }, []);\n const handleButtonRef = useForkRef(forwardedRef, buttonRef, handleButtonRefChange);\n React.useEffect(() => {\n if (autoFocus) {\n buttonRef.current.focus();\n }\n }, [autoFocus]);\n const {\n buttonActive,\n buttonFocusVisible,\n contextValue,\n disabled,\n getButtonProps,\n getListboxProps,\n getHiddenInputProps,\n getOptionMetadata,\n value,\n open\n } = useSelect({\n name,\n required,\n getSerializedValue,\n areOptionsEqual,\n buttonRef: handleButtonRef,\n defaultOpen: defaultListboxOpen,\n defaultValue,\n disabled: disabledProp,\n listboxId,\n multiple,\n open: listboxOpenProp,\n onChange,\n onOpenChange: onListboxOpenChange,\n getOptionAsString,\n value: valueProp,\n componentName: 'Select'\n });\n const ownerState = _extends({}, props, {\n active: buttonActive,\n defaultListboxOpen,\n disabled,\n focusVisible: buttonFocusVisible,\n open,\n multiple,\n renderValue,\n value\n });\n const classes = useUtilityClasses(ownerState);\n const buttonProps = useSlotProps({\n elementType: Button,\n getSlotProps: getButtonProps,\n externalSlotProps: slotProps.root,\n externalForwardedProps: other,\n ownerState,\n className: classes.root\n });\n const listboxProps = useSlotProps({\n elementType: ListboxRoot,\n getSlotProps: getListboxProps,\n externalSlotProps: slotProps.listbox,\n additionalProps: {\n ref: listboxRef\n },\n ownerState,\n className: classes.listbox\n });\n const popupProps = useSlotProps({\n elementType: PopupComponent,\n externalSlotProps: slotProps.popup,\n additionalProps: {\n anchor: buttonRef.current,\n keepMounted: true,\n open,\n placement: 'bottom-start',\n role: undefined\n },\n ownerState,\n className: classes.popup\n });\n let selectedOptionsMetadata;\n if (multiple) {\n selectedOptionsMetadata = value.map(v => getOptionMetadata(v)).filter(o => o !== undefined);\n } else {\n var _getOptionMetadata;\n selectedOptionsMetadata = (_getOptionMetadata = getOptionMetadata(value)) != null ? _getOptionMetadata : null;\n }\n return /*#__PURE__*/_jsxs(React.Fragment, {\n children: [/*#__PURE__*/_jsx(Button, _extends({}, buttonProps, {\n children: (_ref = (_renderValue = renderValue(selectedOptionsMetadata)) != null ? _renderValue : placeholder) != null ? _ref : // fall back to a zero-width space to prevent layout shift\n // from https://github.com/mui/material-ui/pull/24563\n _span || (_span = /*#__PURE__*/_jsx(\"span\", {\n className: \"notranslate\",\n children: \"\\u200B\"\n }))\n })), buttonDefined && /*#__PURE__*/_jsx(Popup, _extends({\n slots: {\n root: PopupComponent\n }\n }, popupProps, {\n children: /*#__PURE__*/_jsx(ListboxRoot, _extends({}, listboxProps, {\n children: /*#__PURE__*/_jsx(SelectProvider, {\n value: contextValue,\n children: children\n })\n }))\n })), /*#__PURE__*/_jsx(\"input\", _extends({}, getHiddenInputProps(), {\n autoComplete: autoComplete\n }))]\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? Select.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 function used to determine if two options' values are equal.\n * By default, reference equality is used.\n *\n * There is a performance impact when using the `areOptionsEqual` prop (proportional to the number of options).\n * Therefore, it's recommented to use the default reference equality comparison whenever possible.\n */\n areOptionsEqual: PropTypes.func,\n /**\n * This prop helps users to fill forms faster, especially on mobile devices.\n * The name can be confusing, as it's more like an autofill.\n * You can learn more about it [following the specification](https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#autofill).\n */\n autoComplete: PropTypes.string,\n /**\n * If `true`, the select element is focused during the first mount\n * @default false\n */\n autoFocus: PropTypes.bool,\n /**\n * @ignore\n */\n children: PropTypes.node,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * If `true`, the select will be initially open.\n * @default false\n */\n defaultListboxOpen: PropTypes.bool,\n /**\n * The default selected value. Use when the component is not controlled.\n */\n defaultValue: PropTypes.any,\n /**\n * If `true`, the select is disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n /**\n * A function used to convert the option label to a string.\n * It's useful when labels are elements and need to be converted to plain text\n * to enable navigation using character keys on a keyboard.\n *\n * @default defaultOptionStringifier\n */\n getOptionAsString: PropTypes.func,\n /**\n * A function to convert the currently selected value to a string.\n * Used to set a value of a hidden input associated with the select,\n * so that the selected value can be posted with a form.\n */\n getSerializedValue: PropTypes.func,\n /**\n * `id` attribute of the listbox element.\n */\n listboxId: PropTypes.string,\n /**\n * Controls the open state of the select's listbox.\n * @default undefined\n */\n listboxOpen: PropTypes.bool,\n /**\n * If `true`, selecting multiple values is allowed.\n * This affects the type of the `value`, `defaultValue`, and `onChange` props.\n *\n * @default false\n */\n multiple: PropTypes.bool,\n /**\n * Name of the element. For example used by the server to identify the fields in form submits.\n */\n name: PropTypes.string,\n /**\n * Callback fired when an option is selected.\n */\n onChange: PropTypes.func,\n /**\n * Callback fired when the component requests to be opened.\n * Use in controlled mode (see listboxOpen).\n */\n onListboxOpenChange: PropTypes.func,\n /**\n * Text to show when there is no selected value.\n */\n placeholder: PropTypes.node,\n /**\n * Function that customizes the rendering of the selected value.\n */\n renderValue: PropTypes.func,\n /**\n * If `true`, the Select cannot be empty when submitting form.\n * @default false\n */\n required: PropTypes.bool,\n /**\n * The props used for each slot inside the Input.\n * @default {}\n */\n slotProps: PropTypes /* @typescript-to-proptypes-ignore */.shape({\n listbox: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n popup: 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 Select.\n * Either a string to use a HTML element or a component.\n * @default {}\n */\n slots: PropTypes /* @typescript-to-proptypes-ignore */.shape({\n listbox: PropTypes.elementType,\n popup: PropTypes.elementType,\n root: PropTypes.elementType\n }),\n /**\n * The selected value.\n * Set to `null` to deselect all options.\n */\n value: PropTypes.any\n} : void 0;\nexport { Select };", "'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { unstable_useForkRef as useForkRef, unstable_useId as useId, unstable_useEnhancedEffect as useEnhancedEffect, visuallyHidden as visuallyHiddenStyle } from '@mui/utils';\nimport { useButton } from '../useButton';\nimport { SelectActionTypes } from './useSelect.types';\nimport { ListActionTypes, useList } from '../useList';\nimport { defaultOptionStringifier } from './defaultOptionStringifier';\nimport { useCompoundParent } from '../useCompound';\nimport { extractEventHandlers } from '../utils/extractEventHandlers';\nimport { selectReducer } from './selectReducer';\nimport { combineHooksSlotProps } from '../utils/combineHooksSlotProps';\nfunction defaultFormValueProvider(selectedOption) {\n if (Array.isArray(selectedOption)) {\n if (selectedOption.length === 0) {\n return '';\n }\n return JSON.stringify(selectedOption.map(o => o.value));\n }\n if ((selectedOption == null ? void 0 : selectedOption.value) == null) {\n return '';\n }\n if (typeof selectedOption.value === 'string' || typeof selectedOption.value === 'number') {\n return selectedOption.value;\n }\n return JSON.stringify(selectedOption.value);\n}\n\n/**\n *\n * Demos:\n *\n * - [Select](https://mui.com/base-ui/react-select/#hooks)\n *\n * API:\n *\n * - [useSelect API](https://mui.com/base-ui/react-select/hooks-api/#use-select)\n */\nfunction useSelect(props) {\n const {\n areOptionsEqual,\n buttonRef: buttonRefProp,\n defaultOpen = false,\n defaultValue: defaultValueProp,\n disabled = false,\n listboxId: listboxIdProp,\n listboxRef: listboxRefProp,\n multiple = false,\n name,\n required,\n onChange,\n onHighlightChange,\n onOpenChange,\n open: openProp,\n options: optionsParam,\n getOptionAsString = defaultOptionStringifier,\n getSerializedValue = defaultFormValueProvider,\n value: valueProp,\n componentName = 'useSelect'\n } = props;\n const buttonRef = React.useRef(null);\n const handleButtonRef = useForkRef(buttonRefProp, buttonRef);\n const listboxRef = React.useRef(null);\n const listboxId = useId(listboxIdProp);\n let defaultValue;\n if (valueProp === undefined && defaultValueProp === undefined) {\n defaultValue = [];\n } else if (defaultValueProp !== undefined) {\n if (multiple) {\n defaultValue = defaultValueProp;\n } else {\n defaultValue = defaultValueProp == null ? [] : [defaultValueProp];\n }\n }\n const value = React.useMemo(() => {\n if (valueProp !== undefined) {\n if (multiple) {\n return valueProp;\n }\n return valueProp == null ? [] : [valueProp];\n }\n return undefined;\n }, [valueProp, multiple]);\n const {\n subitems,\n contextValue: compoundComponentContextValue\n } = useCompoundParent();\n const options = React.useMemo(() => {\n if (optionsParam != null) {\n return new Map(optionsParam.map((option, index) => [option.value, {\n value: option.value,\n label: option.label,\n disabled: option.disabled,\n ref: /*#__PURE__*/React.createRef(),\n id: `${listboxId}_${index}`\n }]));\n }\n return subitems;\n }, [optionsParam, subitems, listboxId]);\n const handleListboxRef = useForkRef(listboxRefProp, listboxRef);\n const {\n getRootProps: getButtonRootProps,\n active: buttonActive,\n focusVisible: buttonFocusVisible,\n rootRef: mergedButtonRef\n } = useButton({\n disabled,\n rootRef: handleButtonRef\n });\n const optionValues = React.useMemo(() => Array.from(options.keys()), [options]);\n const getOptionByValue = React.useCallback(valueToGet => {\n // This can't be simply `options.get(valueToGet)` because of the `areOptionsEqual` prop.\n // If it's provided, we assume that the user wants to compare the options by value.\n if (areOptionsEqual !== undefined) {\n const similarValue = optionValues.find(optionValue => areOptionsEqual(optionValue, valueToGet));\n return options.get(similarValue);\n }\n return options.get(valueToGet);\n }, [options, areOptionsEqual, optionValues]);\n const isItemDisabled = React.useCallback(valueToCheck => {\n var _option$disabled;\n const option = getOptionByValue(valueToCheck);\n return (_option$disabled = option == null ? void 0 : option.disabled) != null ? _option$disabled : false;\n }, [getOptionByValue]);\n const stringifyOption = React.useCallback(valueToCheck => {\n const option = getOptionByValue(valueToCheck);\n if (!option) {\n return '';\n }\n return getOptionAsString(option);\n }, [getOptionByValue, getOptionAsString]);\n const controlledState = React.useMemo(() => ({\n selectedValues: value,\n open: openProp\n }), [value, openProp]);\n const getItemId = React.useCallback(itemValue => {\n var _options$get;\n return (_options$get = options.get(itemValue)) == null ? void 0 : _options$get.id;\n }, [options]);\n const handleSelectionChange = React.useCallback((event, newValues) => {\n if (multiple) {\n onChange == null || onChange(event, newValues);\n } else {\n var _newValues$;\n onChange == null || onChange(event, (_newValues$ = newValues[0]) != null ? _newValues$ : null);\n }\n }, [multiple, onChange]);\n const handleHighlightChange = React.useCallback((event, newValue) => {\n onHighlightChange == null || onHighlightChange(event, newValue != null ? newValue : null);\n }, [onHighlightChange]);\n const handleStateChange = React.useCallback((event, field, fieldValue) => {\n if (field === 'open') {\n onOpenChange == null || onOpenChange(fieldValue);\n if (fieldValue === false && (event == null ? void 0 : event.type) !== 'blur') {\n var _buttonRef$current;\n (_buttonRef$current = buttonRef.current) == null || _buttonRef$current.focus();\n }\n }\n }, [onOpenChange]);\n const getItemDomElement = React.useCallback(itemId => {\n var _subitems$get$ref$cur, _subitems$get;\n if (itemId == null) {\n return null;\n }\n return (_subitems$get$ref$cur = (_subitems$get = subitems.get(itemId)) == null ? void 0 : _subitems$get.ref.current) != null ? _subitems$get$ref$cur : null;\n }, [subitems]);\n const useListParameters = {\n getInitialState: () => {\n var _defaultValue;\n return {\n highlightedValue: null,\n selectedValues: (_defaultValue = defaultValue) != null ? _defaultValue : [],\n open: defaultOpen\n };\n },\n getItemId,\n controlledProps: controlledState,\n focusManagement: 'DOM',\n getItemDomElement,\n itemComparer: areOptionsEqual,\n isItemDisabled,\n rootRef: handleListboxRef,\n onChange: handleSelectionChange,\n onHighlightChange: handleHighlightChange,\n onStateChange: handleStateChange,\n reducerActionContext: React.useMemo(() => ({\n multiple\n }), [multiple]),\n items: optionValues,\n getItemAsString: stringifyOption,\n selectionMode: multiple ? 'multiple' : 'single',\n stateReducer: selectReducer,\n componentName\n };\n const {\n dispatch,\n getRootProps: getListboxRootProps,\n contextValue: listContextValue,\n state: {\n open,\n highlightedValue: highlightedOption,\n selectedValues: selectedOptions\n },\n rootRef: mergedListRootRef\n } = useList(useListParameters);\n\n // store the initial open state to prevent focus stealing\n // (the first option gets focused only when the select is opened by the user)\n const isInitiallyOpen = React.useRef(open);\n useEnhancedEffect(() => {\n if (open && highlightedOption !== null) {\n var _getOptionByValue;\n const optionRef = (_getOptionByValue = getOptionByValue(highlightedOption)) == null ? void 0 : _getOptionByValue.ref;\n if (!listboxRef.current || !(optionRef != null && optionRef.current)) {\n return;\n }\n if (!isInitiallyOpen.current) {\n optionRef.current.focus({\n preventScroll: true\n });\n }\n const listboxClientRect = listboxRef.current.getBoundingClientRect();\n const optionClientRect = optionRef.current.getBoundingClientRect();\n if (optionClientRect.top < listboxClientRect.top) {\n listboxRef.current.scrollTop -= listboxClientRect.top - optionClientRect.top;\n } else if (optionClientRect.bottom > listboxClientRect.bottom) {\n listboxRef.current.scrollTop += optionClientRect.bottom - listboxClientRect.bottom;\n }\n }\n }, [open, highlightedOption, getOptionByValue]);\n const getOptionMetadata = React.useCallback(optionValue => getOptionByValue(optionValue), [getOptionByValue]);\n const createHandleButtonClick = externalEventHandlers => event => {\n var _externalEventHandler;\n externalEventHandlers == null || (_externalEventHandler = externalEventHandlers.onClick) == null || _externalEventHandler.call(externalEventHandlers, event);\n if (!event.defaultMuiPrevented) {\n const action = {\n type: SelectActionTypes.buttonClick,\n event\n };\n dispatch(action);\n }\n };\n const createHandleButtonKeyDown = otherHandlers => event => {\n var _otherHandlers$onKeyD;\n (_otherHandlers$onKeyD = otherHandlers.onKeyDown) == null || _otherHandlers$onKeyD.call(otherHandlers, event);\n if (event.defaultMuiPrevented) {\n return;\n }\n if (event.key === 'ArrowDown' || event.key === 'ArrowUp') {\n event.preventDefault();\n dispatch({\n type: ListActionTypes.keyDown,\n key: event.key,\n event\n });\n }\n };\n const getButtonOwnRootProps = (otherHandlers = {}) => ({\n onClick: createHandleButtonClick(otherHandlers),\n onKeyDown: createHandleButtonKeyDown(otherHandlers)\n });\n const getSelectTriggerProps = (otherHandlers = {}) => {\n return _extends({}, otherHandlers, getButtonOwnRootProps(otherHandlers), {\n role: 'combobox',\n 'aria-expanded': open,\n 'aria-controls': listboxId\n });\n };\n const getButtonProps = (externalProps = {}) => {\n const externalEventHandlers = extractEventHandlers(externalProps);\n const combinedProps = combineHooksSlotProps(getSelectTriggerProps, getButtonRootProps);\n return _extends({}, externalProps, combinedProps(externalEventHandlers));\n };\n const createListboxHandleBlur = otherHandlers => event => {\n var _otherHandlers$onBlur, _listboxRef$current;\n (_otherHandlers$onBlur = otherHandlers.onBlur) == null || _otherHandlers$onBlur.call(otherHandlers, event);\n if (event.defaultMuiPrevented) {\n return;\n }\n if ((_listboxRef$current = listboxRef.current) != null && _listboxRef$current.contains(event.relatedTarget) || event.relatedTarget === buttonRef.current) {\n event.defaultMuiPrevented = true;\n }\n };\n const getOwnListboxHandlers = (otherHandlers = {}) => ({\n onBlur: createListboxHandleBlur(otherHandlers)\n });\n const getListboxProps = (externalProps = {}) => {\n const externalEventHandlers = extractEventHandlers(externalProps);\n const getCombinedRootProps = combineHooksSlotProps(getOwnListboxHandlers, getListboxRootProps);\n return _extends({\n id: listboxId,\n role: 'listbox',\n 'aria-multiselectable': multiple ? 'true' : undefined\n }, externalProps, getCombinedRootProps(externalEventHandlers));\n };\n React.useDebugValue({\n selectedOptions,\n highlightedOption,\n open\n });\n const contextValue = React.useMemo(() => _extends({}, listContextValue, compoundComponentContextValue), [listContextValue, compoundComponentContextValue]);\n let selectValue;\n if (props.multiple) {\n selectValue = selectedOptions;\n } else {\n selectValue = selectedOptions.length > 0 ? selectedOptions[0] : null;\n }\n let selectedOptionsMetadata;\n if (multiple) {\n selectedOptionsMetadata = selectValue.map(v => getOptionMetadata(v)).filter(o => o !== undefined);\n } else {\n var _getOptionMetadata;\n selectedOptionsMetadata = (_getOptionMetadata = getOptionMetadata(selectValue)) != null ? _getOptionMetadata : null;\n }\n const createHandleHiddenInputChange = externalEventHandlers => event => {\n var _externalEventHandler2;\n externalEventHandlers == null || (_externalEventHandler2 = externalEventHandlers.onChange) == null || _externalEventHandler2.call(externalEventHandlers, event);\n if (event.defaultMuiPrevented) {\n return;\n }\n const option = options.get(event.target.value);\n\n // support autofill\n if (event.target.value === '') {\n dispatch({\n type: ListActionTypes.clearSelection\n });\n } else if (option !== undefined) {\n dispatch({\n type: SelectActionTypes.browserAutoFill,\n item: option.value,\n event\n });\n }\n };\n const getHiddenInputProps = (externalProps = {}) => {\n const externalEventHandlers = extractEventHandlers(externalProps);\n return _extends({\n name,\n tabIndex: -1,\n 'aria-hidden': true,\n required: required ? true : undefined,\n value: getSerializedValue(selectedOptionsMetadata),\n style: visuallyHiddenStyle\n }, externalProps, {\n onChange: createHandleHiddenInputChange(externalEventHandlers)\n });\n };\n return {\n buttonActive,\n buttonFocusVisible,\n buttonRef: mergedButtonRef,\n contextValue,\n disabled,\n dispatch,\n getButtonProps,\n getHiddenInputProps,\n getListboxProps,\n getOptionMetadata,\n listboxRef: mergedListRootRef,\n open,\n options: optionValues,\n value: selectValue,\n highlightedOption\n };\n}\nexport { useSelect };", "export const SelectActionTypes = {\n buttonClick: 'buttonClick',\n browserAutoFill: 'browserAutoFill'\n};", "const defaultOptionStringifier = option => {\n const {\n label,\n value\n } = option;\n if (typeof label === 'string') {\n return label;\n }\n if (typeof value === 'string') {\n return value;\n }\n\n // Fallback string representation\n return String(option);\n};\nexport { defaultOptionStringifier };", "import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { moveHighlight, listReducer, ListActionTypes, handleItemSelection } from '../useList';\nimport { SelectActionTypes } from './useSelect.types';\nexport function selectReducer(state, action) {\n const {\n open\n } = state;\n const {\n context: {\n selectionMode\n }\n } = action;\n if (action.type === SelectActionTypes.buttonClick) {\n var _state$selectedValues;\n const itemToHighlight = (_state$selectedValues = state.selectedValues[0]) != null ? _state$selectedValues : moveHighlight(null, 'start', action.context);\n return _extends({}, state, {\n open: !open,\n highlightedValue: !open ? itemToHighlight : null\n });\n }\n if (action.type === SelectActionTypes.browserAutoFill) {\n return handleItemSelection(action.item, state, action.context);\n }\n const newState = listReducer(state, action);\n switch (action.type) {\n case ListActionTypes.keyDown:\n if (state.open) {\n if (action.event.key === 'Escape') {\n return _extends({}, newState, {\n open: false\n });\n }\n } else {\n if (action.event.key === 'ArrowDown') {\n var _state$selectedValues2;\n return _extends({}, state, {\n open: true,\n highlightedValue: (_state$selectedValues2 = state.selectedValues[0]) != null ? _state$selectedValues2 : moveHighlight(null, 'start', action.context)\n });\n }\n if (action.event.key === 'ArrowUp') {\n var _state$selectedValues3;\n return _extends({}, state, {\n open: true,\n highlightedValue: (_state$selectedValues3 = state.selectedValues[0]) != null ? _state$selectedValues3 : moveHighlight(null, 'end', action.context)\n });\n }\n }\n break;\n case ListActionTypes.itemClick:\n if (selectionMode === 'single') {\n return _extends({}, newState, {\n open: false\n });\n }\n break;\n case ListActionTypes.blur:\n return _extends({}, newState, {\n open: false\n });\n default:\n return newState;\n }\n return newState;\n}", "'use client';\n\nimport * as React from 'react';\nimport { ListContext } from '../useList/ListContext';\nimport { CompoundComponentContext } from '../useCompound';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * Sets up the contexts for the underlying Option components.\n *\n * @ignore - do not document.\n */\nexport function SelectProvider(props) {\n const {\n value,\n children\n } = props;\n const {\n dispatch,\n getItemIndex,\n getItemState,\n registerItem,\n totalSubitemCount\n } = value;\n const listContextValue = React.useMemo(() => ({\n dispatch,\n getItemState,\n getItemIndex\n }), [dispatch, getItemIndex, getItemState]);\n const compoundComponentContextValue = React.useMemo(() => ({\n getItemIndex,\n registerItem,\n totalSubitemCount\n }), [registerItem, getItemIndex, totalSubitemCount]);\n return /*#__PURE__*/_jsx(CompoundComponentContext.Provider, {\n value: compoundComponentContextValue,\n children: /*#__PURE__*/_jsx(ListContext.Provider, {\n value: listContextValue,\n children: children\n })\n });\n}", "import { generateUtilityClass } from '../generateUtilityClass';\nimport { generateUtilityClasses } from '../generateUtilityClasses';\nconst COMPONENT_NAME = 'Select';\nexport function getSelectUtilityClass(slot) {\n return generateUtilityClass(COMPONENT_NAME, slot);\n}\nexport const selectClasses = generateUtilityClasses(COMPONENT_NAME, ['root', 'button', 'listbox', 'popup', 'active', 'expanded', 'disabled', 'focusVisible']);", "'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"aria-label\", \"aria-valuetext\", \"aria-labelledby\", \"className\", \"disableSwap\", \"disabled\", \"getAriaLabel\", \"getAriaValueText\", \"marks\", \"max\", \"min\", \"name\", \"onChange\", \"onChangeCommitted\", \"orientation\", \"shiftStep\", \"scale\", \"step\", \"tabIndex\", \"track\", \"value\", \"valueLabelFormat\", \"isRtl\", \"defaultValue\", \"slotProps\", \"slots\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { chainPropTypes } from '@mui/utils';\nimport { isHostComponent } from '../utils/isHostComponent';\nimport { unstable_composeClasses as composeClasses } from '../composeClasses';\nimport { getSliderUtilityClass } from './sliderClasses';\nimport { useSlider, valueToPercent } from '../useSlider';\nimport { useSlotProps } from '../utils/useSlotProps';\nimport { resolveComponentProps } from '../utils/resolveComponentProps';\nimport { useClassNamesOverride } from '../utils/ClassNameConfigurator';\n\n// @ts-ignore\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nfunction Identity(x) {\n return x;\n}\nconst useUtilityClasses = ownerState => {\n const {\n disabled,\n dragging,\n marked,\n orientation,\n track\n } = ownerState;\n const slots = {\n root: ['root', disabled && 'disabled', dragging && 'dragging', marked && 'marked', orientation === 'vertical' && 'vertical', track === 'inverted' && 'trackInverted', track === false && 'trackFalse'],\n rail: ['rail'],\n track: ['track'],\n mark: ['mark'],\n markActive: ['markActive'],\n markLabel: ['markLabel'],\n markLabelActive: ['markLabelActive'],\n valueLabel: ['valueLabel'],\n thumb: ['thumb', disabled && 'disabled'],\n active: ['active'],\n disabled: ['disabled'],\n focusVisible: ['focusVisible']\n };\n return composeClasses(slots, useClassNamesOverride(getSliderUtilityClass));\n};\n\n/**\n *\n * Demos:\n *\n * - [Slider](https://mui.com/base-ui/react-slider/)\n *\n * API:\n *\n * - [Slider API](https://mui.com/base-ui/react-slider/components-api/#slider)\n */\nconst Slider = /*#__PURE__*/React.forwardRef(function Slider(props, forwardedRef) {\n var _slots$root, _slots$rail, _slots$track, _slots$thumb, _slots$mark, _slots$markLabel;\n const {\n 'aria-label': ariaLabel,\n 'aria-valuetext': ariaValuetext,\n 'aria-labelledby': ariaLabelledby,\n className,\n disableSwap = false,\n disabled = false,\n getAriaLabel,\n getAriaValueText,\n marks: marksProp = false,\n max = 100,\n min = 0,\n orientation = 'horizontal',\n shiftStep = 10,\n scale = Identity,\n step = 1,\n track = 'normal',\n valueLabelFormat = Identity,\n isRtl = false,\n defaultValue,\n slotProps = {},\n slots = {}\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n // all props with defaults\n // consider extracting to hook an reusing the lint rule for the variants\n const partialOwnerState = _extends({}, props, {\n marks: marksProp,\n disabled,\n disableSwap,\n isRtl,\n defaultValue,\n max,\n min,\n orientation,\n scale,\n step,\n shiftStep,\n track,\n valueLabelFormat\n });\n const {\n axisProps,\n getRootProps,\n getHiddenInputProps,\n getThumbProps,\n active,\n axis,\n range,\n focusedThumbIndex,\n dragging,\n marks,\n values,\n trackOffset,\n trackLeap,\n getThumbStyle\n } = useSlider(_extends({}, partialOwnerState, {\n rootRef: forwardedRef\n }));\n const ownerState = _extends({}, partialOwnerState, {\n marked: marks.length > 0 && marks.some(mark => mark.label),\n dragging,\n focusedThumbIndex,\n activeThumbIndex: active\n });\n const classes = useUtilityClasses(ownerState);\n const Root = (_slots$root = slots.root) != null ? _slots$root : 'span';\n const rootProps = useSlotProps({\n elementType: Root,\n getSlotProps: getRootProps,\n externalSlotProps: slotProps.root,\n externalForwardedProps: other,\n ownerState,\n className: [classes.root, className]\n });\n const Rail = (_slots$rail = slots.rail) != null ? _slots$rail : 'span';\n const railProps = useSlotProps({\n elementType: Rail,\n externalSlotProps: slotProps.rail,\n ownerState,\n className: classes.rail\n });\n const Track = (_slots$track = slots.track) != null ? _slots$track : 'span';\n const trackProps = useSlotProps({\n elementType: Track,\n externalSlotProps: slotProps.track,\n additionalProps: {\n style: _extends({}, axisProps[axis].offset(trackOffset), axisProps[axis].leap(trackLeap))\n },\n ownerState,\n className: classes.track\n });\n const Thumb = (_slots$thumb = slots.thumb) != null ? _slots$thumb : 'span';\n const thumbProps = useSlotProps({\n elementType: Thumb,\n getSlotProps: getThumbProps,\n externalSlotProps: slotProps.thumb,\n ownerState,\n skipResolvingSlotProps: true\n });\n const ValueLabel = slots.valueLabel;\n const valueLabelProps = useSlotProps({\n elementType: ValueLabel,\n externalSlotProps: slotProps.valueLabel,\n ownerState\n });\n const Mark = (_slots$mark = slots.mark) != null ? _slots$mark : 'span';\n const markProps = useSlotProps({\n elementType: Mark,\n externalSlotProps: slotProps.mark,\n ownerState,\n className: classes.mark\n });\n const MarkLabel = (_slots$markLabel = slots.markLabel) != null ? _slots$markLabel : 'span';\n const markLabelProps = useSlotProps({\n elementType: MarkLabel,\n externalSlotProps: slotProps.markLabel,\n ownerState\n });\n const Input = slots.input || 'input';\n const inputProps = useSlotProps({\n elementType: Input,\n getSlotProps: getHiddenInputProps,\n externalSlotProps: slotProps.input,\n ownerState\n });\n return /*#__PURE__*/_jsxs(Root, _extends({}, rootProps, {\n children: [/*#__PURE__*/_jsx(Rail, _extends({}, railProps)), /*#__PURE__*/_jsx(Track, _extends({}, trackProps)), marks.filter(mark => mark.value >= min && mark.value <= max).map((mark, index) => {\n const percent = valueToPercent(mark.value, min, max);\n const style = axisProps[axis].offset(percent);\n let markActive;\n if (track === false) {\n markActive = values.indexOf(mark.value) !== -1;\n } else {\n markActive = track === 'normal' && (range ? mark.value >= values[0] && mark.value <= values[values.length - 1] : mark.value <= values[0]) || track === 'inverted' && (range ? mark.value <= values[0] || mark.value >= values[values.length - 1] : mark.value >= values[0]);\n }\n return /*#__PURE__*/_jsxs(React.Fragment, {\n children: [/*#__PURE__*/_jsx(Mark, _extends({\n \"data-index\": index\n }, markProps, !isHostComponent(Mark) && {\n markActive\n }, {\n style: _extends({}, style, markProps.style),\n className: clsx(markProps.className, markActive && classes.markActive)\n })), mark.label != null ? /*#__PURE__*/_jsx(MarkLabel, _extends({\n \"aria-hidden\": true,\n \"data-index\": index\n }, markLabelProps, !isHostComponent(MarkLabel) && {\n markLabelActive: markActive\n }, {\n style: _extends({}, style, markLabelProps.style),\n className: clsx(classes.markLabel, markLabelProps.className, markActive && classes.markLabelActive),\n children: mark.label\n })) : null]\n }, index);\n }), values.map((value, index) => {\n const percent = valueToPercent(value, min, max);\n const style = axisProps[axis].offset(percent);\n const resolvedSlotProps = resolveComponentProps(slotProps.thumb, ownerState, {\n index,\n focused: focusedThumbIndex === index,\n active: active === index\n });\n return /*#__PURE__*/_jsxs(Thumb, _extends({\n \"data-index\": index\n }, thumbProps, resolvedSlotProps, {\n className: clsx(classes.thumb, thumbProps.className, resolvedSlotProps == null ? void 0 : resolvedSlotProps.className, active === index && classes.active, focusedThumbIndex === index && classes.focusVisible),\n style: _extends({}, style, getThumbStyle(index), thumbProps.style, resolvedSlotProps == null ? void 0 : resolvedSlotProps.style),\n children: [/*#__PURE__*/_jsx(Input, _extends({\n \"data-index\": index,\n \"aria-label\": getAriaLabel ? getAriaLabel(index) : ariaLabel,\n \"aria-valuenow\": scale(value),\n \"aria-labelledby\": ariaLabelledby,\n \"aria-valuetext\": getAriaValueText ? getAriaValueText(scale(value), index) : ariaValuetext,\n value: values[index]\n }, inputProps)), ValueLabel ? /*#__PURE__*/_jsx(ValueLabel, _extends({}, !isHostComponent(ValueLabel) && {\n valueLabelFormat,\n index,\n disabled\n }, valueLabelProps, {\n children: typeof valueLabelFormat === 'function' ? valueLabelFormat(scale(value), index) : valueLabelFormat\n })) : null]\n }), index);\n })]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Slider.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 label of the slider.\n */\n 'aria-label': chainPropTypes(PropTypes.string, props => {\n const range = Array.isArray(props.value || props.defaultValue);\n if (range && props['aria-label'] != null) {\n return new Error('MUI: You need to use the `getAriaLabel` prop instead of `aria-label` when using a range slider.');\n }\n return null;\n }),\n /**\n * The id of the element containing a label for the slider.\n */\n 'aria-labelledby': PropTypes.string,\n /**\n * A string value that provides a user-friendly name for the current value of the slider.\n */\n 'aria-valuetext': chainPropTypes(PropTypes.string, props => {\n const range = Array.isArray(props.value || props.defaultValue);\n if (range && props['aria-valuetext'] != null) {\n return new Error('MUI: You need to use the `getAriaValueText` prop instead of `aria-valuetext` when using a range slider.');\n }\n return null;\n }),\n /**\n * The default value. Use when the component is not controlled.\n */\n defaultValue: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.number), PropTypes.number]),\n /**\n * If `true`, the component is disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, the active thumb doesn't swap when moving pointer over a thumb while dragging another thumb.\n * @default false\n */\n disableSwap: PropTypes.bool,\n /**\n * Accepts a function which returns a string value that provides a user-friendly name for the thumb labels of the slider.\n * This is important for screen reader users.\n * @param {number} index The thumb label's index to format.\n * @returns {string}\n */\n getAriaLabel: PropTypes.func,\n /**\n * Accepts a function which returns a string value that provides a user-friendly name for the current value of the slider.\n * This is important for screen reader users.\n * @param {number} value The thumb label's value to format.\n * @param {number} index The thumb label's index to format.\n * @returns {string}\n */\n getAriaValueText: PropTypes.func,\n /**\n * If `true` the Slider will be rendered right-to-left (with the lowest value on the right-hand side).\n * @default false\n */\n isRtl: PropTypes.bool,\n /**\n * Marks indicate predetermined values to which the user can move the slider.\n * If `true` the marks are spaced according the value of the `step` prop.\n * If an array, it should contain objects with `value` and an optional `label` keys.\n * @default false\n */\n marks: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.shape({\n label: PropTypes.node,\n value: PropTypes.number.isRequired\n })), PropTypes.bool]),\n /**\n * The maximum allowed value of the slider.\n * Should not be equal to min.\n * @default 100\n */\n max: PropTypes.number,\n /**\n * The minimum allowed value of the slider.\n * Should not be equal to max.\n * @default 0\n */\n min: PropTypes.number,\n /**\n * Name attribute of the hidden `input` element.\n */\n name: PropTypes.string,\n /**\n * Callback function that is fired when the slider's value changed.\n *\n * @param {Event} event The event source of the callback.\n * You can pull out the new value by accessing `event.target.value` (any).\n * **Warning**: This is a generic event not a change event.\n * @param {number | number[]} value The new value.\n * @param {number} activeThumb Index of the currently moved thumb.\n */\n onChange: PropTypes.func,\n /**\n * Callback function that is fired when the `mouseup` is triggered.\n *\n * @param {React.SyntheticEvent | Event} event The event source of the callback. **Warning**: This is a generic event not a change event.\n * @param {number | number[]} value The new value.\n */\n onChangeCommitted: PropTypes.func,\n /**\n * The component orientation.\n * @default 'horizontal'\n */\n orientation: PropTypes.oneOf(['horizontal', 'vertical']),\n /**\n * A transformation function, to change the scale of the slider.\n * @param {any} x\n * @returns {any}\n * @default function Identity(x) {\n * return x;\n * }\n */\n scale: PropTypes.func,\n /**\n * The granularity with which the slider can step through values when using Page Up/Page Down or Shift + Arrow Up/Arrow Down.\n * @default 10\n */\n shiftStep: PropTypes.number,\n /**\n * The props used for each slot inside the Slider.\n * @default {}\n */\n slotProps: PropTypes.shape({\n input: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n mark: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n markLabel: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n rail: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n root: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n thumb: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n track: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n valueLabel: PropTypes.oneOfType([PropTypes.any, PropTypes.func])\n }),\n /**\n * The components used for each slot inside the Slider.\n * Either a string to use a HTML element or a component.\n * @default {}\n */\n slots: PropTypes.shape({\n input: PropTypes.elementType,\n mark: PropTypes.elementType,\n markLabel: PropTypes.elementType,\n rail: PropTypes.elementType,\n root: PropTypes.elementType,\n thumb: PropTypes.elementType,\n track: PropTypes.elementType,\n valueLabel: PropTypes.elementType\n }),\n /**\n * The granularity with which the slider can step through values. (A \"discrete\" slider.)\n * The `min` prop serves as the origin for the valid values.\n * We recommend (max - min) to be evenly divisible by the step.\n *\n * When step is `null`, the thumb can only be slid onto marks provided with the `marks` prop.\n * @default 1\n */\n step: PropTypes.number,\n /**\n * Tab index attribute of the hidden `input` element.\n */\n tabIndex: PropTypes.number,\n /**\n * The track presentation:\n *\n * - `normal` the track will render a bar representing the slider value.\n * - `inverted` the track will render a bar representing the remaining slider value.\n * - `false` the track will render without a bar.\n * @default 'normal'\n */\n track: PropTypes.oneOf(['inverted', 'normal', false]),\n /**\n * The value of the slider.\n * For ranged sliders, provide an array with two values.\n */\n value: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.number), PropTypes.number]),\n /**\n * The format function the value label's value.\n *\n * When a function is provided, it should have the following signature:\n *\n * - {number} value The value label's value to format\n * - {number} index The value label's index to format\n * @param {any} x\n * @returns {any}\n * @default function Identity(x) {\n * return x;\n * }\n */\n valueLabelFormat: PropTypes.oneOfType([PropTypes.func, PropTypes.string])\n} : void 0;\nexport { Slider };", "import { generateUtilityClasses } from '../generateUtilityClasses';\nimport { generateUtilityClass } from '../generateUtilityClass';\nconst COMPONENT_NAME = 'Slider';\nexport function getSliderUtilityClass(slot) {\n return generateUtilityClass(COMPONENT_NAME, slot);\n}\nexport const sliderClasses = generateUtilityClasses(COMPONENT_NAME, ['root', 'active', 'focusVisible', 'disabled', 'dragging', 'marked', 'vertical', 'trackInverted', 'trackFalse', 'rail', 'track', 'mark', 'markActive', 'markLabel', 'markLabelActive', 'thumb']);", "'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { unstable_ownerDocument as ownerDocument, unstable_useControlled as useControlled, unstable_useEnhancedEffect as useEnhancedEffect, unstable_useEventCallback as useEventCallback, unstable_useForkRef as useForkRef, unstable_useIsFocusVisible as useIsFocusVisible, visuallyHidden, clamp } from '@mui/utils';\nimport { areArraysEqual, extractEventHandlers } from '../utils';\nconst INTENTIONAL_DRAG_COUNT_THRESHOLD = 2;\nfunction asc(a, b) {\n return a - b;\n}\nfunction findClosest(values, currentValue) {\n var _values$reduce;\n const {\n index: closestIndex\n } = (_values$reduce = values.reduce((acc, value, index) => {\n const distance = Math.abs(currentValue - value);\n if (acc === null || distance < acc.distance || distance === acc.distance) {\n return {\n distance,\n index\n };\n }\n return acc;\n }, null)) != null ? _values$reduce : {};\n return closestIndex;\n}\nfunction trackFinger(event, touchId) {\n // The event is TouchEvent\n if (touchId.current !== undefined && event.changedTouches) {\n const touchEvent = event;\n for (let i = 0; i < touchEvent.changedTouches.length; i += 1) {\n const touch = touchEvent.changedTouches[i];\n if (touch.identifier === touchId.current) {\n return {\n x: touch.clientX,\n y: touch.clientY\n };\n }\n }\n return false;\n }\n\n // The event is MouseEvent\n return {\n x: event.clientX,\n y: event.clientY\n };\n}\nexport function valueToPercent(value, min, max) {\n return (value - min) * 100 / (max - min);\n}\nfunction percentToValue(percent, min, max) {\n return (max - min) * percent + min;\n}\nfunction getDecimalPrecision(num) {\n // This handles the case when num is very small (0.00000001), js will turn this into 1e-8.\n // When num is bigger than 1 or less than -1 it won't get converted to this notation so it's fine.\n if (Math.abs(num) < 1) {\n const parts = num.toExponential().split('e-');\n const matissaDecimalPart = parts[0].split('.')[1];\n return (matissaDecimalPart ? matissaDecimalPart.length : 0) + parseInt(parts[1], 10);\n }\n const decimalPart = num.toString().split('.')[1];\n return decimalPart ? decimalPart.length : 0;\n}\nfunction roundValueToStep(value, step, min) {\n const nearest = Math.round((value - min) / step) * step + min;\n return Number(nearest.toFixed(getDecimalPrecision(step)));\n}\nfunction setValueIndex({\n values,\n newValue,\n index\n}) {\n const output = values.slice();\n output[index] = newValue;\n return output.sort(asc);\n}\nfunction focusThumb({\n sliderRef,\n activeIndex,\n setActive\n}) {\n var _sliderRef$current, _doc$activeElement;\n const doc = ownerDocument(sliderRef.current);\n if (!((_sliderRef$current = sliderRef.current) != null && _sliderRef$current.contains(doc.activeElement)) || Number(doc == null || (_doc$activeElement = doc.activeElement) == null ? void 0 : _doc$activeElement.getAttribute('data-index')) !== activeIndex) {\n var _sliderRef$current2;\n (_sliderRef$current2 = sliderRef.current) == null || _sliderRef$current2.querySelector(`[type=\"range\"][data-index=\"${activeIndex}\"]`).focus();\n }\n if (setActive) {\n setActive(activeIndex);\n }\n}\nfunction areValuesEqual(newValue, oldValue) {\n if (typeof newValue === 'number' && typeof oldValue === 'number') {\n return newValue === oldValue;\n }\n if (typeof newValue === 'object' && typeof oldValue === 'object') {\n return areArraysEqual(newValue, oldValue);\n }\n return false;\n}\nconst axisProps = {\n horizontal: {\n offset: percent => ({\n left: `${percent}%`\n }),\n leap: percent => ({\n width: `${percent}%`\n })\n },\n 'horizontal-reverse': {\n offset: percent => ({\n right: `${percent}%`\n }),\n leap: percent => ({\n width: `${percent}%`\n })\n },\n vertical: {\n offset: percent => ({\n bottom: `${percent}%`\n }),\n leap: percent => ({\n height: `${percent}%`\n })\n }\n};\nexport const Identity = x => x;\n\n// TODO: remove support for Safari < 13.\n// https://caniuse.com/#search=touch-action\n//\n// Safari, on iOS, supports touch action since v13.\n// Over 80% of the iOS phones are compatible\n// in August 2020.\n// Utilizing the CSS.supports method to check if touch-action is supported.\n// Since CSS.supports is supported on all but Edge@12 and IE and touch-action\n// is supported on both Edge@12 and IE if CSS.supports is not available that means that\n// touch-action will be supported\nlet cachedSupportsTouchActionNone;\nfunction doesSupportTouchActionNone() {\n if (cachedSupportsTouchActionNone === undefined) {\n if (typeof CSS !== 'undefined' && typeof CSS.supports === 'function') {\n cachedSupportsTouchActionNone = CSS.supports('touch-action', 'none');\n } else {\n cachedSupportsTouchActionNone = true;\n }\n }\n return cachedSupportsTouchActionNone;\n}\n/**\n *\n * Demos:\n *\n * - [Slider](https://mui.com/base-ui/react-slider/#hook)\n *\n * API:\n *\n * - [useSlider API](https://mui.com/base-ui/react-slider/hooks-api/#use-slider)\n */\nexport function useSlider(parameters) {\n const {\n 'aria-labelledby': ariaLabelledby,\n defaultValue,\n disabled = false,\n disableSwap = false,\n isRtl = false,\n marks: marksProp = false,\n max = 100,\n min = 0,\n name,\n onChange,\n onChangeCommitted,\n orientation = 'horizontal',\n rootRef: ref,\n scale = Identity,\n step = 1,\n shiftStep = 10,\n tabIndex,\n value: valueProp\n } = parameters;\n const touchId = React.useRef();\n // We can't use the :active browser pseudo-classes.\n // - The active state isn't triggered when clicking on the rail.\n // - The active state isn't transferred when inversing a range slider.\n const [active, setActive] = React.useState(-1);\n const [open, setOpen] = React.useState(-1);\n const [dragging, setDragging] = React.useState(false);\n const moveCount = React.useRef(0);\n const [valueDerived, setValueState] = useControlled({\n controlled: valueProp,\n default: defaultValue != null ? defaultValue : min,\n name: 'Slider'\n });\n const handleChange = onChange && ((event, value, thumbIndex) => {\n // Redefine target to allow name and value to be read.\n // This allows seamless integration with the most popular form libraries.\n // https://github.com/mui/material-ui/issues/13485#issuecomment-676048492\n // Clone the event to not override `target` of the original event.\n const nativeEvent = event.nativeEvent || event;\n // @ts-ignore The nativeEvent is function, not object\n const clonedEvent = new nativeEvent.constructor(nativeEvent.type, nativeEvent);\n Object.defineProperty(clonedEvent, 'target', {\n writable: true,\n value: {\n value,\n name\n }\n });\n onChange(clonedEvent, value, thumbIndex);\n });\n const range = Array.isArray(valueDerived);\n let values = range ? valueDerived.slice().sort(asc) : [valueDerived];\n values = values.map(value => value == null ? min : clamp(value, min, max));\n const marks = marksProp === true && step !== null ? [...Array(Math.floor((max - min) / step) + 1)].map((_, index) => ({\n value: min + step * index\n })) : marksProp || [];\n const marksValues = marks.map(mark => mark.value);\n const {\n isFocusVisibleRef,\n onBlur: handleBlurVisible,\n onFocus: handleFocusVisible,\n ref: focusVisibleRef\n } = useIsFocusVisible();\n const [focusedThumbIndex, setFocusedThumbIndex] = React.useState(-1);\n const sliderRef = React.useRef();\n const handleFocusRef = useForkRef(focusVisibleRef, sliderRef);\n const handleRef = useForkRef(ref, handleFocusRef);\n const createHandleHiddenInputFocus = otherHandlers => event => {\n var _otherHandlers$onFocu;\n const index = Number(event.currentTarget.getAttribute('data-index'));\n handleFocusVisible(event);\n if (isFocusVisibleRef.current === true) {\n setFocusedThumbIndex(index);\n }\n setOpen(index);\n otherHandlers == null || (_otherHandlers$onFocu = otherHandlers.onFocus) == null || _otherHandlers$onFocu.call(otherHandlers, event);\n };\n const createHandleHiddenInputBlur = otherHandlers => event => {\n var _otherHandlers$onBlur;\n handleBlurVisible(event);\n if (isFocusVisibleRef.current === false) {\n setFocusedThumbIndex(-1);\n }\n setOpen(-1);\n otherHandlers == null || (_otherHandlers$onBlur = otherHandlers.onBlur) == null || _otherHandlers$onBlur.call(otherHandlers, event);\n };\n const changeValue = (event, valueInput) => {\n const index = Number(event.currentTarget.getAttribute('data-index'));\n const value = values[index];\n const marksIndex = marksValues.indexOf(value);\n let newValue = valueInput;\n if (marks && step == null) {\n const maxMarksValue = marksValues[marksValues.length - 1];\n if (newValue > maxMarksValue) {\n newValue = maxMarksValue;\n } else if (newValue < marksValues[0]) {\n newValue = marksValues[0];\n } else {\n newValue = newValue < value ? marksValues[marksIndex - 1] : marksValues[marksIndex + 1];\n }\n }\n newValue = clamp(newValue, min, max);\n if (range) {\n // Bound the new value to the thumb's neighbours.\n if (disableSwap) {\n newValue = clamp(newValue, values[index - 1] || -Infinity, values[index + 1] || Infinity);\n }\n const previousValue = newValue;\n newValue = setValueIndex({\n values,\n newValue,\n index\n });\n let activeIndex = index;\n\n // Potentially swap the index if needed.\n if (!disableSwap) {\n activeIndex = newValue.indexOf(previousValue);\n }\n focusThumb({\n sliderRef,\n activeIndex\n });\n }\n setValueState(newValue);\n setFocusedThumbIndex(index);\n if (handleChange && !areValuesEqual(newValue, valueDerived)) {\n handleChange(event, newValue, index);\n }\n if (onChangeCommitted) {\n onChangeCommitted(event, newValue);\n }\n };\n const createHandleHiddenInputKeyDown = otherHandlers => event => {\n var _otherHandlers$onKeyD;\n // The Shift + Up/Down keyboard shortcuts for moving the slider makes sense to be supported\n // only if the step is defined. If the step is null, this means tha the marks are used for specifying the valid values.\n if (step !== null) {\n const index = Number(event.currentTarget.getAttribute('data-index'));\n const value = values[index];\n let newValue = null;\n if ((event.key === 'ArrowLeft' || event.key === 'ArrowDown') && event.shiftKey || event.key === 'PageDown') {\n newValue = Math.max(value - shiftStep, min);\n } else if ((event.key === 'ArrowRight' || event.key === 'ArrowUp') && event.shiftKey || event.key === 'PageUp') {\n newValue = Math.min(value + shiftStep, max);\n }\n if (newValue !== null) {\n changeValue(event, newValue);\n event.preventDefault();\n }\n }\n otherHandlers == null || (_otherHandlers$onKeyD = otherHandlers.onKeyDown) == null || _otherHandlers$onKeyD.call(otherHandlers, event);\n };\n useEnhancedEffect(() => {\n if (disabled && sliderRef.current.contains(document.activeElement)) {\n var _document$activeEleme;\n // This is necessary because Firefox and Safari will keep focus\n // on a disabled element:\n // https://codesandbox.io/p/sandbox/mui-pr-22247-forked-h151h?file=/src/App.js\n // @ts-ignore\n (_document$activeEleme = document.activeElement) == null || _document$activeEleme.blur();\n }\n }, [disabled]);\n if (disabled && active !== -1) {\n setActive(-1);\n }\n if (disabled && focusedThumbIndex !== -1) {\n setFocusedThumbIndex(-1);\n }\n const createHandleHiddenInputChange = otherHandlers => event => {\n var _otherHandlers$onChan;\n (_otherHandlers$onChan = otherHandlers.onChange) == null || _otherHandlers$onChan.call(otherHandlers, event);\n // @ts-ignore\n changeValue(event, event.target.valueAsNumber);\n };\n const previousIndex = React.useRef();\n let axis = orientation;\n if (isRtl && orientation === 'horizontal') {\n axis += '-reverse';\n }\n const getFingerNewValue = ({\n finger,\n move = false\n }) => {\n const {\n current: slider\n } = sliderRef;\n const {\n width,\n height,\n bottom,\n left\n } = slider.getBoundingClientRect();\n let percent;\n if (axis.indexOf('vertical') === 0) {\n percent = (bottom - finger.y) / height;\n } else {\n percent = (finger.x - left) / width;\n }\n if (axis.indexOf('-reverse') !== -1) {\n percent = 1 - percent;\n }\n let newValue;\n newValue = percentToValue(percent, min, max);\n if (step) {\n newValue = roundValueToStep(newValue, step, min);\n } else {\n const closestIndex = findClosest(marksValues, newValue);\n newValue = marksValues[closestIndex];\n }\n newValue = clamp(newValue, min, max);\n let activeIndex = 0;\n if (range) {\n if (!move) {\n activeIndex = findClosest(values, newValue);\n } else {\n activeIndex = previousIndex.current;\n }\n\n // Bound the new value to the thumb's neighbours.\n if (disableSwap) {\n newValue = clamp(newValue, values[activeIndex - 1] || -Infinity, values[activeIndex + 1] || Infinity);\n }\n const previousValue = newValue;\n newValue = setValueIndex({\n values,\n newValue,\n index: activeIndex\n });\n\n // Potentially swap the index if needed.\n if (!(disableSwap && move)) {\n activeIndex = newValue.indexOf(previousValue);\n previousIndex.current = activeIndex;\n }\n }\n return {\n newValue,\n activeIndex\n };\n };\n const handleTouchMove = useEventCallback(nativeEvent => {\n const finger = trackFinger(nativeEvent, touchId);\n if (!finger) {\n return;\n }\n moveCount.current += 1;\n\n // Cancel move in case some other element consumed a mouseup event and it was not fired.\n // @ts-ignore buttons doesn't not exists on touch event\n if (nativeEvent.type === 'mousemove' && nativeEvent.buttons === 0) {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n handleTouchEnd(nativeEvent);\n return;\n }\n const {\n newValue,\n activeIndex\n } = getFingerNewValue({\n finger,\n move: true\n });\n focusThumb({\n sliderRef,\n activeIndex,\n setActive\n });\n setValueState(newValue);\n if (!dragging && moveCount.current > INTENTIONAL_DRAG_COUNT_THRESHOLD) {\n setDragging(true);\n }\n if (handleChange && !areValuesEqual(newValue, valueDerived)) {\n handleChange(nativeEvent, newValue, activeIndex);\n }\n });\n const handleTouchEnd = useEventCallback(nativeEvent => {\n const finger = trackFinger(nativeEvent, touchId);\n setDragging(false);\n if (!finger) {\n return;\n }\n const {\n newValue\n } = getFingerNewValue({\n finger,\n move: true\n });\n setActive(-1);\n if (nativeEvent.type === 'touchend') {\n setOpen(-1);\n }\n if (onChangeCommitted) {\n onChangeCommitted(nativeEvent, newValue);\n }\n touchId.current = undefined;\n\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n stopListening();\n });\n const handleTouchStart = useEventCallback(nativeEvent => {\n if (disabled) {\n return;\n }\n // If touch-action: none; is not supported we need to prevent the scroll manually.\n if (!doesSupportTouchActionNone()) {\n nativeEvent.preventDefault();\n }\n const touch = nativeEvent.changedTouches[0];\n if (touch != null) {\n // A number that uniquely identifies the current finger in the touch session.\n touchId.current = touch.identifier;\n }\n const finger = trackFinger(nativeEvent, touchId);\n if (finger !== false) {\n const {\n newValue,\n activeIndex\n } = getFingerNewValue({\n finger\n });\n focusThumb({\n sliderRef,\n activeIndex,\n setActive\n });\n setValueState(newValue);\n if (handleChange && !areValuesEqual(newValue, valueDerived)) {\n handleChange(nativeEvent, newValue, activeIndex);\n }\n }\n moveCount.current = 0;\n const doc = ownerDocument(sliderRef.current);\n doc.addEventListener('touchmove', handleTouchMove, {\n passive: true\n });\n doc.addEventListener('touchend', handleTouchEnd, {\n passive: true\n });\n });\n const stopListening = React.useCallback(() => {\n const doc = ownerDocument(sliderRef.current);\n doc.removeEventListener('mousemove', handleTouchMove);\n doc.removeEventListener('mouseup', handleTouchEnd);\n doc.removeEventListener('touchmove', handleTouchMove);\n doc.removeEventListener('touchend', handleTouchEnd);\n }, [handleTouchEnd, handleTouchMove]);\n React.useEffect(() => {\n const {\n current: slider\n } = sliderRef;\n slider.addEventListener('touchstart', handleTouchStart, {\n passive: doesSupportTouchActionNone()\n });\n return () => {\n slider.removeEventListener('touchstart', handleTouchStart);\n stopListening();\n };\n }, [stopListening, handleTouchStart]);\n React.useEffect(() => {\n if (disabled) {\n stopListening();\n }\n }, [disabled, stopListening]);\n const createHandleMouseDown = otherHandlers => event => {\n var _otherHandlers$onMous;\n (_otherHandlers$onMous = otherHandlers.onMouseDown) == null || _otherHandlers$onMous.call(otherHandlers, event);\n if (disabled) {\n return;\n }\n if (event.defaultPrevented) {\n return;\n }\n\n // Only handle left clicks\n if (event.button !== 0) {\n return;\n }\n\n // Avoid text selection\n event.preventDefault();\n const finger = trackFinger(event, touchId);\n if (finger !== false) {\n const {\n newValue,\n activeIndex\n } = getFingerNewValue({\n finger\n });\n focusThumb({\n sliderRef,\n activeIndex,\n setActive\n });\n setValueState(newValue);\n if (handleChange && !areValuesEqual(newValue, valueDerived)) {\n handleChange(event, newValue, activeIndex);\n }\n }\n moveCount.current = 0;\n const doc = ownerDocument(sliderRef.current);\n doc.addEventListener('mousemove', handleTouchMove, {\n passive: true\n });\n doc.addEventListener('mouseup', handleTouchEnd);\n };\n const trackOffset = valueToPercent(range ? values[0] : min, min, max);\n const trackLeap = valueToPercent(values[values.length - 1], min, max) - trackOffset;\n const getRootProps = (externalProps = {}) => {\n const externalHandlers = extractEventHandlers(externalProps);\n const ownEventHandlers = {\n onMouseDown: createHandleMouseDown(externalHandlers || {})\n };\n const mergedEventHandlers = _extends({}, externalHandlers, ownEventHandlers);\n return _extends({}, externalProps, {\n ref: handleRef\n }, mergedEventHandlers);\n };\n const createHandleMouseOver = otherHandlers => event => {\n var _otherHandlers$onMous2;\n (_otherHandlers$onMous2 = otherHandlers.onMouseOver) == null || _otherHandlers$onMous2.call(otherHandlers, event);\n const index = Number(event.currentTarget.getAttribute('data-index'));\n setOpen(index);\n };\n const createHandleMouseLeave = otherHandlers => event => {\n var _otherHandlers$onMous3;\n (_otherHandlers$onMous3 = otherHandlers.onMouseLeave) == null || _otherHandlers$onMous3.call(otherHandlers, event);\n setOpen(-1);\n };\n const getThumbProps = (externalProps = {}) => {\n const externalHandlers = extractEventHandlers(externalProps);\n const ownEventHandlers = {\n onMouseOver: createHandleMouseOver(externalHandlers || {}),\n onMouseLeave: createHandleMouseLeave(externalHandlers || {})\n };\n return _extends({}, externalProps, externalHandlers, ownEventHandlers);\n };\n const getThumbStyle = index => {\n return {\n // So the non active thumb doesn't show its label on hover.\n pointerEvents: active !== -1 && active !== index ? 'none' : undefined\n };\n };\n const getHiddenInputProps = (externalProps = {}) => {\n var _parameters$step;\n const externalHandlers = extractEventHandlers(externalProps);\n const ownEventHandlers = {\n onChange: createHandleHiddenInputChange(externalHandlers || {}),\n onFocus: createHandleHiddenInputFocus(externalHandlers || {}),\n onBlur: createHandleHiddenInputBlur(externalHandlers || {}),\n onKeyDown: createHandleHiddenInputKeyDown(externalHandlers || {})\n };\n const mergedEventHandlers = _extends({}, externalHandlers, ownEventHandlers);\n return _extends({\n tabIndex,\n 'aria-labelledby': ariaLabelledby,\n 'aria-orientation': orientation,\n 'aria-valuemax': scale(max),\n 'aria-valuemin': scale(min),\n name,\n type: 'range',\n min: parameters.min,\n max: parameters.max,\n step: parameters.step === null && parameters.marks ? 'any' : (_parameters$step = parameters.step) != null ? _parameters$step : undefined,\n disabled\n }, externalProps, mergedEventHandlers, {\n style: _extends({}, visuallyHidden, {\n direction: isRtl ? 'rtl' : 'ltr',\n // So that VoiceOver's focus indicator matches the thumb's dimensions\n width: '100%',\n height: '100%'\n })\n });\n };\n return {\n active,\n axis: axis,\n axisProps,\n dragging,\n focusedThumbIndex,\n getHiddenInputProps,\n getRootProps,\n getThumbProps,\n marks: marks,\n open,\n range,\n rootRef: handleRef,\n trackLeap,\n trackOffset,\n values,\n getThumbStyle\n };\n}", "'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"autoHideDuration\", \"children\", \"disableWindowBlurListener\", \"exited\", \"onBlur\", \"onClose\", \"onFocus\", \"onMouseEnter\", \"onMouseLeave\", \"open\", \"resumeHideDuration\", \"slotProps\", \"slots\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { ClickAwayListener } from '../ClickAwayListener';\nimport { unstable_composeClasses as composeClasses } from '../composeClasses';\nimport { getSnackbarUtilityClass } from './snackbarClasses';\nimport { useSnackbar } from '../useSnackbar';\nimport { useSlotProps } from '../utils';\nimport { useClassNamesOverride } from '../utils/ClassNameConfigurator';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = () => {\n const slots = {\n root: ['root']\n };\n return composeClasses(slots, useClassNamesOverride(getSnackbarUtilityClass));\n};\n/**\n *\n * Demos:\n *\n * - [Snackbar](https://mui.com/base-ui/react-snackbar/)\n * - [Snackbar](https://mui.com/joy-ui/react-snackbar/)\n * - [Snackbar](https://mui.com/material-ui/react-snackbar/)\n *\n * API:\n *\n * - [Snackbar API](https://mui.com/base-ui/react-snackbar/components-api/#snackbar)\n */\nconst Snackbar = /*#__PURE__*/React.forwardRef(function Snackbar(props, forwardedRef) {\n const {\n autoHideDuration = null,\n children,\n disableWindowBlurListener = false,\n exited = true,\n onClose,\n open,\n resumeHideDuration,\n slotProps = {},\n slots = {}\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const classes = useUtilityClasses();\n const {\n getRootProps,\n onClickAway\n } = useSnackbar(_extends({}, props, {\n autoHideDuration,\n disableWindowBlurListener,\n onClose,\n open,\n resumeHideDuration\n }));\n const ownerState = props;\n const Root = slots.root || 'div';\n const rootProps = useSlotProps({\n elementType: Root,\n getSlotProps: getRootProps,\n externalForwardedProps: other,\n externalSlotProps: slotProps.root,\n additionalProps: {\n ref: forwardedRef\n },\n ownerState,\n className: classes.root\n });\n const clickAwayListenerProps = useSlotProps({\n elementType: ClickAwayListener,\n externalSlotProps: slotProps.clickAwayListener,\n additionalProps: {\n onClickAway\n },\n ownerState\n });\n\n // ClickAwayListener doesn't support ownerState\n delete clickAwayListenerProps.ownerState;\n\n // So that we only render active snackbars.\n if (!open && exited) {\n return null;\n }\n return /*#__PURE__*/_jsx(ClickAwayListener, _extends({}, clickAwayListenerProps, {\n children: /*#__PURE__*/_jsx(Root, _extends({}, rootProps, {\n children: children\n }))\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Snackbar.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 number of milliseconds to wait before automatically calling the\n * `onClose` function. `onClose` should then set the state of the `open`\n * prop to hide the Snackbar. This behavior is disabled by default with\n * the `null` value.\n * @default null\n */\n autoHideDuration: PropTypes.number,\n /**\n * @ignore\n */\n children: PropTypes.node,\n /**\n * If `true`, the `autoHideDuration` timer will expire even if the window is not focused.\n * @default false\n */\n disableWindowBlurListener: PropTypes.bool,\n /**\n * The prop used to handle exited transition and unmount the component.\n * @default true\n */\n exited: PropTypes.bool,\n /**\n * Callback fired when the component requests to be closed.\n * Typically `onClose` is used to set state in the parent component,\n * which is used to control the `Snackbar` `open` prop.\n * The `reason` parameter can optionally be used to control the response to `onClose`,\n * for example ignoring `clickaway`.\n *\n * @param {React.SyntheticEvent<any> | Event} event The event source of the callback.\n * @param {string} reason Can be: `\"timeout\"` (`autoHideDuration` expired), `\"clickaway\"`, or `\"escapeKeyDown\"`.\n */\n onClose: PropTypes.func,\n /**\n * If `true`, the component is shown.\n */\n open: PropTypes.bool,\n /**\n * The number of milliseconds to wait before dismissing after user interaction.\n * If `autoHideDuration` prop isn't specified, it does nothing.\n * If `autoHideDuration` prop is specified but `resumeHideDuration` isn't,\n * we default to `autoHideDuration / 2` ms.\n */\n resumeHideDuration: PropTypes.number,\n /**\n * The props used for each slot inside the Snackbar.\n * @default {}\n */\n slotProps: PropTypes.shape({\n clickAwayListener: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({\n children: PropTypes.element.isRequired,\n disableReactTree: PropTypes.bool,\n mouseEvent: PropTypes.oneOf(['onClick', 'onMouseDown', 'onMouseUp', 'onPointerDown', 'onPointerUp', false]),\n onClickAway: PropTypes.func,\n touchEvent: PropTypes.oneOf(['onTouchEnd', 'onTouchStart', false])\n })]),\n root: PropTypes.oneOfType([PropTypes.func, PropTypes.object])\n }),\n /**\n * The components used for each slot inside the Snackbar.\n * Either a string to use a HTML element or a component.\n * @default {}\n */\n slots: PropTypes.shape({\n root: PropTypes.elementType\n })\n} : void 0;\nexport { Snackbar };", "import { generateUtilityClass } from '../generateUtilityClass';\nimport { generateUtilityClasses } from '../generateUtilityClasses';\nconst COMPONENT_NAME = 'Snackbar';\nexport function getSnackbarUtilityClass(slot) {\n return generateUtilityClass(COMPONENT_NAME, slot);\n}\nexport const snackbarClasses = generateUtilityClasses(COMPONENT_NAME, ['root']);", "'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { unstable_useEventCallback as useEventCallback, unstable_useTimeout as useTimeout } from '@mui/utils';\nimport { extractEventHandlers } from '../utils/extractEventHandlers';\n/**\n * The basic building block for creating custom snackbar.\n *\n * Demos:\n *\n * - [Snackbar](https://mui.com/base-ui/react-snackbar/#hook)\n *\n * API:\n *\n * - [useSnackbar API](https://mui.com/base-ui/react-snackbar/hooks-api/#use-snackbar)\n */\nexport function useSnackbar(parameters = {}) {\n const {\n autoHideDuration = null,\n disableWindowBlurListener = false,\n onClose,\n open,\n resumeHideDuration\n } = parameters;\n const timerAutoHide = useTimeout();\n React.useEffect(() => {\n if (!open) {\n return undefined;\n }\n\n /**\n * @param {KeyboardEvent} nativeEvent\n */\n function handleKeyDown(nativeEvent) {\n if (!nativeEvent.defaultPrevented) {\n // IE11, Edge (prior to using Blink?) use 'Esc'\n if (nativeEvent.key === 'Escape' || nativeEvent.key === 'Esc') {\n // not calling `preventDefault` since we don't know if people may ignore this event e.g. a permanently open snackbar\n onClose == null || onClose(nativeEvent, 'escapeKeyDown');\n }\n }\n }\n document.addEventListener('keydown', handleKeyDown);\n return () => {\n document.removeEventListener('keydown', handleKeyDown);\n };\n }, [open, onClose]);\n const handleClose = useEventCallback((event, reason) => {\n onClose == null || onClose(event, reason);\n });\n const setAutoHideTimer = useEventCallback(autoHideDurationParam => {\n if (!onClose || autoHideDurationParam == null) {\n return;\n }\n timerAutoHide.start(autoHideDurationParam, () => {\n handleClose(null, 'timeout');\n });\n });\n React.useEffect(() => {\n if (open) {\n setAutoHideTimer(autoHideDuration);\n }\n return timerAutoHide.clear;\n }, [open, autoHideDuration, setAutoHideTimer, timerAutoHide]);\n const handleClickAway = event => {\n onClose == null || onClose(event, 'clickaway');\n };\n\n // Pause the timer when the user is interacting with the Snackbar\n // or when the user hide the window.\n const handlePause = timerAutoHide.clear;\n\n // Restart the timer when the user is no longer interacting with the Snackbar\n // or when the window is shown back.\n const handleResume = React.useCallback(() => {\n if (autoHideDuration != null) {\n setAutoHideTimer(resumeHideDuration != null ? resumeHideDuration : autoHideDuration * 0.5);\n }\n }, [autoHideDuration, resumeHideDuration, setAutoHideTimer]);\n const createHandleBlur = otherHandlers => event => {\n const onBlurCallback = otherHandlers.onBlur;\n onBlurCallback == null || onBlurCallback(event);\n handleResume();\n };\n const createHandleFocus = otherHandlers => event => {\n const onFocusCallback = otherHandlers.onFocus;\n onFocusCallback == null || onFocusCallback(event);\n handlePause();\n };\n const createMouseEnter = otherHandlers => event => {\n const onMouseEnterCallback = otherHandlers.onMouseEnter;\n onMouseEnterCallback == null || onMouseEnterCallback(event);\n handlePause();\n };\n const createMouseLeave = otherHandlers => event => {\n const onMouseLeaveCallback = otherHandlers.onMouseLeave;\n onMouseLeaveCallback == null || onMouseLeaveCallback(event);\n handleResume();\n };\n React.useEffect(() => {\n // TODO: window global should be refactored here\n if (!disableWindowBlurListener && open) {\n window.addEventListener('focus', handleResume);\n window.addEventListener('blur', handlePause);\n return () => {\n window.removeEventListener('focus', handleResume);\n window.removeEventListener('blur', handlePause);\n };\n }\n return undefined;\n }, [disableWindowBlurListener, open, handleResume, handlePause]);\n const getRootProps = (externalProps = {}) => {\n const externalEventHandlers = _extends({}, extractEventHandlers(parameters), extractEventHandlers(externalProps));\n return _extends({\n // ClickAwayListener adds an `onClick` prop which results in the alert not being announced.\n // See https://github.com/mui/material-ui/issues/29080\n role: 'presentation'\n }, externalProps, externalEventHandlers, {\n onBlur: createHandleBlur(externalEventHandlers),\n onFocus: createHandleFocus(externalEventHandlers),\n onMouseEnter: createMouseEnter(externalEventHandlers),\n onMouseLeave: createMouseLeave(externalEventHandlers)\n });\n };\n return {\n getRootProps,\n onClickAway: handleClickAway\n };\n}", "'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"checked\", \"defaultChecked\", \"disabled\", \"onBlur\", \"onChange\", \"onFocus\", \"onFocusVisible\", \"readOnly\", \"required\", \"slotProps\", \"slots\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { unstable_composeClasses as composeClasses } from '../composeClasses';\nimport { useSwitch } from '../useSwitch';\nimport { useSlotProps } from '../utils';\nimport { useClassNamesOverride } from '../utils/ClassNameConfigurator';\nimport { getSwitchUtilityClass } from './switchClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n checked,\n disabled,\n focusVisible,\n readOnly\n } = ownerState;\n const slots = {\n root: ['root', checked && 'checked', disabled && 'disabled', focusVisible && 'focusVisible', readOnly && 'readOnly'],\n thumb: ['thumb'],\n input: ['input'],\n track: ['track']\n };\n return composeClasses(slots, useClassNamesOverride(getSwitchUtilityClass));\n};\n\n/**\n * The foundation for building custom-styled switches.\n *\n * Demos:\n *\n * - [Switch](https://mui.com/base-ui/react-switch/)\n *\n * API:\n *\n * - [Switch API](https://mui.com/base-ui/react-switch/components-api/#switch)\n */\nconst Switch = /*#__PURE__*/React.forwardRef(function Switch(props, forwardedRef) {\n var _slots$root, _slots$thumb, _slots$input, _slots$track;\n const {\n slotProps = {},\n slots = {}\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const {\n getInputProps,\n checked,\n disabled,\n focusVisible,\n readOnly\n } = useSwitch(props);\n const ownerState = _extends({}, props, {\n checked,\n disabled,\n focusVisible,\n readOnly\n });\n const classes = useUtilityClasses(ownerState);\n const Root = (_slots$root = slots.root) != null ? _slots$root : 'span';\n const rootProps = useSlotProps({\n elementType: Root,\n externalSlotProps: slotProps.root,\n externalForwardedProps: other,\n additionalProps: {\n ref: forwardedRef\n },\n ownerState,\n className: classes.root\n });\n const Thumb = (_slots$thumb = slots.thumb) != null ? _slots$thumb : 'span';\n const thumbProps = useSlotProps({\n elementType: Thumb,\n externalSlotProps: slotProps.thumb,\n ownerState,\n className: classes.thumb\n });\n const Input = (_slots$input = slots.input) != null ? _slots$input : 'input';\n const inputProps = useSlotProps({\n elementType: Input,\n getSlotProps: getInputProps,\n externalSlotProps: slotProps.input,\n ownerState,\n className: classes.input\n });\n const Track = slots.track === null ? () => null : (_slots$track = slots.track) != null ? _slots$track : 'span';\n const trackProps = useSlotProps({\n elementType: Track,\n externalSlotProps: slotProps.track,\n ownerState,\n className: classes.track\n });\n return /*#__PURE__*/_jsxs(Root, _extends({}, rootProps, {\n children: [/*#__PURE__*/_jsx(Track, _extends({}, trackProps)), /*#__PURE__*/_jsx(Thumb, _extends({}, thumbProps)), /*#__PURE__*/_jsx(Input, _extends({}, inputProps))]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Switch.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 * If `true`, the component is checked.\n */\n checked: PropTypes.bool,\n /**\n * Class name applied to the root element.\n */\n className: PropTypes.string,\n /**\n * The default checked state. Use when the component is not controlled.\n */\n defaultChecked: PropTypes.bool,\n /**\n * If `true`, the component is disabled.\n */\n disabled: PropTypes.bool,\n /**\n * @ignore\n */\n onBlur: PropTypes.func,\n /**\n * Callback fired when the state is changed.\n *\n * @param {React.ChangeEvent<HTMLInputElement>} event The event source of the callback.\n * You can pull out the new value by accessing `event.target.value` (string).\n * You can pull out the new checked state by accessing `event.target.checked` (boolean).\n */\n onChange: PropTypes.func,\n /**\n * @ignore\n */\n onFocus: PropTypes.func,\n /**\n * @ignore\n */\n onFocusVisible: PropTypes.func,\n /**\n * If `true`, the component is read only.\n */\n readOnly: PropTypes.bool,\n /**\n * If `true`, the `input` element is required.\n */\n required: PropTypes.bool,\n /**\n * The props used for each slot inside the Switch.\n * @default {}\n */\n slotProps: PropTypes.shape({\n input: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n root: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n thumb: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n track: PropTypes.oneOfType([PropTypes.func, PropTypes.object])\n }),\n /**\n * The components used for each slot inside the Switch.\n * Either a string to use a HTML element or a component.\n * @default {}\n */\n slots: PropTypes /* @typescript-to-proptypes-ignore */.shape({\n input: PropTypes.elementType,\n root: PropTypes.elementType,\n thumb: PropTypes.elementType,\n track: PropTypes.oneOfType([PropTypes.elementType, PropTypes.oneOf([null])])\n })\n} : void 0;\nexport { Switch };", "'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { unstable_useControlled as useControlled, unstable_useForkRef as useForkRef, unstable_useIsFocusVisible as useIsFocusVisible } from '@mui/utils';\n/**\n * The basic building block for creating custom switches.\n *\n * Demos:\n *\n * - [Switch](https://mui.com/base-ui/react-switch/#hook)\n *\n * API:\n *\n * - [useSwitch API](https://mui.com/base-ui/react-switch/hooks-api/#use-switch)\n */\nexport function useSwitch(props) {\n const {\n checked: checkedProp,\n defaultChecked,\n disabled,\n onBlur,\n onChange,\n onFocus,\n onFocusVisible,\n readOnly,\n required\n } = props;\n const [checked, setCheckedState] = useControlled({\n controlled: checkedProp,\n default: Boolean(defaultChecked),\n name: 'Switch',\n state: 'checked'\n });\n const createHandleInputChange = otherProps => event => {\n var _otherProps$onChange;\n // Workaround for https://github.com/facebook/react/issues/9023\n if (event.nativeEvent.defaultPrevented) {\n return;\n }\n setCheckedState(event.target.checked);\n onChange == null || onChange(event);\n (_otherProps$onChange = otherProps.onChange) == null || _otherProps$onChange.call(otherProps, event);\n };\n const {\n isFocusVisibleRef,\n onBlur: handleBlurVisible,\n onFocus: handleFocusVisible,\n ref: focusVisibleRef\n } = useIsFocusVisible();\n const [focusVisible, setFocusVisible] = React.useState(false);\n if (disabled && focusVisible) {\n setFocusVisible(false);\n }\n React.useEffect(() => {\n isFocusVisibleRef.current = focusVisible;\n }, [focusVisible, isFocusVisibleRef]);\n const inputRef = React.useRef(null);\n const createHandleFocus = otherProps => event => {\n var _otherProps$onFocus;\n // Fix for https://github.com/facebook/react/issues/7769\n if (!inputRef.current) {\n inputRef.current = event.currentTarget;\n }\n handleFocusVisible(event);\n if (isFocusVisibleRef.current === true) {\n setFocusVisible(true);\n onFocusVisible == null || onFocusVisible(event);\n }\n onFocus == null || onFocus(event);\n (_otherProps$onFocus = otherProps.onFocus) == null || _otherProps$onFocus.call(otherProps, event);\n };\n const createHandleBlur = otherProps => event => {\n var _otherProps$onBlur;\n handleBlurVisible(event);\n if (isFocusVisibleRef.current === false) {\n setFocusVisible(false);\n }\n onBlur == null || onBlur(event);\n (_otherProps$onBlur = otherProps.onBlur) == null || _otherProps$onBlur.call(otherProps, event);\n };\n const handleInputRef = useForkRef(focusVisibleRef, inputRef);\n const getInputProps = (otherProps = {}) => _extends({\n checked: checkedProp,\n defaultChecked,\n disabled,\n readOnly,\n ref: handleInputRef,\n required,\n type: 'checkbox',\n role: 'switch',\n 'aria-checked': checkedProp\n }, otherProps, {\n onChange: createHandleInputChange(otherProps),\n onFocus: createHandleFocus(otherProps),\n onBlur: createHandleBlur(otherProps)\n });\n return {\n checked,\n disabled: Boolean(disabled),\n focusVisible,\n getInputProps,\n inputRef: handleInputRef,\n readOnly: Boolean(readOnly)\n };\n}", "import { generateUtilityClass } from '../generateUtilityClass';\nimport { generateUtilityClasses } from '../generateUtilityClasses';\nconst COMPONENT_NAME = 'Switch';\nexport function getSwitchUtilityClass(slot) {\n return generateUtilityClass(COMPONENT_NAME, slot);\n}\nexport const switchClasses = generateUtilityClasses(COMPONENT_NAME, ['root', 'input', 'track', 'thumb', 'checked', 'disabled', 'focusVisible', 'readOnly']);", "'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"colSpan\", \"count\", \"getItemAriaLabel\", \"labelDisplayedRows\", \"labelId\", \"labelRowsPerPage\", \"onPageChange\", \"onRowsPerPageChange\", \"page\", \"rowsPerPage\", \"rowsPerPageOptions\", \"selectId\", \"slotProps\", \"slots\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { unstable_useId as useId, chainPropTypes, integerPropType } from '@mui/utils';\nimport { useSlotProps } from '../utils';\nimport { unstable_composeClasses as composeClasses } from '../composeClasses';\nimport { isHostComponent } from '../utils/isHostComponent';\nimport { TablePaginationActions } from './TablePaginationActions';\nimport { getTablePaginationUtilityClass } from './tablePaginationClasses';\nimport { useClassNamesOverride } from '../utils/ClassNameConfigurator';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { createElement as _createElement } from \"react\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nfunction defaultLabelDisplayedRows({\n from,\n to,\n count\n}) {\n return `${from}–${to} of ${count !== -1 ? count : `more than ${to}`}`;\n}\nfunction defaultGetAriaLabel(type) {\n return `Go to ${type} page`;\n}\nconst useUtilityClasses = () => {\n const slots = {\n root: ['root'],\n toolbar: ['toolbar'],\n spacer: ['spacer'],\n selectLabel: ['selectLabel'],\n select: ['select'],\n input: ['input'],\n selectIcon: ['selectIcon'],\n menuItem: ['menuItem'],\n displayedRows: ['displayedRows'],\n actions: ['actions']\n };\n return composeClasses(slots, useClassNamesOverride(getTablePaginationUtilityClass));\n};\n\n/**\n * A pagination for tables.\n *\n * Demos:\n *\n * - [Table Pagination](https://mui.com/base-ui/react-table-pagination/)\n *\n * API:\n *\n * - [TablePagination API](https://mui.com/base-ui/react-table-pagination/components-api/#table-pagination)\n */\nconst TablePagination = /*#__PURE__*/React.forwardRef(function TablePagination(props, forwardedRef) {\n var _slots$root, _slots$select, _slots$actions, _slots$menuItem, _slots$selectLabel, _slots$displayedRows, _slots$toolbar, _slots$spacer;\n const {\n colSpan: colSpanProp,\n count,\n getItemAriaLabel = defaultGetAriaLabel,\n labelDisplayedRows = defaultLabelDisplayedRows,\n labelId: labelIdProp,\n labelRowsPerPage = 'Rows per page:',\n onPageChange,\n onRowsPerPageChange,\n page,\n rowsPerPage,\n rowsPerPageOptions = [10, 25, 50, 100],\n selectId: selectIdProp,\n slotProps = {},\n slots = {}\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ownerState = props;\n const classes = useUtilityClasses();\n let colSpan;\n const Root = (_slots$root = slots.root) != null ? _slots$root : 'td';\n if (Root === 'td' || !isHostComponent(Root)) {\n colSpan = colSpanProp || 1000; // col-span over everything\n }\n const getLabelDisplayedRowsTo = () => {\n if (count === -1) {\n return (page + 1) * rowsPerPage;\n }\n return rowsPerPage === -1 ? count : Math.min(count, (page + 1) * rowsPerPage);\n };\n const selectId = useId(selectIdProp);\n const labelId = useId(labelIdProp);\n const rootProps = useSlotProps({\n elementType: Root,\n externalSlotProps: slotProps.root,\n externalForwardedProps: other,\n additionalProps: {\n colSpan,\n ref: forwardedRef\n },\n ownerState,\n className: classes.root\n });\n const Select = (_slots$select = slots.select) != null ? _slots$select : 'select';\n const selectProps = useSlotProps({\n elementType: Select,\n externalSlotProps: slotProps.select,\n additionalProps: {\n value: rowsPerPage,\n id: selectId,\n onChange: event => onRowsPerPageChange && onRowsPerPageChange(event),\n 'aria-label': rowsPerPage.toString(),\n 'aria-labelledby': [labelId, selectId].filter(Boolean).join(' ') || undefined\n },\n ownerState,\n className: classes.select\n });\n const Actions = (_slots$actions = slots.actions) != null ? _slots$actions : TablePaginationActions;\n const actionsProps = useSlotProps({\n elementType: Actions,\n externalSlotProps: slotProps.actions,\n additionalProps: {\n page,\n rowsPerPage,\n count,\n onPageChange,\n getItemAriaLabel\n },\n ownerState,\n className: classes.actions\n });\n const MenuItem = (_slots$menuItem = slots.menuItem) != null ? _slots$menuItem : 'option';\n const menuItemProps = useSlotProps({\n elementType: MenuItem,\n externalSlotProps: slotProps.menuItem,\n additionalProps: {\n value: undefined\n },\n ownerState,\n className: classes.menuItem\n });\n const SelectLabel = (_slots$selectLabel = slots.selectLabel) != null ? _slots$selectLabel : 'p';\n const selectLabelProps = useSlotProps({\n elementType: SelectLabel,\n externalSlotProps: slotProps.selectLabel,\n additionalProps: {\n id: labelId\n },\n ownerState,\n className: classes.selectLabel\n });\n const DisplayedRows = (_slots$displayedRows = slots.displayedRows) != null ? _slots$displayedRows : 'p';\n const displayedRowsProps = useSlotProps({\n elementType: DisplayedRows,\n externalSlotProps: slotProps.displayedRows,\n ownerState,\n className: classes.displayedRows\n });\n const Toolbar = (_slots$toolbar = slots.toolbar) != null ? _slots$toolbar : 'div';\n const toolbarProps = useSlotProps({\n elementType: Toolbar,\n externalSlotProps: slotProps.toolbar,\n ownerState,\n className: classes.toolbar\n });\n const Spacer = (_slots$spacer = slots.spacer) != null ? _slots$spacer : 'div';\n const spacerProps = useSlotProps({\n elementType: Spacer,\n externalSlotProps: slotProps.spacer,\n ownerState,\n className: classes.spacer\n });\n return /*#__PURE__*/_jsx(Root, _extends({}, rootProps, {\n children: /*#__PURE__*/_jsxs(Toolbar, _extends({}, toolbarProps, {\n children: [/*#__PURE__*/_jsx(Spacer, _extends({}, spacerProps)), rowsPerPageOptions.length > 1 && /*#__PURE__*/_jsx(SelectLabel, _extends({}, selectLabelProps, {\n children: labelRowsPerPage\n })), rowsPerPageOptions.length > 1 && /*#__PURE__*/_jsx(Select, _extends({}, selectProps, {\n children: rowsPerPageOptions.map(rowsPerPageOption => /*#__PURE__*/_createElement(MenuItem, _extends({}, menuItemProps, {\n key: typeof rowsPerPageOption !== 'number' && rowsPerPageOption.label ? rowsPerPageOption.label : rowsPerPageOption,\n value: typeof rowsPerPageOption !== 'number' && rowsPerPageOption.value ? rowsPerPageOption.value : rowsPerPageOption\n }), typeof rowsPerPageOption !== 'number' && rowsPerPageOption.label ? rowsPerPageOption.label : rowsPerPageOption))\n })), /*#__PURE__*/_jsx(DisplayedRows, _extends({}, displayedRowsProps, {\n children: labelDisplayedRows({\n from: count === 0 ? 0 : page * rowsPerPage + 1,\n to: getLabelDisplayedRowsTo(),\n count: count === -1 ? -1 : count,\n page\n })\n })), /*#__PURE__*/_jsx(Actions, _extends({}, actionsProps))]\n }))\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? TablePagination.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 * @ignore\n */\n colSpan: PropTypes.number,\n /**\n * The total number of rows.\n *\n * To enable server side pagination for an unknown number of items, provide -1.\n */\n count: PropTypes.number.isRequired,\n /**\n * Accepts a function which returns a string value that provides a user-friendly name for the current page.\n * This is important for screen reader users.\n *\n * For localization purposes, you can use the provided [translations](/material-ui/guides/localization/).\n * @param {string} type The link or button type to format ('first' | 'last' | 'next' | 'previous').\n * @returns {string}\n * @default function defaultGetAriaLabel(type: ItemAriaLabelType) {\n * return `Go to ${type} page`;\n * }\n */\n getItemAriaLabel: PropTypes.func,\n /**\n * Customize the displayed rows label. Invoked with a `{ from, to, count, page }`\n * object.\n *\n * For localization purposes, you can use the provided [translations](/material-ui/guides/localization/).\n * @default function defaultLabelDisplayedRows({ from, to, count }: LabelDisplayedRowsArgs) {\n * return `${from}–${to} of ${count !== -1 ? count : `more than ${to}`}`;\n * }\n */\n labelDisplayedRows: PropTypes.func,\n /**\n * Id of the label element within the pagination.\n */\n labelId: PropTypes.string,\n /**\n * Customize the rows per page label.\n *\n * For localization purposes, you can use the provided [translations](/material-ui/guides/localization/).\n * @default 'Rows per page:'\n */\n labelRowsPerPage: PropTypes.node,\n /**\n * Callback fired when the page is changed.\n *\n * @param {React.MouseEvent<HTMLButtonElement> | null} event The event source of the callback.\n * @param {number} page The page selected.\n */\n onPageChange: PropTypes.func.isRequired,\n /**\n * Callback fired when the number of rows per page is changed.\n *\n * @param {React.ChangeEvent<HTMLTextAreaElement | HTMLInputElement>} event The event source of the callback.\n */\n onRowsPerPageChange: PropTypes.func,\n /**\n * The zero-based index of the current page.\n */\n page: chainPropTypes(integerPropType.isRequired, props => {\n const {\n count,\n page,\n rowsPerPage\n } = props;\n if (count === -1) {\n return null;\n }\n const newLastPage = Math.max(0, Math.ceil(count / rowsPerPage) - 1);\n if (page < 0 || page > newLastPage) {\n return new Error('MUI: The page prop of a TablePagination is out of range ' + `(0 to ${newLastPage}, but page is ${page}).`);\n }\n return null;\n }),\n /**\n * The number of rows per page.\n *\n * Set -1 to display all the rows.\n */\n rowsPerPage: integerPropType.isRequired,\n /**\n * Customizes the options of the rows per page select field. If less than two options are\n * available, no select field will be displayed.\n * Use -1 for the value with a custom label to show all the rows.\n * @default [10, 25, 50, 100]\n */\n rowsPerPageOptions: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.shape({\n label: PropTypes.string.isRequired,\n value: PropTypes.number.isRequired\n })]).isRequired),\n /**\n * Id of the select element within the pagination.\n */\n selectId: PropTypes.string,\n /**\n * The props used for each slot inside the TablePagination.\n * @default {}\n */\n slotProps: PropTypes /* @typescript-to-proptypes-ignore */.shape({\n actions: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n displayedRows: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n menuItem: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n root: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n select: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n selectLabel: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n spacer: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n toolbar: PropTypes.oneOfType([PropTypes.func, PropTypes.object])\n }),\n /**\n * The components used for each slot inside the TablePagination.\n * Either a string to use a HTML element or a component.\n * @default {}\n */\n slots: PropTypes.shape({\n actions: PropTypes.elementType,\n displayedRows: PropTypes.elementType,\n menuItem: PropTypes.elementType,\n root: PropTypes.elementType,\n select: PropTypes.elementType,\n selectLabel: PropTypes.elementType,\n spacer: PropTypes.elementType,\n toolbar: PropTypes.elementType\n })\n} : void 0;\nexport { TablePagination };", "'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"count\", \"getItemAriaLabel\", \"onPageChange\", \"page\", \"rowsPerPage\", \"showFirstButton\", \"showLastButton\", \"direction\", \"ownerState\", \"slotProps\", \"slots\"];\nvar _span, _span2, _span3, _span4;\nimport * as React from 'react';\nimport { useSlotProps } from '../utils';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nfunction LastPageIconDefault() {\n return _span || (_span = /*#__PURE__*/_jsx(\"span\", {\n children: '⇾|'\n }));\n}\nfunction FirstPageIconDefault() {\n return _span2 || (_span2 = /*#__PURE__*/_jsx(\"span\", {\n children: '|⇽'\n }));\n}\nfunction NextPageIconDefault() {\n return _span3 || (_span3 = /*#__PURE__*/_jsx(\"span\", {\n children: '⇾'\n }));\n}\nfunction BackPageIconDefault() {\n return _span4 || (_span4 = /*#__PURE__*/_jsx(\"span\", {\n children: '⇽'\n }));\n}\nfunction defaultGetAriaLabel(type) {\n return `Go to ${type} page`;\n}\n\n/**\n * @ignore - internal component.\n */\nconst TablePaginationActions = /*#__PURE__*/React.forwardRef(function TablePaginationActions(props, forwardedRef) {\n var _slots$root, _slots$firstButton, _slots$lastButton, _slots$nextButton, _slots$backButton, _slots$lastPageIcon, _slots$firstPageIcon, _slots$nextPageIcon, _slots$backPageIcon;\n const {\n count,\n getItemAriaLabel = defaultGetAriaLabel,\n onPageChange,\n page,\n rowsPerPage,\n showFirstButton = false,\n showLastButton = false,\n direction\n // @ts-ignore\n ,\n\n slotProps = {},\n slots = {}\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ownerState = props;\n const handleFirstPageButtonClick = event => {\n onPageChange(event, 0);\n };\n const handleBackButtonClick = event => {\n onPageChange(event, page - 1);\n };\n const handleNextButtonClick = event => {\n onPageChange(event, page + 1);\n };\n const handleLastPageButtonClick = event => {\n onPageChange(event, Math.max(0, Math.ceil(count / rowsPerPage) - 1));\n };\n const Root = (_slots$root = slots.root) != null ? _slots$root : 'div';\n const rootProps = useSlotProps({\n elementType: Root,\n externalSlotProps: slotProps.root,\n externalForwardedProps: other,\n additionalProps: {\n ref: forwardedRef\n },\n ownerState\n });\n const FirstButton = (_slots$firstButton = slots.firstButton) != null ? _slots$firstButton : 'button';\n const firstButtonProps = useSlotProps({\n elementType: FirstButton,\n externalSlotProps: slotProps.firstButton,\n additionalProps: {\n onClick: handleFirstPageButtonClick,\n disabled: page === 0,\n 'aria-label': getItemAriaLabel('first', page),\n title: getItemAriaLabel('first', page)\n },\n ownerState\n });\n const LastButton = (_slots$lastButton = slots.lastButton) != null ? _slots$lastButton : 'button';\n const lastButtonProps = useSlotProps({\n elementType: LastButton,\n externalSlotProps: slotProps.lastButton,\n additionalProps: {\n onClick: handleLastPageButtonClick,\n disabled: page >= Math.ceil(count / rowsPerPage) - 1,\n 'aria-label': getItemAriaLabel('last', page),\n title: getItemAriaLabel('last', page)\n },\n ownerState\n });\n const NextButton = (_slots$nextButton = slots.nextButton) != null ? _slots$nextButton : 'button';\n const nextButtonProps = useSlotProps({\n elementType: NextButton,\n externalSlotProps: slotProps.nextButton,\n additionalProps: {\n onClick: handleNextButtonClick,\n disabled: count !== -1 ? page >= Math.ceil(count / rowsPerPage) - 1 : false,\n 'aria-label': getItemAriaLabel('next', page),\n title: getItemAriaLabel('next', page)\n },\n ownerState\n });\n const BackButton = (_slots$backButton = slots.backButton) != null ? _slots$backButton : 'button';\n const backButtonProps = useSlotProps({\n elementType: BackButton,\n externalSlotProps: slotProps.backButton,\n additionalProps: {\n onClick: handleBackButtonClick,\n disabled: page === 0,\n 'aria-label': getItemAriaLabel('previous', page),\n title: getItemAriaLabel('previous', page)\n },\n ownerState\n });\n const LastPageIcon = (_slots$lastPageIcon = slots.lastPageIcon) != null ? _slots$lastPageIcon : LastPageIconDefault;\n const FirstPageIcon = (_slots$firstPageIcon = slots.firstPageIcon) != null ? _slots$firstPageIcon : FirstPageIconDefault;\n const NextPageIcon = (_slots$nextPageIcon = slots.nextPageIcon) != null ? _slots$nextPageIcon : NextPageIconDefault;\n const BackPageIcon = (_slots$backPageIcon = slots.backPageIcon) != null ? _slots$backPageIcon : BackPageIconDefault;\n return /*#__PURE__*/_jsxs(Root, _extends({}, rootProps, {\n children: [showFirstButton && /*#__PURE__*/_jsx(FirstButton, _extends({}, firstButtonProps, {\n children: direction === 'rtl' ? /*#__PURE__*/_jsx(LastPageIcon, {}) : /*#__PURE__*/_jsx(FirstPageIcon, {})\n })), /*#__PURE__*/_jsx(BackButton, _extends({}, backButtonProps, {\n children: direction === 'rtl' ? /*#__PURE__*/_jsx(NextPageIcon, {}) : /*#__PURE__*/_jsx(BackPageIcon, {})\n })), /*#__PURE__*/_jsx(NextButton, _extends({}, nextButtonProps, {\n children: direction === 'rtl' ? /*#__PURE__*/_jsx(BackPageIcon, {}) : /*#__PURE__*/_jsx(NextPageIcon, {})\n })), showLastButton && /*#__PURE__*/_jsx(LastButton, _extends({}, lastButtonProps, {\n children: direction === 'rtl' ? /*#__PURE__*/_jsx(FirstPageIcon, {}) : /*#__PURE__*/_jsx(LastPageIcon, {})\n }))]\n }));\n});\nexport { TablePaginationActions };", "import { generateUtilityClass } from '../generateUtilityClass';\nimport { generateUtilityClasses } from '../generateUtilityClasses';\nconst COMPONENT_NAME = 'TablePagination';\nexport function getTablePaginationUtilityClass(slot) {\n return generateUtilityClass(COMPONENT_NAME, slot);\n}\nexport const tablePaginationClasses = generateUtilityClasses(COMPONENT_NAME, ['root', 'toolbar', 'spacer', 'selectLabel', 'selectRoot', 'select', 'selectIcon', 'input', 'menuItem', 'displayedRows', 'actions']);", "'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"children\", \"value\", \"slotProps\", \"slots\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { useSlotProps } from '../utils';\nimport { unstable_composeClasses as composeClasses } from '../composeClasses';\nimport { getTabPanelUtilityClass } from './tabPanelClasses';\nimport { useTabPanel } from '../useTabPanel/useTabPanel';\nimport { useClassNamesOverride } from '../utils/ClassNameConfigurator';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n hidden\n } = ownerState;\n const slots = {\n root: ['root', hidden && 'hidden']\n };\n return composeClasses(slots, useClassNamesOverride(getTabPanelUtilityClass));\n};\n/**\n *\n * Demos:\n *\n * - [Tabs](https://mui.com/base-ui/react-tabs/)\n *\n * API:\n *\n * - [TabPanel API](https://mui.com/base-ui/react-tabs/components-api/#tab-panel)\n */\nconst TabPanel = /*#__PURE__*/React.forwardRef(function TabPanel(props, forwardedRef) {\n var _slots$root;\n const {\n children,\n slotProps = {},\n slots = {}\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const {\n hidden,\n getRootProps\n } = useTabPanel(props);\n const ownerState = _extends({}, props, {\n hidden\n });\n const classes = useUtilityClasses(ownerState);\n const TabPanelRoot = (_slots$root = slots.root) != null ? _slots$root : 'div';\n const tabPanelRootProps = useSlotProps({\n elementType: TabPanelRoot,\n getSlotProps: getRootProps,\n externalSlotProps: slotProps.root,\n externalForwardedProps: other,\n additionalProps: {\n role: 'tabpanel',\n ref: forwardedRef\n },\n ownerState,\n className: classes.root\n });\n return /*#__PURE__*/_jsx(TabPanelRoot, _extends({}, tabPanelRootProps, {\n children: !hidden && children\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? TabPanel.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 content of the component.\n */\n children: PropTypes.node,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The props used for each slot inside the TabPanel.\n * @default {}\n */\n slotProps: PropTypes.shape({\n root: PropTypes.oneOfType([PropTypes.func, PropTypes.object])\n }),\n /**\n * The components used for each slot inside the TabPanel.\n * Either a string to use a HTML element or a component.\n * @default {}\n */\n slots: PropTypes.shape({\n root: PropTypes.elementType\n }),\n /**\n * The value of the TabPanel. It will be shown when the Tab with the corresponding value is selected.\n * If not provided, it will fall back to the index of the panel.\n * It is recommended to explicitly provide it, as it's required for the tab panel to be rendered on the server.\n */\n value: PropTypes.oneOfType([PropTypes.number, PropTypes.string])\n} : void 0;\nexport { TabPanel };", "import { generateUtilityClass } from '../generateUtilityClass';\nimport { generateUtilityClasses } from '../generateUtilityClasses';\nconst COMPONENT_NAME = 'TabPanel';\nexport function getTabPanelUtilityClass(slot) {\n return generateUtilityClass(COMPONENT_NAME, slot);\n}\nexport const tabPanelClasses = generateUtilityClasses(COMPONENT_NAME, ['root', 'hidden']);", "'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { unstable_useId as useId, unstable_useForkRef as useForkRef } from '@mui/utils';\nimport { useTabsContext } from '../Tabs';\nimport { useCompoundItem } from '../useCompound';\nfunction tabPanelValueGenerator(otherTabPanelValues) {\n return otherTabPanelValues.size;\n}\n\n/**\n *\n * Demos:\n *\n * - [Tabs](https://mui.com/base-ui/react-tabs/#hooks)\n *\n * API:\n *\n * - [useTabPanel API](https://mui.com/base-ui/react-tabs/hooks-api/#use-tab-panel)\n */\nfunction useTabPanel(parameters) {\n const {\n value: valueParam,\n id: idParam,\n rootRef: externalRef\n } = parameters;\n const context = useTabsContext();\n if (context === null) {\n throw new Error('No TabContext provided');\n }\n const {\n value: selectedTabValue,\n getTabId\n } = context;\n const id = useId(idParam);\n const ref = React.useRef(null);\n const handleRef = useForkRef(ref, externalRef);\n const metadata = React.useMemo(() => ({\n id,\n ref\n }), [id]);\n const {\n id: value\n } = useCompoundItem(valueParam != null ? valueParam : tabPanelValueGenerator, metadata);\n const hidden = value !== selectedTabValue;\n const correspondingTabId = value !== undefined ? getTabId(value) : undefined;\n const getRootProps = (externalProps = {}) => {\n return _extends({\n 'aria-labelledby': correspondingTabId != null ? correspondingTabId : undefined,\n hidden,\n id: id != null ? id : undefined\n }, externalProps, {\n ref: handleRef\n });\n };\n return {\n hidden,\n getRootProps,\n rootRef: handleRef\n };\n}\nexport { useTabPanel };", "'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"children\", \"value\", \"defaultValue\", \"orientation\", \"direction\", \"onChange\", \"selectionFollowsFocus\", \"slotProps\", \"slots\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { useSlotProps } from '../utils';\nimport { unstable_composeClasses as composeClasses } from '../composeClasses';\nimport { getTabsUtilityClass } from './tabsClasses';\nimport { useTabs } from '../useTabs';\nimport { TabsProvider } from '../useTabs/TabsProvider';\nimport { useClassNamesOverride } from '../utils/ClassNameConfigurator';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n orientation\n } = ownerState;\n const slots = {\n root: ['root', orientation]\n };\n return composeClasses(slots, useClassNamesOverride(getTabsUtilityClass));\n};\n\n/**\n *\n * Demos:\n *\n * - [Tabs](https://mui.com/base-ui/react-tabs/)\n *\n * API:\n *\n * - [Tabs API](https://mui.com/base-ui/react-tabs/components-api/#tabs)\n */\nconst Tabs = /*#__PURE__*/React.forwardRef(function Tabs(props, forwardedRef) {\n var _slots$root;\n const {\n children,\n orientation = 'horizontal',\n direction = 'ltr',\n slotProps = {},\n slots = {}\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ownerState = _extends({}, props, {\n orientation,\n direction\n });\n const {\n contextValue\n } = useTabs(ownerState);\n const classes = useUtilityClasses(ownerState);\n const TabsRoot = (_slots$root = slots.root) != null ? _slots$root : 'div';\n const tabsRootProps = useSlotProps({\n elementType: TabsRoot,\n externalSlotProps: slotProps.root,\n externalForwardedProps: other,\n additionalProps: {\n ref: forwardedRef\n },\n ownerState,\n className: classes.root\n });\n return /*#__PURE__*/_jsx(TabsRoot, _extends({}, tabsRootProps, {\n children: /*#__PURE__*/_jsx(TabsProvider, {\n value: contextValue,\n children: children\n })\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Tabs.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 content of the component.\n */\n children: PropTypes.node,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The default value. Use when the component is not controlled.\n */\n defaultValue: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n /**\n * The direction of the text.\n * @default 'ltr'\n */\n direction: PropTypes.oneOf(['ltr', 'rtl']),\n /**\n * Callback invoked when new value is being set.\n */\n onChange: PropTypes.func,\n /**\n * The component orientation (layout flow direction).\n * @default 'horizontal'\n */\n orientation: PropTypes.oneOf(['horizontal', 'vertical']),\n /**\n * If `true` the selected tab changes on focus. Otherwise it only\n * changes on activation.\n */\n selectionFollowsFocus: PropTypes.bool,\n /**\n * The props used for each slot inside the Tabs.\n * @default {}\n */\n slotProps: PropTypes.shape({\n root: PropTypes.oneOfType([PropTypes.func, PropTypes.object])\n }),\n /**\n * The components used for each slot inside the Tabs.\n * Either a string to use a HTML element or a component.\n * @default {}\n */\n slots: PropTypes.shape({\n root: PropTypes.elementType\n }),\n /**\n * The value of the currently selected `Tab`.\n * If you don't want any selected `Tab`, you can set this prop to `null`.\n */\n value: PropTypes.oneOfType([PropTypes.number, PropTypes.string])\n} : void 0;\nexport { Tabs };", "import { generateUtilityClass } from '../generateUtilityClass';\nimport { generateUtilityClasses } from '../generateUtilityClasses';\nconst COMPONENT_NAME = 'Tabs';\nexport function getTabsUtilityClass(slot) {\n return generateUtilityClass(COMPONENT_NAME, slot);\n}\nexport const tabsClasses = generateUtilityClasses(COMPONENT_NAME, ['root', 'horizontal', 'vertical']);", "'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { unstable_useControlled as useControlled } from '@mui/utils';\nimport { useCompoundParent } from '../useCompound';\n/**\n *\n * Demos:\n *\n * - [Tabs](https://mui.com/base-ui/react-tabs/#hooks)\n *\n * API:\n *\n * - [useTabs API](https://mui.com/base-ui/react-tabs/hooks-api/#use-tabs)\n */\nfunction useTabs(parameters) {\n const {\n value: valueProp,\n defaultValue,\n onChange,\n orientation = 'horizontal',\n direction = 'ltr',\n selectionFollowsFocus = false\n } = parameters;\n const [value, setValue] = useControlled({\n controlled: valueProp,\n default: defaultValue,\n name: 'Tabs',\n state: 'value'\n });\n const onSelected = React.useCallback((event, newValue) => {\n setValue(newValue);\n onChange == null || onChange(event, newValue);\n }, [onChange, setValue]);\n const {\n subitems: tabPanels,\n contextValue: compoundComponentContextValue\n } = useCompoundParent();\n const tabIdLookup = React.useRef(() => undefined);\n const getTabPanelId = React.useCallback(tabValue => {\n var _tabPanels$get;\n return (_tabPanels$get = tabPanels.get(tabValue)) == null ? void 0 : _tabPanels$get.id;\n }, [tabPanels]);\n const getTabId = React.useCallback(tabPanelId => {\n return tabIdLookup.current(tabPanelId);\n }, []);\n const registerTabIdLookup = React.useCallback(lookupFunction => {\n tabIdLookup.current = lookupFunction;\n }, []);\n return {\n contextValue: _extends({\n direction,\n getTabId,\n getTabPanelId,\n onSelected,\n orientation,\n registerTabIdLookup,\n selectionFollowsFocus,\n value\n }, compoundComponentContextValue)\n };\n}\nexport { useTabs };", "'use client';\n\nimport * as React from 'react';\nimport { TabsContext } from '../Tabs/TabsContext';\nimport { CompoundComponentContext } from '../useCompound';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * Sets up the contexts for the underlying Tab and TabPanel components.\n *\n * @ignore - do not document.\n */\nexport function TabsProvider(props) {\n const {\n value: valueProp,\n children\n } = props;\n const {\n direction,\n getItemIndex,\n onSelected,\n orientation,\n registerItem,\n registerTabIdLookup,\n selectionFollowsFocus,\n totalSubitemCount,\n value,\n getTabId,\n getTabPanelId\n } = valueProp;\n const compoundComponentContextValue = React.useMemo(() => ({\n getItemIndex,\n registerItem,\n totalSubitemCount\n }), [registerItem, getItemIndex, totalSubitemCount]);\n const tabsContextValue = React.useMemo(() => ({\n direction,\n getTabId,\n getTabPanelId,\n onSelected,\n orientation,\n registerTabIdLookup,\n selectionFollowsFocus,\n value\n }), [direction, getTabId, getTabPanelId, onSelected, orientation, registerTabIdLookup, selectionFollowsFocus, value]);\n return /*#__PURE__*/_jsx(CompoundComponentContext.Provider, {\n value: compoundComponentContextValue,\n children: /*#__PURE__*/_jsx(TabsContext.Provider, {\n value: tabsContextValue,\n children: children\n })\n });\n}", "import * as React from 'react';\n/**\n * @ignore - internal component.\n */\nconst TabsContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== 'production') {\n TabsContext.displayName = 'TabsContext';\n}\nexport function useTabsContext() {\n const context = React.useContext(TabsContext);\n if (context == null) {\n throw new Error('No TabsContext provided');\n }\n return context;\n}\nexport { TabsContext };", "'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"children\", \"slotProps\", \"slots\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { unstable_composeClasses as composeClasses } from '../composeClasses';\nimport { useSlotProps } from '../utils';\nimport { getTabsListUtilityClass } from './tabsListClasses';\nimport { useTabsList } from '../useTabsList';\nimport { useClassNamesOverride } from '../utils/ClassNameConfigurator';\nimport { TabsListProvider } from '../useTabsList/TabsListProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n orientation\n } = ownerState;\n const slots = {\n root: ['root', orientation]\n };\n return composeClasses(slots, useClassNamesOverride(getTabsListUtilityClass));\n};\n\n/**\n *\n * Demos:\n *\n * - [Tabs](https://mui.com/base-ui/react-tabs/)\n *\n * API:\n *\n * - [TabsList API](https://mui.com/base-ui/react-tabs/components-api/#tabs-list)\n */\nconst TabsList = /*#__PURE__*/React.forwardRef(function TabsList(props, forwardedRef) {\n var _slots$root;\n const {\n children,\n slotProps = {},\n slots = {}\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const {\n isRtl,\n orientation,\n getRootProps,\n contextValue\n } = useTabsList({\n rootRef: forwardedRef\n });\n const ownerState = _extends({}, props, {\n isRtl,\n orientation\n });\n const classes = useUtilityClasses(ownerState);\n const TabsListRoot = (_slots$root = slots.root) != null ? _slots$root : 'div';\n const tabsListRootProps = useSlotProps({\n elementType: TabsListRoot,\n getSlotProps: getRootProps,\n externalSlotProps: slotProps.root,\n externalForwardedProps: other,\n ownerState,\n className: classes.root\n });\n return /*#__PURE__*/_jsx(TabsListProvider, {\n value: contextValue,\n children: /*#__PURE__*/_jsx(TabsListRoot, _extends({}, tabsListRootProps, {\n children: children\n }))\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? TabsList.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 content of the component.\n */\n children: PropTypes.node,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The props used for each slot inside the TabsList.\n * @default {}\n */\n slotProps: PropTypes.shape({\n root: PropTypes.oneOfType([PropTypes.func, PropTypes.object])\n }),\n /**\n * The components used for each slot inside the TabsList.\n * Either a string to use a HTML element or a component.\n * @default {}\n */\n slots: PropTypes.shape({\n root: PropTypes.elementType\n })\n} : void 0;\nexport { TabsList };", "import { generateUtilityClass } from '../generateUtilityClass';\nimport { generateUtilityClasses } from '../generateUtilityClasses';\nconst COMPONENT_NAME = 'TabsList';\nexport function getTabsListUtilityClass(slot) {\n return generateUtilityClass(COMPONENT_NAME, slot);\n}\nexport const tabsListClasses = generateUtilityClasses(COMPONENT_NAME, ['root', 'horizontal', 'vertical']);", "'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { useTabsContext } from '../Tabs';\nimport { TabsListActionTypes } from './useTabsList.types';\nimport { useCompoundParent } from '../useCompound';\nimport { useList } from '../useList';\nimport { tabsListReducer } from './tabsListReducer';\n\n/**\n *\n * Demos:\n *\n * - [Tabs](https://mui.com/base-ui/react-tabs/#hooks)\n *\n * API:\n *\n * - [useTabsList API](https://mui.com/base-ui/react-tabs/hooks-api/#use-tabs-list)\n */\nfunction useTabsList(parameters) {\n var _selectedValues$;\n const {\n rootRef: externalRef\n } = parameters;\n const {\n direction = 'ltr',\n onSelected,\n orientation = 'horizontal',\n value,\n registerTabIdLookup,\n selectionFollowsFocus\n } = useTabsContext();\n const {\n subitems,\n contextValue: compoundComponentContextValue\n } = useCompoundParent();\n const tabIdLookup = React.useCallback(tabValue => {\n var _subitems$get;\n return (_subitems$get = subitems.get(tabValue)) == null ? void 0 : _subitems$get.id;\n }, [subitems]);\n registerTabIdLookup(tabIdLookup);\n const subitemKeys = React.useMemo(() => Array.from(subitems.keys()), [subitems]);\n const getTabElement = React.useCallback(tabValue => {\n var _subitems$get$ref$cur, _subitems$get2;\n if (tabValue == null) {\n return null;\n }\n return (_subitems$get$ref$cur = (_subitems$get2 = subitems.get(tabValue)) == null ? void 0 : _subitems$get2.ref.current) != null ? _subitems$get$ref$cur : null;\n }, [subitems]);\n const isRtl = direction === 'rtl';\n let listOrientation;\n if (orientation === 'vertical') {\n listOrientation = 'vertical';\n } else {\n listOrientation = isRtl ? 'horizontal-rtl' : 'horizontal-ltr';\n }\n const handleChange = React.useCallback((event, newValue) => {\n var _newValue$;\n onSelected(event, (_newValue$ = newValue[0]) != null ? _newValue$ : null);\n }, [onSelected]);\n const controlledProps = React.useMemo(() => {\n if (value === undefined) {\n return {};\n }\n return value != null ? {\n selectedValues: [value]\n } : {\n selectedValues: []\n };\n }, [value]);\n const isItemDisabled = React.useCallback(item => {\n var _subitems$get$disable, _subitems$get3;\n return (_subitems$get$disable = (_subitems$get3 = subitems.get(item)) == null ? void 0 : _subitems$get3.disabled) != null ? _subitems$get$disable : false;\n }, [subitems]);\n const {\n contextValue: listContextValue,\n dispatch,\n getRootProps: getListboxRootProps,\n state: {\n highlightedValue,\n selectedValues\n },\n rootRef: mergedRootRef\n } = useList({\n controlledProps,\n disabledItemsFocusable: !selectionFollowsFocus,\n focusManagement: 'DOM',\n getItemDomElement: getTabElement,\n isItemDisabled,\n items: subitemKeys,\n rootRef: externalRef,\n onChange: handleChange,\n orientation: listOrientation,\n reducerActionContext: React.useMemo(() => ({\n selectionFollowsFocus: selectionFollowsFocus || false\n }), [selectionFollowsFocus]),\n selectionMode: 'single',\n stateReducer: tabsListReducer\n });\n React.useEffect(() => {\n if (value === undefined) {\n return;\n }\n\n // when a value changes externally, the highlighted value should be synced to it\n if (value != null) {\n dispatch({\n type: TabsListActionTypes.valueChange,\n value\n });\n }\n }, [dispatch, value]);\n const getRootProps = (externalProps = {}) => {\n return _extends({}, externalProps, getListboxRootProps(externalProps), {\n 'aria-orientation': orientation === 'vertical' ? 'vertical' : undefined,\n role: 'tablist'\n });\n };\n const contextValue = React.useMemo(() => _extends({}, compoundComponentContextValue, listContextValue), [compoundComponentContextValue, listContextValue]);\n return {\n contextValue,\n dispatch,\n getRootProps,\n highlightedValue,\n isRtl,\n orientation,\n rootRef: mergedRootRef,\n selectedValue: (_selectedValues$ = selectedValues[0]) != null ? _selectedValues$ : null\n };\n}\nexport { useTabsList };", "export const TabsListActionTypes = {\n valueChange: 'valueChange'\n};", "import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { listReducer, ListActionTypes, moveHighlight } from '../useList';\nimport { TabsListActionTypes } from './useTabsList.types';\nexport function tabsListReducer(state, action) {\n if (action.type === TabsListActionTypes.valueChange) {\n return _extends({}, state, {\n highlightedValue: action.value\n });\n }\n const newState = listReducer(state, action);\n const {\n context: {\n selectionFollowsFocus\n }\n } = action;\n if (action.type === ListActionTypes.itemsChange) {\n if (newState.selectedValues.length > 0) {\n return _extends({}, newState, {\n highlightedValue: newState.selectedValues[0]\n });\n }\n moveHighlight(null, 'reset', action.context);\n }\n if (selectionFollowsFocus && newState.highlightedValue != null) {\n return _extends({}, newState, {\n selectedValues: [newState.highlightedValue]\n });\n }\n return newState;\n}", "'use client';\n\nimport * as React from 'react';\nimport { ListContext } from '../useList/ListContext';\nimport { CompoundComponentContext } from '../useCompound';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * Sets up the contexts for the underlying Tab components.\n *\n * @ignore - do not document.\n */\nexport function TabsListProvider(props) {\n const {\n value,\n children\n } = props;\n const {\n dispatch,\n getItemIndex,\n getItemState,\n registerItem,\n totalSubitemCount\n } = value;\n const listContextValue = React.useMemo(() => ({\n dispatch,\n getItemState,\n getItemIndex\n }), [dispatch, getItemIndex, getItemState]);\n const compoundComponentContextValue = React.useMemo(() => ({\n getItemIndex,\n registerItem,\n totalSubitemCount\n }), [registerItem, getItemIndex, totalSubitemCount]);\n return /*#__PURE__*/_jsx(CompoundComponentContext.Provider, {\n value: compoundComponentContextValue,\n children: /*#__PURE__*/_jsx(ListContext.Provider, {\n value: listContextValue,\n children: children\n })\n });\n}", "'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"action\", \"children\", \"disabled\", \"onChange\", \"onClick\", \"onFocus\", \"slotProps\", \"slots\", \"value\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { unstable_useForkRef as useForkRef } from '@mui/utils';\nimport { unstable_composeClasses as composeClasses } from '../composeClasses';\nimport { getTabUtilityClass } from './tabClasses';\nimport { useTab } from '../useTab';\nimport { useSlotProps } from '../utils';\nimport { useClassNamesOverride } from '../utils/ClassNameConfigurator';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n selected,\n disabled\n } = ownerState;\n const slots = {\n root: ['root', selected && 'selected', disabled && 'disabled']\n };\n return composeClasses(slots, useClassNamesOverride(getTabUtilityClass));\n};\n/**\n *\n * Demos:\n *\n * - [Tabs](https://mui.com/base-ui/react-tabs/)\n *\n * API:\n *\n * - [Tab API](https://mui.com/base-ui/react-tabs/components-api/#tab)\n */\nconst Tab = /*#__PURE__*/React.forwardRef(function Tab(props, forwardedRef) {\n var _slots$root;\n const {\n children,\n disabled = false,\n slotProps = {},\n slots = {},\n value\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const tabRef = React.useRef();\n const handleRef = useForkRef(tabRef, forwardedRef);\n const {\n active,\n highlighted,\n selected,\n getRootProps\n } = useTab(_extends({}, props, {\n rootRef: handleRef,\n value\n }));\n const ownerState = _extends({}, props, {\n active,\n disabled,\n highlighted,\n selected\n });\n const classes = useUtilityClasses(ownerState);\n const TabRoot = (_slots$root = slots.root) != null ? _slots$root : 'button';\n const tabRootProps = useSlotProps({\n elementType: TabRoot,\n getSlotProps: getRootProps,\n externalSlotProps: slotProps.root,\n externalForwardedProps: other,\n additionalProps: {\n ref: forwardedRef\n },\n ownerState,\n className: classes.root\n });\n return /*#__PURE__*/_jsx(TabRoot, _extends({}, tabRootProps, {\n children: children\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Tab.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 ref for imperative actions. It currently only supports `focusVisible()` action.\n */\n action: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({\n current: PropTypes.shape({\n focusVisible: PropTypes.func.isRequired\n })\n })]),\n /**\n * @ignore\n */\n children: PropTypes.node,\n /**\n * If `true`, the component is disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n /**\n * Callback invoked when new value is being set.\n */\n onChange: PropTypes.func,\n /**\n * The props used for each slot inside the Tab.\n * @default {}\n */\n slotProps: PropTypes.shape({\n root: PropTypes.oneOfType([PropTypes.func, PropTypes.object])\n }),\n /**\n * The components used for each slot inside the Tab.\n * Either a string to use a HTML element or a component.\n * @default {}\n */\n slots: PropTypes.shape({\n root: PropTypes.elementType\n }),\n /**\n * You can provide your own value. Otherwise, it falls back to the child position index.\n */\n value: PropTypes.oneOfType([PropTypes.number, PropTypes.string])\n} : void 0;\nexport { Tab };", "import { generateUtilityClass } from '../generateUtilityClass';\nimport { generateUtilityClasses } from '../generateUtilityClasses';\nconst COMPONENT_NAME = 'Tab';\nexport function getTabUtilityClass(slot) {\n return generateUtilityClass(COMPONENT_NAME, slot);\n}\nexport const tabClasses = generateUtilityClasses(COMPONENT_NAME, ['root', 'selected', 'disabled']);", "'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { unstable_useId as useId, unstable_useForkRef as useForkRef } from '@mui/utils';\nimport { useTabsContext } from '../Tabs';\nimport { extractEventHandlers } from '../utils/extractEventHandlers';\nimport { useCompoundItem } from '../useCompound';\nimport { useListItem } from '../useList';\nimport { useButton } from '../useButton';\nimport { combineHooksSlotProps } from '../utils/combineHooksSlotProps';\nfunction tabValueGenerator(otherTabValues) {\n return otherTabValues.size;\n}\n\n/**\n *\n * Demos:\n *\n * - [Tabs](https://mui.com/base-ui/react-tabs/#hooks)\n *\n * API:\n *\n * - [useTab API](https://mui.com/base-ui/react-tabs/hooks-api/#use-tab)\n */\nfunction useTab(parameters) {\n const {\n value: valueParam,\n rootRef: externalRef,\n disabled = false,\n id: idParam\n } = parameters;\n const tabRef = React.useRef(null);\n const id = useId(idParam);\n const {\n value: selectedValue,\n selectionFollowsFocus,\n getTabPanelId\n } = useTabsContext();\n const tabMetadata = React.useMemo(() => ({\n disabled,\n ref: tabRef,\n id\n }), [disabled, tabRef, id]);\n const {\n id: value,\n index,\n totalItemCount: totalTabsCount\n } = useCompoundItem(valueParam != null ? valueParam : tabValueGenerator, tabMetadata);\n const {\n getRootProps: getTabProps,\n highlighted,\n selected\n } = useListItem({\n item: value\n });\n const {\n getRootProps: getButtonProps,\n rootRef: buttonRefHandler,\n active,\n focusVisible,\n setFocusVisible\n } = useButton({\n disabled,\n focusableWhenDisabled: !selectionFollowsFocus,\n type: 'button'\n });\n const handleRef = useForkRef(tabRef, externalRef, buttonRefHandler);\n const tabPanelId = value !== undefined ? getTabPanelId(value) : undefined;\n const getRootProps = (externalProps = {}) => {\n const externalEventHandlers = extractEventHandlers(externalProps);\n const getCombinedRootProps = combineHooksSlotProps(getTabProps, getButtonProps);\n return _extends({}, externalProps, getCombinedRootProps(externalEventHandlers), {\n role: 'tab',\n 'aria-controls': tabPanelId,\n 'aria-selected': selected,\n id,\n ref: handleRef\n });\n };\n return {\n getRootProps,\n active,\n focusVisible,\n highlighted,\n index,\n rootRef: handleRef,\n // the `selected` state isn't set on the server (it relies on effects to be calculated),\n // so we fall back to checking the `value` prop with the selectedValue from the TabsContext\n selected: selected || value === selectedValue,\n setFocusVisible,\n totalTabsCount\n };\n}\nexport { useTab };", "'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"children\", \"className\", \"enterAnimationName\", \"enterClassName\", \"exitAnimationName\", \"exitClassName\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { useTransitionStateManager } from '../useTransition';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n *\n * Demos:\n *\n * - [Transitions](https://mui.com/base-ui/react-transitions/)\n *\n * API:\n *\n * - [CssAnimation API](https://mui.com/base-ui/react-transitions/components-api/#css-animation)\n */\nfunction CssAnimation(props) {\n const {\n children,\n className,\n enterAnimationName,\n enterClassName,\n exitAnimationName,\n exitClassName\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const {\n requestedEnter,\n onExited\n } = useTransitionStateManager();\n const hasExited = React.useRef(true);\n React.useEffect(() => {\n if (requestedEnter && hasExited.current) {\n hasExited.current = false;\n }\n }, [requestedEnter]);\n const handleAnimationEnd = React.useCallback(event => {\n if (event.animationName === exitAnimationName) {\n onExited();\n hasExited.current = true;\n } else if (event.animationName === enterAnimationName) {\n hasExited.current = false;\n }\n }, [onExited, exitAnimationName, enterAnimationName]);\n return /*#__PURE__*/_jsx(\"div\", _extends({\n onAnimationEnd: handleAnimationEnd,\n className: clsx(className, requestedEnter ? enterClassName : exitClassName)\n }, other, {\n children: children\n }));\n}\nprocess.env.NODE_ENV !== \"production\" ? CssAnimation.propTypes = {\n children: PropTypes.node,\n className: PropTypes.string,\n enterAnimationName: PropTypes.string,\n enterClassName: PropTypes.string,\n exitAnimationName: PropTypes.string,\n exitClassName: PropTypes.string\n} : void 0;\nexport { CssAnimation };", "'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"children\", \"className\", \"lastTransitionedPropertyOnExit\", \"enterClassName\", \"exitClassName\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { useTransitionStateManager } from '../useTransition';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * A utility component that hooks up to the Base UI transitions API and\n * applies a CSS transition to its children when necessary.\n *\n * Demos:\n *\n * - [Transitions](https://mui.com/base-ui/react-transitions/)\n *\n * API:\n *\n * - [CssTransition API](https://mui.com/base-ui/react-transitions/components-api/#css-transition)\n */\nconst CssTransition = /*#__PURE__*/React.forwardRef(function CssTransition(props, forwardedRef) {\n const {\n children,\n className,\n lastTransitionedPropertyOnExit,\n enterClassName,\n exitClassName\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const {\n requestedEnter,\n onExited\n } = useTransitionStateManager();\n const [isEntering, setIsEntering] = React.useState(false);\n\n // The `isEntering` state (which is used to determine the right CSS class to apply)\n // is updated slightly (one animation frame) after the `requestedEnter` state is updated.\n // Thanks to this, elements that are mounted will have their enter transition applied\n // (if the `enterClassName` was applied when the element was mounted, the transition would not be fired).\n React.useEffect(() => {\n if (requestedEnter) {\n requestAnimationFrame(() => {\n setIsEntering(true);\n });\n } else {\n setIsEntering(false);\n }\n }, [requestedEnter]);\n const handleTransitionEnd = React.useCallback(event => {\n if (!requestedEnter && (lastTransitionedPropertyOnExit == null || event.propertyName === lastTransitionedPropertyOnExit)) {\n onExited();\n }\n }, [onExited, requestedEnter, lastTransitionedPropertyOnExit]);\n return /*#__PURE__*/_jsx(\"div\", _extends({\n onTransitionEnd: handleTransitionEnd,\n className: clsx(className, isEntering ? enterClassName : exitClassName)\n }, other, {\n ref: forwardedRef,\n children: children\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? CssTransition.propTypes = {\n children: PropTypes.node,\n className: PropTypes.string,\n enterClassName: PropTypes.string,\n exitClassName: PropTypes.string,\n lastTransitionedPropertyOnEnter: PropTypes.string,\n lastTransitionedPropertyOnExit: PropTypes.string\n} : void 0;\nexport { CssTransition };", "import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nimport { inputBaseClasses } from '../InputBase';\nexport function getOutlinedInputUtilityClass(slot) {\n return generateUtilityClass('MuiOutlinedInput', slot);\n}\nconst outlinedInputClasses = _extends({}, inputBaseClasses, generateUtilityClasses('MuiOutlinedInput', ['root', 'notchedOutline', 'input']));\nexport default outlinedInputClasses;"],
|
||
"mappings": "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",
|
||
"names": ["_jsx", "PropTypes", "React", "import_prop_types", "import_jsx_runtime", "_jsxs", "_jsx", "PropTypes", "index", "React", "import_prop_types", "import_jsx_runtime", "_jsx", "PropTypes", "React", "import_prop_types", "import_jsx_runtime", "TextareaAutosize", "_jsxs", "_jsx", "PropTypes", "React", "value", "index", "handleKeyDown", "handleBlur", "handleInputChange", "React", "import_prop_types", "import_jsx_runtime", "_jsx", "PropTypes", "GlobalStyles_default", "React", "import_prop_types", "React", "import_prop_types", "max", "generateUtilityClass", "generateUtilityClasses", "import_jsx_runtime", "_excluded", "Badge", "max", "_jsxs", "_jsx", "PropTypes", "React", "import_prop_types", "COMPONENT_NAME", "generateUtilityClass", "generateUtilityClasses", "React", "import_jsx_runtime", "_excluded", "useUtilityClasses", "Button", "_jsx", "PropTypes", "React", "import_prop_types", "React", "React", "React", "import_jsx_runtime", "_jsx", "PropTypes", "React", "import_prop_types", "React", "COMPONENT_NAME", "generateUtilityClass", "generateUtilityClasses", "import_jsx_runtime", "_excluded", "useUtilityClasses", "FormControl", "_jsx", "PropTypes", "React", "React", "import_prop_types", "COMPONENT_NAME", "generateUtilityClass", "generateUtilityClasses", "React", "handleBlur", "import_jsx_runtime", "_excluded", "useUtilityClasses", "Input", "_jsxs", "_jsx", "PropTypes", "React", "import_prop_types", "COMPONENT_NAME", "generateUtilityClass", "generateUtilityClasses", "React", "React", "offset", "pageSize", "index", "React", "EMPTY_OBJECT", "NOOP", "pageSize", "state", "handleTextNavigation", "React", "React", "React", "deregisterItem", "registerItem", "getItemIndex", "React", "React", "import_jsx_runtime", "_jsx", "React", "import_prop_types", "platform", "platform", "placements", "sides", "side", "placement", "overflow", "platform", "x", "y", "min", "max", "window", "shift", "flip", "computePosition", "React", "platform", "computePosition", "data", "COMPONENT_NAME", "generateUtilityClass", "generateUtilityClasses", "React", "React", "React", "React", "import_jsx_runtime", "_excluded", "useUtilityClasses", "Popup", "flip", "shift", "_jsx", "PropTypes", "import_jsx_runtime", "_excluded", "useUtilityClasses", "Menu", "_jsx", "PropTypes", "React", "import_prop_types", "React", "COMPONENT_NAME", "generateUtilityClass", "generateUtilityClasses", "import_jsx_runtime", "_excluded", "useUtilityClasses", "MenuButton", "_jsx", "PropTypes", "React", "import_prop_types", "COMPONENT_NAME", "generateUtilityClass", "generateUtilityClasses", "React", "FALLBACK_MENU_CONTEXT", "index", "React", "import_jsx_runtime", "_excluded", "useUtilityClasses", "_jsx", "MenuItem", "PropTypes", "React", "import_prop_types", "React", "COMPONENT_NAME", "generateUtilityClass", "generateUtilityClasses", "import_jsx_runtime", "_excluded", "useUtilityClasses", "Modal", "_jsx", "_jsxs", "PropTypes", "React", "import_prop_types", "COMPONENT_NAME", "generateUtilityClass", "generateUtilityClasses", "React", "min", "max", "min", "max", "getInputValueAsString", "min", "max", "handleStep", "import_jsx_runtime", "_excluded", "useUtilityClasses", "NumberInput", "max", "min", "Input", "_jsxs", "_jsx", "PropTypes", "React", "import_prop_types", "COMPONENT_NAME", "generateUtilityClass", "generateUtilityClasses", "import_jsx_runtime", "_excluded", "useUtilityClasses", "OptionGroup", "_jsxs", "_jsx", "PropTypes", "React", "import_prop_types", "COMPONENT_NAME", "generateUtilityClass", "generateUtilityClasses", "React", "index", "React", "import_jsx_runtime", "_excluded", "useUtilityClasses", "index", "_jsx", "Option", "PropTypes", "React", "import_prop_types", "React", "index", "React", "import_jsx_runtime", "_jsx", "COMPONENT_NAME", "generateUtilityClass", "generateUtilityClasses", "import_jsx_runtime", "_excluded", "_jsx", "useUtilityClasses", "Select", "Button", "_jsxs", "PropTypes", "React", "import_prop_types", "COMPONENT_NAME", "generateUtilityClass", "generateUtilityClasses", "React", "index", "min", "max", "import_jsx_runtime", "_excluded", "Identity", "useUtilityClasses", "Slider", "max", "min", "axisProps", "Input", "_jsxs", "_jsx", "index", "PropTypes", "React", "import_prop_types", "COMPONENT_NAME", "generateUtilityClass", "generateUtilityClasses", "React", "handleKeyDown", "import_jsx_runtime", "_excluded", "useUtilityClasses", "Snackbar", "_jsx", "PropTypes", "React", "import_prop_types", "React", "COMPONENT_NAME", "generateUtilityClass", "generateUtilityClasses", "import_jsx_runtime", "_excluded", "useUtilityClasses", "Switch", "Input", "_jsxs", "_jsx", "PropTypes", "React", "import_prop_types", "React", "import_jsx_runtime", "_excluded", "_span", "_span2", "_jsx", "TablePaginationActions", "_jsxs", "COMPONENT_NAME", "generateUtilityClass", "generateUtilityClasses", "import_jsx_runtime", "import_react", "_excluded", "defaultGetAriaLabel", "useUtilityClasses", "TablePagination", "Select", "MenuItem", "_jsx", "_jsxs", "_createElement", "PropTypes", "React", "import_prop_types", "COMPONENT_NAME", "generateUtilityClass", "generateUtilityClasses", "React", "React", "import_prop_types", "COMPONENT_NAME", "generateUtilityClass", "generateUtilityClasses", "React", "React", "React", "import_jsx_runtime", "_jsx", "import_jsx_runtime", "_excluded", "useUtilityClasses", "Tabs", "_jsx", "PropTypes", "import_jsx_runtime", "_excluded", "useUtilityClasses", "TabPanel", "_jsx", "PropTypes", "React", "import_prop_types", "COMPONENT_NAME", "generateUtilityClass", "generateUtilityClasses", "React", "React", "import_jsx_runtime", "_jsx", "import_jsx_runtime", "_excluded", "useUtilityClasses", "TabsList", "_jsx", "PropTypes", "React", "import_prop_types", "COMPONENT_NAME", "generateUtilityClass", "generateUtilityClasses", "React", "index", "import_jsx_runtime", "_excluded", "useUtilityClasses", "Tab", "_jsx", "PropTypes", "React", "import_prop_types", "import_jsx_runtime", "_excluded", "_jsx", "PropTypes", "React", "import_prop_types", "import_jsx_runtime", "_excluded", "CssTransition", "_jsx", "PropTypes", "import_jsx_runtime", "_excluded", "styles", "useUtilityClasses", "size", "_jsx", "GlobalStyles_default", "InputBase", "useEnhancedEffect_default", "handleBlur", "Input", "_jsxs", "PropTypes"]
|
||
}
|