import * as React from "react"; import type { ToneProp } from "../../props/vocabulary/index.js"; import type { AlertDialogProp, DialogContentProp, DialogProp } from "../../props/components/feedback.prop.js"; export type { AlertDialogProp, AlertDialogProp as AlertDialogProps, DialogProp, DialogProp as DialogProps, DialogContentProp, DialogContentProp as DialogContentProps, } from "../../props/components/feedback.prop.js"; interface OverlayOpenProps { /** Trạng thái mở, có kiểm soát. */ open?: boolean; /** Trạng thái mở ban đầu khi không kiểm soát. */ defaultOpen?: boolean; /** Gọi khi trạng thái mở đổi. */ onOpenChange?: (open: boolean) => void; } interface DialogRootProps extends OverlayOpenProps, Pick { /** * `false` = hộp thoại không-modal (WAI-ARIA APG cho phép): trang phía sau vẫn tương tác được và * vẫn trong cây trợ năng, không khoá cuộn, không màn nền, bấm ra ngoài không đóng; tiêu điểm vào * hộp thoại khi mở, Tab ra được, Esc (tiêu điểm ở trong) đóng. Xem đầu tệp, mục gh#696. */ modal?: boolean; children?: React.ReactNode; } /** `data-slot="dialog"` cũ nằm trên Root của Radix, thứ không dựng thẻ nào — nó chưa từng ra DOM. */ declare function DialogRoot({ children, modal, variant, ...openProps }: DialogRootProps): React.JSX.Element; interface DialogTriggerProps extends React.ComponentPropsWithRef<"button"> { /** Mượn thẻ của con thay vì dựng `