2d108c295a
Reescribe todos los componentes UI para usar Mantine v9 en lugar de shadcn/Tailwind. Elimina cn(), CVA, components.json, theme_provider custom y globals.css con Tailwind. Añade 25+ componentes nuevos (AppShell, AuthForm, DatePickerInput, Dropzone, etc.) y MantineProvider como wrapper estándar del sistema de temas. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
3.1 KiB
3.1 KiB
name, kind, lang, domain, version, purity, signature, description, tags, uses_functions, uses_types, returns, returns_optional, error_type, imports, output, tested, tests, test_file_path, file_path, props, emits, has_state, framework, variant
| name | kind | lang | domain | version | purity | signature | description | tags | uses_functions | uses_types | returns | returns_optional | error_type | imports | output | tested | tests | test_file_path | file_path | props | emits | has_state | framework | variant | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| multi_select | component | ts | ui | 1.0.0 | impure | MultiSelect(props: MultiSelectProps): JSX.Element | Selector múltiple con búsqueda, pills y límite de selecciones. Wrapper sobre Mantine MultiSelect. |
|
false |
|
Componente MultiSelect que renderiza dropdown con selección múltiple, búsqueda y pills | false | frontend/functions/ui/multi_select.tsx |
|
|
true | react |
|
Ejemplo
import { MultiSelect } from '@fn_library'
// Opciones simples
<MultiSelect
label="Frameworks favoritos"
placeholder="Elige uno o más"
data={['React', 'Vue', 'Angular', 'Svelte']}
/>
// Con búsqueda y clearable
<MultiSelect
label="Tecnologías"
placeholder="Busca y selecciona"
searchable
clearable
value={selected}
onChange={setSelected}
data={[
{ value: 'react', label: 'React' },
{ value: 'vue', label: 'Vue' },
{ value: 'ts', label: 'TypeScript' },
]}
/>
// Máximo de selecciones
<MultiSelect
label="Elige hasta 2"
placeholder="Máximo 2"
maxValues={2}
data={['Opción A', 'Opción B', 'Opción C', 'Opción D']}
/>
Notas
- Wrapper directo sobre
MultiSelectde@mantine/corev9. Todas las props de Mantine MultiSelect son válidas. - A diferencia de
Select,valueesstring[]yonChangerecibestring[]. - Las selecciones se muestran como pills dentro del input, eliminables con clic.
maxValueslimita cuántos items pueden seleccionarse — el dropdown bloquea más selecciones al alcanzar el límite.- Soporta
searchablepara filtrar opciones yclearablepara un botón de limpiar todo.