import * as React from 'react'; import TextField from '@mui/material/TextField'; import { SlotComponentProps } from '@mui/base/utils'; import { BaseNonStaticPickerProps, BasePickerProps, BaseNonRangeNonStaticPickerProps } from '../../models/props/basePickerProps'; import { PickersModalDialogSlots, PickersModalDialogSlotProps } from '../../components/PickersModalDialog'; import { UsePickerParams, UsePickerProps } from '../usePicker'; import { BaseSingleInputFieldProps, FieldSection, MuiPickersAdapter, PickerValidDate } from '../../../models'; import { ExportedPickersLayoutSlots, ExportedPickersLayoutSlotProps, PickersLayoutSlotProps } from '../../../PickersLayout/PickersLayout.types'; import { UsePickerValueNonStaticProps } from '../usePicker/usePickerValue.types'; import { UsePickerViewsNonStaticProps, UsePickerViewsProps } from '../usePicker/usePickerViews'; import { DateOrTimeViewWithMeridiem } from '../../models'; import { SlotComponentPropsFromProps } from '../../models/helpers'; export interface UseMobilePickerSlots extends PickersModalDialogSlots, ExportedPickersLayoutSlots { /** * Component used to enter the date with the keyboard. */ field: React.ElementType; /** * Form control with an input to render the value inside the default field. * @default TextField from '@mui/material' or PickersTextField if `enableAccessibleFieldDOMStructure` is `true`. */ textField?: React.ElementType; } export interface ExportedUseMobilePickerSlotProps extends PickersModalDialogSlotProps, ExportedPickersLayoutSlotProps { field?: SlotComponentPropsFromProps, {}, UsePickerProps>; textField?: SlotComponentProps>; } export interface UseMobilePickerSlotProps extends ExportedUseMobilePickerSlotProps, Pick, 'toolbar'> { } export interface MobileOnlyPickerProps extends BaseNonStaticPickerProps, BaseNonRangeNonStaticPickerProps, UsePickerValueNonStaticProps, UsePickerViewsNonStaticProps { } export interface UseMobilePickerProps> extends BasePickerProps, MobileOnlyPickerProps { /** * Overridable component slots. * @default {} */ slots: UseMobilePickerSlots; /** * The props used for each component slot. * @default {} */ slotProps?: UseMobilePickerSlotProps; } export interface UseMobilePickerParams> extends Pick, 'valueManager' | 'valueType' | 'validator'> { props: TExternalProps; getOpenDialogAriaText: (date: TDate | null, utils: MuiPickersAdapter) => string; }