/* ================================================================== Paper Authoring + Per-student grading + simple dashboard/inbox stubs ================================================================== */ const { Icon: AIcon } = window.AppUI; /* ---------- Paper source modal (PDF drop OR paste text) ---------- */ const PaperSourceModal = ({ open, onClose, onIngest }) => { const [tab, setTab] = useState("pdf"); const [pasted, setPasted] = useState(""); const [drag, setDrag] = useState(false); if (!open) return null; return (
e.stopPropagation()} style={{ background:"var(--bg-1)", border:"1px solid var(--line-strong)", borderRadius:10, width:720, maxWidth:"100%", maxHeight:"90vh", display:"flex", flexDirection:"column" }}>
Add question paper Gemini will parse into question blocks · ~6s
Language auto-detected · Bengali / Hindi / English supported
{tab === "pdf" && (
{e.preventDefault();setDrag(true);}} onDragLeave={()=>setDrag(false)} onDrop={e=>{e.preventDefault();setDrag(false);onIngest({source:"pdf", filename:e.dataTransfer.files[0]?.name || "paper.pdf"});}} style={{ border: `2px dashed ${drag?"var(--accent)":"var(--line-strong)"}`, borderRadius:8, padding:"40px 20px", textAlign:"center", background: drag ? "color-mix(in srgb, var(--amber-solid) 6%, transparent)" : "var(--bg-2)", cursor:"pointer", }}>
Drop a question paper PDF here
or browse from computer · PDF, PNG, JPG · up to 25 MB
)} {tab === "paste" && (
Paste raw paper text · Gemini will structure into blocks