Skip to content

Commit cc3c50c

Browse files
authored
fix(forecast): style Analysis Signals expanded panel in probability bets (koala73#2450)
The fc-signals section had near-zero styling (margin-top: 2px only) making it look like raw unstyled text. Fixes: container now matches fc-detail with padding/border-top, signal items get proper indentation and spacing with a positioned ::before dash indicator, section title injected at render-time so the label appears inside the collapsible panel. Also strips leading dash/en-dash characters from signal values to prevent double-dash rendering.
1 parent 089dc2c commit cc3c50c

1 file changed

Lines changed: 11 additions & 7 deletions

File tree

src/components/ForecastPanel.ts

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -194,9 +194,10 @@ function injectStyles(): void {
194194
.fc-perspective { font-size: 11px; color: var(--text-secondary, #999); padding: 2px 0; line-height: 1.4; }
195195
.fc-perspective strong { color: var(--text-primary, #ccc); font-weight: 600; }
196196
.fc-scenario { font-style: italic; }
197-
.fc-signals { margin-top: 2px; }
198-
.fc-signal { color: var(--text-secondary, #999); font-size: 11px; padding: 1px 0; }
199-
.fc-signal::before { content: ''; display: inline-block; width: 6px; height: 1px; background: var(--text-secondary, #666); margin-right: 6px; vertical-align: middle; }
197+
.fc-signals { padding: 8px 14px 4px; border-top: 1px solid var(--border-color, #2a2a2a); display: grid; gap: 2px; }
198+
.fc-signals-title { color: var(--text-secondary, #888); font-size: 10px; text-transform: uppercase; letter-spacing: 0.08em; margin-bottom: 4px; }
199+
.fc-signal { color: var(--text-secondary, #a0a0a0); font-size: 11px; padding: 3px 0 3px 12px; line-height: 1.45; position: relative; }
200+
.fc-signal::before { content: ''; position: absolute; left: 0; top: 9px; display: inline-block; width: 6px; height: 1px; background: var(--text-secondary, #555); }
200201
.fc-empty { padding: 20px; text-align: center; color: var(--text-secondary, #888); }
201202
`;
202203
document.head.appendChild(style);
@@ -431,9 +432,12 @@ export class ForecastPanel extends Panel {
431432
const trendText = f.trend === 'rising' ? '↑ rising' : f.trend === 'falling' ? '↓ falling' : '→ stable';
432433
const trendColor = f.trend === 'rising' ? '#3fb950' : f.trend === 'falling' ? '#e05252' : '#7d8590';
433434

434-
const signalsHtml = (f.signals || []).map(s =>
435-
`<div class="fc-signal">${escapeHtml(s.value)}</div>`
436-
).join('');
435+
const sigs = f.signals || [];
436+
const signalsHtml = sigs.length > 0
437+
? `<div class="fc-signals-title">Analysis Signals (${sigs.length})</div>${sigs.map(s =>
438+
`<div class="fc-signal">${escapeHtml(s.value.replace(/^[\s\u2013\u2014\-]+/, ''))}</div>`
439+
).join('')}`
440+
: '';
437441

438442
return `
439443
<div class="fc-prob-item">
@@ -456,7 +460,7 @@ export class ForecastPanel extends Panel {
456460
</div>
457461
<div class="fc-toggle-row">
458462
<span class="fc-toggle" data-fc-toggle="detail-${escapeHtml(f.id)}">Analysis</span>
459-
${(f.signals || []).length > 0 ? `<span class="fc-toggle" data-fc-toggle="signals-${escapeHtml(f.id)}">Signals (${(f.signals || []).length})</span>` : ''}
463+
${sigs.length > 0 ? `<span class="fc-toggle" data-fc-toggle="signals-${escapeHtml(f.id)}">Signals (${sigs.length})</span>` : ''}
460464
</div>
461465
<div class="fc-detail fc-hidden" data-fc-panel="detail-${escapeHtml(f.id)}">${this.renderDetailBody(f)}</div>
462466
${signalsHtml ? `<div class="fc-signals fc-hidden" data-fc-panel="signals-${escapeHtml(f.id)}">${signalsHtml}</div>` : ''}

0 commit comments

Comments
 (0)