// Analytics.jsx
function Donut({ value, max = 100, label, sublabel }) {
const r = 72;
const c = 2 * Math.PI * r;
const pct = value / max;
return (
);
}
function HBar({ label, value, max, color = 'var(--color-navy)' }) {
return (
);
}
function AnalyticsPage() {
const monthly = [
{ m: 'Nov', v: 98 }, { m: 'Dec', v: 112 }, { m: 'Jan', v: 105 },
{ m: 'Feb', v: 121 }, { m: 'Mar', v: 134 }, { m: 'Apr', v: 142, accent: true },
];
const max = Math.max(...monthly.map(d => d.v));
return (
Total Jobs by Month
Last 6 months
Operator Workload
Hours · April
Completion rate 96% — 1.2pt above March. Two pending issues are awaiting customer schedule confirmation; both expected to clear within 48 hours.
);
}
Object.assign(window, { AnalyticsPage });