UNPKG

@xcritical/popover

Version:
56 lines (55 loc) 1.66 kB
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';