"use client"; import { parseAnsiLine, stripAnsi } from "@/lib/ansi"; import type { ExtensionStatusItem } from "@/lib/types"; export function sanitizeExtensionStatusText(text: string): string { return text .replace(/[\r\n\t]/g, " ") .replace(/ +/g, " ") .trim(); } export function formatExtensionStatusLine(statuses: ExtensionStatusItem[]): string { return [...statuses] .sort((a, b) => a.key.localeCompare(b.key)) .map(({ text }) => sanitizeExtensionStatusText(text)) .join(" "); } export function ExtensionStatusBar({ statuses }: { statuses: ExtensionStatusItem[] }) { if (statuses.length === 0) return null; const statusLine = formatExtensionStatusLine(statuses); const plainStatusLine = stripAnsi(statusLine); return (