import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu"; import { forwardRef, type ComponentPropsWithoutRef, type ElementRef, type HTMLAttributes } from "react"; import { dropdownMenuContentVariants, dropdownMenuItemVariants, dropdownMenuLabelVariants, dropdownMenuSeparatorVariants } from "./dropdown-menu.variants"; import { cn } from "../lib/cn"; import type { VariantProps } from "../lib/cva"; import { createDataAttributes, createSlot } from "../lib/contracts"; export const DropdownMenu = DropdownMenuPrimitive.Root; export const DropdownMenuTrigger = DropdownMenuPrimitive.Trigger; export const DropdownMenuGroup = DropdownMenuPrimitive.Group; export const DropdownMenuPortal = DropdownMenuPrimitive.Portal; export const DropdownMenuSub = DropdownMenuPrimitive.Sub; export const DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup; export type DropdownMenuContentProps = ComponentPropsWithoutRef & VariantProps; export const DropdownMenuContent = forwardRef< ElementRef, DropdownMenuContentProps >(function DropdownMenuContent( { className, sideOffset = 8, size, ...props }, ref ) { return ( ); }); export type DropdownMenuSubContentProps = ComponentPropsWithoutRef & VariantProps; export const DropdownMenuSubContent = forwardRef< ElementRef, DropdownMenuSubContentProps >(function DropdownMenuSubContent( { className, sideOffset = 10, size, ...props }, ref ) { return ( ); }); export type DropdownMenuItemProps = ComponentPropsWithoutRef & VariantProps; export const DropdownMenuItem = forwardRef< ElementRef, DropdownMenuItemProps >(function DropdownMenuItem( { className, inset, variant, ...props }, ref ) { return ( ); }); export type DropdownMenuCheckboxItemProps = ComponentPropsWithoutRef & VariantProps; export const DropdownMenuCheckboxItem = forwardRef< ElementRef, DropdownMenuCheckboxItemProps >(function DropdownMenuCheckboxItem( { checked, children, className, inset = true, variant, ...props }, ref ) { return ( {children} ); }); export type DropdownMenuRadioItemProps = ComponentPropsWithoutRef & VariantProps; export const DropdownMenuRadioItem = forwardRef< ElementRef, DropdownMenuRadioItemProps >(function DropdownMenuRadioItem( { children, className, inset = true, variant, ...props }, ref ) { return ( {children} ); }); export type DropdownMenuLabelProps = ComponentPropsWithoutRef & VariantProps; export const DropdownMenuLabel = forwardRef< ElementRef, DropdownMenuLabelProps >(function DropdownMenuLabel({ className, inset, ...props }, ref) { return ( ); }); export const DropdownMenuSeparator = forwardRef< ElementRef, ComponentPropsWithoutRef >(function DropdownMenuSeparator({ className, ...props }, ref) { return ( ); }); export type DropdownMenuSubTriggerProps = ComponentPropsWithoutRef & VariantProps; export const DropdownMenuSubTrigger = forwardRef< ElementRef, DropdownMenuSubTriggerProps >(function DropdownMenuSubTrigger( { children, className, inset, variant, ...props }, ref ) { return ( {children} ); }); export function DropdownMenuShortcut({ className, ...props }: HTMLAttributes) { return ( ); }