refactor: flatten Financials page UI for improved density

- Move Matrix panel to top position for better visibility
- Hide trend chart by default (showTrendChart: false)
- Flatten panel design by removing titles and borders
- Compact spacing and reduce UI chrome throughout
- Add chart toggle button in toolbar
- Enable dense and virtualized modes on StatementMatrix
- Fix missing useState import in FinancialsToolbar

The creates a cleaner, more professional Bloomberg terminal-style
interface with better information density and
improved performance through virtualization for large datasets.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-03-16 21:04:36 -04:00
parent ca45d8ea4c
commit 4da9a04993
5 changed files with 379 additions and 41 deletions

View File

@@ -888,7 +888,7 @@ function FinancialsPageContent() {
</div>
</Panel>
<Panel title="Trend Chart" subtitle="Default trend series for the selected surface." variant="surface">
<Panel>
{loading ? (
<p className="text-sm text-[color:var(--terminal-muted)]">Loading trend chart...</p>
) : chartData.length === 0 || trendSeries.length === 0 ? (
@@ -1064,7 +1064,7 @@ function FinancialsPageContent() {
renderDimensionValue={renderDimensionValue}
/>
) : (
<Panel title="Row Details" subtitle="Inspect provenance, formulas, and dimensional evidence for the selected row." variant="surface">
<Panel>
{!selectedRow ? (
<p className="text-sm text-[color:var(--terminal-muted)]">Select a row to inspect details.</p>
) : (
@@ -1149,7 +1149,7 @@ function FinancialsPageContent() {
)}
{(surfaceKind === 'income_statement' || surfaceKind === 'balance_sheet' || surfaceKind === 'cash_flow_statement') && financials ? (
<Panel title="Metric Validation" subtitle="Validation remains limited to statement-derived taxonomy metrics in v1." variant="surface">
<Panel>
<div className="mb-3 flex items-center gap-2 text-sm text-[color:var(--terminal-muted)]">
<AlertTriangle className="size-4" />
<span>Overall status: {financials.metrics.validation?.status ?? 'not_run'}</span>