import { t as ThemeFamily } from "./theme-tokens-IjR_iAF6.cjs";
import { s as SelectionState, t as SchemeMode } from "./ui-context-DB9n2b8E.cjs";
import { t as DateRuleConfig } from "./date-rule-engine-C_YwRB2v.cjs";
import { n as CalendarChangeDetails, t as AnyCalendarValue } from "./public-value-51W5Yni3.cjs";
import { n as CalendarAppearance } from "./appearance-tokens-CcCd5YXE.cjs";
import { t as CalendarConfigOptions } from "./config-Cf0VgoER.cjs";
//#region src/react/prebuilt.d.ts
/**
* Prebuilt calendars — one import, zero composition. For consumers who don't
* want to assemble modules: each is a ready recipe over the same primitives
* (`Calendar` + modules + `createCalendarConfig`), with plain-`Date` props.
* Live on their own subpath (`@dateforge/react-calendar/prebuilt`) so the
* modular entries stay pay-for-what-you-import.
*/
type PrebuiltShared = {
/** BCP-47 locale (drives names, digits, week start). */
locale?: string;
/** Earliest / latest selectable day (inclusive). */
min?: Date;
max?: Date;
/** Days that cannot be selected. */
disabled?: DateRuleConfig;
readOnly?: boolean;
/** Theme: built-in name or a `createTheme` family. */
theme?: string | ThemeFamily;
/** Appearance: built-in name or a `createAppearance` object. */
appearance?: CalendarAppearance;
/** Decorative gradient mode (corner glows + gradient selected fill). */
gradient?: boolean;
scheme?: SchemeMode;
/** Extra `createCalendarConfig` options (escape hatch — spread last). */
config?: CalendarConfigOptions;
className?: string;
"data-testid"?: string;
};
/** Single JS `Date` (or `null`) — the shape `mode:"single"` emits. */
type SingleDateProps = PrebuiltShared & {
/** Controlled value. Omit for uncontrolled. */
value?: Date | null;
/** Uncontrolled initial date. */
defaultValue?: Date | null;
onChange?: (date: Date | null) => void;
};
/**
* The default calendar: month/year navigation header + day grid, single-date
* selection. `` and done.
*/
declare function SimpleCalendar(props: SingleDateProps): import("react/jsx-runtime").JSX.Element;
type DatePickerProps = SingleDateProps & {
/** Clear button inside the manual input. Default `true`. */
allowClear?: boolean;
};
/**
* A date picker: typed manual input above the calendar, plus a Today jump —
* keyboard-first single-date entry with the grid as fallback.
*/
declare function DatePicker(props: DatePickerProps): import("react/jsx-runtime").JSX.Element;
type MonthPickerProps = PrebuiltShared & {
/** Controlled month (any day inside it). Omit for uncontrolled. */
value?: Date | null;
/** Uncontrolled initial month (any day inside it). */
defaultValue?: Date | null;
/** First day of the picked month (or `null` when cleared). */
onChange?: (month: Date | null) => void;
};
/**
* A month picker: year-stepping header + 12-month grid; picking a month
* selects the whole month (`unit: "month"`), reported as its first day.
*/
declare function MonthPicker(props: MonthPickerProps): import("react/jsx-runtime").JSX.Element;
type MultiMonthProps = PrebuiltShared & {
/** How many consecutive months to render. Default `3`. */
months?: number;
/** Grid columns (months per row). Default `3`. */
cols?: number;
/** Selection mode for the whole board. Default `"range"`. */
mode?: "single" | "multiple" | "range" | "multi-range";
/** First shown month (any day inside it). Default: the current month. */
startMonth?: Date;
/**
* Prev/next arrows stepping the whole board by one month (on the first and
* last header). Default `true`.
*/
navigation?: boolean;
/** Controlled value / uncontrolled seed / change — the root's own contract. */
value?: AnyCalendarValue;
/** Uncontrolled initial selection, public `Date`-based shape. */
defaultValue?: AnyCalendarValue;
defaultSelection?: SelectionState;
onChange?: (value: AnyCalendarValue, details: CalendarChangeDetails) => void;
};
/**
* A multi-month board — 3, 6, 12 consecutive months in a grid, generated on
* the fly: one `` root, and per month an offset month/year
* header + an offset day grid, laid out row by row (a row of headers, then the
* row of matching grids). One shared selection spans the whole board — ranges
* drag across months. `` and done.
*/
declare function MultiMonthCalendar(props: MultiMonthProps): import("react/jsx-runtime").JSX.Element;
//#endregion
export { DatePicker, MonthPicker, MultiMonthCalendar, SimpleCalendar };