Props
| Name | Type | Default | Description |
|---|---|---|---|
activator | ElementOrComponentRef | undefined | - | External activator element or component ref. When provided, the |
activeSegment | BbCalendarSegment | undefined | - | Which end the time rail edits in range + |
adaptive | boolean | undefined | `config.adaptive` (`true`) | On mobile, open in 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 column (requires |
anchor | ElementOrComponentRef | undefined | - | Element or component ref the popover positions itself relative to. Defaults to the activator when omitted (anchor to a larger row while a smaller element stays the click target). |
boundary | ElementOrComponentRefOrSelector | undefined | - | Constrains the popover within a bounding element or CSS selector. |
disabled | boolean | undefined | false | Disables the activator and the calendar. |
disableFlip | boolean | undefined | false | Disable the automatic flip to the opposite side on overflow. |
eager | boolean | undefined | false | Render popover content before it is first shown. |
firstDayOfWeek | 0 | 1 | 2 | 3 | 4 | 5 | 6 | undefined | 1 | First day of the week (0 = Sunday … 6 = Saturday). |
floating | boolean | undefined | false | Emit plain calendar strings instead of zoned ISO instants. Implied (and
forced) by |
label | string | undefined | - | Accessible label applied to the activator via |
max | string | undefined | - | Maximum selectable value, in this |
min | string | undefined | - | Minimum selectable value, in this |
modelValuerequired | string | string[] | null | - | v-model value. |
multiple | boolean | undefined | false | Enables multi-selection: every pick toggles a value in or out of a sorted
array, and the panel stays open until it is dismissed. Works in whatever
|
offCanvasProps | Partial<BbOffCanvasProps> | undefined | - | Props for the phone sheet. A |
offset | number | undefined | 4 | Space the popover keeps from the activator. |
padding | number | undefined | - | Minimum empty space to keep from the edge of the page. |
placement | Placement | undefined | - | Position of the popover relative to the activator/anchor. |
pt | PtMap<BbDatePickerPtPart, BbDatePickerPtState> | undefined | - | Passthrough, object form: the same keys as the |
pt:arrow | PtValue | undefined | - | |
pt:arrow:active | PtValue | undefined | - | |
pt:arrow:disabled | PtValue | undefined | - | |
pt:arrow:highlighted | PtValue | undefined | - | |
pt:arrow:in-range | PtValue | undefined | - | |
pt:arrow:open | PtValue | undefined | - | |
pt:arrow:outside | PtValue | undefined | - | |
pt:arrow:range-end | PtValue | undefined | - | |
pt:arrow:range-start | PtValue | undefined | - | |
pt:arrow:selected | PtValue | undefined | - | |
pt:arrow:today | PtValue | undefined | - | |
pt:column-header | PtValue | undefined | - | |
pt:column-header:active | PtValue | undefined | - | |
pt:column-header:disabled | PtValue | undefined | - | |
pt:column-header:highlighted | PtValue | undefined | - | |
pt:column-header:in-range | PtValue | undefined | - | |
pt:column-header:open | PtValue | undefined | - | |
pt:column-header:outside | PtValue | undefined | - | |
pt:column-header:range-end | PtValue | undefined | - | |
pt:column-header:range-start | PtValue | undefined | - | |
pt:column-header:selected | PtValue | undefined | - | |
pt:column-header:today | PtValue | undefined | - | |
pt:day | PtValue | undefined | - | |
pt:day-button | PtValue | undefined | - | |
pt:day-button:active | PtValue | undefined | - | |
pt:day-button:disabled | PtValue | undefined | - | |
pt:day-button:highlighted | PtValue | undefined | - | |
pt:day-button:in-range | PtValue | undefined | - | |
pt:day-button:open | PtValue | undefined | - | |
pt:day-button:outside | PtValue | undefined | - | |
pt:day-button:range-end | PtValue | undefined | - | |
pt:day-button:range-start | PtValue | undefined | - | |
pt:day-button:selected | PtValue | undefined | - | |
pt:day-button:today | PtValue | undefined | - | |
pt:day:active | PtValue | undefined | - | |
pt:day:disabled | PtValue | undefined | - | |
pt:day:highlighted | PtValue | undefined | - | |
pt:day:in-range | PtValue | undefined | - | |
pt:day:open | PtValue | undefined | - | |
pt:day:outside | PtValue | undefined | - | |
pt:day:range-end | PtValue | undefined | - | |
pt:day:range-start | PtValue | undefined | - | |
pt:day:selected | PtValue | undefined | - | |
pt:day:today | PtValue | undefined | - | |
pt:header | PtValue | undefined | - | |
pt:header:active | PtValue | undefined | - | |
pt:header:disabled | PtValue | undefined | - | |
pt:header:highlighted | PtValue | undefined | - | |
pt:header:in-range | PtValue | undefined | - | |
pt:header:open | PtValue | undefined | - | |
pt:header:outside | PtValue | undefined | - | |
pt:header:range-end | PtValue | undefined | - | |
pt:header:range-start | PtValue | undefined | - | |
pt:header:selected | PtValue | undefined | - | |
pt:header:today | PtValue | undefined | - | |
pt:month | PtValue | undefined | - | |
pt:month-item | PtValue | undefined | - | |
pt:month-item:active | PtValue | undefined | - | |
pt:month-item:disabled | PtValue | undefined | - | |
pt:month-item:highlighted | PtValue | undefined | - | |
pt:month-item:in-range | PtValue | undefined | - | |
pt:month-item:open | PtValue | undefined | - | |
pt:month-item:outside | PtValue | undefined | - | |
pt:month-item:range-end | PtValue | undefined | - | |
pt:month-item:range-start | PtValue | undefined | - | |
pt:month-item:selected | PtValue | undefined | - | |
pt:month-item:today | PtValue | undefined | - | |
pt:month:active | PtValue | undefined | - | |
pt:month:disabled | PtValue | undefined | - | |
pt:month:highlighted | PtValue | undefined | - | |
pt:month:in-range | PtValue | undefined | - | |
pt:month:open | PtValue | undefined | - | |
pt:month:outside | PtValue | undefined | - | |
pt:month:range-end | PtValue | undefined | - | |
pt:month:range-start | PtValue | undefined | - | |
pt:month:selected | PtValue | undefined | - | |
pt:month:today | PtValue | undefined | - | |
pt:panel | PtValue | undefined | - | |
pt:panel:active | PtValue | undefined | - | |
pt:panel:disabled | PtValue | undefined | - | |
pt:panel:highlighted | PtValue | undefined | - | |
pt:panel:in-range | PtValue | undefined | - | |
pt:panel:open | PtValue | undefined | - | |
pt:panel:outside | PtValue | undefined | - | |
pt:panel:range-end | PtValue | undefined | - | |
pt:panel:range-start | PtValue | undefined | - | |
pt:panel:selected | PtValue | undefined | - | |
pt:panel:today | PtValue | undefined | - | |
pt:root | PtValue | undefined | - | |
pt:root:active | PtValue | undefined | - | |
pt:root:disabled | PtValue | undefined | - | |
pt:root:highlighted | PtValue | undefined | - | |
pt:root:in-range | PtValue | undefined | - | |
pt:root:open | PtValue | undefined | - | |
pt:root:outside | PtValue | undefined | - | |
pt:root:range-end | PtValue | undefined | - | |
pt:root:range-start | PtValue | undefined | - | |
pt:root:selected | PtValue | undefined | - | |
pt:root:today | PtValue | undefined | - | |
pt:sheet | PtValue | undefined | - | |
pt:sheet:active | PtValue | undefined | - | |
pt:sheet:disabled | PtValue | undefined | - | |
pt:sheet:highlighted | PtValue | undefined | - | |
pt:sheet:in-range | PtValue | undefined | - | |
pt:sheet:open | PtValue | undefined | - | |
pt:sheet:outside | PtValue | undefined | - | |
pt:sheet:range-end | PtValue | undefined | - | |
pt:sheet:range-start | PtValue | undefined | - | |
pt:sheet:selected | PtValue | undefined | - | |
pt:sheet:today | PtValue | undefined | - | |
pt:year | PtValue | undefined | - | |
pt:year-item | PtValue | undefined | - | |
pt:year-item:active | PtValue | undefined | - | |
pt:year-item:disabled | PtValue | undefined | - | |
pt:year-item:highlighted | PtValue | undefined | - | |
pt:year-item:in-range | PtValue | undefined | - | |
pt:year-item:open | PtValue | undefined | - | |
pt:year-item:outside | PtValue | undefined | - | |
pt:year-item:range-end | PtValue | undefined | - | |
pt:year-item:range-start | PtValue | undefined | - | |
pt:year-item:selected | PtValue | undefined | - | |
pt:year-item:today | PtValue | undefined | - | |
pt:year:active | PtValue | undefined | - | |
pt:year:disabled | PtValue | undefined | - | |
pt:year:highlighted | PtValue | undefined | - | |
pt:year:in-range | PtValue | undefined | - | |
pt:year:open | PtValue | undefined | - | |
pt:year:outside | PtValue | undefined | - | |
pt:year:range-end | PtValue | undefined | - | |
pt:year:range-start | PtValue | undefined | - | |
pt:year:selected | PtValue | undefined | - | |
pt:year:today | PtValue | undefined | - | |
range | boolean | undefined | false | Enables range selection ( |
readonly | boolean | undefined | false | Prevents opening while keeping the activator visible. |
seconds | boolean | undefined | false | Adds the seconds column (requires |
selectable | ((date: string) => boolean) | undefined | - | Predicate invoked per candidate; return |
step | number | undefined | 1 | Minute-column granularity and arrow stepping (requires |
time | string | string[] | null | undefined | - | Companion time model ( |
transitionDuration | number | undefined | 250 | Popover/sheet transition duration in milliseconds. |
type | DatePickerType | undefined | "date" | What the picker selects, and therefore what it emits.
- |
utc | boolean | undefined | false | Emit UTC ( |
v-model
Values kept in sync through v-model.
| Name | Type | Description |
|---|---|---|
activeSegment | BbCalendarSegment | undefined | |
modelValue | string | string[] | null | |
time | string | string[] | null | undefined |
Events
| Name | Type | Description |
|---|---|---|
grid-pick | (event: "grid-pick", value: string | string[] | null): void | |
hidden | (event: "hidden"): void | |
hide | (event: "hide"): void | |
show | (event: "show"): void | |
shown | (event: "shown"): void | |
time-pick | (event: "time-pick", payload: { unit: TimeUnit; value: string; }): void | |
update:activeSegment | (event: "update:activeSegment", value: BbCalendarSegment): void | |
update:modelValue | (event: "update:modelValue", value: string | string[] | null): void | |
update:time | (event: "update:time", value: string | string[] | null): void |
Slots
The listed properties are the ones exposed to the slot scope.
| Name | Type | Description |
|---|---|---|
<YYYY_MM_DD> | BbCalendarDaySlotProps | One date's button label (e.g. |
activator | BbDatePickerActivatorSlotProps | Custom activator element. Apply |
append:<YYYY_MM_DD> | BbCalendarDaySlotProps | Content under one date's cell; beats |
append:day | BbCalendarDaySlotProps | Appends content below each calendar day. |
day | BbCalendarDaySlotProps | Replaces the day button label inside each calendar day. |
Changes from v2
Props removed or renamed in 3.0. If you are coming from v2, the answer is here.
datetimetypefails silently