preskok/ui

Date Range Picker

Pick a start and end date with a responsive calendar overlay.

Installation

pnpm dlx @preskok-org/ui@latest add date-range-picker

Usage

import { parseDate } from "@internationalized/date"
 
import {
  DateRangePicker,
  DateRangePickerTrigger,
} from "@/registry/preskok/ui/preskok-ui/date-range-picker"
import { Label } from "@/registry/preskok/ui/preskok-ui/field"
 
export function Example() {
  return (
    <DateRangePicker
      visibleDuration={{ months: 2 }}
      defaultValue={{
        start: parseDate("2024-02-10"),
        end: parseDate("2024-02-20"),
      }}
    >
      <Label>Date range</Label>
      <DateRangePickerTrigger />
    </DateRangePicker>
  )
}

Props

  • visibleDuration: DateDuration — Number of months shown.
  • pageBehavior: "visible" | "single" — Paging behavior for multi-month view.
  • popover: PopoverProps (without children) — Desktop overlay options.
  • Inherits all react-aria-components DateRangePicker props.
  • Compose field content using Label, DateRangePickerTrigger, and optional FieldError.

Features

  • Two inputs with separator
  • Responsive popover/modal overlay
  • Keyboard and screen reader support

Examples

Basic

Controlled

Disabled

Validation