57 lines
2.4 KiB
TypeScript
57 lines
2.4 KiB
TypeScript
/**
|
|
* ╔══════════════════════════════════════════════════════════════════╗
|
|
* ║ ║
|
|
* ║ +-+-+-+-+-+-+-+-+ ║
|
|
* ║ |H|e|x|a|H|o|s|t| ║
|
|
* ║ +-+-+-+-+-+-+-+-+ ║
|
|
* ║ ║
|
|
* ║ © 2026 HexaHost — All Rights Reserved ║
|
|
* ║ ║
|
|
* ║ discord ── https://discord.gg/hexahost ║
|
|
* ║ github ── https://github.com/theoneandonlymace ║
|
|
* ║ ║
|
|
* ╚══════════════════════════════════════════════════════════════════╝
|
|
*/
|
|
import type { Metadata } from "next";
|
|
import { Inter, Outfit } from "next/font/google";
|
|
import "./globals.css";
|
|
|
|
import { Toaster } from "@/components/ui/sonner";
|
|
import { AuthProvider } from "@/components/auth-provider";
|
|
|
|
const inter = Inter({ subsets: ["latin"], variable: "--font-inter" });
|
|
const outfit = Outfit({ subsets: ["latin"], variable: "--font-outfit" });
|
|
|
|
const brandName = process.env.NEXT_PUBLIC_BRAND_NAME || "Axiom";
|
|
|
|
export const metadata: Metadata = {
|
|
title: `${brandName} — by HexaHost`,
|
|
description: "Axiom Discord Bot Dashboard — powered by HexaHost.",
|
|
icons: {
|
|
icon: [
|
|
{ url: "/favicon.svg", type: "image/svg+xml" },
|
|
{ url: "/favicon.ico" },
|
|
{ url: "/favicon-32.png", sizes: "32x32", type: "image/png" },
|
|
],
|
|
apple: [{ url: "/apple-touch-icon.png", sizes: "180x180" }],
|
|
shortcut: "/favicon.ico",
|
|
},
|
|
};
|
|
|
|
export default function RootLayout({
|
|
children,
|
|
}: Readonly<{
|
|
children: React.ReactNode;
|
|
}>) {
|
|
return (
|
|
<html lang="en" className={`${inter.variable} ${outfit.variable}`}>
|
|
<body className="font-sans antialiased text-slate-200">
|
|
<AuthProvider>
|
|
{children}
|
|
<Toaster />
|
|
</AuthProvider>
|
|
</body>
|
|
</html>
|
|
);
|
|
}
|