import { ExtendComponent, Factory, MantineRadius, MantineShadow, MantineThemeComponent, RemoveScroll, StylesApiProps } from '@mantine/core'; import { ComponentPropsWithRef, ReactNode } from 'react'; import { ScrollAreaComponent, VaulClasses } from './types'; import { VaulBody } from './VaulBody'; import { VaulContent } from './VaulContent'; import { VaulDescription } from './VaulDescription'; import { VaulFooter } from './VaulFooter'; import { VaulHandler } from './VaulHandler'; import { VaulHeader } from './VaulHeader'; import { VaulOverlay } from './VaulOverlay'; import { VaulPortal } from './VaulPortal'; import { VaulTarget } from './VaulTarget'; import { VaulTitle } from './VaulTitle'; export type VaulDirection = 'top' | 'bottom' | 'left' | 'right'; export type VaulStylesNames = 'content' | 'overlay' | 'header' | 'title' | 'handler' | 'body' | 'footer' | 'description' | 'target' | 'closeTarget'; export type VaulCssVariables = { content: '--vaul-radius' | '--vaul-z-index' | '--vaul-handler-radius'; overlay: '--vaul-overlay-z-index'; }; export interface BaseVaulRootProps { defaultActiveSnapPoint?: number | string | null; activeSnapPoint?: number | string | null; setActiveSnapPoint?: (snapPoint: number | string | null | undefined) => void; dismissible?: boolean; defaultOpened?: boolean; opened?: boolean; onOpenChange?: (value: boolean) => void; onCloseAnimationEnd?: () => void; direction?: VaulDirection; snapPoints?: (string | number)[]; fadeFromIndex?: number; scrollLockTimeout?: number; closeThreshold?: number; maxHeight?: number | string; portalTarget?: HTMLElement | null; closeOnClickOutside?: boolean; closeOnEscape?: boolean; radius?: MantineRadius; handlerRadius?: MantineRadius; shadow?: MantineShadow; zIndex?: number; overlayZIndex?: number; trapFocus?: boolean; returnFocus?: boolean; lockScroll?: boolean; scrollAreaComponent?: ScrollAreaComponent; removeScrollProps?: Omit, 'children'>; } export interface VaulRootProps extends BaseVaulRootProps, StylesApiProps { __staticSelector?: string; children: ReactNode; } export type VaulRootFactory = Factory<{ props: VaulRootProps; stylesNames: VaulStylesNames; vars: VaulCssVariables; staticComponents: { Root: typeof VaulRoot; Portal: typeof VaulPortal; Overlay: typeof VaulOverlay; Content: typeof VaulContent; Body: typeof VaulBody; Header: typeof VaulHeader; Title: typeof VaulTitle; Description: typeof VaulDescription; Footer: typeof VaulFooter; Handler: typeof VaulHandler; Target: typeof VaulTarget; CloseTarget: typeof VaulTarget; }; }>; export declare const VaulRoot: { (_props: VaulRootProps): import("react/jsx-runtime").JSX.Element; displayName: string; classes: VaulClasses; extend: (c: ExtendComponent) => MantineThemeComponent; Root: any; Portal: { (_props: import('./VaulPortal').VaulPortalProps): import("react/jsx-runtime").JSX.Element; displayName: string; extend: (c: ExtendComponent) => MantineThemeComponent; }; Content: import('@mantine/core').MantineComponent<{ props: import('./VaulContent').VaulContentProps; ref: HTMLDivElement; stylesNames: import('./VaulContent').VaulContentStylesNames; compound: true; }>; Overlay: import('@mantine/core').MantineComponent<{ props: import('./VaulOverlay').VaulOverlayProps; ref: HTMLDivElement; stylesNames: import('./VaulOverlay').VaulOverlayStylesNames; compound: true; }>; Handler: import('@mantine/core').MantineComponent<{ props: import('./VaulHandler').VaulHandlerProps; ref: HTMLDivElement; stylesNames: import('./VaulHandler').VaulHandlerStylesNames; compound: true; }>; Header: import('@mantine/core').MantineComponent<{ props: import('./VaulHeader').VaulHeaderProps; ref: HTMLDivElement; stylesNames: import('./VaulHeader').VaulHeaderStylesNames; compound: true; }>; Title: ((props: import('@mantine/core').PolymorphicComponentProps) => React.ReactElement) & Omit, "component" | keyof import('./VaulTitle').VaulTitleProps> & { ref?: any; renderRoot?: ((props: any) => any) | undefined; }) | (import('./VaulTitle').VaulTitleProps & { component: import('react').ElementType; renderRoot?: ((props: Record) => any) | undefined; })>, never> & import('@mantine/core/lib/core/factory/factory').ThemeExtend<{ props: import('./VaulTitle').VaulTitleProps; ref: HTMLHeadingElement; defaultRef: HTMLHeadingElement; defaultComponent: "h2"; stylesNames: import('./VaulTitle').VaulTitleStylesNames; compound: true; }> & import('@mantine/core/lib/core/factory/factory').ComponentClasses<{ props: import('./VaulTitle').VaulTitleProps; ref: HTMLHeadingElement; defaultRef: HTMLHeadingElement; defaultComponent: "h2"; stylesNames: import('./VaulTitle').VaulTitleStylesNames; compound: true; }> & import('@mantine/core/lib/core/factory/polymorphic-factory').PolymorphicComponentWithProps<{ props: import('./VaulTitle').VaulTitleProps; ref: HTMLHeadingElement; defaultRef: HTMLHeadingElement; defaultComponent: "h2"; stylesNames: import('./VaulTitle').VaulTitleStylesNames; compound: true; }> & Record; Description: ((props: import('@mantine/core').PolymorphicComponentProps) => React.ReactElement) & Omit, "component" | keyof import('./VaulDescription').VaulDescriptionProps> & { ref?: any; renderRoot?: ((props: any) => any) | undefined; }) | (import('./VaulDescription').VaulDescriptionProps & { component: import('react').ElementType; renderRoot?: ((props: Record) => any) | undefined; })>, never> & import('@mantine/core/lib/core/factory/factory').ThemeExtend<{ props: import('./VaulDescription').VaulDescriptionProps; ref: HTMLHeadingElement; defaultRef: HTMLHeadingElement; defaultComponent: "p"; stylesNames: import('./VaulDescription').VaulDescriptionStylesNames; compound: true; }> & import('@mantine/core/lib/core/factory/factory').ComponentClasses<{ props: import('./VaulDescription').VaulDescriptionProps; ref: HTMLHeadingElement; defaultRef: HTMLHeadingElement; defaultComponent: "p"; stylesNames: import('./VaulDescription').VaulDescriptionStylesNames; compound: true; }> & import('@mantine/core/lib/core/factory/polymorphic-factory').PolymorphicComponentWithProps<{ props: import('./VaulDescription').VaulDescriptionProps; ref: HTMLHeadingElement; defaultRef: HTMLHeadingElement; defaultComponent: "p"; stylesNames: import('./VaulDescription').VaulDescriptionStylesNames; compound: true; }> & Record; Body: import('@mantine/core').MantineComponent<{ props: import('./VaulBody').VaulBodyProps; ref: HTMLDivElement; stylesNames: import('./VaulBody').VaulBodyStylesNames; compound: true; }>; Footer: import('@mantine/core').MantineComponent<{ props: import('./VaulFooter').VaulFooterProps; ref: HTMLDivElement; stylesNames: import('./VaulFooter').VaulFooterStylesNames; compound: true; }>; Target: ((props: import('@mantine/core').PolymorphicComponentProps) => React.ReactElement) & Omit, "component" | keyof import('./VaulTarget').VaulTargetProps> & { ref?: any; renderRoot?: ((props: any) => any) | undefined; }) | (import('./VaulTarget').VaulTargetProps & { component: import('react').ElementType; renderRoot?: ((props: Record) => any) | undefined; })>, never> & import('@mantine/core/lib/core/factory/factory').ThemeExtend<{ props: import('./VaulTarget').VaulTargetProps; defaultRef: HTMLButtonElement; defaultComponent: "button"; compound: true; }> & import('@mantine/core/lib/core/factory/factory').ComponentClasses<{ props: import('./VaulTarget').VaulTargetProps; defaultRef: HTMLButtonElement; defaultComponent: "button"; compound: true; }> & import('@mantine/core/lib/core/factory/polymorphic-factory').PolymorphicComponentWithProps<{ props: import('./VaulTarget').VaulTargetProps; defaultRef: HTMLButtonElement; defaultComponent: "button"; compound: true; }> & Record; CloseTarget: ((props: import('@mantine/core').PolymorphicComponentProps) => React.ReactElement) & Omit, "component" | keyof import('./VaulCloseTarget').VaulCloseTargetProps> & { ref?: any; renderRoot?: ((props: any) => any) | undefined; }) | (import('./VaulCloseTarget').VaulCloseTargetProps & { component: import('react').ElementType; renderRoot?: ((props: Record) => any) | undefined; })>, never> & import('@mantine/core/lib/core/factory/factory').ThemeExtend<{ props: import('./VaulCloseTarget').VaulCloseTargetProps; defaultRef: HTMLButtonElement; defaultComponent: "button"; compound: true; }> & import('@mantine/core/lib/core/factory/factory').ComponentClasses<{ props: import('./VaulCloseTarget').VaulCloseTargetProps; defaultRef: HTMLButtonElement; defaultComponent: "button"; compound: true; }> & import('@mantine/core/lib/core/factory/polymorphic-factory').PolymorphicComponentWithProps<{ props: import('./VaulCloseTarget').VaulCloseTargetProps; defaultRef: HTMLButtonElement; defaultComponent: "button"; compound: true; }> & Record; };