Download components/landing/workflow.tsx from lablab-ai-amd-developer-hackathon/MachinaCheck: direct link, hf CLI and curl.
- Browser
- Download file 4.89 kB
-
https://huggingface.co/spaces/lablab-ai-amd-developer-hackathon/MachinaCheck/resolve/main/components/landing/workflow.tsx
- Command line
-
hf download hf://spaces/lablab-ai-amd-developer-hackathon/MachinaCheck/components/landing/workflow.tsx
-
curl -L -o workflow.tsx https://huggingface.co/spaces/lablab-ai-amd-developer-hackathon/MachinaCheck/resolve/main/components/landing/workflow.tsx
4.89 kB
| "use client"; | |
| import React from "react"; | |
| import { Upload, BrainCircuit, Activity, Wrench, CheckCircle2, FileOutput } from "lucide-react"; | |
| import { motion } from "framer-motion"; | |
| const steps = [ | |
| { name: "Upload 3D model", icon: Upload, gradient: "from-blue-500 to-blue-600" }, | |
| { name: "AI Parsing", icon: BrainCircuit, gradient: "from-cyan-500 to-blue-500" }, | |
| { name: "Operations Detection", icon: Activity, gradient: "from-cyan-400 to-cyan-500" }, | |
| { name: "Tool Matching", icon: Wrench, gradient: "from-blue-400 to-cyan-400" }, | |
| { name: "Feasibility Decision", icon: CheckCircle2, gradient: "from-cyan-500 to-blue-500" }, | |
| { name: "Report Generation", icon: FileOutput, gradient: "from-blue-600 to-cyan-500" }, | |
| ]; | |
| export function Workflow() { | |
| return ( | |
| <section id="workflow" className="py-24 relative bg-gradient-to-b from-slate-950/50 to-slate-900/30"> | |
| {/* Decorative blurs */} | |
| <div className="absolute top-0 left-1/4 w-96 h-96 bg-blue-500/10 rounded-full blur-3xl -z-10"></div> | |
| <div className="absolute bottom-0 right-1/4 w-96 h-96 bg-cyan-500/10 rounded-full blur-3xl -z-10"></div> | |
| <div className="container mx-auto px-4 sm:px-6 lg:px-8"> | |
| <div className="text-center max-w-3xl mx-auto mb-20"> | |
| <motion.div | |
| initial={{ opacity: 0, y: 20 }} | |
| whileInView={{ opacity: 1, y: 0 }} | |
| viewport={{ once: true }} | |
| transition={{ duration: 0.5 }} | |
| > | |
| <h2 className="text-3xl font-bold tracking-tight text-foreground sm:text-4xl mb-4"> | |
| <span className="bg-gradient-to-r from-blue-300 via-cyan-300 to-blue-300 bg-clip-text text-transparent"> | |
| Automated Assessment Pipeline | |
| </span> | |
| </h2> | |
| </motion.div> | |
| <motion.p | |
| className="text-lg text-muted-foreground" | |
| initial={{ opacity: 0, y: 20 }} | |
| whileInView={{ opacity: 1, y: 0 }} | |
| viewport={{ once: true }} | |
| transition={{ duration: 0.5, delay: 0.1 }} | |
| > | |
| A continuous, deterministic workflow that transforms raw CAD design into actionable manufacturing intelligence within seconds. | |
| </motion.p> | |
| </div> | |
| <div className="relative max-w-5xl mx-auto"> | |
| {/* Animated connecting line */} | |
| <motion.div | |
| className="hidden lg:block absolute top-1/2 left-0 right-0 h-0.5 -translate-y-1/2 z-0" | |
| initial={{ scaleX: 0, opacity: 0 }} | |
| whileInView={{ scaleX: 1, opacity: 1 }} | |
| viewport={{ once: true }} | |
| transition={{ duration: 0.8, delay: 0.2 }} | |
| style={{ transformOrigin: "left" }} | |
| > | |
| <div className="w-full h-full bg-gradient-to-r from-transparent via-blue-500/50 to-transparent"></div> | |
| </motion.div> | |
| <div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-6 gap-6 relative z-10"> | |
| {steps.map((step, index) => { | |
| const Icon = step.icon; | |
| return ( | |
| <motion.div | |
| key={index} | |
| className="flex flex-col items-center" | |
| initial={{ opacity: 0, y: 20 }} | |
| whileInView={{ opacity: 1, y: 0 }} | |
| viewport={{ once: true }} | |
| transition={{ duration: 0.5, delay: index * 0.1 }} | |
| > | |
| {/* Icon container with gradient glow */} | |
| <motion.div | |
| className={`h-16 w-16 rounded-xl bg-gradient-to-br ${step.gradient} flex items-center justify-center shadow-lg mb-4 relative z-10 cursor-pointer group`} | |
| whileHover={{ scale: 1.1, boxShadow: "0 0 30px rgba(34, 211, 238, 0.5)" }} | |
| transition={{ type: "spring", stiffness: 300, damping: 10 }} | |
| > | |
| <div className="absolute inset-0 rounded-xl bg-white/10 opacity-0 group-hover:opacity-20 transition-opacity"></div> | |
| <Icon className="h-6 w-6 text-white relative z-10" /> | |
| {/* Glow effect on hover */} | |
| <div className="absolute inset-0 rounded-xl bg-gradient-to-br opacity-0 group-hover:opacity-30 group-hover:blur-lg -z-10 transition-opacity" style={{ backgroundImage: `linear-gradient(to bottom right, rgba(34, 211, 238, 0.6), rgba(59, 130, 246, 0.6))` }}></div> | |
| </motion.div> | |
| <h3 className="text-sm font-semibold text-foreground text-center"> | |
| {step.name} | |
| </h3> | |
| <div className="text-xs text-muted-foreground mt-1 font-mono"> | |
| Step 0{index + 1} | |
| </div> | |
| </motion.div> | |
| ); | |
| })} | |
| </div> | |
| </div> | |
| </div> | |
| </section> | |
| ); | |
| } | |