Header slots
Stable header chrome layout for draggable item shells (popup, modal, drawer, float, sidebar, bottom). Documented slot / prop names are Stable — renaming them is a major.
Related: Stable API · Docs hub
Layout
[ pre-title ] [ title | after-title ] …… spacer …… [ extra-btn ]- pre-title — left of the title group (e.g. back / drag handle host).
- title — plain string for switcher/store (
titleprop) and/or custom node (#title/titleNodeon sidebar). - after-title — immediately to the right of the title (same title group), before the spacer.
- extra-btn — trailing actions after the spacer (close / expand / custom buttons).
DragHeader (internal) implements this layout; public item components forward the same names.
Vue ↔ React names
| Vue slot | React prop / node | Role |
|---|---|---|
pre-title | preTitle | Before the title group |
title (prop) | title | Plain string (switcher menu + default header) |
title (slot) | titleNode | Custom header title node (sidebar); falls back to title |
after-title | afterTitle | Immediately after title, before spacer |
extra-btn | extraBtn | Trailing header actions after the spacer |
default | children | Panel body (not part of the header row) |
Rules
- Hosts that place actions “in the title” (e.g. menu
location: 'title') must map those into theafter-title/afterTitleslot — notextra-btn. - React sidebar: use
title(string) for the switcher store label; usetitleNodefor a custom header node (Vue#titleslot). Other shells may still pass a displaytitlenode where noted. - When the visible header differs from the switcher label, set both a plain
titlestring and a styled#title/titleNode. - Do not place trailing chrome (close, expand, switcher) in
after-title; those belong inextra-btn/ built-in header actions. - Not every shell exposes every slot (e.g. some omit
pre-title). Names that are documented on a component remain Stable for that surface.
Component docs
| Component | Doc |
|---|---|
| Popup | draggable-item-popup.md |
| Modal | draggable-modal.md |
| Drawer | draggable-drawer.md |
| Float | draggable-item-float.md |
| Sidebar | draggable-item-sidebar.md |
| Bottom | draggable-item-bottom.md |