import { DateValue } from '@internationalized/date'; import { CalendarProps as RaCalendarProps } from 'react-aria-components'; import { HTMLChakraProps, SlotRecipeProps } from '@chakra-ui/react/styled-system'; import { OmitInternalProps } from '../../type-utils/omit-props'; /** * Recipe props for Calendar styling variants */ type CalendarRecipeProps = SlotRecipeProps<"nimbusCalendar">; /** * Slot props for the Calendar root container element */ export type CalendarRootSlotProps = HTMLChakraProps<"div", CalendarRecipeProps>; /** * Slot props for the Calendar header element containing navigation controls */ export type CalendarHeaderSlotProps = HTMLChakraProps<"div">; /** * Slot props for the container holding calendar grid(s) */ export type CalendarGridsSlotProps = HTMLChakraProps<"div">; /** * Slot props for month title display above each grid */ export type CalendarMonthTitleSlotProps = HTMLChakraProps<"div">; /** * Slot props for a single calendar grid table element */ export type CalendarGridSlotProps = HTMLChakraProps<"table">; /** * Slot props for calendar grid header (weekday row) */ export type CalendarGridHeaderSlotProps = HTMLChakraProps<"thead">; /** * Slot props for individual header cells (weekday labels) */ export type CalendarHeaderCellSlotProps = HTMLChakraProps<"th">; /** * Slot props for calendar grid body containing date cells */ export type CalendarGridBodySlotProps = HTMLChakraProps<"tbody">; /** * Slot props for individual date cells in the calendar grid */ export type CalendarCellSlotProps = HTMLChakraProps<"td">; /** * Props excluded from the Calendar component API */ type ExcludedProps = "style" | "createCalendar"; /** * Props for the Calendar component. * Combines Calendar root slot props with React Aria Calendar props. * * @template T - Date value type from @internationalized/date */ export type CalendarProps = OmitInternalProps | ExcludedProps> & Omit, ExcludedProps>; export {};