import type { ExpandedQuery } from '../types'; import { InfoTooltip } from './PipelineView'; interface ExpansionColumnState { status: 'idle' | 'running' | 'done' | 'error'; data?: ExpandedQuery; error?: string; } interface ExpansionColumnProps { state: ExpansionColumnState; accent: string; info: string; } function Spinner({ color }: { color: string }) { return ( ); } function CompactCard({ label, content }: { label: string; content: string | string[] }) { const text = Array.isArray(content) ? content.join('\n') : content; return (
{label}
{text}
); } function VariantSummary({ data }: { data: ExpandedQuery }) { const count = (data.lex.trim() ? 1 : 0) + data.vec.length + (data.hyde.trim() ? 1 : 0); if (count === 0) return null; return (
Expanded into {count} search variant{count !== 1 ? 's' : ''}
); } export default function ExpansionColumn({ state, accent, info }: ExpansionColumnProps) { const isIdle = state.status === 'idle'; const isRunning = state.status === 'running'; const isDone = state.status === 'done'; const isError = state.status === 'error'; return (

Query Expansion

{isRunning && }
{isIdle && (

Awaiting query...

)} {isRunning && (

Generating...

)} {isError && (
{state.error}
)} {isDone && state.data && ( <> {state.data.note && (
{state.data.note}
)} {state.data.lex.trim() && ( )} {state.data.vec.length > 0 && ( )} {state.data.hyde.trim() && ( )} )}
); }