-
-
-
{i18n.t("model.catalogFallback")}}>
- {(data) => (
-
- {data().rank === null ? i18n.t("model.unranked") : i18n.t("model.ranked", { rank: data().rank ?? "" })}{" "}
- {i18n.t("model.observedVolume", { share: formatPercent(data().tokenShare) })}
-
- )}
-
+
+
+ }
+ >
+
+
+ {props.labName}
+
+
+
+
+
+
/
+
0}
+ fallback={
+
+ {modelName()}
+
+
+ }
+ >
+
+
+ {modelName()}
+
+
+
+
+
+
+
+
+
+
+
{modelName()}
+
-
}>
- {(data) => (
-
-
{i18n.t("model.rank")}
-
{data().rank === null ? "—" : `#${data().rank}`}
-
{formatModelRankMoveLabel(data(), i18n)}
-
- )}
-
-
{(catalog) => }
+
+ Listed
+ across the shared model catalog.
+
+ }
+ >
+ {(data) => (
+
+ Ranked
+
+ {formatHeroRank(data().rank)}
+
+
+ across last week's
+ OpenCode Go
+ usage with
+ {formatPercent(data().tokenShare)}
+ of observed
+ 2M
+ volume.
+
+ )}
+
)
}
-function ModelCatalogCallout(props: { catalog: ModelCatalogEntry | null }) {
- const i18n = useI18n()
- const language = useLanguage()
+function ModelHeroActionIcon(props: { kind: "weights" | "compare" }) {
+ if (props.kind === "weights")
+ return (
+
+ )
return (
-
-
{i18n.t("model.profile")}
-
- {props.catalog?.releaseDate
- ? formatCatalogDate(props.catalog.releaseDate, language.tag(language.locale()), i18n.t("home.unknown"))
- : i18n.t("model.listed")}
-
-
{i18n.t("model.noCurrentUsage")}
-
+
)
}
-function ModelCatalogPanel(props: { data: ModelCatalogEntry }) {
- const i18n = useI18n()
- const language = useLanguage()
+function ModelHeroSparkline(props: { data: StatsModelData }) {
+ const values = () => props.data.usage.slice(-14).map((point) => point.tokens)
return (
-
+
+
+
)
}
-function CatalogDatum(props: { label: string; value: string }) {
+function ChevronDownIcon() {
return (
-
- {props.label}
- {props.value}
-
+
)
}
@@ -938,6 +998,38 @@ function formatRankMove(change: number) {
return `${change}`
}
+function formatHeroRank(rank: number | null) {
+ if (rank === null) return "--"
+ return String(rank).padStart(2, "0")
+}
+
+function sparklineLinePath(values: number[]) {
+ return sparklinePoints(values)
+ .map((point, index) => `${index === 0 ? "M" : "L"}${formatSparklinePoint(point.x)} ${formatSparklinePoint(point.y)}`)
+ .join(" ")
+}
+
+function sparklineAreaPath(values: number[]) {
+ const points = sparklinePoints(values)
+ return `M${formatSparklinePoint(points[0].x)} 18 ${points
+ .map((point) => `L${formatSparklinePoint(point.x)} ${formatSparklinePoint(point.y)}`)
+ .join(" ")} L${formatSparklinePoint(points[points.length - 1].x)} 18 Z`
+}
+
+function sparklinePoints(values: number[]) {
+ const normalized = values.length > 1 ? values : [values[0] ?? 0, values[0] ?? 0]
+ const min = Math.min(...normalized)
+ const max = Math.max(...normalized)
+ return normalized.map((value, index) => ({
+ x: 8 + (index / Math.max(1, normalized.length - 1)) * 20,
+ y: min === max ? 12 : 18 - ((value - min) / (max - min)) * 12,
+ }))
+}
+
+function formatSparklinePoint(value: number) {
+ return Number(value.toFixed(2)).toString()
+}
+
function formatModelRankMoveLabel(data: StatsModelData, i18n: ReturnType
) {
if (data.rank === null) return i18n.t("model.noUsageLastWeek")
if (data.previousRank === null) return i18n.t("model.newThisWeek")
@@ -993,35 +1085,6 @@ function formatChange(value: number) {
return `${value}%`
}
-function formatCatalogLimit(value: number | undefined, unknown: string) {
- return value === undefined ? unknown : formatTokens(value)
-}
-
-function formatCatalogModalities(value: string[], i18n: ReturnType) {
- if (value.length === 0) return i18n.t("home.unknown")
- return value.map((item) => formatCatalogModality(item, i18n)).join(", ")
-}
-
-function formatCatalogModality(value: string, i18n: ReturnType) {
- if (value === "pdf") return i18n.t("model.pdf")
- return value.charAt(0).toUpperCase() + value.slice(1)
-}
-
-function formatCatalogDate(value: string | undefined, locale: string, unknown: string) {
- if (!value) return unknown
- const match = /^(\d{4})(?:-(\d{2}))?(?:-(\d{2}))?$/.exec(value)
- if (!match) return value
- const year = Number(match[1])
- const month = match[2] ? Number(match[2]) - 1 : 0
- const day = match[3] ? Number(match[3]) : 1
- return new Intl.DateTimeFormat(locale, {
- month: match[2] ? "short" : undefined,
- day: match[3] ? "numeric" : undefined,
- year: "numeric",
- timeZone: "UTC",
- }).format(new Date(Date.UTC(year, month, day)))
-}
-
function trimNumber(value: number, digits: number) {
return Number(value.toFixed(digits)).toLocaleString("en")
}