From f4faacbe8764ec62c3b83f1216bbb1f2b577899a Mon Sep 17 00:00:00 2001 From: Adam <2363879+adamdotdevin@users.noreply.github.com> Date: Fri, 10 Jul 2026 06:49:50 -0500 Subject: [PATCH] feat(stats): unify comparison cards --- .../stats/app/src/routes/compare-cards.tsx | 106 ++++++++++++++---- .../[secondLab]/[secondModel].tsx | 53 ++------- .../stats/app/src/routes/compare/index.tsx | 67 +++-------- packages/stats/app/src/routes/index.tsx | 1 + 4 files changed, 109 insertions(+), 118 deletions(-) diff --git a/packages/stats/app/src/routes/compare-cards.tsx b/packages/stats/app/src/routes/compare-cards.tsx index 10f2f7677a2..13dd8d5f15e 100644 --- a/packages/stats/app/src/routes/compare-cards.tsx +++ b/packages/stats/app/src/routes/compare-cards.tsx @@ -1,3 +1,4 @@ +import { ProviderIcon } from "@opencode-ai/ui/provider-icon" import { For, Show } from "solid-js" import { catalogSlug, formatCatalogLabName, type ModelCatalogEntry } from "./model-catalog" @@ -13,6 +14,7 @@ export type ComparisonPair = { first: ComparisonModelRef second: ComparisonModelRef detail: string + description?: string } export function modelRefFromCatalog(entry: ModelCatalogEntry): ComparisonModelRef { @@ -48,34 +50,25 @@ export function ComparisonCardsSection(props: { title?: string description?: string compact?: boolean + variant?: "panel" | "featured" }) { + const featured = () => props.variant === "featured" + const pairs = () => (featured() ? props.pairs.slice(0, 4) : props.pairs) + return ( 0}> -
+

{props.title ?? "Model Comparisons"}.{" "} {props.description ?? "Compare usage, cost, limits, and features."}

-
- - {(pair) => ( - - {pair.detail} - - {pair.first.name} vs {pair.second.name} - -

- {pair.first.labName ?? formatCatalogLabName(pair.first.lab)} - - {pair.second.labName ?? formatCatalogLabName(pair.second.lab)} -

- - - {pair.first.metric ?? "Listed"} / {pair.second.metric ?? "Listed"} - - -
- )} +
+ + {(pair) => (featured() ? : )}
@@ -83,6 +76,77 @@ export function ComparisonCardsSection(props: { ) } +function FeaturedComparisonCard(props: { pair: ComparisonPair }) { + return ( + + + + {props.pair.detail} + {props.pair.description ?? `${props.pair.first.name} vs ${props.pair.second.name}`} + +