Add history window controls and expand taxonomy pack support
- add 3Y/5Y/10Y financial history filtering and reorganize normalization details UI - add new fiscal taxonomy surface/income bridge/KPI packs and update Rust taxonomy loading - auto-detect Homebrew SQLite for native `sqlite-vec` in local dev/e2e with docs and env guidance
This commit is contained in:
@@ -518,8 +518,6 @@ export function AppShell({
|
||||
|
||||
return (
|
||||
<div className="app-surface">
|
||||
<div className="noise-layer" aria-hidden="true" />
|
||||
|
||||
<div
|
||||
className={cn(
|
||||
"relative z-10 mx-auto flex min-h-screen w-full max-w-[1440px] gap-6 px-4 pb-10 pt-4 sm:px-5 sm:pb-12 sm:pt-6 md:px-8 lg:gap-8",
|
||||
@@ -541,15 +539,9 @@ export function AppShell({
|
||||
>
|
||||
{!isSidebarCollapsed ? (
|
||||
<div className="min-w-0">
|
||||
<p className="terminal-caption text-xs uppercase tracking-[0.25em] text-[color:var(--terminal-muted)]">
|
||||
Fiscal Clone
|
||||
</p>
|
||||
<h1 className="mt-2 text-2xl font-semibold text-[color:var(--terminal-bright)]">
|
||||
<h1 className="text-lg font-semibold text-[color:var(--terminal-bright)]">
|
||||
Neon Desk
|
||||
</h1>
|
||||
<p className="mt-2 text-sm text-[color:var(--terminal-muted)]">
|
||||
Financial intelligence cockpit with durable AI workflows.
|
||||
</p>
|
||||
</div>
|
||||
) : null}
|
||||
|
||||
@@ -586,7 +578,7 @@ export function AppShell({
|
||||
aria-hidden="true"
|
||||
/>
|
||||
) : (
|
||||
<p className="terminal-caption px-2 text-[11px] uppercase tracking-[0.18em] text-[color:var(--terminal-muted)]">
|
||||
<p className="px-2 text-[11px] text-[color:var(--terminal-muted)]">
|
||||
{GROUP_LABELS[group]}
|
||||
</p>
|
||||
)}
|
||||
@@ -603,12 +595,12 @@ export function AppShell({
|
||||
onFocus={() => prefetchForHref(item.href)}
|
||||
title={item.label}
|
||||
className={cn(
|
||||
"flex items-center rounded-xl border border-transparent text-sm transition-all duration-200 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[color:var(--line-strong)] focus-visible:ring-offset-2 focus-visible:ring-offset-transparent",
|
||||
"flex items-center rounded-lg border border-transparent text-sm transition-colors duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[color:var(--line-strong)] focus-visible:ring-offset-2 focus-visible:ring-offset-transparent",
|
||||
isSidebarCollapsed
|
||||
? "justify-center px-0 py-2.5"
|
||||
: "gap-3 px-2.5 py-1.5",
|
||||
item.active
|
||||
? "border-[color:var(--line-strong)] bg-[color:var(--panel-bright)] text-[color:var(--terminal-bright)] shadow-[inset_2px_0_0_var(--accent)]"
|
||||
? "border-[color:var(--line-strong)] bg-[color:var(--panel-bright)] text-[color:var(--terminal-bright)]"
|
||||
: "text-[color:var(--terminal-muted)] hover:border-[color:var(--line-weak)] hover:bg-[color:var(--panel-soft)] hover:text-[color:var(--terminal-bright)]",
|
||||
)}
|
||||
>
|
||||
@@ -633,22 +625,15 @@ export function AppShell({
|
||||
{isSigningOut ? "Signing out..." : "Sign out"}
|
||||
</Button>
|
||||
|
||||
<div className="rounded-[1rem] border border-[color:var(--line-weak)] bg-[color:var(--panel-soft)] p-2.5">
|
||||
<p className="text-xs uppercase tracking-[0.2em] text-[color:var(--terminal-muted)]">
|
||||
Runtime
|
||||
</p>
|
||||
<p className="mt-1 truncate text-sm text-[color:var(--terminal-bright)]">
|
||||
<div className="rounded-lg border border-[color:var(--line-weak)] bg-[color:var(--panel-soft)] p-2.5">
|
||||
<p className="text-xs text-[color:var(--terminal-muted)]">
|
||||
{displayName}
|
||||
</p>
|
||||
{role ? (
|
||||
<p className="mt-1 text-xs uppercase tracking-[0.16em] text-[color:var(--terminal-muted)]">
|
||||
Role: {role}
|
||||
<p className="mt-1 text-xs text-[color:var(--terminal-muted)]">
|
||||
{role}
|
||||
</p>
|
||||
) : null}
|
||||
<p className="mt-2 text-xs text-[color:var(--terminal-muted)]">
|
||||
AI and market data are driven by environment configuration and
|
||||
live API tasks.
|
||||
</p>
|
||||
</div>
|
||||
</>
|
||||
) : null}
|
||||
@@ -675,10 +660,7 @@ export function AppShell({
|
||||
</div>
|
||||
<div className="flex flex-col gap-4 sm:flex-row sm:flex-wrap sm:items-start sm:justify-between">
|
||||
<div className="min-w-0 pr-6 sm:pr-0">
|
||||
<p className="terminal-caption text-xs uppercase tracking-[0.3em] text-[color:var(--terminal-muted)]">
|
||||
Live System
|
||||
</p>
|
||||
<h2 className="mt-2 text-xl font-semibold text-[color:var(--terminal-bright)] sm:text-2xl md:text-3xl">
|
||||
<h2 className="text-xl font-semibold text-[color:var(--terminal-bright)] sm:text-2xl">
|
||||
{title}
|
||||
</h2>
|
||||
{subtitle ? (
|
||||
@@ -748,7 +730,7 @@ export function AppShell({
|
||||
</div>
|
||||
|
||||
<nav
|
||||
className="fixed inset-x-0 bottom-0 z-40 border-t border-[color:var(--line-weak)] bg-[color:rgba(24,27,32,0.96)] px-2 py-2 backdrop-blur lg:hidden"
|
||||
className="fixed inset-x-0 bottom-0 z-40 border-t border-[color:var(--line-weak)] bg-[color:var(--panel)] px-2 py-2 lg:hidden"
|
||||
aria-label="Mobile primary"
|
||||
>
|
||||
<div
|
||||
@@ -799,11 +781,11 @@ export function AppShell({
|
||||
<div
|
||||
role="dialog"
|
||||
aria-modal="true"
|
||||
className="absolute inset-x-3 rounded-2xl border border-[color:var(--line-weak)] bg-[color:var(--panel)] p-3 shadow-[0_20px_60px_rgba(0,0,0,0.45)]"
|
||||
className="absolute inset-x-3 rounded-lg border border-[color:var(--line-weak)] bg-[color:var(--panel)] p-3"
|
||||
style={{ bottom: "calc(4.7rem + env(safe-area-inset-bottom))" }}
|
||||
onClick={(event) => event.stopPropagation()}
|
||||
>
|
||||
<p className="terminal-caption mb-2 px-1 text-[11px] uppercase tracking-[0.2em] text-[color:var(--terminal-muted)]">
|
||||
<p className="mb-2 px-1 text-[11px] text-[color:var(--terminal-muted)]">
|
||||
More destinations
|
||||
</p>
|
||||
<div className="grid grid-cols-2 gap-2">
|
||||
|
||||
Reference in New Issue
Block a user