Instalación
npx logic2b@next add autocompleteUso
import { Autocomplete } from "@/components/ui/autocomplete"
const [value, setValue] = React.useState("")
<Autocomplete
options={["Next.js", "Vite", "Astro"]}
value={value}
onValueChange={setValue}
placeholder="Buscar framework..."
/>
La lista filtra lo que escribe el usuario mediante includes, sin distinguir
mayúsculas y minúsculas, pero el campo acepta cualquier texto. Esa es la
diferencia con un cuadro combinado de tipo
selector. Usa Autocomplete cuando las sugerencias sean orientativas, como en
una búsqueda o una entrada de etiquetas; usa Combobox cuando el valor deba
pertenecer a un conjunto cerrado.
Teclado
- ↓ / ↑ desplazan la sugerencia activa.
- Intro elige la sugerencia activa.
- Esc cierra la lista y conserva el texto escrito.
Playground interactivo
Edita las propiedades del componente y revisa el JSX exacto antes de copiarlo. La vista previa se carga solo cuando esta sección entra en pantalla.
<Autocomplete
options={["Accordion", "Button", "Dialog", "Tabs", "Tooltip"]}
defaultValue="Button"
placeholder="Find a component…"
aria-label="Component search"
/>Referencia de API
Generada a partir de las exportaciones públicas de TypeScript en src/ui/autocomplete.tsx. Las descripciones técnicas conservan el texto canónico del código fuente.
AutocompleteProps
Tipointerface AutocompleteProps extends Omit< React.ComponentProps<"input">, "value" | "defaultValue" | "onChange" > { /** The suggestion list, filtered against what the user types. */ options: string[] value?: string defaultValue?: string onValueChange?: (value: string) => void /** Shown when nothing matches. Default `"No results."`. */ emptyMessage?: string }Autocomplete
ComponenteA free-text input with a filtered suggestion list — the editable ARIA combobox pattern. Unlike a select-style combobox it accepts arbitrary text; the list just offers matches. Fully keyboard-driven (↑/↓ to move, Enter to pick, Esc to close) and dependency-free.
Props: AutocompleteProps| Propiedad | Tipo | Obligatoria | Valor predeterminado | Descripción |
|---|---|---|---|---|
options | string[] | Sí | — | The suggestion list, filtered against what the user types. |
value | string | No | — | — |
defaultValue | string | No | — | — |
onValueChange | (value: string) => void | No | — | — |
emptyMessage | string | No | "No results." | Shown when nothing matches. Default `"No results."`. |
Contrato de accesibilidad
Comportamiento legible por máquinas y responsabilidades de quien integra autocomplete. Los detalles normativos conservan el texto canónico del registro.
- Soporte
- Comportamiento implementado
- Patrón
- editable combobox
| Teclas | Comportamiento |
|---|---|
| ArrowUp ArrowDown | Move the active suggestion. |
| Enter | Choose the active suggestion. |
| Escape | Close the open surface and restore focus. |
Semántica incorporada
- Uses combobox/listbox/option semantics with aria-expanded, aria-controls and aria-activedescendant.
Responsabilidades de integración
- Provide a label and ensure arbitrary typed text is valid for the use case.