@activecollab/components
Version:
ActiveCollab Components
46 lines • 1.59 kB
TypeScript
import { FC, ReactNode, MouseEvent, ReactElement, Ref } from "react";
import { Placement } from "@popperjs/core";
interface ElementWithRef<T> extends ReactElement {
ref?: Ref<T>;
}
export type MenuMode = "normal" | "wider" | "tiny" | "widest";
export interface IMenu {
/** Menu content */
children: ReactNode | ((childProps: {
forceClose: () => void;
}) => JSX.Element);
/** On menu element click */
onMenuClick?: (event: MouseEvent<HTMLElement>) => void;
/** Handle scroll bar */
handleScroll?: boolean;
/** Disable Focus Lock */
disableFocusLock?: boolean;
/** Menu width mode */
mode?: MenuMode;
/** Should menu be open when it's mounted */
open?: boolean;
/** Callback triggered when modal has been opened */
onOpen?: () => void;
/** Callback triggered when modal has been closed */
onClose?: () => void;
/** Before close callback */
onBeforeClose?: () => boolean;
/** Position Menu */
position?: Placement;
/** Target element */
target?: ElementWithRef<Element>;
className?: string;
/** Menu classes */
menuClassName?: string;
/** Popper class name*/
popperClassName?: string;
/** Background style for clickable element after the menu is open (opacity, color, etc...) */
backgroundElementClass?: string;
/** Should Window be positioned absolutely */
windowAbsolutelyPositioned?: boolean;
/** Popper on open */
onPopperOpen?: (...args: any[]) => void;
}
export declare const Menu: FC<IMenu>;
export {};
//# sourceMappingURL=Menu.d.ts.map