Saltar al contenido
El Muestrario

componente · @solu30/ui-kit/data-display

SearchInput

Campo de búsqueda con lupa y botón de limpiar, con demora opcional al avisar.

84 sitios de import en 8 de 15 verticales — un archivo que la importa cuenta una vez, monte una instancia o veinte.

  • TheCharterPanel
  • carlosmartinpavon
  • cmp-packages
  • dietaly
  • elliot
  • gestorsalon
  • luigi
  • raquetea

El componente, montado

Cargando el espécimen…

Cómo se usa

import { SearchInput } from '@solu30/ui-kit/data-display'

Props

7 props declaradas en los tipos de la versión instalada.
PropRequeridaTipoQué hace
valuesístring—
onChangesí(value: string) => void—
placeholderopcionalstring—
debounceopcionalnumber—
autoFocusopcionalboolean—
classNameopcionalstringClases para el `<input>`. OJO — es el input, NO el contenedor: el elemento que participa del layout del padre es el `<div>` raíz, y a ese hay que hablarle con `rootClassName`. Un `flex-1` o un `min-w-0` acá no hacen nada, porque el input ya es `w-full` dentro de una raíz que nunca los recibió. (Medido en gestorsalon el 2026-08-18: 12 call sites pasando layout por acá; ninguno llegaba al flex item.)
rootClassNameopcionalstringClases para el `<div>` raíz — ancho, `flex-1`, `min-w-0`, todo lo que define cómo el buscador se comporta como hijo de su contenedor. La raíz también es el bloque contenedor de la lupa y de la X de limpiar (las dos son `absolute` contra ella): si el input queda más angosto que la raíz, la X deja de alinearse con el borde del campo.

Ejemplo del paquete

// `onChange` recibe el STRING, no el evento. `debounce` retrasa el aviso, no el tipeo.
<SearchInput value={q} onChange={setQ} debounce={300} placeholder="Buscar cliente…" />

Del @example del JSDoc de @solu30/ui-kit, sin editar: son 65 de los 541 símbolos. La sangría y los renglones en blanco son los del paquete.