Skip to content

TreeSelect ​

Single-select tree in a Select-shaped trigger. The panel is one scrollable tree, portaled to document.body at z-index 4000 (plus 10 inside each nested overlay). Multiple selection, check-strategy, and filtering are follow-ups.

Demos ​

Department

The trigger joins ancestor labels with / . The switcher expands a branch. Choosing a node commits and closes.

design

Leaf label only

Sizes and status

Empty

Inside a form item

API ​

Properties ​

NameTypeDefaultNotes
valuestring | number | nullnullSelected node key
options / dataTreeNode[][]{ label, value or key, children?, disabled?, isLeaf? }
placeholderstring''
separatorstring' / '
sizesm | md | lgmdTrigger 28 / 34 / 40
clearablebooleanfalse
statussuccess | warning | error—
default-expanded-keyskey[][]
expanded-keyskey[] | nullnullnull is uncontrolled
expand-on-click-nodebooleantrueA collapsed branch expands, then a selectable node commits
selectable(node) => booleanany non-disabled node
show-pathbooleantruefalse shows the selected label only
placementbottom-start | top-startbottom-startFlips when space is tight
dropdown-widthnumber | 'trigger''trigger'Capped at 320px
filterable / multiplebooleanfalsePresent, not implemented in v1
check-strategychild | parent | allchildIgnored until multiple ships

Events ​

NameDetail
change, update:value{ value, option, path }
expand, update:expanded-keys{ keys, node, expanded }
clear

Parts ​

trigger, value, placeholder, clear, chevron, panel, tree, node, switcher, indent, label, empty.

Keyboard: ArrowDown, Enter, or Space opens. Up and Down move. Left and Right collapse and expand. Enter commits. Esc closes and returns focus to the trigger.