CmOptionRow
Linha de preferência: o que a opção liga à esquerda, o controle à direita. É o bloco de uma tela de configurações — e a descrição existe para explicar a consequência de ligar (ou de deixar desligado), que é justamente o que um switch solto nunca conta.
Import
import { CmOptionRow } from "cosmemilton-ui/client";Bloco de preferências
Linhas com switch, uma controlada, uma com ícone e uma desabilitada cuja descrição explica o porquê.
Atualizações e privacidade
Preferências aplicadas somente a esta máquina.
Outro controle no lugar do switch
A prop control recebe os ids do título e da descrição — é assim que o controle substituto ganha nome acessível.
Origem dos pacotes
De onde o sistema baixa as atualizações e como confere o que chegou.
API rápida
Props principais de cada peça exportada.
CmOptionRow
Notas
A linha inteira NÃO é clicável, de propósito: um <label> só rotula controle de formulário e o CmSwitch é um <button role="switch"> — envolvê-lo num label não liga o clique nem o nome acessível, só dá a impressão de que liga. O que funciona de verdade é o que o componente faz: aria-labelledby/aria-describedby apontando para o título e a descrição da linha.
A linha desligada continua LEGÍVEL de propósito: é a descrição dela que explica por que o controle está fora de alcance ("instantâneos só existem em btrfs"). Esmaecer a ponto de não se ler seria esconder a explicação.
control substitui o switch por outro controle (um CmSelect, um botão) e recebe { titleId, descriptionId }. Quem passa control fica responsável por ligar o nome acessível do próprio controle nesses ids.
name sincroniza o input espelho do CmSwitch, para envio direto em <form> nativo.
O componente não desenha borda nem fundo: empilhe as linhas dentro de um CmCard e use CmSeparator quando quiser divisória.