|
|
|
|
@@ -1,48 +1,47 @@
|
|
|
|
|
import type { Metadata } from "next";
|
|
|
|
|
import { Halant } from "next/font/google";
|
|
|
|
|
import { Inter } from "next/font/google";
|
|
|
|
|
import { Nunito_Sans } from "next/font/google";
|
|
|
|
|
import "./globals.css";
|
|
|
|
|
import { ServiceWrapper } from "@/components/ServiceWrapper";
|
|
|
|
|
import Tag from "@/tag/Tag";
|
|
|
|
|
import { getVisualEditScript } from "@/utils/visual-edit-script";
|
|
|
|
|
import { Libre_Baskerville } from "next/font/google";
|
|
|
|
|
import { Figtree } from "next/font/google";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import { BitcountGridDoubleInk } from "next/font/google";
|
|
|
|
|
import "./styles/variables.css";
|
|
|
|
|
import "./styles/base.css";
|
|
|
|
|
|
|
|
|
|
const bitcountGridDoubleInk = BitcountGridDoubleInk({
|
|
|
|
|
variable: "--font-bitcount-grid-double-ink", subsets: ["latin"],
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
export const metadata: Metadata = {
|
|
|
|
|
title: "Brew Haven | Premium Specialty Coffee Shop", description: "Discover exceptional specialty coffee handcrafted by passionate baristas. Ethically sourced, expertly roasted, and served with care.", keywords: "coffee shop, specialty coffee, espresso, cold brew, artisan coffee, barista, sustainable coffee", robots: {
|
|
|
|
|
index: true,
|
|
|
|
|
follow: true,
|
|
|
|
|
},
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const figtree = Figtree({
|
|
|
|
|
variable: "--font-figtree",
|
|
|
|
|
subsets: ["latin"],
|
|
|
|
|
});
|
|
|
|
|
title: "Brew Haven - Premium Specialty Coffee", description: "Experience the finest specialty coffee crafted by passionate baristas. From single-origin espresso to artisan cold brew."};
|
|
|
|
|
|
|
|
|
|
export default function RootLayout({
|
|
|
|
|
children,
|
|
|
|
|
}: Readonly<{
|
|
|
|
|
}: {
|
|
|
|
|
children: React.ReactNode;
|
|
|
|
|
}>) {
|
|
|
|
|
}) {
|
|
|
|
|
return (
|
|
|
|
|
<html lang="en" suppressHydrationWarning>
|
|
|
|
|
<ServiceWrapper>
|
|
|
|
|
<body className={`${figtree.variable} antialiased`}>
|
|
|
|
|
<body className={`${bitcountGridDoubleInk.variable}`}>
|
|
|
|
|
<ServiceWrapper>
|
|
|
|
|
<Tag />
|
|
|
|
|
{children}
|
|
|
|
|
<script
|
|
|
|
|
dangerouslySetInnerHTML={{
|
|
|
|
|
__html: `${getVisualEditScript()}`
|
|
|
|
|
</ServiceWrapper>
|
|
|
|
|
<script
|
|
|
|
|
dangerouslySetInnerHTML={{
|
|
|
|
|
__html: `
|
|
|
|
|
if (localStorage.theme === 'dark' || (!('theme' in localStorage) && window.matchMedia('(prefers-color-scheme: dark)').matches)) {
|
|
|
|
|
document.documentElement.classList.add('dark');
|
|
|
|
|
} else {
|
|
|
|
|
document.documentElement.classList.remove('dark');
|
|
|
|
|
}
|
|
|
|
|
`,
|
|
|
|
|
}}
|
|
|
|
|
/>
|
|
|
|
|
</body>
|
|
|
|
|
</ServiceWrapper>
|
|
|
|
|
</body>
|
|
|
|
|
</html>
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function ServiceWrapper({ children }: { children: React.ReactNode }) {
|
|
|
|
|
return <>{children}</>;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function Tag() {
|
|
|
|
|
return null;
|
|
|
|
|
}
|