@ -169,21 +169,21 @@ export default function Navigation({ pageTitle }: NavigationProps) {
return (
return (
< >
< >
< header className = "bg-white /90 backdrop-blur-lg shadow-sm border-b border-gray-200/5 0 sticky top-0 z-50">
< header className = "bg-white shadow-sm border-b border-slate-20 0 sticky top-0 z-50">
< div className = "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8" >
< div className = "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8" >
< div className = "flex items-center justify-between h-16" >
< div className = "flex items-center justify-between h-16" >
{ /* Logo */ }
{ /* Logo */ }
< div className = "flex items-center" >
< div className = "flex items-center" >
< Link href = { localizedLink ( "/" ) } className = "flex items-center group" >
< Link href = { localizedLink ( "/" ) } className = "flex items-center group" >
< div className = "relative" >
< div className = "relative" >
< h1 className = "text-2xl font-bold bg-gradient-to-r from-indigo-600 via-purple-600 to-pink-600 bg-clip-text text-transparent ">
< h1 className = "text-2xl font-bold text-slate-900 ">
Playchoo
Playchoo
< / h1 >
< / h1 >
< div className = "absolute -bottom-1 left-0 w-0 h-0.5 bg- gradient-to-r from-indigo-600 to-purple-6 00 group-hover:w-full transition-all duration-300"> < / div >
< div className = "absolute -bottom-1 left-0 w-0 h-0.5 bg- slate-9 00 group-hover:w-full transition-all duration-300"> < / div >
< / div >
< / div >
< / Link >
< / Link >
{ pageTitle && (
{ pageTitle && (
< span className = "text-xl text- gray-600 font-normal ml-3 pl-3 border-l-2 border-gray -300"> { pageTitle } < / span >
< span className = "text-xl text- slate-600 font-normal ml-3 pl-3 border-l-2 border-slate -300"> { pageTitle } < / span >
) }
) }
< / div >
< / div >
@ -195,13 +195,13 @@ export default function Navigation({ pageTitle }: NavigationProps) {
< >
< >
< button
< button
onClick = { ( ) = > login ( ) }
onClick = { ( ) = > login ( ) }
className = "px-4 py-2 text-sm font-medium text- gray-700 hover:text-indigo-6 00 transition-colors duration-200"
className = "px-4 py-2 text-sm font-medium text- slate-700 hover:text-slate-9 00 transition-colors duration-200"
>
>
{ t ( 'Login' ) }
{ t ( 'Login' ) }
< / button >
< / button >
< button
< button
onClick = { ( ) = > login ( ) }
onClick = { ( ) = > login ( ) }
className = "px-4 py-2 text-sm font-medium bg- gradient-to-r from-indigo-600 to-purple-600 text-white rounded-lg hover:from-indigo-700 hover:to-purple-7 00 transform hover:scale-105 transition-all duration-200 shadow-lg hover:shadow-xl"
className = "px-4 py-2 text-sm font-medium bg- slate-900 text-white rounded-lg hover:bg-slate-8 00 transform hover:scale-105 transition-all duration-200 shadow-lg hover:shadow-xl"
>
>
{ t ( 'Register' ) }
{ t ( 'Register' ) }
< / button >
< / button >
@ -211,7 +211,7 @@ export default function Navigation({ pageTitle }: NavigationProps) {
{ /* Hamburger menu button - always visible on mobile, only for logged-in users on desktop */ }
{ /* Hamburger menu button - always visible on mobile, only for logged-in users on desktop */ }
< button
< button
onClick = { toggleMenu }
onClick = { toggleMenu }
className = { ` relative p-2 rounded-xl bg- gradient-to-r from-indigo-600 to-purple-600 text-white shadow-lg hover:shadow-xl transform hover:scale-105 transition-all duration-200 group ${ ! isLoggedIn ? 'block sm:hidden' : 'block' } ` }
className = { ` relative p-2 rounded-xl bg- slate-900 text-white shadow-lg hover:shadow-xl hover:bg-slate-800 transition-all duration-200 group ${ ! isLoggedIn ? 'block sm:hidden' : 'block' } ` }
>
>
< motion.div
< motion.div
animate = { { rotate : isMenuOpen ? 180 : 0 } }
animate = { { rotate : isMenuOpen ? 180 : 0 } }
@ -219,7 +219,6 @@ export default function Navigation({ pageTitle }: NavigationProps) {
>
>
{ isMenuOpen ? < X className = "w-5 h-5" / > : < Menu className = "w-5 h-5" / > }
{ isMenuOpen ? < X className = "w-5 h-5" / > : < Menu className = "w-5 h-5" / > }
< / motion.div >
< / motion.div >
< div className = "absolute inset-0 rounded-xl bg-white/20 opacity-0 group-hover:opacity-100 transition-opacity duration-200" > < / div >
< / button >
< / button >
< / div >
< / div >
< / div >
< / div >
@ -250,7 +249,7 @@ export default function Navigation({ pageTitle }: NavigationProps) {
>
>
< div className = "flex flex-col h-full overflow-hidden" >
< div className = "flex flex-col h-full overflow-hidden" >
{ /* Header */ }
{ /* Header */ }
< div className = "bg-white border-b border- gray -200 p-6 flex-shrink-0">
< div className = "bg-white border-b border- slate -200 p-6 flex-shrink-0">
< div className = "flex items-center justify-between" >
< div className = "flex items-center justify-between" >
{ isLoggedIn && appUser && currentUserData ? (
{ isLoggedIn && appUser && currentUserData ? (
< Link
< Link
@ -258,25 +257,25 @@ export default function Navigation({ pageTitle }: NavigationProps) {
onClick = { closeMenu }
onClick = { closeMenu }
className = "flex items-center space-x-3 group"
className = "flex items-center space-x-3 group"
>
>
< div className = "w-10 h-10 rounded-full bg- gradient-to-br from-indigo-500 to-purple-6 00 flex items-center justify-center text-white font-semibold text-sm">
< div className = "w-10 h-10 rounded-full bg- slate-9 00 flex items-center justify-center text-white font-semibold text-sm">
{ currentUserData . initials }
{ currentUserData . initials }
< / div >
< / div >
< div >
< div >
< div className = "font-medium text- gray-900 group-hover:text-indigo-6 00 transition-colors">
< div className = "font-medium text- slate-900 group-hover:text-slate-7 00 transition-colors">
{ currentUserData . name }
{ currentUserData . name }
< / div >
< / div >
< div className = "text-xs text- gray -500"> { t ( 'View Profile' ) } < / div >
< div className = "text-xs text- slate -500"> { t ( 'View Profile' ) } < / div >
< / div >
< / div >
< / Link >
< / Link >
) : (
) : (
< div >
< div >
< h2 className = "text-xl font-bold text- gray -900"> { t ( 'Menu' ) } < / h2 >
< h2 className = "text-xl font-bold text- slate -900"> { t ( 'Menu' ) } < / h2 >
< p className = "text- gray -500 text-sm"> { t ( 'Navigate your game' ) } < / p >
< p className = "text- slate -500 text-sm"> { t ( 'Navigate your game' ) } < / p >
< / div >
< / div >
) }
) }
< button
< button
onClick = { closeMenu }
onClick = { closeMenu }
className = "p-2 pl-6 rounded-lg hover:bg- purple-50 transition-colors duration-200 text-purpl e-600"
className = "p-2 pl-6 rounded-lg hover:bg- slate-50 transition-colors duration-200 text-slat e-600"
>
>
< X className = "w-5 h-5" / >
< X className = "w-5 h-5" / >
< / button >
< / button >
@ -295,12 +294,12 @@ export default function Navigation({ pageTitle }: NavigationProps) {
>
>
< button
< button
onClick = { ( ) = > { login ( ) ; closeMenu ( ) ; } }
onClick = { ( ) = > { login ( ) ; closeMenu ( ) ; } }
className = "flex items-center space-x-3 p-4 rounded-xl hover:bg- gray -50 transition-colors duration-200 group w-full"
className = "flex items-center space-x-3 p-4 rounded-xl hover:bg- slate -50 transition-colors duration-200 group w-full"
>
>
< div className = "p-2 rounded-lg bg- indigo-100 group-hover:bg-indigo -200 transition-colors duration-200">
< div className = "p-2 rounded-lg bg- slate-100 group-hover:bg-slate -200 transition-colors duration-200">
< User className = "w-5 h-5 text- indigo-6 00" / >
< User className = "w-5 h-5 text- slate-7 00" / >
< / div >
< / div >
< span className = "font-medium "> { t ( 'Login' ) } < / span >
< span className = "font-medium text-slate-900 "> { t ( 'Login' ) } < / span >
< / button >
< / button >
< / motion.div >
< / motion.div >
@ -312,12 +311,12 @@ export default function Navigation({ pageTitle }: NavigationProps) {
>
>
< button
< button
onClick = { ( ) = > { login ( ) ; closeMenu ( ) ; } }
onClick = { ( ) = > { login ( ) ; closeMenu ( ) ; } }
className = "flex items-center space-x-3 p-4 rounded-xl hover:bg- gray -50 transition-colors duration-200 group w-full"
className = "flex items-center space-x-3 p-4 rounded-xl hover:bg- slate -50 transition-colors duration-200 group w-full"
>
>
< div className = "p-2 rounded-lg bg- purple-100 group-hover:bg-purpl e-200 transition-colors duration-200">
< div className = "p-2 rounded-lg bg- slate-100 group-hover:bg-slat e-200 transition-colors duration-200">
< Users className = "w-5 h-5 text- purple-6 00" / >
< Users className = "w-5 h-5 text- slate-7 00" / >
< / div >
< / div >
< span className = "font-medium "> { t ( 'Register' ) } < / span >
< span className = "font-medium text-slate-900 "> { t ( 'Register' ) } < / span >
< / button >
< / button >
< / motion.div >
< / motion.div >
< / >
< / >
@ -332,12 +331,12 @@ export default function Navigation({ pageTitle }: NavigationProps) {
< Link
< Link
href = { localizedLink ( "/dashboard" ) }
href = { localizedLink ( "/dashboard" ) }
onClick = { closeMenu }
onClick = { closeMenu }
className = "flex items-center space-x-3 p-4 rounded-xl hover:bg- gray -50 transition-colors duration-200 group"
className = "flex items-center space-x-3 p-4 rounded-xl hover:bg- slate -50 transition-colors duration-200 group"
>
>
< div className = "p-2 rounded-lg bg- purple-100 group-hover:bg-purpl e-200 transition-colors duration-200">
< div className = "p-2 rounded-lg bg- slate-100 group-hover:bg-slat e-200 transition-colors duration-200">
< BarChart3 className = "w-5 h-5 text- purple-6 00" / >
< BarChart3 className = "w-5 h-5 text- slate-7 00" / >
< / div >
< / div >
< span className = "font-medium "> { t ( 'Dashboard' ) } < / span >
< span className = "font-medium text-slate-900 "> { t ( 'Dashboard' ) } < / span >
< / Link >
< / Link >
< / motion.div >
< / motion.div >
@ -354,17 +353,17 @@ export default function Navigation({ pageTitle }: NavigationProps) {
router . push ( bookingLink ) ;
router . push ( bookingLink ) ;
} , 100 ) ;
} , 100 ) ;
} }
} }
className = "w-full flex items-center space-x-3 p-4 rounded-xl hover:bg- gray -50 transition-colors duration-200 group text-left"
className = "w-full flex items-center space-x-3 p-4 rounded-xl hover:bg- slate -50 transition-colors duration-200 group text-left"
>
>
< div className = "p-2 rounded-lg bg- indigo-100 group-hover:bg-indigo -200 transition-colors duration-200">
< div className = "p-2 rounded-lg bg- slate-100 group-hover:bg-slate -200 transition-colors duration-200">
< Calendar className = "w-5 h-5 text- indigo-6 00" / >
< Calendar className = "w-5 h-5 text- slate-7 00" / >
< / div >
< / div >
< span className = "font-medium "> { t ( 'Booking' ) } < / span >
< span className = "font-medium text-slate-900 "> { t ( 'Booking' ) } < / span >
< / button >
< / button >
< / motion.div >
< / motion.div >
{ /* Divider */ }
{ /* Divider */ }
< div className = "my-2 border-t border- gray -100"> < / div >
< div className = "my-2 border-t border- slate -100"> < / div >
< motion.div
< motion.div
custom = { 2 }
custom = { 2 }
@ -384,12 +383,12 @@ export default function Navigation({ pageTitle }: NavigationProps) {
setShowClaimModal ( true ) ;
setShowClaimModal ( true ) ;
}
}
} }
} }
className = "flex items-center space-x-3 p-4 rounded-xl hover:bg- gray -50 transition-colors duration-200 group cursor-pointer"
className = "flex items-center space-x-3 p-4 rounded-xl hover:bg- slate -50 transition-colors duration-200 group cursor-pointer"
>
>
< div className = "p-2 rounded-lg bg- green-100 group-hover:bg-green -200 transition-colors duration-200">
< div className = "p-2 rounded-lg bg- slate-100 group-hover:bg-slate -200 transition-colors duration-200">
< Users className = "w-5 h-5 text- green-6 00" / >
< Users className = "w-5 h-5 text- slate-7 00" / >
< / div >
< / div >
< span className = "font-medium "> { t ( 'Player Lookup' ) } < / span >
< span className = "font-medium text-slate-900 "> { t ( 'Player Lookup' ) } < / span >
< / div >
< / div >
< / motion.div >
< / motion.div >
@ -402,19 +401,19 @@ export default function Navigation({ pageTitle }: NavigationProps) {
< Link
< Link
href = { localizedLink ( "/assessment" ) }
href = { localizedLink ( "/assessment" ) }
onClick = { closeMenu }
onClick = { closeMenu }
className = "flex items-center space-x-3 p-4 rounded-xl hover:bg- gray -50 transition-colors duration-200 group"
className = "flex items-center space-x-3 p-4 rounded-xl hover:bg- slate -50 transition-colors duration-200 group"
>
>
< div className = "p-2 rounded-lg bg- amber-100 group-hover:bg-amber -200 transition-colors duration-200">
< div className = "p-2 rounded-lg bg- slate-100 group-hover:bg-slate -200 transition-colors duration-200">
< HelpCircle className = "w-5 h-5 text- amber-6 00" / >
< HelpCircle className = "w-5 h-5 text- slate-7 00" / >
< / div >
< / div >
< span className = "font-medium "> { t ( "What's my level?" ) } < / span >
< span className = "font-medium text-slate-900 "> { t ( "What's my level?" ) } < / span >
< / Link >
< / Link >
< / motion.div >
< / motion.div >
< / >
< / >
) }
) }
{ /* Language Selector - Available for all users */ }
{ /* Language Selector - Available for all users */ }
< div className = "my-4 border-t border- gray -100"> < / div >
< div className = "my-4 border-t border- slate -100"> < / div >
< motion.div
< motion.div
custom = { isLoggedIn ? 4 : 2 }
custom = { isLoggedIn ? 4 : 2 }
@ -426,16 +425,16 @@ export default function Navigation({ pageTitle }: NavigationProps) {
{ /* Language Dropdown Header */ }
{ /* Language Dropdown Header */ }
< button
< button
onClick = { handleLanguageDropdownToggle }
onClick = { handleLanguageDropdownToggle }
className = "w-full flex items-center justify-between p-3 rounded-lg hover:bg- gray -50 transition-colors duration-200"
className = "w-full flex items-center justify-between p-3 rounded-lg hover:bg- slate -50 transition-colors duration-200"
>
>
< div className = "flex items-center space-x-3" >
< div className = "flex items-center space-x-3" >
< Globe className = "w-4 h-4 text- gray -600" / >
< Globe className = "w-4 h-4 text- slate -600" / >
< span className = "font-medium text- gray -700"> { t ( 'Language' ) } < / span >
< span className = "font-medium text- slate -700"> { t ( 'Language' ) } < / span >
< / div >
< / div >
< div className = "flex items-center space-x-2" >
< div className = "flex items-center space-x-2" >
< span className = "text-xl" > { languages . find ( l = > l . code === locale ) ? . flag } < / span >
< span className = "text-xl" > { languages . find ( l = > l . code === locale ) ? . flag } < / span >
< span className = "font-medium text- gray -700"> { languages . find ( l = > l . code === locale ) ? . label } < / span >
< span className = "font-medium text- slate -700"> { languages . find ( l = > l . code === locale ) ? . label } < / span >
< ChevronDown className = { ` w-4 h-4 text- gray -500 transition-transform duration-200 ${ isLanguageDropdownOpen ? 'rotate-180' : '' } ` } / >
< ChevronDown className = { ` w-4 h-4 text- slate -500 transition-transform duration-200 ${ isLanguageDropdownOpen ? 'rotate-180' : '' } ` } / >
< / div >
< / div >
< / button >
< / button >
@ -458,7 +457,7 @@ export default function Navigation({ pageTitle }: NavigationProps) {
setIsLanguageDropdownOpen ( false ) ;
setIsLanguageDropdownOpen ( false ) ;
closeMenu ( ) ;
closeMenu ( ) ;
} }
} }
className = "w-full flex items-center space-x-3 px-3 py-2 rounded-lg hover:bg- gray-100 text-gray -700 transition-colors duration-200"
className = "w-full flex items-center space-x-3 px-3 py-2 rounded-lg hover:bg- slate-100 text-slate -700 transition-colors duration-200"
>
>
< span className = "text-xl" > { lang . flag } < / span >
< span className = "text-xl" > { lang . flag } < / span >
< span className = "font-medium" > { lang . label } < / span >
< span className = "font-medium" > { lang . label } < / span >
@ -473,7 +472,7 @@ export default function Navigation({ pageTitle }: NavigationProps) {
< / div >
< / div >
{ /* Footer */ }
{ /* Footer */ }
< div className = "border-t-2 border- gray -200 p-6 space-y-4 flex-shrink-0">
< div className = "border-t-2 border- slate -200 p-6 space-y-4 flex-shrink-0">
{ isLoggedIn && (
{ isLoggedIn && (
< div className = "flex items-center gap-3" >
< div className = "flex items-center gap-3" >
< motion.div
< motion.div
@ -503,19 +502,19 @@ export default function Navigation({ pageTitle }: NavigationProps) {
< Link
< Link
href = { localizedLink ( "/settings" ) }
href = { localizedLink ( "/settings" ) }
onClick = { closeMenu }
onClick = { closeMenu }
className = "flex items-center justify-center w-12 h-12 rounded-lg bg- gray-100 hover:bg-gray -200 transition-colors duration-200"
className = "flex items-center justify-center w-12 h-12 rounded-lg bg- slate-100 hover:bg-slate -200 transition-colors duration-200"
title = { t ( 'Settings' ) }
title = { t ( 'Settings' ) }
>
>
< Settings className = "w-5 h-5 text- gray -600" / >
< Settings className = "w-5 h-5 text- slate -600" / >
< / Link >
< / Link >
< / motion.div >
< / motion.div >
< / div >
< / div >
) }
) }
< div className = "flex items-center justify-between text-sm text- gray-500 pt-4 border-t border-gray -100">
< div className = "flex items-center justify-between text-sm text- slate-500 pt-4 border-t border-slate -100">
< span > Version { process . env . NEXT_PUBLIC_APP_VERSION } < / span >
< span > Version { process . env . NEXT_PUBLIC_APP_VERSION } < / span >
< div className = "flex items-center space-x-1" >
< div className = "flex items-center space-x-1" >
< Zap className = "w-4 h-4 text- yellow-5 00" / >
< Zap className = "w-4 h-4 text- slate-4 00" / >
< span > { t ( 'Powered by passion' ) } < / span >
< span > { t ( 'Powered by passion' ) } < / span >
< / div >
< / div >
< / div >
< / div >