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
| Propriedade | Descrição | Tipo | Padrã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
| Propriedade | Descrição | Tipo | Padrã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
| Propriedade | Descrição | Tipo | Padrã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
| Propriedade | Descrição | Tipo | Padrã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 | — |