import type { ComponentPropsWithoutRef } from 'react'; import type { DataTestId } from '../../core/types/data-props.js'; import type { FormControlStateProps } from '../../core/types/form-control-state.js'; import type { MaskingProps } from '../../core/types/masking-props.js'; import type { StylingProps } from '../../core/types/styling-props.js'; import type { WithChildren } from '../../core/types/with-children.js'; import type { ValidationState } from '../validation/types.js'; /** * Props used by all input components. * @public */ export interface BaseInputProps extends ComponentPropsWithoutRef<'input'>, FormControlStateProps, WithChildren, StylingProps, DataTestId, MaskingProps { /** * Variant defining the visual representation of the input field (default or minimal). * @defaultValue 'default' */ variant?: 'default' | 'minimal'; /** * Sets the value of the input field to an empty string. * @deprecated Use `BaseInput.ReservedSuffix` to render a clear button instead. */ onClear?: () => void; /** * Called when validation state changes. Fires automatically on blur or change, * and when triggered manually via `validate()` or `validateAsync()`. */ onValidityChange?: (state: ValidationState) => void; }