DatePicker

A date field with a calendar popover for visual date selection. Combines segmented input with a dropdown calendar.

Example

Pick a date
04032026

Selected: 2026-04-03

Root Props

PropTypeDefaultDescription
valueDateValueSelected date, bindable
onValueChange(value) => voidCalled when date changes
placeholderDateValuePlaceholder date, bindable
openbooleanfalseControls popover open state, bindable
onOpenChange(open: boolean) => voidCalled when popover toggles
minValueDateValueMinimum selectable date
maxValueDateValueMaximum selectable date
disabledbooleanfalseDisable the picker
readonlybooleanfalseMake the field read-only
isDateDisabledDateMatcherFunction to disable specific dates
isDateUnavailableDateMatcherFunction to mark dates unavailable
localestring'en'Locale for formatting
granularity'day' | 'month' | 'year' | 'hour' | 'minute' | 'second'Finest unit to display
hourCycle12 | 2412 or 24-hour time format
closeOnDateSelectbooleantrueClose popover after selecting
numberOfMonthsnumber1Months shown in calendar
weekStartsOn0 | 1 | 2 | 3 | 4 | 5 | 60First day of week
fixedWeeksbooleanfalseAlways show 6 weeks
requiredbooleanfalseMark as required

Sub-components

ComponentKey PropsDescription
DatePicker.LabelclassLabel for the picker
DatePicker.Inputname, classSegmented date input
DatePicker.Segmentpart, classIndividual date segment
DatePicker.TriggerclassButton to open the calendar popover
DatePicker.Contentside, sideOffset, classPopover container for the calendar
DatePicker.CalendarclassPre-built calendar with header and grid

Usage

<script>
  import { DatePicker } from '@chrissnell/chonky-ui';
  import { CalendarDate } from '@internationalized/date';

  let value = $state(new CalendarDate(2026, 4, 3));
</script>

<DatePicker.Root bind:value>
  <DatePicker.Label>Pick a date</DatePicker.Label>
  <div style="display: flex; align-items: center; gap: 0.25rem;">
    <DatePicker.Input />
    <DatePicker.Trigger />
  </div>
  <DatePicker.Content>
    <DatePicker.Calendar />
  </DatePicker.Content>
</DatePicker.Root>