= 0 ? optId(current) : undefined}
autoComplete="off"
spellCheck={false}
placeholder={placeholder}
value={text}
onChange={(e) => {
setText(e.target.value);
setActive(0);
setOpen(true);
}}
onFocus={() => {
setFocused(true);
setOpen(true);
}}
onBlur={() => {
setFocused(false);
setOpen(false);
}}
onClick={() => setOpen(true)}
onKeyDown={onKey}
className="h-12 w-full rounded-xl border border-white/12 bg-[#0f0d1c] pr-12 pl-11 text-base text-white outline-none transition-colors duration-200 placeholder:text-white/40 hover:border-white/25 focus:border-[var(--sc)] focus:ring-2 focus:ring-[color-mix(in_srgb,var(--sc)_30%,transparent)] motion-reduce:transition-none"
/>
{hotkey && !focused && (
{hotkey}
)}
{open && (
e.preventDefault()}
initial={reduce ? { opacity: 0 } : { opacity: 0, y: -6, scale: 0.98 }}
animate={reduce ? { opacity: 1 } : { opacity: 1, y: 0, scale: 1 }}
exit={reduce ? { opacity: 0, transition: { duration: 0 } } : { opacity: 0, y: -4, scale: 0.98, transition: { duration: 0.12 } }}
transition={reduce ? { duration: 0 } : { type: "spring", stiffness: 520, damping: 34 }}
className="absolute inset-x-0 top-full z-20 mt-2 max-h-64 origin-top overflow-auto rounded-[14px] border border-white/10 bg-[#141026] p-1.5 shadow-2xl shadow-black/50"
>
{groups.map(([group, list]) => (
{group && (
{group}
)}
{list.map((item) => {
const i = optionIndex(item);
const isActive = i === current;
return (
!isActive && setActive(i)}
onClick={() => pick(item)}
className={`relative flex min-h-10 cursor-pointer items-center gap-3 rounded-lg px-3 py-2 text-[15px] ${isActive ? "text-white" : "text-white/70"}`}
>
{isActive && (
)}
{item.hint && {item.hint}}
);
})}
))}
{results.length === 0 && Nothing found for “{query}”
}
)}
{open && query ? `${results.length} results` : ""}