@xcritical/popover
Version:
56 lines (55 loc) • 1.66 kB
TypeScript
import { MouseEvent } from 'react';
import { CSSObject, CSSProperties } from 'styled-components';
import { IThemeNamespace } from '@xcritical/theme';
import { Position } from '@xcritical/popper';
export interface IPopover {
children: any;
content: any;
position: Position;
autoFlip?: boolean;
positionFixed?: boolean;
shouldFitContainer?: boolean;
withArrow?: boolean;
visible?: boolean;
autoContentSize?: boolean;
preventOverflowViewport?: boolean;
hoverOutTimeout?: number;
trigger?: 'hover' | 'click';
onVisibleChange?: (visible: boolean) => void;
theme?: IThemeNamespace<IPopoverTheme>;
appearance?: string;
baseAppearance?: string;
convertStyles?: (styles: CSSProperties) => CSSProperties;
className?: string;
classNamePrefix?: string;
onOutsideClick?: (e: Event) => void;
}
export interface IPopoverTheme {
content?: CSSObject & {
offset?: string;
};
arrow?: {
offset?: string;
size?: string;
background?: string;
border?: {
width?: string;
color?: string;
};
};
wrapper?: CSSObject;
}
export interface IPopoverEvents {
onMouseOver?: (e: MouseEvent) => void;
onMouseOut?: (e: MouseEvent) => void;
}
export interface IContent extends IThemed {
shouldFitContainer?: boolean;
}
export declare type IWrapperProps = IThemed;
export interface IThemed {
theme: IThemeNamespace<IPopoverTheme>;
appearance: string;
baseAppearance: string;
}
export declare type ArrowDirection = 'top' | 'right' | 'bottom' | 'left';