From 2d0511d3d87b12b14a4fd95dad106f83699d0cb6 Mon Sep 17 00:00:00 2001 From: kleap-admin Date: Thu, 15 Jan 2026 13:02:43 +0000 Subject: [PATCH] Update app/layout.tsx --- app/layout.tsx | 173 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 173 insertions(+) create mode 100644 app/layout.tsx diff --git a/app/layout.tsx b/app/layout.tsx new file mode 100644 index 0000000..b5248b2 --- /dev/null +++ b/app/layout.tsx @@ -0,0 +1,173 @@ +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} +
+
+ + + ); +}