@neuctra/ui
Version:
A modern, responsive, customizable React UI component library powered by Tailwind CSS and Vite.
68 lines (67 loc) • 2.86 kB
TypeScript
import { default as React, ReactNode, CSSProperties } from 'react';
import { ButtonProps } from './Button';
export interface DrawerProps {
isOpen: boolean;
onClose: () => void;
children?: ReactNode;
renderContent?: (close: () => void) => ReactNode;
position?: "left" | "right" | "top" | "bottom";
size?: string;
disableOverlayClose?: boolean;
/** Also block Escape. Defaults to `disableOverlayClose`. */
disableEscapeClose?: boolean;
/** Accessible name for the dialog when no DrawerHeader is used. */
ariaLabel?: string;
overlayClassName?: string;
overlayStyle?: CSSProperties;
/** Applied to the sliding panel that hosts the drawer content. */
panelClassName?: string;
}
export declare function Drawer({ isOpen, onClose, children, renderContent, position, size, disableOverlayClose, disableEscapeClose, ariaLabel, overlayClassName, overlayStyle, panelClassName, }: DrawerProps): import("react/jsx-runtime").JSX.Element;
export interface DrawerContentProps {
children: ReactNode;
className?: string;
style?: CSSProperties;
}
export declare function DrawerContent({ children, className, style, }: DrawerContentProps): import("react/jsx-runtime").JSX.Element;
export declare function DrawerBody({ children, className, style, }: {
children: ReactNode;
className?: string;
style?: CSSProperties;
}): import("react/jsx-runtime").JSX.Element;
export interface DrawerHeaderProps {
title?: string;
icon?: ReactNode;
onClose?: () => void;
className?: string;
style?: CSSProperties;
titleWrapperClassName?: string;
titleClassName?: string;
closeButtonClassName?: string;
}
export declare function DrawerHeader({ title, icon, onClose, className, style, titleWrapperClassName, titleClassName, closeButtonClassName, }: DrawerHeaderProps): import("react/jsx-runtime").JSX.Element;
export declare function DrawerFooter({ children, className, style, }: {
children: ReactNode;
className?: string;
style?: CSSProperties;
}): import("react/jsx-runtime").JSX.Element;
export interface DrawerTriggerProps extends ButtonProps {
children: React.ReactNode;
drawerContent: (props: {
close: () => void;
}) => React.ReactNode;
/** Forwarded to the underlying <Drawer />. */
drawerProps?: Omit<DrawerProps, "isOpen" | "onClose" | "children">;
}
export declare function DrawerTriggerButton({ children, drawerContent, drawerProps, onClick, ...props }: DrawerTriggerProps): import("react/jsx-runtime").JSX.Element;
export interface DrawerButtonProps {
label?: string;
icon?: ReactNode;
iconPosition?: "left" | "right";
onClick?: () => void;
className?: string;
style?: React.CSSProperties;
labelClassName?: string;
iconClassName?: string;
}
export declare const DrawerButton: React.FC<DrawerButtonProps>;