UI Primitives
35 primitivos sobre Base UI, no Radix. Se instalan con el CLI de shadcn: npx shadcn@latest add @saastro/button.

Button Pro
Enhanced button with CVA variants, icon effects, shine, gooey, underline, and gradient animations.

Button
El botón base sobre Base UI. Variantes CVA (variant, size) y `render` en vez de `asChild`.

Badge
Etiqueta compacta con variantes CVA.

Separator
Separador horizontal o vertical, accesible.

Card
Tarjeta y sus partes (header, title, description, content, footer). Markup puro, sin dependencias.

Accordion
Acordeón sobre Base UI, con animación de altura por CSS.

Sheet
Panel lateral (drawer) sobre Base UI Dialog, con los cuatro lados.

Input
Campo de texto sobre Base UI, con los estados de foco e invalidez del sistema.

Label
Etiqueta de campo. La necesita `field`, y es markup puro.

Textarea
Área de texto multilínea.

Select
Desplegable sobre Base UI. Pasa `items` al Root: sin eso el trigger pinta el value crudo en vez de la etiqueta.

Checkbox
Casilla sobre Base UI.

Radio Group
Grupo de opciones excluyentes sobre Base UI.

Switch
Interruptor sobre Base UI.

Field
Envoltorio de campo: label, descripción y error. Es lo que consume @saastro/forms.

Form
Puente entre react-hook-form y los primitivos. FormField/FormControl.

Dialog
Modal sobre Base UI, con backdrop y cierre accesible.

Popover
Panel flotante anclado sobre Base UI.

Tooltip
Ayuda contextual sobre Base UI.

Scroll Area
Área con scroll y barra propia.

Navigation Menu
Menú de navegación con submenús, sobre Base UI.

Slider
Control de rango sobre Base UI. Con un thumb emite NÚMERO PLANO, no array.

Native Select
`<select>` nativo estilado. La opción sin JS cuando no hace falta un desplegable rico.

Input Group
Input con addons (prefijo, sufijo, botón).

Input OTP
Campo de código de un solo uso.

Calendar
Calendario sobre react-day-picker, con la navegación y los estilos del sistema.
Avatar
Imagen de persona con iniciales de reserva, sobre Base UI.

Skeleton
El hueco de lo que está cargando, con la forma que va a tener.

Progress
Barra de avance sobre Base UI. `value={null}` es indeterminado.

Alert
El aviso que ya está en la página, no el que interrumpe.

Table
Tabla nativa con su propio scroll horizontal.

Tabs
Pestañas sobre Base UI, con indicador deslizante.

Dropdown Menu
Menú desplegable sobre Base UI: items, checkbox, radio y submenús.

Context Menu
El menú del botón derecho, sobre Base UI.

Alert Dialog
El diálogo que exige respuesta: no se cierra con Escape ni pinchando fuera.

































