{searchable && (
{
setQuery(e.target.value);
setHighlighted(0);
}}
onKeyDown={navigate}
className={cn(
'w-full bg-transparent text-xs text-retro-text outline-none placeholder:text-retro-muted',
s.font,
)}
/>
)}
{filtered.length === 0 ? (
-
No results.
) : (
filtered.map((opt, idx) => {
const selected = isSelected(opt.value);
const disabled = opt.disabled || (!selected && capReached);
const isActive = idx === highlighted;
return (
- setHighlighted(idx)}
onMouseDown={(e) => e.preventDefault()}
onClick={() => {
if (disabled) return;
toggle(opt.value);
}}
className={cn(
'flex cursor-pointer items-center gap-2 px-2 py-1.5 text-xs text-retro-text',
s.font,
s.radius,
selected
? cn(toneMap.neutral.soft, 'text-retro-text')
: 'text-retro-muted',
isActive && !disabled && 'bg-retro-surface/60',
disabled && 'opacity-50 cursor-not-allowed',
!disabled && !isActive && 'hover:bg-retro-surface hover:text-retro-text',
)}
>
{selected && (
)}
{opt.icon && (
{opt.icon}
)}
{opt.label}
);
})
)}
{typeof max === 'number' && (
{value.length}/{max} selected
)}