Replace top Nav with Sidebar, add lib/group.js for library grouping, tokenized color/alert styles, and tighter Settings/Canvas export layout. Adds @tabler/icons-react. Verified production build (standalone) passes, so the Docker image built from this tree matches the local app. Co-authored-by: Claude <claude-code@anthropic.com>
30 lines
1.1 KiB
React
30 lines
1.1 KiB
React
import "./globals.css";
|
|
import Sidebar from "@/components/Sidebar";
|
|
|
|
export const metadata = {
|
|
title: "Mr. Drew's Assignment Creator",
|
|
description: "Local, private, high-accuracy assignments, tests, quizzes, worksheets, discussion questions, and case studies.",
|
|
};
|
|
|
|
// Applies the saved (or system-preferred) theme before first paint so dark
|
|
// mode doesn't flash white on load.
|
|
const THEME_SCRIPT = `try{var t=localStorage.getItem("theme");if(!t)t=window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light";if(t==="dark")document.documentElement.dataset.theme="dark";}catch(e){}`;
|
|
|
|
export default function RootLayout({ children }) {
|
|
return (
|
|
<html lang="en" suppressHydrationWarning>
|
|
<head>
|
|
<script dangerouslySetInnerHTML={{ __html: THEME_SCRIPT }} />
|
|
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossOrigin="anonymous" />
|
|
</head>
|
|
<body>
|
|
<div className="app">
|
|
<Sidebar />
|
|
<main className="content">{children}</main>
|
|
</div>
|
|
</body>
|
|
</html>
|
|
);
|
|
}
|