{"ast":null,"code":"'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"className\", \"children\", \"classes\", \"IconComponent\", \"input\", \"inputProps\", \"variant\"],\n _excluded2 = [\"root\"];\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport composeClasses from '@mui/utils/composeClasses';\nimport NativeSelectInput from './NativeSelectInput';\nimport formControlState from '../FormControl/formControlState';\nimport useFormControl from '../FormControl/useFormControl';\nimport ArrowDropDownIcon from '../internal/svg-icons/ArrowDropDown';\nimport Input from '../Input';\nimport { useDefaultProps } from '../DefaultPropsProvider';\nimport { getNativeSelectUtilityClasses } from './nativeSelectClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root']\n };\n return composeClasses(slots, getNativeSelectUtilityClasses, classes);\n};\nconst defaultInput = /*#__PURE__*/_jsx(Input, {});\n/**\n * An alternative to `` with a much smaller bundle size footprint.\n */\nconst NativeSelect = /*#__PURE__*/React.forwardRef(function NativeSelect(inProps, ref) {\n const props = useDefaultProps({\n name: 'MuiNativeSelect',\n props: inProps\n });\n const {\n className,\n children,\n classes: classesProp = {},\n IconComponent = ArrowDropDownIcon,\n input = defaultInput,\n inputProps\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const muiFormControl = useFormControl();\n const fcs = formControlState({\n props,\n muiFormControl,\n states: ['variant']\n });\n const ownerState = _extends({}, props, {\n classes: classesProp\n });\n const classes = useUtilityClasses(ownerState);\n const otherClasses = _objectWithoutPropertiesLoose(classesProp, _excluded2);\n return /*#__PURE__*/_jsx(React.Fragment, {\n children: /*#__PURE__*/React.cloneElement(input, _extends({\n // Most of the logic is implemented in `NativeSelectInput`.\n // The `Select` component is a simple API wrapper to expose something better to play with.\n inputComponent: NativeSelectInput,\n inputProps: _extends({\n children,\n classes: otherClasses,\n IconComponent,\n variant: fcs.variant,\n type: undefined\n }, inputProps, input ? input.props.inputProps : {}),\n ref\n }, other, {\n className: clsx(classes.root, input.props.className, className)\n }))\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? NativeSelect.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 option elements to populate the select with.\n * Can be some `