@i-novus/ui-core
Version:
Базовые UI компоненты
42 lines (41 loc) • 1.86 kB
TypeScript
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;
}>;