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}
);
}