Files
copilotkit__copilotkit/docs/components/react/examples-carousel.tsx
Jordan Ritter 79bdaddf0c docs: update tutorials and READMEs for consolidated demo paths
Rewrite all standalone repo URLs to monorepo paths across 18 doc files
and the root README. Tutorial clone instructions now use
GIT_LFS_SKIP_SMUDGE=1 and point to examples/ subdirectories. Fix
pre-existing copy-paste bug in textarea tutorial and stale branch refs.
2026-03-12 13:06:03 -07:00

261 lines
8.4 KiB
TypeScript

"use client";
import {
Card,
CardDescription,
CardHeader,
CardTitle,
} from "@/components/ui/card";
import { Frame } from "@/components/react/frame";
import {
LuBookOpen,
LuBanknote,
LuPlane,
LuFileSpreadsheet,
LuCode,
LuExternalLink,
LuLightbulb,
} from "react-icons/lu";
import { badgeVariants } from "@/components/ui/badge";
import Link from "next/link";
import { cn } from "@/lib/utils";
import { Tabs, Tab } from "@/components/react/tabs";
import { YouTubeVideo } from "./youtube-video";
interface CarouselExample {
icon: React.ElementType;
title: string;
description: string;
media: {
type: "video" | "image" | "youtube";
src: string;
};
links: {
source?: string;
demo?: string;
tutorial?: string;
};
}
interface ExamplesCarouselProps {
id: string;
examples?: CarouselExample[];
}
const badgeStyles = cn(
badgeVariants({ variant: "outline" }),
"bg-indigo-500 hover:bg-indigo-600 text-white no-underline focus:ring-1 focus:ring-indigo-500",
);
export function ExamplesCarousel({
id,
examples = LandingExamples,
}: ExamplesCarouselProps) {
return (
<Tabs
groupId={id}
items={examples.map((example) => {
const Icon = example.icon;
return {
value: example.title,
icon: <Icon className="w-4 h-4" />,
};
})}
>
{examples.map((example, index) => {
const Icon = example.icon;
return (
<Tab key={index} value={example.title}>
<Card className="border-none shadow-none">
<CardHeader>
<CardTitle className="flex items-center text-xl">
<Icon className="mr-2" />
{example.title}
</CardTitle>
<div className="flex flex-wrap gap-2 my-2 pt-2">
{example.links.source && (
<Link
href={example.links.source}
target="_blank"
rel="noopener noreferrer"
className={badgeStyles}
>
<LuCode className="mr-2 h-3.5 w-3.5" />
Source
</Link>
)}
{example.links.demo && (
<Link
href={example.links.demo}
target="_blank"
rel="noopener noreferrer"
className={badgeStyles}
>
<LuExternalLink className="mr-2 h-3.5 w-3.5" />
Demo
</Link>
)}
{example.links.tutorial && (
<Link
href={example.links.tutorial}
target="_blank"
rel="noopener noreferrer"
className={badgeStyles}
>
<LuBookOpen className="mr-2 h-3.5 w-3.5" />
Tutorial
</Link>
)}
</div>
<CardDescription className="text-base pt-6 text-primary">
{example.description}
</CardDescription>
<div className="w-full">
{example.media.type === "video" && (
<video
autoPlay
loop
muted
controls
playsInline
src={example.media.src}
className="rounded-2xl shadow-xl border w-full h-auto"
/>
)}
{example.media.type === "image" && (
<Frame className="rounded-2xl shadow-xl">
<img
src={example.media.src}
className="w-full h-auto"
alt=""
/>
</Frame>
)}
{example.media.type === "youtube" && (
<div className="flex justify-center mt-6">
<YouTubeVideo videoId={example.media.src} />
</div>
)}
</div>
</CardHeader>
</Card>
</Tab>
);
})}
</Tabs>
);
}
export const LandingExamples: CarouselExample[] = [
{
icon: LuFileSpreadsheet,
title: "Spreadsheet Copilot",
description:
"A powerful spreadsheet assistant that helps users analyze data, create formulas, and generate insights through natural language interaction.",
media: {
type: "video",
src: "https://cdn.copilotkit.ai/docs/copilotkit/images/examples/spreadsheets.mp4",
},
links: {
source:
"https://github.com/CopilotKit/CopilotKit/tree/main/examples/showcases/spreadsheet",
demo: "https://spreadsheet-demo-tau.vercel.app/",
},
},
{
icon: LuBanknote,
title: "Banking Assistant (SaaS Copilot)",
description:
"An AI-powered banking interface that helps users manage transactions, analyze spending patterns, and get personalized financial advice.",
media: {
type: "video",
src: "https://cdn.copilotkit.ai/docs/copilotkit/images/examples/banking.mp4",
},
links: {
source:
"https://github.com/CopilotKit/CopilotKit/tree/main/examples/showcases/banking",
demo: "https://brex-demo-temp.vercel.app/",
},
},
{
icon: LuPlane,
title: "Agent-Native Travel Planner (ANA)",
description:
"Interactive travel planning assistant that helps users discover destinations, create itineraries, and manage trip details with natural language.",
media: {
type: "video",
src: "https://cdn.copilotkit.ai/docs/copilotkit/images/langgraph/tutorials/ai-travel-app/demo.mp4",
},
links: {
source:
"https://github.com/CopilotKit/CopilotKit/tree/main/examples/coagents-travel?ref=travel-tutorial",
demo: "https://examples-coagents-ai-travel-app.vercel.app/",
tutorial: "/langgraph/tutorials/ai-travel-app",
},
},
{
icon: LuBookOpen,
title: "Agent-Native Research Canvas (ANA)",
description:
"An intelligent research assistant that helps users analyze academic papers, synthesize information across multiple sources, and generate comprehensive research summaries.",
media: {
type: "video",
src: "https://cdn.copilotkit.ai/docs/copilotkit/images/examples/research.mp4",
},
links: {
source:
"https://github.com/CopilotKit/CopilotKit/blob/main/examples/coagents-research-canvas/readme.md",
demo: "https://examples-coagents-research-canvas-ui.vercel.app/",
tutorial: "/langgraph/videos/research-canvas",
},
},
];
export const CoAgentsExamples: CarouselExample[] = [
{
icon: LuLightbulb,
title: "Introduction",
description:
"Hear from the CEO of CopilotKit, Atai Barkai, and learn how CoAgents are paving the way for the next generation of AI-native apps.",
media: {
type: "youtube",
src: "tVjVYJE-Nic",
},
links: {
demo: "https://examples-coagents-research-canvas-ui.vercel.app/",
},
},
{
icon: LuPlane,
title: "Agent-Native Travel Planner (ANA)",
description:
"Interactive travel planning assistant that helps users discover destinations, create itineraries, and manage trip details with natural language.",
media: {
type: "video",
src: "https://cdn.copilotkit.ai/docs/copilotkit/images/langgraph/tutorials/ai-travel-app/demo.mp4",
},
links: {
source:
"https://github.com/CopilotKit/CopilotKit/tree/main/examples/coagents-travel?ref=travel-tutorial",
demo: "https://examples-coagents-ai-travel-app.vercel.app/",
tutorial: "/langgraph/tutorials/ai-travel-app",
},
},
{
icon: LuBookOpen,
title: "Agent-Native Research Canvas (ANA)",
description:
"An intelligent research assistant that helps users analyze academic papers, synthesize information across multiple sources, and generate comprehensive research summaries.",
media: {
type: "video",
src: "https://cdn.copilotkit.ai/docs/copilotkit/images/examples/research.mp4",
},
links: {
source:
"https://github.com/CopilotKit/CopilotKit/blob/main/examples/coagents-research-canvas/readme.md",
demo: "https://examples-coagents-research-canvas-ui.vercel.app/",
tutorial: "/langgraph/videos/research-canvas",
},
},
];