Next.js 16, React 19, Monaco editor, Anthropic SDK, multi-provider AI, Wandbox Python execution, iframe HTML preview, SQLite auth + session persistence. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
29 lines
817 B
TypeScript
29 lines
817 B
TypeScript
import type { Metadata } from 'next';
|
|
import { Geist, Geist_Mono } from 'next/font/google';
|
|
import './globals.css';
|
|
|
|
const geistSans = Geist({
|
|
variable: '--font-geist-sans',
|
|
subsets: ['latin'],
|
|
});
|
|
|
|
const geistMono = Geist_Mono({
|
|
variable: '--font-geist-mono',
|
|
subsets: ['latin'],
|
|
});
|
|
|
|
export const metadata: Metadata = {
|
|
title: 'Professor — AI Coding Tutor',
|
|
description: 'Learn to code with an AI tutor. Get tasks, write code, and receive feedback.',
|
|
};
|
|
|
|
export default function RootLayout({ children }: { children: React.ReactNode }) {
|
|
return (
|
|
<html lang="en" className="dark h-full" suppressHydrationWarning>
|
|
<body className={`${geistSans.variable} ${geistMono.variable} antialiased h-full overflow-hidden`} suppressHydrationWarning>
|
|
{children}
|
|
</body>
|
|
</html>
|
|
);
|
|
}
|