@guruhotel/aura-ui
Version:
⚛️ React UI library by GuruHotel
88 lines (87 loc) • 2.96 kB
TypeScript
/// <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 {};