import React, { useState } from "react"; type ResourceType = "transcript" | "slides" | "pdf"; interface Resource { id: string; title: string; fileName: string; type: ResourceType; url: string; // TODO: replace with real PDF URLs } interface Module { id: string; title: string; category: string; description: string; resources: Resource[]; } const modules: Module[] = [ { id: "cycles-duality-duat", title: "Cycles, Duality, Duat, Calendar, Neteru", category: "Foundations", description: "Introduces the Kemetic cycle of time, the law of duality, and the Ba’s journey through the Duat.", resources: [ { id: "003-cycles", title: "003 – Cycles Transcript", fileName: "003-Cycles Transcript.pdf", type: "transcript", url: "/pdfs/003-cycles.pdf", }, { id: "004-duality", title: "004 – Duality Transcript", fileName: "004-Duality Transcript.pdf", type: "transcript", url: "/pdfs/004-duality.pdf", }, { id: "005-duat", title: "005 – Duat Transcript", fileName: "005-Duat Transcript.pdf", type: "transcript", url: "/pdfs/005-duat.pdf", }, ], }, { id: "planetary-energies", title: "Planetary Energies & Planet Neteru", category: "Cosmology", description: "Maps the visible planets to the Neteru, their cycles, and how they affect character and timing.", resources: [ { id: "class6-planetary-energies", title: "Class 6 – Planetary Energies (Slides)", fileName: "_Class 6 – Planetary Energies.pdf", type: "slides", url: "/pdfs/class6-planetary-energies.pdf", }, { id: "006-planet-neteru", title: "006 – Planet Neteru Transcript", fileName: "006-Planet Neteru Transcript.pdf", type: "transcript", url: "/pdfs/006-planet-neteru.pdf", }, ], }, { id: "calendars-months", title: "Calendars & Kemetic Months", category: "Timekeeping", description: "Connects Roman months, Kemetic month names, colors, and psychological energies of the year.", resources: [ { id: "001-8-kemetic-months-slides", title: "001-8 – Kemetic Months (Slides)", fileName: "001-8-Class-Kemetic Months Slides.pdf", type: "slides", url: "/pdfs/001-8-kemetic-months-slides.pdf", }, { id: "008-kemetic-months-transcript", title: "008 – Kemetic Months Transcript", fileName: "008-Kemetic Months Transcript.pdf", type: "transcript", url: "/pdfs/008-kemetic-months-transcript.pdf", }, { id: "007-roman-months-transcript", title: "007 – Roman Months Transcript", fileName: "007-Roman Months Transcript.pdf", type: "transcript", url: "/pdfs/007-roman-months-transcript.pdf", }, ], }, { id: "sebau-constellations", title: "Sebau / Constellations", category: "Star Lore", description: "Explains Seba and Sebau, the Kemetic constellations, and how they mark the seasonal work on Earth.", resources: [ { id: "class12-sebau", title: "Class 12 – Sebau (Slides)", fileName: "01-10-Class-12 Sebau.pdf", type: "slides", url: "/pdfs/01-10-class-12-sebau.pdf", }, { id: "009-sebau-transcript", title: "009 – Sebau Transcript", fileName: "009-Sebau Transcript.pdf", type: "transcript", url: "/pdfs/009-sebau-transcript.pdf", }, ], }, { id: "four-goddesses", title: "Four Goddesses / Four Pillars", category: "Psychology", description: "Neith, Auset, Serqet, and Nebet as the four pillars holding up heaven (the head) and their inner meanings.", resources: [ { id: "010-4-goddesses-transcript", title: "010 – 4 Goddesses Transcript", fileName: "010-4 Goddesses Transcript.pdf", type: "transcript", url: "/pdfs/010-4-goddesses-transcript.pdf", }, ], }, { id: "timekeeping-module", title: "Timekeeping Module", category: "Foundations", description: "The history of timekeeping from bones and megaliths to Kemetic calendars, weeks, and star clocks.", resources: [ { id: "01-1-timekeeping", title: "01-1 – Our Story of Timekeeping (Transcript)", fileName: "01-1 Class — Our Story of Timekeeping Transcribed.pdf", type: "transcript", url: "/pdfs/01-1-timekeeping.pdf", }, ], }, { id: "temperaments-module", title: "Temperaments Module", category: "Psychology", description: "The four temperaments as energetic patterns in Kemetic Sacred Science and how they map to behavior.", resources: [ { id: "01-2-4-temperaments-class", title: "01-2 – Class: 4 Temperaments", fileName: "01-2 Class: 4 Temperaments.pdf", type: "transcript", url: "/pdfs/01-2-four-temperaments-class.pdf", }, { id: "four-temperaments-doc", title: "The Four Temperaments (Text)", fileName: "The Four Temperaments.pdf", type: "pdf", url: "/pdfs/the-four-temperaments.pdf", }, ], }, ]; const typeLabel: Record = { transcript: "Transcript", slides: "Slides", pdf: "Document", }; const App: React.FC = () => { const [selectedModuleId, setSelectedModuleId] = useState( modules[0]?.id ); const [selectedResource, setSelectedResource] = useState( null ); const selectedModule = modules.find((m) => m.id === selectedModuleId)!; return (
{/* Sidebar */} {/* Main content */}
{/* Header */}

{selectedModule.title}

{selectedModule.description}

{/* Resource list */}

Resources

{selectedModule.resources.map((res) => { const isActive = selectedResource?.id === res.id; return ( ); })}
{/* Reader / Details */}
{selectedResource ? ( <>

{selectedResource.title}

{typeLabel[selectedResource.type]} •{" "} {selectedResource.fileName}

{/* PDF viewer */}
{/* If URL is a PDF, you can embed it: */}