Navegar componentes
← Componentes

BaseTypeahead

MiscExemplo
Motor de combobox sem estilo que fornece input, busca, navegação por teclado e dropdown. Sem div wrapper, sem estilo de borda, sem renderização de tokens. Usado por Typeahead e Tokenizer para composições customizadas.
Importação
import {BaseTypeahead} from '@pharos-ds/core/BaseTypeahead';

Exemplos

Área interativa

size
hasEntriesOnFocus
isDisabled
Código
import {BaseTypeahead, createStaticSource} from '@pharos-ds/core/Typeahead';

<BaseTypeahead
  size="md"
  hasEntriesOnFocus={false}
  isDisabled={false}
 />

Boas práticas

  • Faça: Use Typeahead ou Tokenizer para campos padrão; eles envolvem BaseTypeahead com a div wrapper, estilo de borda e renderização de tokens que ele intencionalmente omite.
  • Faça: Forneça sua própria div wrapper com borda e layout ao compor diretamente, já que BaseTypeahead não renderiza chrome visual próprio.
  • Faça: Passe anchorRef apontando para seu wrapper, para que o dropdown se posicione em relação ao chrome customizado do input, não apenas ao elemento input nu.
  • Evite: Espere uma div wrapper, borda ou renderização de tokens. BaseTypeahead é apenas um motor; todo o chrome visual é responsabilidade de quem chama.
  • Evite: Use BaseTypeahead quando Typeahead ou Tokenizer bastariam; o trabalho extra de wrapper e estilo só se justifica para composições verdadeiramente customizadas.

Props

PropTipoPadrãoDescrição
searchSource *SearchSource<T>Fonte de dados que fornece métodos de busca e bootstrap.
value *T | nullItem atualmente selecionado.
onChange *(item: T | null) => voidChamado quando a seleção muda.
renderItem(item: T) => ReactNodeFunção de renderização customizada para itens do dropdown.
placeholderstring'Search...'Texto placeholder do input.
hasEntriesOnFocusbooleanfalseMostra resultados de bootstrap ao focar, antes de digitar.
maxMenuItemsnumber10Número máximo de itens do dropdown a exibir.
emptySearchResultsTextstring'No results found'Texto exibido quando a busca não retorna resultados.
isDisabledbooleanfalseSe o input está desabilitado.
hasAutoFocusbooleanfalseFoca automaticamente o input ao montar.
debounceMsnumber150Atraso de debounce em ms antes de disparar a busca. Defina 0 para fontes síncronas.
anchorRefRefObject<HTMLElement | null>Ref para o elemento âncora do posicionamento do dropdown. Se não fornecida, o próprio input é usado.
inputXStyleStyleXStylesEstilos StyleX adicionais para o elemento input.
onKeyDown(e: React.KeyboardEvent<HTMLInputElement>) => voidHandler adicional de keydown chamado antes da navegação interna por teclado. Chame e.preventDefault() para pular o tratamento interno.
onChangeQuery(query: string) => voidCallback disparado quando o texto da query de busca muda.
onOpenChange(isOpen: boolean) => voidCallback quando o dropdown abre ou fecha.
inputIdstringID do elemento input (para associação com label).
ariaDescribedBystringIDs adicionais de aria-describedby.
Pacote: @pharos-ds/core · Import: @pharos-ds/core/BaseTypeahead
BaseTypeahead · Pharos