import { Menu as AriaMenu, MenuItem as AriaMenuItemMenuItem, MenuTrigger as AriaMenuTrigger, Section as AriaSection, Popover, } from "react-aria-components"; import type { MenuProps, MenuTriggerProps } from "react-aria-components"; import Button from "../button/Button"; import { tv } from "tailwind-variants"; export const menu = tv({ slots: { menuPopover: "border-border-default bg-white data-[entering]:animate-fade data-[exiting]:animate-fadeOut overflow-auto rounded-md border shadow-border", content: "flex h-fit w-56 flex-col gap-2 p-2 outline-none", item: "data-[focused]:text-blue-700 border border-transparent data-[focused]:border data-[focused]:border-border-default data-[focused]:shadow-border font-medium relative flex cursor-pointer justify-between rounded-md p-2 outline-none", }, }); const { menuPopover, content, item } = menu(); const MenuTrigger = AriaMenuTrigger; const Section = AriaSection; interface MyMenuButtonProps extends MenuProps, Omit { label?: string; } function MyMenuButton({ label, children, ...props }: MyMenuButtonProps) { return ( {children} ); } const MenuConent = ({ children, className, ...props }: any & { className?: string }) => ( {children} ); const MenuItem = ({ children, className, ...props }: any & { className?: string }) => ( {children} ); export { MenuConent, MenuItem, MenuTrigger, Section, MyMenuButton };