import * as React from "react" import * as DialogPrimitive from "@radix-ui/react-dialog" import { cn } from "@/lib/utils" import { X } from "lucide-react" const Dialog = DialogPrimitive.Root const DialogTrigger = DialogPrimitive.Trigger const DialogPortal = DialogPrimitive.Portal const DialogClose = DialogPrimitive.Close const DialogOverlay = React.forwardRef< React.ElementRef, React.ComponentPropsWithoutRef >(({ className, ...props }, ref) => ( )) DialogOverlay.displayName = DialogPrimitive.Overlay.displayName interface DialogContentProps extends React.ComponentPropsWithoutRef { /** 阻止点击外部关闭(用于 Tour 运行时) */ preventOutsideClose?: boolean /** 隐藏默认关闭按钮(当使用自定义关闭按钮时) */ hideCloseButton?: boolean } const DialogContent = React.forwardRef< React.ElementRef, DialogContentProps >(({ className, children, preventOutsideClose = false, hideCloseButton = false, ...props }, ref) => ( e.preventDefault() : undefined} onInteractOutside={preventOutsideClose ? (e) => e.preventDefault() : undefined} {...props} > {children} {!hideCloseButton && ( Close )} )) DialogContent.displayName = DialogPrimitive.Content.displayName const DialogHeader = ({ className, ...props }: React.HTMLAttributes) => (
) DialogHeader.displayName = "DialogHeader" const DialogFooter = ({ className, ...props }: React.HTMLAttributes) => (
) DialogFooter.displayName = "DialogFooter" const DialogTitle = React.forwardRef< React.ElementRef, React.ComponentPropsWithoutRef >(({ className, ...props }, ref) => ( )) DialogTitle.displayName = DialogPrimitive.Title.displayName const DialogDescription = React.forwardRef< React.ElementRef, React.ComponentPropsWithoutRef >(({ className, ...props }, ref) => ( )) DialogDescription.displayName = DialogPrimitive.Description.displayName export { Dialog, DialogPortal, DialogOverlay, DialogTrigger, DialogClose, DialogContent, DialogHeader, DialogFooter, DialogTitle, DialogDescription, }