Props
| Name | Type | Default | Description |
|---|---|---|---|
adaptive | boolean | undefined | `config.adaptive` (`true`) | On mobile the time columns open inside a bottom off-canvas sheet instead
of a floating popover. When unset, falls back to the global
|
ampm | boolean | undefined | false | 12-hour display with an AM/PM segment. Purely a field-composition
concern: the model stays 24-hour. Type |
append:icon | string | undefined | - | Name of the icon to be added at the end of the input. |
autocomplete | string | undefined | "off" | Guides the browser as to the type of information expected in the field. |
autofocus | Booleanish | undefined | - | Sets autofocus on page load. |
clearable | boolean | undefined | false | Displays a clear button when the input has a value and is being interacted with. |
compact | boolean | undefined | false | Sets the component in a compact state. |
description | string | undefined | - | Descriptive text displayed below the label and above the input. Always
visible and linked to the input via |
direction | InputDirection | undefined | - | Direction of the layout of the component. Can either be a predefined value or a pattern separated by a space like |
disabled | boolean | undefined | false | Disables the component. |
disableWriting | boolean | "mobile" | "desktop" | undefined | false | Disables typing into the input.
Use |
errors | string | string[] | undefined | - | Can be a string or an array of string containing the messages to display.
They render in an |
hasErrors | boolean | undefined | false | Define if the component should be in an error state. It usually attaches a CSS class for styling purposes. |
hasWarnings | boolean | undefined | false | Define if the component should be in a warning state.
Same chrome as errors with |
hideLabel | boolean | undefined | false | Visually hides the label of the input while maintaining accessibility. |
hint | string | undefined | - | Text box to be displayed near the input, usually to indicate instructions. |
id | string | undefined | - | The identifier of the component. |
labelrequired | string | - | Text content of the label of the element. |
labelMode | "outside" | "floating" | "inside" | undefined | - | Label rendering mode. |
labelPosition | "left" | "center" | "right" | undefined | - | Sets the text alignment of the label. |
loading | boolean | undefined | false | Sets the component in a loading state, usually triggering some visual styles. |
max | string | undefined | - | Maximum selectable time in |
min | string | undefined | - | Minimum selectable time in |
modelValuerequired | string | string[] | null | - | v-model value: |
name | string | undefined | - | Defines the name of the input. |
offCanvasProps | Partial<BbOffCanvasProps> | undefined | - | Props for the phone sheet. A |
persistentHint | boolean | undefined | false | Keeps the hint displayed. |
placeholder | string | undefined | - | String displayed when there's no data. |
prepend:icon | string | undefined | - | Name of the icon to be added at the start of the input. |
pt | PtMap<BbTimePickerInputPtPart, BbTimePickerInputPtState> | undefined | - | Passthrough, object form: the same keys as the |
pt:activator | PtValue | undefined | - | |
pt:activator:disabled | PtValue | undefined | - | |
pt:activator:errors | PtValue | undefined | - | |
pt:activator:has-value | PtValue | undefined | - | |
pt:activator:loading | PtValue | undefined | - | |
pt:activator:open | PtValue | undefined | - | |
pt:activator:readonly | PtValue | undefined | - | |
pt:activator:selected | PtValue | undefined | - | |
pt:activator:warnings | PtValue | undefined | - | |
pt:box | PtValue | undefined | - | |
pt:box:disabled | PtValue | undefined | - | |
pt:box:errors | PtValue | undefined | - | |
pt:box:has-value | PtValue | undefined | - | |
pt:box:loading | PtValue | undefined | - | |
pt:box:open | PtValue | undefined | - | |
pt:box:readonly | PtValue | undefined | - | |
pt:box:selected | PtValue | undefined | - | |
pt:box:warnings | PtValue | undefined | - | |
pt:clear | PtValue | undefined | - | |
pt:clear:disabled | PtValue | undefined | - | |
pt:clear:errors | PtValue | undefined | - | |
pt:clear:has-value | PtValue | undefined | - | |
pt:clear:loading | PtValue | undefined | - | |
pt:clear:open | PtValue | undefined | - | |
pt:clear:readonly | PtValue | undefined | - | |
pt:clear:selected | PtValue | undefined | - | |
pt:clear:warnings | PtValue | undefined | - | |
pt:description | PtValue | undefined | - | |
pt:description:disabled | PtValue | undefined | - | |
pt:description:errors | PtValue | undefined | - | |
pt:description:has-value | PtValue | undefined | - | |
pt:description:loading | PtValue | undefined | - | |
pt:description:open | PtValue | undefined | - | |
pt:description:readonly | PtValue | undefined | - | |
pt:description:selected | PtValue | undefined | - | |
pt:description:warnings | PtValue | undefined | - | |
pt:hint | PtValue | undefined | - | |
pt:hint:disabled | PtValue | undefined | - | |
pt:hint:errors | PtValue | undefined | - | |
pt:hint:has-value | PtValue | undefined | - | |
pt:hint:loading | PtValue | undefined | - | |
pt:hint:open | PtValue | undefined | - | |
pt:hint:readonly | PtValue | undefined | - | |
pt:hint:selected | PtValue | undefined | - | |
pt:hint:warnings | PtValue | undefined | - | |
pt:icon | PtValue | undefined | - | |
pt:icon:disabled | PtValue | undefined | - | |
pt:icon:errors | PtValue | undefined | - | |
pt:icon:has-value | PtValue | undefined | - | |
pt:icon:loading | PtValue | undefined | - | |
pt:icon:open | PtValue | undefined | - | |
pt:icon:readonly | PtValue | undefined | - | |
pt:icon:selected | PtValue | undefined | - | |
pt:icon:warnings | PtValue | undefined | - | |
pt:input | PtValue | undefined | - | |
pt:input:disabled | PtValue | undefined | - | |
pt:input:errors | PtValue | undefined | - | |
pt:input:has-value | PtValue | undefined | - | |
pt:input:loading | PtValue | undefined | - | |
pt:input:open | PtValue | undefined | - | |
pt:input:readonly | PtValue | undefined | - | |
pt:input:selected | PtValue | undefined | - | |
pt:input:warnings | PtValue | undefined | - | |
pt:item | PtValue | undefined | - | |
pt:item:disabled | PtValue | undefined | - | |
pt:item:errors | PtValue | undefined | - | |
pt:item:has-value | PtValue | undefined | - | |
pt:item:loading | PtValue | undefined | - | |
pt:item:open | PtValue | undefined | - | |
pt:item:readonly | PtValue | undefined | - | |
pt:item:selected | PtValue | undefined | - | |
pt:item:warnings | PtValue | undefined | - | |
pt:label | PtValue | undefined | - | |
pt:label:disabled | PtValue | undefined | - | |
pt:label:errors | PtValue | undefined | - | |
pt:label:has-value | PtValue | undefined | - | |
pt:label:loading | PtValue | undefined | - | |
pt:label:open | PtValue | undefined | - | |
pt:label:readonly | PtValue | undefined | - | |
pt:label:selected | PtValue | undefined | - | |
pt:label:warnings | PtValue | undefined | - | |
pt:message | PtValue | undefined | - | |
pt:message:disabled | PtValue | undefined | - | |
pt:message:errors | PtValue | undefined | - | |
pt:message:has-value | PtValue | undefined | - | |
pt:message:loading | PtValue | undefined | - | |
pt:message:open | PtValue | undefined | - | |
pt:message:readonly | PtValue | undefined | - | |
pt:message:selected | PtValue | undefined | - | |
pt:message:warnings | PtValue | undefined | - | |
pt:panel | PtValue | undefined | - | |
pt:panel:disabled | PtValue | undefined | - | |
pt:panel:errors | PtValue | undefined | - | |
pt:panel:has-value | PtValue | undefined | - | |
pt:panel:loading | PtValue | undefined | - | |
pt:panel:open | PtValue | undefined | - | |
pt:panel:readonly | PtValue | undefined | - | |
pt:panel:selected | PtValue | undefined | - | |
pt:panel:warnings | PtValue | undefined | - | |
pt:prefix | PtValue | undefined | - | |
pt:prefix:disabled | PtValue | undefined | - | |
pt:prefix:errors | PtValue | undefined | - | |
pt:prefix:has-value | PtValue | undefined | - | |
pt:prefix:loading | PtValue | undefined | - | |
pt:prefix:open | PtValue | undefined | - | |
pt:prefix:readonly | PtValue | undefined | - | |
pt:prefix:selected | PtValue | undefined | - | |
pt:prefix:warnings | PtValue | undefined | - | |
pt:root | PtValue | undefined | - | |
pt:root:disabled | PtValue | undefined | - | |
pt:root:errors | PtValue | undefined | - | |
pt:root:has-value | PtValue | undefined | - | |
pt:root:loading | PtValue | undefined | - | |
pt:root:open | PtValue | undefined | - | |
pt:root:readonly | PtValue | undefined | - | |
pt:root:selected | PtValue | undefined | - | |
pt:root:warnings | PtValue | undefined | - | |
pt:sheet | PtValue | undefined | - | |
pt:sheet:disabled | PtValue | undefined | - | |
pt:sheet:errors | PtValue | undefined | - | |
pt:sheet:has-value | PtValue | undefined | - | |
pt:sheet:loading | PtValue | undefined | - | |
pt:sheet:open | PtValue | undefined | - | |
pt:sheet:readonly | PtValue | undefined | - | |
pt:sheet:selected | PtValue | undefined | - | |
pt:sheet:warnings | PtValue | undefined | - | |
pt:spinner | PtValue | undefined | - | |
pt:spinner:disabled | PtValue | undefined | - | |
pt:spinner:errors | PtValue | undefined | - | |
pt:spinner:has-value | PtValue | undefined | - | |
pt:spinner:loading | PtValue | undefined | - | |
pt:spinner:open | PtValue | undefined | - | |
pt:spinner:readonly | PtValue | undefined | - | |
pt:spinner:selected | PtValue | undefined | - | |
pt:spinner:warnings | PtValue | undefined | - | |
pt:suffix | PtValue | undefined | - | |
pt:suffix:disabled | PtValue | undefined | - | |
pt:suffix:errors | PtValue | undefined | - | |
pt:suffix:has-value | PtValue | undefined | - | |
pt:suffix:loading | PtValue | undefined | - | |
pt:suffix:open | PtValue | undefined | - | |
pt:suffix:readonly | PtValue | undefined | - | |
pt:suffix:selected | PtValue | undefined | - | |
pt:suffix:warnings | PtValue | undefined | - | |
range | boolean | undefined | false | Range selection: v-model expects a two-element array |
readonly | boolean | undefined | false | Sets the input in a readonly state. |
required | boolean | undefined | false | Sets the input as required. |
reverse | boolean | undefined | false | Reverses the layout: the order of the label and the input is swapped. |
seconds | boolean | undefined | false | Adds the seconds segment. Without it an incoming value carrying seconds displays truncated and zeroes out on the next user commit. |
step | number | undefined | 1 | Minute granularity for the minute column and its arrow stepping. Constrains what the columns produce, never what typing accepts. |
transitionDuration | number | undefined | - | Transition duration, in milliseconds, for the popover appearance. |
variant | InputVariantType | undefined | 'outline' | Visual variant of the field box — the same names and tokens as the
|
warnings | string | string[] | undefined | - | Warning messages to display beneath the field, in their own |
v-model
Values kept in sync through v-model.
| Name | Type | Description |
|---|---|---|
modelValue | string | string[] | null |
Events
| Name | Type | Description |
|---|---|---|
active | (event: "active"): void | |
error | (event: "error", error: TimePickerInputError): void | |
focus | (event: "focus", event: FocusEvent): void | |
hidden | (event: "hidden"): void | |
hide | (event: "hide"): void | |
inactive | (event: "inactive"): void | |
show | (event: "show"): void | |
shown | (event: "shown"): void | |
update:modelValue | (event: "update:modelValue", value: string | string[] | null): void |
Slots
The listed properties are the ones exposed to the slot scope.
| Name | Type | Description |
|---|---|---|
append | object | Content rendered after the time fields (before the clock button). |
append-outer | object | Content rendered after the entire control, outside the input chrome. |
description | BbTimePickerInputDescriptionSlotProps | Replaces the description text. Provided alone (no |
label | BbTimePickerInputLabelSlotProps | Replaces the default label text rendered above the input. |
prefix | object | Inline content at the start of the field area. |
prepend | object | Content rendered before the time fields, at the start of the field box. |
prepend-outer | object | Content rendered before the entire control, outside the input chrome. |
suffix | object | Inline content at the end of the field area. |
Changes from v2
Props removed or renamed in 3.0. If you are coming from v2, the answer is here.
hasWarninghasWarningsfails silently