import { MenuTriggerProps } from "react-stately"; import { AriaMenuProps } from "@react-aria/menu"; import { Placement } from "@react-aria/overlays"; import { BaseProps, CanHaveIcon, LoadingProps } from "../../../types"; import { Popover } from "../../Overlays/Popover"; import { MenuTrigger } from "../Menu/MenuTrigger"; import { Menu, MenuSectionProps } from "../Menu"; import { IconButton } from "@components/Buttons/IconButton"; import { ButtonVariants } from "@components/Buttons/Button"; import { ItemProps } from "@components/Collection"; import { CollectionChildren } from "@react-types/shared"; export type IconMenuProps = AriaMenuProps & MenuTriggerProps & BaseProps & CanHaveIcon & LoadingProps & { isDisabled?: boolean; buttonVariant?: ButtonVariants; menuPlacement?: Placement; children: CollectionChildren; }; export function IconMenu(props: IconMenuProps) { const { trigger, isOpen, defaultOpen, onOpenChange, selectedKeys, defaultSelectedKeys, onSelectionChange, disabledKeys, onAction, onClose, autoFocus, disallowEmptySelection, "aria-describedby": ariaDescribedby, "aria-label": ariaLabel, "aria-describedby": ariaDescribedBy, "aria-labelledby": ariaLabelledby, items, id, selectionMode, shouldFocusWrap, children, menuPlacement = "bottom right", icon = "more_vert", ...buttonProps } = props; return ( {props.children} ); } IconMenu.displayName = "IconMenu"; const IconMenuItem = (props: ItemProps) => ; IconMenuItem.displayName = "IconMenu.Item"; /** * @deprecated use `Item` instead */ IconMenu.Item = IconMenuItem; const IconMenuSection = (props: MenuSectionProps) => ( ); IconMenuSection.displayName = "IconMenu.Section"; /** * @deprecated use `Section` instead */ IconMenu.Section = IconMenuSection; export default IconMenu;