componente · @solu30/ui-kit/input
SwitchWithLabel
Interruptor con etiqueta, descripción y estado de carga, en cuatro colores semánticos.
68 sitios de import en 9 de 15 verticales — un archivo que la importa cuenta una vez, monte una instancia o veinte.
- TheCharterPanel
- carlosmartinpavon
- cmp-packages
- dietaly
- elliot
- gestorsalon
- luigi
- raquetea
- zentrya
El componente, montado
Cargando el espécimen…
export function SwitchMatrix() {
const [notify, setNotify] = useState(true)
const [autoConfirm, setAutoConfirm] = useState(false)
const [openNow, setOpenNow] = useState(true)
return (
<Stage label="Switch · dos tamaños nomás, sin lg" tall wide>
<div className="flex w-full flex-col gap-4">
<div className="flex flex-wrap items-center gap-6">
<Switch checked={notify} onCheckedChange={setNotify} size="sm" />
<Switch checked={notify} onCheckedChange={setNotify} size="md" />
<Switch checked={false} onCheckedChange={() => {}} disabled />
<Switch checked indeterminate onCheckedChange={() => {}} />
</div>
<div className="grid w-full grid-cols-1 gap-3 sm:grid-cols-2">
<SwitchWithLabel
label="Confirmación automática"
description="Reservas de hasta 20 invitados se aprueban solas"
checked={autoConfirm}
onChange={setAutoConfirm}
color="success"
/>
<SwitchWithLabel
label="Salón abierto hoy"
checked={openNow}
onChange={setOpenNow}
color="danger"
disabled
/>
<SwitchWithLabel
label="Sincronizando con el calendario del catamarán"
checked
onChange={() => {}}
loading
/>
</div>
</div>
</Stage>
)
}De specimens/input.tsx · SwitchMatrix: el espécimen del Muestrario, no un ejemplo oficial del paquete. Muestra cómo se usa la pieza de verdad, montada contra los tipos instalados —eso es lo que vale— pero no es documentación del kit.
Cómo se usa
import { SwitchWithLabel } from '@solu30/ui-kit/input'Props
| Prop | Requerida | Tipo | Qué hace |
|---|---|---|---|
| checked | sí | boolean | — |
| onChange | sí | (checked: boolean) => void | — |
| label | opcional | string | — |
| description | opcional | string | — |
| disabled | opcional | boolean | — |
| loading | opcional | boolean | — |
| size | opcional | 'sm' | 'md' | — |
| color | opcional | SwitchColor | — |
| className | opcional | string | — |
Ejemplo del paquete
// El que ya trae la etiqueta: acá `checked` y `onChange` son REQUERIDAS.
<SwitchWithLabel
checked={avisos}
onChange={setAvisos}
label="Avisos por WhatsApp"
description="Se envía al confirmar cada reserva."
/>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.