UNPKG

@jbrowse/core

Version:

JBrowse 2 core libraries used by plugins

54 lines (53 loc) 1.76 kB
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;