Props
| Name | Description |
|---|---|
activator Type: ElementOrComponentRef | External activator element or component ref. When provided, the For an element you already hold a ref to. For a bare table cell that needs no slot state, the |
activeSegment Type: BbCalendarSegment | Which end the time rail edits in range + |
adaptive Type: booleanDefaultconfig.adaptive (true) | On mobile, open in a bottom off-canvas sheet instead of a floating popover. When unset, falls back to the global Inherited from the plugin, where it defaults to |
ampm Type: booleanDefaultfalse | 12-hour display with an AM/PM column (requires |
anchor Type: ElementOrComponentRef | 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 Type: ElementOrComponentRefOrSelector | Constrains the popover within a bounding element or CSS selector: sideways only, alongside the trigger; it flips at the viewport. |
disabled Type: booleanDefaultfalse | Disables the activator and the calendar. |
disableFlip Type: booleanDefaultfalse | Disable the automatic flip to the opposite side on overflow. |
eager Type: booleanDefaultfalse | Render popover content before it is first shown. |
firstDayOfWeek Type: 0 | 1 | 2 | 3 | 4 | 5 | 6Defaultthe locale's week start | First day of the week (0 = Sunday … 6 = Saturday). Omitted, the active locale's week start: Monday for |
floating Type: booleanDefaultfalse | Emit plain calendar strings instead of zoned ISO instants. Implied (and forced) by Use it for due dates, birthdays and report filters: a calendar day that must read the same in every timezone. Leave it off when the value is an instant. See example |
label Type: string | Accessible label. The activator is named by it followed by the activator's own text ("Due date 12 Sep"), through Make it specific, “Due date for Lindqvist Studio” rather than “Date”, and keep the value visible on the trigger: both are read out together. See example |
max Type: string | Maximum selectable value, in this With |
min Type: string | Minimum selectable value, in this With |
modelValue requiredType: string | string[] | null | v-model: |
multiple Type: booleanDefaultfalse | Multi-selection: each pick toggles a value in a sorted array (days, months or years), and the panel stays open until dismissed. Needs an array |
offCanvasProps Type: Partial<BbOffCanvasProps> | Props for the phone sheet (the |
offset Type: numberDefault4 | Space the popover keeps from the activator. |
padding Type: number | Minimum empty space to keep from the edge of the page. |
placement Type: Placement | Position of the popover relative to the activator/anchor. |
pt Type: PtMap<BbDatePickerPtPart, BbDatePickerPtState> | Passthrough, object form: the same keys as the |
pt:<part> Type: PtValue | Passthrough, attribute form: one attribute per part, |
range Type: booleanDefaultfalse | Enables range selection ( Keep the model an array, with |
readonly Type: booleanDefaultfalse | Prevents opening while keeping the activator visible. |
seconds Type: booleanDefaultfalse | Adds the seconds column (requires |
selectable Type: ((date: string) => boolean) | Predicate invoked per candidate; return For rules a window cannot express, such as weekdays or stock. Rejected dates are already disabled and announced, so do not add a click guard of your own. See example |
step Type: numberDefault1 | Minute-column granularity and arrow stepping (requires |
time Type: string | string[] | null | Companion time model ( |
transitionDuration Type: numberDefault250 | Popover/sheet transition duration in milliseconds. |
type Type: DatePickerTypeDefault"date" | What the picker selects and emits: |
utc Type: booleanDefaultfalse | Emit UTC ( Only when the receiving API requires a |
v-model
Values kept in sync through v-model.
| Name | Description |
|---|---|
activeSegment Type: BbCalendarSegment | |
modelValue Type: string | string[] | null | |
time Type: string | string[] | null | With |
Events
| Name | Description |
|---|---|
grid-pick Type: (value: string | string[] | null): void | Relay of the raw calendar-grid pick, before the calendar combines it with the time. An embedding host binds this to run its own value engine; clean consumers ignore it and use |
hide Type: (): void | Emitted as soon as the calendar surface starts to close. |
show Type: (): void | Emitted as soon as the calendar surface starts to open (the popover, or the sheet on a phone). |
shown Type: (): void | Emitted once the calendar surface is open and its open transition has finished. |
time-pick Type: (payload: { unit: TimeUnit; value: string; }): void | Relay of the raw time-rail pick. An embedding host binds this to run its own value engine; clean consumers ignore it and use |
update:activeSegment Type: (value: BbCalendarSegment): void | The active range end changed (range + |
update:modelValue Type: (value: string | string[] | null): void | Emitted when the selected date value changes (single/range/null). |
update:time Type: (value: string | string[] | null): void | Companion time model, alongside every change while |
Slots
The listed properties are the ones exposed to the slot scope.
| Name | Description |
|---|---|
<YYYY-MM-DD> Type: BbCalendarDaySlotProps | One date's button label (e.g. Named after the local date exactly as written: |
<YYYY-MM-DD>:append Type: BbCalendarDaySlotProps | Content under one date's cell; beats For a marker under one fixed date, such as |
activator Type: BbDatePickerActivatorSlotProps | Custom activator element. Apply Its |
day Type: BbCalendarDaySlotProps | Replaces the day button label inside each calendar day. See example |
day:append Type: BbCalendarDaySlotProps | Appends content below each calendar day. The lighter choice for a marker under the number. Reach for |
Renamed and removed
Names from v2 and from earlier 3.0 betas that no longer work, and what to write instead.
- slot
append:<x><x>:appendfails silently - slot
append:dayday:appendfails silently datetimetypefails silentlypt:columnHeaderpt:cellColumnHeaderfails silently