// Primus IQ — Applications Screen
const APPS = [
{ id: 'prima', name: 'PRIMA', blurb: 'Deep market & literature research engine — searches projects, library, and the firm knowledge graph.', accent: '#7A1C1C' },
{ id: 'rfp', name: 'RFP Maker', blurb: 'Drafts proposals, cost calculators and storylines from prior winning bids and project artefacts.', accent: '#876200' },
{ id: 'climate', name: 'ClimateIQ', blurb: 'Sustainability disclosures, scope mapping, TCFD & CSRD drafting, greenwashing-risk scoring.', accent: '#2E6F40' },
];
const ScreenApplications = ({ setRoute }) => (
Applications
Domain engines that chat with your projects, the library, and the firm's knowledge graph.
{APPS.map(app => (
setRoute(`app-${app.id}`)} style={{
padding: 22, borderRadius: 16,
background: 'white', border: '1px solid var(--line)',
cursor: 'pointer', transition: 'all 0.18s',
display: 'flex', flexDirection: 'column', gap: 16,
}}
onMouseEnter={e => { e.currentTarget.style.boxShadow = '0 10px 24px rgba(60,30,20,0.08)'; e.currentTarget.style.borderColor = app.accent + '30'; e.currentTarget.style.transform = 'translateY(-2px)'; }}
onMouseLeave={e => { e.currentTarget.style.boxShadow = 'none'; e.currentTarget.style.borderColor = 'var(--line)'; e.currentTarget.style.transform = 'translateY(0)'; }}
>
))}
);
const AppIcon = ({ id, color }) => (
);
const ScreenAppDetail = ({ appId, setRoute }) => {
const app = APPS.find(a => a.id === appId) || APPS[0];
return (
/
{app.name}
Recent {app.name} chats
{[
{ t: 'GCC fintech IPO scan · 2021–2026', when: '2h ago' },
{ t: 'Renewables capex benchmarking', when: '1d ago' },
{ t: 'TCFD gap analysis · portfolio co.', when: '4d ago' },
].map((c, i, arr) => (
e.currentTarget.style.background = 'var(--bg-soft)'}
onMouseLeave={e => e.currentTarget.style.background = 'transparent'}
>
{c.t}
{c.when}
))}
);
};
Object.assign(window, {
APPS,
ScreenApplications,
AppIcon,
ScreenAppDetail,
});