Datepicker
The Datepicker component provides a calendar picker with date selection, time picker, and date range support.
Installation
npm install @duskmoon-dev/el-datepicker
Usage
import '@duskmoon-dev/el-datepicker/register';
<el-dm-datepicker placeholder="Select a date..."></el-dm-datepicker>
Live Demo
Basic Datepicker
Properties
| Property | Type | Default | Description |
|---|---|---|---|
value | string | '' | ISO date string |
disabled | boolean | false | Disables the datepicker |
placeholder | string | 'Select date' | Placeholder text |
format | string | 'YYYY-MM-DD' | Display format |
min-date | string | - | Minimum selectable date |
max-date | string | - | Maximum selectable date |
range | boolean | false | Enable date range selection |
show-time | boolean | false | Include time picker |
size | 'sm' | 'md' | 'lg' | 'md' | Size variant |
With Time Picker
Date and Time
<el-dm-datepicker placeholder="Select date and time..." show-time></el-dm-datepicker>
Date Range
Date Range
<el-dm-datepicker placeholder="Select date range..." range></el-dm-datepicker>
Min/Max Dates
Min/Max Dates
<el-dm-datepicker
placeholder="Select a date in 2024..."
min-date="2024-01-01"
max-date="2024-12-31"
></el-dm-datepicker>
Custom Format
Custom Format
<el-dm-datepicker placeholder="MM/DD/YYYY" format="MM/DD/YYYY"></el-dm-datepicker>
Sizes
Datepicker Sizes
<el-dm-datepicker size="sm" placeholder="Small"></el-dm-datepicker>
<el-dm-datepicker size="md" placeholder="Medium"></el-dm-datepicker>
<el-dm-datepicker size="lg" placeholder="Large"></el-dm-datepicker>
Disabled
Disabled
<el-dm-datepicker disabled placeholder="Disabled"></el-dm-datepicker>
Events
| Event | Description |
|---|---|
change | Fired when date is selected |
open | Fired when picker opens |
close | Fired when picker closes |
Event Handling
const datepicker = document.querySelector('el-dm-datepicker');
datepicker.addEventListener('change', (event) => {
console.log('Selected value:', event.detail.value);
console.log('Date object:', event.detail.date);
// For range selection
console.log('Range start:', event.detail.rangeStart);
console.log('Range end:', event.detail.rangeEnd);
});
datepicker.addEventListener('open', () => {
console.log('Datepicker opened');
});
datepicker.addEventListener('close', () => {
console.log('Datepicker closed');
});
Calendar Navigation
The datepicker supports three view modes:
- Days: Select a specific day
- Months: Select a month (click header to switch)
- Years: Select a year (click header again)
Accessibility
- Calendar navigation with arrow keys
- Proper date semantics and labels
- Focus management when opening/closing
- Screen reader announcements for date selection