import type { ReactNode } from 'react'; import { Box, Center, Flex, Group, Stack, Text, Title, UnstyledButton, rem, useComputedColorScheme, useMantineColorScheme, useMantineTheme, type BoxProps, } from '@mantine/core'; import { IconCheck, IconMoon, IconSun } from '@tabler/icons-react'; const LOGO_URL = '/brand/ema-white.png'; export function BrandMark({ size = 44, ...boxProps }: BoxProps & { size?: number }) { return ( ); } function ThemeToggle() { const { setColorScheme } = useMantineColorScheme(); const computed = useComputedColorScheme('light'); const isDark = computed === 'dark'; return ( setColorScheme(isDark ? 'light' : 'dark')} aria-label="Toggle theme" style={{ display: 'flex', alignItems: 'center', justifyContent: 'center', width: rem(36), height: rem(36), borderRadius: rem(10), border: '1px solid var(--mantine-color-default-border)', background: 'var(--mantine-color-body)', color: 'var(--mantine-color-dimmed)', cursor: 'pointer', transition: 'all 150ms ease', }} > {isDark ? : } ); } const FEATURES = [ 'Submit applications online, 24/7', 'Real-time status tracking & alerts', 'Available in English & አማርኛ', ]; interface AuthShellProps { children: ReactNode; brandTitle?: string; brandSubtitle?: string; } export function AuthShell({ children, brandTitle = 'Maritime licensing, made simple.', brandSubtitle = 'Apply for vessel and seafarer licenses, upload documents, and track every application in one secure portal.', }: AuthShellProps) { const theme = useMantineTheme(); const heroGradient = theme.other.heroGradient as string; const computed = useComputedColorScheme('light'); const isDark = computed === 'dark'; return ( {/* Theme toggle — top-right corner */} {children}
{brandTitle} {brandSubtitle} {FEATURES.map((feature) => (
{feature}
))}
© 2026 Ethiopian Maritime Authority
); }