UNPKG

@renderlesskit/react

Version:

Collection of headless components/hooks that are accessible, composable, customizable from low level to build your own UI & Design System powered by Reakit

55 lines (54 loc) 2.01 kB
/** * All credit goes to [React Spectrum](https://github.com/adobe/react-spectrum) * We improved the Calendar from Stately [useRangeCalendar](https://github.com/adobe/react-spectrum/blob/main/packages/%40react-aria/calendar/src/useRangeCalendar.ts) * to work with Reakit System */ import * as React from "react"; import { InputBase, RangeValue } from "@react-types/shared"; import { CalendarActions, CalendarState } from "./CalendarState"; export declare function useRangeCalendarState(props?: RangeCalendarInitialState): RangeCalendarStateReturn; export declare type RangeCalendarState = CalendarState & { dateRangeValue: RangeValue<Date> | null; anchorDate: Date | null; highlightedRange: RangeValue<Date> | null; isRangeCalendar: boolean; }; export declare type RangeCalendarActions = CalendarActions & { setDateRangeValue: (value: RangeValue<Date>) => void; setAnchorDate: React.Dispatch<React.SetStateAction<Date | null>>; selectDate: (date: Date) => void; selectFocusedDate: () => void; highlightDate: (date: Date) => void; }; declare type Range = { /** The start value of the range. */ start: string; /** The end value of the range. */ end: string; }; declare type RangeValueBase = { /** The current value (controlled). */ value?: Range; /** The default value (uncontrolled). */ defaultValue?: Range; /** Handler that is called when the value changes. */ onChange?: (value: Range) => void; }; declare type RangeValueMinMax = { /** The smallest value allowed. */ minValue?: string; /** The largest value allowed. */ maxValue?: string; }; export declare type RangeCalendarInitialState = RangeValueBase & RangeValueMinMax & InputBase & { /** * Whether the element should receive focus on render. */ autoFocus?: boolean; /** * Id for the calendar grid */ id?: string; }; export declare type RangeCalendarStateReturn = RangeCalendarState & RangeCalendarActions; export {};