"use client"; import * as React from "react"; import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu"; import { CheckIcon, ChevronDownIcon, ChevronRightIcon, DotFilledIcon, } from "@radix-ui/react-icons"; import { cn } from "@eloquent/styles"; import { itemVariants, labelVariants, subTriggerVariants, iconVariants, baseVariants, } from "./variants"; import { CheckboxItemElement, CheckboxItemProps, ContentElement, ContentProps, IconProps, ItemElement, ItemProps, LabelElement, LabelProps, RadioItemElement, RadioItemProps, SeparatorElement, SeparatorProps, ShortcutProps, SubContentElement, SubContentProps, SubTriggerElement, SubTriggerProps, TriggerElement, TriggerProps, } from "./DropdownMenu.props"; const { checkboxItem, checkboxItemIcon, checkboxItemIconWrapper, content, radioItem, radioItemIcon, radioItemIconWrapper, separator, shortcut, subContent, subTriggerIcon, trigger, triggerIcon, } = baseVariants(); const Root = DropdownMenuPrimitive.Root; const Trigger = React.forwardRef( ({ className, children, ...props }, ref) => ( {typeof children === "string" ? ( ) : ( children )} ) ); Trigger.displayName = DropdownMenuPrimitive.Trigger.displayName; const Group = DropdownMenuPrimitive.Group; const Portal = DropdownMenuPrimitive.Portal; const Sub = DropdownMenuPrimitive.Sub; const RadioGroup = DropdownMenuPrimitive.RadioGroup; const SubTrigger = React.forwardRef( ({ className, inset, children, ...props }, ref) => ( {children} ) ); SubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName; const SubContent = React.forwardRef( ({ className, ...props }, ref) => ( ) ); SubContent.displayName = DropdownMenuPrimitive.SubContent.displayName; const Content = React.forwardRef( ({ className, align = "start", sideOffset = 4, ...props }, ref) => ( ) ); Content.displayName = DropdownMenuPrimitive.Content.displayName; const Item = React.forwardRef( ({ className, inset, ...props }, ref) => ( ) ); Item.displayName = DropdownMenuPrimitive.Item.displayName; const Icon = ({ className, position, ...props }: IconProps) => { return (
); }; Icon.displayName = "DropdownMenuIcon"; const CheckboxItem = React.forwardRef( ({ className, children, checked, ...props }, ref) => ( {children} ) ); CheckboxItem.displayName = DropdownMenuPrimitive.CheckboxItem.displayName; const RadioItem = React.forwardRef( ({ className, children, ...props }, ref) => ( {children} ) ); RadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName; const Label = React.forwardRef( ({ className, inset, ...props }, ref) => ( ) ); Label.displayName = DropdownMenuPrimitive.Label.displayName; const Separator = React.forwardRef( ({ className, ...props }, ref) => ( ) ); Separator.displayName = DropdownMenuPrimitive.Separator.displayName; const Shortcut = ({ className, ...props }: ShortcutProps) => { return ; }; Shortcut.displayName = "DropdownMenuShortcut"; export const DropdownMenu = { Root, Trigger, Content, Item, Icon, CheckboxItem, RadioItem, Label, Separator, Shortcut, Group, Portal, Sub, SubContent, SubTrigger, RadioGroup, };