/* Copyright 2026 Marimo. All rights reserved. */ import type { VariantProps } from "class-variance-authority"; import { Check, ChevronRight, Circle } from "lucide-react"; import { DropdownMenu as DropdownMenuPrimitive } from "radix-ui"; import React from "react"; import { StyleNamespace } from "@/theme/namespace"; import { cn } from "@/utils/cn"; import { MAX_HEIGHT_OFFSET, withFullScreenAsRoot, withSmartCollisionBoundary, } from "./fullscreen"; import { MenuShortcut, menuContentCommon, menuControlCheckVariants, menuControlVariants, menuItemVariants, menuLabelVariants, menuSeparatorVariants, menuSubTriggerVariants, } from "./menu-items"; const DropdownMenu = DropdownMenuPrimitive.Root; const DropdownMenuTrigger = DropdownMenuPrimitive.Trigger; const DropdownMenuGroup = DropdownMenuPrimitive.Group; const DropdownMenuPortal = withFullScreenAsRoot(DropdownMenuPrimitive.Portal); const InternalDropdownMenuContent = withSmartCollisionBoundary( DropdownMenuPrimitive.Content, ); const InternalDropdownMenuSubContent = withSmartCollisionBoundary( DropdownMenuPrimitive.SubContent, ); const DropdownMenuSub = DropdownMenuPrimitive.Sub; const DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup; const DropdownMenuSubTrigger = React.forwardRef< React.ComponentRef, React.ComponentPropsWithoutRef & { inset?: boolean; showChevron?: boolean; } >(({ className, inset, showChevron = true, children, ...props }, ref) => ( {children} {showChevron && } )); DropdownMenuSubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName; const DropdownMenuSubContent = React.forwardRef< React.ComponentRef, React.ComponentPropsWithoutRef >(({ className, ...props }, ref) => ( )); DropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName; const DropdownMenuContent = React.forwardRef< React.ComponentRef, React.ComponentPropsWithoutRef & { scrollable?: boolean; } >(({ className, scrollable = true, sideOffset = 4, ...props }, ref) => ( )); DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName; const DropdownMenuItem = React.forwardRef< React.ComponentRef, React.ComponentPropsWithoutRef & VariantProps >(({ className, inset, variant, ...props }, ref) => ( )); DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName; const DropdownMenuCheckboxItem = React.forwardRef< React.ComponentRef, React.ComponentPropsWithoutRef >(({ className, children, checked, ...props }, ref) => ( {children} )); DropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive.CheckboxItem.displayName; const DropdownMenuRadioItem = React.forwardRef< React.ComponentRef, React.ComponentPropsWithoutRef >(({ className, children, ...props }, ref) => ( {children} )); DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName; const DropdownMenuLabel = React.forwardRef< React.ComponentRef, React.ComponentPropsWithoutRef & { inset?: boolean; } >(({ className, inset, ...props }, ref) => ( )); DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName; const DropdownMenuSeparator = React.forwardRef< React.ComponentRef, React.ComponentPropsWithoutRef >(({ className, ...props }, ref) => ( )); DropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName; const DropdownMenuShortcut = MenuShortcut; export { DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuItem, DropdownMenuCheckboxItem, DropdownMenuRadioItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuGroup, DropdownMenuPortal, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuRadioGroup, };