export function formatCurrency(value) { if (value === null || value === undefined || Number.isNaN(Number(value))) { return '—'; } const num = Number(value); if (Math.abs(num) >= 1_000_000_000_000) { return `$${(num / 1_000_000_000_000).toFixed(2)}T`; } if (Math.abs(num) >= 1_000_000_000) { return `$${(num / 1_000_000_000).toFixed(2)}B`; } if (Math.abs(num) >= 1_000_000) { return `$${(num / 1_000_000).toFixed(2)}M`; } return `$${num.toLocaleString(undefined, { maximumFractionDigits: 2 })}`; } export function formatPercent(value) { if (value === null || value === undefined || Number.isNaN(Number(value))) { return '—'; } const num = Number(value); return `${num >= 0 ? '+' : ''}${num.toFixed(2)}%`; } export function setBadge(element, value) { if (!element) return; element.textContent = value; } export function renderMessage(container, { state, title, body }) { if (!container) return; container.innerHTML = `
`; } export function createSkeletonRows(count = 3, columns = 5) { let rows = ''; for (let i = 0; i < count; i += 1) { rows += '