import * as React from 'react'; import { cn } from '@/lib/utils'; import { StatusBadge } from '@/components/ds/StatusBadge'; const TONE_DOT = { brand: 'bg-krow-blue ring-krow-blue/20', success: 'bg-success ring-success/20', warning: 'bg-warning ring-warning/20', destructive: 'bg-destructive ring-destructive/20', neutral: 'bg-ink-4 ring-ink-4/20', }; /** * Timeline — a vertical sequence of events: a candidate's journey, an audit * trail, a career history. * * Items: * { id, title, description, timestamp, icon, tone, status, meta, current } * * The connecting rail is drawn per item rather than as one absolute line, so a * timeline can be nested inside a scrolling card without the rail detaching. */ export function Timeline({ items = [], className, compact = false }) { return (
    {items.map((item, i) => { const isLast = i === items.length - 1; const Icon = item.icon; const tone = item.tone || (item.current ? 'brand' : 'neutral'); return (
  1. {/* Rail + node */}
    {Icon ? ( ) : (
    {/* Content */}

    {item.title}

    {item.description && (

    {item.description}

    )} {item.meta &&

    {item.meta}

    }
    {item.status && } {item.timestamp && ( )}
    {item.children}
  2. ); })}
); }