"use client"; import * as React from "react"; import { cn } from "./lib/utils"; export interface ChangelogEntry { id: string; version: string; date: string; added?: string[]; fixed?: string[]; breaking?: string[]; } export interface ChangelogListProps extends React.HTMLAttributes { entries: ChangelogEntry[]; } type Section = "added" | "fixed" | "breaking"; const SECTION_META: Record = { added: { label: "Added", tone: "text-success", prefix: "+" }, fixed: { label: "Fixed", tone: "text-info", prefix: "~" }, breaking: { label: "Breaking", tone: "text-destructive", prefix: "!" }, }; /** Changelog feed: release version + date + category badges. */ export function ChangelogList({ entries, className, ...props }: ChangelogListProps) { return (
{entries.map((entry, idx) => (
v{entry.version}
{(Object.keys(SECTION_META) as Section[]).map((section) => { const items = entry[section]; if (!items || items.length === 0) return null; const meta = SECTION_META[section]; return (

{meta.label}

    {items.map((item) => (
  • {item}
  • ))}
); })}
))}
); }