'use client'; import { AbsoluteCenter, Menu as ChakraMenu, Portal } from '@chakra-ui/react'; import * as React from 'react'; import { LuCheck, LuChevronRight } from 'react-icons/lu'; interface MenuContentProps extends ChakraMenu.ContentProps { portalled?: boolean; portalRef?: React.RefObject; } export const MenuContent = React.forwardRef( function MenuContent(props, ref) { const { portalled = true, portalRef, ...rest } = props; return ( ); }, ); export const MenuArrow = React.forwardRef< HTMLDivElement, ChakraMenu.ArrowProps >(function MenuArrow(props, ref) { return ( ); }); export const MenuCheckboxItem = React.forwardRef< HTMLDivElement, ChakraMenu.CheckboxItemProps >(function MenuCheckboxItem(props, ref) { return ( { props.children } ); }); export const MenuRadioItem = React.forwardRef< HTMLDivElement, ChakraMenu.RadioItemProps >(function MenuRadioItem(props, ref) { const { children, ...rest } = props; return ( { children } ); }); export const MenuItemGroup = React.forwardRef< HTMLDivElement, ChakraMenu.ItemGroupProps >(function MenuItemGroup(props, ref) { const { title, children, ...rest } = props; return ( { title && ( { title } ) } { children } ); }); export interface MenuTriggerItemProps extends ChakraMenu.ItemProps { startIcon?: React.ReactNode; } export const MenuTriggerItem = React.forwardRef< HTMLDivElement, MenuTriggerItemProps >(function MenuTriggerItem(props, ref) { const { startIcon, children, ...rest } = props; return ( { startIcon } { children } ); }); export const MenuRadioItemGroup = ChakraMenu.RadioItemGroup; export const MenuContextTrigger = ChakraMenu.ContextTrigger; export const MenuRoot = (props: ChakraMenu.RootProps) => { const { lazyMount = true, unmountOnExit = true, ...rest } = props; const positioning = { placement: 'bottom-start' as const, ...props.positioning, offset: { mainAxis: 4, ...props.positioning?.offset, }, }; return ; }; export const MenuSeparator = ChakraMenu.Separator; export const MenuItem = ChakraMenu.Item; export const MenuItemText = ChakraMenu.ItemText; export const MenuItemCommand = ChakraMenu.ItemCommand; export const MenuTrigger = ChakraMenu.Trigger;