A date-range picker: a trigger showing the current range, and a popover with one or two month grids plus optional shortcut presets. The form value is the two ISO dates joined by a slash (2026-01-01/2026-01-31), which is what start/end serialise to. An incomplete range submits nothing.
Replaces the helper text and marks the field invalid.
firstDayOfWeek
first-day-of-week
number
1
Which weekday starts the week; 0 = Sunday.
helperText
helper-text
string
''
Assistive text below the trigger.
invalid
—
boolean
false
label
—
string
''
Field label rendered above the trigger.
locale
—
—
—
BCP 47 tag for month/weekday names and the trigger's date formatting.
max
—
string
''
Latest selectable day, `yyyy-mm-dd`.
min
—
string
''
Earliest selectable day, `yyyy-mm-dd`.
months
—
number
2
Number of month grids shown side by side.
name
—
string
''
open
—
boolean
false
Whether the panel is open.
placement
—
PopupPlacement
'bottom-start'
Where the panel sits relative to the trigger.
presets
—
boolean
false
Show the shortcut list (Today, Last 7 days, This month, …).
required
—
boolean
false
size
—
DateRangeSize
'md'
start
—
string
''
Range start, `yyyy-mm-dd`.
value
—
string
—
The submitted form value: `start/end`. Setting it parses both ends back out. Empty while the range is incomplete, so a half-picked range submits nothing.
Events
Event
Description
nana-change
The range changed; detail: { value }. Fires only on a complete range.