import classNames from 'classnames'; import * as React from 'react'; import { useContext } from 'react'; import warning from 'warning'; import Feedback from './Feedback'; import FormContext from './FormContext'; import { useBootstrapPrefix } from './ThemeProvider'; import { jsx as _jsx } from "react/jsx-runtime"; const FormControl = /*#__PURE__*/React.forwardRef(({ bsPrefix, type, size, htmlSize, id, className, isValid = false, isInvalid = false, plaintext, readOnly, // Need to define the default "as" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595 as: Component = 'input', ...props }, ref) => { const { controlId } = useContext(FormContext); bsPrefix = useBootstrapPrefix(bsPrefix, 'form-control'); let classes; if (plaintext) { classes = { [`${bsPrefix}-plaintext`]: true }; } else { classes = { [bsPrefix]: true, [`${bsPrefix}-${size}`]: size }; } process.env.NODE_ENV !== "production" ? warning(controlId == null || !id, '`controlId` is ignored on `` when `id` is specified.') : void 0; return /*#__PURE__*/_jsx(Component, { ...props, type: type, size: htmlSize, ref: ref, readOnly: readOnly, id: id || controlId, className: classNames(className, classes, isValid && `is-valid`, isInvalid && `is-invalid`, type === 'color' && `${bsPrefix}-color`) }); }); FormControl.displayName = 'FormControl'; export default Object.assign(FormControl, { Feedback });