import React, { useState } from "react"; import { Modal } from "../common/Modal"; import { Users, FileText, Sliders, Calendar, Sparkles, ArrowRight, ArrowLeft, CheckCircle, } from "lucide-react"; interface GuidedTourModalProps { isOpen: boolean; onClose: () => void; onNavigateToTab?: (tabId: string) => void; } export const GuidedTourModal: React.FC = ({ isOpen, onClose, onNavigateToTab, }) => { const [step, setStep] = useState(0); const steps = [ { title: "Welcome to the Placement Engine", icon: , content: "Manage 40 to 120 campus recruitment drives entirely offline. All student academic records, company cut-offs, college offer policies, and interview schedules are computed locally with zero cloud dependencies.", highlight: "Step 1: Import your student batch roster with automatic column mapping.", targetTab: "students", }, { title: "Paste or Upload Drive Announcements", icon: , content: "No manual re-typing. Paste messy email announcements or drop PDFs/DOCXs. Our offline extractor identifies CGPA cut-offs, branch aliases, backlogs, and gap limits, and presents them in a side-by-side review window.", highlight: "Step 2: Review extracted fields with exact quotation provenance.", targetTab: "create_drive", }, { title: "Visual Rule Builder & College Policies", icon: , content: "Tweak requirements with simple sliders and checkboxes. Watch the eligible student counter update in real-time. Layer institutional offer rules ('one offer and you are out', dream company CTC exceptions) automatically.", highlight: "Step 3: Instant live candidate count without guessing.", targetTab: "rule_editor", }, { title: "Clash-Free Interview & Test Scheduling", icon: , content: "Our Google OR-Tools CP-SAT engine schedules hundreds of students across multiple rooms and panels in seconds with mathematically proven ZERO overlapping student or room clashes.", highlight: "Step 4: Look for the green '0 Clashes Verified' badge.", targetTab: "schedule", }, { title: "What-If Simulation & Safe Publishing", icon: , content: "Before publishing a schedule to students and recruiters, test changes in-memory. See computed headlines like 'Lowering cut-off from 7.0 to 6.5 adds 38 students; 6 clash with Test B' before committing.", highlight: "Step 5: Safe versioned publication with instant rollback protection.", targetTab: "what_if", }, ]; const current = steps[step]; const handleNext = () => { if (step < steps.length - 1) { setStep(step + 1); } else { onClose(); } }; const handleJump = () => { if (onNavigateToTab && current.targetTab) { onNavigateToTab(current.targetTab); } onClose(); }; return (
{steps.map((_, i) => ( ))}
{step > 0 && ( )}
} >
{current.icon}

{current.title}

{current.content}

{current.highlight}
); };