import * as React from "react" import { Menu as DropdownMenuPrimitive } from "@base-ui/react/menu" import { cn } from "@/lib/utils" import { CheckIcon, ChevronRightIcon } from "lucide-react" import { getAsChildChildren, getAsChildRender } from "@/lib/as-child" import type { ValueOf } from "@/types/utils" const DROPDOWN_MENU_ITEM_VARIANT = { DEFAULT: "default", DESTRUCTIVE: "destructive", } as const type DropdownMenuItemVariant = ValueOf type DropdownMenuItemClickEvent = Parameters['onClick']>>[0] function DropdownMenu({ ...props }: React.ComponentProps) { return } function DropdownMenuPortal({ ...props }: React.ComponentProps) { return ( ) } function DropdownMenuTrigger({ asChild = false, children, ...props }: React.ComponentProps & { asChild?: boolean }) { return ( {getAsChildChildren(asChild, children)} ) } function DropdownMenuContent({ className, align = "start", alignOffset = 0, side = "bottom", sideOffset = 4, ...props }: React.ComponentProps & Pick< React.ComponentProps, "align" | "alignOffset" | "side" | "sideOffset" >) { return ( ) } function DropdownMenuGroup({ ...props }: React.ComponentProps) { return ( ) } function DropdownMenuItem({ className, inset, variant = DROPDOWN_MENU_ITEM_VARIANT.DEFAULT, onClick, onSelect, ...props }: React.ComponentProps & { inset?: boolean variant?: DropdownMenuItemVariant onSelect?: ( event: DropdownMenuItemClickEvent ) => void | Promise }) { const handleClick = async (event: DropdownMenuItemClickEvent) => { if (onClick) { await onClick(event) } if (onSelect) { await onSelect(event) } } return ( ) } function DropdownMenuCheckboxItem({ className, children, checked, ...props }: React.ComponentProps) { return ( {children} ) } function DropdownMenuRadioGroup({ ...props }: React.ComponentProps) { return ( ) } function DropdownMenuRadioItem({ className, children, ...props }: React.ComponentProps) { return ( {children} ) } function DropdownMenuLabel({ className, inset, ...props }: React.ComponentProps<"div"> & { inset?: boolean }) { return (
) } function DropdownMenuSeparator({ className, ...props }: React.ComponentProps) { return ( ) } function DropdownMenuShortcut({ className, ...props }: React.ComponentProps<"span">) { return ( ) } function DropdownMenuSub({ ...props }: React.ComponentProps) { return ( ) } function DropdownMenuSubTrigger({ className, inset, children, ...props }: React.ComponentProps & { inset?: boolean }) { return ( {children} ) } function DropdownMenuSubContent({ align = "start", alignOffset = -3, side = "right", sideOffset = 0, className, ...props }: React.ComponentProps) { return ( ) } export { DropdownMenu, DropdownMenuPortal, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuGroup, DropdownMenuLabel, DropdownMenuItem, DropdownMenuCheckboxItem, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubTrigger, DropdownMenuSubContent, }