import type { CSSProperties, HTMLAttributes, ReactNode } from 'react'
import {
Overlay,
OverlayClose,
OverlayContent,
OverlayDescription,
OverlayFooter,
OverlayHeader,
OverlayTitle,
OverlayTrigger,
} from './Overlay'
/* Dialog is a thin skin over the shared Overlay primitive — all behavior
(focus trap, Escape, scroll lock, focus restore, aria wiring) lives there. */
export type DialogProps = {
children: ReactNode
open?: boolean
defaultOpen?: boolean
onOpenChange?: (open: boolean) => void
}
export function Dialog(props: DialogProps) {
return
}
export function DialogTrigger(props: Parameters[0]) {
return
}
export function DialogContent({ children, className }: { children: ReactNode; className?: string }) {
return (
{children}
)
}
export function DialogHeader({ className, style, ...props }: HTMLAttributes) {
const defaultStyle: CSSProperties = { marginBottom: 'var(--space-4)', ...style }
return
}
export function DialogTitle({ className, style, ...props }: HTMLAttributes) {
const defaultStyle: CSSProperties = {
margin: 0,
fontSize: 'var(--text-xl)',
fontWeight: 700,
color: 'var(--foreground)',
letterSpacing: '-0.03em',
...style,
}
return
}
export function DialogDescription({ className, style, ...props }: HTMLAttributes) {
const defaultStyle: CSSProperties = {
margin: 0,
fontSize: 'var(--text-sm)',
color: 'var(--muted-foreground)',
lineHeight: 1.5,
...style,
}
return
}
export function DialogFooter({ className, style, ...props }: HTMLAttributes) {
const defaultStyle: CSSProperties = { marginTop: 'var(--space-6)', ...style }
return
}
export function DialogClose(props: Parameters[0]) {
return
}