Tree select

Hierarchical, async, searchable select. Data flows through a TreeSelectProvider (lazy roots / children / server search); selection is held as full TreeNode objects. Bind value and update it from onValueChange.

Styling — this component renders in the light DOM

It has no shadow root. Anything you render into it — row templates, node templates, cell renderers — stays in the document, so your app's stylesheet, your own component styles and Bootstrap's utility classes reach it normally.

Its own CSS is scoped at build time onto a data-mps attribute, the same device Angular uses for _ngcontent, so it cannot leak out onto your markup.

The trade-off runs the other way: page CSS now reaches this component's internals, exactly as emulated encapsulation behaves everywhere else.::part() and ::slotted() no longer address it — use ordinary CSS selectors instead.

Single + server search

Selected:

Multiple (chips)

Selected:

Checkbox + cascade

Selected:

Button variant + clear

Selected: