// Shell: topbar + left rail + viewport + AI panel + command palette const MODULES = [ { id: 'home', label: 'Home', letter: '', color: 'var(--ks-primary)', icon: 'home' }, { id: 'word', label: 'Word', letter: 'W', color: 'var(--mod-word)', accent: 'word' }, { id: 'sheets', label: 'Sheets', letter: 'S', color: 'var(--mod-sheets)', accent: 'sheets' }, { id: 'slides', label: 'Slides', letter: 'P', color: 'var(--mod-slides)', accent: 'slides' }, { id: 'pdf', label: 'PDF', letter: 'F', color: 'var(--mod-pdf)', accent: 'pdf' }, { id: 'notes', label: 'Notes', letter: 'N', color: 'var(--mod-notes)', accent: 'notes' }, { id: 'board', label: 'Board', letter: 'B', color: 'var(--mod-board)', accent: 'board' }, { id: 'db', label: 'Database', letter: 'D', color: 'var(--mod-db)', accent: 'db' }, { id: 'admin', label: 'Admin', letter: '', color: 'var(--mod-admin)', icon: 'shieldCheck' }, ]; function Topbar({ onSearch, onToggleAI, aiOpen, moduleTitle, moduleAccent }) { return (
कार्य
KaryaSuite
V3 · Enterprise
Government of India · MeitY {IC.chevronD}
{moduleTitle && ( <> /
{moduleTitle}
)}
{KS_DATA.user.initials}
); } function Rail({ current, onNavigate }) { return ( ); } // AI panel — contextual to current module function AIPanel({ open, module, onClose }) { const [msgs, setMsgs] = React.useState([ { role: 'ai', text: 'I can help draft, summarise, translate, or analyse in this workspace. What would you like to do?' }, ]); const [input, setInput] = React.useState(''); const suggestions = { home: ['Summarise my day', 'Draft a status update to my Director', 'Find last week\'s Cabinet Note', 'Translate the DPI Roadmap to Hindi'], word: ['Proofread this document', 'Summarise in 5 bullets', 'Translate to हिंदी', 'Suggest a stronger opening paragraph'], sheets: ['Explain this formula', 'Generate a formula to compute % utilisation', 'Recommend a chart for this data', 'Find outliers in column D'], slides: ['Generate a slide from these notes', 'Suggest speaker notes for slide 3', 'Convert this section into 3 slides', 'Design a summary slide'], pdf: ['Extract key clauses', 'Redact PII', 'Compare with previous version', 'Summarise this gazette'], notes: ['Turn this note into action items', 'Transcribe last audio note', 'Convert to formal minutes', 'Tag related meetings'], board: ['Convert this into a flowchart', 'Cluster these sticky notes', 'Draft a summary from the whiteboard', 'Suggest missing steps'], db: ['Write a SQL query for high-priority open cases', 'Explain this table schema', 'Detect anomalies in SLA breaches'], admin: ['Draft this month\'s compliance report', 'Find users with elevated access', 'Summarise recent audit events'], }[module] || []; const send = (text) => { const t = (text ?? input).trim(); if (!t) return; setMsgs(m => [...m, { role: 'user', text: t }]); setInput(''); setTimeout(() => { setMsgs(m => [...m, { role: 'ai', text: 'Working on it… I will draft a response, cite relevant documents from your workspace, and flag any DPDP-sensitive content before I return the result.' }]); }, 420); }; if (!open) return null; return (