Pular para o conteúdo

ListBox

Lista de opções selecionáveis, ou de ações, navegável por teclado.

O ListBox mostra opções que a pessoa escolhe (uma ou várias) ou ações que ela aciona. É a lista por baixo do Select e serve também sozinha, como seletor de transportadora. Para linhas ricas com dados use ListView; para tabelas, DataGrid.

import { Description, Label, ListBox } from "@rastreio-x/ui";

Padrão

Cada ListBox.Item tem id e textValue. O ListBox.ItemIndicator marca a opção escolhida. Informe aria-label para nomear a lista.

Seleção múltipla

selectionMode="multiple" permite marcar vários itens; defaultSelectedKeys define os iniciais.

Itens desabilitados

disabledKeys bloqueia itens. Mantenha-os visíveis e explique no texto.

Como menu de ações

Com selectionMode="none" e onAction, o ListBox vira um menu de ações. Itens destrutivos usam variant="danger".

Anatomia

  • ListBox.Item: uma opção, com rótulo e descrição.
  • ListBox.ItemIndicator: sinal de selecionada.
  • ListBox.Section: agrupa itens com um cabeçalho.

Propriedades

Raiz (ListBox):

Item (ListBox.Item):

Animações

Sem animação própria: o item muda de fundo no hover e no foco. Dentro de um Select, quem anima é o popover.

Acessibilidade

  • Papel listbox com itens option; aria-multiselectable quando há seleção múltipla.
  • Setas navegam, Home e End vão às pontas, digitar salta por inicial, Enter ou Espaço escolhem.
  • Em selectionMode="none", o item é acionado com Enter ou clique.
  • O estado de selecionado vem de aria-selected; o indicador reforça sem depender só da cor.

Boas práticas

Faça

Rótulo e descrição curtos, e um indicador claro do que está selecionado.

Evite

Misturar escolha e ação na mesma lista, ou esconder itens indisponíveis sem explicar.
  • Para escolher entre poucas opções, a lista aberta evita um clique extra.
  • Para listas longas, junte com um campo de busca.
  • Use variant="danger" só em ações destrutivas e confirme antes.

Relacionados

  • Select a mesma lista dentro de um campo que abre.
  • Checkbox para marcar opções em um formulário.
  • DataGrid para dados em colunas.