/**
* @usevyre/react — Calendar
*
* AI CONTEXT:
* ┌─────────────────────────────────────────────────────────────┐
* │ Component: Calendar (inline grid; no input/popover) │
* │ Import: import { Calendar } from "@usevyre/react" │
* │ │
* │ Calendar props: │
* │ mode = "single"(default) | "range" | "multiple" │
* │ value = Date | [Date,Date] | Date[] │
* │ onChange = (v) => void │
* │ showTime = boolean (adds HH:MM time picker) │
* │ minDate / maxDate = Date │
* │ disabled = (date: Date) => boolean │
* │ defaultMonth = Date (initial month when value empty) │
* │ │
* │ For an input + popover, use DatePicker. │
* │ For start/end ranges with presets, use DateRangePicker. │
* └─────────────────────────────────────────────────────────────┘
*
* @example
* // Single date
*
*
* // Date range
*
*/
import React from "react";
export type CalendarMode = "single" | "range" | "multiple";
export interface CalendarSingleProps {
mode?: "single";
value?: Date | null;
onChange?: (date: Date | null) => void;
}
export interface CalendarRangeProps {
mode: "range";
value?: [Date | null, Date | null];
onChange?: (range: [Date | null, Date | null]) => void;
}
export interface CalendarMultipleProps {
mode: "multiple";
value?: Date[];
onChange?: (dates: Date[]) => void;
}
export type CalendarBaseProps = {
showTime?: boolean;
minDate?: Date;
maxDate?: Date;
disabled?: (date: Date) => boolean;
className?: string;
weekStartsOn?: 0 | 1;
/** Month to display initially when value is empty (uncontrolled view). */
defaultMonth?: Date;
};
export type CalendarProps = (CalendarSingleProps & CalendarBaseProps) | (CalendarRangeProps & CalendarBaseProps) | (CalendarMultipleProps & CalendarBaseProps);
export type DatePickerProps = CalendarProps & {
placeholder?: string;
inputClassName?: string;
};
/** @internal — shared with DatePicker. */
export declare function formatDate(d: Date | null | undefined, opts?: Intl.DateTimeFormatOptions): string;
/** @internal — shared with DatePicker. */
export declare function formatTime(d: Date): string;
export declare const Calendar: React.ForwardRefExoticComponent>;