CmSignalBars
Barras crescentes de intensidade: Wi-Fi, qualidade de link, força de um sinal qualquer. É o indicador que o CmSignalList usa por dentro, exportado à parte porque ele aparece sozinho em tabela, cabeçalho e item de lista.
Import
import { CmSignalBars, cmSignalLevel } from "cosmemilton-ui/server";A escala de 0 a 100
A conversão lado a lado — e a prova de que 12% acende uma barra, não nenhuma.
O piso é uma barra para qualquer sinal recebido: cmSignalLevel(12) = 1, e não zero. Só value 0, negativo ou não finito apaga todas as barras, porque uma rede fraca ainda dá para escolher na instalação e uma rede sem sinal nenhum, não.
Quantidade, nível direto e tamanho
bars, level, size e o label que transforma o indicador decorativo em anunciável.
bars — a escala não precisa ter quatro barras
level — barras acesas direto, sem converter porcentagem
size — altura do indicador (número vira px, string vai literal)
label — quando o indicador deixa de ser decorativo
API rápida
Props principais de cada peça exportada.
CmSignalBars
cmSignalLevel(value, bars)
Notas
cmSignalLevel converte 0–100 em barras acesas com PISO 1 para qualquer sinal recebido: "uma barra" e "sem sinal" são coisas diferentes, e arredondar 12% para zero mostra uma rede que aparece na lista com o ícone de rede inexistente. Só value <= 0 (ou não finito) devolve 0.
level acende um número de barras direto e ignora value — use quando a sua fonte já entrega o nível, não a porcentagem.
Sem label o indicador é aria-hidden, ou seja, decorativo — o normal, porque o nome da rede já está do lado. Com label ele vira role="img" com nome acessível.
As alturas das barras vêm do componente (proporcionais à quantidade), então o desenho continua correto com qualquer valor de bars.
size aceita número (px) ou string e vira --cm-signal-bars-size. A cor acesa sai de --cm-signal-bars-color, que o CmSignalList troca para o primary na linha selecionada.
Server-safe: sem hooks, exportado de cosmemilton-ui/server (e presente também no bundle global).