DatePicker

Date picker with calendar dropdown for selecting single dates or date ranges. Built on react-day-picker with seed-based theming.

Setup

import { DatePicker } from '@fragments-sdk/ui';

Examples

Default

Single date picker with default settings

Loading preview...

Date Range

Range mode with dual months

Loading preview...

Multi-Month

Single date with 3 months visible

Loading preview...

Disabled Dates

Past dates disabled

Loading preview...

With Presets

Range picker with sidebar preset buttons

Loading preview...

With Label and Helper Text

Date picker with built-in label and helper text

Loading preview...

Error State

Validation error with message

Loading preview...

Disabled

Disabled date picker

Loading preview...

Props

PropTypeDefaultDescription
childrenRequirednodeNot setDatePicker trigger and content
classNamestringNot setWrapper class name
modeenumsinglerangesingleSelection mode
selectedobjectNot setControlled date (single mode). Type: Date | null
selectedRangeobjectNot setControlled range (range mode). Type: DateRange | null
onSelectfunctionNot setCalled when a single date is selected
onChangefunctionNot setAlias for onSelect (consistent with Input/Select onChange convention)
onRangeSelectfunctionNot setCalled when a date range is selected
numberOfMonthsnumber1Number of months displayed side-by-side
disabledbooleanfalseDisable the picker
disabledDatesunionNot setDates to disable (react-day-picker Matcher | Matcher[])
placeholderstringNot setTrigger placeholder text
localeobjectNot setdate-fns locale for i18n
fixedWeeksbooleanfalseAlways show 6 rows
formatDatefunctionNot setCustom trigger date formatter
formatRangefunctionNot setCustom trigger range formatter
openbooleanNot setControlled popover open state
onOpenChangefunctionNot setPopover open state change callback
namestringNot setHidden input name for forms
labelstringNot setVisible label text above the date picker
helperTextstringNot setHelper text shown below the date picker
errorunionNot setShow error styling. When a string is provided, it is displayed as an error message.

Usage Guidelines

When to use

  • Selecting a single date from a calendar
  • Selecting a date range (start/end)
  • Date inputs in forms
  • Filtering by date or date range

When not to use

  • Time-only input - use a dedicated TimePicker
  • Selecting from a small set of known dates - use Select
  • Free-form date entry - use Input with date masking

Best practices

  • Use range mode with numberOfMonths={2} for date range selection
  • Add presets for common ranges (Today, Last 7 days, Last 30 days)
  • Use disabledDates to prevent selecting past dates or unavailable dates
  • Provide a meaningful placeholder
  • DatePicker.Trigger forwards button props and defaults to type="button" (safe inside forms)
Accessibility
  • Full keyboard navigation within the calendar grid
  • Arrow keys navigate between days
  • Escape closes the calendar
  • Focus returns to trigger on close