/**
* @license
*-------------------------------------------------------------------------------------------
* Copyright © 2026 Progress Software Corporation. All rights reserved.
* Licensed under commercial license. See LICENSE.md in the package root for more information
*-------------------------------------------------------------------------------------------
*/
import { ActiveView } from './ActiveView';
import { CalendarCellProps } from '../components/CalendarCell.js';
import { CalendarWeekCellProps } from '../components/CalendarWeekCell.js';
import { CalendarHeaderTitleProps } from '../components/CalendarHeaderTitle.js';
import { CalendarNavigationItemProps } from '../components/CalendarNavigationItem.js';
import { WeekDaysFormat } from './WeekDaysFormat';
/**
* The props which will be received by the custom header of the Calendar and the MultiViewCalendar.
*/
export interface CalendarHeaderProps {
/** Properties passed to the header title component */
headerTitleProps: CalendarHeaderTitleProps;
/** Navigation commands and buttons for the calendar header */
commands: React.ReactNode;
}
/**
* @hidden
*/
export interface CalendarSettings {
/**
* Defines the bottommost view to which the user can navigate.
*
** @example
* ```jsx
*
* ```
*/
bottomView?: ActiveView;
/**
* Sets the `className` of the Calendar.
*
** @example
* ```jsx
*
* ```
*/
className?: string;
/**
* Sets the default active view of the Calendar.
* If not set, the Calendar will display the month view.
*
** @example
* ```jsx
*
* ```
*/
defaultActiveView?: ActiveView;
/**
* Determines whether the Calendar is disabled.
* ([see example](https://www.telerik.com/kendo-react-ui/components/dateinputs/calendar/disabled-state)).
*
** @example
* ```jsx
*
* ```
*/
disabled?: boolean;
/**
* Sets the initial focused date of the Calendar.
*
** @example
* ```jsx
*
* ```
*/
focusedDate?: Date;
/**
* Sets the `id` of the Calendar.
*
** @example
* ```jsx
*
* ```
*/
id?: string;
/**
* Identifies the element(s) which will describe the component, similar to [HTML aria-describedby attribute](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-describedby_attribute).
* For example, these elements could contain error or hint messages.
*
** @example
* ```jsx
*
* ```
*
* @remarks
* This property is related to accessibility.
*/
ariaDescribedBy?: string;
/**
* Identifies the element(s) which will label the component.
*
** @example
* ```jsx
*
* ```
*
* @remarks
* This property is related to accessibility.
*/
ariaLabelledBy?: string;
/**
* Sets the maximum allowed date of the Calendar. Defaults to `2099-12-31`.
* ([see example](https://www.telerik.com/kendo-react-ui/components/dateinputs/calendar/date-ranges#toc-max-date)).
*
** @example
* ```jsx
*
* ```
*/
max?: Date;
/**
* Sets the minimum allowed date of the Calendar. Defaults to `1900-1-1`.
* ([see example](https://www.telerik.com/kendo-react-ui/components/dateinputs/calendar/date-ranges#toc-min-date)).
*
** @example
* ```jsx
*
* ```
*/
min?: Date;
/**
* Determines if the navigation sidebar will be displayed.
*
** @example
* ```jsx
*
* ```
*/
navigation?: boolean;
/**
* **Deprecated**
*
* Toggles the smooth scroll animation on navigation item click. By default, the animation is enabled in React 17.
*
** @example
* ```jsx
*
* ```
*/
smoothScroll?: boolean;
/**
* Fires each time the Calendar is blurred.
*
** @example
* ```jsx
* console.log('Blur event:', event)} />
* ```
*/
onBlur?: (event: React.FocusEvent) => void;
/**
* Fires each time the Calendar is focused.
*
** @example
* ```jsx
* console.log('Focus event:', event)} />
* ```
*/
onFocus?: (event: React.FocusEvent) => void;
/**
* Sets the `tabIndex` property of the Calendar.
*
** @example
* ```jsx
*
* ```
*
* @remarks
* This property is related to accessibility.
*/
tabIndex?: number;
/**
* Defines the topmost view to which the user can navigate.
*
** @example
* ```jsx
*
* ```
*/
topView?: ActiveView;
/**
* Specifies the possible format options for the displayed Calendar week days' names.
*
* @default short
** @example
* ```jsx
*
* ```
*/
weekDaysFormat?: WeekDaysFormat;
/**
* Determines if the week number column will be displayed.
*
** @example
* ```jsx
*
* ```
*/
weekNumber?: boolean;
/**
* Displays the days that fall out of the current month.
*
** @example
* ```jsx
*
* ```
*/
showOtherMonthDays?: boolean;
/**
* Enables the customization or the override of the default Calendar cell.
* ([see example](https://www.telerik.com/kendo-react-ui/components/dateinputs/calendar/custom-rendering#toc-cells-inside-the-view)).
*
** @example
* ```jsx
*
* ```
*/
cell?: React.ComponentType;
/**
* Enables the customization or the override of the default week-column cell in the Calendar.
* ([see example](https://www.telerik.com/kendo-react-ui/components/dateinputs/calendar/custom-rendering#toc-cells-inside-the-week-column)).
*
** @example
* ```jsx
*
* ```
*/
weekCell?: React.ComponentType;
/**
* Enables the customization or the override of the default header title in the Calendar.
* ([see example](https://www.telerik.com/kendo-react-ui/components/dateinputs/calendar/custom-rendering#toc-titles-of-current-views)).
*
** @example
* ```jsx
*
* ```
*/
headerTitle?: React.ComponentType;
/**
* Enables the customization or the override of the default header in the Calendar.
* ([see example](https://www.telerik.com/kendo-react-ui/components/dateinputs/calendar/custom-rendering#toc-titles-of-current-views)).
*
** @example
* ```jsx
*
* ```
*/
header?: React.ComponentType;
/**
* Enables the customization or the override of the default navigation item in the Calendar.
* ([see example](https://www.telerik.com/kendo-react-ui/components/dateinputs/calendar/custom-rendering#toc-items-in-the-side-navigation)).
*
** @example
* ```jsx
*
* ```
*/
navigationItem?: React.ComponentType;
}