/* ============================================================ Diligence hub — a Project/Diligence template, created from a DDQ. PHASE 1: the checklist becomes a collection of EMPTY data products — one card per request, grouped by the workbook's sections. Each is a placeholder to be filled by a human, drafted by AI from the model, or marked N/A. Filling one is how information gets INTO the model. Content: window.DILIGENCE (tabs/diligence_content.js). ============================================================ */ /* Artifacts page — the SAME stacked-card framework as Finance/Contracts (CX_DASH: card → openDrawer → drawer). The only difference is the collection is grouped into the DDQ's sections. Content: window.DIL_DASH. */ function DiligenceDashboard() { const D = window.DIL_DASH || { sections: [], cardsBySection: {}, statHtml: '' }; const [sel, setSel] = React.useState((D.sections[0] && D.sections[0].key) || 'all'); const hostRef = React.useRef(null); // Boot the CX framework + register the pack once (records are global). React.useEffect(() => { if (window.ensureFinCxGlobal && window.ensureFinCxGlobal() && window.registerCxPack) { window.registerCxPack(D); } return () => { try { if (window.closeFull) window.closeFull(); } catch (e) {} try { if (window.closeDrawer) window.closeDrawer(); } catch (e) {} document.body.style.overflow = ''; }; }, []); // Re-render just the selected section's cards into the host on change. React.useEffect(() => { const host = hostRef.current; if (!host) return; host.innerHTML = '
' + '
' + (D.cardsBySection[sel] || '') + '
'; }, [sel]); const C = { ink: 'var(--fg-dark)', muted: 'var(--fg-muted)', line: 'var(--border-subtle, rgba(38,24,17,0.10))', panel: 'var(--bg-panel)' }; const total = (D.sections || []).reduce((a, s) => a + s.count, 0); const MENU = [{ key: 'all', name: 'All requests', count: total }].concat(D.sections || []); const MenuItem = (m) => { const active = m.key === sel; return ( ); }; return (
{/* Context — what this hub is and what it will do */}
About this hub
A data room that builds the model.

Created from a Pre-LOI diligence request list (DDQ). Claude turned each of the {total || '85'} requests into a tracked data product, grouped by the checklist’s sections. Each one starts empty.

You resolve a request three ways — provide a document, let Claude draft it from the model, or mark it N/A. Where the answer already lives in the encoded org (Finance, Contracts…) it links straight to the source; where it doesn’t, the gap is your build list. Every answer is encoded into the model — so the room stays current and useful after the deal, not a pile of static files.

); } window.DiligenceDashboard = DiligenceDashboard; /* ── Empty-state onboarding: upload a DDQ → build the collection ── Full-screen Proxa surface shown while the created hub's flow.template is 'diligence' and step !== 'built'. On finish, calls onAdvance('built'). */ function DiligenceOnboard({ onAdvance }) { const [phase, setPhase] = React.useState('drop'); // drop | uploaded | processing const timers = React.useRef([]); React.useEffect(() => () => timers.current.forEach(clearTimeout), []); const build = () => { setPhase('processing'); timers.current.push(setTimeout(() => { if (onAdvance) onAdvance('built'); }, 2200)); }; const PROXA = 'var(--accent-purple-ai, #724C9E)'; const C = { ink: 'var(--fg-dark)', muted: 'var(--fg-muted)', line: 'var(--border-subtle, rgba(38,24,17,0.10))' }; const items = ((window.DILIGENCE || { stats: {} }).stats.items) || 85; return (
New hub · Proxa

Diligence

Upload a diligence request list (DDQ) and Claude turns each item into a data product to track and answer — from your model where it can, from your team where it can’t.

{phase === 'drop' && (
setPhase('uploaded')} onKeyDown={(e) => { if (e.key === 'Enter' || e.key === ' ') setPhase('uploaded'); }} style={{ border: '1.5px dashed #C9C2BF', borderRadius: 14, padding: '34px 20px', cursor: 'pointer', background: 'var(--bg-app)' }}>
Drop a DDQ here, or click to upload
Excel checklist — sections & requests
or create from scratch
)} {phase !== 'drop' && (
NaturalFoods_PreLOI_Diligence_Checklist.xlsx
{items} requests · 8 sections · Ready
)} {phase === 'uploaded' && ( )} {phase === 'processing' && (
Reading 8 sections · creating {items} data products…
)}
); } window.DiligenceOnboard = DiligenceOnboard;