react-calendar-kit
Version:
React Calendar Kit is a powerful and flexible library for building accessible and highly customizable calendar and date/time picker components in your React applications. React Calendar Kit provides a solid foundation for creating inclusive user experienc
38 lines (35 loc) • 1.63 kB
TypeScript
import { MutableRefObject } from 'react';
import { DateValue } from '@internationalized/date';
import { AriaButtonProps } from '@react-aria/button';
import { AriaDatePickerProps } from '@react-aria/datepicker';
import { DatePickerState } from '@react-stately/datepicker';
import { CalendarProps } from '@react-types/calendar';
import { AriaDialogProps } from '@react-types/dialog';
import { GroupDOMAttributes, DOMAttributes } from '@react-types/shared';
import { TimeInputProps } from '../input/time-input.js';
import { ElementProps } from '../types/common.types.js';
import '../types/theme.types.js';
import '../input/date-field.js';
import '../input/date-input-segment.js';
import '../input/date-input-group.js';
interface UseDatePickerProps<T extends DateValue = DateValue> extends AriaDatePickerProps<T> {
dateInputProps?: CalendarProps<T>;
calendarProps?: CalendarProps<T>;
timeInputProps?: TimeInputProps;
}
type GetDateInputProps<T extends DateValue = DateValue> = AriaDatePickerProps<T> & {
groupProps: GroupDOMAttributes;
labelProps: DOMAttributes;
};
type UseDatePickerReturn<T extends DateValue> = {
ref: MutableRefObject<HTMLDivElement>;
state: DatePickerState;
getTriggerProps: ElementProps<'button'>;
getAriaTriggerProps: AriaButtonProps<'button'>;
getDateInputProps: GetDateInputProps<T>;
getTimeInputProps: TimeInputProps;
getCalendarProps: CalendarProps<T>;
getDialogProps: AriaDialogProps;
};
declare const useDatePicker: <T extends DateValue>(props?: UseDatePickerProps<T>) => UseDatePickerReturn<T>;
export { type UseDatePickerProps, useDatePicker };