"use client" import * as React from "react" import { Menu as MenuPrimitive } from "@base-ui/react/menu" import { Check, ChevronRight, Circle } from "lucide-react" import { cn } from "@/lib/utils/client" const DropdownMenu = MenuPrimitive.Root const DropdownMenuTrigger = React.forwardRef< HTMLButtonElement, React.ComponentPropsWithoutRef & { asChild?: boolean } >(({ asChild, children, ...props }, ref) => { if (asChild) { const child = children as React.ReactElement> const isNonButton = child?.type === 'label' || child?.type === 'div' || child?.type === 'span' || child?.type === 'a' return } return {children} }) DropdownMenuTrigger.displayName = "DropdownMenuTrigger" const DropdownMenuGroup = MenuPrimitive.Group const DropdownMenuPortal = MenuPrimitive.Portal const DropdownMenuSub = MenuPrimitive.SubmenuRoot const DropdownMenuRadioGroup = MenuPrimitive.RadioGroup const DropdownMenuSubTrigger = React.forwardRef< HTMLDivElement, React.ComponentPropsWithoutRef & { inset?: boolean } >(({ className, inset, children, ...props }, ref) => ( {children} )) DropdownMenuSubTrigger.displayName = "DropdownMenuSubTrigger" const DropdownMenuSubContent = React.forwardRef< HTMLDivElement, React.ComponentPropsWithoutRef >(({ className, ...props }, ref) => ( )) DropdownMenuSubContent.displayName = "DropdownMenuSubContent" const DropdownMenuContent = React.forwardRef< HTMLDivElement, React.ComponentPropsWithoutRef & { sideOffset?: number side?: "top" | "bottom" | "left" | "right" align?: "start" | "center" | "end" } >(({ className, sideOffset = 4, side, align, ...props }, ref) => ( )) DropdownMenuContent.displayName = "DropdownMenuContent" const DropdownMenuItem = React.forwardRef< HTMLDivElement, React.ComponentPropsWithoutRef & { inset?: boolean asChild?: boolean } >(({ className, inset, asChild, children, ...props }, ref) => { if (asChild) { return ( svg]:size-4 [&>svg]:shrink-0", inset && "pl-8", className )} render={children as React.ReactElement} {...props} /> ) } return ( svg]:size-4 [&>svg]:shrink-0", inset && "pl-8", className )} {...props} >{children} ) }) DropdownMenuItem.displayName = "DropdownMenuItem" const DropdownMenuCheckboxItem = React.forwardRef< HTMLDivElement, React.ComponentPropsWithoutRef >(({ className, children, checked, ...props }, ref) => ( {children} )) DropdownMenuCheckboxItem.displayName = "DropdownMenuCheckboxItem" const DropdownMenuRadioItem = React.forwardRef< HTMLDivElement, React.ComponentPropsWithoutRef >(({ className, children, ...props }, ref) => ( {children} )) DropdownMenuRadioItem.displayName = "DropdownMenuRadioItem" const DropdownMenuLabel = React.forwardRef< HTMLDivElement, React.HTMLAttributes & { inset?: boolean } >(({ className, inset, ...props }, ref) => (
)) DropdownMenuLabel.displayName = "DropdownMenuLabel" const DropdownMenuSeparator = React.forwardRef< HTMLDivElement, React.HTMLAttributes >(({ className, ...props }, ref) => (
)) DropdownMenuSeparator.displayName = "DropdownMenuSeparator" const DropdownMenuShortcut = ({ className, ...props }: React.HTMLAttributes) => { return ( ) } DropdownMenuShortcut.displayName = "DropdownMenuShortcut" export { DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuItem, DropdownMenuCheckboxItem, DropdownMenuRadioItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuGroup, DropdownMenuPortal, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuRadioGroup, }