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

@@ -33,7 +33,7 @@ export function Button({
return (
<button
className={cn(
"inline-flex items-center justify-center rounded-xl border font-medium transition duration-200 disabled:cursor-not-allowed disabled:opacity-50",
"inline-flex items-center justify-center rounded-lg border font-medium transition duration-150 disabled:cursor-not-allowed disabled:opacity-50",
variantMap[variant],
sizeMap[size],
className,

View File

@@ -19,7 +19,7 @@ export function Input({
return (
<input
className={cn(
"w-full rounded-xl border border-[color:var(--line-weak)] bg-[color:var(--panel-soft)] text-[color:var(--terminal-bright)] outline-none transition placeholder:text-[color:var(--terminal-muted)] focus:border-[color:var(--line-strong)] focus:shadow-[0_0_0_3px_var(--focus-ring)]",
"w-full rounded-lg border border-[color:var(--line-weak)] bg-[color:var(--panel-soft)] text-[color:var(--terminal-bright)] outline-none transition placeholder:text-[color:var(--terminal-muted)] focus:border-[color:var(--line-strong)]",
sizeMap[inputSize],
className,
)}

View File

@@ -54,7 +54,7 @@ export function Panel({
"min-w-0",
variant === "surface"
? cn(
"rounded-2xl border border-[color:var(--line-weak)] bg-[color:var(--panel)] shadow-[0_0_0_1px_rgba(255,255,255,0.03),0_12px_30px_rgba(0,0,0,0.38)]",
"rounded-lg border border-[color:var(--line-weak)] bg-[color:var(--panel)]",
surfaceStyles,
)
: cn("border-t border-[color:var(--line-weak)]", flatStyles),

View File

@@ -1,20 +1,25 @@
import { cn } from '@/lib/utils';
import type { TaskStatus } from '@/lib/types';
import { cn } from "@/lib/utils";
import type { TaskStatus } from "@/lib/types";
type StatusPillProps = {
status: TaskStatus;
};
const classes: Record<TaskStatus, string> = {
queued: 'border-[#525861] bg-[#262a30] text-[#c0c7d0]',
running: 'border-[#686e77] bg-[#2d3137] text-[#d8dde4]',
completed: 'border-[#7b828c] bg-[#353a42] text-[#eef2f6]',
failed: 'border-[#8f3d3d] bg-[#431616] text-[#ff9c9c]'
queued: "border-[#525861] bg-[#262a30] text-[#c0c7d0]",
running: "border-[#686e77] bg-[#2d3137] text-[#d8dde4]",
completed: "border-[#7b828c] bg-[#353a42] text-[#eef2f6]",
failed: "border-[#8f3d3d] bg-[#431616] text-[#ff9c9c]",
};
export function StatusPill({ status }: StatusPillProps) {
return (
<span className={cn('inline-flex items-center rounded-full border px-2 py-1 text-xs uppercase tracking-[0.16em]', classes[status])}>
<span
className={cn(
"inline-flex items-center rounded border px-2 py-1 text-xs",
classes[status],
)}
>
{status}
</span>
);