export declare const homeRouteTemplate = "import { useState, useEffect } from \"react\";\nimport { Link } from \"react-router-dom\";\nimport { Zap, Shield, Code, ArrowRight, Activity, Bot, Key } from \"lucide-react\";\nimport { VannaButton } from \"../components/VannaButton\";\nimport { VannaCard } from \"../components/VannaCard\";\n\ninterface HealthStatus {\n status: string;\n env: string;\n timestamp: string;\n}\n\nconst features = [\n {\n icon: Bot,\n title: \"Built-in MCP Server\",\n description: \"AI-ready API with Model Context Protocol. Connect Claude or any MCP client instantly.\",\n },\n {\n icon: Key,\n title: \"Bring Your Own Auth\",\n description: \"Plug in any auth system - JWTs, API keys, sessions. You control authentication.\",\n },\n {\n icon: Zap,\n title: \"Lightning Fast\",\n description: \"Built on Bun for incredible performance and instant hot reloading.\",\n },\n {\n icon: Shield,\n title: \"Type Safe\",\n description: \"Full TypeScript support with Zod schema validation.\",\n },\n {\n icon: Code,\n title: \"Modern Stack\",\n description: \"React 19, React Router 7, and Tailwind CSS 4.\",\n },\n];\n\nexport function Home() {\n const [health, setHealth] = useState(null);\n\n useEffect(() => {\n fetch(\"/health\")\n .then(res => res.json())\n .then(setHealth)\n .catch(console.error);\n }, []);\n\n return (\n
\n {/* Hero Section */}\n
\n

\n Welcome to Ontology\n

\n

\n Your full-stack Bun + React application is ready. Start building something amazing.\n

\n
\n \n \n View Dashboard\n \n \n \n \n \n Explore API\n \n \n
\n
\n\n {/* Features Grid */}\n
\n {features.map(({ icon: Icon, title, description }) => (\n \n
\n \n
\n

{title}

\n

{description}

\n
\n ))}\n
\n\n {/* API Status */}\n \n
\n
\n \n
\n

API Status

\n
\n {health ? (\n
\n
\n Status\n

{health.status}

\n
\n
\n Environment\n

{health.env}

\n
\n
\n Timestamp\n

{health.timestamp}

\n
\n
\n ) : (\n

Loading...

\n )}\n
\n
\n );\n}\n"; export declare const dashboardRouteTemplate = "import { useState, useEffect } from \"react\";\nimport { Activity, Users, Zap, Clock, BarChart3, Bot, Loader2 } from \"lucide-react\";\nimport {\n AreaChart, Area, BarChart, Bar, XAxis, YAxis, CartesianGrid,\n Tooltip, ResponsiveContainer, Legend\n} from \"recharts\";\nimport { StatsCard } from \"../components/StatsCard\";\nimport { VannaCard } from \"../components/VannaCard\";\nimport { VannaButton } from \"../components/VannaButton\";\n\ninterface SalesDataPoint {\n month: string;\n sales: number;\n orders: number;\n}\n\nexport function Dashboard() {\n const [salesData, setSalesData] = useState([]);\n const [loading, setLoading] = useState(true);\n const [error, setError] = useState(null);\n\n useEffect(() => {\n fetch(\"/api/getSalesData\", {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({}),\n })\n .then((res) => res.json())\n .then((data) => {\n setSalesData(data);\n setLoading(false);\n })\n .catch((err) => {\n setError(err.message);\n setLoading(false);\n });\n }, []);\n\n // Calculate stats from sales data\n const totalSales = salesData.reduce((sum, d) => sum + d.sales, 0);\n const totalOrders = salesData.reduce((sum, d) => sum + d.orders, 0);\n const avgSales = salesData.length > 0 ? Math.round(totalSales / salesData.length) : 0;\n\n return (\n
\n
\n

Dashboard

\n

Sales data fetched from your Ontology API.

\n
\n\n {/* Stats Grid */}\n
\n }\n />\n }\n />\n }\n />\n }\n />\n
\n\n {/* Sales Trend Chart */}\n \n

Sales Trend

\n
\n {loading ? (\n
\n \n Loading data...\n
\n ) : error ? (\n
\n Error: {error}\n
\n ) : (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )}\n
\n
\n\n {/* Multi-Series Bar Chart */}\n \n
\n
\n \n
\n

Sales vs Orders

\n
\n
\n {loading ? (\n
\n \n Loading data...\n
\n ) : (\n \n \n \n \n \n \n \n \n \n \n \n \n )}\n
\n
\n\n {/* MCP Apps Feature Card */}\n \n
\n
\n \n
\n

MCP Apps Visualization

\n
\n

\n The getSalesData function has\n ui enabled. When called via MCP,\n results are automatically displayed in an interactive chart.\n

\n
\n

# In ontology.config.ts:

\n

getSalesData: {\"{\"}

\n

// ... other config

\n

ui: {\"{\"} type: 'chart', chartType: 'bar', xAxis: 'month' {\"}\"}

\n

{\"}\"}

\n
\n

\n Try it in Claude Desktop or any MCP client by calling getSalesData.\n

\n
\n\n {/* Button Gallery */}\n \n

Component Gallery

\n
\n
\n

Button Variants

\n
\n Primary\n Secondary\n Outline\n Ghost\n
\n
\n
\n

Button Sizes

\n
\n Small\n Medium\n Large\n
\n
\n
\n
\n
\n );\n}\n"; export declare const aboutRouteTemplate = "import { VannaCard } from \"../components/VannaCard\";\nimport { Bot, Key, ExternalLink } from \"lucide-react\";\n\nconst stack = [\n { name: \"Runtime\", value: \"Bun\" },\n { name: \"Frontend\", value: \"React 19 + React Router 7\" },\n { name: \"Styling\", value: \"Tailwind CSS 4\" },\n { name: \"API\", value: \"Ontology (ont-run)\" },\n { name: \"Icons\", value: \"Lucide React\" },\n { name: \"Charts\", value: \"Recharts\" },\n];\n\nconst designTokens = [\n { name: \"Navy\", value: \"#023d60\", className: \"bg-navy\" },\n { name: \"Cream\", value: \"#e7e1cf\", className: \"bg-cream border border-navy/20\" },\n { name: \"Teal\", value: \"#15a8a8\", className: \"bg-teal\" },\n { name: \"Orange\", value: \"#fe5d26\", className: \"bg-orange\" },\n { name: \"Magenta\", value: \"#bf1363\", className: \"bg-magenta\" },\n];\n\nexport function About() {\n return (\n
\n
\n

About

\n

\n Learn about the stack and design system powering this application.\n

\n
\n\n {/* Stack */}\n \n

Tech Stack

\n
\n {stack.map(({ name, value }) => (\n
\n {name}\n {value}\n
\n ))}\n
\n
\n\n {/* MCP Server */}\n \n
\n
\n \n
\n

Built-in MCP Server

\n
\n

\n Your API is automatically exposed as a Model Context Protocol (MCP) server.\n Connect AI assistants like Claude Desktop directly to your API functions.\n

\n
\n

# Add to Claude Desktop config:

\n

\"my-api\": {\"{\"}

\n

\"command\": \"bunx\",

\n

\"args\": [\"ont-run\", \"mcp\"]

\n

{\"}\"}

\n
\n \n Learn more about MCP \n \n
\n\n {/* Authentication */}\n \n
\n
\n \n
\n

Bring Your Own Auth

\n
\n

\n Ontology doesn't impose an auth system. Customize the auth function\n in ontology.config.ts to integrate any authentication method.\n

\n
\n
\n

JWTs

\n

Verify tokens from Auth0, Clerk, etc.

\n
\n
\n

API Keys

\n

Simple key-based access control

\n
\n
\n

Sessions

\n

Cookie-based session auth

\n
\n
\n
\n\n {/* Design Tokens */}\n \n

Vanna Design System

\n

\n A cohesive color palette designed for clarity and visual harmony.\n

\n
\n {designTokens.map(({ name, value, className }) => (\n
\n
\n

{name}

\n

{value}

\n
\n ))}\n
\n \n\n {/* Typography */}\n \n

Typography

\n
\n
\n

Serif (Headlines)

\n

Roboto Slab - The quick brown fox

\n
\n
\n

Sans (Body)

\n

Space Grotesk - The quick brown fox

\n
\n
\n

Mono (Code)

\n

Space Mono - The quick brown fox

\n
\n
\n
\n
\n );\n}\n";