From d5e321089b6b82f5425c2b3fae142db5223ce599 Mon Sep 17 00:00:00 2001
From: Tyler Hoang <tyler@tylerhoang.xyz>
Date: Tue, 9 Jun 2026 19:19:44 -0700
Subject: Add Insiders tab with diverging bar chart and transaction table

- Backend: get_insider_transactions() in data_service (yfinance, 1hr TTL)
- Backend: InsidersResponse schema + GET /api/tickers/{symbol}/insiders
- Frontend: InsidersPage with 4-KPI strip, SVG diverging bar chart (),
  psm-insider transaction rows, pill filter toggles, shimmer skeleton,
  empty/error states
- Enable Insiders nav item (remove disabled flag)
---
 frontend/app/page.tsx | 8 ++++++++
 1 file changed, 8 insertions(+)

(limited to 'frontend/app/page.tsx')

diff --git a/frontend/app/page.tsx b/frontend/app/page.tsx
index 175f072..e1f16ee 100644
--- a/frontend/app/page.tsx
+++ b/frontend/app/page.tsx
@@ -5,6 +5,7 @@ import Image from "next/image";
 import { useRouter, useSearchParams } from "next/navigation";
 import { AppShell } from "@/components/prism/AppShell";
 import { FinancialsPage } from "@/components/prism/FinancialsPage";
+import { InsidersPage } from "@/components/prism/InsidersPage";
 import { ValuationPage } from "@/components/prism/ValuationPage";
 import { OptionsPage } from "@/components/prism/options/OptionsPage";
 import { ChartCard } from "@/components/prism/ChartCard";
@@ -346,6 +347,13 @@ function OverviewClient() {
                 isSaved={isSaved}
                 onToggleWatchlist={addOrRemoveCurrentTicker}
               />
+            ) : tab === "insiders" ? (
+              <InsidersPage
+                ticker={selectedTicker}
+                overview={overview}
+                isSaved={isSaved}
+                onToggleWatchlist={addOrRemoveCurrentTicker}
+              />
             ) : (
               <>
                 <TickerHeader overview={overview} onToggleWatchlist={addOrRemoveCurrentTicker} isSaved={isSaved} />
-- 
cgit v1.3-2-g0d8e

