@jbrowse/core
Version:
JBrowse 2 core libraries used by plugins
54 lines (53 loc) • 1.76 kB
TypeScript
import type { PopoverProps, SvgIconProps } from '@mui/material';
interface MenuItemEndDecorationSubMenuProps {
type: 'subMenu';
}
interface MenuItemEndDecorationSelectorProps {
type: 'checkbox' | 'radio';
checked: boolean;
disabled?: boolean;
}
type MenuItemEndDecorationProps = MenuItemEndDecorationSubMenuProps | MenuItemEndDecorationSelectorProps;
export declare function MenuItemEndDecoration(props: MenuItemEndDecorationProps): import("react/jsx-runtime").JSX.Element;
export interface MenuDivider {
priority?: number;
type: 'divider';
}
export interface MenuSubHeader {
type: 'subHeader';
priority?: number;
label: string;
}
export interface BaseMenuItem {
id?: string;
label: React.ReactNode;
priority?: number;
subLabel?: string;
icon?: React.ComponentType<SvgIconProps>;
disabled?: boolean;
}
export interface NormalMenuItem extends BaseMenuItem {
type?: 'normal';
onClick: (...args: any[]) => void;
}
export interface CheckboxMenuItem extends BaseMenuItem {
type: 'checkbox';
checked: boolean;
onClick: (...args: any[]) => void;
}
export interface RadioMenuItem extends BaseMenuItem {
type: 'radio';
checked: boolean;
onClick: (...args: any[]) => void;
}
export interface SubMenuItem extends BaseMenuItem {
type?: 'subMenu';
subMenu: MenuItem[];
}
export type MenuItem = MenuDivider | MenuSubHeader | NormalMenuItem | CheckboxMenuItem | RadioMenuItem | SubMenuItem;
interface MenuProps extends PopoverProps {
menuItems: MenuItem[];
onMenuItemClick: (event: React.MouseEvent<HTMLLIElement>, callback: (...args: any[]) => void) => void;
}
declare function Menu(props: MenuProps): import("react/jsx-runtime").JSX.Element;
export default Menu;