"use client" import * as React from "react" import { cva } from "class-variance-authority" import { cn } from "cn" import { composeRenderProps, Header as HeaderPrimitive, MenuItem as MenuItemPrimitive, Menu as MenuPrimitive, MenuSection as MenuSectionPrimitive, MenuTrigger as MenuTriggerPrimitive, Popover as PopoverPrimitive, Separator as SeparatorPrimitive, SubmenuTrigger as SubmenuTriggerPrimitive, type MenuItemProps as MenuItemPrimitiveProps, type MenuSectionProps as MenuSectionPrimitiveProps, } from "react-aria-components" import { IconPlaceholder } from "@/app/(create)/components/icon-placeholder" function ContextMenu({ "data-slot": dataSlot = "context-menu-content", placement = "bottom start", offset = 4, crossOffset = 0, className, children, ...props }: Omit< React.ComponentProps>, "children" | "className" > & Pick< React.ComponentProps, "placement" | "offset" | "crossOffset" > & { "data-slot"?: string className?: string children?: React.ReactNode }) { return ( {children} ) } function ContextMenuTrigger({ ...props }: Omit, "trigger">) { return ( ) } function ContextMenuGroup({ ...props }: Omit, "children"> & { children?: React.ReactNode }) { return } function ContextMenuLabel({ className, inset, ...props }: React.ComponentProps & { inset?: boolean }) { return ( ) } const contextMenuItemVariants = cva( "group/context-menu-item relative flex cursor-default items-center outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0", { variants: { selectionMode: { none: "cn-context-menu-item", single: "cn-context-menu-radio-item", multiple: "cn-context-menu-checkbox-item", }, }, } ) function ContextMenuItem({ className, inset, variant = "default", children, ...props }: MenuItemPrimitiveProps & { inset?: boolean variant?: "default" | "destructive" }) { return ( cn(contextMenuItemVariants({ selectionMode }), className) )} {...props} > {composeRenderProps( children, (children, { isSelected, selectionMode }) => ( <> {selectionMode !== "none" ? ( {isSelected ? ( ) : null} ) : null} {children} ) )} ) } function ContextMenuSub({ ...props }: React.ComponentProps) { return } function ContextMenuSubTrigger({ className, inset, children, ...props }: MenuItemPrimitiveProps & { inset?: boolean }) { return ( {composeRenderProps(children, (children) => ( <> {children} ))} ) } function ContextMenuSubContent({ placement = "end top", crossOffset = -3, offset = 0, className, ...props }: React.ComponentProps) { return ( ) } function ContextMenuSeparator({ className, ...props }: React.ComponentProps) { return ( ) } function ContextMenuShortcut({ className, ...props }: React.ComponentProps<"span">) { return ( ) } export { ContextMenu, ContextMenuTrigger, ContextMenuItem, ContextMenuLabel, ContextMenuSeparator, ContextMenuShortcut, ContextMenuGroup, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, }