UNPKG

@reusable-ui/modal

Version:

Overlays a dialog to the entire site's page.

27 lines (26 loc) 2.36 kB
import { default as React } from 'react'; import { GlobalStackableProps, AutoFocusableProps, ExpandedChangeEvent, CollapsibleProps, CollapsibleEventProps, ControllableCollapsibleProps } from '@reusable-ui/core'; import { GenericProps } from '@reusable-ui/generic'; import { BackdropVariant } from './variants/BackdropVariant.js'; export declare const useModalUiStyleSheet: () => import("@cssfn/css-types").CssScopeMap<"main">; export declare const useBackdropStyleSheet: () => import("@cssfn/css-types").CssScopeMap<"main">; export declare const useNoScrollbarStyleSheet: () => import("@cssfn/css-types").CssScopeMap<"noScrollbarInline" | "noScrollbarBlock">; export interface ModalUiComponentProps<TElement extends Element = HTMLElement> extends Pick<React.HTMLAttributes<HTMLElement>, 'tabIndex'> { children: React.ReactElement<GenericProps<TElement> | React.HTMLAttributes<HTMLElement> | React.SVGAttributes<SVGElement>>; } export type ModalActionType = 'shortcut' | 'backdrop' | 'ui' | {}; export interface ModalExpandedChangeEvent<TData extends any = any> extends ExpandedChangeEvent { actionType: ModalActionType; data?: TData; } export interface ModalProps<TElement extends Element = HTMLElement, TModalExpandedChangeEvent extends ModalExpandedChangeEvent<any> = ModalExpandedChangeEvent<any>> extends Omit<GenericProps<TElement>, 'children'>, GlobalStackableProps, AutoFocusableProps, CollapsibleProps<TModalExpandedChangeEvent>, CollapsibleEventProps, ControllableCollapsibleProps<TModalExpandedChangeEvent>, BackdropVariant, ModalUiComponentProps<Element> { lazy?: boolean; } declare const Modal: <TElement extends Element = HTMLElement, TModalExpandedChangeEvent extends ModalExpandedChangeEvent<any> = ModalExpandedChangeEvent<any>>(props: ModalProps<TElement, TModalExpandedChangeEvent>) => JSX.Element | null; export { Modal, Modal as default, }; export interface ModalComponentProps<TElement extends Element = HTMLElement, TModalExpandedChangeEvent extends ModalExpandedChangeEvent<any> = ModalExpandedChangeEvent<any>> { modalRef?: React.Ref<TElement>; backdropStyle?: ModalProps<TElement, TModalExpandedChangeEvent>['backdropStyle']; viewport?: ModalProps<TElement, TModalExpandedChangeEvent>['viewport']; modalComponent?: React.ReactComponentElement<any, ModalProps<TElement, TModalExpandedChangeEvent>>; }