form 1 topics added

This commit is contained in:
2026-07-05 11:12:45 -04:00
parent a614532810
commit a23fa53772
58 changed files with 7089 additions and 475 deletions

View File

@@ -1,7 +1,6 @@
import { Header } from "@/components/layout/header";
import { Footer } from "@/components/layout/footer";
import { Sidebar } from "@/components/layout/sidebar";
import { MobileNav } from "@/components/layout/mobile-nav";
import { LessonsShell } from "@/components/layout/lessons-shell";
export default function LessonsLayout({
children,
@@ -11,17 +10,7 @@ export default function LessonsLayout({
return (
<div className="playground-bg flex min-h-screen flex-col">
<Header />
<div className="playground-frame relative mx-auto flex w-full max-w-6xl flex-1">
<Sidebar />
<main className="flex-1 bg-white">
<div className="relative p-4 lg:hidden">
<MobileNav />
</div>
<div className="mx-auto max-w-4xl px-4 py-8 sm:px-6 lg:px-8">
{children}
</div>
</main>
</div>
<LessonsShell>{children}</LessonsShell>
<Footer />
</div>
);

View File

@@ -0,0 +1,22 @@
"use client";
import { Breadcrumbs } from "@/components/layout/breadcrumbs";
import { NegativeFractionsExplorer } from "@/components/explorers/negative-fractions-explorer";
export default function NegativeFractionsPage() {
return (
<div className="space-y-8">
<Breadcrumbs
items={[
{ label: "Lessons", href: "/lessons" },
{ label: "Unit 5: Integers", href: "/lessons/unit-5-integers" },
{ label: "Negative Fractions" },
]}
/>
<h1 className="text-3xl font-bold tracking-tight">Negative Fractions</h1>
<NegativeFractionsExplorer />
</div>
);
}

View File

@@ -0,0 +1,22 @@
"use client";
import { Breadcrumbs } from "@/components/layout/breadcrumbs";
import { IntegerOrderCompareExplorer } from "@/components/explorers/integer-order-compare-explorer";
export default function IntegerOrderComparePage() {
return (
<div className="space-y-8">
<Breadcrumbs
items={[
{ label: "Lessons", href: "/lessons" },
{ label: "Unit 5: Integers", href: "/lessons/unit-5-integers" },
{ label: "Order & Compare" },
]}
/>
<h1 className="text-3xl font-bold tracking-tight">Order and Compare Integers</h1>
<IntegerOrderCompareExplorer />
</div>
);
}

View File

@@ -0,0 +1,22 @@
"use client";
import { Breadcrumbs } from "@/components/layout/breadcrumbs";
import { PlaceValueExplorer } from "@/components/explorers/place-value-explorer";
export default function PlaceValuePage() {
return (
<div className="space-y-8">
<Breadcrumbs
items={[
{ label: "Lessons", href: "/lessons" },
{ label: "Unit 6: Number System", href: "/lessons/unit-6-number-system" },
{ label: "Place Value" },
]}
/>
<h1 className="text-3xl font-bold tracking-tight">Denary Place Value (Base 10)</h1>
<PlaceValueExplorer />
</div>
);
}

View File

@@ -0,0 +1,40 @@
import Link from "next/link";
import { curriculum } from "@/lib/curriculum";
import { Card } from "@/components/ui/card";
import { Badge } from "@/components/ui/badge";
import { Breadcrumbs } from "@/components/layout/breadcrumbs";
export default function Unit7Overview() {
const unit = curriculum[6];
return (
<div>
<Breadcrumbs
items={[
{ label: "Lessons", href: "/lessons" },
{ label: `Unit 7: ${unit.title}` },
]}
/>
<div className="mb-10">
<Badge variant="unit-7" className="mb-3">Unit 7</Badge>
<h1 className="mb-2 text-3xl font-bold tracking-tight">{unit.title}</h1>
<p className="text-muted leading-relaxed">{unit.description}</p>
</div>
<div className="grid gap-4 sm:grid-cols-2">
{unit.topics.map((topic, i) => (
<Link key={topic.slug} href={`/lessons/${unit.slug}/${topic.slug}`}>
<Card accent="unit-7" hover className="group h-full">
<div className="mb-2 flex items-center gap-2">
<span className="flex h-7 w-7 items-center justify-center rounded-lg bg-unit-7-light text-xs font-bold text-unit-7-dark shadow-[var(--shadow-sm)]">
{i + 1}
</span>
</div>
<h3 className="mb-1 font-semibold">{topic.title}</h3>
<p className="text-sm leading-relaxed text-muted">{topic.description}</p>
</Card>
</Link>
))}
</div>
</div>
);
}

View File

@@ -0,0 +1,22 @@
"use client";
import { Breadcrumbs } from "@/components/layout/breadcrumbs";
import { PlotPointsExplorer } from "@/components/explorers/plot-points-explorer";
export default function PlotPointsPage() {
return (
<div className="space-y-8">
<Breadcrumbs
items={[
{ label: "Lessons", href: "/lessons" },
{ label: "Unit 7: Coordinates", href: "/lessons/unit-7-coordinates" },
{ label: "Plot Points" },
]}
/>
<h1 className="text-3xl font-bold tracking-tight">Plot Points on the Cartesian Plane</h1>
<PlotPointsExplorer />
</div>
);
}

View File

@@ -0,0 +1,22 @@
"use client";
import { Breadcrumbs } from "@/components/layout/breadcrumbs";
import { ReadCoordinatesExplorer } from "@/components/explorers/read-coordinates-explorer";
export default function ReadCoordinatesPage() {
return (
<div className="space-y-8">
<Breadcrumbs
items={[
{ label: "Lessons", href: "/lessons" },
{ label: "Unit 7: Coordinates", href: "/lessons/unit-7-coordinates" },
{ label: "Read Coordinates" },
]}
/>
<h1 className="text-3xl font-bold tracking-tight">State Coordinates of Points</h1>
<ReadCoordinatesExplorer />
</div>
);
}

View File

@@ -0,0 +1,22 @@
"use client";
import { Breadcrumbs } from "@/components/layout/breadcrumbs";
import { ExponentsExplorer } from "@/components/explorers/exponents-explorer";
export default function ExponentsPage() {
return (
<div className="space-y-8">
<Breadcrumbs
items={[
{ label: "Lessons", href: "/lessons" },
{ label: "Unit 8: Number Properties", href: "/lessons/unit-8-number-properties" },
{ label: "Exponents" },
]}
/>
<h1 className="text-3xl font-bold tracking-tight">Powers and Exponents</h1>
<ExponentsExplorer />
</div>
);
}

View File

@@ -0,0 +1,22 @@
"use client";
import { Breadcrumbs } from "@/components/layout/breadcrumbs";
import { IdentityInverseExplorer } from "@/components/explorers/identity-inverse-explorer";
export default function IdentityInversePage() {
return (
<div className="space-y-8">
<Breadcrumbs
items={[
{ label: "Lessons", href: "/lessons" },
{ label: "Unit 8: Number Properties", href: "/lessons/unit-8-number-properties" },
{ label: "Identity & Inverse" },
]}
/>
<h1 className="text-3xl font-bold tracking-tight">Identity and Inverse</h1>
<IdentityInverseExplorer />
</div>
);
}

View File

@@ -0,0 +1,22 @@
"use client";
import { Breadcrumbs } from "@/components/layout/breadcrumbs";
import { NumberLawsExplorer } from "@/components/explorers/number-laws-explorer";
export default function NumberLawsPage() {
return (
<div className="space-y-8">
<Breadcrumbs
items={[
{ label: "Lessons", href: "/lessons" },
{ label: "Unit 8: Number Properties", href: "/lessons/unit-8-number-properties" },
{ label: "Number Laws" },
]}
/>
<h1 className="text-3xl font-bold tracking-tight">Commutative, Associative and Distributive Laws</h1>
<NumberLawsExplorer />
</div>
);
}

View File

@@ -0,0 +1,40 @@
import Link from "next/link";
import { curriculum } from "@/lib/curriculum";
import { Card } from "@/components/ui/card";
import { Badge } from "@/components/ui/badge";
import { Breadcrumbs } from "@/components/layout/breadcrumbs";
export default function Unit8Overview() {
const unit = curriculum[7];
return (
<div>
<Breadcrumbs
items={[
{ label: "Lessons", href: "/lessons" },
{ label: `Unit 8: ${unit.title}` },
]}
/>
<div className="mb-10">
<Badge variant="unit-8" className="mb-3">Unit 8</Badge>
<h1 className="mb-2 text-3xl font-bold tracking-tight">{unit.title}</h1>
<p className="text-muted leading-relaxed">{unit.description}</p>
</div>
<div className="grid gap-4 sm:grid-cols-2">
{unit.topics.map((topic, i) => (
<Link key={topic.slug} href={`/lessons/${unit.slug}/${topic.slug}`}>
<Card accent="unit-8" hover className="group h-full">
<div className="mb-2 flex items-center gap-2">
<span className="flex h-7 w-7 items-center justify-center rounded-lg bg-unit-8-light text-xs font-bold text-unit-8-dark shadow-[var(--shadow-sm)]">
{i + 1}
</span>
</div>
<h3 className="mb-1 font-semibold">{topic.title}</h3>
<p className="text-sm leading-relaxed text-muted">{topic.description}</p>
</Card>
</Link>
))}
</div>
</div>
);
}