Skip to content
wdj

DatePicker

Partial Input

Kumo-styled date and datetime popups; inline single, multiple and range calendars with bounds/presets.

Kumo reference: kumo-ui.com/components/date-picker/

Presentation commands show demo feedback. Read the interaction guide to connect real actions.

Single date

Show template
{% load wdj %}
<div class="grid w-full max-w-lg gap-4">
{% include "wdj/components/date_picker.html" with name="date_single_date" label="Release date" value="2026-10-10" only %}
</div>

Date and time

Show template
{% load wdj %}
<div class="grid w-full max-w-lg gap-4">
{% include "wdj/components/date_picker.html" with name="date_date_and_time" label="Schedule" type="datetime-local" value="2026-10-10T09:00" only %}
</div>

Boundaries

Show template
{% load wdj %}
<div class="grid w-full max-w-lg gap-4">
{% include "wdj/components/date_picker.html" with name="date_boundaries" label="Allowed date" min="2026-10-01" max="2026-10-31" only %}
</div>

Disabled

Show template
{% load wdj %}
<div class="grid w-full max-w-lg gap-4">
{% include "wdj/components/date_picker.html" with name="date_disabled" label="Managed date" value="2026-10-10" disabled=True only %}
</div>

Error

Show template
{% load wdj %}
<div class="grid w-full max-w-lg gap-4">
{% include "wdj/components/date_picker.html" with name="date_error" label="Release date" error="Choose a date." only %}
</div>

Time

Show template
{% load wdj %}
<div class="w-full max-w-sm">{% include "wdj/components/date_picker.html" with name="date_picker_time" label="Time" type="time" value="09:30" only %}</div>

Month

Show template
{% load wdj %}
<div class="w-full max-w-sm">{% include "wdj/components/date_picker.html" with name="date_picker_month" label="Month" type="month" value="2026-10" only %}</div>

Required

Show template
{% load wdj %}
<div class="w-full max-w-sm">{% include "wdj/components/date_picker.html" with name="date_picker_required" label="Required" required=True only %}</div>

Single calendar

Show template
{% load wdj %}
{% include "wdj/components/calendar.html" with id="audit-calendar-single-calendar" name="date" label="Date selection" month="2026-10" min="2026-10-01" max="2026-12-31" only %}

Multiple date selection

Show template
{% load wdj %}
{% include "wdj/components/calendar.html" with id="audit-calendar-multiple-date-selection" name="date" label="Date selection" month="2026-10" min="2026-10-01" max="2026-12-31" mode="multiple" only %}

Range calendar

Show template
{% load wdj %}
{% include "wdj/components/calendar.html" with id="audit-calendar-range-calendar" name="date" label="Date selection" month="2026-10" min="2026-10-01" max="2026-12-31" mode="range" only %}

Range length bounds

Show template
{% load wdj %}
{% include "wdj/components/calendar.html" with id="audit-calendar-range-length-bounds" name="date" label="Date selection" month="2026-10" min="2026-10-01" max="2026-12-31" mode="range" min_days=3 max_days=7 only %}

Unavailable dates

Show template
{% load wdj %}
{% include "wdj/components/calendar.html" with id="audit-calendar-unavailable-dates" name="date" label="Date selection" month="2026-10" min="2026-10-01" max="2026-12-31" disabled_dates=audit_disabled_dates only %}

Calendar presets

Show template
{% load wdj %}
{% include "wdj/components/calendar.html" with id="audit-calendar-calendar-presets" name="date" label="Date selection" month="2026-10" min="2026-10-01" max="2026-12-31" mode="range" presets=audit_presets only %}

Calendar in popover

Show template
{% load wdj %}
{% wdj_component "wdj/components/popover.html" id="audit-date-popover" trigger_label="Choose date" %}
{% include "wdj/components/calendar.html" with id="audit-calendar-popover" label="Choose date" month="2026-10" only %}
{% endwdj_component %}

Range in popover

Show template
{% load wdj %}
{% wdj_component "wdj/components/popover.html" id="audit-date-range-popup" trigger_label="Choose date range" %}
{% include "wdj/components/calendar.html" with id="audit-range-popover" label="Choose range" month="2026-10" mode="range" only %}
{% endwdj_component %}

Localized popup calendar

Show template
{% load wdj %}
{% include 'wdj/components/date_picker.html' with id='example-localized-date' name='date' label='Data raportului' display='popover' locale='ro' week_starts_on=1 month='2026-10' labels=audit_calendar_labels only %}

Two month calendar

Show template
{% load wdj %}
{% include 'wdj/components/date_picker.html' with id='example-multi-month-date' name='dates' label='Multiple dates' display='calendar' calendar_mode='multiple' month='2026-10' number_of_months=2 locale='en' week_starts_on=0 only %}

API Reference

Prop Type Default Description
string unset Name; pass the documented value shown in the examples.
string unset Value; pass the documented value shown in the examples.
string unset Visible accessible label. Supply an explicit aria-label via attrs when the control is bare.
string unset Description; pass the documented value shown in the examples.
string unset Validation message; implies error styling and accessible error association.
bool False Required; pass the documented value shown in the examples.
bool False Disabled; pass the documented value shown in the examples.
string date Type; pass the documented value shown in the examples.
ISO date / datetime string unset Inclusive date or datetime bound, using the same ISO format as value. Unavailable calendar days are disabled.
ISO date / datetime string unset Inclusive date or datetime bound, using the same ISO format as value. Unavailable calendar days are disabled.
string base Size; pass the documented value shown in the examples.
string component-specific Variant; pass the documented value shown in the examples.
string unset Stable unique DOM ID; important for HTMX targets and focus restoration.
dict {} Dictionary of escaped native, HTMX or Alpine attributes. Literal Tailwind classes only.
string popover popover (default for dates, datetimes and ranges), calendar (inline), or explicit native. Time/month use native controls. Custom calendars never invoke the browser date popup.
string single DatePicker calendar rendering: single (default), multiple, or range. DateRangePicker always selects a range.
string en Intl locale for month headings, full date labels and weekdays; default en. Action labels are supplied separately.
number 0 0=Sunday (default, matching Kumo) through 6=Saturday. Keyboard Home/End follow this setting.
number 1 Calendar month panels, bounded to 1-12; default 1. Panels wrap on small screens.
bool False Render six calendar rows. Default False renders only the weeks in the month, matching Kumo.
string unset Month; pass the documented value shown in the examples.
number unset Min days; pass the documented value shown in the examples.
number unset Max days; pass the documented value shown in the examples.
string unset Disabled dates; pass the documented value shown in the examples.
bool / list[dict] unset Presets; pass the documented value shown in the examples.
string unset Combobox without endpoint: enable the button trigger and search inside its popup. Calendar: calendar trigger text.
dict {} Escaped text overrides: previous_month, next_month, open_calendar, calendar_label, navigation, selected_dates, time, invalid_date, unavailable, incomplete_range, single_date, range_length and blocked_range. trigger_label takes precedence over open_calendar.
string "" Class; pass the documented value shown in the examples.
string / list unset Use mode with wdj/components/calendar.html. Date fields forward calendar parameters; use calendar_mode for DatePicker mode.
string / list unset Use month with wdj/components/calendar.html. Date fields forward calendar parameters; use calendar_mode for DatePicker mode.
number unset Use min_days with wdj/components/calendar.html. Date fields forward calendar parameters; use calendar_mode for DatePicker mode.
number unset Use max_days with wdj/components/calendar.html. Date fields forward calendar parameters; use calendar_mode for DatePicker mode.
string / list unset Use disabled_dates with wdj/components/calendar.html. Date fields forward calendar parameters; use calendar_mode for DatePicker mode.
bool / list[dict] unset Use presets with wdj/components/calendar.html. Date fields forward calendar parameters; use calendar_mode for DatePicker mode.
string / list unset Use display with wdj/components/calendar.html. Date fields forward calendar parameters; use calendar_mode for DatePicker mode.
string / list unset Use locale with wdj/components/calendar.html. Date fields forward calendar parameters; use calendar_mode for DatePicker mode.
number unset Use week_starts_on with wdj/components/calendar.html. Date fields forward calendar parameters; use calendar_mode for DatePicker mode.
number unset Use number_of_months with wdj/components/calendar.html. Date fields forward calendar parameters; use calendar_mode for DatePicker mode.
bool unset Use fixed_weeks with wdj/components/calendar.html. Date fields forward calendar parameters; use calendar_mode for DatePicker mode.
dict unset Escaped text overrides: previous_month, next_month, open_calendar, calendar_label, navigation, selected_dates, time, invalid_date, unavailable, incomplete_range, single_date, range_length and blocked_range. trigger_label takes precedence over open_calendar.

Accessibility notes

Every interactive component keeps real semantics and keyboard support: native controls where possible, ARIA only where necessary, and a visible focus ring. See the Accessibility page for the shared contract.

Read the accessibility contract

Components

Components overview
AutocompleteFree-form input with local or HTMX-filtered suggestions.
BadgeSolid, tinted, outline and dot status labels.
BannerInline message bar with variants and optional action.
BreadcrumbsTrail navigation in two sizes.
ButtonVariants, sizes, shapes, icons and loading state.
ButtonGroupJoins a small set of tightly-coupled buttons into a single control (split buttons).
CheckboxSingle checkbox and indeterminate state.
ClipboardTextRead-only text field with a one-click copy-to-clipboard button.
Code / CodeHighlightedEscaped Pygments grammar highlighting, multiline tokens, line numbers, highlighted lines and localized copying.
CollapsibleComposable disclosure component for showing and hiding content.
Combobox / AutocompleteKumo-styled input/button triggers, search inside the popup, grouped local choices and debounced HTMX search.
CommandPaletteAccessible spotlight search overlay with Cmd+K keyboard shortcut.
DatePickerKumo-styled date and datetime popups; inline single, multiple and range calendars with bounds/presets.
DateRangePickerStyled popup or inline range calendar with bounds, presets and separately named form values.
DialogNative <dialog> modal with focus management.
DrawerEdge-anchored modal panel. LayerDialog has its own layered component.
DropdownMenuNative details menu with delegated keyboard navigation and dismissal.
EmptyEmpty-state placeholder with icon and action.
FieldLabel + description + error wrapper. Built into each control.
FlowDirected diagrams with branches, SVG connectors, custom anchors and responsive local scrolling.
GridResponsive CSS grid layout container with preset column configurations.
InlineCopyTextCompact borderless copy control for IDs and short values.
InputText field with label, description, leading/trailing icons.
InputAreaMulti-line textarea with auto-resize option.
InputGroupInput field with seamless prefix, suffix, and addon attachments.
LabelForm field label, optional marker and tooltip.
LayerCardCompound surface card with distinct primary and secondary layers.
LayerDialogLayered native modal with actions, forms, nested dialogs and pending states.
LinkInline, current and plain text links.
LoaderAnimated spinner in three sizes.
MenuBarCompact view selector using native radio semantics.
MeterProgress bar showing a measured value within a known range.
PaginationA page navigation component for navigating through paginated content.
PopoverAnchored popup with interactive content.
RadioRadio group, vertical and horizontal.
SelectKumo-styled Alpine dropdown with groups, rich options and multiple selection; native form values and fallback.
SensitiveInputPassword/secret input with reveal toggle and copy button.
SeparatorHorizontal / vertical rules with optional label.
SidebarRecursive navigation groups, account/zone views, search, loading, resize and full-screen mobile breadcrumbs.
SkeletonShimmer placeholder.
SliderInset single/range selection with vertical grips, value badges, endpoint labels and native keyboard/form behavior.
SurfaceBordered surface panel with header slot.
SwitchOn/off toggle in three sizes.
TableServer-driven table: sort, filter, select and paginate the full dataset.
Table of contentsPage section navigation tree with active link indicator.
TabsSegmented and underline tabs with a sliding indicator, responsive overflow and local Alpine or URL/HTMX state.
TagInputMulti-value badge input for tags and recipients.
TextHeading, body, secondary, success, error and mono text.
ToastyExpandable notification stack with variants, paused expiry and a live region.
ToolbarCompact grouped controls with shared borders, composed filters and keyboard arrow navigation.
TooltipHover and focus tooltip with grouped delays, Escape dismissal and viewport bounds.
↑ ↓ Navigate ↵ Select