{"version":3,"file":"mui_utils-BWDDcjxv.js","sources":["../../node_modules/.pnpm/@mui+utils@6.4.0_@types+react@18.3.12_react@18.3.1/node_modules/@mui/utils/esm/formatMuiErrorMessage/formatMuiErrorMessage.js","../../node_modules/.pnpm/@mui+utils@6.4.0_@types+react@18.3.12_react@18.3.1/node_modules/@mui/utils/esm/deepmerge/deepmerge.js","../../node_modules/.pnpm/@mui+utils@6.4.0_@types+react@18.3.12_react@18.3.1/node_modules/@mui/utils/esm/capitalize/capitalize.js","../../node_modules/.pnpm/@mui+utils@6.4.0_@types+react@18.3.12_react@18.3.1/node_modules/@mui/utils/esm/ClassNameGenerator/ClassNameGenerator.js","../../node_modules/.pnpm/@mui+utils@6.4.0_@types+react@18.3.12_react@18.3.1/node_modules/@mui/utils/esm/generateUtilityClass/generateUtilityClass.js","../../node_modules/.pnpm/@mui+utils@6.4.0_@types+react@18.3.12_react@18.3.1/node_modules/@mui/utils/esm/generateUtilityClasses/generateUtilityClasses.js","../../node_modules/.pnpm/@mui+utils@6.4.0_@types+react@18.3.12_react@18.3.1/node_modules/@mui/utils/esm/resolveProps/resolveProps.js","../../node_modules/.pnpm/@mui+utils@6.4.0_@types+react@18.3.12_react@18.3.1/node_modules/@mui/utils/esm/useEnhancedEffect/useEnhancedEffect.js","../../node_modules/.pnpm/@mui+utils@6.4.0_@types+react@18.3.12_react@18.3.1/node_modules/@mui/utils/esm/clamp/clamp.js","../../node_modules/.pnpm/@mui+utils@6.4.0_@types+react@18.3.12_react@18.3.1/node_modules/@mui/utils/esm/refType/refType.js","../../node_modules/.pnpm/@mui+utils@6.4.0_@types+react@18.3.12_react@18.3.1/node_modules/@mui/utils/esm/createChainedFunction/createChainedFunction.js","../../node_modules/.pnpm/@mui+utils@6.4.0_@types+react@18.3.12_react@18.3.1/node_modules/@mui/utils/esm/debounce/debounce.js","../../node_modules/.pnpm/@mui+utils@6.4.0_@types+react@18.3.12_react@18.3.1/node_modules/@mui/utils/esm/isMuiElement/isMuiElement.js","../../node_modules/.pnpm/@mui+utils@6.4.0_@types+react@18.3.12_react@18.3.1/node_modules/@mui/utils/esm/ownerDocument/ownerDocument.js","../../node_modules/.pnpm/@mui+utils@6.4.0_@types+react@18.3.12_react@18.3.1/node_modules/@mui/utils/esm/ownerWindow/ownerWindow.js","../../node_modules/.pnpm/@mui+utils@6.4.0_@types+react@18.3.12_react@18.3.1/node_modules/@mui/utils/esm/setRef/setRef.js","../../node_modules/.pnpm/@mui+utils@6.4.0_@types+react@18.3.12_react@18.3.1/node_modules/@mui/utils/esm/useId/useId.js","../../node_modules/.pnpm/@mui+utils@6.4.0_@types+react@18.3.12_react@18.3.1/node_modules/@mui/utils/esm/useControlled/useControlled.js","../../node_modules/.pnpm/@mui+utils@6.4.0_@types+react@18.3.12_react@18.3.1/node_modules/@mui/utils/esm/useEventCallback/useEventCallback.js","../../node_modules/.pnpm/@mui+utils@6.4.0_@types+react@18.3.12_react@18.3.1/node_modules/@mui/utils/esm/useForkRef/useForkRef.js","../../node_modules/.pnpm/@mui+utils@6.4.0_@types+react@18.3.12_react@18.3.1/node_modules/@mui/utils/esm/useLazyRef/useLazyRef.js","../../node_modules/.pnpm/@mui+utils@6.4.0_@types+react@18.3.12_react@18.3.1/node_modules/@mui/utils/esm/useOnMount/useOnMount.js","../../node_modules/.pnpm/@mui+utils@6.4.0_@types+react@18.3.12_react@18.3.1/node_modules/@mui/utils/esm/useTimeout/useTimeout.js","../../node_modules/.pnpm/@mui+utils@6.4.0_@types+react@18.3.12_react@18.3.1/node_modules/@mui/utils/esm/isFocusVisible/isFocusVisible.js","../../node_modules/.pnpm/@mui+utils@6.4.0_@types+react@18.3.12_react@18.3.1/node_modules/@mui/utils/esm/getScrollbarSize/getScrollbarSize.js","../../node_modules/.pnpm/@mui+utils@6.4.0_@types+react@18.3.12_react@18.3.1/node_modules/@mui/utils/esm/usePreviousProps/usePreviousProps.js","../../node_modules/.pnpm/@mui+utils@6.4.0_@types+react@18.3.12_react@18.3.1/node_modules/@mui/utils/esm/visuallyHidden/visuallyHidden.js","../../node_modules/.pnpm/@mui+utils@6.4.0_@types+react@18.3.12_react@18.3.1/node_modules/@mui/utils/esm/composeClasses/composeClasses.js","../../node_modules/.pnpm/@mui+utils@6.4.0_@types+react@18.3.12_react@18.3.1/node_modules/@mui/utils/esm/isHostComponent/isHostComponent.js","../../node_modules/.pnpm/@mui+utils@6.4.0_@types+react@18.3.12_react@18.3.1/node_modules/@mui/utils/esm/appendOwnerState/appendOwnerState.js","../../node_modules/.pnpm/@mui+utils@6.4.0_@types+react@18.3.12_react@18.3.1/node_modules/@mui/utils/esm/extractEventHandlers/extractEventHandlers.js","../../node_modules/.pnpm/@mui+utils@6.4.0_@types+react@18.3.12_react@18.3.1/node_modules/@mui/utils/esm/omitEventHandlers/omitEventHandlers.js","../../node_modules/.pnpm/@mui+utils@6.4.0_@types+react@18.3.12_react@18.3.1/node_modules/@mui/utils/esm/mergeSlotProps/mergeSlotProps.js","../../node_modules/.pnpm/@mui+utils@6.4.0_@types+react@18.3.12_react@18.3.1/node_modules/@mui/utils/esm/resolveComponentProps/resolveComponentProps.js","../../node_modules/.pnpm/@mui+utils@6.4.0_@types+react@18.3.12_react@18.3.1/node_modules/@mui/utils/esm/useSlotProps/useSlotProps.js","../../node_modules/.pnpm/@mui+utils@6.4.0_@types+react@18.3.12_react@18.3.1/node_modules/@mui/utils/esm/getReactElementRef/getReactElementRef.js"],"sourcesContent":["/**\n * WARNING: Don't import this directly. It's imported by the code generated by\n * `@mui/interal-babel-plugin-minify-errors`. Make sure to always use string literals in `Error`\n * constructors to ensure the plugin works as expected. Supported patterns include:\n * throw new Error('My message');\n * throw new Error(`My message: ${foo}`);\n * throw new Error(`My message: ${foo}` + 'another string');\n * ...\n * @param {number} code\n */\nexport default function formatMuiErrorMessage(code, ...args) {\n const url = new URL(`https://mui.com/production-error/?code=${code}`);\n args.forEach(arg => url.searchParams.append('args[]', arg));\n return `Minified MUI error #${code}; visit ${url} for the full message.`;\n}","import * as React from 'react';\n\n// https://github.com/sindresorhus/is-plain-obj/blob/main/index.js\nexport function isPlainObject(item) {\n if (typeof item !== 'object' || item === null) {\n return false;\n }\n const prototype = Object.getPrototypeOf(item);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in item) && !(Symbol.iterator in item);\n}\nfunction deepClone(source) {\n if (/*#__PURE__*/React.isValidElement(source) || !isPlainObject(source)) {\n return source;\n }\n const output = {};\n Object.keys(source).forEach(key => {\n output[key] = deepClone(source[key]);\n });\n return output;\n}\n\n/**\n * Merge objects deeply.\n * It will shallow copy React elements.\n *\n * If `options.clone` is set to `false` the source object will be merged directly into the target object.\n *\n * @example\n * ```ts\n * deepmerge({ a: { b: 1 }, d: 2 }, { a: { c: 2 }, d: 4 });\n * // => { a: { b: 1, c: 2 }, d: 4 }\n * ````\n *\n * @param target The target object.\n * @param source The source object.\n * @param options The merge options.\n * @param options.clone Set to `false` to merge the source object directly into the target object.\n * @returns The merged object.\n */\nexport default function deepmerge(target, source, options = {\n clone: true\n}) {\n const output = options.clone ? {\n ...target\n } : target;\n if (isPlainObject(target) && isPlainObject(source)) {\n Object.keys(source).forEach(key => {\n if (/*#__PURE__*/React.isValidElement(source[key])) {\n output[key] = source[key];\n } else if (isPlainObject(source[key]) &&\n // Avoid prototype pollution\n Object.prototype.hasOwnProperty.call(target, key) && isPlainObject(target[key])) {\n // Since `output` is a clone of `target` and we have narrowed `target` in this block we can cast to the same type.\n output[key] = deepmerge(target[key], source[key], options);\n } else if (options.clone) {\n output[key] = isPlainObject(source[key]) ? deepClone(source[key]) : source[key];\n } else {\n output[key] = source[key];\n }\n });\n }\n return output;\n}","import _formatMuiErrorMessage from \"@mui/utils/formatMuiErrorMessage\";\n// It should to be noted that this function isn't equivalent to `text-transform: capitalize`.\n//\n// A strict capitalization should uppercase the first letter of each word in the sentence.\n// We only handle the first word.\nexport default function capitalize(string) {\n if (typeof string !== 'string') {\n throw new Error(process.env.NODE_ENV !== \"production\" ? 'MUI: `capitalize(string)` expects a string argument.' : _formatMuiErrorMessage(7));\n }\n return string.charAt(0).toUpperCase() + string.slice(1);\n}","const defaultGenerator = componentName => componentName;\nconst createClassNameGenerator = () => {\n let generate = defaultGenerator;\n return {\n configure(generator) {\n generate = generator;\n },\n generate(componentName) {\n return generate(componentName);\n },\n reset() {\n generate = defaultGenerator;\n }\n };\n};\nconst ClassNameGenerator = createClassNameGenerator();\nexport default ClassNameGenerator;","import ClassNameGenerator from \"../ClassNameGenerator/index.js\";\nexport const globalStateClasses = {\n active: 'active',\n checked: 'checked',\n completed: 'completed',\n disabled: 'disabled',\n error: 'error',\n expanded: 'expanded',\n focused: 'focused',\n focusVisible: 'focusVisible',\n open: 'open',\n readOnly: 'readOnly',\n required: 'required',\n selected: 'selected'\n};\nexport default function generateUtilityClass(componentName, slot, globalStatePrefix = 'Mui') {\n const globalStateClass = globalStateClasses[slot];\n return globalStateClass ? `${globalStatePrefix}-${globalStateClass}` : `${ClassNameGenerator.generate(componentName)}-${slot}`;\n}\nexport function isGlobalState(slot) {\n return globalStateClasses[slot] !== undefined;\n}","import generateUtilityClass from \"../generateUtilityClass/index.js\";\nexport default function generateUtilityClasses(componentName, slots, globalStatePrefix = 'Mui') {\n const result = {};\n slots.forEach(slot => {\n result[slot] = generateUtilityClass(componentName, slot, globalStatePrefix);\n });\n return result;\n}","/**\n * Add keys, values of `defaultProps` that does not exist in `props`\n * @param defaultProps\n * @param props\n * @returns resolved props\n */\nexport default function resolveProps(defaultProps, props) {\n const output = {\n ...props\n };\n for (const key in defaultProps) {\n if (Object.prototype.hasOwnProperty.call(defaultProps, key)) {\n const propName = key;\n if (propName === 'components' || propName === 'slots') {\n output[propName] = {\n ...defaultProps[propName],\n ...output[propName]\n };\n } else if (propName === 'componentsProps' || propName === 'slotProps') {\n const defaultSlotProps = defaultProps[propName];\n const slotProps = props[propName];\n if (!slotProps) {\n output[propName] = defaultSlotProps || {};\n } else if (!defaultSlotProps) {\n output[propName] = slotProps;\n } else {\n output[propName] = {\n ...slotProps\n };\n for (const slotKey in defaultSlotProps) {\n if (Object.prototype.hasOwnProperty.call(defaultSlotProps, slotKey)) {\n const slotPropName = slotKey;\n output[propName][slotPropName] = resolveProps(defaultSlotProps[slotPropName], slotProps[slotPropName]);\n }\n }\n }\n } else if (output[propName] === undefined) {\n output[propName] = defaultProps[propName];\n }\n }\n }\n return output;\n}","'use client';\n\nimport * as React from 'react';\n\n/**\n * A version of `React.useLayoutEffect` that does not show a warning when server-side rendering.\n * This is useful for effects that are only needed for client-side rendering but not for SSR.\n *\n * Before you use this hook, make sure to read https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\n * and confirm it doesn't apply to your use-case.\n */\nconst useEnhancedEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;\nexport default useEnhancedEffect;","function clamp(val, min = Number.MIN_SAFE_INTEGER, max = Number.MAX_SAFE_INTEGER) {\n return Math.max(min, Math.min(val, max));\n}\nexport default clamp;","import PropTypes from 'prop-types';\nconst refType = PropTypes.oneOfType([PropTypes.func, PropTypes.object]);\nexport default refType;","/**\n * Safe chained function.\n *\n * Will only create a new function if needed,\n * otherwise will pass back existing functions or null.\n */\nexport default function createChainedFunction(...funcs) {\n return funcs.reduce((acc, func) => {\n if (func == null) {\n return acc;\n }\n return function chainedFunction(...args) {\n acc.apply(this, args);\n func.apply(this, args);\n };\n }, () => {});\n}","// Corresponds to 10 frames at 60 Hz.\n// A few bytes payload overhead when lodash/debounce is ~3 kB and debounce ~300 B.\nexport default function debounce(func, wait = 166) {\n let timeout;\n function debounced(...args) {\n const later = () => {\n // @ts-ignore\n func.apply(this, args);\n };\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n }\n debounced.clear = () => {\n clearTimeout(timeout);\n };\n return debounced;\n}","import * as React from 'react';\nexport default function isMuiElement(element, muiNames) {\n return /*#__PURE__*/React.isValidElement(element) && muiNames.indexOf(\n // For server components `muiName` is avaialble in element.type._payload.value.muiName\n // relevant info - https://github.com/facebook/react/blob/2807d781a08db8e9873687fccc25c0f12b4fb3d4/packages/react/src/ReactLazy.js#L45\n // eslint-disable-next-line no-underscore-dangle\n element.type.muiName ?? element.type?._payload?.value?.muiName) !== -1;\n}","export default function ownerDocument(node) {\n return node && node.ownerDocument || document;\n}","import ownerDocument from \"../ownerDocument/index.js\";\nexport default function ownerWindow(node) {\n const doc = ownerDocument(node);\n return doc.defaultView || window;\n}","/**\n * TODO v5: consider making it private\n *\n * passes {value} to {ref}\n *\n * WARNING: Be sure to only call this inside a callback that is passed as a ref.\n * Otherwise, make sure to cleanup the previous {ref} if it changes. See\n * https://github.com/mui/material-ui/issues/13539\n *\n * Useful if you want to expose the ref of an inner component to the public API\n * while still using it inside the component.\n * @param ref A ref callback or ref object. If anything falsy, this is a no-op.\n */\nexport default function setRef(ref, value) {\n if (typeof ref === 'function') {\n ref(value);\n } else if (ref) {\n ref.current = value;\n }\n}","'use client';\n\nimport * as React from 'react';\nlet globalId = 0;\n\n// TODO React 17: Remove `useGlobalId` once React 17 support is removed\nfunction useGlobalId(idOverride) {\n const [defaultId, setDefaultId] = React.useState(idOverride);\n const id = idOverride || defaultId;\n React.useEffect(() => {\n if (defaultId == null) {\n // Fallback to this default id when possible.\n // Use the incrementing value for client-side rendering only.\n // We can't use it server-side.\n // If you want to use random values please consider the Birthday Problem: https://en.wikipedia.org/wiki/Birthday_problem\n globalId += 1;\n setDefaultId(`mui-${globalId}`);\n }\n }, [defaultId]);\n return id;\n}\n\n// See https://github.com/mui/material-ui/issues/41190#issuecomment-2040873379 for why\nconst safeReact = {\n ...React\n};\nconst maybeReactUseId = safeReact.useId;\n\n/**\n *\n * @example
\n * @param idOverride\n * @returns {string}\n */\nexport default function useId(idOverride) {\n // React.useId() is only available from React 17.0.0.\n if (maybeReactUseId !== undefined) {\n const reactId = maybeReactUseId();\n return idOverride ?? reactId;\n }\n\n // TODO: uncomment once we enable eslint-plugin-react-compiler // eslint-disable-next-line react-compiler/react-compiler\n // eslint-disable-next-line react-hooks/rules-of-hooks -- `React.useId` is invariant at runtime.\n return useGlobalId(idOverride);\n}","'use client';\n\n// TODO: uncomment once we enable eslint-plugin-react-compiler // eslint-disable-next-line react-compiler/react-compiler -- process.env never changes, dependency arrays are intentionally ignored\n/* eslint-disable react-hooks/rules-of-hooks, react-hooks/exhaustive-deps */\nimport * as React from 'react';\nexport default function useControlled({\n controlled,\n default: defaultProp,\n name,\n state = 'value'\n}) {\n // isControlled is ignored in the hook dependency lists as it should never change.\n const {\n current: isControlled\n } = React.useRef(controlled !== undefined);\n const [valueState, setValue] = React.useState(defaultProp);\n const value = isControlled ? controlled : valueState;\n if (process.env.NODE_ENV !== 'production') {\n React.useEffect(() => {\n if (isControlled !== (controlled !== undefined)) {\n console.error([`MUI: A component is changing the ${isControlled ? '' : 'un'}controlled ${state} state of ${name} to be ${isControlled ? 'un' : ''}controlled.`, 'Elements should not switch from uncontrolled to controlled (or vice versa).', `Decide between using a controlled or uncontrolled ${name} ` + 'element for the lifetime of the component.', \"The nature of the state is determined during the first render. It's considered controlled if the value is not `undefined`.\", 'More info: https://fb.me/react-controlled-components'].join('\\n'));\n }\n }, [state, name, controlled]);\n const {\n current: defaultValue\n } = React.useRef(defaultProp);\n React.useEffect(() => {\n // Object.is() is not equivalent to the === operator.\n // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is for more details.\n if (!isControlled && !Object.is(defaultValue, defaultProp)) {\n console.error([`MUI: A component is changing the default ${state} state of an uncontrolled ${name} after being initialized. ` + `To suppress this warning opt to use a controlled ${name}.`].join('\\n'));\n }\n }, [JSON.stringify(defaultProp)]);\n }\n const setValueIfUncontrolled = React.useCallback(newValue => {\n if (!isControlled) {\n setValue(newValue);\n }\n }, []);\n return [value, setValueIfUncontrolled];\n}","'use client';\n\nimport * as React from 'react';\nimport useEnhancedEffect from \"../useEnhancedEffect/index.js\";\n\n/**\n * Inspired by https://github.com/facebook/react/issues/14099#issuecomment-440013892\n * See RFC in https://github.com/reactjs/rfcs/pull/220\n */\n\nfunction useEventCallback(fn) {\n const ref = React.useRef(fn);\n useEnhancedEffect(() => {\n ref.current = fn;\n });\n return React.useRef((...args) =>\n // @ts-expect-error hide `this`\n (0, ref.current)(...args)).current;\n}\nexport default useEventCallback;","'use client';\n\nimport * as React from 'react';\nimport setRef from \"../setRef/index.js\";\n\n/**\n * Takes an array of refs and returns a new ref which will apply any modification to all of the refs.\n * This is useful when you want to have the ref used in multiple places.\n *\n * ```tsx\n * const rootRef = React.useRef