import { GetStylesApi } from '@mantine/core'; import { ScheduleLabelsOverride } from '../../labels'; import { DateLabelFormat, DateStringValue, DayOfWeek, ScheduleMode } from '../../types'; import { GroupedEvents } from './get-year-view-events/get-year-view-events'; import type { YearViewFactory } from './YearView'; export interface YearViewDayKeydownPayload { weekIndex: number; dayIndex: number; date: string; } export interface YearViewMonthSettings { /** `dayjs` format for month label @default 'MMMM' */ monthLabelFormat?: DateLabelFormat; /** If set, show week numbers */ withWeekNumbers?: boolean; /** If set, weekdays names are displayed in the first row @default true */ withWeekDays?: boolean; /** Locale passed down to dayjs, overrides value defined on `DatesProvider` */ locale?: string; /** Number 0-6, where 0 – Sunday and 6 – Saturday @default 0 */ firstDayOfWeek?: DayOfWeek; /** `dayjs` format for weekdays names @default 'd' */ weekdayFormat?: DateLabelFormat; /** Indices of weekend days, 0-6, where 0 is Sunday and 6 is Saturday. The default value is defined by `DatesProvider`. */ weekendDays?: DayOfWeek[]; /** Props passed down to the week number button */ getWeekNumberProps?: (weekStartDate: DateStringValue) => Record; /** Props passed down to the day button */ getDayProps?: (date: DateStringValue) => Record; /** Called when day is clicked */ onDayClick?: (date: DateStringValue, event: React.MouseEvent) => void; /** Called with first day of the week when week number is clicked */ onWeekNumberClick?: (date: DateStringValue, event: React.MouseEvent) => void; /** Called with the first day of the month when month label is clicked */ onMonthClick?: (date: DateStringValue, event: React.MouseEvent) => void; /** If set, highlights the current day @default true */ highlightToday?: boolean; /** Labels override for i18n */ labels?: ScheduleLabelsOverride; /** Interaction mode: 'default' allows all interactions, 'static' disables event interactions */ mode?: ScheduleMode; /** If true, days from adjacent months are displayed @default true */ withOutsideDays?: boolean; } export interface YearViewMonthProps extends YearViewMonthSettings { /** Month to display, Date object or date string in `YYYY-MM-DD` format */ month: Date | string; /** `useStyles` return value of `YearView` */ getStyles: GetStylesApi; /** Events grouped by date */ groupedEvents?: GroupedEvents; /** Assigns ref of every day based on its position in the month, used for keyboard navigation */ __getDayRef?: (weekIndex: number, dayIndex: number, node: HTMLButtonElement) => void; /** Called when any keydown event is registered on day, used for keyboard navigation */ __onDayKeyDown?: (event: React.KeyboardEvent, payload: YearViewDayKeydownPayload) => void; /** Index of the first day of the month in the grid (for determining which day should be in tab order) */ firstDayIndex?: { weekIndex: number; dayIndex: number; }; } export declare function YearViewMonth({ month, getStyles, monthLabelFormat, withWeekNumbers, withWeekDays, locale, firstDayOfWeek, weekdayFormat, weekendDays, getDayProps, onDayClick, onWeekNumberClick, onMonthClick, getWeekNumberProps, highlightToday, groupedEvents, mode, withOutsideDays, __getDayRef, __onDayKeyDown, firstDayIndex, }: YearViewMonthProps): import("react/jsx-runtime").JSX.Element;