/* ============================================================ SMALL SHARED COMPONENTS ============================================================ */ function Kpi({ label, value, delta, dir, tone }){ const arrow = dir==='up' ? '▲ ' : dir==='down' ? '▼ ' : ''; return (
{value}
{arrow}{delta}
); } function BarCol({ h, color, label }){ return (
{label}
); } function PrioBar({ label, val, max, color }){ return (
{label}{val}
); } function TicketRow({ t, onAvaliar }){ const isEncerrado = t.status==='encerrado'; const pColor = t.priority==='Alta' ? 'b-rosa' : t.priority==='Média' ? 'b-laranja' : t.priority==='Baixa' ? 'b-carvao' : 'b-green'; const pText = isEncerrado ? 'Concluído' : t.priority; return (
#{t.numero} · {t.title}
{fmtDataHora(t.criadoEm)}
{!isEncerrado &&
{STATUS_LABELS[t.status]}
}
{pText}
{isEncerrado && onAvaliar && ( t.avaliacao ? (
Sua avaliação: {'★'.repeat(t.avaliacao)}{'☆'.repeat(5-t.avaliacao)}
) : (
Avalie este atendimento: {[1,2,3,4,5].map(n=>( ))}
) )}
); } function Toast({ msg }){ return (
{msg || ''}
); }