"use client"; import * as React from "react"; import * as SelectPrimitive from "@radix-ui/react-select"; import { CheckIcon, ChevronDownIcon, ChevronUpIcon } from "lucide-react"; import { cn } from "@/lib/utils"; function Select({ ...props }: React.ComponentProps) { return ; } function SelectGroup({ ...props }: React.ComponentProps) { return ; } function SelectValue({ ...props }: React.ComponentProps) { return ; } function SelectTrigger({ className, size = "default", children, ...props }: React.ComponentProps & { size?: "sm" | "default"; }) { return ( {children} ); } function SelectContent({ className, children, position = "popper", ...props }: React.ComponentProps) { const contentRef = React.useRef(null); React.useEffect(() => { const element = contentRef.current; if (!element) return; const disableAnimations = () => { element.style.setProperty('animation', 'none', 'important'); element.style.setProperty('transition', 'none', 'important'); // Ne pas toucher au transform car il est utilisé pour le positionnement element.style.setProperty('opacity', '1', 'important'); element.style.setProperty('will-change', 'auto', 'important'); // Supprimer toutes les classes d'animation Tailwind const classesToRemove = Array.from(element.classList).filter(cls => cls.includes('animate') || cls.includes('fade') || cls.includes('zoom') || cls.includes('slide') ); classesToRemove.forEach(cls => element.classList.remove(cls)); }; // Désactiver immédiatement disableAnimations(); // Observer pour les changements d'attributs const observer = new MutationObserver(() => { disableAnimations(); }); observer.observe(element, { attributes: true, attributeFilter: ['class', 'data-state'], subtree: false, }); // Observer pour les changements dans le DOM const domObserver = new MutationObserver(() => { disableAnimations(); }); domObserver.observe(document.body, { childList: true, subtree: true, }); return () => { observer.disconnect(); domObserver.disconnect(); }; }, []); return ( {children} ); } function SelectLabel({ className, ...props }: React.ComponentProps) { return ( ); } function SelectItem({ className, children, ...props }: React.ComponentProps) { return ( {children} ); } function SelectSeparator({ className, ...props }: React.ComponentProps) { return ( ); } function SelectScrollUpButton({ className, ...props }: React.ComponentProps) { return ( ); } function SelectScrollDownButton({ className, ...props }: React.ComponentProps) { return ( ); } export { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, };