Componente

Combobox

Um select pesquisável. Alimente-o com opções ou projete itens, escolha um ou vários com chips, filtre ao digitar, permita entradas customizadas e vista-o com tamanhos, status e estados.

Único

Value: birch

import { ChangeDetectionStrategy, Component, signal } from '@angular/core';

import { HbComboboxImports, type HbComboboxOption } from '@herbst/ui';

@Component({
  selector: 'hb-demo-combobox-single',
  imports: [HbComboboxImports],
  template: `
    <div class="flex flex-col gap-2">
      <div class="w-72 max-w-full">
        <hb-combobox
          hbPlaceholder="Search a leaf…"
          hbDropdown
          hbClearable
          hbFluid
          [hbOptions]="options"
          [hbValue]="value()"
          (hbValueChange)="value.set($event)"
        ></hb-combobox>
      </div>

      <p class="font-mono text-[12px] text-muted-foreground">Value: {{ value() ?? '—' }}</p>
    </div>
  `,
  changeDetection: ChangeDetectionStrategy.OnPush,
})
export class HbDemoComboboxSingleComponent {
  protected readonly value = signal<unknown>('birch');

  protected readonly options: HbComboboxOption[] = [
    { value: 'oak', label: 'Oak' },
    { value: 'beech', label: 'Beech' },
    { value: 'maple', label: 'Maple' },
    { value: 'birch', label: 'Birch' },
    { value: 'chestnut', label: 'Chestnut' },
    { value: 'willow', label: 'Willow' },
  ];
}

Múltiplo e chips

BirchOak

Grupos, rótulos e itens

Filtragem e valores customizados

Tamanhos, status e estados

Referência de API

hb-combobox — value & data

PropriedadeDescriçãoTipoPadrão
[(hbValue)] Valor selecionado, ou um array quando hbMultiple está ativo. unknown null
[hbOptions] Opções como dados: { value, label, disabled? }[]. Alternativa aos itens projetados. HbComboboxOption[] []
[hbMultiple] Permite selecionar vários valores como chips. boolean false
[hbCompareWith] Função de igualdade usada para comparar valores. (a, b) => boolean a === b
[hbSelectionLimit] / [hbMaxChips] Máximo de valores e quantos chips aparecem antes de um “+N”. number 0 / 2
[hbUnique] Impede valores duplicados no modo múltiplo. boolean true

hb-combobox — search & behaviour

PropriedadeDescriçãoTipoPadrão
[hbPlaceholder] Placeholder do campo de busca. string 'Search…'
[hbFilterMatchMode] Como a busca digitada casa com os rótulos das opções. 'contains' | 'startsWith' | 'equals' 'contains'
[hbAllowCustom] Permite ao usuário confirmar um valor fora da lista. boolean false
[hbForceSelection] Limpa o campo a menos que uma opção real seja escolhida. boolean false
[hbMinLength] / [hbDebounce] Mínimo de caracteres antes de filtrar, e debounce em ms. number 0 / 0
[hbDropdown] / [hbOpenOnFocus] / [hbAutoHighlight] Mostra o caret, abre ao focar e pré-destaca o primeiro resultado. boolean false / true / true
[hbLoading] / [hbLoadingText] / [hbEmptyMessage] Estado de carregamento e seu texto, mais a mensagem de sem resultados. boolean / string false / 'Loading…' / 'No results.'
[hbVirtualScroll] + item/height Virtualiza listas longas (hbVirtualItemSize, hbVirtualHeight). boolean / number false / 36 / 280

hb-combobox — appearance, state & events

PropriedadeDescriçãoTipoPadrão
[hbSize] Controla altura e escala de texto. 'xs' | 'sm' | 'md' | 'lg' | 'xl' 'md'
[hbStatus] Cor de validação do controle. 'default' | 'success' | 'warning' | 'error' 'default'
[hbFluid] / [hbBorderless] / [hbRing] Largura total, remover a borda, ou alternar o anel de foco. boolean false / false / true
[hbClearable] Mostra um botão para limpar a seleção. boolean false
[hbDisabled] / [hbReadonly] / [hbInvalid] / [hbRequired] Estados padrão de controle de formulário. boolean false
(hbChange) / (hbOpenChange) / (hbSearch) Emite na mudança de valor, abertura/fechamento do painel, e mudança do texto de busca. unknown / boolean / string

Content parts

PropriedadeDescriçãoTipoPadrão
hb-combobox-item [hbValue] [hbLabel] [hbDisabled] Uma opção projetada; hbLabel alimenta o filtro. slot
hb-combobox-group / hb-combobox-label / hb-combobox-separator Agrupa itens sob um rótulo, com divisores entre grupos. slot