import * as React from 'react'; import { PickerValidDate } from '../models'; import { SlotComponentProps } from '@mui/base/utils'; import Typography from '@mui/material/Typography'; import Stack, { StackProps } from '@mui/material/Stack'; import TextField from '@mui/material/TextField'; import { UseMultiInputRangeFieldParams } from '../internals/hooks/useMultiInputRangeField/useMultiInputRangeField.types'; import { MultiInputFieldRefs, MultiInputRangeFieldClasses, RangePosition, UseDateRangeFieldProps } from '../models'; export type UseMultiInputDateRangeFieldParams = UseMultiInputRangeFieldParams, TTextFieldSlotProps>; export interface UseMultiInputDateRangeFieldProps extends Omit, 'unstableFieldRef' | 'clearable' | 'onClear'>, MultiInputFieldRefs { } export type UseMultiInputDateRangeFieldComponentProps = Omit> & UseMultiInputDateRangeFieldProps; export interface MultiInputDateRangeFieldProps extends UseMultiInputDateRangeFieldComponentProps> { autoFocus?: boolean; /** * Override or extend the styles applied to the component. */ classes?: Partial; /** * Overridable component slots. * @default {} */ slots?: MultiInputDateRangeFieldSlots; /** * The props used for each component slot. * @default {} */ slotProps?: MultiInputDateRangeFieldSlotProps; } export interface MultiInputDateRangeFieldSlots { /** * Element rendered at the root. * @default MultiInputDateRangeFieldRoot */ root?: React.ElementType; /** * Form control with an input to render a date. * It is rendered twice: once for the start date and once for the end date. * @default TextField from '@mui/material' or PickersTextField if `enableAccessibleFieldDOMStructure` is `true`. */ textField?: React.ElementType; /** * Element rendered between the two inputs. * @default MultiInputDateRangeFieldSeparator */ separator?: React.ElementType; } export interface MultiInputDateRangeFieldSlotProps { root?: SlotComponentProps>; textField?: SlotComponentProps & { position: RangePosition; }>; separator?: SlotComponentProps>; }