Props
| Name | Type | Default | Description |
|---|---|---|---|
eager | boolean | undefined | false | Prevents rendering content before it's made visible. Renders the slot before the first open. Needed when the content must exist up front — a form field that registers and validates, text a prerendered page has to carry, anything measured on mount. It does not weaken the hidden state: closed content stays |
modelValue | boolean | undefined | false | Used by v-model to trigger opening / closing the collapsible.
Optional, matching the runtime: One-way. The component renders this value and never writes it back — there is no event and no model row on this page, because it cannot open or close itself. |
pt | PtMap<BbCollapsiblePtPart, "open"> | undefined | - | Passthrough, object form: the same keys as the |
pt:content | PtValue | undefined | - | |
pt:content:open | PtValue | undefined | - | |
pt:root | PtValue | undefined | - | |
pt:root:open | PtValue | undefined | - | |
tag | LayoutTag | undefined | "span" | Element rendered as the root, and mirrored by the inner animating
element — so the pair is span-in-span or div-in-div, both valid. Keep the
default inside phrasing content (a |
transitionDuration | number | undefined | 250 | How long the transition has to last in milliseconds Milliseconds; the manifest default resolves to 250. One value drives both the height animation and the opacity fade. Under |
Slots
The listed properties are the ones exposed to the slot scope.
| Name | Type | Description |
|---|---|---|
default | any | The collapsible body content that is shown or hidden based on Deferred until the first open, then mounted for good, so state inside survives close and reopen. Put padding and borders on what you slot in here, not on the collapsible: its own spacing is forced to zero to guarantee a true zero-height collapse. See example |