import type { ReactNode } from "react"; import { ChevronDown, ChevronRight } from "lucide-react"; import { cn, relativeTime } from "../lib/utils"; import { Button } from "@/components/ui/button"; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuLabel, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuTrigger, } from "@/components/ui/dropdown-menu"; export type DocumentFrameHeaderRevision = { id: string; revisionNumber: number; createdAt: string | Date; actorLabel: string; }; export type DocumentFrameHeaderRevisionMenu = { open: boolean; onOpenChange: (open: boolean) => void; loading: boolean; revisions: DocumentFrameHeaderRevision[]; selectedRevisionId: string | null; currentRevisionId: string | null; displayedRevisionNumber: number; historicalPreview: boolean; onSelectRevision: (revisionId: string, isCurrentRevision: boolean) => void; }; export interface DocumentFrameHeaderProps { documentKey: string; documentLabel?: string; folded: boolean; onToggleFolded: () => void; revisionMenu?: DocumentFrameHeaderRevisionMenu; updatedAt?: string | Date | null; updatedHref?: string; sourceTrustSlot?: ReactNode; annotationSlot?: ReactNode; titleSlot?: ReactNode; actionsSlot?: ReactNode; } export function DocumentFrameHeader({ documentKey, documentLabel, folded, onToggleFolded, revisionMenu, updatedAt, updatedHref, sourceTrustSlot, annotationSlot, titleSlot, actionsSlot, }: DocumentFrameHeaderProps) { return (