import { ModalContentProps, ModalProps, ModalHeaderProps, ModalBodyProps, ModalFooterProps } from "@chakra-ui/react"; /** Curated Chakra ModalProps; overlay* override the theme scrim, contentProps spreads onto ModalContent. */ export type ChakraModelProps = Pick & { /** Overrides the theme scrim colour on ModalOverlay. */ overlaybg?: string; /** Chakra `backdropFilter` value applied to the scrim, e.g. `blur(4px)`. */ overlaybackdropFilter?: string; /** Chakra `backdropInvert` value applied to the scrim, e.g. `80%`. */ overlaybackdropInvert?: string; /** Chakra `backdropBlur` value applied to the scrim, e.g. `4px` or `sm`. */ overlaybackdropBlur?: string; /** Dialog width from `xs` to `6xl`; `full` fills the viewport. Required. */ size: "xs" | "sm" | "md" | "lg" | "xl" | "2xl" | "3xl" | "4xl" | "5xl" | "6xl" | "full"; /** Only ModalHeader/ModalBody/ModalFooter render, matched by type through nested Fragments; any other child is dropped (dev console.warn) — use `portalChildren`. */ children?: React.ReactNode; /** Spinner replaces body and footer; header and close button stay. */ isLoading?: boolean; /** Header text; ignored when a ModalHeader child is passed. */ title?: React.ReactNode; /** Muted line under the header; renders a header even without `title`. */ subtitle?: React.ReactNode; /** Hides the top-right close (X) button; Esc and overlay click still close unless disabled. */ hideCloseButton?: boolean; /** Spread onto ModalContent last, so it overrides `aria-busy` and theme styles. */ contentProps?: ModalContentProps; /** Rendered inside the modal's dialog after the slots (so live regions stay announced); nested dialogs portal out and keep focus here. Unmounts with the modal. */ portalChildren?: React.ReactNode; }; /** Chakra style props (padding, borderBottom, gap, sx, ...) spread onto the rendered ModalHeader; omit to keep theme defaults. */ export type ModalHeaderSlotProps = ModalHeaderProps; /** Chakra style props (padding, borderTop, gap, sx, ...) spread onto the rendered ModalBody; omit to keep theme defaults. */ export type ModalBodySlotProps = ModalBodyProps; /** Chakra style props (padding, borderTop, gap, justify, sx, ...) spread onto the rendered ModalFooter; omit to keep theme defaults. */ export type ModalFooterSlotProps = ModalFooterProps;