Date Field
Enables users to input specific dates within a designated field.
- add docs about leap years/birthdays and placeholder date
Before jumping into the DateField
component, it's important to understand how dates and times are handled in Bits UI. You can learn more about this on the Dates page.
Structure
Reusable Components
It's recommended to use the DateField
primitives to build your own custom date field component that can be used throughout your application.
The following example shows how you might create a reusable MyDateField
component that can be used throughout your application. For style inspiration, reference the featured demo at the top of this page.
We'll be using the following MyDateField
component in the following demos and examples to prevent repeating the same code over and over.
API Reference
The root date field component.
Property | Type | Description |
---|---|---|
value bindable prop | DateValue | The selected date. Default: undefined |
onValueChange | function | A function that is called when the selected date changes. Default: undefined |
placeholder bindable prop | DateValue | The placeholder date, which is used to determine what date to start the segments from when no value exists. Default: undefined |
onPlaceholderChange | function | A function that is called when the placeholder date changes. Default: undefined |
required | boolean | Whether or not the date field is required. Default: false |
isDateUnavailable | function | A function that returns whether or not a date is unavailable. Default: undefined |
hourCycle | enum | The hour cycle to use for formatting times. Defaults to the locale preference Default: undefined |
granularity | enum | The granularity to use for formatting the field. Defaults to Default: undefined |
hideTimeZone | boolean | Whether or not to hide the time zone segment of the field. Default: false |
maxValue | DateValue | The maximum valid date that can be entered. Default: undefined |
minValue | DateValue | The minimum valid date that can be entered. Default: undefined |
locale | string | The locale to use for formatting dates. Default: 'en-US' |
disabled | boolean | Whether or not the accordion is disabled. Default: false |
readonly | boolean | Whether or not the field is readonly. Default: false |
readonlySegments | array | An array of segments that should be readonly, which prevent user input on them. Default: undefined |
children | Snippet | The children content to render. Default: undefined |
The container for the segments of the date field.
Property | Type | Description |
---|---|---|
name | string | The name of the date field used for form submission. If provided, a hidden input element will be rendered alongside the date field. Default: undefined |
ref bindable prop | HTMLDivElement | The underlying DOM element being rendered. You can bind to this to get a reference to the element. Default: undefined |
children | Snippet | The children content to render. Default: undefined |
child | Snippet | Use render delegation to render your own element. See delegation docs for more information. Default: undefined |
Data Attribute | Value | Description |
---|---|---|
data-invalid | '' | Present on the element when the field is invalid. |
data-disabled | '' | Present on the element when the field is disabled. |
data-date-field-input | '' | Present on the element. |
A segment of the date field.
Property | Type | Description |
---|---|---|
part required prop | SegmentPart | The part of the date to render. Default: undefined |
ref bindable prop | HTMLDivElement | The underlying DOM element being rendered. You can bind to this to get a reference to the element. Default: undefined |
children | Snippet | The children content to render. Default: undefined |
child | Snippet | Use render delegation to render your own element. See delegation docs for more information. Default: undefined |
Data Attribute | Value | Description |
---|---|---|
data-invalid | '' | Present on the element when the field is invalid |
data-disabled | '' | Present on the element when the field is disabled |
data-readonly | '' | Present on the element when the field or segment is readonly |
data-segment | enum | The part of the date to render. |
data-date-field-segment | '' | Present on the element. |
The label for the date field.
Property | Type | Description |
---|---|---|
ref bindable prop | HTMLSpanElement | The underlying DOM element being rendered. You can bind to this to get a reference to the element. Default: undefined |
children | Snippet | The children content to render. Default: undefined |
child | Snippet | Use render delegation to render your own element. See delegation docs for more information. Default: undefined |
Data Attribute | Value | Description |
---|---|---|
data-invalid | '' | Present on the element when the field is invalid |
data-disabled | '' | Present on the element when the field is disabled |
data-date-field-label | '' | Present on the element. |