UNPKG

@guruhotel/aura-ui

Version:

⚛️ React UI library by GuruHotel

88 lines (87 loc) 2.96 kB
/// <reference types="react" /> import { AriaButtonProps } from "@react-types/button"; import { CalendarState, CalendarStateOptions, RangeCalendarState, RangeCalendarStateOptions } from "@react-stately/calendar"; import { CalendarDate } from "@internationalized/date"; import { VariantProps } from "../theme"; import { CalendarContainer } from "./calendar.styles"; export declare type Partial<T> = { [P in keyof T]?: T[P]; }; export declare type CalendarStates = CalendarState & RangeCalendarState; declare type TTooltipElement = { singular: string; plural: string; }; declare type TTooltip = { day?: TTooltipElement; night?: TTooltipElement; }; export declare type TGetTooltipLabels = TTooltip & { numberOfDays: number; }; declare type TUnavailableStyle = "disabled" | "dot"; export declare type TCustomCalendarProps = { rounded: VariantProps<typeof CalendarContainer>["rounded"]; withSelectors: boolean; tooltip: TTooltip | false; dateUnavailableStyle: TUnavailableStyle; as: "single" | "double" | "infinite" | "horizontal"; showHorizontalTitle?: boolean; monthDateFormat: { month: "numeric" | "short" | "2-digit" | "long" | "narrow" | undefined; year: "numeric" | "2-digit" | undefined; }; colorScheme: VariantProps<typeof CalendarContainer>["colorScheme"]; size: VariantProps<typeof CalendarContainer>["size"]; }; export declare type TCalendarProps = Partial<CalendarStateOptions> & Partial<TCustomCalendarProps> & { prevIcon?: JSX.Element; nextIcon?: JSX.Element; }; export declare type TRangeCalendarProps = Partial<RangeCalendarStateOptions> & Partial<Omit<TCustomCalendarProps, "as">> & { as?: "single" | "double" | "infinite"; } & { prevIcon?: JSX.Element; nextIcon?: JSX.Element; }; export declare type TSelector = Pick<TCustomCalendarProps, "monthDateFormat" & "rounded"> & { state: CalendarStates; }; export declare type TCalendarHeader = { state: CalendarStates; calendarProps: React.HTMLAttributes<HTMLElement>; prevButtonProps: AriaButtonProps<"button">; nextButtonProps: AriaButtonProps<"button">; prevIcon?: JSX.Element; nextIcon?: JSX.Element; index: number; }; export declare type TCalendarGrid = { state: CalendarStates; offset?: { months?: number; }; }; export declare type TCalendarCell = { state: CalendarStates; date: CalendarDate; currentMonth: CalendarDate; numberOfDays?: number; }; export declare type TManualStyles = { isRoundedLeft: boolean; isSelected: boolean; isSelectionStart: boolean; isSelectionEnd: boolean; isFocusVisible: boolean; isUnavailable: boolean; isDisabled: boolean; } & Pick<TCustomCalendarProps, "colorScheme">; export declare type TTooltipWrapper = { children: JSX.Element; hoverStartSelection: boolean; hoverEndSelection: boolean; numberOfDays?: number; tooltip: TTooltip | false; }; export {};