UNPKG

@navikt/ds-react

Version:

React components from the Norwegian Labour and Welfare Administration.

181 lines (180 loc) 5.35 kB
import React from "react"; import { DialogBody, DialogBodyProps } from "../body/DialogBody.js"; import { DialogCloseTrigger, DialogCloseTriggerProps } from "../close-trigger/DialogCloseTrigger.js"; import { DialogDescription, DialogDescriptionProps } from "../description/DialogDescription.js"; import { DialogFooter, DialogFooterProps } from "../footer/DialogFooter.js"; import { DialogHeader, DialogHeaderProps } from "../header/DialogHeader.js"; import { DialogPopup, DialogPopupProps } from "../popup/DialogPopup.js"; import { DialogTitle, DialogTitleProps } from "../title/DialogTitle.js"; import { DialogTrigger, DialogTriggerProps } from "../trigger/DialogTrigger.js"; interface DialogProps { children: React.ReactNode; /** * Whether the dialog is currently open. */ open?: boolean; /** * Whether the dialog should be initially open. * * To render a controlled dialog, use the `open` prop instead. * @default false */ defaultOpen?: boolean; /** * Event handler called when the dialog is opened or closed. */ onOpenChange?: (nextOpen: boolean, event: Event) => void; /** * Event handler called after any animations complete when the dialog is opened or closed. */ onOpenChangeComplete?: (open: boolean) => void; /** * Updates sub-component padding + DialogTitle and DialogDescription font-size. * @default "medium" */ size?: "medium" | "small"; } interface DialogComponent extends React.FC<DialogProps> { /** * @see 🏷️ {@link DialogTriggerProps} * @example * ```jsx * <Dialog> * <Dialog.Trigger> * <Button>Open dialog</Button> * </Dialog.Trigger> * </Dialog> * ``` */ Trigger: typeof DialogTrigger; /** * @see 🏷️ {@link DialogCloseTriggerProps} * @example * ```jsx * <Dialog> * <Dialog.Popup> * <Dialog.CloseTrigger> * <Button>Close dialog</Button> * </Dialog.CloseTrigger> * </Dialog.Popup> * </Dialog> * ``` */ CloseTrigger: typeof DialogCloseTrigger; /** * @see 🏷️ {@link DialogPopupProps} * @example * ```jsx * <Dialog> * <Dialog.Popup> * ... * </Dialog.Popup> * </Dialog> * ``` */ Popup: typeof DialogPopup; /** * @see 🏷️ {@link DialogHeaderProps} * @example * ```jsx * <Dialog> * <Dialog.Popup> * <Dialog.Header> * <Dialog.Title>Dialog title</Dialog.Title> * </Dialog.Header> * </Dialog.Popup> * </Dialog> * ``` */ Header: typeof DialogHeader; /** * @see 🏷️ {@link DialogTitleProps} * @example * ```jsx * <Dialog> * <Dialog.Popup> * <Dialog.Header> * <Dialog.Title>Dialog title</Dialog.Title> * </Dialog.Header> * </Dialog.Popup> * </Dialog> * ``` */ Title: typeof DialogTitle; /** * @see 🏷️ {@link DialogDescriptionProps} * @example * ```jsx * <Dialog> * <Dialog.Popup> * <Dialog.Header> * <Dialog.Title>Dialog title</Dialog.Title> * <Dialog.Description>Dialog description</Dialog.Description> * </Dialog.Header> * </Dialog.Popup> * </Dialog> * ``` */ Description: typeof DialogDescription; /** * @see 🏷️ {@link DialogBodyProps} * @example * ```jsx * <Dialog> * <Dialog.Popup> * <Dialog.Body> * Dialog body content * </Dialog.Body> * </Dialog.Popup> * </Dialog> * ``` */ Body: typeof DialogBody; /** * @see 🏷️ {@link DialogFooterProps} * @example * ```jsx * <Dialog> * <Dialog.Popup> * <Dialog.Footer> * <Dialog.CloseTrigger> * <Button>Close dialog</Button> * </Dialog.CloseTrigger> * </Dialog.Footer> * </Dialog.Popup> * </Dialog> * ``` */ Footer: typeof DialogFooter; } /** * Dialog component for displaying modal content on top of an application. * @see [📝 Documentation](https://aksel.nav.no/komponenter/core/dialog) * @see 🏷️ {@link DialogProps} * @example * ```jsx * <Dialog> * <Dialog.Trigger> * <Button>Open dialog</Button> * </Dialog.Trigger> * <Dialog.Popup> * <Dialog.Header> * <Dialog.Title>Dialog title</Dialog.Title> * <Dialog.Description>Dialog description</Dialog.Description> * </Dialog.Header> * <Dialog.Body> * Dialog body content * </Dialog.Body> * <Dialog.Footer> * <Dialog.CloseTrigger> * <Button>Close dialog</Button> * </Dialog.CloseTrigger> * </Dialog.Footer> * </Dialog.Popup> * </Dialog> * ``` */ export declare const Dialog: DialogComponent; export default Dialog; export { DialogTrigger, DialogCloseTrigger, DialogHeader, DialogTitle, DialogDescription, DialogBody, DialogFooter, DialogPopup, }; export type { DialogProps, DialogTriggerProps, DialogCloseTriggerProps, DialogHeaderProps, DialogTitleProps, DialogDescriptionProps, DialogBodyProps, DialogFooterProps, DialogPopupProps, };