import * as React from 'react'; import {SIZE} from '../../constants'; export type SizeClassNames = 'modalSizeXs' | 'modalSizeS' | 'modalSizeM' | 'modalSizeL' | 'modalSizeXl'; export interface IStyles { modal?: React.CSSProperties; container?: React.CSSProperties; header?: React.CSSProperties; headerContent?: React.CSSProperties; closeIconContainer?: React.CSSProperties; closeIcon?: React.CSSProperties; body?: React.CSSProperties; footer?: React.CSSProperties; } export interface IProps extends React.HTMLAttributes { isOpen: boolean; header?: React.ReactNode; footer?: React.ReactNode; size?: SIZE; shouldCloseOnClickOutside?: boolean; shouldCloseOnEsc?: boolean; hasCloseIcon?: boolean; noBodyPadding?: boolean; styles?: IStyles; onClose?: () => void; 'data-qaid'?: string; animation?: ModalAnimation; } export enum ModalAnimation { FlipTop = 'FlipTop', Slit = 'Slit', Fade = 'Fade', None = 'none' } type DefaultPropsKeys = 'shouldCloseOnClickOutside' | 'shouldCloseOnEsc' | 'hasCloseIcon' | 'data-qaid' | 'animation'; export type DefaultProps = Required>; export type PropsWithDefault = IProps & DefaultProps;