MultiSelect
Componente para selección múltiple con opciones personalizables y soporte para animaciones

Uso
Ejemplo de Implementación
A continuación, se muestra cómo puedes importar y utilizar el componente MultiSelect en una página o componente de Vue 3.
Ejemplo en un Formulario
El siguiente ejemplo muestra cómo integrar el componente MultiSelect dentro de un formulario con validación:
Props
| Prop | Tipo | Descripción | Requerido | Valor por defecto |
|---|---|---|---|---|
| options | array | Array de objetos con estructura { label: string, value: string } | Sí | - |
| modelValue | array | Array de strings con los valores seleccionados | No | [] |
| placeholder | string | Texto que se muestra cuando no hay elementos seleccionados | No | - |
| animation | number | Duración de la animación en segundos | No | - |
| maxCount | number | Número máximo de elementos a mostrar antes de agrupar | No | 3 |
| modalPopover | boolean | Determina si el popover debe comportarse como modal | No | false |
| asChild | boolean | Determina si el componente debe renderizarse como hijo | No | false |
| className | string | Clases CSS adicionales para el componente | No | - |
| variant | string | Variante de estilo ('default', 'secondary', 'destructive', 'inverted') | No | 'default' |
Eventos Emitidos
| Evento | Descripción | Datos emitidos |
|---|---|---|
| update:modelValue | Emitido cuando cambia la selección para actualizar el v-model | Array de valores seleccionados |
| select | Emitido cuando el usuario selecciona o deselecciona una opción | Array de valores seleccionados |
Comportamiento
- Selección Múltiple: Permite seleccionar varias opciones que se muestran como badges.
- Búsqueda: Incluye un campo de búsqueda para filtrar las opciones disponibles.
- Animaciones: Soporta animaciones para los elementos seleccionados mediante la prop
animation. - Límite de Visualización: Muestra un número limitado de elementos (definido por
maxCount) y agrupa el resto bajo un indicador "+X más". - Selección Rápida: Incluye opciones para seleccionar o deseleccionar todas las opciones con un solo clic.
- Personalización Visual: Soporta diferentes variantes visuales a través de la prop
variant.
Funcionalidades Adicionales
- Teclado: Soporta navegación por teclado y eliminación del último elemento seleccionado con la tecla Backspace.
- Limpieza: Incluye botones para eliminar selecciones individuales o limpiar todas las selecciones.
- Retroalimentación Visual: Los elementos seleccionados se muestran claramente con un estilo diferenciado.
Notas
- El componente utiliza
PopoveryCommandde tu biblioteca de UI para la interfaz de selección. - Para un rendimiento óptimo, se recomienda limitar la cantidad de opciones a menos de 5 elementos.
- Las animaciones son opcionales y pueden desactivarse no proporcionando la prop
animation.