Skip to content
Mizen UI
Docs

IntroductionInstallationCLIStylingFoundationsThemingCompositionIntegrationsAccessibilityFor agents

useCopyToClipboard

AccordionAspect RatioCardCollapsibleFrameGridGroupInlineScroll AreaSectionSeparatorSpacerStack

BlockquoteCitationCodeHeadingKbdLabelLinkTextVisually Hidden

ButtonButton GroupToggleToggle groupToolbar

CalendarCheckboxCheckbox groupComboboxDate pickerDate range pickerDate-Time InputFieldFieldsetFile UploadFormInputInput groupNumber fieldOTP FieldRadio groupSelectSliderSwitchTextareaTime Input

BreadcrumbMenubarNavigation MenuPaginationSegmented ControlStepperTabs

Alert dialogCommandContext MenuDialogDrawerMenuPopoverPreview CardSheetTooltip

AlertBadgeEmptyError StateMeterProgressSkeletonSpinnerStatus dotToast

Activity FeedAvatarAvatar GroupData TableListMetricOverflow ListProperty ListTableTokenTree

Area ChartBar ListCalendar HeatmapCategory ComparisonChart FrameChart LegendChart TooltipDistributionFunnelHeatmapMetric TrendPart-to-WholeProgress RingsRadar ChartRadial BarsSankey ChartScatter ChartScore GaugeTime Series

Diagram

AttachmentCarouselCode BlockLightboxMarkdownThumbnailTimestamp

Agent ThinkingApproval CardComposerConversationInline CitationMessageMessage ScrollerQuestion CardSourcesStreaming TextSuggestionTask ListTerminalTool Call

On this page

  • Preview
  • Usage
  • Examples
  • Default range
  • Controlled with presets
  • Disabled
  • Read-only
  • Native form
  • Month and year navigation
  • Recommendations
  • Usage boundaries
  • API reference

Forms

Date range picker

Combines an editable ISO date-range input with a calendar popover, optional presets, and range constraints.

idle

Usage

import { DateRangePicker } from "@mizen-labs/ui";

Examples

Default range

Controlled with presets

Disabled

Read-only

Native form

Month and year navigation

Jump directly to a month or year using Mizen Select. Navigation bounds define the available years.

Recommendations

GuidancePractice
Do

Explain the range's meaning and any stay limits. Use presets only for intervals relevant to the task.

Usage boundaries

GuidanceBoundary
Scope

Define endpoint and timezone meaning in the application. Presets do not replace server validation.

Scope

A first calendar click may be a pending start; a complete range has both endpoints.

API reference

Public props from @mizen-labs/ui. Use exported prop types for the complete TypeScript contract.

PropTypeDefaultDescription
valueCalendarRangeValue | undefined—Controlled selected date range with a required start and optional end.
defaultValueCalendarRangeValue | undefined—Initial selected range for uncontrolled operation.
onValueChange((value: CalendarRangeValue | undefined) => void) | undefined—Called when the selected date range changes.
disabledboolean | undefinedfalsePrevents interaction with the input, calendar, and presets.
readOnlyboolean | undefinedfalseAllows inspection without committing a changed range.
invalidboolean | undefinedfalseMarks the input invalid.
requiredboolean | undefinedfalseRequires a range before form submission.
size"default" | "lg" | "sm" | undefined"default"Visual size of the input field.
minValueDate | undefined—Earliest selectable date.
maxValueDate | undefined—Latest selectable date.
minNightsnumber | undefined0Minimum number of nights in a completed range.
maxNightsnumber | undefined—Maximum number of nights in a completed range.
isDateUnavailable((date: Date) => boolean) | undefined—Predicate that marks dates unavailable for selection.
presetsreadonly DateRangePreset[] | undefined—Optional quick-select ranges shown above the calendar.
localeCalendarLocale | undefined—Locale configuration for calendar labels and formatting.
dir"ltr" | "rtl" | undefined—Text and calendar direction.
weekStartsOn0 | 1 | 2 | 3 | 4 | 5 | 6 | undefined—First day of the week, from Sunday (0) to Saturday (6).
namestring | undefined—HTML form field name.
idstring | undefined—HTML element identifier.
aria-labelstring | undefined—Accessible name when no visible label is present.
aria-labelledbystring | undefined—ID of the element labelling the input.
aria-describedbystring | undefined—ID of the element describing the input.
autoFocusboolean | undefinedfalseAutomatically focuses the text input on mount.
DateRangePickerDateRangePickerProps—Composite date-range input with calendar and optional presets.
captionLayout"label" | "dropdown""label"Use dropdown to navigate directly with month and year selects.
startMonthDate100 years before today in dropdown modeFirst month available for navigation. Does not change date availability.
endMonthDateEnd of the current year in dropdown modeLast month available for navigation. Does not change date availability.
PreviousDate pickerNextDate-Time Input

Reports cover Oct 10, 2026 – Oct 14, 2026.

Default range

Uncontrolled selection with an initial range.

Controlled with presets

Selected: 2026-10-10 – 2026-10-14

Disabled

Input, calendar, and presets are unavailable.

Read-only

Opens for inspection without changing the range.

Native form

Submits the named date range with standard browser validation.

No range submitted yet.