import type { Metadata } from "next";
import { Geist, Geist_Mono } from "next/font/google";
import "./globals.css";
import { Nav } from "@/components/nav";
import { ToastProvider } from "@/components/toast-provider";
import { OllamaChat } from "@/components/ollama-chat";
import { KeyboardShortcuts } from "@/components/keyboard-shortcuts";
import { CommandSearch } from "@/components/command-search";
import { ThemeProvider } from "@/components/theme-provider";

const geistSans = Geist({
  variable: "--font-geist-sans",
  subsets: ["latin"],
});

const geistMono = Geist_Mono({
  variable: "--font-geist-mono",
  subsets: ["latin"],
});

export const metadata: Metadata = {
  title: "Homelab Dashboard",
  description: "Infrastructure monitoring and management",
  icons: { icon: "/favicon.svg" },
};

export default function RootLayout({
  children,
}: Readonly<{
  children: React.ReactNode;
}>) {
  return (
    <html
      lang="en"
      className={`${geistSans.variable} ${geistMono.variable} dark h-full antialiased`}
    >
      <body className="min-h-full flex flex-col" style={{ fontFamily: "'Exo 2', var(--font-geist-sans), system-ui, sans-serif" }}>
        <ThemeProvider>
          <Nav />
          <main className="flex-1 p-6">{children}</main>
          <ToastProvider />
          <OllamaChat />
          <KeyboardShortcuts />
          <CommandSearch />
        </ThemeProvider>
      </body>
    </html>
  );
}
