Makuco UI
ComponentesData Entry & Selection

Filter Chip

Pílula interativa para representar e alternar um valor de filtro pré-definido. Componentes `mk-filter-chip` e `mk-filter-chip-group`.

O mk-filter-chip representa um valor de filtro pré-definido que pode ser ativado ou desativado. Comunica visualmente e via ARIA se o filtro está aplicado. O mk-filter-chip-group reúne chips relacionados sob um rótulo com semântica de grupo.

Padrão

import { MkFilterChip } from '@db1/makuco-ui-react';

<MkFilterChip label="Pendentes" />
<mk-filter-chip label="Pendentes"></mk-filter-chip>

Com ícone

Quando leadingIcon está definido e o chip não está selecionado, o ícone aparece antes do texto. Ao selecionar, circle-check substitui o ícone fornecido — os dois nunca coexistem.

Quando nenhum leadingIcon é configurado e o chip se torna selecionado, o circle-check aparece e a largura do chip aumenta cerca de 20px. Em barras de filtro onde o deslocamento é indesejável, defina leadingIcon em todos os chips do grupo.

<MkFilterChip label="Pendentes" leadingIcon="funnel" />
<mk-filter-chip label="Pendentes" leading-icon="funnel"></mk-filter-chip>

Selecionado

O chip pode ser controlado externamente via a prop selected ou deixado no modo não controlado — ele muta internamente quando o usuário clica.

{/* controlado */}
<MkFilterChip label="Alta prioridade" selected={isActive} onMkChange={(e) => setIsActive(e.detail.selected)} />

{/* não controlado */}
<MkFilterChip label="Alta prioridade" />
<!-- controlado -->
<mk-filter-chip label="Alta prioridade" [selected]="isActive" (mkChange)="isActive = $event.detail.selected"></mk-filter-chip>

<!-- não controlado -->
<mk-filter-chip label="Alta prioridade"></mk-filter-chip>

Fechável

Quando closable é verdadeiro, um botão de fechar aparece após o texto. Clicar nele emite mkClose — o chip não é removido do DOM automaticamente; o consumidor remove da própria lista.

Em grupos com múltiplos chips fecháveis, defina closeLabel com um nome único por chip para atender WCAG 4.1.2.

<MkFilterChip
  label="Pendentes"
  closable
  closeLabel="Remover filtro Pendentes"
  onMkClose={(e) => removeFilter(e.detail.value)}
/>
<mk-filter-chip
  label="Pendentes"
  closable
  close-label="Remover filtro Pendentes"
  (mkClose)="removeFilter($event.detail.value)"
></mk-filter-chip>

Desabilitado

<MkFilterChip label="Pendentes" disabled />
<mk-filter-chip label="Pendentes" disabled></mk-filter-chip>

Grupo

O mk-filter-chip-group exibe um rótulo visível e agrupa chips semanticamente via role="group" e aria-labelledby.

import { MkFilterChip, MkFilterChipGroup } from '@db1/makuco-ui-react';

<MkFilterChipGroup label="Status">
  <MkFilterChip label="Ativo" value="ativo" />
  <MkFilterChip label="Pendente" value="pendente" />
  <MkFilterChip label="Inativo" value="inativo" />
</MkFilterChipGroup>
<mk-filter-chip-group label="Status">
  <mk-filter-chip label="Ativo" value="ativo"></mk-filter-chip>
  <mk-filter-chip label="Pendente" value="pendente"></mk-filter-chip>
  <mk-filter-chip label="Inativo" value="inativo"></mk-filter-chip>
</mk-filter-chip-group>

Props — mk-filter-chip

PropTipoPadrãoDescrição
labelstringTexto do chip. Quando ausente, o slot padrão é renderizado.
leadingIconIconNameÍcone antes do texto. Substituído por circle-check quando selected.
valuestringIdentificador do recorte. Devolvido no payload de mkChange e mkClose.
selectedbooleanfalseSe o filtro está aplicado. O chip muta internamente ao clicar e emite mkChange.
closablebooleanfalseExibe botão de fechar.
closeLabelstring"Remove"Nome acessível do botão de fechar. Deve ser único por chip em grupos com múltiplos chips fecháveis.
disabledbooleanfalseDesabilita o toggle e o botão de fechar.

Props — mk-filter-chip-group

PropTipoPadrãoDescrição
labelstringRótulo visível do grupo. Também o nome acessível via aria-labelledby.

Eventos

EventoComponentePayloadDescrição
mkChangemk-filter-chip{ value?: string; selected: boolean }Emitido ao clicar no toggle. selected é o novo estado desejado. Não dispara quando disabled.
mkClosemk-filter-chip{ value?: string }Emitido ao clicar no botão de fechar. Não emite mkChange. Não dispara quando disabled.

Slots

ComponenteSlotDescrição
mk-filter-chip(padrão)Conteúdo do rótulo quando label não é fornecido.
mk-filter-chip-group(padrão)Instâncias de mk-filter-chip.

Acessibilidade

O toggle usa aria-pressed para comunicar o estado de seleção. O botão de fechar requer closeLabel descritivo e único quando múltiplos chips aparecem no mesmo grupo — botões com o mesmo nome acessível violam WCAG 4.1.2.

O mk-filter-chip-group declara role="group" com aria-labelledby apontando para o rótulo visível, associando semanticamente os chips ao contexto do filtro.

On this page