Getting StartedInstallation and setup guides 5
LayoutWorkflow and structural layout components 7
OverlayModal and floating layer surfaces 3
FeedbackStatus, empty, progress, and loading placeholder patterns 5
FormInput and selection components 17
UtilityGeneral-purpose interface utilities 7
NavigationMenu surfaces and hierarchical actions 7

API reference

Tree ships as headless primitives for full ownership and a styled wrapper component for quick adoption.

tngTree (directive)

Root container that orchestrates keyboard navigation, roving focus, and selection state.

Primitive usage

html
<div tngTree [selectionMode]="'single'" aria-label="Files">
  <div tngTreeItem [value]="'src'" [defaultExpanded]="true">
    <span tngTreeIndicator>📂</span> src
    <div tngTreeGroup>
      <div tngTreeItem [value]="'index'">
        <span tngTreeIndicator>📄</span> index.ts
      </div>
    </div>
  </div>
</div>
InputTypeDefaultNotes
selectionMode'single' | 'multiple' | 'none''none'Controls item selection behavior.
orientation'vertical' | 'horizontal''vertical'Sets aria-orientation and key mapping direction.
valueTngTreeValue | TngTreeValue[] | nullundefinedControlled selection value.
defaultValueTngTreeValue | TngTreeValue[] | nullundefinedInitial uncontrolled selection.
disabledbooleanfalseDisables the entire tree.
OutputTypeNotes
valueChangeTngTreeValue | TngTreeValue[] | nullEmits when selection changes.
Host attributeValuePurpose
data-slot"tree"Stable styling hook.
role"tree"ARIA tree role.
aria-orientation"vertical" | "horizontal"Reflects orientation input.
aria-multiselectable"true" | "false" | nullReflects the current selection mode and is omitted when selectionMode is 'none'.

tngTreeItem (directive)

Individual node inside the tree. Manages expansion state and selection.

InputTypeDefaultNotes
valueTngTreeValueRequired. Unique identifier for this node.
expandedboolean | undefinedundefinedControlled expansion state.
defaultExpandedbooleanfalseInitial uncontrolled expansion.
disabledbooleanfalseDisables this node.
OutputTypeNotes
expandedChangebooleanEmits when expanded state toggles.
Host attributeValuePurpose
data-slot"tree-item"Stable styling hook.
data-expanded"true" | "false"Expansion state for CSS selectors.
data-selected"true" | "false"Selection state for CSS selectors.
data-disabled"true" | "false"Disabled state for CSS selectors.
aria-expanded"true" | "false" | nullSet on branch nodes only.
aria-selected"true" | "false" | nullSet when selection mode is not 'none'.

tngTreeGroup (directive)

Wraps child items of a branch node. Registers itself as a child group on the parent tngTreeItem.

Host attributeValuePurpose
data-slot"tree-group"Stable styling hook.
role"group"ARIA group role.

tngTreeIndicator (directive)

Disclosure indicator that toggles expand/collapse when clicked. Reflects the parent item's expansion state via data-expanded.

Host attributeValuePurpose
data-slot"tree-indicator"Stable styling hook.
data-expanded"true" | "false"Mirrors parent item's expansion state.

tng-tree (component)

Styled wrapper that accepts flat node data and renders a complete tree with expand/collapse toggles, keyboard navigation, selection, typeahead, and depth indentation.

Component usage

html
<tng-tree
  [nodes]="treeNodes"
  [defaultExpandedIds]="['src']"
  [defaultSelectedId]="'index'"
  [ariaLabel]="'Files'"
  (selectedIdChange)="onSelect($event)"
/>
InputTypeDefaultNotes
nodesTngTreeItem[][] Flat array of { id, label, parentId?, description?, disabled? }.
ariaLabelstring'Tree'Accessible label for the tree root.
defaultExpandedIdsstring[][]Node IDs expanded on first render.
defaultSelectedIdstring | nullnullNode ID selected on first render.
OutputTypeNotes
selectedIdChangestring | nullEmits the selected node ID.