import * as React from "react" import * as SelectPrimitive from "@radix-ui/react-select" import { Check, ChevronDown, X } from "lucide-react" import { cn } from "@/lib/utils" type Option = { value: string label: string type?: 'post' | 'page' | 'product' } const MultiSelect = React.forwardRef< HTMLDivElement, { options: Option[] selected: Option[] onChange: (selected: Option[]) => void placeholder?: string type?: 'post' | 'page' | 'product' disabled?: boolean } >(({ options, selected, onChange, placeholder, type, disabled, ...props }, ref) => { const [isOpen, setIsOpen] = React.useState(false) const filteredOptions = type ? options.filter(option => option.type === type) : options const handleSelect = (value: string) => { const item = filteredOptions.find(opt => opt.value === value) if (item) { if (selected.some(i => i.value === value)) { onChange(selected.filter(i => i.value !== value)) } else { onChange([...selected, item]) } } setIsOpen(true) } const handleUnselect = (item: Option) => { onChange(selected.filter((i) => i.value !== item.value)) } return (