/* global React, Icon, Button, IconBtn, Chip, Badge, Pill, Avatar, Field, Input, Textarea, Select, Toggle, Tabs, Segmented, Accordion, KPICard, Sparkline, LineChart, BarChart, AreaChart, Donut, StatBlock, FeedItem, StatusPill, MOCK, Banner, Popover, PopoverItem, Modal, Drawer, EmptyState, Breadcrumb, PageHead */ const { useState: useState2 } = React; /* ============================================================ DETAIL — Single audit ============================================================ */ function DetailScreen({ go }) { const [tab, setTab] = useState2("overview"); const r = MOCK.audits[0]; return (
go("table") }, { label: r.id }, ]}/>} eyebrow={`${r.id} · ${r.client.toUpperCase()} · ${r.office}`} title="Loop 14 —" gradWord="diagnose phase." lead="Northbeam media-mix audit. Run by Milton.AI; reviewed weekly with Inés Vidal. Currently in week 2 of 4." actions={ <> } />
{r.phase} Day {r.days} of 21
{r.lead} · lead
}>Open simulator}/>
{/* Left column */}
Findings 04 active
{[ { code: "F-01", t: "Brand spend over-indexed on prospecting", body: "Q1 prospecting budget grew 38% with no measurable lift in unaided awareness. Recommend cap and reallocate to retention.", tone: "warn", conf: 92 }, { code: "F-02", t: "Search overlap with paid social", body: "Branded search and Meta retargeting compete on the same intent window — saturation above frequency 7.", tone: "warn", conf: 84 }, { code: "F-03", t: "Creative fatigue on hero asset", body: "CTR decay on the lead asset since week 6. Two refreshed cuts ready in HIVE for A/B.", tone: "info", conf: 78 }, { code: "F-04", t: "Geo concentration: FL underweight", body: "Florida shows 1.4× propensity but receives 0.7× spend. Worth simulating.", tone: "info", conf: 71 }, ].map((f) => (
{f.code} {f.tone === "warn" ? "High" : "Medium"}

{f.t}

{f.body}

Conf. {f.conf}%
))}
Spend × intent · 30d {}} items={[{ value: "paid", label: "Paid" }, { value: "earned", label: "Earned" }, { value: "owned", label: "Owned" }]}/>
`${i + 1}`)} h={200}/>
{/* Right column */}
Engagement
{[ ["Client", "Northbeam Inc."], ["Office", "MIA · Strategy"], ["Started", "Apr 28, 2026"], ["Audit fee", "$48,000"], ["Spend audited", "$280,000"], ["Phase", "Diagnose · w/2 of 4"], ["Network", "Magnet Global"], ].map(([k, v]) => (
{k} {v}
))}
Team
{MOCK.members.map((m) => (
{m.name} {m.role} · {m.office}
))}
Activity
{MOCK.inbox.slice(2, 6).map((it) => )}
); } /* ============================================================ SETTINGS ============================================================ */ function SettingsScreen() { const [active, setActive] = useState2("account"); const sections = [ { id: "account", label: "Account", icon: }, { id: "team", label: "Team", icon: }, { id: "billing", label: "Billing", icon: }, { id: "integrations", label: "Integrations", icon: }, { id: "agents", label: "Agents", icon: }, { id: "appearance", label: "Appearance", icon: }, { id: "advanced", label: "Advanced", icon: }, ]; return (
} eyebrow="Workspace · Catalyst v4.1" title="Settings." lead="Account, team, billing, agents. Edits autosave; you'll see a note in the bottom-right when they land." />
{/* Profile */}
Profile

Your identity inside Catalyst

Inés Vidal MIA · Strategy lead · joined 2017
{}}/> {}} icon={}/> {}}/>
{/* Preferences */}
Preferences

How Catalyst behaves for you

{}} label="Editorial reveals" description="22px translateY + opacity, 1s cubic-bezier on scroll. Disable for full reduced-motion."/>
{}} label="Daily Catalyst digest" description="One email at 08:00 MIA · what shipped, what stalled, what to simulate."/>
{}} label="Beta features" description="Opt into Milton-IDX v2 and the new Lens diagnostic. May be unstable."/>
{/* Agents */}
Agents · 14 total

Who runs in your name

{[ { name: "Milton-IDX", desc: "Knowledge agent · indexes every audit" }, { name: "Lens-D02", desc: "Brand diagnostic · 2.1k calls / month" }, { name: "HIVE-C04", desc: "Orchestration · runs C-tier audits end-to-end" }, { name: "Catalyst-S", desc: "Simulator · runs media-mix decisions" }, ].map((a, i) => (
{a.name} {a.desc}
{}}/>
))}

Delete workspace

Removes every audit, finding, and prompt. Irreversible.
); } /* ============================================================ EMPTY — Onboarding ============================================================ */ function EmptyScreen({ go }) { return (
} eyebrow="Empty workspace" title="Diagnose" gradWord="before you prescribe." lead="Catalyst is empty. Start with a paid Audit (2–3 weeks, no templates) or import from another workspace." />
{[ { ph: "var(--ph-pink)", code: "01", t: "Run a paid Audit", body: "Two to three weeks. We diagnose, you decide what's worth simulating.", cta: "Start audit", route: "workflow", primary: true }, { ph: "var(--ph-teal)", code: "02", t: "Import an engagement", body: "Drop a brief, a deck, or a spreadsheet. Milton.AI normalizes and tags.", cta: "Import", route: null }, { ph: "var(--ph-magenta)", code: "03", t: "Connect a data source", body: "Hook up GA4, Meta, Snowflake, or Looker. Read-only by default.", cta: "Connect", route: null }, ].map((c) => (
STEP {c.code}

{c.t}

{c.body}

))}
From the field Recent notes from MIA · NYC · SCL
{[ { t: "We don't sell AI. We sell better decisions.", who: "Inés Vidal · MIA" }, { t: "Diagnose before you prescribe. Simulate before you spend.", who: "Marco Ferraro · NYC" }, { t: "AI is the multiplier. Not the product.", who: "Daniela Reyes · SCL" }, ].map((q, i) => (

{q.t}

{q.who}
))}
); } /* ============================================================ INBOX ============================================================ */ function InboxScreen() { const [active, setActive] = useState2(MOCK.inbox[0].id); const [filter, setFilter] = useState2("all"); const items = MOCK.inbox.filter(i => filter === "all" || (filter === "unread" && i.unread) || i.tag === filter); const sel = MOCK.inbox.find(i => i.id === active) || MOCK.inbox[0]; return (

Inbox

12 NEW
} placeholder="Search inbox…" onChange={() => {}}/> i.unread).length }, { value: "agent", label: "Agents", count: 2 }, { value: "team", label: "Team", count: 3 }, ]}/>
{items.map((it) => ( setActive(it.id)}/> ))}
} size={32}/> } size={32}/> } size={32}/>
{sel.icon ? ( {sel.icon} ) : ( )}
{sel.from} {sel.tag.toUpperCase()} · {sel.time} ago

{sel.title}

{sel.body}

Detail

Diagnose phase concluded at 08:42 MIA. Four findings logged, with confidence above 70 on all of them. Two findings (F-01, F-02) cleared the high-confidence threshold (≥85) and will move into the Simulate phase by default unless flagged otherwise. Recommended next step is to lock simulation assumptions before the Friday client review.

); } Object.assign(window, { DetailScreen, SettingsScreen, EmptyScreen, InboxScreen });