import { t as ModuleTheme } from "../module-theme-CHZkkCvf.js";
import { t as CalendarDate } from "../calendar-date-CNNsHVof.js";
import { ReactNode } from "react";
//#region src/modules/days/CalendarDays.d.ts
/**
* The month-grid Days module — the first real UI surface on the v3 core.
*
* It reads its whole view model from the store: the structural grid (memoized by
* month), the segmented selection lookup, and the hover preview. Each cell is
* handed its packed `dayFlags` number and memoized on it, so a hover that moves
* the preview re-renders only the two or three cells whose bitmask actually
* changed — the per-cell performance contract the core was built for.
*/
/** Unpacked cell state handed to `renderDay` — stable names, no bitmask. */
type DayRenderState = {
selected: boolean;
inRange: boolean;
rangeStart: boolean;
rangeEnd: boolean;
preview: boolean;
today: boolean;
outside: boolean;
weekend: boolean;
disabled: boolean;
excluded: boolean;
};
type RenderDay = (date: CalendarDate, state: DayRenderState) => ReactNode;
type CalendarDaysProps = {
/**
* Months ahead of the root view this grid shows (multi-month layouts:
* `` + ``). Default 0.
*/
offset?: number;
/**
* Move the root view to the clicked day's month when it isn't the shown
* month. Default: `true` for the primary grid (`offset === 0`), `false` for
* offset grids — a side month must not steal the primary view.
*/
syncViewOnSelect?: boolean;
/** Render the leading/trailing days of neighbour months. Default true. */
showOutsideDays?: boolean;
/** Always render 6 weeks — stable height across months. Default true. */
fixedWeeks?: boolean;
/** ISO week-number column. Default false. */
weekNumbers?: boolean;
/** aria-label for the week-number column header (registry key `week`). */
weekLabel?: string;
/** Hide the weekday header row. Default false. */
hideWeekdays?: boolean;
/** Weekday header style. Default "short" ("Mon"); narrow = "M". */
weekdayFormat?: "short" | "narrow" | "long";
/**
* Weekend column BACKGROUND tint — a soft continuous strip down the weekend
* columns (derived from the `weekend` ink). Opt-in: default false. The lighter
* weekend cue (tinted headers) is `weekendHeaders`, on by default.
*/
highlightWeekends?: boolean;
/**
* Tint the weekend weekday HEADERS (the "Sat"/"Sun" labels) with the
* `weekend` ink + bold — the v2 look. Independent of `highlightWeekends`
* (the column tint). Default true.
*/
weekendHeaders?: boolean;
/** Bold + weekend-ink weekday numbers (v2 look). Default false. */
boldWeekends?: boolean;
/**
* Dot under today's number (`--c-todayDot`). Default true — except when
* `renderDay` is set: custom content owns the cell's inner layout, so the
* dot is off unless explicitly re-enabled.
*/
todayDot?: boolean;
/** Subtle inset outline on today (50% accent). Default true. */
highlightToday?: boolean;
/**
* Render days outside the `min`/`max` window as blank cells instead of
* disabled ones (v2 parity). Rule-`disabled` days are NOT hidden — only the
* hard window. Default `false`.
*/
hideOutOfRange?: boolean;
/**
* Custom day-cell content. The button shell, data attributes, keyboard and
* aria stay owned by the library. Pass a stable reference (module-level fn
* or useCallback) — an inline closure re-renders all 42 cells every pass.
*/
renderDay?: RenderDay;
/**
* Per-module theme override: a built-in family name (`data-theme`) or a
* `createTheme` token object (inline `--c-*` vars on the container).
*/
theme?: ModuleTheme;
/** Per-module scheme override (`data-scheme` on the module container). */
scheme?: "light" | "dark" | "auto";
col?: number | string;
className?: string;
};
declare function dayRenderState(flags: number): DayRenderState;
declare function CalendarDays({ offset, syncViewOnSelect, showOutsideDays, fixedWeeks, weekNumbers, weekLabel, hideWeekdays, weekdayFormat, highlightWeekends, weekendHeaders, boldWeekends, todayDot, highlightToday, hideOutOfRange, renderDay, theme, scheme, col, className }: CalendarDaysProps): import("react/jsx-runtime").JSX.Element;
//#endregion
export { CalendarDays, type CalendarDaysProps, type DayRenderState, type RenderDay, dayRenderState };