Files
investor-flow/app/src/lib/strings.ts
T

48 lines
2.4 KiB
TypeScript
Raw Normal View History

// 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/client 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.",
enable2faButton: "Enable two-factor",
twoFactorSecretLabel: "Two-factor secret (base32)",
twoFactorQrLabel: "Scan this in an authenticator app, or enter the secret manually.",
backupCodesLabel: "Backup codes — store these somewhere safe.",
confirm2faButton: "Confirm with a code",
twoFactorCodePlaceholder: "6-digit code",
twoFactorEnabled: "Two-factor is now enabled. Login will ask for a code.",
oauthGithub: "Continue with GitHub",
oauthGoogle: "Continue with Google",
onboardingTitle: "Welcome — set up your research defaults.",
complexityLabel: "Experience level",
complexityBeginner: "Beginner",
complexityIntermediate: "Intermediate",
complexityAdvanced: "Advanced",
starterWatchlistLabel: "Your starter watchlist",
drawdownNote: "A default max-drawdown tolerance is set from your experience level (you can change it later).",
completeOnboardingButton: "Finish setup",
onboardingDone: "Setup complete — your starter watchlist is tracking.",
} as const;
export const UI_STRING_LIST: string[] = Object.values(UI_STRINGS);