'use client'; import React, { useState } from 'react'; import Link from 'next/link'; import { usePathname } from 'next/navigation'; import ThreeLogo from './ThreeLogo'; import Breadcrumb from './Breadcrumb'; // Mobile accordion menu component interface MobileAccordionMenuProps { onClose: () => void; } const MobileAccordionMenu = ({ onClose }: MobileAccordionMenuProps) => { const pathname = usePathname(); const [expandedSections, setExpandedSections] = useState(['overview']); // Same navigation structure as Sidebar const navCategories = [ { id: 'overview', label: 'Overview', icon: 'Navigation/House_01', items: [ { href: '/', section: 'overview', icon: 'Navigation/House_01', label: 'Brand Overview' }, { href: '/identity', section: 'identity', icon: 'User/User_01', label: 'Brand Identity' }, { href: '/usage', section: 'usage', icon: 'Interface/Book', label: 'Usage Guidelines' }, ] }, { id: 'visual-identity', label: 'Visual Identity', icon: 'Interface/Main_Component', items: [ { href: '/visual-identity', section: 'visual-identity', icon: 'Interface/Main_Component', label: 'Visual Identity' }, { href: '/logo', section: 'logo', icon: 'Interface/Star', label: 'Logo System' }, { href: '/typography', section: 'typography', icon: 'Edit/Text', label: 'Typography' }, { href: '/colors', section: 'colors', icon: 'Edit/Swatches_Palette', label: 'Color Palette' }, { href: '/iconography', section: 'iconography', icon: 'Interface/Main_Component', label: 'Iconography' }, { href: '/accessibility', section: 'accessibility', icon: 'Interface/Heart_01', label: 'Accessibility' }, { href: '/components', section: 'components', icon: 'Interface/Settings', label: 'Components' }, { href: '/motion', section: 'motion', icon: 'Interface/Link', label: 'Motion System' }, { href: '/implementation', section: 'implementation', icon: 'File/File_Code', label: 'Implementation' }, ] }, { id: 'communications', label: 'Communications', icon: 'Communication/Chat', items: [ { href: '/culture', section: 'culture', icon: 'Environment/Bulb', label: 'Culture' }, { href: '/communications', section: 'communications', icon: 'Communication/Chat', label: 'Language Support' }, { href: '/public-relations', section: 'public-relations', icon: 'Communication/Paper_Plane', label: 'Public Relations' }, { href: '/investor-relations', section: 'investor-relations', icon: 'Interface/Chart_Line', label: 'Investor Relations' }, { href: '/collaborators', section: 'collaborators', icon: 'User/Users_Group', label: 'Collaborators' }, { href: '/social-media', section: 'social-media', icon: 'Communication/Share_iOS_Export', label: 'Social Media' }, ] } ]; const toggleSection = (sectionId: string) => { setExpandedSections(prev => prev.includes(sectionId) ? prev.filter(id => id !== sectionId) : [sectionId] ); }; React.useEffect(() => { const currentCategory = navCategories.find(category => category.items.some(item => item.href === pathname) ); if (currentCategory) { setExpandedSections([currentCategory.id]); } }, [pathname]); const isCurrentPage = (href: string) => pathname === href; const isCategoryActive = (category: any) => category.items.some((item: any) => item.href === pathname); return ( ); }; const Header = () => { const [mobileMenuOpen, setMobileMenuOpen] = useState(false); const [showVisualAid, setShowVisualAid] = useState(false); const [theme, setTheme] = useState<'light' | 'dark'>('dark'); const [accessibilityTheme, setAccessibilityTheme] = useState('default'); // Theme toggle functionality React.useEffect(() => { const isDark = document.documentElement.classList.contains('dark'); setTheme(isDark ? 'dark' : 'light'); }, []); const toggleTheme = () => { const newTheme = theme === 'dark' ? 'light' : 'dark'; setTheme(newTheme); if (newTheme === 'dark') { document.documentElement.classList.add('dark'); } else { document.documentElement.classList.remove('dark'); } }; const applyAccessibilityTheme = (themeType: string) => { // Remove existing accessibility themes document.documentElement.removeAttribute('data-theme'); document.documentElement.removeAttribute('data-accessibility'); // Apply new theme if (themeType !== 'default') { document.documentElement.setAttribute('data-theme', themeType); document.documentElement.setAttribute('data-accessibility', themeType); } setAccessibilityTheme(themeType); setShowVisualAid(false); // Close modal after selection // Dispatch custom event to notify ThreeLogo components window.dispatchEvent(new CustomEvent('accessibilityThemeChanged', { detail: { theme: themeType } })); }; return (
{/* Mobile layout - hamburger + logo on left, controls on right */}
CHORUS
{/* Mobile controls - theme toggle and visual aid */}
{/* Desktop primary navigation - hidden on mobile */}
{/* Breadcrumb - always visible */}
{/* Mobile accordion menu - only visible when hamburger is clicked */} {mobileMenuOpen && (
setMobileMenuOpen(false)} />
)} {/* Visual Aid Modal - fixed for mobile */} {showVisualAid && (

Visual Aid Settings

Adjust the visual appearance for different color vision conditions. These settings affect the Möbius ring logo materials while preserving the overall design integrity.

Color Vision Support

8-color CHORUS system adaptations that preserve brand integrity while ensuring accessibility

)}
); }; export default Header;