onOpenChange(false)}
/>
{/* Panel */}
No matches — try a different term.
{/* Navigation — every sidebar item, grouped */}
{Array.from(navByGroup.entries()).map(([groupName, items]) => (
{items.map((item) => {
const I = item.icon;
return (
go(item.to)}
className="px-4 py-2 text-sm text-ink cursor-pointer flex items-center gap-3 data-[selected=true]:bg-brand-50 data-[selected=true]:text-brand-700"
>
{item.label}
);
})}
))}
{/* Actions — quick-fire operations that aren't routes */}
go('/?onboarding=1')}
className="px-4 py-2 text-sm text-ink cursor-pointer flex items-center gap-3 data-[selected=true]:bg-brand-50 data-[selected=true]:text-brand-700"
>
Issue new certificate (Setup guide)
go('/issuers')}
className="px-4 py-2 text-sm text-ink cursor-pointer flex items-center gap-3 data-[selected=true]:bg-brand-50 data-[selected=true]:text-brand-700"
>
Create issuer…
go('/network-scans')}
className="px-4 py-2 text-sm text-ink cursor-pointer flex items-center gap-3 data-[selected=true]:bg-brand-50 data-[selected=true]:text-brand-700"
>
Trigger discovery scan…
{/* Server search — only render the heading if we have hits */}
{serverResults.length > 0 && (
{serverResults.map((r) => (
go(r.to)}
className="px-4 py-2 text-sm text-ink cursor-pointer flex items-center gap-3 data-[selected=true]:bg-brand-50 data-[selected=true]:text-brand-700"
>
{r.type === 'certificate'
?
: }
{r.label}
{r.type}
))}
)}
{/* Footer hint */}
↑↓ navigate · ↵ select · esc close
⌘K
);
}