Pular para o conteúdo
Status & selos

Componentes

Status & selos

Uma fonte visual só: StatusPill. Os selos de cada área são cascas finas por cima dele, e o significado — rótulo, cor, ordem, se pulsa — mora no domínio daquela área, nunca na tela que desenha.
ui/status-pill.tsxlib/numeros/status.tsdocs/DOMINIO.md

StatusPill

Ponto colorido + rótulo numa pílula com borda. Pequeno, discreto, e sempre com o rótulo escrito — cor nunca é o único sinal.
ConectadoConectandoAguardandoDesconectadoBloqueado
os status reais de um número de WhatsApp, lidos de lib/numeros/status.ts
PropTipoPadrãoO que faz
labelstringO rótulo escrito. Obrigatório: cor sozinha não comunica.
dotstringClasse de cor do ponto: "bg-brand", "bg-warning"…
textstringtext-fg-mutedClasse de cor do rótulo — sempre um tom -strong quando é semântico.
pulsebooleanfalseLiga o utility pulso no ponto. Só pra coisa viva AGORA.
classNamestringAjuste de layout do chamador.
o descritor mora no domínio, a pílula só apresenta
// lib/numeros/status.ts — um lugar só pra editar
export const STATUS_META = {
  connected:  { label: "Conectado",  dot: "bg-brand",    text: "text-brand-strong" },
  connecting: { label: "Conectando", dot: "bg-info",     text: "text-info-strong", pulse: true },
  pending:    { label: "Aguardando", dot: "bg-ink-400",  text: "text-fg-muted" },
  disconnected: { label: "Desconectado", dot: "bg-negative", text: "text-negative-strong" },
  banned:     { label: "Bloqueado",  dot: "bg-negative", text: "text-negative-strong" },
};

// na tela:
<StatusPill {...STATUS_META[linha.status]} />

Dois pesos

A regra é de densidade: pílula com fundo quando o status está SOZINHO; dot + texto sem fundo dentro de tabela ou lista densa.
AgendadoConfirmadoCompareceuFaltouFantasmaRecuperável
status sozinho (card, cabeçalho, painel): fundo suave + rótulo
AgendadoConfirmadoCompareceuFaltouFantasmaRecuperável
status em lista densa: dot + rótulo, sem fundo — 10 pílulas por coluna pesariam

Nota“Compareceu” é o único selo CHEIO

Ele é o desfecho que fecha a conta — o dado que vale dinheiro pra clínica. Por isso ganha fundo verde sólido com tinta --positive-fg em vez de fundo suave. É a única exceção de peso na família de selos, e ela é semântica, não estética.

A jornada do paciente

Os estados do paciente reusam a semântica: nenhum matiz novo. O significado é do domínio — a tela não recolore nada.
SeloO que éSignificadoToken
AgendadoestadoAgendamento criado na agenda--info
ConfirmadoestadoO paciente confirmou presença--brand
CompareceuestadoEsteve na clínica--positive (selo cheio)
FaltouestadoNo-show VERIFICADO — nunca carimbado pelo relógio--negative
FantasmacondiçãoInatividade reversível: uma flag SOBRE o estado, que continua preservado--warning
RecuperávelcondiçãoOportunidade viva — o selo pulsa porque ela ainda responde--brand + pulso

Armadilha já pagaCondição não substitui estado

“Fantasma” e “parada” são flags sobre o estado preservado, não estados da máquina. Uma linha que mostra só “Fantasma” apaga a informação de que aquele agendamento continua CONFIRMADO — e é assim que a recepção deixa de confirmar quem já estava na agenda. Mostre o estado, e a condição ao lado.

Vocabulário importa

“Fantasma” é uma CONDIÇÃO (não responde), não um julgamento. O produto não diz “perdido”, “morto” nem “lixo”: quem sumiu pode voltar, e é disso que vive a Receita Recuperável.

Cor nunca é o único sinal

Todo status tem rótulo ao lado do dot. Na agenda, o compromisso ainda carrega FORMA — listrado (agendado), vazado (faltou), ✓ (compareceu) — porque a cor do cartão é escolhida pela clínica e não pode apagar o estado.

Badges genéricas

Nem todo selo é status. Contagem, procedência e delta têm formas próprias.
12 na fila Qualificado pelo agente +12% Não contatar
neutra · IA · delta com seta e tabular · restrição
TipoFormaRegra
Contagemborda + surface, sem dotNúmero em tabular. Não usa cor semântica: contagem não é estado.
Procedência de IAia-muted + SparklesSó quando o agente produziu aquilo.
Deltasoft da direção + seta + tabular-numsVerde pra bom, vermelho pra ruim — e “bom” depende da métrica: queda de no-show é verde.
Restriçãonegative-soft + ícone“Não contatar” é uma regra que a clínica precisa ver ANTES de agir.

Sim

Fantasma

Texto no tom -strong sobre o -soft, dot no tom base, respiro px-2.5 (a curva da pílula come espaço).

Não

Fantasma

Fundo cheio numa família que não é “compareceu”: pesa demais numa lista. E branco sobre âmbar reprova contraste.