Saltar al contenido
El Muestrario

componente · @solu30/ui-kit/input

Checkbox

Casilla con etiqueta, descripción y estado de carga, que se marca al instante y revierte si el guardado falla.

Seguir leyendo — 2 párrafos más

Accessible checkbox component with custom SVG rendering, label support, async/optimistic onChange, icon slot, and loading state.

Uses CSS variables for theming:

  • --ui-accent for checked state background/border
  • --ui-border for unchecked border
  • --ui-content-primary for label text
  • --ui-content-secondary for help text

103 sitios de import en 10 de 15 verticales — un archivo que la importa cuenta una vez, monte una instancia o veinte.

  • TheCharterPanel
  • carlosmartinpavon
  • cmp-packages
  • dietaly
  • elliot
  • gestorsalon
  • luigi
  • prepchat
  • raquetea
  • zentrya

El componente, montado

Cargando el espécimen…

Éste es el conjunto completo. Abajo, los mismos casos por separado, cada uno con su código.

Cómo se usa

import { Checkbox, CheckboxGroup } from '@solu30/ui-kit/input'
<Checkbox label="Confirmar la seña" checked={confirmada} onChange={setConfirmada} />

Anatomía

Las partes que componen Checkbox se importan del mismo subpath. Sueltas no significan nada: se montan siempre dentro de su padre.

Checkbox
└── CheckboxGroup

Props

11 props declaradas en los tipos de la versión instalada.
PropRequeridaTipoQué hace
checkedsíbooleanWhether the checkbox is checked
onChangeopcional(checked: boolean, event?: React__default.ChangeEvent<HTMLInputElement>) => void | Promise<void>Callback when the checkbox state changes. Supports sync and async — if a Promise is returned, optimistic UI is applied: the visual state flips immediately and reverts on rejection.
onCheckedChangeopcional(checked: boolean) => void | Promise<void>Radix-compatible alias for onChange — accepts (checked: boolean)
labelopcionalReact__default.ReactNodeLabel for the checkbox
erroropcionalstringError message to display
classNameopcionalstringAdditional CSS class
helpTextopcionalstringHelp text to display below the checkbox
descriptionopcionalstringDescription sub-label rendered below the main label (alias for helpText, mirrors the TCP bridge API for drop-in compatibility).
fullWidthopcionalbooleanWhether the checkbox should take full width
iconopcionalReact__default.ReactNodeOptional icon rendered before the label text (emoji or React element). @example icon="🥗" @example icon={<Wifi size={18} />}
isLoadingopcionalbooleanExternal loading state. When true, disables interaction and shows a loading indicator inside the checkbox box.

Estados

Para ver de un vistazo los estados que un checkbox real atraviesa —marcado, desmarcado, deshabilitado, con descripción, cargando y con error— antes de armar un formulario con varios.

Cargando el espécimen…

Ejemplo del paquete

// Basic usage (unchanged)
<Checkbox
  label="Accept terms and conditions"
  checked={accepted}
  onChange={setAccepted}
/>

// Async / optimistic — visual flip is instant, reverts on error
<Checkbox
  label="Vegetarian"
  checked={dietaryVegetarian}
  onChange={async (checked) => {
    await api.savePreference('dietaryVegetarian', checked)
  }}
/>

// With icon slot
<Checkbox
  label="WiFi Included"
  icon={<Wifi size={18} />}
  checked={hasWifi}
  onChange={setHasWifi}
/>

// With description sub-label
<Checkbox
  label="Transfer Needed"
  description="Guest requires airport transfer"
  checked={transferNeeded}
  isLoading={isSaving}
  onChange={handleSave}
/>

Del @example del JSDoc de @solu30/ui-kit, sin editar: son 65 de los 541 símbolos. La sangría y los renglones en blanco son los del paquete.