"use client"; import { useState } from "react"; import { ArrowRight, BookOpen, CheckCircle2, Circle, Clock3, FileText, GraduationCap, Home, MessageSquareText, Play, Search, Sparkles, } from "lucide-react"; import { DocDoeLogoMark } from "./DocDoeLogoMark"; import { cn } from "@/lib/utils"; export type WorkspaceView = "home" | "tuition" | "studychat" | "learn"; const nav = [ { id: "home" as const, label: "Home", icon: Home }, { id: "tuition" as const, label: "Tuition", icon: GraduationCap }, { id: "learn" as const, label: "Learn Anything", icon: BookOpen }, { id: "studychat" as const, label: "StudyChat", icon: MessageSquareText }, ]; const tasks = [ "Sound Waves: Oscillation, amplitude, period", "Sound Waves: Natural frequency & resonance", "Sound Waves: Wave motion and types", "Sound Waves: Frequency, wavelength, v = fλ", ]; const routeSteps = [ "Learn today's concept", "Read the key notes", "Pass the checkpoints", "Fix weak areas", "Save revision", ]; const chatTools = [ { title: "Solve a PYQ", desc: "Method, marks and final answer" }, { title: "Explain a derivation", desc: "Steps, formula and exam method" }, { title: "Make study notes", desc: "Clean notes from a topic or PDF" }, { title: "Correct my answer", desc: "Marks, mistakes and improved answer" }, ]; /** * Live-looking DocDoe workspace. Tabs switch real product surfaces * (Home / Tuition / StudyChat / Learn Anything) — not screenshots. */ export function WorkspaceInteractiveDemo({ className, defaultView = "home", }: { className?: string; defaultView?: WorkspaceView; }) { const [view, setView] = useState(defaultView); return (
{/* Window chrome */}
app.docdoe.in · live workspace
{/* Sidebar */} {/* Mobile tab bar */}
{nav.map((item) => ( ))}
{/* Main content */}

{nav.find((n) => n.id === view)?.label}

Search workspace
{view === "home" ? ( setView("tuition")} onOpenLearn={() => setView("learn")} onOpenChat={() => setView("studychat")} /> ) : null} {view === "tuition" ? : null} {view === "studychat" ? : null} {view === "learn" ? : null}
); } function HomeView({ onOpenTuition, onOpenLearn, onOpenChat, }: { onOpenTuition: () => void; onOpenLearn: () => void; onOpenChat: () => void; }) { return (

Good evening

Let's make today productive

SSLC / 10th · Kerala State Board

Today's focus

Sound Waves · Mission 01

Oscillation, amplitude, period and frequency · 35 min

Today's plan

0/4
    {tasks.map((task, i) => (
  • {task} Physics · 35 min {i === 0 ? ( ) : null}
  • ))}
{[ { label: "Tuition", color: "from-violet-50 to-white", icon: GraduationCap, onClick: onOpenTuition }, { label: "Learn Anything", color: "from-emerald-50 to-white", icon: BookOpen, onClick: onOpenLearn }, { label: "StudyChat", color: "from-blue-50 to-white", icon: MessageSquareText, onClick: onOpenChat }, ].map((card) => { const Icon = card.icon; return ( ); })}
); } function TuitionView() { return (

Today's tuition

Oscillation, Amplitude, Period and Frequency

Understand the basic terms of oscillatory motion using a pendulum and swing.

20 mins Sound Waves · p.7

Your class route

5 steps
    {routeSteps.map((step, i) => (
  • {i === 0 ? ( ) : ( )} {step} Step {i + 1}
  • ))}

Class summary

{[ ["Chapter", "Sound Waves"], ["Mission", "M1"], ["Time", "20 mins"], ["Source", "Textbook p.7"], ].map(([k, v]) => (
{k}
{v}
))}

Why this class

Next unfinished task in your saved plan. Aim: write exam keywords in your own words.

); } function StudyChatView() { return (

What do you need to understand?

SSLC / 10th · Kerala · Physics

{chatTools.map((tool) => ( ))}
Ask a doubt, paste a PYQ, or tell DocDoe what to teach…

Answers can make mistakes. Check important exam facts against your source.

); } function LearnView() { return (

Learn Anything

Turn any topic into a clear roadmap with sessions, notes, and practice.

What do you want to learn?

I want to learn…
{["Beginner", "3 months", "Career skill"].map((chip) => ( {chip} ))}
{["Data Science", "Python", "UI/UX", "Public Speaking"].map((t) => ( {t} ))}

Your learning roadmap

Ready when you are
{["Goal", "Foundations", "Core ideas", "Practice", "Project", "Revision"].map( (stage, i) => (
{i + 1}

{stage}

), )}

Name a skill, set your pace, start one session. Same student profile as Tuition and StudyChat.

); }