summaryrefslogtreecommitdiff
path: root/frontend/components/prism/KPIStrip.tsx
diff options
context:
space:
mode:
authorTyler Hoang <tyler@tylerhoang.xyz>2026-05-17 13:07:40 -0700
committerTyler Hoang <tyler@tylerhoang.xyz>2026-05-17 13:07:40 -0700
commit62bdd79b3473262dde5fb0a90eab34fe7bf344fd (patch)
tree84f75baf7503e1df77c8335750650a72b088468a /frontend/components/prism/KPIStrip.tsx
parent1482422f2f5b236cdcdff4429ae06bb55dca4083 (diff)
'UI Shell and General Architecture'
Diffstat (limited to 'frontend/components/prism/KPIStrip.tsx')
-rw-r--r--frontend/components/prism/KPIStrip.tsx16
1 files changed, 16 insertions, 0 deletions
diff --git a/frontend/components/prism/KPIStrip.tsx b/frontend/components/prism/KPIStrip.tsx
new file mode 100644
index 0000000..b3cd34c
--- /dev/null
+++ b/frontend/components/prism/KPIStrip.tsx
@@ -0,0 +1,16 @@
+import type { KpiItem } from "@/lib/overview";
+
+export function KPIStrip({ items }: { items: KpiItem[] }) {
+ return (
+ <section className="psm-card psm-kpis" aria-label="Key metrics">
+ {items.map((item) => (
+ <div className="psm-kpi" key={item.key}>
+ <span className="psm-kpi-key">{item.key}</span>
+ <span className={`psm-kpi-value${item.missing ? " missing" : ""}`}>{item.value}</span>
+ <span className="psm-kpi-sub">{item.sublabel}</span>
+ </div>
+ ))}
+ </section>
+ );
+}
+