| format | "PlainDate" | "PlainDate" | The value format used for date serialization. Determines the type of
value, defaultValue, min, max, and callback parameters. |
| min | PlainDate | — | Earliest selectable date. Dates before this are disabled. |
| max | PlainDate | — | Latest selectable date. Dates after this are disabled. |
| disabled | boolean | false | When true, the entire calendar is disabled. |
| readOnly | boolean | false | When true, the calendar is read-only. Keyboard navigation still works
but selection is prevented. |
| isDateDisabled | (date: PlainDate) => boolean | — | Callback to disable individual dates. Return true to disable a date.
Called in addition to min/max bounds checking. |
| timeZone | string | The system's current time zone. | IANA time zone identifier used for date/time conversions. |
| locale | string | "en-US" | BCP 47 locale string used for formatting month names, weekday labels,
and other locale-sensitive output. |
| temporal | TemporalNamespace | — | Custom Temporal namespace for environments without native Temporal support. |
| weekStartDay | WeekStartDay | 0 | Day of the week the calendar grid starts on.
0 = Sunday, 1 = Monday, ..., 6 = Saturday. |
| children | React.ReactNode | — | React children. |
| selectionMode | "single" | "range" | "multiple" | "single" | |
| value | PlainDate | PlainDate[] | DateRange<"PlainDate"> | null | — | The controlled selected date. Pass null to clear. |
| defaultValue | PlainDate | PlainDate[] | DateRange<"PlainDate"> | — | |
| onValueChange | ((value: PlainDate | null, meta: ValueChangeMeta<PlainDate | null>) => void) | ((value: PlainDate | null, meta: ValueChangeMeta<PlainDate | null>) => void) | ((value: DateRange<"PlainDate"> | null, meta: ValueChangeMeta<DateRange<"PlainDate"> | null>) => void) | ((value: DateRange<"PlainDate"> | null, meta: ValueChangeMeta<DateRange<"PlainDate"> | null>) => void) | ((value: PlainDate[], meta: ValueChangeMeta<PlainDate[]>) => void) | ((value: PlainDate[], meta: ValueChangeMeta<PlainDate[]>) => void) | — | |
| weekCount* | number | — | Number of week rows to display simultaneously. |
| firstWeek | FirstWeekSpec | — | The controlled first visible week. When provided, the component is controlled. |
| defaultFirstWeek | FirstWeekSpec | — | The initial first visible week (uncontrolled). |
| onFirstWeekChange | (date: PlainDate) => void | — | Called when the first visible week changes via navigation or focus movement. |
| scrollBy | "row" | "page" | "row" | How much to scroll per navigation step.
- "row" — scroll one week row at a time.
- "page" — scroll a full page (all visible rows) at a time. |
| overflowBehavior | OverflowBehavior | "unbounded" | How navigation behaves at min/max bounds. |
| onWindowChange | (info: WindowInfo) => void | — | Called when the visible window changes. |
| ref | React.Ref<WeeksViewRootHandle> | undefined | — | Allows getting a ref to the component instance.
Once the component unmounts, React will set ref.current to null
(or call the ref with null if you passed a callback ref). |
| key | React.Key | null | undefined | — | |