react ~10 KB 0 deps v0.1.0 ↗ GitHub ↗

@mshafiqyajid/react-date-picker

Headless date picker hook and styled component. Single and range mode, keyboard navigation, min/max date, portal calendar, ARIA-compliant.

Playground #

Props
TSX
import { DatePickerStyled } from "@mshafiqyajid/react-date-picker/styled";
import "@mshafiqyajid/react-date-picker/styles.css";

<DatePickerStyled
  value={value}
  onChange={setValue}
/>

Install #

npm install @mshafiqyajid/react-date-picker

Quick start #

import { DatePickerStyled } from "@mshafiqyajid/react-date-picker/styled";
import "@mshafiqyajid/react-date-picker/styles.css";

const [date, setDate] = useState<Date | null>(null);
<DatePickerStyled value={date} onChange={setDate} tone="primary" />

// Range mode
const [range, setRange] = useState<[Date, Date] | null>(null);
<DatePickerStyled value={range} onChange={setRange} mode="range" />

API #

PropTypeDefaultDescription
valueDate | [Date, Date] | nullControlled value
defaultValueDate | [Date, Date] | nullnullUncontrolled initial value
onChange(v) => voidCalled on selection
mode"single" | "range""single"Single date or date range
minDateDateEarliest selectable date
maxDateDateLatest selectable date
placeholderstring"Select date"Input placeholder
formatstring"MMM D, YYYY"Display format
size"sm" | "md" | "lg""md"Input size
tone"neutral" | "primary""neutral"Color tone
disabledbooleanfalseDisable interaction
clearablebooleanfalseShow × button to clear selection
weekStartsOn0–60Day the week starts on (0=Sun)
localestring"en-US"Locale for month/day names
onMonthChange(month, year) => voidNavigation callback
onYearChange(year) => voidYear change callback
disabledDatesDate[] | (date) => booleanDates to disable
Edit this page on GitHub