import "./styles.css"; import { createRoot } from "react-dom/client"; import { forwardRef } from "react"; import { BrowserRouter, Routes, Route, Navigate, Link as RouterLink } from "react-router-dom"; import { LinkProvider, type LinkComponentProps } from "@cloudflare/kumo"; import { ThemeProvider } from "./hooks/useTheme"; /** * Adapter between Kumo's LinkProvider (to?: string) and React Router's Link (to: To). * Falls back to a plain when `to` is not provided. */ const AppLink = forwardRef( ({ to, ...props }, ref) => { if (to) { return ; } // oxlint-disable-next-line jsx-a11y/anchor-has-content -- content comes from spread props return ; } ); import { Layout } from "./layout"; import { Home } from "./pages/Home"; // Core demos import { StateDemo, CallableDemo, StreamingDemo, ScheduleDemo, ConnectionsDemo, SqlDemo, RoutingDemo, ReadonlyDemo, RetryDemo } from "./demos/core"; // AI demos import { ChatDemo, ToolsDemo, CodemodeDemo } from "./demos/ai"; // MCP demos import { McpServerDemo, McpClientDemo, McpOAuthDemo } from "./demos/mcp"; // Workflow demos import { WorkflowBasicDemo, WorkflowApprovalDemo } from "./demos/workflow"; // Voice demos import { VoiceDemo } from "./demos/voice"; // Email demos import { ReceiveDemo, SecureDemo } from "./demos/email"; // Multi-Agent demos import { SupervisorDemo, ChatRoomsDemo, WorkersDemo, PipelineDemo } from "./demos/multi-agent"; function App() { return ( }> } /> {/* Core */} } /> } /> } /> } /> } /> } /> } /> } /> } /> {/* AI */} } /> } /> } /> {/* MCP */} } /> } /> } /> {/* Workflow */} } /> } /> {/* Multi-Agent */} } /> } /> } /> } /> {/* Voice */} } /> {/* Email */} } /> } /> {/* Fallback */} } /> ); } createRoot(document.getElementById("root")!).render();