Dados & visualização
cosmemilton-ui/client

CmDataTable

Use como tabela padrão de back-office, com colunas tipadas e configuração de visibilidade quando `tableKey` é usado. Por padrão ordena e pagina o array no cliente; ative o modo server-side para delegar ao backend.

Import

tsx
import { CmDataTable, type CmDataTableSort } from "cosmemilton-ui/client";

Tabela de pedidos

Pedidos recentes

Ordene colunas e navegue pela paginação.

PedidoClienteStatusTotal
1048Acme Ltda.PagoR$ 1.280,00
1049Aurora FoodsPendenteR$ 940,00
Linhas por página:1-2 de 3
Página 1 de 2

Recursos combinados: colunas configuráveis + painel de detalhes

tableKey liga o menu "Colunas" (Observações começa oculta; Nº nunca pode ser ocultada). O switch na toolbar ativa o painel de detalhes: clique em uma linha para abri-lo, clique de novo para desmarcar.

Vistorias

Escolha as colunas no botão "Colunas"; com o painel ligado, clique em uma linha para ver os detalhes.

ImóvelVistoriadorStatusData
1027Imóvel B-127DiegoPendente27/03/2026
1026Imóvel A-126CarlaConcluída26/03/2026
1025Imóvel Z-125BrunoEm andamento25/03/2026
1024Imóvel Y-124AnaPendente24/03/2026
1023Imóvel X-123DiegoConcluída23/03/2026
Linhas por página:1-5 de 7
Página 1 de 2

Server-side (paginação e sort no backend)

manualSorting + manualPagination + totalRows + loading, com page/rowsPerPage/sort controlados. Busca simulada de 600 ms.

Vistorias (server-side)

Ordenação e paginação resolvidas a cada busca simulada (600 ms).

Carregando…

API rápida

Props principais de cada peça exportada.

CmDataTable

columnsdatarowKeypaginationtoolbaractionstableKey

Seleção e painel de detalhe

selectedRowKeyonRowClickdetailPanelEnabledrenderSelectedRowDetaildetailPanelWidthdetailEmptyMessage

CmDataTableColumn

key/headerrendersortable/sortValuealignhideabledefaultHidden

Server-side / controlado

manualSortingmanualPaginationtotalRowsloadingpage/onPageChangerowsPerPage/onRowsPerPageChangesortKey/sortDirection/onSortChange

CmDataTableActions

childrenclassName

Notas

Modo padrão (client-side): a tabela ordena e recorta `data` sozinha.

Modo server-side: ative `manualSorting` + `manualPagination`, informe `totalRows` e `loading`, e controle `page`/`rowsPerPage`/`sortKey`/`sortDirection`. `data` passa a ser apenas a página atual; `onSortChange` emite `CmDataTableSort`.

Visibilidade de colunas: informar `tableKey` exibe o botão "Colunas" no cabeçalho e persiste a escolha do usuário (via useTablePreference). Na coluna, `hideable: false` a remove do menu (ex.: chave/ações) e `defaultHidden: true` a deixa oculta até o usuário ativá-la.

Painel de detalhe: use `selectedRowKey` + `onRowClick` para seleção controlada; o painel lateral só aparece quando `detailPanelEnabled` e `renderSelectedRowDetail` são passados. `detailEmptyMessage` cobre o estado sem seleção e `detailPanelWidth` controla a largura.