import type { Metadata } from "next"; import "./globals.css"; // Tailwind CSS v4 - Empty on CodeSandbox (uses CDN), filled by postinstall on Vercel import "./tailwind.css"; import { GeistSans } from "geist/font/sans"; import { cn } from "@/lib/utils"; import { ThemeProvider } from "@/context/theme-provider"; import { NavBar } from "@/components/navbar"; import { Footer } from "@/components/footer"; import { KleapScripts } from "@/components/kleap-scripts"; import { DevToolsGuard } from "./devtools-guard"; import { TailwindCDNClient } from "@/components/tailwind-cdn-client"; export const metadata: Metadata = { title: { default: "BG Kebab – Délicieux kebabs faits maison", template: "%s | BG Kebab", }, description: "BG Kebab - Découvrez nos délicieux kebabs faits maison avec des ingrédients frais et des recettes traditionnelles.", keywords: ["kebab", "street food", "fast food", "renens", "lausanne", "restaurant"], authors: [{ name: "BG Kebab" }], creator: "BG Kebab", publisher: "BG Kebab", icons: { icon: "/favicon.ico", shortcut: "/favicon.ico", apple: "/favicon.ico", }, robots: { index: true, follow: true, googleBot: { index: true, follow: true, "max-video-preview": -1, "max-image-preview": "large", "max-snippet": -1, }, }, openGraph: { type: "website", locale: "en_US", url: process.env.NEXT_PUBLIC_URL || "https://kleap.co", siteName: "Your SaaS Name", title: "Your SaaS Name - AI-Powered Solution", description: "Built with Kleap - AI-powered platform to create stunning websites and apps. Turn your ideas into reality in minutes.", images: [ { url: "/og-image.png", width: 1200, height: 630, alt: "Your SaaS Name", }, ], }, twitter: { card: "summary_large_image", title: "Your SaaS Name - AI-Powered Solution", description: "Built with Kleap - AI-powered platform to create stunning websites and apps. Turn your ideas into reality in minutes.", images: ["/og-image.png"], creator: "@yourtwitter", }, metadataBase: new URL(process.env.NEXT_PUBLIC_URL || "https://kleap.co"), alternates: { canonical: "/", }, }; export default function RootLayout({ children, }: Readonly<{ children: React.ReactNode; }>) { return ( {/* Tailwind CSS v4: - CodeSandbox: Uses CDN (loaded here in BEFORE React) - Vercel: Uses compiled CSS via @tailwindcss/postcss (imported above) */} {/* CRITICAL: Base styles to prevent FOUC and hydration errors ⚠️ DO NOT REMOVE OR MODIFY WITHOUT CAREFUL TESTING ⚠️ React 19 requires href and precedence attributes on style tags */}
{children}
); }