fix(ui): voix Second Brain à la connexion et libellés du rail
Remplace le titre « notepad » et le jargon (Intelligence OS, SM-2) par des mots lisibles, et aligne la langue des pages d’auth sur le reste du site. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -1386,8 +1386,8 @@ export function Sidebar({ className, user }: { className?: string; user?: any })
|
||||
)}
|
||||
aria-hidden={isImmersiveRoute && userCollapsed ? true : undefined}
|
||||
>
|
||||
{/* ── Column 1 : Rail d'icônes (54px) — inspiré du prototype ── */}
|
||||
<div className="w-[54px] border-e border-border/40 bg-[#FAF9F5] dark:bg-[#0E0E0E] flex flex-col items-center justify-between py-5 shrink-0 select-none overflow-hidden">
|
||||
{/* ── Column 1 : Rail icône + libellé — destinations lisibles sans survol ── */}
|
||||
<div className="w-[72px] border-e border-border/40 bg-[#FAF9F5] dark:bg-[#0E0E0E] flex flex-col items-center justify-between py-3 shrink-0 select-none overflow-y-auto overflow-x-hidden custom-scrollbar">
|
||||
|
||||
{/* Top : Logo + navigation */}
|
||||
<div className="flex flex-col items-center gap-[18px] w-full">
|
||||
@@ -1425,12 +1425,12 @@ export function Sidebar({ className, user }: { className?: string; user?: any })
|
||||
</DropdownMenu>
|
||||
|
||||
{/* Boutons de navigation principaux */}
|
||||
<div className="flex flex-col gap-2 w-full px-1.5">
|
||||
<div className="flex flex-col gap-1 w-full px-1">
|
||||
{([
|
||||
{
|
||||
id: 'dashboard',
|
||||
icon: LayoutGrid,
|
||||
label: t('nav.dashboard') || 'Dashboard',
|
||||
label: t('nav.home'),
|
||||
onClick: () => {
|
||||
setActiveView('dashboard')
|
||||
router.replace('/home')
|
||||
@@ -1470,7 +1470,7 @@ export function Sidebar({ className, user }: { className?: string; user?: any })
|
||||
{
|
||||
id: 'agents',
|
||||
icon: Bot,
|
||||
label: t('agents.intelligenceOS') || 'Intelligence IA',
|
||||
label: t('nav.agents'),
|
||||
onClick: () => {
|
||||
setActiveView('agents')
|
||||
router.push('/agents')
|
||||
@@ -1492,20 +1492,17 @@ export function Sidebar({ className, user }: { className?: string; user?: any })
|
||||
aria-current={item.isActive ? 'page' : undefined}
|
||||
onClick={item.onClick}
|
||||
className={cn(
|
||||
'w-9 h-9 rounded-lg flex items-center justify-center transition-all relative group',
|
||||
'w-full rounded-lg flex flex-col items-center justify-center gap-0.5 py-1.5 px-0.5 transition-all relative',
|
||||
item.isActive
|
||||
? 'bg-brand-accent/10 text-brand-accent border border-brand-accent/25'
|
||||
: 'text-concrete hover:text-ink dark:hover:text-white hover:bg-black/[0.04] dark:hover:bg-white/[0.04]'
|
||||
: 'text-ink/70 hover:text-ink dark:text-white/70 dark:hover:text-white hover:bg-black/[0.04] dark:hover:bg-white/[0.04]'
|
||||
)}
|
||||
>
|
||||
{item.isActive && (
|
||||
<div className="absolute left-0 top-1/2 -translate-y-1/2 w-1 h-4 bg-brand-accent rounded-r-full" />
|
||||
<div className="absolute start-0 top-1/2 -translate-y-1/2 w-1 h-4 bg-brand-accent rounded-e-full" />
|
||||
)}
|
||||
<item.icon size={16} />
|
||||
<span
|
||||
aria-hidden="true"
|
||||
className="absolute left-[50px] top-1/2 -translate-y-1/2 bg-ink dark:bg-white dark:text-ink text-paper text-[9px] font-bold py-1 px-2 rounded opacity-0 group-hover:opacity-100 transition-opacity whitespace-nowrap z-50 pointer-events-none shadow-md uppercase tracking-wider"
|
||||
>
|
||||
<item.icon size={16} aria-hidden />
|
||||
<span className="text-[11px] leading-tight font-semibold text-center max-w-full line-clamp-2">
|
||||
{item.label}
|
||||
</span>
|
||||
</button>
|
||||
@@ -1519,6 +1516,7 @@ export function Sidebar({ className, user }: { className?: string; user?: any })
|
||||
|
||||
<Link
|
||||
href="/trash"
|
||||
aria-label={t('sidebar.trash')}
|
||||
className={cn(
|
||||
'w-9 h-9 rounded-lg flex items-center justify-center transition-all relative group',
|
||||
pathname === '/trash'
|
||||
@@ -1538,6 +1536,7 @@ export function Sidebar({ className, user }: { className?: string; user?: any })
|
||||
|
||||
<Link
|
||||
href="/archive"
|
||||
aria-label={t('sidebar.archive')}
|
||||
className={cn(
|
||||
'w-9 h-9 rounded-lg flex items-center justify-center transition-all relative group',
|
||||
pathname === '/archive'
|
||||
@@ -1554,6 +1553,7 @@ export function Sidebar({ className, user }: { className?: string; user?: any })
|
||||
|
||||
<Link
|
||||
href="/home?shared=1&forceList=1"
|
||||
aria-label={t('sidebar.sharedWithMe')}
|
||||
className={cn(
|
||||
'w-9 h-9 rounded-lg flex items-center justify-center transition-all relative group',
|
||||
searchParams.get('shared') === '1' && pathname === '/home'
|
||||
@@ -1570,7 +1570,8 @@ export function Sidebar({ className, user }: { className?: string; user?: any })
|
||||
<button
|
||||
onClick={openSearch}
|
||||
className="w-9 h-9 rounded-lg flex items-center justify-center text-concrete hover:text-ink dark:hover:text-white hover:bg-black/[0.04] dark:hover:bg-white/[0.04] transition-all relative group"
|
||||
title="Ctrl+K"
|
||||
aria-label={t('sidebar.searchShortcut')}
|
||||
title={t('sidebar.searchShortcut')}
|
||||
>
|
||||
<Search size={15} />
|
||||
<span className="absolute left-[50px] top-1/2 -translate-y-1/2 bg-ink dark:bg-white dark:text-ink text-paper text-[9px] font-bold py-1 px-2 rounded opacity-0 group-hover:opacity-100 transition-opacity whitespace-nowrap z-50 pointer-events-none shadow-md uppercase tracking-wider">
|
||||
@@ -1580,6 +1581,7 @@ export function Sidebar({ className, user }: { className?: string; user?: any })
|
||||
|
||||
<button
|
||||
onClick={toggleTheme}
|
||||
aria-label={isDark ? t('sidebar.lightMode') : t('sidebar.darkMode')}
|
||||
className="w-9 h-9 rounded-lg flex items-center justify-center text-concrete hover:text-ink dark:hover:text-white hover:bg-black/[0.04] dark:hover:bg-white/[0.04] transition-all relative group"
|
||||
>
|
||||
{isDark ? <Sun size={15} /> : <Moon size={15} />}
|
||||
@@ -1590,6 +1592,7 @@ export function Sidebar({ className, user }: { className?: string; user?: any })
|
||||
|
||||
<Link
|
||||
href="/settings"
|
||||
aria-label={t('nav.settings')}
|
||||
className={cn(
|
||||
'w-9 h-9 rounded-lg flex items-center justify-center transition-all relative group',
|
||||
pathname.startsWith('/settings')
|
||||
@@ -1606,6 +1609,7 @@ export function Sidebar({ className, user }: { className?: string; user?: any })
|
||||
|
||||
<button
|
||||
onClick={() => performSignOut('/login')}
|
||||
aria-label={t('sidebar.signOut')}
|
||||
className="w-9 h-9 rounded-lg flex items-center justify-center text-concrete hover:text-red-500 hover:bg-rose-500/5 transition-all relative group"
|
||||
>
|
||||
<LogOut size={14} />
|
||||
@@ -1971,7 +1975,7 @@ export function Sidebar({ className, user }: { className?: string; user?: any })
|
||||
transition={{ duration: 0.2 }}
|
||||
>
|
||||
<p className="text-[10px] font-bold text-muted-foreground tracking-widest uppercase mb-4 px-4">
|
||||
{t('agents.intelligenceOS')}
|
||||
{t('nav.agents')}
|
||||
</p>
|
||||
<div className="space-y-1">
|
||||
{[
|
||||
|
||||
Reference in New Issue
Block a user