/* global React */
const { useState } = React;
// ─────────── Admin Sidebar ───────────
const AdminSidebar = ({ view, setView }) => {
const items = [
{ k:'dashboard', label:'Dashboard', icon:'grid', group:'Overview' },
{ k:'monitoring', label:'System monitor', icon:'activity', group:'Overview' },
{ k:'cases', label:'Case oversight', icon:'folder', group:'Operations', count:'1.2k' },
{ k:'users', label:'Users & roles', icon:'users', group:'Operations', count:342 },
{ k:'retention', label:'Retention & deletion', icon:'trash', group:'Operations', count:8 },
{ k:'consent', label:'Consent versions', icon:'doc', group:'Content' },
{ k:'templates', label:'Notification templates', icon:'mail', group:'Content' },
{ k:'audit', label:'Audit log', icon:'list', group:'Security' },
{ k:'ai', label:'AI activity', icon:'sparkle', group:'Security' },
{ k:'security', label:'Security & incidents', icon:'shield', group:'Security', count:3 },
];
let last = null;
return (
);
};
// ─────────── Admin Dashboard ───────────
const AdminDashboard = ({ nav }) => (
Operations overview
Wednesday, Apr 23 · all systems nominal
Export report
3 alerts
Case flow · past 30 days
{Array.from({length:30}).map((_,i) => {
const h = 40 + Math.abs(Math.sin(i * 0.5) * 50) + Math.abs(Math.cos(i*0.3)*20);
return
;
})}
Reviewer load
{[['J. Delacruz', 14, 20],['A. Sokolov', 11, 20],['L. Kim', 18, 20],['M. Osei', 9, 20],['T. Navarro', 7, 20]].map(([n,v,m]) => (
))}
Needs attention
View all
{[
{ t:'3 cases past SLA', sub:'Assigned to L. Kim', lvl:'danger', act:'Reassign' },
{ t:'Consent v2026.04 pending publish', sub:'Draft by you · 2d ago', lvl:'warn', act:'Review', go:()=>nav('consent') },
{ t:'8 retention requests awaiting action', sub:'Oldest: 4d', lvl:'warn', act:'Process', go:()=>nav('retention') },
{ t:'AI extraction confidence dropped', sub:'OCR v3.2 · now 89% (was 94%)', lvl:'info', act:'Inspect', go:()=>nav('ai') },
].map((row, i) => (
))}
Last 24h activity
{[
['11 min ago','Consent v2026.04 edited by A. Khan',''],
['1h ago','Escalation resolved · GE-2026-4751',''],
['2h ago','Auto-deletion: 4 expired cases purged','warn'],
['4h ago','New reviewer onboarded: T. Navarro',''],
['8h ago','Security scan complete · no findings','ai'],
].map(([w, t, type], i) => (
))}
);
// ─────────── Users & Roles ───────────
const AdminUsers = () => {
const [sel, setSel] = useState(null);
return (
Users & roles 342 users · 24 admins · 118 reviewers · 200 applicants
Export
Invite user
Name Email Role Last active MFA Cases
{[
['A. Khan','a.khan@dss.state.gov','Super Admin','Active now', true, '—'],
['M. Reeves','m.reeves@dss.state.gov','Admin','12 min ago', true, '—'],
['J. Delacruz','j.delacruz@dss.state.gov','Reviewer L2','Active now', true, 14],
['A. Sokolov','a.sokolov@dss.state.gov','Reviewer L2','32 min ago', true, 11],
['L. Kim','l.kim@dss.state.gov','Reviewer L2','1h ago', true, 18],
['T. Navarro','t.navarro@dss.state.gov','Reviewer L1','4h ago', true, 7],
['D. Cole','d.cole@contractor.gov','Reviewer L1','2d ago', false, 0],
].map((r, i) => (
setSel(i)} className={sel===i?'sel':''}>
{r[0]}
{r[1]}
{r[2]}
{r[3]}
{r[4] ? : Off }
{r[5]}
))}
);
};
// ─────────── Case Oversight ───────────
const AdminCases = () => (
Case oversight Search, intervene, or reassign any case in the system.
Saved filters
Export
Case Applicant Type Reviewer Status Created Flags
{[
['GE-2026-4782','M. Ramirez','SSDI','J. Delacruz','In review','Apr 21', 2],
['GE-2026-4779','S. Okafor','VA Disability','A. Sokolov','Needs info','Apr 20', 3],
['GE-2026-4778','Y. Tanaka','SSI','—','Unassigned','Apr 20', 0],
['GE-2026-4761','J. Park','SSI','L. Kim','Ready','Apr 19', 0],
['GE-2026-4758','M. Brown','SSDI','L. Kim','Overdue','Apr 18', 4],
['GE-2026-4742','A. Farah','VA Healthcare','T. Navarro','In review','Apr 18', 0],
].map((r,i) => (
{r[0]}
{r[1]}
{r[2]}
{r[3] === '—' ? — : r[3]}
{r[4]}
{r[5]}
{r[6] > 0 ? 2?'danger':'warn'}>{r[6]} : — }
))}
);
// ─────────── Consent Versions ───────────
const AdminConsent = () => (
Consent text manager Each version is immutable once published. Applicants always see the version in effect when they accepted.
Preview draft
Publish v2026.04
Versions
{[
['v2026.04', 'Draft', 'You · 2d ago', true],
['v2026.01', 'Active', 'A. Khan · Jan 14', false],
['v2025.10', 'Retired', 'M. Reeves · Oct 2025', false],
['v2025.07', 'Retired', 'A. Khan · Jul 2025', false],
['v2025.01', 'Retired', 'M. Reeves · Jan 2025', false],
].map(([v, status, who, on], i) => (
{v}
{status}
{who}
))}
v2026.04 · Draft
DCW Consent — Applicant
English
Español
How we use your information
Your information is used only to prepare this application. It is never sold, shared for marketing, or submitted to any agency without your approval. Effective April 2026, we also disclose retention policy in plain language before any document upload.
AI assistance + human review
We use AI to help draft your application. Every step is logged. A human reviewer checks everything before anything is submitted. You can always see which parts of your application were AI-assisted in the audit trail.
Retention & deletion
Your case is retained for 24 months after submission. You can request deletion anytime from your dashboard.
Diff vs v2026.01: +1 paragraph (retention), 3 phrasing clarifications.
See diff
Save draft
Publish
);
// ─────────── Notification Templates ───────────
const AdminTemplates = () => (
Notification templates Email, SMS, and in-app — localized EN / ES
New template
{[
{ k:'welcome', t:'Welcome email', trigger:'Account created', ch:['Email'], sent:'1,284 this month' },
{ k:'mfa', t:'MFA code', trigger:'Sign-in step', ch:['SMS'], sent:'4,921 this month' },
{ k:'needsinfo', t:'Reviewer needs info', trigger:'Reviewer request', ch:['Email','In-app'], sent:'84 this month' },
{ k:'reup', t:'Please re-upload document', trigger:'Quality flag', ch:['Email','In-app'], sent:'62 this month' },
{ k:'approved', t:'Your case was filed', trigger:'Case approved', ch:['Email','SMS','In-app'], sent:'318 this month' },
{ k:'delete', t:'Deletion confirmation', trigger:'Retention request', ch:['Email'], sent:'24 this month' },
].map(tpl => (
{tpl.t}
Triggered when: {tpl.trigger}
{tpl.ch.map(c => {c} )}
EN · ES
{tpl.sent}
))}
);
// ─────────── Retention Console ───────────
const AdminRetention = () => (
Retention & deletion 8 active requests · 284 cases auto-purged in last 90d
Policy settings
Case Applicant Requested Reason Status Age
{[
['GE-2026-4612','J. Nakamura','Apr 19','Withdrew application','Awaiting review','4d','warn'],
['GE-2026-4591','R. Castillo','Apr 18','Privacy right','Awaiting review','5d','warn'],
['GE-2026-4588','D. Park','Apr 17','Duplicate case','Awaiting review','6d','warn'],
['GE-2026-4212','L. Martinez','Feb 08','24m auto-purge','Complete','—','accent'],
['GE-2026-3987','R. Chen','Jan 14','Privacy right','Complete','—','accent'],
['GE-2026-3901','A. Smith','Jan 02','Legal hold','Blocked','—','danger'],
].map((r, i) => (
{r[0]}
{r[1]}
{r[2]}
{r[3]}
{r[4]}
{r[5]}
{r[4].includes('Await') && <>
Process
Hold
>}
{!r[4].includes('Await') && }
))}
);
// ─────────── Audit Log ───────────
const AdminAudit = () => (
Audit log Immutable record of every access, action, and consent event.
Filters
Export (30d)
Timestamp Actor Role Action Target IP Result
{[
['2026-04-23 14:14:02','j.delacruz','Reviewer L2','case.flag.create','GE-2026-4782','10.44.12.9','OK'],
['2026-04-23 14:11:30','a.khan','Super Admin','consent.draft.edit','v2026.04','10.44.12.3','OK'],
['2026-04-23 13:58:12','maria.r','Applicant','auth.login','self','173.x.x.x','OK'],
['2026-04-23 13:41:00','system','System','retention.purge.scheduled','GE-2024-0128','—','OK'],
['2026-04-23 12:05:45','l.kim','Reviewer L2','case.reassign','GE-2026-4703','10.44.12.14','OK'],
['2026-04-23 11:02:15','system','System','case.assign.auto','GE-2026-4782','—','OK'],
['2026-04-23 09:12:03','a.khan','Super Admin','user.role.change','d.cole → Reviewer L1','10.44.12.3','OK'],
['2026-04-23 08:45:18','unknown','—','auth.login','s.okafor@...','94.x.x.x','DENIED · bad password'],
['2026-04-23 08:44:02','unknown','—','auth.login','s.okafor@...','94.x.x.x','DENIED · bad password'],
['2026-04-23 07:30:00','system','System','backup.snapshot','full','—','OK'],
].map((r, i) => (
{r[0]}
{r[1]}
{r[2]}
{r[3]}
{r[4]}
{r[5]}
{r[6]}
))}
);
// ─────────── AI Activity ───────────
const AdminAI = () => (
AI activity Every model invocation, with inputs hashed and outputs retained 90d for explainability.
Model registry
Recent invocations
Timestamp Model Purpose Case Confidence Outcome
{[
['14:13:41','claude-extract-v3','date.consistency.check','GE-2026-4782','91%','flagged · reviewer notified'],
['14:02:10','vision-qa-v2','document.quality','GE-2026-4782','42%','flagged · re-upload requested'],
['13:48:55','claude-extract-v3','medical.record.parse','GE-2026-4782','96%','accepted · 14 fields'],
['13:12:09','claude-intake-v1','clarifier.question','GE-2026-4791','—','generated follow-up'],
['12:58:22','claude-draft-v2','ssa-16.fill','GE-2026-4761','94%','draft generated'],
['12:30:41','whisper-xl','voice.transcribe','GE-2026-4779','—','transcript OK'],
].map((r,i) => (
{r[0]}
{r[1]}
{r[2]}
{r[3]}
=90 ? 'var(--accent)' : parseInt(r[4])>=70 ? 'var(--warn)' : 'var(--danger)'}}>{r[4]}
{r[5]}
))}
);
// ─────────── System Monitoring ───────────
const AdminMonitoring = () => (
System monitor Real-time uptime, queue depth, error rate.
All systems nominal
{['API Gateway','Document storage','AI inference','Email/SMS queue'].map(svc => (
{Array.from({length:60}).map((_,i) => {
const h = 20 + Math.abs(Math.sin(i*0.4 + svc.length)*60);
return
;
})}
p50 {42+Math.floor(Math.random()*40)}ms · p95 {180+Math.floor(Math.random()*40)}ms
last 60m
))}
);
// ─────────── Security / Incidents ───────────
const AdminSecurity = () => (
Security & incidents 3 open alerts · last scan 4h ago
Run scan now
Incident response
Active alerts
{[
{ pri:'P2', t:'Brute-force attempt · s.okafor@... (14 attempts in 6 min)', when:'8h ago · auto-locked', actor:'94.x.x.x', lvl:'danger' },
{ pri:'P3', t:'Unusual download volume · d.cole@contractor.gov (18 case files)', when:'1d ago', actor:'Reviewer L1', lvl:'warn' },
{ pri:'P3', t:'Session from new geo (Germany) · a.khan@dss.state.gov', when:'2d ago · confirmed by admin', actor:'Super Admin', lvl:'warn' },
].map((a, i) => (
{a.pri}
{a.t}
{a.when} · {a.actor}
Details
Resolve
))}
Compliance snapshot
SOC 2 Type II, HIPAA, NIST 800-53 · all on track
View report
);
Object.assign(window, { AdminSidebar, AdminDashboard, AdminUsers, AdminCases, AdminConsent, AdminTemplates, AdminRetention, AdminAudit, AdminAI, AdminMonitoring, AdminSecurity });