Pular para o conteúdo

Componentes

DataTable

Tabela de trabalho em papel. Linha de 48 (36 no denso), cabeçalho de máquina que ordena, número à direita em Sora tabular. O link da linha é o alvo do teclado.

estávelDadosdesde 0.1.0@hiboupay/react

Exemplos#

Pagamentos recentes
ContaIDStatusMétodoResponsávelValor
PG-24A7-96F844LiquidadoPIXALR$ 26,3 mil
PG-24A7-724AA0Em análiseCartão?R$ 1,1 mil
PG-24A7-BAAEBCPendenteBoletoRSR$ 10,3 mil
PG-24A7-11C0D2FalhouPIXALR$ 480

clique ou use Tab no link da linha

Linha de 48 · número à direita · o link é o alvo do teclado

Pagamentos recentes
ContaIDStatusMétodoResponsávelValor
PG-24A7-96F844LiquidadoPIXALR$ 26,3 mil
PG-24A7-724AA0Em análiseCartão?R$ 1,1 mil
PG-24A7-BAAEBCPendenteBoletoRSR$ 10,3 mil
PG-24A7-11C0D2FalhouPIXALR$ 480

clique ou use Tab no link da linha

Denso · 36

ContaValor

Nenhum pagamento hoje.

Vazio

Importar#

tsx
import { DataTable } from "@hiboupay/react";
import type { DataTableProps, Column } from "@hiboupay/react";

Quando usar#

Use quando

  • Lista de registros com colunas comparáveis.
  • Dado financeiro que precisa alinhar.

Não use quando

  • Poucos itens ricos: cartões.
  • Layout de página.

Variantes#

padrão · 48

Leitura confortável.

dense · 36

Muitas linhas, painel operacional.

Anatomia#

  1. 01Contêiner papel e1 com rolagem horizontal
  2. 02Cabeçalho hb-label, opaco, que gruda quando pedido
  3. 03Botão de ordenação com seta Graffiti
  4. 04Linhas com divisor 5%
  5. 05Link ou botão na primeira célula quando a linha abre
  6. 06Célula numérica hb-num à direita
  7. 07Vazio com EmptyState compacto
  8. 08Carregando com esqueleto na altura da linha

Estados#

vaziocarregandocom linhaslinha hovercoluna ordenada

API#

Props documentadas no registro. * indica obrigatória.

Propriedades
PropTipoPadrãoDescrição
columns*Column<T>[]{ key, header, cell(row), align?, width?, sortable?, sortValue?, className? }.
rows*T[]Dados.
rowKey*(row: T) => stringChave estável.
onRowClick(row: T) => voidAção de mouse. O teclado usa um botão na primeira célula.
rowHref(row: T) => stringLink real na primeira célula. O ::after cobre a linha.
sortSortState | nullOrdem controlada. Sem isto, a tabela guarda.
onSortChange(sort: SortState) => voidNova ordem ao clicar no cabeçalho.
loadingbooleanCorpo vira esqueleto. aria-busy na tabela.
stickyHeaderbooleanCabeçalho gruda no topo do scroll.
emptyReactNode | string"Nada por aqui."Conteúdo quando não há linhas.
densebooleanfalseLinha de 36px.
captionstringLegenda acessível (sr-only).

Acessibilidade#

Teclado

EnterEspaçoOrdena o cabeçalho.
TabFoca o link ou o botão da linha.
EnterAbre a linha.

Leitor de tela

  1. —Tabela semântica com th scope=col.
  2. —Use caption para nomear a tabela.

Boas práticas#

Faça

  • Números à direita.
  • ID em mono.
  • Célula vazia fica vazia.

Evite

  • Zebra.
  • Centralizar números.

Conteúdo#

  1. —Cabeçalho curto, substantivo.

Tokens#

Os tokens que desenham este componente. Clique para ver valor, variável e classe.

Relacionados#