import type { Metadata, Viewport } from 'next'; import Script from 'next/script'; import './globals.css'; import { EvidenceDrawer } from '@/components/evidence/evidence-drawer'; import { EvidenceProvider } from '@/components/evidence/evidence-context'; import { MobileTabBar } from '@/components/layout/mobile-tab-bar'; import { SearchProvider } from '@/components/layout/search-context'; import { SearchDialog } from '@/components/layout/search-dialog'; import { SiteFooter } from '@/components/layout/site-footer'; import { SiteHeader } from '@/components/layout/site-header'; import { fontMono, fontUi } from '@/lib/fonts'; import { PREPAINT_SCRIPT } from '@/lib/prepaint'; import { DESCRIPTION, SITE_NAME, SITE_URL, TAGLINE, THEME_DARK, THEME_LIGHT } from '@/lib/site'; export const metadata: Metadata = { metadataBase: new URL(SITE_URL), title: { default: `${SITE_NAME} — ${TAGLINE}`, template: `%s | ${SITE_NAME}` }, description: DESCRIPTION, applicationName: SITE_NAME, robots: { index: true, follow: true }, alternates: { canonical: '/' }, openGraph: { type: 'website', siteName: SITE_NAME, url: SITE_URL, title: `${SITE_NAME} — ${TAGLINE}`, description: DESCRIPTION }, twitter: { card: 'summary_large_image', title: `${SITE_NAME} — ${TAGLINE}`, description: DESCRIPTION }, icons: { icon: [{ url: '/icon.svg', type: 'image/svg+xml' }], apple: [{ url: '/apple-icon', sizes: '180x180', type: 'image/png' }] }, }; export const viewport: Viewport = { width: 'device-width', initialScale: 1, viewportFit: 'cover', themeColor: [ { media: '(prefers-color-scheme: light)', color: THEME_LIGHT }, { media: '(prefers-color-scheme: dark)', color: THEME_DARK }, ], }; export default function RootLayout({ children }: { children: React.ReactNode }) { return (