import React, { PropsWithChildren } from 'react'; import { cn } from '@/lib/utils'; import { PlusCircle, Wrench, Zap, AlertTriangle, XCircle } from 'lucide-react'; interface ReleaseProps extends PropsWithChildren { version: string; title: string; date?: string; } function Release({ version, title, date, children }: ReleaseProps) { return (
v{version}
{date && (
{new Date(date).toLocaleDateString('en-US', { year: 'numeric', month: 'long', day: 'numeric' })}
)}

{title}

{children}
); } interface ChangesProps extends PropsWithChildren { type: 'added' | 'fixed' | 'improved' | 'deprecated' | 'removed'; } const typeConfig = { added: { label: 'Added', className: 'bg-green-100 dark:bg-green-900/50 text-green-700 dark:text-green-300', icon: PlusCircle, }, fixed: { label: 'Fixed', className: 'bg-yellow-100 dark:bg-yellow-900/50 text-yellow-700 dark:text-yellow-300', icon: Wrench, }, improved: { label: 'Improved', className: 'bg-cyan-100 dark:bg-cyan-900/50 text-cyan-700 dark:text-cyan-300', icon: Zap, }, deprecated: { label: 'Deprecated', className: 'bg-orange-100 dark:bg-orange-900/50 text-orange-700 dark:text-orange-300', icon: AlertTriangle, }, removed: { label: 'Removed', className: 'bg-pink-100 dark:bg-pink-900/50 text-pink-700 dark:text-pink-300', icon: XCircle, }, } as const; function Changes({ type, children }: ChangesProps) { const config = typeConfig[type] || typeConfig.added; return (
{config.label}
); } export { Release, Changes }; const ReleaseMdx = { Release, Changes }; export default ReleaseMdx;