layout.tsx32 lines · main
1import type { ReactNode } from 'react';
2
3/**
4 * Layout shared by every hosted-pages flow for a single tenant. Pulled
5 * out of the dashboard's app-router group so the chrome is minimal —
6 * dark theme, brand mark, no nav, single centred card. Live at
7 * `<tenant>.auth.briven.tech/<flow>` (or `briven.tech/auth/<projectId>/<flow>`
8 * before the subdomain routing lands).
9 */
10export default async function HostedAuthLayout({
11 children,
12}: {
13 children: ReactNode;
14 params: Promise<{ projectId: string }>;
15}) {
16 return (
17 <main className="flex min-h-screen w-full items-center justify-center bg-[var(--color-bg)] px-4 py-12">
18 <div className="flex w-full max-w-sm flex-col gap-6">
19 <header className="flex items-center justify-center">
20 <span className="font-mono text-lg tracking-tight text-[var(--color-text)]">
21 briven
22 </span>
23 </header>
24 {children}
25 <footer className="text-center font-mono text-[10px] text-[var(--color-text-subtle)]">
26 built with{' '}
27 <span className="text-[var(--color-primary)]">♥</span> in flanders
28 </footer>
29 </div>
30 </main>
31 );
32}