// app.jsx — API-driven App for the Merger Control Navigator. // Presentational components (StatsStrip, Filters, JurisdictionTable, // RegionalMatrix, PartiesCard, DetailPanel, OverrideModal) are reused from // dashboard.jsx / detail.jsx unchanged. const { useState, useMemo, useEffect, useCallback, useRef } = React; const { needsAttention } = window.MC_HELPERS; const API = window.MC_API; const CLERK = window.MC_CLERK; function Login({ onOk }) { const [pw, setPw] = useState(""); const [err, setErr] = useState(null); const submit = async () => { try { await API.login(pw); onOk(); } catch { setErr("Incorrect password."); } }; return (
Internal test instance — enter the access password.
setPw(e.target.value)} onKeyDown={(e) => e.key === "Enter" && submit()} /> {err &&{mapping.proposal_notes}
Start with a synthetic sample to explore the tool end-to-end, or upload a turnover spreadsheet to screen a real deal across 211 jurisdictions.
Upload a turnover spreadsheet in any layout — sheets per party, country and amount columns wherever they sit. Claude reads the workbook structure and proposes a mapping; you review and adjust before screening runs.
{ const f = e.target.files[0]; if (f) runAutoDetect(f); }} /> {autoErr &&| When | Who | Jurisdiction | Field | From | To |
|---|---|---|---|---|---|
| {a.at} | {a.who} | {a.jurisdiction} | {a.field} | {a.old_value} | {a.new_value} |