import dayjs from 'dayjs';
import { HTMLAttributes } from 'react';
import { SizeProp } from '../../types/size';
export interface DatePeriod {
start: string | Date | null;
end: string | Date | null;
}
export interface BaseCalendarProps extends Pick, 'className' | 'style'> {
minDate?: string;
maxDate?: string;
/**
* @default 'en'
*/
i18n?: string;
readOnly?: boolean;
size?: SizeProp;
}
export interface CalendarProps extends BaseCalendarProps {
isRange?: boolean;
selectedDates?: Array;
onClickPrevious?: () => void;
onClickNext?: () => void;
onClickDay?: (date: string) => void;
onClickMonth?: (month: number) => void;
onClickYear?: (year: number) => void;
onDayHover?: (day: string | dayjs.Dayjs) => void;
highlightToday?: boolean;
disabledDates?: Array;
firstDayOfWeek?: number;
}
export interface CalendarMonthsProps extends BaseCalendarProps {
onSelect: (month: number) => void;
}
export interface CalendarYearsProps extends BaseCalendarProps {
year: number;
onSelect?: (year: number) => void;
}
export interface CalendarWeekProps extends BaseCalendarProps, Pick {
}
export interface CalendarDaysProps extends BaseCalendarProps, Pick, Pick {
year: number;
month: number;
onClickPreviousDays: (day: dayjs.Dayjs) => void;
onClickDay: (day: dayjs.Dayjs) => void;
onClickNextDays: (day: dayjs.Dayjs) => void;
}