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:
2026-03-18 23:40:28 -04:00
parent f8426c4dde
commit 17de3dd72d
102 changed files with 14978 additions and 1316 deletions

View File

@@ -6,6 +6,8 @@ import { cn } from "@/lib/utils";
type NormalizationSummaryProps = {
normalization: NormalizationMetadata;
showHeader?: boolean;
className?: string;
};
function SummaryField(props: {
@@ -20,7 +22,7 @@ function SummaryField(props: {
props.tone === "warning" && "border-l-2 border-[#7f6250] pl-3",
)}
>
<p className="text-[10px] uppercase tracking-[0.16em] text-[color:var(--terminal-muted)]">
<p className="text-[11px] text-[color:var(--terminal-muted)]">
{props.label}
</p>
<p
@@ -39,21 +41,30 @@ function SummaryField(props: {
export function NormalizationSummary({
normalization,
showHeader = true,
className,
}: NormalizationSummaryProps) {
const hasMaterialUnmapped = normalization.materialUnmappedRowCount > 0;
const hasWarnings = normalization.warnings.length > 0;
return (
<section className="border-t border-[color:var(--line-weak)] pt-4">
<header className="mb-3">
<h3 className="text-sm font-semibold text-[color:var(--terminal-bright)]">
Normalization Summary
</h3>
<p className="text-xs text-[color:var(--terminal-muted)]">
Pack, parser, and residual mapping health for the compact statement
surface.
</p>
</header>
<section
className={cn(
showHeader ? "border-t border-[color:var(--line-weak)] pt-4" : "",
className,
)}
>
{showHeader ? (
<header className="mb-3">
<h3 className="text-sm font-semibold text-[color:var(--terminal-bright)]">
Normalization Summary
</h3>
<p className="text-xs text-[color:var(--terminal-muted)]">
Pack, parser, and residual mapping health for the compact statement
surface.
</p>
</header>
) : null}
<div className="grid gap-x-6 gap-y-1 md:grid-cols-4 xl:grid-cols-8">
<SummaryField
@@ -90,7 +101,7 @@ export function NormalizationSummary({
{hasWarnings ? (
<div className="mt-3 border-t border-[color:var(--line-weak)] pt-3">
<p className="text-[10px] uppercase tracking-[0.16em] text-[color:var(--terminal-muted)]">
<p className="text-[11px] text-[color:var(--terminal-muted)]">
Parser Warnings
</p>
<div className="mt-2 flex flex-wrap gap-2">