@bimetal/tree-react-components
The default React tree / treeview — a thin binding over the canonical
@bimetal/tree-headless controller. Multi-select, expand/collapse, tri-state
checkboxes, drag-reorder, keyboard nav/move, rename, undo. Renders the canonical
.bm-tree* DOM with ARIA tree roles; styles ship from @bimetal/tree-themes.
import { Tree } from '@bimetal/tree-react-components';
import '@bimetal/tree-react-components/styles';
<Tree store={store} treeId="docs" config={{ checkboxes: true }} title="Docs" />
Every interaction decision lives in the controller — this binding only forwards DOM
events and applies tabindex from the controller-derived navAnchor. A renderNode
slot customizes ONLY the node content cell (icon/label/badge); the chevron, checkbox,
row structure and ARIA stay component-owned so a slot can never break interaction or
accessibility. A consumer who needs full control can skip the component and drive
@bimetal/tree-headless directly.