(props: {
providerId: string;
provider: CatalogProvider;
models: ProviderModelEntry[];
})
| 867 | } |
| 868 | |
| 869 | function ProviderPage(props: { |
| 870 | providerId: string; |
| 871 | provider: CatalogProvider; |
| 872 | models: ProviderModelEntry[]; |
| 873 | }) { |
| 874 | return ( |
| 875 | <Fragment> |
| 876 | <DetailHeader |
| 877 | eyebrow={<a href="/providers">Providers</a>} |
| 878 | title={props.provider.name} |
| 879 | code={props.providerId} |
| 880 | copyValue={props.providerId} |
| 881 | /> |
| 882 | <Facts |
| 883 | items={[ |
| 884 | ["Models", props.models.length], |
| 885 | ["Package", <span class="mono">{props.provider.npm}</span>], |
| 886 | ["API", <span class="mono">{props.provider.api ?? "-"}</span>], |
| 887 | [ |
| 888 | "Docs", |
| 889 | <a href={props.provider.doc} target="_blank" rel="noopener noreferrer"> |
| 890 | Provider docs |
| 891 | </a>, |
| 892 | ], |
| 893 | ]} |
| 894 | /> |
| 895 | <TableSection title="Models" count={props.models.length} columns={9}> |
| 896 | <ProviderModelsTable models={props.models} mode="provider" showLab={false} /> |
| 897 | </TableSection> |
| 898 | </Fragment> |
| 899 | ); |
| 900 | } |
| 901 | |
| 902 | function LabPage(props: { lab: LabEntry }) { |
| 903 | return ( |
nothing calls this directly
no outgoing calls
no test coverage detected