import * as React from 'react'; import { OverrideProps } from '@mui/types'; import { SlotComponentProps } from '@mui/utils'; import { SxProps } from '../../types/theme'; import { PickerDateType } from '../models/pickers'; import { DatePickerVariant } from '../types'; /** * Props exported by RangeCalendarHeader for use by parent components */ export interface ExportedRangeCalendarHeaderProps { /** * The number of calendars rendered. */ calendars?: 1 | 2 | 3; /** * Month used for this header. */ month?: PickerDateType; /** * Index of the month used for this header. */ monthIndex?: number; } /** * Slots for RangeCalendarHeader component */ export interface RangeCalendarHeaderSlots { /** * The component used for the root element. * @default 'div' */ root?: React.ElementType; /** * The component used for navigation buttons. * @default IconButton */ navigationButton?: React.ElementType; /** * The component used for month/year selectors. * @default 'button' */ monthYearSelector?: React.ElementType; } /** * Slot props for RangeCalendarHeader component */ export interface RangeCalendarHeaderSlotProps { root?: SlotComponentProps<'div', object, RangeCalendarHeaderOwnerState>; navigationButton?: SlotComponentProps; monthYearSelector?: SlotComponentProps<'button', object, RangeCalendarHeaderOwnerState>; } /** * Component props for RangeCalendarHeader */ export interface RangeCalendarHeaderComponentProps extends ExportedRangeCalendarHeaderProps { /** * Callback for month navigation. */ onMonthChange?: (date: PickerDateType) => void; /** * Maximum allowed date. */ maxDate?: PickerDateType; /** * Minimum allowed date. */ minDate?: PickerDateType; /** * If `true`, the component is disabled. * @default false */ disabled?: boolean; /** * If `true`, the component is read-only. * @default false */ readOnly?: boolean; /** * If `true`, disable values before the current date. * @default false */ disablePast?: boolean; /** * If `true`, disable values after the current date. * @default false */ disableFuture?: boolean; /** * The variant of the header. */ variant?: DatePickerVariant; /** * The system prop that allows defining system overrides as well as additional CSS styles. */ sx?: SxProps; } /** * Type map for RangeCalendarHeader */ export interface RangeCalendarHeaderTypeMap

{ props: P & RangeCalendarHeaderComponentProps & { /** * The slots for customizing the component appearance. */ slots?: RangeCalendarHeaderSlots; /** * The props used for each slot. */ slotProps?: RangeCalendarHeaderSlotProps; }; defaultComponent: D; } /** * Props for RangeCalendarHeader */ export type RangeCalendarHeaderProps = OverrideProps, D> & { component?: D; }; /** * Owner state for RangeCalendarHeader */ export type RangeCalendarHeaderOwnerState = RangeCalendarHeaderProps;