Tree
Datos jerárquicos con nodos expandibles, selección y navegación por teclado.
src
components
button.tsx
card.tsx
tree.tsx
hooks
index.ts
package.json
tsconfig.json
Instalación
pnpm dlx nachui add treeAnatomía
Un item con hijos es una rama: al hacer clic alterna la expansión. Un item sin hijos es una hoja: al hacer clic se selecciona y dispara
onSelectedChange en la raíz. Las flechas recorren las filas visibles, ArrowRight expande, ArrowLeft colapsa o salta al padre, Home y End van a los extremos.Composición
Usa la siguiente composición para construir un
Tree:Variantes
Líneas
showLines dibuja una guía a lo largo de cada nivel.app
docs
elements
page.tsx
layout.tsx
page.tsx
layout.tsx
globals.css
proxy.ts
Iconos
Pasa
icon en cada nodo y iconOpen en las ramas que cambian al expandirse, como las carpetas.packages
ui
tree.tsx
frame.tsx
cli
turbo.json
Más y menos
toggleIcon="plus-minus" cambia el chevron por conmutadores de más y menos.content
docs
en
es
README.md
Referencia de API
Tree
| Prop | Type | Default | Description |
|---|---|---|---|
defaultExpanded | string[] | [] | Ramas expandidas al montar |
defaultSelected | string | - | Hoja seleccionada inicialmente |
selected | string | - | Hoja seleccionada en modo controlado |
onSelectedChange | (value: string) => void | - | Callback al seleccionar una hoja |
indent | number | 16 | Píxeles de sangría por nivel |
toggleIcon | 'chevron' | 'plus-minus' | 'chevron' | Estilo del icono de expandir y colapsar |
showLines | boolean | false | Dibuja guías entre niveles |
label | string | 'Tree' | Nombre accesible del árbol |
className | string | - | Clases CSS adicionales |
Tree.Item
| Prop | Type | Default | Description |
|---|---|---|---|
value | string | - | Valor único, usado para expansión y selección |
label | ReactNode | - | Contenido de la fila |
icon | ReactNode | - | Icono inicial |
iconOpen | ReactNode | - | Icono mientras la rama está expandida |
disabled | boolean | false | Deshabilita la fila |
onSelect | () => void | - | Callback al seleccionar esta hoja |
className | string | - | Clases CSS adicionales |
¿Encontraste algo que mejorar?
¿Notaste un error, tipografía o detalle faltante en esta página? Ayúdanos a mejorar la documentación abriendo un issue en GitHub.