Command Palette

Search for a command to run...

Docs
Universal Date Picker

Universal Date Picker

A versatile date picker with single/range mode toggle, preset shortcuts, and year selector

Loading...

Installation

Usage

import { UniversalDatePicker } from "@/components/ruixen/universal-date-picker";
import { useState } from "react";
import { DateRange } from "react-day-picker";
 
export default function App() {
  const [selectedSingle, setSelectedSingle] = useState<Date>();
  const [selectedRange, setSelectedRange] = useState<DateRange>();
 
  return (
    <div className="space-y-6">
      <UniversalDatePicker
        mode="single"
        selected={selectedSingle}
        onChange={(value) => {
          if (value instanceof Date || value === undefined) {
            setSelectedSingle(value);
          }
        }}
        label="Pick a single date"
      />
 
      <UniversalDatePicker
        mode="range"
        selected={selectedRange}
        onChange={(value) => {
          if (!value || ("from" in value && "to" in value)) {
            setSelectedRange(value as DateRange);
          }
        }}
        label="Pick a date range"
      />
    </div>
  );
}

Props

PropTypeDefaultDescription
mode"single" | "range""single"Date selection mode
onChange(date: Date | DateRange | undefined) => void-Callback when date changes
selectedDate | DateRange-Currently selected date(s)
classNamestring-Additional CSS classes
presetsPreset[]-Custom preset options
labelstring"Date picker"Label for the picker

Features

  • Mode Toggle: Switch between single and range selection
  • Preset Shortcuts: Quick access to common date ranges
  • Year Selector: Fast navigation to any year
  • Popover Interface: Clean, non-intrusive UI
  • Custom Presets: Define your own preset date ranges
  • Responsive Design: Works on all devices