summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--frontend/app/page.tsx4
-rw-r--r--frontend/app/prism-shell.css13
-rw-r--r--frontend/components/prism/Sidebar.tsx2
-rw-r--r--frontend/lib/overview.ts10
-rw-r--r--frontend/next-env.d.ts2
5 files changed, 16 insertions, 15 deletions
diff --git a/frontend/app/page.tsx b/frontend/app/page.tsx
index f47d49a..02bd706 100644
--- a/frontend/app/page.tsx
+++ b/frontend/app/page.tsx
@@ -11,7 +11,7 @@ import { TickerHeader } from "@/components/prism/TickerHeader";
import { TopBar } from "@/components/prism/TopBar";
import { ApiError, api } from "@/lib/api";
import { deltaClass, fmtCurrency, fmtLarge, fmtNumber, fmtPct } from "@/lib/format";
-import { availableFieldSummary, buildKpis, marketClock, OVERVIEW_NAV_ITEMS, signalTone, sortIndices, unavailableFields } from "@/lib/overview";
+import { availableFieldSummary, buildKpis, limitIndices, marketClock, OVERVIEW_NAV_ITEMS, signalTone, unavailableFields } from "@/lib/overview";
import type { HistoryPoint, MarketIndex, SearchResult, TickerOverview, WatchlistResponse } from "@/types/api";
type LoadState = "idle" | "loading" | "ready" | "invalid" | "error";
@@ -48,7 +48,7 @@ function OverviewClient() {
const watchlistSymbols = useMemo(() => new Set(watchlist.items.map((item) => item.symbol)), [watchlist]);
const isSaved = selectedTicker ? watchlistSymbols.has(selectedTicker) : false;
- const marketCards = useMemo(() => sortIndices(market), [market]);
+ const marketCards = useMemo(() => limitIndices(market), [market]);
const kpis = useMemo(() => (overview ? buildKpis(overview) : []), [overview]);
const missingFields = useMemo(() => (overview ? unavailableFields(overview) : []), [overview]);
diff --git a/frontend/app/prism-shell.css b/frontend/app/prism-shell.css
index c198479..9b0e1b5 100644
--- a/frontend/app/prism-shell.css
+++ b/frontend/app/prism-shell.css
@@ -212,7 +212,7 @@
.psm-watch-select:hover,
.psm-search-result:hover {
- background: rgba(194, 170, 122, 0.04);
+ background: var(--ink-3);
}
.psm-watch-row.active .psm-watch-select {
@@ -291,8 +291,7 @@
gap: var(--sp-4);
padding: var(--sp-3) var(--sp-6);
border-bottom: 1px solid var(--line-1);
- background: rgba(11, 14, 19, 0.94);
- backdrop-filter: blur(16px);
+ background: var(--ink-1);
}
.psm-search-shell {
@@ -401,12 +400,10 @@
height: 8px;
border-radius: var(--r-full);
background: var(--warning);
- box-shadow: 0 0 10px rgba(196, 149, 69, 0.45);
}
.psm-market-dot.open {
background: var(--positive);
- box-shadow: 0 0 10px rgba(79, 140, 94, 0.45);
}
.psm-account {
@@ -592,7 +589,7 @@
.psm-primary-action,
.psm-ghost-action {
- border-radius: var(--r-2);
+ border-radius: var(--r-1);
padding: 10px 14px;
font-size: var(--fs-12);
font-weight: 600;
@@ -825,6 +822,10 @@
border-color: rgba(181, 73, 75, 0.35);
}
+.psm-signal.neu {
+ border-color: var(--line-2);
+}
+
.psm-profile-list,
.psm-stat-list,
.psm-source-list {
diff --git a/frontend/components/prism/Sidebar.tsx b/frontend/components/prism/Sidebar.tsx
index 15a2947..80e13f3 100644
--- a/frontend/components/prism/Sidebar.tsx
+++ b/frontend/components/prism/Sidebar.tsx
@@ -45,7 +45,7 @@ export function Sidebar({
key={item.key}
type="button"
className={`psm-nav-item${active ? " active" : ""}${item.disabled ? " disabled" : ""}`}
- aria-disabled={item.disabled ? "true" : undefined}
+ disabled={item.disabled}
>
<span className={`psm-icon icon-${item.icon}`} aria-hidden />
<span className="psm-nav-copy">
diff --git a/frontend/lib/overview.ts b/frontend/lib/overview.ts
index db30050..efbd9f9 100644
--- a/frontend/lib/overview.ts
+++ b/frontend/lib/overview.ts
@@ -45,10 +45,10 @@ export function buildKpis(overview: TickerOverview): KpiItem[] {
missing: overview.stats.trailing_pe == null
},
{
- key: "EPS ยท TTM",
- value: fmtCurrency(overview.stats.trailing_eps),
- sublabel: `Prev close ${fmtCurrency(overview.quote.prev_close)}`,
- missing: overview.stats.trailing_eps == null
+ key: "Prev Close",
+ value: fmtCurrency(overview.quote.prev_close),
+ sublabel: `Day chg ${fmtCurrency(overview.quote.change)}`,
+ missing: overview.quote.prev_close == null
},
{
key: "52W Position",
@@ -105,7 +105,7 @@ export function watchlistSubtitle(item: WatchlistItem): string {
});
}
-export function sortIndices(indices: MarketIndex[]): MarketIndex[] {
+export function limitIndices(indices: MarketIndex[]): MarketIndex[] {
return [...indices].slice(0, 4);
}
diff --git a/frontend/next-env.d.ts b/frontend/next-env.d.ts
index c4b7818..9edff1c 100644
--- a/frontend/next-env.d.ts
+++ b/frontend/next-env.d.ts
@@ -1,6 +1,6 @@
/// <reference types="next" />
/// <reference types="next/image-types/global" />
-import "./.next/dev/types/routes.d.ts";
+import "./.next/types/routes.d.ts";
// NOTE: This file should not be edited
// see https://nextjs.org/docs/app/api-reference/config/typescript for more information.