Tab enters one tree item. Up/Down move through visible enabled rows; Home/End reach the first or last row. Typing a label prefix moves focus.
Right opens a branch or enters its children; Left closes it or returns to its parent. These directions mirror in RTL. Enter and Space select the focused row.
Click a row to select it, or its chevron to expand without selecting. Selection does not follow focus, and opening a branch preserves selection.
Disabled items and their descendants are skipped by arrow navigation. If a focused branch collapses or a focused node disappears, focus returns to its nearest available ancestor.
Only open children are mounted. This component is synchronous, single-select, and unvirtualized; owners supply updated node data and handle navigation in onValueChange.
Only disclosure rotation animates; reduced motion removes transitions. All interactive colors, shapes, typography, focus, and motion use Gamma design-system tokens.
Icon and meta slots should contain noninteractive content. Stable unique IDs are required for selection, expansion, focus, and React keys.