fix: alignment, section order, and tooltip duplication
- Move symbol badge inline with input (flex items-end) so symbol and rack inputs align at the bottom - Move Signal Timeline chart above Slot Evidence table - Deduplicate signal fires by slotId per day in chart data processing and by slotName in tooltip rendering (prevents MACD Bullish etc from appearing twice)
This commit is contained in:
@@ -119,19 +119,21 @@ export function ConfluencePanel() {
|
||||
|
||||
{/* Header */}
|
||||
<div className="flex flex-wrap items-end gap-4">
|
||||
<div>
|
||||
<label className="block text-xs text-fg-muted mb-1">Symbol</label>
|
||||
<div className="relative w-48">
|
||||
<SymbolAutocomplete
|
||||
onPick={pickSymbol}
|
||||
onSubmitRaw={(raw) => pickSymbol(raw.toUpperCase())}
|
||||
placeholder="Search symbol…"
|
||||
ariaLabel="Select symbol for signal confluence"
|
||||
inputClassName="w-full bg-surface-sunken border border-line rounded-lg px-3 py-1.5 text-xs text-fg placeholder:text-fg-muted focus:outline-none focus:border-accent focus:ring-1 focus:ring-accent"
|
||||
/>
|
||||
<div className="flex items-end gap-2">
|
||||
<div>
|
||||
<label className="block text-xs text-fg-muted mb-1">Symbol</label>
|
||||
<div className="relative w-48">
|
||||
<SymbolAutocomplete
|
||||
onPick={pickSymbol}
|
||||
onSubmitRaw={(raw) => pickSymbol(raw.toUpperCase())}
|
||||
placeholder="Search symbol…"
|
||||
ariaLabel="Select symbol for signal confluence"
|
||||
inputClassName="w-full bg-surface-sunken border border-line rounded-lg px-3 py-1.5 text-xs text-fg placeholder:text-fg-muted focus:outline-none focus:border-accent focus:ring-1 focus:ring-accent"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
{symbol && (
|
||||
<span className="mt-1 inline-flex items-center rounded bg-accent/10 border border-accent/30 px-2 py-0.5 text-xs font-medium text-accent">
|
||||
<span className="mb-0.5 inline-flex items-center rounded bg-accent/10 border border-accent/30 px-2 py-1.5 text-xs font-medium text-accent">
|
||||
{symbol}
|
||||
</span>
|
||||
)}
|
||||
@@ -187,6 +189,13 @@ export function ConfluencePanel() {
|
||||
</div>
|
||||
) : null}
|
||||
|
||||
{/* Signal Timeline chart */}
|
||||
{symbol && (
|
||||
<CollapsibleSection title="Signal Timeline" defaultOpen>
|
||||
<ConfluenceChart symbol={symbol} />
|
||||
</CollapsibleSection>
|
||||
)}
|
||||
|
||||
{/* Slot evidence grid */}
|
||||
{assessments.length > 0 && (
|
||||
<CollapsibleSection title="Slot Evidence" defaultOpen>
|
||||
@@ -211,13 +220,6 @@ export function ConfluencePanel() {
|
||||
</CollapsibleSection>
|
||||
)}
|
||||
|
||||
{/* Signal Timeline chart */}
|
||||
{symbol && (
|
||||
<CollapsibleSection title="Signal Timeline" defaultOpen>
|
||||
<ConfluenceChart symbol={symbol} />
|
||||
</CollapsibleSection>
|
||||
)}
|
||||
|
||||
{/* Scorecard */}
|
||||
{scorecard && scorecard.slots.length > 0 && (
|
||||
<CollapsibleSection title="Reliability Scorecard">
|
||||
|
||||
Reference in New Issue
Block a user