{
setQ(e.target.value);
setIdx(0);
}}
onKeyDown={(e) => {
if (e.key === "ArrowDown") {
e.preventDefault();
setIdx((i) => Math.min(items.length - 1, i + 1));
} else if (e.key === "ArrowUp") {
e.preventDefault();
setIdx((i) => Math.max(0, i - 1));
} else if (e.key === "Enter") {
e.preventDefault();
items[safeIdx]?.run();
} else if (e.key === "Escape") setOpen(false);
}}
placeholder="Search entities, sources, events, URLs — or jump to a page…"
className="h-11 w-full bg-transparent text-[14px] outline-none placeholder:text-fg-subtle"
role="combobox"
aria-expanded
aria-controls="palette-list"
aria-activedescendant={items[safeIdx] ? `pal-${items[safeIdx].id}` : undefined}
autoComplete="off"
/>
{busy ? : esc}
{groups.map((g) => (
-
{g}
{items
.filter((i) => i.group === g)
.map((it) => {
flat++;
const active = flat === safeIdx;
const my = flat;
return (
- setIdx(my)} onClick={it.run} className={`flex cursor-pointer items-center gap-2.5 px-3 py-1.5 text-[13px] ${active ? "bg-panel-2" : ""}`}>
{it.icon}
{it.label}
{it.hint && {it.hint}}
{it.score !== undefined && it.score !== null && }
{active && ↵}
);
})}
))}
{!items.length && - Nothing matches.
}
↑↓ navigate
↵ open
entity:openaitype:pricing_changesilent:true