Calendar
An interactive date picker calendar with month navigation and date selection support.
Preview
Check-in Date
August 2026
| Su | Mo | Tu | We | Th | Fr | Sa |
|---|---|---|---|---|---|---|
Selected: Saturday, 15 August 2026
Usage
tsx
import { Calendar } from "zostel-ui";
import { useState } from "react";
const [date, setDate] = useState<Date | undefined>(new Date());
<Calendar
mode="single"
selected={date}
onSelect={setDate}
/>
{/* Range selection */}
<Calendar
mode="range"
selected={{ from: checkIn, to: checkOut }}
onSelect={setRange}
numberOfMonths={2}
/>Props
| Prop | Type | Default | Description |
|---|---|---|---|
mode | "single" | "range" | "multiple" | "single" | Date selection mode |
selected | Date | DateRange | Date[] | — | Currently selected date(s) |
onSelect | (date: Date | undefined) => void | — | Callback when a date is selected |
disabled | Matcher | Matcher[] | — | Dates or date ranges to disable |
numberOfMonths | number | 1 | Number of months to display |
className | string | — | Additional CSS classes |
modeType:
"single" | "range" | "multiple"Default: "single"
Date selection mode
selectedType:
Date | DateRange | Date[]Default: —
Currently selected date(s)
onSelectType:
(date: Date | undefined) => voidDefault: —
Callback when a date is selected
disabledType:
Matcher | Matcher[]Default: —
Dates or date ranges to disable
numberOfMonthsType:
numberDefault: 1
Number of months to display
classNameType:
stringDefault: —
Additional CSS classes