UNPKG

@i-novus/ui-core

Version:

Базовые UI компоненты

42 lines (41 loc) 1.86 kB
import { FC, HTMLAttributes, MouseEvent, KeyboardEvent, ButtonHTMLAttributes, ReactNode } from 'react'; import { OnAfterOpenCallback } from 'react-modal'; import { CompoundComponent, ComponentBaseProps } from '../core'; export interface ModalProps extends ComponentBaseProps, HTMLAttributes<HTMLDivElement> { backdrop?: boolean | 'static'; getContainer?(): HTMLElement; onAfterClose?(): void; onAfterOpen?: OnAfterOpenCallback; onClose?(event: MouseEvent | KeyboardEvent): void; open: boolean; scrollable?: boolean; size?: 'sm' | 'lg'; } export interface ModalHeaderProps extends ComponentBaseProps, HTMLAttributes<HTMLDivElement> { closeIcon?: ReactNode; onClose?(): void; showCloseButton?: boolean; } export interface ModalContentProps extends ComponentBaseProps, HTMLAttributes<HTMLDivElement> { } export interface ModalFooterProps extends ComponentBaseProps, HTMLAttributes<HTMLDivElement> { cancelText?: string; cancelVariant?: 'primary' | 'secondary' | 'delete' | 'link' | 'link-delete' | 'link-cancel'; disabled?: boolean; loading?: boolean; okText?: string; okVariant?: 'primary' | 'secondary' | 'delete' | 'link' | 'link-delete' | 'link-cancel'; onCancel?(): void; onOk?(): void; } export type CloseButtonProps = ComponentBaseProps & Pick<ButtonHTMLAttributes<HTMLButtonElement>, 'onClick' | 'className'> & Pick<ModalHeaderProps, 'closeIcon'>; export declare const ModalBody: FC<ModalProps>; export declare const CloseButton: FC<CloseButtonProps>; export declare const ModalHeader: FC<ModalHeaderProps>; export declare const ModalContent: FC<ModalContentProps>; export declare const ModalFooter: FC<ModalFooterProps>; export declare const Modal: CompoundComponent<ModalProps, { Content: typeof ModalContent; Footer: typeof ModalFooter; Header: typeof ModalHeader; }>;