synapse-react-client
Version:
[](https://badge.fury.io/js/synapse-react-client) [](https://github.com/prettier/prettie
38 lines • 1.72 kB
TypeScript
import React from 'react';
import { ComponentElement, PropsWithChildren, ReactNode } from 'react';
import { IconSvgProps } from '../IconSvg/IconSvg';
type CustomImageProps = {
svgImg: ComponentElement<any, any>;
altText: string;
};
export type TooltipVisualProps = {
delayShow: number;
place: 'top' | 'right' | 'bottom' | 'left';
type: 'dark' | 'success' | 'warning' | 'error' | 'info' | 'light';
effect: 'float' | 'solid';
border?: boolean;
};
/*****************************************
* The control needs to either have a child element or needs to have an image supplied
* If the child element is supplied the control renders the child applying additional properties
* If the image is supplied the control renders a clickable image
* If there are no children and callback Fn is not supplied it is assumed to be a a dropdown trigger
*/
type ElementWithTooltipProps = PropsWithChildren<{
image?: IconSvgProps | CustomImageProps;
imageColor?: string;
tooltipText: string;
callbackFn?: () => void;
className?: string;
tooltipVisualProps?: Partial<TooltipVisualProps>;
darkTheme?: boolean;
size?: string;
icon?: ReactNode;
/** The items to show in the menu -- NOTE: this cannot be a Fragment!
* @see https://stackoverflow.com/questions/75083605/mui-the-menu-component-doesnt-accept-a-fragment-as-a-child-consider-providing
*/
menuItems?: React.ReactNode;
}>;
export declare const ElementWithTooltip: ({ image, callbackFn, tooltipText, className, imageColor, tooltipVisualProps, children, darkTheme, size, icon, menuItems, }: ElementWithTooltipProps) => React.ReactNode;
export {};
//# sourceMappingURL=ElementWithTooltip.d.ts.map