slice 1g: Next.js M1 overview panel + Primary-Rule lint (ADR-0007)
Symbol command bar (Zustand active-symbol) -> OverviewPanel (price + day-change shape/color/label per P7 G3 + Recharts sparkline + sector) + signup/login + ADR-0007 footer. next.config rewrites proxy /api -> backend:3001 (same-origin cookies). Vanilla fetch tRPC client (decoupled from server Node types). Primary-Rule lint 2/2 green. Slice 1 tracer bullet COMPLETE: 38 tests green, live-verified end-to-end.
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
// Curated user-facing strings (P6 plain English; ADR-0007 Primary-Rule compliant).
|
||||
// The Primary-Rule lint test (src/__tests__/primary-rule-lint.test.ts) scans these and the
|
||||
// panel/page source for imperative trade verbs (a stoplist of directives). Approved noun
|
||||
// phrases such as the buy-zone estimate are allowed.
|
||||
export const UI_STRINGS = {
|
||||
appTitle: "Investor Flow",
|
||||
appSubtitle: "Educational investment research terminal",
|
||||
symbolPlaceholder: "Enter a symbol (e.g. NVDA)",
|
||||
loadingSnapshot: "Loading cached snapshot…",
|
||||
noData: "No cached data yet — the backend is fetching this in the background.",
|
||||
priceLabel: "Last price",
|
||||
dayChangeLabel: "Day change",
|
||||
sectorLabel: "Sector",
|
||||
industryLabel: "Industry",
|
||||
tickerKindLabel: "Type",
|
||||
sparklineCaption: "Recent daily close — context for where price has been, not a signal to act on.",
|
||||
cryptoNotice: "Crypto — limited research module (SEC-derived ownership and filings do not apply).",
|
||||
staleBadge: "cached — refreshing",
|
||||
primaryRuleFooter:
|
||||
"Educational analysis, not investment advice. Verify the underlying data; you are responsible for your own decisions.",
|
||||
authEmailLabel: "Email",
|
||||
authPasswordLabel: "Password",
|
||||
signupButton: "Create account",
|
||||
loginButton: "Sign in",
|
||||
logoutButton: "Sign out",
|
||||
signupPrompt: "Create an account to track symbols and keep your research in one place.",
|
||||
} as const;
|
||||
|
||||
export const UI_STRING_LIST: string[] = Object.values(UI_STRINGS);
|
||||
Reference in New Issue
Block a user