import { PropsWithChildren } from 'react'; import { Size } from '../ModalContainer'; export interface ModalProps extends PropsWithChildren { isOpen: boolean; rootId?: string; variant?: 'default' | 'full' | 'bottom'; size?: Size; overflow?: 'auto' | 'visible' | 'hidden' | 'scroll'; isBackgroundBlack?: boolean; isFixedHeight?: boolean; isPreventScroll?: boolean; needCleanup?: boolean; className?: string; onClose?: () => void; } /** * 모달 창을 표시하는 컴포넌트입니다. * * @component * @param {object} props - 모달 컴포넌트 속성 * @param {boolean} props.isOpen - 모달의 표시 여부를 결정합니다 * @param {string} [props.rootId] - 모달이 마운트될 DOM 요소의 ID입니다 * @param {'default' | 'full' | 'bottom'} [props.variant='default'] - 모달의 형태를 지정합니다 (default, full, bottom) * @param {'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'full'} [props.size='md'] - 모달의 크기를 지정합니다 (xs, sm, md, lg, xl, full) * @param {'auto' | 'visible' | 'hidden' | 'scroll'} [props.overflow='auto'] - 모달 내용의 오버플로우 처리 방식을 지정합니다 (auto, visible, hidden, scroll) * @param {boolean} [props.isBackgroundBlack=true] - 배경색을 검정색으로 할지 여부를 결정합니다 * @param {boolean} [props.isFixedHeight] - 바텀 시트 모달의 고정 높이 사용 여부를 결정합니다 * @param {boolean} [props.isPreventScroll=true] - 모달 외부 스크롤 방지 여부를 결정합니다 * @param {boolean} [props.needCleanup=true] - 모달이 닫힐 때 Portal 정리 여부를 결정합니다 * @param {string} [props.className] - 모달 컨테이너에 적용될 클래스 이름입니다 * @param {() => void} [props.onClose] - 모달이 닫힐 때 실행될 콜백 함수입니다 * @param {React.ReactNode} props.children - 모달 내부에 표시될 컨텐츠입니다 * * @example * // 기본 모달 * *
모달 내용
*
* * // 전체 화면 모달 * *
전체 화면 모달 내용
*
* * // 바텀 시트 모달 * *
바텀 시트 내용
*
*/ declare const Modal: ({ isOpen, rootId, variant, size, overflow, isBackgroundBlack, isFixedHeight, isPreventScroll, className, onClose, needCleanup, children, }: ModalProps) => import("react/jsx-runtime").JSX.Element; export { Modal };