import { Icon } from "@thorium/ui/Icon"; import { cn } from "@thorium/utils/cn"; import React from "react"; import { Menu as AriaMenu, MenuItem as AriaMenuItem, MenuSection as AriaMenuSection, MenuTrigger as AriaMenuTrigger, SubmenuTrigger as AriaSubmenuTrigger, type MenuItemProps, type MenuProps, type MenuSectionProps, type MenuTriggerProps, type SubmenuTriggerProps, Popover, Text, } from "react-aria-components"; import "./Menu.css"; export function MenuTrigger(props: MenuTriggerProps) { const [trigger, menu] = React.Children.toArray(props.children) as [ React.ReactElement, React.ReactElement, ]; return ( {trigger} {menu} ); } export function Menu(props: MenuProps) { return ( {props.children} ); } export function MenuItem(props: Omit & { children?: React.ReactNode }) { const textValue = props.textValue || (typeof props.children === "string" ? props.children : undefined); return ( {({ hasSubmenu, isSelected, selectionMode }) => ( <> {isSelected && selectionMode === "multiple" ? : null} {isSelected && selectionMode === "single" ? : null} {typeof props.children === "string" ? ( {props.children} ) : ( props.children )} {hasSubmenu && } )} ); } export function MenuSection(props: MenuSectionProps) { return ; } export function SubmenuTrigger(props: SubmenuTriggerProps) { const [trigger, menu] = React.Children.toArray(props.children) as [ React.ReactElement, React.ReactElement, ]; return ( {trigger} {menu} ); }