import React, {useState} from 'react';
import Link from '@docusaurus/Link';
import useBaseUrl from '@docusaurus/useBaseUrl';
import styles from './CookbookGrid.module.css';
export interface CookbookCard {
title: string;
href: string;
description?: string;
tags?: {
sdk?: string;
topic?: string;
};
}
interface CookbookGridProps {
items: CookbookCard[];
}
function sdkIcon(sdk: string): string | null {
if (sdk.startsWith('@') || sdk.includes('node') || sdk.includes('chat') || sdk.includes('ai-sdk')) {
return '/img/icons/nodejs.png';
}
if (sdk.includes('-go') || sdk === 'go') {
return '/img/icons/golang.png';
}
if (sdk.includes('hermes')) {
return '/img/icons/hermes.png';
}
if (sdk.includes('hindsight-client') || sdk.includes('hindsight-api') || sdk.includes('litellm') || sdk.includes('pydantic') || sdk.includes('crewai')) {
return '/img/icons/python.svg';
}
return null;
}
function SdkIcon({sdk, className}: {sdk: string; className?: string}) {
const icon = sdkIcon(sdk);
const src = useBaseUrl(icon ?? '');
if (!icon) return null;
return ;
}
function Card({title, href, description, tags}: CookbookCard) {
return (
{description}
} {(tags?.topic || tags?.sdk) && (