// Layout — sidebar + topbar. LIGHT enterprise theme.
// Branded: SOLUCERSA (operator) running SOFIA MCP Recruitment (product).
const { useState: usL, useEffect: ueL, useRef: urL } = React;
const NAV_GROUPS = [
{
title: 'Workspace',
items: [
{ id: 'dashboard', label: 'Dashboard', icon: 'Dashboard' },
{ id: 'requisitions', label: 'Vacantes', icon: 'Briefcase', badge: 7 },
{ id: 'candidates', label: 'Pool de candidatos', icon: 'Users', badge: 1248 },
],
},
{
title: 'SOFIA AI Tools',
items: [
{ id: 'screening', label: 'AI Screening', icon: 'PhoneCall', subText: 'Call' },
{ id: 'interviews', label: 'Entrevistas & Outreach', icon: 'Message', subText: 'Chat' },
],
},
{
title: 'Operaciones',
items: [
{ id: 'clients', label: 'Clientes', icon: 'Building' },
{ id: 'reports', label: 'Reportes & Analítica', icon: 'Bar' },
{ id: 'settings', label: 'Configuración', icon: 'Settings' },
],
},
];
function Sidebar({ route, onNavigate }) {
return (
);
}
function TopBar({ onOpenAssistant, onNavigate }) {
const [openNotif, setOpenNotif] = usL(false);
const [openUser, setOpenUser] = usL(false);
const notifRef = urL(null);
const userRef = urL(null);
ueL(() => {
const h = (e) => {
if (notifRef.current && !notifRef.current.contains(e.target)) setOpenNotif(false);
if (userRef.current && !userRef.current.contains(e.target)) setOpenUser(false);
};
document.addEventListener('mousedown', h);
return () => document.removeEventListener('mousedown', h);
}, []);
return (