// Metis — Page Components const T = { cream: '#F6F7FA', dark: '#16213E', sage: '#5B6B8C', accent: '#1F5FBF', creamDark: '#E9ECF3', }; const Label = ({ children, color = T.accent }) => (
{children}
); const DarkBtn = ({ children, onClick }) => { const [hov, setHov] = React.useState(false); return ( ); }; const GhostBtn = ({ children, onClick }) => { const [hov, setHov] = React.useState(false); return ( ); }; // ─── CUSTOM SELECT ──────────────────────────────────────────────────────── const CustomSelect = ({ value, onChange, options, placeholder = 'Select…', error }) => { const [open, setOpen] = React.useState(false); const ref = React.useRef(null); const selected = options.find(o => o.value === value); React.useEffect(() => { const handler = (e) => { if (ref.current && !ref.current.contains(e.target)) setOpen(false); }; document.addEventListener('mousedown', handler); return () => document.removeEventListener('mousedown', handler); }, []); return (