Skip to content
Binary UIKit reference Stable

DateTimeField

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

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.

Interactive example

Loading interactive example

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