mirror of
https://github.com/luxfi/mpc.git
synced 2026-09-24 00:26:24 +00:00
pkg/api embedded 56KB of genuine Geist and served it at /fonts/Geist-Variable.woff2, and the landing page's @font-face asked for it by name — so mpc.hanzo.ai painted its only pre-auth surface in a typeface the estate does not use. The bytes are Zen now; checked at the name table, family 'Zen', with the OFL notice the licence requires intact. The dashboard was worse than wrong, it was blank: its layout published --font-geist-sans off the geist package while tailwind.config.ts asked for --font-zen-sans, so font-sans resolved to nothing and every screen fell back to the browser default. The docs layout imported Zen under the name GeistSans, which compiles and lies.
35 lines
1.0 KiB
TypeScript
35 lines
1.0 KiB
TypeScript
import type { Metadata } from 'next'
|
|
import { headers } from 'next/headers'
|
|
import { Zen } from '@hanzo/font/sans'
|
|
import { ZenMono } from '@hanzo/font/mono'
|
|
import { resolveWhiteLabel } from '@luxfi/ui/white-label'
|
|
import { Providers } from './providers'
|
|
import './globals.css'
|
|
|
|
// Title from the Host header — the same resolution the client uses, so the tab
|
|
// and the chrome can never disagree about which brand this is.
|
|
export async function generateMetadata(): Promise<Metadata> {
|
|
const h = await headers()
|
|
const wl = resolveWhiteLabel(h.get('host'))
|
|
return {
|
|
title: `${wl.name} MPC`,
|
|
description: `Multi-Party Computation wallet platform by ${wl.name}`,
|
|
}
|
|
}
|
|
|
|
export default function RootLayout({
|
|
children,
|
|
}: {
|
|
children: React.ReactNode
|
|
}) {
|
|
return (
|
|
<html lang="en" className={`dark ${Zen.variable} ${ZenMono.variable}`}>
|
|
<body className="font-sans min-h-screen bg-background text-foreground antialiased">
|
|
<Providers>
|
|
{children}
|
|
</Providers>
|
|
</body>
|
|
</html>
|
|
)
|
|
}
|