import type { SxProps } from '@mui/system/styleFunctionSx'; import type { Theme } from '@mui/material/styles'; import type { EventTimelinePremiumParameters, EventTimelinePremiumStore } from '@mui/x-scheduler-internals-premium/use-event-timeline-premium'; import type { SchedulerPublicAPI } from '@mui/x-scheduler-internals/internals'; import type { SchedulerRenderableEventOccurrence, SchedulerResource } from '@mui/x-scheduler-internals/models'; import type { EventTimelineLocaleText } from '@mui/x-scheduler/models'; import type { EventTimelinePremiumSlotsAndSlotProps } from "../models/slots.js"; import type { EventTimelinePremiumClasses } from "./eventTimelinePremiumClasses.js"; export type EventTimelinePremiumApiRef = React.RefObject>> | undefined>; export interface EventTimelineGetEventAriaLabelParameters { /** * The occurrence rendered by the event block. */ occurrence: SchedulerRenderableEventOccurrence; /** * The resource of the row the block is rendered in, without its `children`. */ resource: Omit; /** * The accessible name built from the occurrence and the `localeText`. */ defaultAriaLabel: string; } export interface EventTimelinePremiumProps extends React.HTMLAttributes, EventTimelinePremiumParameters, EventTimelinePremiumSlotsAndSlotProps { /** * Whether each event must be assigned to a resource. When true, the resource cannot be cleared in the edit dialog and the form cannot be submitted without one. * @default true */ shouldEventRequireResource?: boolean; /** * Override or extend the styles applied to the component. */ classes?: Partial; /** * Set the locale text of the Event Timeline. * You can find all the translation keys supported in [the source](https://github.com/mui/mui-x/blob/HEAD/packages/x-scheduler/src/models/translations.ts) * in the GitHub repository. */ localeText?: Partial; /** * The ref object that allows Event Timeline manipulation. * Can be instantiated with `useEventTimelinePremiumApiRef()`. */ apiRef?: EventTimelinePremiumApiRef; /** * The label displayed in the resource column header. * When provided, this takes priority over `localeText.timelineResourceTitleHeader`. */ resourceColumnLabel?: string; /** * Returns the accessible name of an event block. * Use it to announce details rendered through the `timelineEventContent` slot. * @param {EventTimelineGetEventAriaLabelParameters} parameters The occurrence, its row resource and the default name. * @returns {string} The accessible name of the event block. */ getEventAriaLabel?: (parameters: EventTimelineGetEventAriaLabelParameters) => string; /** * The system prop that allows defining system overrides as well as additional CSS styles. */ sx?: SxProps; }