<!-- API Report Version: 2.3 -->

## API Report File for "@atlaskit/calendar"

> Do not edit this file. This report is auto-generated using
> [API Extractor](https://api-extractor.com/).
> [Learn more about API reports](https://hello.atlassian.net/wiki/spaces/UR/pages/1825484529/Package+API+Reports)

### Table of contents

- [Main Entry Types](#main-entry-types)
- [Peer Dependencies](#peer-dependencies)

### Main Entry Types

<!--SECTION START: Main Entry Types-->

```ts
/// <reference types="react" />

import { CSSProperties } from 'react';
import { ForwardRefExoticComponent } from 'react';
import { MemoExoticComponent } from 'react';
import { RefAttributes } from 'react';
import { UIAnalyticsEvent } from '@atlaskit/analytics-next';
import { WithAnalyticsEventsProps } from '@atlaskit/analytics-next';

// @public (undocumented)
type ArrowKeys = 'down' | 'left' | 'right' | 'up';

// @public
const Calendar: MemoExoticComponent<
	ForwardRefExoticComponent<
		Pick<
			CalendarProps,
			| 'analyticsContext'
			| 'calendarRef'
			| 'className'
			| 'createAnalyticsEvent'
			| 'day'
			| 'defaultDay'
			| 'defaultMonth'
			| 'defaultPreviouslySelected'
			| 'defaultSelected'
			| 'defaultYear'
			| 'disabled'
			| 'disabledDateFilter'
			| 'locale'
			| 'maxDate'
			| 'minDate'
			| 'month'
			| 'nextMonthLabel'
			| 'onBlur'
			| 'onChange'
			| 'onFocus'
			| 'onSelect'
			| 'previousMonthLabel'
			| 'previouslySelected'
			| 'selected'
			| 'style'
			| 'tabIndex'
			| 'testId'
			| 'today'
			| 'weekStartDay'
			| 'year'
		> &
			RefAttributes<HTMLDivElement>
	>
>;
export default Calendar;

// @public (undocumented)
export interface CalendarProps extends WithAnalyticsEventsProps {
	analyticsContext?: Record<string, any>;
	// @internal
	calendarRef?: React.Ref<CalendarRef>;
	className?: string;
	day?: number;
	defaultDay?: number;
	defaultMonth?: number;
	defaultPreviouslySelected?: Array<string>;
	defaultSelected?: Array<string>;
	defaultYear?: number;
	disabled?: Array<string>;
	disabledDateFilter?: (date: string) => boolean;
	locale?: string;
	maxDate?: string;
	minDate?: string;
	month?: number;
	nextMonthLabel?: string;
	onBlur?: React.FocusEventHandler;
	onChange?: (event: ChangeEvent, analyticsEvent: UIAnalyticsEvent) => void;
	onFocus?: React.FocusEventHandler;
	onSelect?: (event: SelectEvent, analyticsEvent: UIAnalyticsEvent) => void;
	previouslySelected?: Array<string>;
	previousMonthLabel?: string;
	selected?: Array<string>;
	style?: CSSProperties;
	tabIndex?: TabIndex;
	testId?: string;
	today?: string;
	weekStartDay?: WeekDay;
	year?: number;
}

// @public (undocumented)
export interface CalendarRef {
	// (undocumented)
	navigate: (type: ArrowKeys) => void;
}

// @public (undocumented)
export type ChangeEvent = {
	iso: ISODate;
	type: 'down' | 'left' | 'next' | 'prev' | 'right' | 'up';
} & DateObj;

// @public (undocumented)
type DateObj = {
	day: number;
	month: number;
	year: number;
};

// @public (undocumented)
type ISODate = string;

// @public (undocumented)
export type SelectEvent = {
	iso: ISODate;
} & DateObj;

// @public (undocumented)
type TabIndex = -1 | 0;

// @public (undocumented)
type WeekDay = 0 | 1 | 2 | 3 | 4 | 5 | 6;

// (No @packageDocumentation comment for this package)
```

<!--SECTION END: Main Entry Types-->

### Peer Dependencies

<!--SECTION START: Peer Dependencies-->

```json
{
	"react": "^16.8.0"
}
```

<!--SECTION END: Peer Dependencies-->
