import type { ReactNode } from "react"; import Link from "next/link"; import { cn } from "@/utils/ui"; import { getSectionTitle, groupAndOrderChanges } from "../utils"; import type { Release } from "../utils"; export function ReleaseArticle({ variant, isLatest, children, }: { variant: "list" | "detail"; isLatest?: boolean; children: ReactNode; }) { if (variant === "list") { return (
{children}
); } return
{children}
; } export function ReleaseMeta({ release }: { release: Release }) { return ( {release.version} — {release.date} ); } const titleSizes: Record<"h1" | "h2", string> = { h1: "text-4xl", h2: "text-2xl", }; export function ReleaseTitle({ as: As, href, children, }: { as: "h1" | "h2"; href?: string; children: ReactNode; }) { return ( {href ? ( {children} ) : ( children )} ); } export function ReleaseDescription({ children }: { children: ReactNode }) { return (

{children}

); } export function ReleaseChanges({ release }: { release: Release }) { const { grouped, orderedTypes } = groupAndOrderChanges({ changes: release.changes, }); return (
{orderedTypes.map((type) => (

{getSectionTitle(type)}:

))}
); }