/** * WorkflowPipelineWidget - Visual flow showing content creation pipeline * Sites → Keywords → Clusters → Ideas → Tasks → Drafts → Published * Balanced single-row layout with filled arrow connectors */ import { Link } from 'react-router-dom'; import { ProgressBar } from '../ui/progress'; import { GridIcon, ListIcon, GroupIcon, BoltIcon, CheckCircleIcon, FileTextIcon, PaperPlaneIcon, ChevronRightIcon, } from '../../icons'; export interface PipelineData { sites: number; keywords: number; clusters: number; ideas: number; tasks: number; drafts: number; published: number; completionPercentage: number; } interface WorkflowPipelineWidgetProps { data: PipelineData; loading?: boolean; } const stages = [ { key: 'sites', label: 'Sites', icon: GridIcon, href: '/sites', color: 'text-brand-600 dark:text-brand-400' }, { key: 'keywords', label: 'Keywords', icon: ListIcon, href: '/planner/keywords', color: 'text-brand-600 dark:text-brand-400' }, { key: 'clusters', label: 'Clusters', icon: GroupIcon, href: '/planner/clusters', color: 'text-purple-600 dark:text-purple-400' }, { key: 'ideas', label: 'Ideas', icon: BoltIcon, href: '/planner/ideas', color: 'text-warning-600 dark:text-warning-400' }, { key: 'tasks', label: 'Tasks', icon: CheckCircleIcon, href: '/writer/tasks', color: 'text-purple-600 dark:text-purple-400' }, { key: 'drafts', label: 'Drafts', icon: FileTextIcon, href: '/writer/content', color: 'text-success-600 dark:text-success-400' }, { key: 'published', label: 'Published', icon: PaperPlaneIcon, href: '/writer/published', color: 'text-purple-600 dark:text-purple-400' }, ] as const; // Small filled arrow triangle component function ArrowTip() { return (
{data.completionPercentage}% of keywords converted to published content