({ provider, model }: { provider: CatalogProvider; model: CatalogModel })
| 225 | } |
| 226 | |
| 227 | function ModelRow({ provider, model }: { provider: CatalogProvider; model: CatalogModel }) { |
| 228 | return ( |
| 229 | <> |
| 230 | <div className='h-px w-full bg-[var(--border)]' /> |
| 231 | <Link |
| 232 | href={model.href} |
| 233 | className='group/link flex items-center gap-4 px-6 py-4 transition-colors hover:bg-[var(--surface-hover)]' |
| 234 | > |
| 235 | <ProviderIcon |
| 236 | provider={provider} |
| 237 | className='size-8 shrink-0 rounded-xl' |
| 238 | iconClassName='size-4' |
| 239 | /> |
| 240 | |
| 241 | <div className='flex min-w-0 flex-1 flex-col gap-0.5'> |
| 242 | <h4 className='text-[14px] text-[var(--text-primary)] leading-snug tracking-[-0.02em]'> |
| 243 | {model.displayName} |
| 244 | </h4> |
| 245 | <p className='line-clamp-1 hidden text-[12px] text-[var(--text-muted)] leading-[150%] sm:block'> |
| 246 | {model.id} · Input {formatPrice(model.pricing.input)}/1M · Output{' '} |
| 247 | {formatPrice(model.pricing.output)}/1M |
| 248 | {model.contextWindow ? ` · ${formatTokenCount(model.contextWindow)} context` : ''} |
| 249 | </p> |
| 250 | </div> |
| 251 | |
| 252 | <ChevronArrow /> |
| 253 | </Link> |
| 254 | </> |
| 255 | ) |
| 256 | } |
nothing calls this directly
no test coverage detected