FesaComponents
Más módulos

UI

Las 28 primitivas shadcn que sostienen a los formularios, más los extras FESA.

import { Button, Input, Dialog, Combobox, PasswordInput } from "@fesa/components/ui";

El set de primitivas contra el que están escritos los formularios (y disponible para las apps que quieran consumirlo directamente — sobre todo los satélites que hoy duplican todo el set).

Primitivas incluidas

accordion · avatar · badge · button · calendar · checkbox · collapsible · command · dialog · field · form · hover-card · input · input-otp · label · popover · radio-group · scroll-area · select · separator · skeleton · slider · switch · tabs · textarea · toggle · toggle-group

Base Radix (importado por paquete individual, no el bundle radix-ui — ver nota técnica abajo) + Tailwind v4 con los tokens shadcn de la app consumidora: la librería hereda tu tema, claro y oscuro, sin configurar nada.

Extras FESA

PasswordInput

Input de contraseña con toggle de visibilidad; aria-labels en español por props:

<PasswordInput showPasswordLabel="Mostrar contraseña" hidePasswordLabel="Ocultar contraseña" />

Combobox

Combobox completo con chips, búsqueda y clear.

SearchableCombobox

Búsqueda async contra una server action con debounce y paginación — la base de FormSearchableCombobox.

Nota técnica: radix por paquete

La librería importa @radix-ui/react-* individuales, nunca el meta-paquete radix-ui: el bundle anida sus propias copias de cada primitiva y turbopack en dev falla al instanciar los duplicados. Si tu app usa el meta-paquete para SUS componentes no hay conflicto — pero no mezcles los dos estilos dentro de la librería.

Convivencia con el shadcn de tu app

Tu components/ui local sigue siendo tuyo para tus pantallas. Estas primitivas existen para que los módulos de la librería sean autocontenidos; consumirlas directamente es opcional.

En esta pagina