Navigation
Orientación y desplazamiento dentro del producto: Tabs, Accordion, Breadcrumbs, Pagination, Tree. Pensados para la densidad de backoffice pero válidos en todos los productos.
Tabs
<Tabs />Conmutación entre vistas de un mismo contexto. Tres variantes: underline (default, para navegación de página), pill (para filtros suaves) y solid (segmented, para alternar modos de vista).
<Tabs value={tab} onChange={setTab} variant="underline">
<Tabs.Tab value="articulos" count={128}>Artículos</Tabs.Tab>
<Tabs.Tab value="familias" count={12}>Familias</Tabs.Tab>
</Tabs>
| Prop | Tipo | Default | Descripción |
|---|---|---|---|
| value | string | — | Tab activa (controlado). |
| onChange | (value) => void | — | Handler de cambio. |
| variant | 'underline' | 'pill' | 'solid' | 'underline' | Estilo visual. |
| Tabs.Tab | |||
| value | string | — | Identificador de la tab. |
| count | number | — | Contador opcional. |
| disabled | boolean | false | Desactiva la tab. |
Accordion
<Accordion />Secciones colapsables para organizar contenido extenso (configuración de artículo, FAQs, filtros agrupados). Modo single (solo una abierta) o multiple.
<Accordion type="single" defaultValue="general">
<Accordion.Item value="general" title="Información general">
{/* contenido */}
</Accordion.Item>
</Accordion>
| Prop | Tipo | Default | Descripción |
|---|---|---|---|
| type | 'single' | 'multiple' | 'single' | Cuántos paneles abiertos a la vez. |
| defaultValue | string | string[] | — | Panel(es) abierto(s) al inicio. |
| collapsible | boolean | true | Permite cerrar todos (solo single). |
| Accordion.Item | |||
| value | string | — | Identificador del panel. |
| title | string | — | Texto del trigger. |
Pagination
<Pagination />Navegación entre páginas de resultados. Muestra primera/última, vecinas y elipsis para rangos largos. Acompañar con el rango de resultados visible.
<Pagination
page={1}
pageCount={13}
onPageChange={setPage}
siblingCount={1}
/>
| Prop | Tipo | Default | Descripción |
|---|---|---|---|
| page | number | 1 | Página actual. |
| pageCount | number | — | Total de páginas. |
| onPageChange | (page) => void | — | Handler de cambio. |
| siblingCount | number | 1 | Vecinas a cada lado de la actual. |
| size | 'sm' | 'md' | 'md' | 28 o 32 px por botón. |
Tree
<Tree />Navegación jerárquica expandible. Es la columna vertebral del backoffice de catálogos: árbol de catálogos › familias › subfamilias. Nodo activo con barra accent a la izquierda.
<Tree value={selectedId} onSelect={setSelected}>
<Tree.Node id="primavera" label="Primavera 2026" count={128}>
<Tree.Node id="camisetas" label="Camisetas" count={42} />
<Tree.Node id="pantalones" label="Pantalones">…</Tree.Node>
</Tree.Node>
</Tree>
| Prop | Tipo | Default | Descripción |
|---|---|---|---|
| value | string | — | Id del nodo seleccionado. |
| onSelect | (id) => void | — | Handler de selección. |
| defaultExpanded | string[] | — | Nodos abiertos al inicio. |
| Tree.Node | |||
| id | string | — | Identificador único. |
| label | string | — | Texto del nodo. |
| icon | ReactNode | — | Icono a la izquierda. |
| count | number | — | Contador a la derecha. |