import { PopperProps } from "@mui/material"; import { ReactElement, ReactNode } from "react"; export type TMeridian = "AM" | "PM"; export type TTimeFormat = 12 | 24; export type size = "small" | "medium" | "large"; export interface ICalendarProps { MonthLeftIcon?: ReactElement; MonthRightIcon?: ReactElement; monthsLabel?: string[]; } export interface IPickerProps { size?: size; value?: T; defaultValue?: T; onChange?: (value: T) => void; } export interface IPickerWithActionProps extends IPickerProps { onApply?: (value: T) => void; onCancel?: (value: T) => void; rangeSelectionView?: 'row' | 'column'; } export interface ITimeInputProps { defaultValue?: Date; value?: Date; size: size; type: "hour" | "minute"; timeFormat?: TTimeFormat; onChange?: (value: Date) => void; } export interface ITimeProps extends IPickerProps { showTimeFormatToggle?: boolean; defaultTimeFormat?: TTimeFormat; meridianLabels?: [string, string]; minDate?: Date; maxDate?: Date; } export interface IActionProps { size?: size; cancelButtonProps?: any; applyButtonProps?: any; containerProps?: any; } export interface IPickerContainerProps { size: size; children: ReactNode; actionProps?: IActionProps; showActions?: boolean; } export type TDateRange = { startDate: Date; endDate: Date; }; export type TDatePopper = { anchorEl: any; setAnchorEl: any; children?: ReactNode; parentElement: ReactElement; popperProps?: Partial; containerProps?: React.DetailedHTMLProps, HTMLDivElement>; };