Saltar al contenido
El Muestrario

componente · @solu30/ui-kit/input

MultiSelect

Selector de varias opciones con chips en el disparador, búsqueda y acciones de elegir todo y limpiar.

Seguir leyendo — 2 párrafos más

Multi-select component with chips display, search, and dropdown filtering. Uses CSS variables for theming: --ui-bg-raised, --ui-accent, --ui-border, --ui-content-primary, --ui-error.

Opt-in features (no cambian el render por default):

  • summaryAfter: colapsa las chips del trigger a un resumen ("N selected") pasado ese umbral.
  • showSelectAll: header en el panel con contador + acciones "Select all" (sobre las opciones filtradas) / "Clear".
  • SelectOption.group: agrupa las opciones bajo headers cuando alguna opción filtrada trae group.

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

  • cmp-packages
  • gestorsalon
  • luigi
  • raquetea

El componente, montado

Cargando el espécimen…

Cómo se usa

import { MultiSelect } from '@solu30/ui-kit/input'

Props

18 props declaradas en los tipos de la versión instalada.
PropRequeridaTipoQué hace
optionssíSelectOption[]Available options
valuesístring[]Array of selected option IDs
onChangesí(selectedIds: string[]) => voidCallback when selections change
placeholderopcionalstringPlaceholder text when nothing is selected
labelopcionalstringLabel for the field
erroropcionalstringError message to display
renderOptionopcional(option: SelectOption) => React__default.ReactNodeCustom option renderer
renderSelectedopcional(option: SelectOption) => React__default.ReactNodeCustom selected chip renderer
classNameopcionalstringAdditional CSS classes for the container
optionsContainerClassNameopcionalstringAdditional CSS classes for the dropdown
disabledopcionalbooleanWhether the component is disabled
searchPlaceholderopcionalstringPlaceholder for the search input
noResultsTextopcionalstringText shown when no options match
summaryAfteropcionalnumberColapsa las chips del trigger a un único resumen cuando value.length > summaryAfter. Default: sin colapso (comportamiento actual).
summaryLabelopcional(count: number) => stringTexto del resumen del trigger (y del contador del header si showSelectAll). Default: (n) => `${n} selected`
showSelectAllopcionalbooleanMuestra un header de acciones en el panel: contador + "Elegir todo (filtradas)" + "Limpiar". Default: false.
selectAllLabelopcionalstringLabel de la acción seleccionar-todo. Default: "Select all"
clearLabelopcionalstringLabel de la acción limpiar. Default: "Clear"

Ejemplo del paquete

<MultiSelect
  label="Tags"
  options={[
    { id: 'react', name: 'React' },
    { id: 'vue', name: 'Vue' },
  ]}
  value={selectedTags}
  onChange={setSelectedTags}
  placeholder="Select tags..."
/>

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.