Getting Started
Get React Modular DatePicker up and running in minutes.
Installationβ
Install the package and its peer dependency:
# npm
npm install @legeannd/react-modular-datepicker dayjs
# pnpm
pnpm add @legeannd/react-modular-datepicker dayjs
# yarn
yarn add @legeannd/react-modular-datepicker dayjs
Requirements:
- React β₯ 19.0.0
- Day.js β₯ 1.11.0
TypeScript: Types are includedβno separate installation needed.
Quick Startβ
Here's the simplest implementation:
import * as DatePicker from '@legeannd/react-modular-datepicker'
function App() {
return (
<DatePicker.Provider>
<DatePicker.Calendar />
</DatePicker.Provider>
)
}
Live Exampleβ
SunMonTueWedThuFriSat
Selected: None
Controlled Stateβ
Manage the selected date in your component:
import { useState } from 'react'
import * as DatePicker from '@legeannd/react-modular-datepicker'
import type { SingleSelection } from '@legeannd/react-modular-datepicker'
function App() {
const [selectedDate, setSelectedDate] = useState<SingleSelection>(null)
return (
<DatePicker.Provider
value={selectedDate}
onSelectionChange={setSelectedDate}
>
<DatePicker.Calendar />
<p>Selected: {selectedDate || 'None'}</p>
</DatePicker.Provider>
)
}
Live Exampleβ
SunMonTueWedThuFriSat
Selected: None
Add Navigationβ
Include month/year controls:
<DatePicker.Provider
value={selectedDate}
onSelectionChange={setSelectedDate}
>
<DatePicker.Header>
<DatePicker.Button type='previous'>β</DatePicker.Button>
<DatePicker.Label />
<DatePicker.Button type='next'>β</DatePicker.Button>
</DatePicker.Header>
<DatePicker.Calendar />
</DatePicker.Provider>
Live Exampleβ
Nov 2025
SunMonTueWedThuFriSat
Selected: None
Selection Modesβ
Range Selectionβ
import type { RangeSelection } from '@legeannd/react-modular-datepicker'
const [dateRange, setDateRange] = useState<RangeSelection>(null)
<DatePicker.Provider
value={dateRange}
onSelectionChange={setDateRange}
type='range'
>
<DatePicker.Calendar />
</DatePicker.Provider>
Live Exampleβ
SunMonTueWedThuFriSat
No range selected
Multiple Selectionβ
import type { MultipleSelection } from '@legeannd/react-modular-datepicker'
const [selectedDates, setSelectedDates] = useState<MultipleSelection>(null)
<DatePicker.Provider
value={selectedDates}
onSelectionChange={setSelectedDates}
type='multiple'
>
<DatePicker.Calendar />
</DatePicker.Provider>
Live Exampleβ
SunMonTueWedThuFriSat
No dates selected
Additional Setupβ
CSS Stylesβ
Styles are automatically injected within the library build. For Storybook or environments without CSS injection support:
import '@legeannd/react-modular-datepicker/dist/style.css'
Day.js Plugins (for custom instances)β
If using custom Day.js instances for localization:
import dayjs from 'dayjs'
import localeData from 'dayjs/plugin/localeData'
import isToday from 'dayjs/plugin/isToday'
dayjs.extend(localeData)
dayjs.extend(isToday)
Note: The library's default Day.js instance already includes these plugins.