import { useEffect, useRef } from "react"; import { ArrowRight, X } from "lucide-react"; const STEPS: { n: number; title: string; body: string }[] = [ { n: 1, title: "Pick a campaign", body: "Choose a submission from the review queue on the left.", }, { n: 2, title: "Run AI triage", body: "The agent investigates and recommends — citing the exact policy rules, surfacing risk signals, and showing the deterministic policy gate, which enforces safety rules in code and can only route a case to a human (never auto-approve or auto-reject).", }, { n: 3, title: "You decide", body: "Approve, Reject, or Request info. Overriding the AI requires a written reason — every decision is recorded against your name.", }, ]; // camp id -> one-line reason it's worth trying. Clicking selects the campaign and closes the modal. const SHOWCASE: { id: string; note: string }[] = [ { id: "camp-017", note: "approves clearing a debt's principal (hardship relief)" }, { id: "camp-005", note: "rejects an interest-bearing investment — reads policy, not keywords" }, { id: "camp-015", note: "prompt injection: flagged and escalated, never obeyed" }, ]; export function WelcomeModal({ onClose, onPick, }: { onClose: () => void; onPick: (id: string) => void; }) { const startRef = useRef(null); useEffect(() => { startRef.current?.focus(); const onKey = (e: KeyboardEvent) => { if (e.key === "Escape") onClose(); }; window.addEventListener("keydown", onKey); return () => window.removeEventListener("keydown", onKey); }, [onClose]); return (
e.stopPropagation()} className="anim-pop w-full max-w-lg max-h-[90vh] overflow-y-auto rounded-2xl border border-line bg-surface shadow-card p-6 sm:p-7" >
ا

Amana — Campaign Trust & Safety triage

A moderator's bench for fundraising review

An AI agent reviews each incoming fundraising campaign against policy and recommends{" "} APPROVE / REJECT / ESCALATE — with cited rule IDs and surfaced risk signals. A human moderator makes the final decision.

{STEPS.map((s) => (
{s.n}
{s.title}

{s.body}

))}
Try these
{SHOWCASE.map((c) => ( ))}
); }