/* layout.tsx spboucher.ai Web Author: Simon-Pierre Boucher Mail: contact@spboucher.ai */ import type { Metadata } from "next"; import { Fraunces, IBM_Plex_Mono, Inter } from "next/font/google"; import { AgentChat } from "@/components/agent-chat"; import { SiteHeader } from "@/components/site-header"; import { SiteFooter } from "@/components/site-footer"; import "./globals.css"; const inter = Inter({ subsets: ["latin"], variable: "--font-inter", }); const fraunces = Fraunces({ subsets: ["latin"], style: ["normal", "italic"], axes: ["opsz"], variable: "--font-fraunces", }); const plexMono = IBM_Plex_Mono({ subsets: ["latin"], weight: ["400", "500", "600"], variable: "--font-plex-mono", }); export const metadata: Metadata = { metadataBase: new URL("https://www.spboucher.ai"), title: { default: "Simon-Pierre Boucher — Professor & macOS/AI Developer", template: "%s — Simon-Pierre Boucher", }, description: "Simon-Pierre Boucher is a Professor in the Department of Administrative Sciences at Université du Québec en Outaouais (UQO). Financial econometrics researcher and macOS/AI developer.", openGraph: { title: "Simon-Pierre Boucher", description: "Financial econometrics researcher and macOS/AI developer. Professor at Université du Québec en Outaouais (UQO).", url: "https://www.spboucher.ai", siteName: "Simon-Pierre Boucher", locale: "en_US", type: "website", }, }; // Applies the saved (or system) theme before first paint to avoid a flash // of the wrong color scheme. const themeInitScript = ` try { var t = localStorage.getItem("theme"); if (t === "dark" || (!t && window.matchMedia("(prefers-color-scheme: dark)").matches)) { document.documentElement.classList.add("dark"); } } catch (e) {} `; export default function RootLayout({ children, }: Readonly<{ children: React.ReactNode; }>) { return (