import { useEffect } from "react"; import type { ReactNode } from "react"; import { Plus, Trash2 } from "lucide-react"; import { canvasThemes } from "@/lib/canvas-theme"; import { useThemeStore } from "@/stores/use-theme-store"; import type { ContextMenuState } from "@/types/canvas"; export function CanvasNodeContextMenu({ menu, onClose, onDuplicate, onDelete }: { menu: ContextMenuState; onClose: () => void; onDuplicate: () => void; onDelete: () => void }) { const theme = canvasThemes[useThemeStore((state) => state.theme)]; useEffect(() => { const close = (event: PointerEvent) => { const target = event.target; if (target instanceof Element && target.closest(".ant-popover")) return; onClose(); }; window.addEventListener("pointerdown", close); return () => window.removeEventListener("pointerdown", close); }, [onClose]); return (