import {
type ReactNode,
useEffect,
useRef,
useState,
type ComponentProps,
type ComponentType,
type SVGProps,
type CSSProperties,
} from 'react';
import { Button } from './Button';
import { Text } from './Text';
import { theme } from './theme';
import { Toggle } from './Toggle';
import { View } from './View';
const MenuLine: unique symbol = Symbol('menu-line');
const MenuLabel: unique symbol = Symbol('menu-label');
Menu.line = MenuLine;
Menu.label = MenuLabel;
type KeybindingProps = {
keyName: ReactNode;
};
function Keybinding({ keyName }: KeybindingProps) {
return (
{keyName}
);
}
export type MenuItemObject = {
type?: Type;
name: NameType;
disabled?: boolean;
icon?: ComponentType>;
iconSize?: number;
text: string;
key?: string;
toggle?: boolean;
tooltip?: string;
};
export type MenuItem =
| MenuItemObject
| MenuItemObject
| typeof Menu.line;
function isLabel(
item: MenuItemObject | MenuItemObject,
): item is MenuItemObject {
return item.type === Menu.label;
}
type MenuProps = {
header?: ReactNode;
footer?: ReactNode;
items: Array