@neuctra/ui
Version:
A modern, responsive, customizable React UI component library powered by Tailwind CSS and Vite.
70 lines (69 loc) • 3.12 kB
TypeScript
import { default as React, ReactNode, CSSProperties } from 'react';
import { ButtonProps } from './Button';
export interface ModalProps {
isOpen: boolean;
onClose: () => void;
children: ReactNode;
disableOverlayClose?: boolean;
/** Also block Escape. Defaults to `disableOverlayClose`. */
disableEscapeClose?: boolean;
/** Accessible name for the dialog when no ModalHeader is used. */
ariaLabel?: string;
overlayClassName?: string;
overlayStyle?: CSSProperties;
style?: CSSProperties;
/** The `role="dialog"` wrapper around `children`. */
dialogClassName?: string;
}
export declare function Modal({ isOpen, onClose, children, disableOverlayClose, disableEscapeClose, ariaLabel, overlayClassName, overlayStyle, style, dialogClassName, }: ModalProps): import("react/jsx-runtime").JSX.Element;
export interface ModalContentProps {
children: ReactNode;
className?: string;
style?: CSSProperties;
maxWidth?: string;
onClose?: () => void;
showCloseButton?: boolean;
closeButtonClassName?: string;
closeButtonStyle?: CSSProperties;
}
export declare function ModalContent({ children, className, style, maxWidth, onClose, showCloseButton, closeButtonClassName, closeButtonStyle, }: ModalContentProps): import("react/jsx-runtime").JSX.Element;
export interface ModalHeaderProps {
title?: string;
icon?: ReactNode;
onClose?: () => void;
className?: string;
style?: CSSProperties;
/** Wrapper around `icon` + `title`. */
titleWrapperClassName?: string;
iconClassName?: string;
titleClassName?: string;
closeButtonClassName?: string;
}
export declare function ModalHeader({ title, icon, onClose, className, style, titleWrapperClassName, iconClassName, titleClassName, closeButtonClassName, }: ModalHeaderProps): import("react/jsx-runtime").JSX.Element;
export interface ModalBodyProps {
children: ReactNode;
className?: string;
style?: CSSProperties;
}
export declare function ModalBody({ children, className, style }: ModalBodyProps): import("react/jsx-runtime").JSX.Element;
export interface ModalFooterProps {
children: ReactNode;
className?: string;
style?: CSSProperties;
}
export declare function ModalFooter({ children, className, style }: ModalFooterProps): import("react/jsx-runtime").JSX.Element;
export interface ModalButtonProps extends ButtonProps {
onClose?: () => void;
closeOnClick?: boolean;
action?: () => void | Promise<void>;
}
export declare function ModalButton({ onClose, closeOnClick, action, onClick, disabled, ...rest }: ModalButtonProps): import("react/jsx-runtime").JSX.Element;
export interface ModalTriggerButtonProps extends ButtonProps {
children: React.ReactNode;
modalContent: (props: {
close: () => void;
}) => React.ReactNode;
/** Forwarded to the underlying <Modal />. */
modalProps?: Omit<ModalProps, "isOpen" | "onClose" | "children">;
}
export declare function ModalTriggerButton({ children, modalContent, modalProps, onClick, ...props }: ModalTriggerButtonProps): import("react/jsx-runtime").JSX.Element;