| import React from "react"; | |
| import { Card, CardContent } from "@/components/ui/card"; | |
| import { Button } from "@/components/ui/button"; | |
| import { motion } from "framer-motion"; | |
| export default function Dashboard() { | |
| return ( | |
| <div className="p-6 grid grid-cols-1 md:grid-cols-2 gap-6"> | |
| <motion.h1 | |
| initial={{ opacity: 0, y: -20 }} | |
| animate={{ opacity: 1, y: 0 }} | |
| className="text-3xl font-bold col-span-full" | |
| > | |
| Integral Infrastructure Dashboard | |
| </motion.h1> | |
| <Card className="rounded-2xl shadow-md"> | |
| <CardContent className="p-4"> | |
| <h2 className="text-xl font-semibold mb-2">Infrastructure Status</h2> | |
| <p>Live road condition, pothole detection, and alerts.</p> | |
| </CardContent> | |
| </Card> | |
| <Card className="rounded-2xl shadow-md"> | |
| <CardContent className="p-4"> | |
| <h2 className="text-xl font-semibold mb-2">AI Verification</h2> | |
| <p>Model outputs for pothole validation and cost optimization.</p> | |
| </CardContent> | |
| </Card> | |
| <Card className="rounded-2xl shadow-md"> | |
| <CardContent className="p-4"> | |
| <h2 className="text-xl font-semibold mb-2">Event Stream</h2> | |
| <p>Live subscriptions showing infrastructureFaults and updates.</p> | |
| </CardContent> | |
| </Card> | |
| <Card className="rounded-2xl shadow-md"> | |
| <CardContent className="p-4"> | |
| <h2 className="text-xl font-semibold mb-2">Trigger Action</h2> | |
| <Button>Simulate Repair</Button> | |
| </CardContent> | |
| </Card> | |
| </div> | |
| ); | |
| } | |