import React, { useState, useRef, useEffect } from 'react'; import { ChevronDown, Check } from 'lucide-react'; import { motion, AnimatePresence } from 'framer-motion'; export const Select = ({ value, onChange, options, placeholder = "Select an option", className = "", buttonClassName = "", disabled = false, ...props }) => { const [isOpen, setIsOpen] = useState(false); const containerRef = useRef(null); useEffect(() => { const handleClickOutside = (e) => { if (containerRef.current && !containerRef.current.contains(e.target)) { setIsOpen(false); } }; document.addEventListener('mousedown', handleClickOutside); return () => document.removeEventListener('mousedown', handleClickOutside); }, []); const selectedOption = options.find(opt => String(opt.value) === String(value)) || null; return (
{isOpen && (
{options.map((option) => ( ))}
)}
); };