Skip to content
Binary Dreams UI Kit reference DateTimeField

Date time field

Segmented date, date-range, time, or time-range field selected with a required mode.

Loading interactive example

Choose the required mode for date, date picker, date range, date range picker, time, or time range. Keep storage and time-zone conversion in application code.

DateTimeField

DateTimeField provides segmented date and time entry. Its required mode selects the value shape and available controls.

Purpose

Use DateTimeField when a form needs a structured date, time, or range value. Keep persistent storage and time-zone conversion in application code.

Anatomy

Each mode renders editable keyboard segments. Picker modes add a trigger and keyboard-operable calendar panel. Range modes render separate start and end groups. Provide a visible label or an accessible name for every field.

Modes

ModeUse
dateEnter one date in editable segments.
date-pickerEnter one date and open a calendar.
date-rangeEnter start and end dates in segments.
date-range-pickerSelect a date range with a calendar and optional presets.
timeEnter one time in editable segments.
time-rangeEnter start and end times in segments.

Bind value to the type that the selected mode accepts. Picker modes also accept calendar labels and state.

<DateTimeField
	mode="date-range-picker"
	bind:value={reportingPeriod}
	label="Reporting period"
	previousMonthLabel="Previous month"
	nextMonthLabel="Next month"
/>

Tokens and style hooks

DateTimeField uses input, surface, border, focus, accent, radius, spacing, and floating-layer tokens. Picker panels follow the active Provider boundary.

API

MemberTypeKindRequiredDefault
align'start' | 'end'propNo'start'
disabledbooleanpropNofalse
errorstringpropNoundefined
formatRange(range: DateRange) => stringcallbackNoformatRangeDefault
granularity'day' | 'hour' | 'minute' | 'second'propNoundefined
hourCycle12 | 24propNoundefined
isDateDisabled(date: DateValue) => booleancallbackNoundefined
isDateUnavailable(date: DateValue) => booleancallbackNoundefined
labelstringpropNoundefined
localestringpropNoundefined
maxValueDateValue | TimeValuepropNoundefined
minValueDateValue | TimeValuepropNoundefined
mode'date' | 'date-picker' | 'date-range' | 'date-range-picker' | 'time' | 'time-range'propYes
nextMonthLabelstringpropNo'Next month'
numberOfMonths1 | 2propNodate-picker = 1, date-range-picker = 2
onValueChange((value: DateRange) => void) | ((value: DateValue | undefined) => void) | ((value: TimeRange<T>) => void) | ((value: TimeValue | undefined) => void)callbackNoundefined
openboolean | neverbindingNofalse
openCalendarLabelstringpropNo'Open calendar'
presetsRangePreset[] | neverpropNoDEFAULT_PRESETS
previousMonthLabelstringpropNo'Previous month'
readonlybooleanpropNofalse
sizeControlSizepropNo'md'
valueDateRange | DateValue | TimeRange<T> | TimeValuebindingNodate/date-picker/time = undefined, range modes = { start: undefined, end: undefined }
weekStartsOn0 | 1propNo1

Source

Loading source