Advanced date selection calendar with month/year navigation, date ranges, and internationalization support.
npx shadcn@latest add @preskok/calendarimport { getLocalTimeZone, today } from "@internationalized/date"
import { Calendar } from "@/components/ui/preskok-ui/calendar"
export function CalendarDemo() {
const [date, setDate] = useState(today(getLocalTimeZone()))
return <Calendar value={date} onChange={setDate} aria-label="Select a date" />
}| Prop | Type | Default | Description |
|---|---|---|---|
value | DateValue | null | - | Selected date value |
onChange | (date: DateValue | null) => void | - | Date change handler |
minValue | DateValue | - | Minimum selectable date |
maxValue | DateValue | - | Maximum selectable date |
isDisabled | boolean | false | Disable the entire calendar |
isReadOnly | boolean | false | Make calendar read-only |
isDateUnavailable | (date: DateValue) => boolean | - | Function to disable specific dates |
errorMessage | string | - | Error message to display |
className | string | - | Additional CSS classes |
The Calendar component follows WAI-ARIA guidelines: