import React from 'react'; import { BoxProps, ElementProps, Factory, MantineRadius, StylesApiProps } from '@mantine/core'; import { ScheduleLabelsOverride } from '../../labels'; import { AnyDateValue, DateLabelFormat, ScheduleEventData, ScheduleMode } from '../../types'; import { RenderEvent } from '../ScheduleEvent/ScheduleEvent'; export type AgendaViewStylesNames = 'agendaView' | 'agendaViewHeader' | 'agendaViewHeaderLabel' | 'agendaViewBody' | 'agendaViewDateGroup' | 'agendaViewDateHeader' | 'agendaViewEvent' | 'agendaViewEventBody' | 'agendaViewEventColor' | 'agendaViewEventTitle' | 'agendaViewEventTime' | 'agendaViewNoEvents'; export type AgendaViewCssVariables = { agendaView: '--agenda-view-radius'; }; export interface AgendaViewProps extends BoxProps, StylesApiProps, ElementProps<'div'> { __staticSelector?: string; /** Start of the date range to display events for */ rangeStart: AnyDateValue; /** End of the date range to display events for */ rangeEnd: AnyDateValue; /** Events to display */ events?: ScheduleEventData[]; /** Locale passed down to dayjs, overrides value defined on `DatesProvider` */ locale?: string; /** Key of `theme.radius` or any valid CSS value to set `border-radius` @default theme.defaultRadius */ radius?: MantineRadius; /** Labels override for i18n */ labels?: ScheduleLabelsOverride; /** Interaction mode: 'default' allows all interactions, 'static' disables event interactions @default 'default' */ mode?: ScheduleMode; /** Function to fully customize event rendering, receives all props that would be passed to the root element including children */ renderEvent?: RenderEvent; /** Format for the date group headers @default 'dddd, MMMM D' */ dateHeaderFormat?: DateLabelFormat; /** Format for the header label showing the date range @default 'MMMM D, YYYY' */ headerFormat?: DateLabelFormat; /** Called when event is clicked */ onEventClick?: (event: ScheduleEventData, e: React.MouseEvent) => void; /** Max number of generated recurring instances per recurring series @default 2000 */ recurrenceExpansionLimit?: number; } export type AgendaViewFactory = Factory<{ props: AgendaViewProps; ref: HTMLDivElement; stylesNames: AgendaViewStylesNames; vars: AgendaViewCssVariables; }>; export declare const AgendaView: import("@mantine/core").MantineComponent<{ props: AgendaViewProps; ref: HTMLDivElement; stylesNames: AgendaViewStylesNames; vars: AgendaViewCssVariables; }>; export declare namespace AgendaView { type Props = AgendaViewProps; type Factory = AgendaViewFactory; type StylesNames = AgendaViewStylesNames; type CssVariables = AgendaViewCssVariables; }