import type { ReactNode } from 'react'; import { Box, Center, Flex, Group, Stack, Text, Title, rem, useComputedColorScheme, useMantineTheme, type BoxProps, } from '@mantine/core'; import { IconCheck } from '@tabler/icons-react'; import { useTranslation } from 'react-i18next'; import { ColorSchemeToggle, LanguageSwitcher } from '@ema-platform/ui'; import { useAuthConfig } from '../AuthConfig'; export function BrandMark({ size = 44, ...boxProps }: BoxProps & { size?: number }) { const { logoUrl } = useAuthConfig(); return ( ); } interface AuthShellProps { children: ReactNode; brandTitle?: string; brandSubtitle?: string; } export function AuthShell({ children, brandTitle, brandSubtitle }: AuthShellProps) { const { t } = useTranslation(); const theme = useMantineTheme(); const { logoUrl } = useAuthConfig(); const heroGradient = theme.other.heroGradient as string; const computed = useComputedColorScheme('light'); const isDark = computed === 'dark'; const resolvedBrandTitle = brandTitle ?? t('authShell.brandTitle', 'Maritime licensing, made simple.'); const resolvedBrandSubtitle = brandSubtitle ?? t( 'authShell.brandSubtitle', 'Apply for vessel and seafarer licenses, upload documents, and track every application in one secure portal.', ); const FEATURES = [ t('authShell.feature1', 'Submit applications online, 24/7'), t('authShell.feature2', 'Real-time status tracking & alerts'), t('authShell.feature3', 'Available in English & አማርኛ'), ]; return ( {/* Language switcher & Theme toggle — top-right corner */} {children}
{resolvedBrandTitle} {resolvedBrandSubtitle} {FEATURES.map((feature) => (
{feature}
))}
{t('authShell.copyright', '© 2026 Ethiopian Maritime Authority')}
); }