"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, };