TypeScript 97.5%
SQL 1.4%
Python 0.8%
1"use client";2import * as React from "react";3import * as DialogPrimitive from "@radix-ui/react-dialog";4import { X } from "lucide-react";5import { cn } from "@/lib/utils";67export const Dialog = DialogPrimitive.Root;8export const DialogTrigger = DialogPrimitive.Trigger;9export const DialogClose = DialogPrimitive.Close;10export const DialogPortal = DialogPrimitive.Portal;1112export const DialogContent = React.forwardRef<React.ElementRef<typeof DialogPrimitive.Content>, React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content> & { size?: "sm" | "md" | "lg" | "xl" }>(13 ({ className, children, size = "md", ...props }, ref) => (14 <DialogPortal>15 <DialogPrimitive.Overlay className="fixed inset-0 z-50 bg-black/40 backdrop-blur-[2px] data-[state=open]:animate-fade-in" />16 <DialogPrimitive.Content17 ref={ref}18 className={cn(19 "fixed left-1/2 top-1/2 z-50 grid w-[calc(100%-2rem)] -translate-x-1/2 -translate-y-1/2 gap-4 rounded-xl border border-border bg-bg-elevated p-6 shadow-lg data-[state=open]:animate-fade-up",20 size === "sm" && "max-w-sm",21 size === "md" && "max-w-md",22 size === "lg" && "max-w-2xl",23 size === "xl" && "max-w-4xl",24 className,25 )}26 {...props}27 >28 {children}29 <DialogPrimitive.Close className="absolute right-3.5 top-3.5 rounded-sm p-1 text-fg-subtle transition-colors hover:bg-bg-muted hover:text-fg focus:outline-none focus-visible:ring-2 focus-visible:ring-accent/40">30 <X className="size-4" />31 <span className="sr-only">Close</span>32 </DialogPrimitive.Close>33 </DialogPrimitive.Content>34 </DialogPortal>35 ),36);37DialogContent.displayName = "DialogContent";3839export function DialogHeader({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) {40 return <div className={cn("flex flex-col gap-1 text-left", className)} {...props} />;41}42export function DialogFooter({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) {43 return <div className={cn("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end", className)} {...props} />;44}45export const DialogTitle = React.forwardRef<React.ElementRef<typeof DialogPrimitive.Title>, React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>>(({ className, ...props }, ref) => (46 <DialogPrimitive.Title ref={ref} className={cn("text-base font-semibold leading-tight tracking-tight", className)} {...props} />47));48DialogTitle.displayName = "DialogTitle";49export const DialogDescription = React.forwardRef<React.ElementRef<typeof DialogPrimitive.Description>, React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>>(({ className, ...props }, ref) => (50 <DialogPrimitive.Description ref={ref} className={cn("text-[13px] text-fg-muted leading-relaxed", className)} {...props} />51));52DialogDescription.displayName = "DialogDescription";53