import * as React from "react" import * as PopoverPrimitive from "@radix-ui/react-popover" import { cn } from "@/lib/utils" // Enhanced Popover with controlled open state const PopoverRoot = React.forwardRef< React.ElementRef, React.ComponentPropsWithoutRef >(({ open, defaultOpen, onOpenChange, ...props }, ref) => { // Control open state manually to prevent unwanted closures const [isOpen, setIsOpen] = React.useState(defaultOpen || false); // Sync with parent's open state React.useEffect(() => { if (open !== undefined) { setIsOpen(open); } }, [open]); // Notify parent of open state changes const handleOpenChange = (newOpen: boolean) => { setIsOpen(newOpen); if (onOpenChange) { onOpenChange(newOpen); } }; return ( ); }); PopoverRoot.displayName = "PopoverRoot"; const Popover = PopoverRoot // Enhanced trigger with touch event handling const PopoverTrigger = React.forwardRef< React.ElementRef, React.ComponentPropsWithoutRef >(({ ...props }, ref) => ( )) PopoverTrigger.displayName = PopoverPrimitive.Trigger.displayName const PopoverContent = React.forwardRef< React.ElementRef, React.ComponentPropsWithoutRef >(({ className, align = "center", sideOffset = 4, ...props }, ref) => ( )) PopoverContent.displayName = PopoverPrimitive.Content.displayName export { Popover, PopoverTrigger, PopoverContent }