UNPKG

@codegouvfr/react-dsfr

Version:

French State Design System React integration library

47 lines (46 loc) 1.48 kB
import { type CSSProperties, type ReactNode } from "react"; import type { FrIconClassName, RiIconClassName } from "../fr/generatedFromCss/classNames"; import { ButtonProps } from "../Button"; export type ModalProps = { className?: string; /** Default: "medium" */ size?: "small" | "medium" | "large"; title: ReactNode; children: ReactNode; /** Default: true */ concealingBackdrop?: boolean; topAnchor?: boolean; iconId?: FrIconClassName | RiIconClassName; buttons?: [ModalProps.ActionAreaButtonProps, ...ModalProps.ActionAreaButtonProps[]] | ModalProps.ActionAreaButtonProps; style?: CSSProperties; }; export declare namespace ModalProps { type ActionAreaButtonProps = ButtonProps & { /** Default: true */ doClosesModal?: boolean; }; } declare const addModalTranslations: (params: { lang: string; messages: Partial<{ close: string; }>; }) => void; export { addModalTranslations }; /** @see <https://components.react-dsfr.codegouv.studio/?path=/docs/components-modal> */ export declare function createModal(params: { isOpenedByDefault: boolean; id: string; }): { buttonProps: { /** Only for analytics, feel free to overwrite */ id: string; "aria-controls": string; "data-fr-opened": boolean; }; Component: (props: ModalProps) => JSX.Element; close: () => void; open: () => void; isOpenedByDefault: boolean; id: string; };