Saltar al contenido
Logic2BUI

Buscar en la documentación

Busca componentes y documentación

Nuevo
Menú

Entrada de etiquetas

Campo libre con varios valores representados como etiquetas eliminables; añade con Intro o coma y quita con Retroceso o el botón de cierre.

reacttailwind

Press Enter or comma to add, Backspace to remove.

Instalación

npx logic2b@next add tags-input

Uso

import { TagsInput } from "@/components/ui/tags-input"

const [tags, setTags] = React.useState<string[]>([])

<TagsInput
  value={tags}
  onValueChange={setTags}
  placeholder="Añadir una etiqueta…"
/>

Intro o coma confirman el borrador. El texto pegado y separado por comas se divide en etiquetas, Retroceso sobre un campo vacío elimina la última y perder el foco confirma cualquier texto pendiente. Los duplicados se ignoran.

Ejemplos

Máximo de etiquetas

Limita la lista con max: los valores pegados que excedan el máximo se descartan y el campo queda desactivado hasta que se elimine una etiqueta.

design

1/3 — the field locks when the limit is reached.

Accesibilidad

  • La parte editable es un <input> real. Dale una etiqueta con <Label htmlFor> —se reenvía el id— o mediante aria-label.
  • El botón de cierre de cada etiqueta expone aria-label="Remove <tag>".
  • Retroceso sobre un campo vacío elimina la última etiqueta, por lo que todo el control funciona sin puntero.

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.

JSX generado
<TagsInput
  defaultValue={["registry", "accessible"]}
  placeholder="Add a tag…"
  max={5}
  aria-label="Component tags"
 />

Referencia de API

Generada a partir de las exportaciones públicas de TypeScript en src/ui/tags-input.tsx. Las descripciones técnicas conservan el texto canónico del código fuente.

Ver JSON

TagsInput

Componente

Tags input — free-form multi-value entry rendered as removable chips. Enter or comma commits the draft, paste splits on commas, Backspace on an empty draft removes the last tag. Duplicates are ignored; `max` caps the list.

Props: Omit<React.ComponentProps<"div">, "defaultValue" | "onChange"> & { value?: string[] defaultValue?: string[] onValueChange?: (value: string[]) => void placeholder?: string max?: number disabled?: boolean }
PropiedadTipoObligatoriaValor predeterminadoDescripción
valuestring[]No——
defaultValuestring[]No——
onValueChange(value: string[]) => voidNo——
placeholderstringNo——
maxnumberNo——
disabledbooleanNo——

Contrato de accesibilidad

Comportamiento legible por máquinas y responsabilidades de quien integra tags-input. Los detalles normativos conservan el texto canónico del registro.

Ver JSON
Soporte
Comportamiento implementado
Patrón
multi-value textbox
HTMLInputElement
Interacciones de teclado para tags-input
TeclasComportamiento
Enter ,Commit the current text as a tag.
BackspaceRemove the last tag when the text field is empty.

Semántica incorporada

  • The editable input receives id/aria-label/aria-labelledby; removal buttons name their tag.

Responsabilidades de integración

  • Provide a visible label and announce additions/removals in application context when that feedback is important.