import { type ComponentType, type MouseEvent, type ReactElement, type ReactNode } from "react"; import { type IRichTextWidget } from "@gooddata/sdk-model"; import { type RenderMode } from "../../../types.js"; /** * @alpha */ export interface IRichTextMenuItemButton { type: "button"; itemId: string; itemName: string; onClick?: (e: MouseEvent) => void; /** * If specified, the value is shown on hover of the item as a tooltip. */ tooltip?: string | ReactNode; disabled?: boolean; icon?: ReactElement | string; /** * Additional class names to be applied to the item. */ className?: string; } /** * @alpha */ export interface IIRichTextMenuItemSeparator { type: "separator"; itemId: string; } /** * @alpha */ export type IRichTextMenuItem = IRichTextMenuItemButton | IIRichTextMenuItemSeparator | IRichTextMenuSubmenu; /** * @alpha */ export interface IDashboardRichTextMenuButtonProps { widget: IRichTextWidget; isOpen: boolean; onClick: () => void; items: IRichTextMenuItem[]; } /** * @alpha */ export interface IDashboardRichTextMenuProps { widget: IRichTextWidget; isOpen: boolean; onClose: () => void; items: IRichTextMenuItem[]; } /** * @internal */ export interface IDashboardRichTextMenuTitleProps { widget: IRichTextWidget; renderMode: RenderMode; } /** * @alpha */ export interface IRichTextMenuSubmenuComponentProps { /** * The widget for which the menu is rendered. */ widget: IRichTextWidget; /** * Closes the insight menu. */ onClose: () => void; /** * Go back to the root menu. */ onGoBack: () => void; /** * If true, the title configuration is shown in submenu. * default: true */ enableTitleConfig?: boolean; } /** * @alpha */ export interface IRichTextMenuSubmenu { type: "submenu"; itemId: string; itemName: string; /** @alpha */ SubmenuComponent: ComponentType; /** * Should the submenu component be rendered only? * If so, it won't be wrapped inside the default container * and the default header won't be rendered. * @alpha */ renderSubmenuComponentOnly?: boolean; /** * If specified, the value is shown on hover of the item as a tooltip. */ tooltip?: string | ReactNode; disabled?: boolean; icon?: ReactElement | string; /** * Additional class names to be applied to the item. */ className?: string; onClick?: (e: MouseEvent) => void; } export declare function isRichTextMenuSubmenu(obj: IRichTextMenuItem): obj is IRichTextMenuSubmenu; /** * @alpha */ export type CustomDashboardRichTextMenuButtonComponent = ComponentType; /** * @alpha */ export type CustomDashboardRichTextMenuComponent = ComponentType; /** * @internal */ export type CustomDashboardRichTextMenuTitleComponent = ComponentType; //# sourceMappingURL=types.d.ts.map