import * as React from 'react'; import classNames from 'classnames'; import { classNameModifier } from '../shared/utils'; import { ComponentClassNames } from '../shared/constants'; import { FieldDescription, FieldErrorMessage } from '../Field'; import { FieldGroup } from '../FieldGroup'; import { Flex } from '../Flex'; import { Input } from '../Input'; import { Label } from '../Label'; import { ForwardRefPrimitive, Primitive, BaseTextFieldProps, TextFieldProps, } from '../types'; import { splitPrimitiveProps } from '../utils/splitPrimitiveProps'; import { useStableId } from '../utils/useStableId'; const TextFieldPrimitive: Primitive = (props, ref) => { const { className, descriptiveText, errorMessage, hasError = false, id, innerEndComponent, innerStartComponent, label, labelHidden = false, outerEndComponent, outerStartComponent, size, testId, variation, inputStyles, ..._rest } = props; const fieldId = useStableId(id); const descriptionId = useStableId(); const ariaDescribedBy = descriptiveText ? descriptionId : undefined; const { styleProps, rest } = splitPrimitiveProps(_rest); return ( ); }; /** * [📖 Docs](https://ui.docs.amplify.aws/react/components/textfield) */ export const TextField: ForwardRefPrimitive = React.forwardRef(TextFieldPrimitive); TextField.displayName = 'TextField';