@reusable-ui/modal
Version:
Overlays a dialog to the entire site's page.
27 lines (26 loc) • 2.36 kB
TypeScript
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>>;
}