import { useMemo, type MouseEvent } from "react"; import { Link } from "react-router-dom"; import type { SummarySlotIssueRef } from "@paperclipai/shared"; import { AlertTriangle, ExternalLink, Loader2, MoreHorizontal, PauseCircle, RefreshCw, Wand2 } from "lucide-react"; import { MarkdownBody } from "@/components/MarkdownBody"; import { useSummaryDraftStream } from "@/components/useSummaryDraftStream"; import { Button } from "@/components/ui/button"; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuSeparator, DropdownMenuTrigger, } from "@/components/ui/dropdown-menu"; import { createIssueDetailPath } from "@/lib/issueDetailBreadcrumb"; import { cn, relativeTime } from "@/lib/utils"; import { deriveStatusCardLifecycle, describeRefreshPolicy, STATUS_CARD_LIFECYCLE_PRESENTATION, } from "@/lib/status-card-state"; import { formatCents, formatTokens } from "./format"; import type { StatusCardView } from "./types"; export interface StatusCardTileProps { card: StatusCardView; companyId: string | null | undefined; onOpen: () => void; onRefresh: () => void; onRecompile: () => void; onEditInterest: () => void; onOpenDebug: () => void; onArchive: () => void; refreshPending?: boolean; recompilePending?: boolean; } function StateDot({ className }: { className: string }) { return