UNPKG

@orca-fe/pocket

Version:

UI components by orca-team

43 lines (42 loc) 1.87 kB
import type { ForwardedRef, ReactNode, RefObject } from 'react'; import React from 'react'; export type Bounds = { top: number; left: number; width: number; height: number; }; export type ContextMenuItemType = { key: string; text: ReactNode; children?: ContextMenuItemWithSplitType[]; disabled?: boolean; icon?: ReactNode; extra?: ReactNode; onClick?: (e: React.MouseEvent) => any; }; export type ContextMenuItemWithSplitType = ContextMenuItemType | 'split-line'; export type MenuItemProps = Omit<React.HTMLAttributes<HTMLDivElement>, 'children'> & Omit<ContextMenuItemType, 'key'> & { menuKey: string; hasIcon?: boolean; onMenuClick?: (menu: ContextMenuItemType, event: React.MouseEvent) => void; }; export declare const MenuItem: (props: MenuItemProps) => import("react/jsx-runtime").JSX.Element; export interface MenuContainerProps extends React.HTMLAttributes<HTMLDivElement> { bounds?: Bounds; data?: ContextMenuItemWithSplitType[]; onMenuClick?: (menu: ContextMenuItemType, event: React.MouseEvent) => void; } export declare const MenuContainer: (props: MenuContainerProps) => import("react/jsx-runtime").JSX.Element; export interface ContextMenuProps<T extends ContextMenuItemType> extends React.HTMLAttributes<HTMLDivElement> { data?: (T | 'split-line')[] | ((el: HTMLElement | null) => (T | 'split-line')[]); onMenuClick?: (menu: T, event: React.MouseEvent) => void; getContainer?: (element: HTMLElement) => HTMLElement; menuContainerClassName?: string; mainMenuMinWidth?: number; wrapperStyle?: React.CSSProperties; disabled?: boolean; ref?: RefObject<HTMLDivElement>; } declare const _default: <T extends ContextMenuItemType>(props: ContextMenuProps<T>, pRef: ForwardedRef<HTMLDivElement>) => import("react/jsx-runtime").JSX.Element; export default _default;