import { type BezierComponentProps, type ChildrenProps, type SideContentProps } from "../../types/props"; import { type ZIndex } from "../../types/tokens"; export type ModalTitleSize = 'l' | 'm'; type BoxSide = 'top' | 'right' | 'bottom' | 'left'; interface ModalOwnProps { /** * The controlled open state of the modal. * Must be used in conjunction with `onShow` and `onHide`. */ show?: boolean; /** * The open state of the modal when it is initially rendered. * Use when you **do not need to control** its open state. */ defaultShow?: boolean; /** * Callback function to be called when the modal is opened. */ onShow?: () => void; /** * Callback function to be called when the modal is closed. */ onHide?: () => void; } interface ModalContentOwnProps { /** * Specify a container element to portal the content into. * @default document.body */ container?: HTMLElement | null; /** * Show close icon button that closes the modal when clicked. * @default false */ showCloseIcon?: boolean; /** * Decides whether modal closes when clicked outside * @default false */ preventHideOnOutsideClick?: boolean; /** * Width of the modal. * @default 'max-content' */ width?: React.CSSProperties['width']; /** * Height of the modal. * @default 'fit-content' */ height?: React.CSSProperties['height']; /** * z-index of the modal content. * Rather than using this option, Please check modal is positioned in the proper stacking context. * @default 'modal' */ zIndex?: ZIndex; /** * Determine padding of overlay that contains modal content. * @default { top: 40, bottom: 40 } */ collisionPadding?: number | Partial>; } interface ModalHeaderOwnProps { /** * An accessible title to be announced when the modal is opened. */ title: React.ReactNode; /** * An accessible subtitle to be announced when the modal is opened. */ subtitle?: React.ReactNode; /** * An accessible description to be announced when the modal is opened. */ description?: React.ReactNode; /** * Size of the title * @default 'l' */ titleSize?: ModalTitleSize; /** * Hides content from the screen in an accessible way. * @default false */ hidden?: boolean; } type ModalFooterSideContent = React.ReactNode; interface ModalFooterOwnProps extends SideContentProps { } export interface ModalProps extends ChildrenProps, ModalOwnProps { } export interface ModalContentProps extends BezierComponentProps<'div'>, ChildrenProps, ModalContentOwnProps { } export interface ModalHeaderProps extends Omit, keyof ModalHeaderOwnProps>, ModalHeaderOwnProps { } export interface ModalBodyProps extends BezierComponentProps<'div'>, ChildrenProps { } export interface ModalFooterProps extends BezierComponentProps<'footer'>, ModalFooterOwnProps { } export interface ModalTriggerProps extends ChildrenProps { } export interface ModalCloseProps extends ChildrenProps { } export interface ModalContentPropsContextValue extends Required> { } export {}; //# sourceMappingURL=Modal.types.d.ts.map