UNPKG

@neuctra/ui

Version:

A modern, responsive, customizable React UI component library powered by Tailwind CSS and Vite.

70 lines (69 loc) 3.12 kB
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;