Saltar al contenido
El Muestrario

@solu30/ui-kit · v7.0.0 · 174 componentes · 8 grupos

El Muestrario

Todo lo que el paquete instalado exporta como pieza montable. Elegí una y su ficha la monta de verdad, con sus props y su ruta de import.

174 componentes montables

01

Formularios

Lo que el usuario completa para dar un dato: campos, selects, calendarios y edición en línea. Acá vive el piso de safety: validación y error no se simplifican en ningún nivel de minimalidad.

Entrada

@solu30/ui-kit/input65 de 113 exports, en este grupo
Salón abierto hoy
ButtonBotón con once variantes, cinco tamaños, estado de carga e íconos a izquierda y derecha.8 props2.461 importsIconButtonBotón de sólo ícono con tooltip, en cuatro variantes y tres tamaños.4 props461 importsInputCampo de texto crudo con prefijo y sufijo adentro; sin etiqueta, sin error y sin texto de ayuda.3 props457 importsTextAreaCampo de texto multilínea con etiqueta, error, ayuda y alto que puede crecer con el contenido.7 props373 importsTextInputCampo de texto con etiqueta flotante, error, ayuda, íconos a los costados y tres tamaños.13 props367 importsSelectSelector de una opción que suma buscador a partir de cierta cantidad de opciones, con limpieza opcional.17 props325 importsLabelEtiqueta de un campo de formulario, con indicador visual de obligatorio.1 prop251 importsSelectRootRoot component that manages select state.5 props167 importsCollapsibleSectionSección plegable ya armada, con título, ícono o número, badge y acciones en el encabezado.19 props161 importsSwitchInterruptor de encendido y apagado, sin etiqueta propia y con estado indeterminado.11 props137 importsCheckboxCasilla con etiqueta, descripción y estado de carga, que se marca al instante y revierte si el guardado falla.11 props103 importsCurrencyInputCampo de importe que formatea con separadores mientras se escribe y devuelve el número crudo.10 props81 importsSeparatorLínea divisoria horizontal o vertical, decorativa o con semántica de separador.2 props69 importsSwitchWithLabelInterruptor con etiqueta, descripción y estado de carga, en cuatro colores semánticos.9 props68 importsCollapsiblePrimitivo de contenido plegable —raíz, disparador y contenido— sin encabezado ni estilo propios.6 props32 importsEditableFieldFila de etiqueta y valor que se vuelve campo al tocarla, con seis tipos de entrada distintos.10 props20 importsChipToggleChip de encendido y apagado con ícono y descripción, que se marca al instante y revierte si falla.9 props19 importsComboboxSelector con búsqueda que además permite crear una opción nueva con el texto que se tipeó.15 props19 importsMultiSelectSelector de varias opciones con chips en el disparador, búsqueda y acciones de elegir todo y limpiar.18 props19 importsCalendarCalendario mensual para elegir fechas, con rangos de color pintados sobre los días.3 props17 importsRadioGroupRootLa raíz del grupo de opciones excluyentes, sobre Radix: una grilla con `gap-2`.4 props16 importsChipPillPíldora de selección a puro clic, más liviana que ChipToggle: sin estado de carga, sin ícono, sin async.5 props15 importsSliderDeslizador de un valor o de un rango con dos manijas, con etiquetas de mínimo y máximo.15 props15 importsFieldEnvoltura de campo con etiqueta, descripción, error, advertencia y orientación vertical u horizontal.10 props14 importsChipToggleGroupGrilla responsive que reparte varios ChipToggle en columnas, con título y descripción del grupo.5 props12 importsCopyButtonBotón que copia un texto al portapapeles y cambia su etiqueta al confirmarlo.4 props10 importsOptionCardTarjeta de opción con ícono, título y descripción, que se marca al elegirla.7 props10 importsQuantityStepperControl de cantidad con menos y más, y número tipeable cuando el rango útil es de cientos.11 props10 importsTimePickerSelector de hora en pasos de minutos, con utilidades de duración exportadas al lado.7 props10 importsColorPickerGrilla de muestras de color para elegir una, con la semántica de teclado de un grupo de radios.6 props9 importsDropZoneZona para soltar archivos o abrir el explorador, con filtro por tipo y por tamaño máximo.10 props8 importsFilterChipChip de filtro activo con una cruz para sacarlo, en cuatro colores.5 props7 importsMultiLangInputCampo de texto con un valor por idioma, para el contenido que se publica traducido.10 props7 importsTagInputCampo que arma una lista de etiquetas: se escribe, se agrega y se sacan de a una.7 props7 importsSimpleFormFieldEnvoltura mínima de campo con etiqueta, obligatorio, error y ayuda; sin advertencia ni orientación, que trae Field.6 importsInlineEditTextTexto que se edita en el lugar, con un botón de lápiz visible como disparador de la edición.5 props5 importsInlineEditTextareaTexto largo que se edita en el lugar, con un llamado a completarlo cuando está vacío.5 props5 importsPeriodSelectorPíldoras de período —hoy, semana, mes, trimestre, año— con rango a medida opcional.7 props5 importsWizardStepHeaderEncabezado de un paso de asistente, con ícono, título y subtítulo.4 props5 importsCellPriceCampo de precio para editar dentro de una celda de tabla, con formato de moneda al soltar el foco.8 props4 importsEmojiPickerPanel de emojis con búsqueda y tono de piel, pensado para componer adentro de un Popover.9 props4 importsImageUploadSubida de imágenes con grilla de miniaturas y borrado, agnóstica de dónde se guarden los archivos.11 props4 importsInlineNumberFieldCampo numérico para editar dentro de una celda de tabla, con sufijo de unidad opcional.6 props4 importsQuantityUnitFieldCampo de cantidad con selector de unidad al lado, restringible a peso, volumen o unidades sueltas.11 props4 importsStarRatingPuntuación de cinco estrellas interactiva, con etiqueta de categoría configurable por idioma.8 props4 importsAccordionListLista de secciones plegables controlada desde afuera, con indicador de completitud por ítem.7 props3 importsDateRangePickerSelector de rango de fechas con dos meses a la vista y atajos para los rangos más usados.8 props3 importsInlineMarkupFieldCampo de porcentaje de recargo que devuelve el precio nuevo, calculado sobre el costo unitario.5 props3 importsInlineTextValor de texto que se vuelve campo al tocarlo, con guardado asincrónico y modo multilínea.7 props3 importsQuizOptionButtonBotón de opción de examen, con su letra a la izquierda y estado de elegido.6 props3 importsArrayItemsEditorEditor de una lista de objetos: una tarjeta por ítem, con campos configurables y alta y baja.6 props2 importsClickableRowFila de ancho completo que es un botón entero, para listados donde se toca cualquier parte de la fila.1 prop2 importsInlineColorFila de color que al tocarla abre un selector con campo hexadecimal, y confirma con Enter.4 props2 importsInlineTextFieldCampo de texto para editar dentro de una celda de tabla, opcionalmente en tipografía monoespaciada.6 props2 importsRadioGroupGrupo de opciones excluyentes con navegación por flechas, construido sobre Radix.2 importsScaleRatingEscala numérica para puntuar, con mínimo y máximo configurables.6 props2 importsSeasonRangeCalendarCalendario de temporadas que pinta rangos de colores y permite elegir un desde-hasta, con año o sin año.17 props2 importsStarRatingDisplayLas cinco estrellas sólo para mostrar: sin clic, sin animación y sin etiqueta.2 props2 importsWizardNavFooterPie de asistente con los botones de atrás y siguiente, y el de envío en el último paso.8 props2 importsWizardProgressBarBarra de progreso de un asistente, que muestra el paso actual sobre el total.4 props2 importsBusinessHoursCardTarjeta que muestra los horarios de atención como pares de días y horas.4 props1 importContactFormFormulario de contacto que postea a un endpoint, con Turnstile y campo trampa opcionales.8 props1 importFieldGroupContenedor que reparte varios campos en columnas responsive, con título y descripción de sección.6 props1 importFilterableSectionSección plegable que se muestra, se expande o se esconde según el término de búsqueda que reciba.6 props1 importUnstyledButtonBotón sin ningún estilo de fábrica, como base de cualquier superficie clickeable propia.1 import
02

Contenido

Piezas que muestran algo sin capturar un dato: tarjetas, métricas, estados vacíos, avatares y líneas de tiempo.

Presentación

@solu30/ui-kit/display35 de 149 exports, en este grupo

Ocupación

87%

▲+12%

vs. mes anterior

ActivePending+12.4%-3.1%
BadgeEtiqueta corta de estado o categoría, con trece colores, cuatro tamaños y variantes de relleno.9 props1.207 importsCardContenedor de superficie con padding, borde y elevación configurables; la base de casi todos los bloques.4 props811 importsSpinnerIndicador de carga que gira, en cuatro tamaños.2 props729 importsSkeletonBloque animado que ocupa el lugar del contenido mientras carga, en cuatro formas y con varias líneas.5 props667 importsEmptyStateEstado vacío con ícono, título, mensaje y hasta dos botones de acción, en tres variantes de marco.10 props576 importsAlertBloque de aviso con título, ícono y cierre opcional, en cinco colores semánticos.8 props300 importsProgressBarBarra de progreso de 0 a 100; omitir el valor la pasa a indeterminada, que dice «en curso» sin cuánto falta.7 props67 importsAvatarFoto de perfil que cae a iniciales si no carga, y a un ícono de persona o empresa si tampoco hay nombre.7 props53 importsStatusBadgeBadge que resuelve color y texto desde un mapa de estados, con nueve estados de fábrica.7 props46 importsAvatarInitialsCírculo con las iniciales de un nombre y un color derivado de él, sin imagen ni caída.3 props32 importsPageHeaderSkeletonEsqueleto de carga con la forma de un encabezado de página: título, descripción y botones de acción.21 importsMetricCardTarjeta de métrica con valor, texto secundario y tendencia, teñida por un color semántico cerrado.9 props20 importsSkeletonFormEsqueleto de carga con la forma de un formulario, con la cantidad de campos que se le pida.15 importsCapacityBarBarra de consumo sobre un total que cambia de color por umbrales, con llenarla como bueno o como malo.9 props13 importsGlowCardTarjeta con un resplandor de color de fondo, en cuatro tonos fijos.1 prop12 importsSkeletonListItemEsqueleto de carga con la forma de un ítem de lista.12 importsStatCardTarjeta de estadística con ícono en recuadro, valor y tendencia; los colores del ícono se pasan sueltos.8 props12 importsAnimatedCounterNúmero que cuenta desde cero hasta su valor al aparecer; para cifras que cambian en vivo está SlidingNumber.5 props11 importsSkeletonCollapsibleEsqueleto de carga con la forma de una sección plegable y sus filas.9 importsActivityTimelineLínea de tiempo de auditoría, con el actor, la fecha y qué campos cambió cada evento.8 props7 importsCodeBlockBloque de código con resaltado de sintaxis para HTML y JavaScript, sin dependencias externas.2 props7 importsSparklineGráfico mínimo de una serie, como línea o como barras, para meter adentro de una tarjeta.16 props7 importsStatusDotPunto de color que indica presencia —activo, inactivo, ocupado, error— con pulso opcional.6 props6 importsSkeletonTableRowEsqueleto de carga con la forma de una fila de tabla, con la cantidad de columnas que se le pida.4 importsTotalsBreakdownDesglose de totales por concepto, con los importes formateados en una moneda.3 props4 importsActionCardTarjeta que además es un botón: ícono, título, subtítulo y badge, en cinco colores semánticos.13 props3 importsInlineStatCifra con su etiqueta en un solo renglón, con plural automático, para meter dentro de otra línea.5 props3 importsMetricRowFila de ancho completo con la etiqueta contra un borde y el valor contra el otro, con tendencia opcional.6 props3 importsAlertsLos cinco colores de Alert ya fijados como atajos: Alerts.Info, Alerts.Success, Alerts.Error, Alerts.Warning y Alerts.Special.1 importAttributeEditorCollapsibleEl mismo editor de atributos con modo resumido: una fila con lo ya configurado y un botón de editar.7 props1 importInfoCardBloque de mensaje en cuatro tonos semánticos, con cierre opcional; a diferencia de Alert, no tiene título propio.5 props1 importProgressRingAnillo de progreso de 0 a 100 con contenido centrado adentro, sea un porcentaje o un ícono.6 props1 importVideoBackgroundVideo de fondo a sangre completa —YouTube, Vimeo o mp4— con imagen de reemplazo en móvil.4 props1 importAttributeEditorEditor de atributos y sus valores posibles —Color: rojo, verde, azul— con alta y baja de cada uno.4 props0 importsTrendBadgeBadge de variación con flecha, que se pinta según si el número subir sea bueno o malo.6 props0 imports
03

Overlays y avisos

Lo que se dibuja encima de la pantalla: diálogos, hojas, popovers y menús que hay que cerrar, y avisos que se van solos. Todo lo que interrumpe devuelve el foco al cerrarse.

Respuesta

@solu30/ui-kit/feedback20 de 65 exports se montan
Margen por combo
ModalOverlay configurado por props, con encabezado, pie y cinco posiciones: centro, lateral, inferior o pantalla completa.22 props336 importsConfirmDialogDiálogo de confirmación ya armado, con título, descripción y dos botones, en variante neutra o de peligro.11 props214 importsSheetRootRoot provider for sheet composition.3 props144 importsSheetPanel que entra deslizándose desde un borde de la pantalla, en seis anchos.11 props127 importsDialogDiálogo centrado que se arma por composición: disparador, contenido, encabezado, pie y cierre.5 props86 importsPopoverPanel flotante anclado a un disparador, que se cierra al hacer clic afuera.4 props79 importsDropdownMenuMenú que se despliega desde un disparador, con ítems, separadores e ítems de tilde.4 props77 importsTooltipRootEl que tiene el estado del tooltip y lo posiciona: envuelve al disparador y al contenido.4 props48 importsAlertDialogDiálogo que no se cierra con Escape ni con clic afuera: obliga a elegir una de sus dos acciones.3 props36 importsInfoTooltipÍcono de ayuda que muestra una aclaración al pasar por encima; a diferencia de Tooltip, no envuelve nada.3 props30 importsToastProviderSe monta una sola vez en la raíz de la app y dibuja los toasts que dispara la API toast.2 props25 importsTooltipBurbuja de ayuda que aparece al apuntar o enfocar el elemento que envuelve.6 props22 importsCommandRaíz de una lista de comandos que se filtra al escribir, para armar buscadores manejados con el teclado.4 props11 importsSideSheetEl panel lateral estándar del ecosistema: siempre desde la derecha y a 700px, con título y pie.6 props11 importsCommandInputCampo de búsqueda de una lista de comandos; va adentro de Command o de CommandDialog.9 props7 importsCommandDialogLa lista de comandos montada dentro de un diálogo, para armarla pieza por pieza.4 props1 importFilePreviewModalVista previa de un archivo —imagen, PDF o descarga— con acciones de bajar y de abrir aparte.8 props1 importMicroToastPíldora chica de aviso que aparece y se va, con la visibilidad controlada por el host.2 props1 importCommandPalettePaleta de comandos ya armada a partir de grupos de ítems, con atajos y navegación por teclado.6 props0 importsGuidedTourVisita guiada por pasos (coachmarks): resalta un elemento anclado por `[data-tour="clave"]`, muestra un cartel con título y texto, y deja avanzar, retroceder o cerrar.11 props0 imports
04

Datos

Tabla con filtros por columna, encabezados ordenables y búsqueda con debounce: la estructura para leer datos, no para decorarlos.

06

Layout y estructura

Lo que sostiene una pantalla en vez de ocuparla: andamiaje, ritmo y marcos. Sueltas no significan nada, y por eso su ficha las monta adentro de un panel.

Presentación

@solu30/ui-kit/display12 de 149 exports, en este grupo
InlineFila horizontal que centra y envuelve a sus hijos; es Stack en horizontal con esos defaults.1 prop33 importsSectionCardTarjeta de sección con encabezado, plegado opcional y contador de errores en el título.12 props30 importsKPICardGridGrilla de tarjetas de indicador con ícono, valor, color semántico y sparkline opcional.5 props19 importsSectionHeaderEncabezado de sección con ícono, título, badge y descripción a la izquierda, y una acción a la derecha.9 props17 importsInfoSectionLista de pares etiqueta y valor en una o dos columnas, con enlaces de mail, teléfono y botón de copiar.3 props12 importsSectionEyebrowLínea corta que va arriba del título de una sección, como badge o como texto suelto.3 props9 importsStackContenedor flex que apila a sus hijos en vertical u horizontal, con el espaciado tomado de tokens.5 props5 importsEntityDetailsPanelPanel de detalle de una entidad, con secciones plegables, acciones y estados de carga y de error.13 props3 importsPhoneFrameMarco de teléfono, con bisel, notch y barra inferior, para envolver la captura de una pantalla móvil.3 props3 importsBrowserFrameMarco de navegador de escritorio, con semáforo y barra de URL, para envolver la captura de una pantalla.6 props2 importsCasosSectionTemplateSección de casos de uso para landings: carrusel de tarjetas con mockup, problema y solución.5 props1 importGenericDashboardMockupDibujo estático de un panel de control, usado como relleno dentro de los marcos de mockup.0 imports
07

Movimiento

El movimiento que acompaña a una pantalla: transiciones, contadores animados y las piezas portadas de motion-primitives.

Movimiento

@solu30/ui-kit/animation5 de 7 exports se montan
$1.284.500
Leyendo el contrato…Buscando cláusulas…Redactando el resumen…Cerrando el presupuesto…
08

Utilidades

Infraestructura sin markup propio: lógica y formateo que otras piezas consumen. El listado suma acá las 133 piezas de comportamiento (hooks) y formateo (utils) que el kit publica sin ficha montable — no es un solo hook suelto.

Comportamiento

@solu30/ui-kit/hooks58 exports
useIsMobile() · useIsTablet() · useIsDesktop()detectando…angostá la ventana y cambia solo

Sin markup propio: se importan como función, así que no hay ficha que montar. Ver la familia entera.

Utilidades

@solu30/ui-kit/utils76 exports
formatCurrency(1500, 'ARS', 'es-AR', 0)$ 1.500
formatDurationMinutes(135)2h 15min
truncate('Salón Los Aromos — quinta', 18)Salón Los Aromos …

Sin markup propio: se importan como función, así que no hay ficha que montar. Ver la familia entera.