import type { Metadata, Viewport } from 'next'; import './globals.css'; import { t } from '@/i18n'; import { fontDisplay, fontUi } from '@/lib/fonts'; import { SITE_NAME, SITE_URL, TAGLINE } from '@/lib/site'; import { ProvenanceProvider } from '@/components/data/provenance-context'; import { ProvenanceSheet } from '@/components/data/provenance-sheet'; import { MainFrame } from '@/components/layout/main-frame'; import { MobileTabBar } from '@/components/layout/mobile-tab-bar'; import { SearchContainer } from '@/components/layout/search-container'; import { SearchProvider } from '@/components/layout/search-context'; import { SiteFooter } from '@/components/layout/site-footer'; import { SiteHeader } from '@/components/layout/site-header'; import { THEME_BOOT } from '@/components/layout/theme-toggle'; export const metadata: Metadata = { metadataBase: new URL(SITE_URL), title: { default: `${SITE_NAME} — ${TAGLINE}`, template: `%s — ${SITE_NAME}` }, description: t('site.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: t('site.description') }, twitter: { card: 'summary_large_image', title: `${SITE_NAME} — ${TAGLINE}`, description: t('site.description') }, icons: { icon: [{ url: '/icon.svg', type: 'image/svg+xml' }, { url: '/icon.png', sizes: '512x512', type: 'image/png' }], apple: [{ url: '/apple-icon.png', sizes: '180x180' }] }, }; export const viewport: Viewport = { width: 'device-width', initialScale: 1, viewportFit: 'cover', themeColor: [ { media: '(prefers-color-scheme: light)', color: '#fbfaf7' }, { media: '(prefers-color-scheme: dark)', color: '#151513' }, ], }; export default function RootLayout({ children }: { children: React.ReactNode }) { return (
{t('site.skip')}