import type { CalendarRootProps, CalendarRootEmits, RangeCalendarRootProps, RangeCalendarRootEmits, DateRange, CalendarCellTriggerProps } from 'reka-ui'; import type { DateValue } from '@internationalized/date'; import type { AppConfig } from '@nuxt/schema'; import theme from '#build/ui/calendar'; import type { ButtonProps } from '../types'; import type { ComponentConfig } from '../types/utils'; type Calendar = ComponentConfig; type CalendarDefaultValue = R extends true ? DateRange : M extends true ? DateValue[] : DateValue; type CalendarModelValue = R extends true ? (DateRange | null) : M extends true ? (DateValue[] | undefined) : (DateValue | undefined); type _CalendarRootProps = Omit; type _RangeCalendarRootProps = Omit; export interface CalendarProps extends _RangeCalendarRootProps, _CalendarRootProps { /** * The element or component this component should render as. * @defaultValue 'div' */ as?: any; /** * The icon to use for the next year control. * @defaultValue appConfig.ui.icons.chevronDoubleRight * @IconifyIcon */ nextYearIcon?: string; /** * Configure the next year button. * `{ color: 'neutral', variant: 'ghost' }`{lang="ts-type"} */ nextYear?: ButtonProps; /** * The icon to use for the next month control. * @defaultValue appConfig.ui.icons.chevronRight * @IconifyIcon */ nextMonthIcon?: string; /** * Configure the next month button. * `{ color: 'neutral', variant: 'ghost' }`{lang="ts-type"} */ nextMonth?: ButtonProps; /** * The icon to use for the previous year control. * @defaultValue appConfig.ui.icons.chevronDoubleLeft * @IconifyIcon */ prevYearIcon?: string; /** * Configure the prev year button. * `{ color: 'neutral', variant: 'ghost' }`{lang="ts-type"} */ prevYear?: ButtonProps; /** * The icon to use for the previous month control. * @defaultValue appConfig.ui.icons.chevronLeft * @IconifyIcon */ prevMonthIcon?: string; /** * Configure the prev month button. * `{ color: 'neutral', variant: 'ghost' }`{lang="ts-type"} */ prevMonth?: ButtonProps; /** * @defaultValue 'primary' */ color?: Calendar['variants']['color']; /** * @defaultValue 'md' */ size?: Calendar['variants']['size']; /** Whether or not a range of dates can be selected */ range?: R & boolean; /** Whether or not multiple dates can be selected */ multiple?: M & boolean; /** Show month controls */ monthControls?: boolean; /** Show year controls */ yearControls?: boolean; defaultValue?: CalendarDefaultValue; modelValue?: CalendarModelValue; class?: any; ui?: Calendar['slots']; } export interface CalendarEmits extends Omit { 'update:modelValue': [date: CalendarModelValue]; } export interface CalendarSlots { 'heading': (props: { value: string; }) => any; 'day': (props: Pick) => any; 'week-day': (props: { day: string; }) => any; } declare const _default: (__VLS_props: NonNullable>["props"], __VLS_ctx?: __VLS_PrettifyLocal>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable>["expose"], __VLS_setup?: Promise<{ props: __VLS_PrettifyLocal & Omit<{ readonly "onUpdate:modelValue"?: ((date: CalendarModelValue) => any) | undefined; readonly "onUpdate:placeholder"?: ((...args: unknown[]) => any) | undefined; readonly "onUpdate:startValue"?: ((date: DateValue | undefined) => any) | undefined; } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, never>, "onUpdate:modelValue" | "onUpdate:placeholder" | "onUpdate:startValue"> & CalendarProps & Partial<{}>> & import("vue").PublicProps; expose(exposed: import("vue").ShallowUnwrapRef<{}>): void; attrs: any; slots: CalendarSlots; emit: ((evt: "update:modelValue", date: CalendarModelValue) => void) & ((evt: "update:placeholder", ...args: [date: DateValue] & [date: DateValue]) => void) & ((evt: "update:startValue", date: DateValue | undefined) => void); }>) => import("vue").VNode & { __ctx?: Awaited; }; export default _default; type __VLS_PrettifyLocal = { [K in keyof T]: T[K]; } & {};