diff --git a/apps/web/src/lib/desktop.test.ts b/apps/web/src/lib/desktop.test.ts index 177ad2c..e150cac 100644 --- a/apps/web/src/lib/desktop.test.ts +++ b/apps/web/src/lib/desktop.test.ts @@ -63,6 +63,7 @@ describe("window chrome", () => { it("keeps conversation header controls clickable", () => { const root = path.join(path.dirname(fileURLToPath(import.meta.url)), "../pages"); const shell = readFileSync(path.join(root, "Shell.tsx"), "utf8"); + const toggles = readFileSync(path.join(root, "shell/sidebar-toggle-buttons.tsx"), "utf8"); expect(shell).toContain( 'className="app-drag flex items-center justify-between border-b border-sidebar-border', ); @@ -70,14 +71,16 @@ describe("window chrome", () => { expect(shell).toContain('className="app-no-drag flex min-w-0 items-center gap-3"'); // Ensure header sidebar toggle controls stay clickable (not part of drag region) expect( - shell.match(/app-no-drag .* size-control-lg .* place-items-center/g)?.length ?? 0, + toggles.match(/app-no-drag .* size-control-lg .* place-items-center/g)?.length ?? 0, ).toBeGreaterThanOrEqual(2); }); it("moves window chrome into the conversation header when the bots sidebar is collapsed", () => { const root = path.join(path.dirname(fileURLToPath(import.meta.url)), "../pages"); const shell = readFileSync(path.join(root, "Shell.tsx"), "utf8"); - expect(shell).toContain("{botsSidebarCollapsed && desktopBridge() ? : null}"); + const toggles = readFileSync(path.join(root, "shell/sidebar-toggle-buttons.tsx"), "utf8"); + expect(shell).toContain("collapsed={botsSidebarCollapsed}"); + expect(toggles).toContain("{collapsed && desktopBridge() ? : null}"); }); }); diff --git a/apps/web/src/locales/de/messages.po b/apps/web/src/locales/de/messages.po index f77295b..f1456e6 100644 --- a/apps/web/src/locales/de/messages.po +++ b/apps/web/src/locales/de/messages.po @@ -14,7 +14,7 @@ msgstr "" "Plural-Forms: \n" "X-Generator: @lingui/cli\n" -#: src/pages/Shell.tsx +#: src/pages/shell/roster-rows.tsx msgid " (unread)" msgstr " (ungelesen)" @@ -126,17 +126,17 @@ msgid "{0}, {label}" msgstr "{0}, {label}" #. placeholder {0}: item.chat.name -#: src/pages/Shell.tsx +#: src/pages/shell/roster-rows.tsx msgid "{0}, 1:1 conversation" msgstr "{0}, 1:1-Unterhaltung" #. placeholder {0}: item.chat.name -#: src/pages/Shell.tsx +#: src/pages/shell/roster-rows.tsx msgid "{0}, group conversation" msgstr "{0}, Gruppenunterhaltung" #. placeholder {0}: item.chat.name -#: src/pages/Shell.tsx +#: src/pages/shell/roster-rows.tsx msgid "{0}, main conversation" msgstr "{0}, Hauptunterhaltung" @@ -339,6 +339,7 @@ msgstr "Aktionsbestätigungen" #. placeholder {0}: sectionMenu.section.name #: src/pages/BotContextMenu.tsx #: src/pages/Shell.tsx +#: src/pages/shell/sidebar-group-header.tsx msgid "Actions for {0}" msgstr "Aktionen für {0}" @@ -354,7 +355,7 @@ msgstr "Aktiv" msgid "Active model" msgstr "Aktives Modell" -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-header.tsx msgid "Activity" msgstr "Aktivität" @@ -647,7 +648,7 @@ msgstr "Archivieren" msgid "archived" msgstr "archiviert" -#: src/pages/Shell.tsx +#: src/pages/shell/archived-section.tsx msgid "Archived" msgstr "Archiviert" @@ -1159,7 +1160,7 @@ msgid "Coder" msgstr "Coder" #. placeholder {0}: group.title -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-group-header.tsx msgid "Collapse {0}" msgstr "{0} einklappen" @@ -1743,9 +1744,9 @@ msgstr "Avatare konnten nicht aktualisiert werden" msgid "Couldn't update messaging settings" msgstr "Messaging-Einstellungen konnten nicht aktualisiert werden" -#: src/pages/Shell.tsx #: src/pages/shell/bot-panel.tsx #: src/pages/shell/dialogs.tsx +#: src/pages/shell/sidebar-header.tsx msgid "Create" msgstr "Erstellen" @@ -1902,14 +1903,14 @@ msgstr "Standardbereich" #: src/pages/KnowledgeSection.tsx #: src/pages/McpServersOverlay.tsx #: src/pages/RoutineEditor.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/archived-section.tsx #: src/pages/shell/dialogs.tsx msgid "Delete" msgstr "Löschen" #. placeholder {0}: bot.name #. placeholder {0}: group.name -#: src/pages/Shell.tsx +#: src/pages/shell/archived-section.tsx msgid "Delete {0}" msgstr "{0} löschen" @@ -2218,7 +2219,7 @@ msgid "Expand" msgstr "Erweitern" #. placeholder {0}: group.title -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-group-header.tsx msgid "Expand {0}" msgstr "{0} ausklappen" @@ -2791,7 +2792,7 @@ msgstr "Lokales Docker" msgid "Local Server Settings" msgstr "Einstellungen des lokalen Servers" -#: src/pages/Shell.tsx +#: src/pages/shell/user-menu.tsx msgid "Log out" msgstr "Abmelden" @@ -2974,7 +2975,7 @@ msgstr "Minimal" msgid "Minimize" msgstr "Minimieren" -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-toggle-buttons.tsx msgid "Minimize bots" msgstr "Bots minimieren" @@ -3396,7 +3397,7 @@ msgid "Open" msgstr "Öffnen" #. placeholder {0}: group.title -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-group-header.tsx msgid "Open {0}" msgstr "{0} öffnen" @@ -3416,7 +3417,7 @@ msgstr "Im Browser öffnen" msgid "Open in full window" msgstr "In vollständigem Fenster öffnen" -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-toggle-buttons.tsx msgid "Open navigation" msgstr "Navigation öffnen" @@ -3931,7 +3932,7 @@ msgstr "Wird zurückgesetzt…" msgid "Restart to update" msgstr "Zum Aktualisieren neu starten" -#: src/pages/Shell.tsx +#: src/pages/shell/archived-section.tsx msgid "Restore" msgstr "Wiederherstellen" @@ -4136,7 +4137,7 @@ msgid "Searching…" msgstr "Suche…" #. placeholder {0}: group.title -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-group-header.tsx msgid "Select {0}" msgstr "{0} auswählen" @@ -4202,6 +4203,7 @@ msgstr "Stimme einrichten" #: src/pages/MessagingSettingsOverlay.tsx #: src/pages/SettingsOverlay.tsx #: src/pages/Shell.tsx +#: src/pages/shell/user-menu.tsx msgid "Settings" msgstr "Einstellungen" @@ -4253,6 +4255,7 @@ msgid "Show all {0}" msgstr "Alle {0} anzeigen" #: src/pages/Shell.tsx +#: src/pages/shell/sidebar-toggle-buttons.tsx msgid "Show bots" msgstr "Bots anzeigen" @@ -4832,7 +4835,7 @@ msgstr "Hochladen" #: src/pages/AccountSettingsOverlay.tsx #: src/pages/SettingsOverlay.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/user-menu.tsx msgid "Usage" msgstr "Nutzung" diff --git a/apps/web/src/locales/en/messages.po b/apps/web/src/locales/en/messages.po index 42b0d56..c0bc4f6 100644 --- a/apps/web/src/locales/en/messages.po +++ b/apps/web/src/locales/en/messages.po @@ -14,7 +14,7 @@ msgstr "" "Plural-Forms: \n" "X-Generator: @lingui/cli\n" -#: src/pages/Shell.tsx +#: src/pages/shell/roster-rows.tsx msgid " (unread)" msgstr " (unread)" @@ -126,17 +126,17 @@ msgid "{0}, {label}" msgstr "{0}, {label}" #. placeholder {0}: item.chat.name -#: src/pages/Shell.tsx +#: src/pages/shell/roster-rows.tsx msgid "{0}, 1:1 conversation" msgstr "{0}, 1:1 conversation" #. placeholder {0}: item.chat.name -#: src/pages/Shell.tsx +#: src/pages/shell/roster-rows.tsx msgid "{0}, group conversation" msgstr "{0}, group conversation" #. placeholder {0}: item.chat.name -#: src/pages/Shell.tsx +#: src/pages/shell/roster-rows.tsx msgid "{0}, main conversation" msgstr "{0}, main conversation" @@ -339,6 +339,7 @@ msgstr "Action confirmations" #. placeholder {0}: sectionMenu.section.name #: src/pages/BotContextMenu.tsx #: src/pages/Shell.tsx +#: src/pages/shell/sidebar-group-header.tsx msgid "Actions for {0}" msgstr "Actions for {0}" @@ -354,7 +355,7 @@ msgstr "Active" msgid "Active model" msgstr "Active model" -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-header.tsx msgid "Activity" msgstr "Activity" @@ -647,7 +648,7 @@ msgstr "Archive" msgid "archived" msgstr "archived" -#: src/pages/Shell.tsx +#: src/pages/shell/archived-section.tsx msgid "Archived" msgstr "Archived" @@ -1159,7 +1160,7 @@ msgid "Coder" msgstr "Coder" #. placeholder {0}: group.title -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-group-header.tsx msgid "Collapse {0}" msgstr "Collapse {0}" @@ -1743,9 +1744,9 @@ msgstr "Couldn't update avatars" msgid "Couldn't update messaging settings" msgstr "Couldn't update messaging settings" -#: src/pages/Shell.tsx #: src/pages/shell/bot-panel.tsx #: src/pages/shell/dialogs.tsx +#: src/pages/shell/sidebar-header.tsx msgid "Create" msgstr "Create" @@ -1902,14 +1903,14 @@ msgstr "Default scope" #: src/pages/KnowledgeSection.tsx #: src/pages/McpServersOverlay.tsx #: src/pages/RoutineEditor.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/archived-section.tsx #: src/pages/shell/dialogs.tsx msgid "Delete" msgstr "Delete" #. placeholder {0}: bot.name #. placeholder {0}: group.name -#: src/pages/Shell.tsx +#: src/pages/shell/archived-section.tsx msgid "Delete {0}" msgstr "Delete {0}" @@ -2218,7 +2219,7 @@ msgid "Expand" msgstr "Expand" #. placeholder {0}: group.title -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-group-header.tsx msgid "Expand {0}" msgstr "Expand {0}" @@ -2791,7 +2792,7 @@ msgstr "Local Docker" msgid "Local Server Settings" msgstr "Local Server Settings" -#: src/pages/Shell.tsx +#: src/pages/shell/user-menu.tsx msgid "Log out" msgstr "Log out" @@ -2974,7 +2975,7 @@ msgstr "Minimal" msgid "Minimize" msgstr "Minimize" -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-toggle-buttons.tsx msgid "Minimize bots" msgstr "Minimize bots" @@ -3396,7 +3397,7 @@ msgid "Open" msgstr "Open" #. placeholder {0}: group.title -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-group-header.tsx msgid "Open {0}" msgstr "Open {0}" @@ -3416,7 +3417,7 @@ msgstr "Open in browser" msgid "Open in full window" msgstr "Open in full window" -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-toggle-buttons.tsx msgid "Open navigation" msgstr "Open navigation" @@ -3931,7 +3932,7 @@ msgstr "Resetting…" msgid "Restart to update" msgstr "Restart to update" -#: src/pages/Shell.tsx +#: src/pages/shell/archived-section.tsx msgid "Restore" msgstr "Restore" @@ -4136,7 +4137,7 @@ msgid "Searching…" msgstr "Searching…" #. placeholder {0}: group.title -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-group-header.tsx msgid "Select {0}" msgstr "Select {0}" @@ -4202,6 +4203,7 @@ msgstr "Set up voice" #: src/pages/MessagingSettingsOverlay.tsx #: src/pages/SettingsOverlay.tsx #: src/pages/Shell.tsx +#: src/pages/shell/user-menu.tsx msgid "Settings" msgstr "Settings" @@ -4253,6 +4255,7 @@ msgid "Show all {0}" msgstr "Show all {0}" #: src/pages/Shell.tsx +#: src/pages/shell/sidebar-toggle-buttons.tsx msgid "Show bots" msgstr "Show bots" @@ -4832,7 +4835,7 @@ msgstr "Upload" #: src/pages/AccountSettingsOverlay.tsx #: src/pages/SettingsOverlay.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/user-menu.tsx msgid "Usage" msgstr "Usage" diff --git a/apps/web/src/locales/es/messages.po b/apps/web/src/locales/es/messages.po index cee9313..00712ca 100644 --- a/apps/web/src/locales/es/messages.po +++ b/apps/web/src/locales/es/messages.po @@ -14,7 +14,7 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: @lingui/cli\n" -#: src/pages/Shell.tsx +#: src/pages/shell/roster-rows.tsx msgid " (unread)" msgstr " (sin leer)" @@ -126,17 +126,17 @@ msgid "{0}, {label}" msgstr "" #. placeholder {0}: item.chat.name -#: src/pages/Shell.tsx +#: src/pages/shell/roster-rows.tsx msgid "{0}, 1:1 conversation" msgstr "" #. placeholder {0}: item.chat.name -#: src/pages/Shell.tsx +#: src/pages/shell/roster-rows.tsx msgid "{0}, group conversation" msgstr "" #. placeholder {0}: item.chat.name -#: src/pages/Shell.tsx +#: src/pages/shell/roster-rows.tsx msgid "{0}, main conversation" msgstr "" @@ -339,6 +339,7 @@ msgstr "Confirmaciones de acción" #. placeholder {0}: sectionMenu.section.name #: src/pages/BotContextMenu.tsx #: src/pages/Shell.tsx +#: src/pages/shell/sidebar-group-header.tsx msgid "Actions for {0}" msgstr "Acciones para {0}" @@ -354,7 +355,7 @@ msgstr "Activo" msgid "Active model" msgstr "Modelo activo" -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-header.tsx msgid "Activity" msgstr "Actividad" @@ -647,7 +648,7 @@ msgstr "Archivar" msgid "archived" msgstr "archivado" -#: src/pages/Shell.tsx +#: src/pages/shell/archived-section.tsx msgid "Archived" msgstr "Archivado" @@ -1159,7 +1160,7 @@ msgid "Coder" msgstr "" #. placeholder {0}: group.title -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-group-header.tsx msgid "Collapse {0}" msgstr "Contraer {0}" @@ -1743,9 +1744,9 @@ msgstr "No se pudieron actualizar los avatares" msgid "Couldn't update messaging settings" msgstr "No se pudo actualizar la configuración de mensajería" -#: src/pages/Shell.tsx #: src/pages/shell/bot-panel.tsx #: src/pages/shell/dialogs.tsx +#: src/pages/shell/sidebar-header.tsx msgid "Create" msgstr "Crear" @@ -1902,14 +1903,14 @@ msgstr "Alcance predeterminado" #: src/pages/KnowledgeSection.tsx #: src/pages/McpServersOverlay.tsx #: src/pages/RoutineEditor.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/archived-section.tsx #: src/pages/shell/dialogs.tsx msgid "Delete" msgstr "Eliminar" #. placeholder {0}: bot.name #. placeholder {0}: group.name -#: src/pages/Shell.tsx +#: src/pages/shell/archived-section.tsx msgid "Delete {0}" msgstr "Eliminar {0}" @@ -2218,7 +2219,7 @@ msgid "Expand" msgstr "Expandir" #. placeholder {0}: group.title -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-group-header.tsx msgid "Expand {0}" msgstr "Expandir {0}" @@ -2791,7 +2792,7 @@ msgstr "" msgid "Local Server Settings" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/user-menu.tsx msgid "Log out" msgstr "Cerrar sesión" @@ -2974,7 +2975,7 @@ msgstr "Mínimo" msgid "Minimize" msgstr "Minimizar" -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-toggle-buttons.tsx msgid "Minimize bots" msgstr "" @@ -3396,7 +3397,7 @@ msgid "Open" msgstr "Abrir" #. placeholder {0}: group.title -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-group-header.tsx msgid "Open {0}" msgstr "Abrir {0}" @@ -3416,7 +3417,7 @@ msgstr "" msgid "Open in full window" msgstr "Abrir en ventana completa" -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-toggle-buttons.tsx msgid "Open navigation" msgstr "Abrir navegación" @@ -3931,7 +3932,7 @@ msgstr "Restableciendo…" msgid "Restart to update" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/archived-section.tsx msgid "Restore" msgstr "Restaurar" @@ -4136,7 +4137,7 @@ msgid "Searching…" msgstr "Buscando…" #. placeholder {0}: group.title -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-group-header.tsx msgid "Select {0}" msgstr "" @@ -4202,6 +4203,7 @@ msgstr "" #: src/pages/MessagingSettingsOverlay.tsx #: src/pages/SettingsOverlay.tsx #: src/pages/Shell.tsx +#: src/pages/shell/user-menu.tsx msgid "Settings" msgstr "Configuración" @@ -4253,6 +4255,7 @@ msgid "Show all {0}" msgstr "" #: src/pages/Shell.tsx +#: src/pages/shell/sidebar-toggle-buttons.tsx msgid "Show bots" msgstr "" @@ -4832,7 +4835,7 @@ msgstr "Subir" #: src/pages/AccountSettingsOverlay.tsx #: src/pages/SettingsOverlay.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/user-menu.tsx msgid "Usage" msgstr "Uso" diff --git a/apps/web/src/locales/hi/messages.po b/apps/web/src/locales/hi/messages.po index 38a2327..43975aa 100644 --- a/apps/web/src/locales/hi/messages.po +++ b/apps/web/src/locales/hi/messages.po @@ -14,7 +14,7 @@ msgstr "" "Plural-Forms: \n" "X-Generator: @lingui/cli\n" -#: src/pages/Shell.tsx +#: src/pages/shell/roster-rows.tsx msgid " (unread)" msgstr " (अपठित)" @@ -126,17 +126,17 @@ msgid "{0}, {label}" msgstr "" #. placeholder {0}: item.chat.name -#: src/pages/Shell.tsx +#: src/pages/shell/roster-rows.tsx msgid "{0}, 1:1 conversation" msgstr "" #. placeholder {0}: item.chat.name -#: src/pages/Shell.tsx +#: src/pages/shell/roster-rows.tsx msgid "{0}, group conversation" msgstr "" #. placeholder {0}: item.chat.name -#: src/pages/Shell.tsx +#: src/pages/shell/roster-rows.tsx msgid "{0}, main conversation" msgstr "" @@ -339,6 +339,7 @@ msgstr "कार्रवाई की पुष्टि" #. placeholder {0}: sectionMenu.section.name #: src/pages/BotContextMenu.tsx #: src/pages/Shell.tsx +#: src/pages/shell/sidebar-group-header.tsx msgid "Actions for {0}" msgstr "{0} के लिए कार्रवाइयां" @@ -354,7 +355,7 @@ msgstr "" msgid "Active model" msgstr "सक्रिय मॉडल" -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-header.tsx msgid "Activity" msgstr "गतिविधि" @@ -647,7 +648,7 @@ msgstr "आर्काइव करें" msgid "archived" msgstr "आर्काइव किया गया" -#: src/pages/Shell.tsx +#: src/pages/shell/archived-section.tsx msgid "Archived" msgstr "आर्काइव किया गया" @@ -1159,7 +1160,7 @@ msgid "Coder" msgstr "" #. placeholder {0}: group.title -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-group-header.tsx msgid "Collapse {0}" msgstr "" @@ -1743,9 +1744,9 @@ msgstr "" msgid "Couldn't update messaging settings" msgstr "" -#: src/pages/Shell.tsx #: src/pages/shell/bot-panel.tsx #: src/pages/shell/dialogs.tsx +#: src/pages/shell/sidebar-header.tsx msgid "Create" msgstr "बनाएं" @@ -1902,14 +1903,14 @@ msgstr "डिफ़ॉल्ट स्कोप" #: src/pages/KnowledgeSection.tsx #: src/pages/McpServersOverlay.tsx #: src/pages/RoutineEditor.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/archived-section.tsx #: src/pages/shell/dialogs.tsx msgid "Delete" msgstr "डिलीट करें" #. placeholder {0}: bot.name #. placeholder {0}: group.name -#: src/pages/Shell.tsx +#: src/pages/shell/archived-section.tsx msgid "Delete {0}" msgstr "{0} डिलीट करें" @@ -2218,7 +2219,7 @@ msgid "Expand" msgstr "विस्तृत करें" #. placeholder {0}: group.title -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-group-header.tsx msgid "Expand {0}" msgstr "" @@ -2791,7 +2792,7 @@ msgstr "" msgid "Local Server Settings" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/user-menu.tsx msgid "Log out" msgstr "लॉग आउट" @@ -2974,7 +2975,7 @@ msgstr "न्यूनतम" msgid "Minimize" msgstr "छोटा करें" -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-toggle-buttons.tsx msgid "Minimize bots" msgstr "" @@ -3396,7 +3397,7 @@ msgid "Open" msgstr "खोलें" #. placeholder {0}: group.title -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-group-header.tsx msgid "Open {0}" msgstr "" @@ -3416,7 +3417,7 @@ msgstr "" msgid "Open in full window" msgstr "पूरी विंडो में खोलें" -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-toggle-buttons.tsx msgid "Open navigation" msgstr "नेविगेशन खोलें" @@ -3931,7 +3932,7 @@ msgstr "रीसेट हो रहा है…" msgid "Restart to update" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/archived-section.tsx msgid "Restore" msgstr "बहाल करें" @@ -4136,7 +4137,7 @@ msgid "Searching…" msgstr "खोजा जा रहा है…" #. placeholder {0}: group.title -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-group-header.tsx msgid "Select {0}" msgstr "" @@ -4202,6 +4203,7 @@ msgstr "" #: src/pages/MessagingSettingsOverlay.tsx #: src/pages/SettingsOverlay.tsx #: src/pages/Shell.tsx +#: src/pages/shell/user-menu.tsx msgid "Settings" msgstr "सेटिंग्स" @@ -4253,6 +4255,7 @@ msgid "Show all {0}" msgstr "" #: src/pages/Shell.tsx +#: src/pages/shell/sidebar-toggle-buttons.tsx msgid "Show bots" msgstr "" @@ -4832,7 +4835,7 @@ msgstr "अपलोड" #: src/pages/AccountSettingsOverlay.tsx #: src/pages/SettingsOverlay.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/user-menu.tsx msgid "Usage" msgstr "उपयोग" diff --git a/apps/web/src/locales/ko/messages.po b/apps/web/src/locales/ko/messages.po index 782630e..666b340 100644 --- a/apps/web/src/locales/ko/messages.po +++ b/apps/web/src/locales/ko/messages.po @@ -14,7 +14,7 @@ msgstr "" "Plural-Forms: \n" "X-Generator: @lingui/cli\n" -#: src/pages/Shell.tsx +#: src/pages/shell/roster-rows.tsx msgid " (unread)" msgstr " (읽지 않음)" @@ -126,17 +126,17 @@ msgid "{0}, {label}" msgstr "" #. placeholder {0}: item.chat.name -#: src/pages/Shell.tsx +#: src/pages/shell/roster-rows.tsx msgid "{0}, 1:1 conversation" msgstr "" #. placeholder {0}: item.chat.name -#: src/pages/Shell.tsx +#: src/pages/shell/roster-rows.tsx msgid "{0}, group conversation" msgstr "" #. placeholder {0}: item.chat.name -#: src/pages/Shell.tsx +#: src/pages/shell/roster-rows.tsx msgid "{0}, main conversation" msgstr "" @@ -339,6 +339,7 @@ msgstr "작업 실행 전 확인" #. placeholder {0}: sectionMenu.section.name #: src/pages/BotContextMenu.tsx #: src/pages/Shell.tsx +#: src/pages/shell/sidebar-group-header.tsx msgid "Actions for {0}" msgstr "{0} 작업 메뉴" @@ -354,7 +355,7 @@ msgstr "활성" msgid "Active model" msgstr "현재 모델" -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-header.tsx msgid "Activity" msgstr "활동" @@ -647,7 +648,7 @@ msgstr "보관" msgid "archived" msgstr "보관됨" -#: src/pages/Shell.tsx +#: src/pages/shell/archived-section.tsx msgid "Archived" msgstr "보관됨" @@ -1159,7 +1160,7 @@ msgid "Coder" msgstr "" #. placeholder {0}: group.title -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-group-header.tsx msgid "Collapse {0}" msgstr "{0} 접기" @@ -1743,9 +1744,9 @@ msgstr "아바타를 업데이트할 수 없습니다" msgid "Couldn't update messaging settings" msgstr "메시징 설정을 업데이트할 수 없습니다" -#: src/pages/Shell.tsx #: src/pages/shell/bot-panel.tsx #: src/pages/shell/dialogs.tsx +#: src/pages/shell/sidebar-header.tsx msgid "Create" msgstr "만들기" @@ -1902,14 +1903,14 @@ msgstr "기본 기억 범위" #: src/pages/KnowledgeSection.tsx #: src/pages/McpServersOverlay.tsx #: src/pages/RoutineEditor.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/archived-section.tsx #: src/pages/shell/dialogs.tsx msgid "Delete" msgstr "삭제" #. placeholder {0}: bot.name #. placeholder {0}: group.name -#: src/pages/Shell.tsx +#: src/pages/shell/archived-section.tsx msgid "Delete {0}" msgstr "{0} 삭제" @@ -2218,7 +2219,7 @@ msgid "Expand" msgstr "펼치기" #. placeholder {0}: group.title -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-group-header.tsx msgid "Expand {0}" msgstr "{0} 펼치기" @@ -2791,7 +2792,7 @@ msgstr "" msgid "Local Server Settings" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/user-menu.tsx msgid "Log out" msgstr "로그아웃" @@ -2974,7 +2975,7 @@ msgstr "최소" msgid "Minimize" msgstr "최소화" -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-toggle-buttons.tsx msgid "Minimize bots" msgstr "" @@ -3396,7 +3397,7 @@ msgid "Open" msgstr "열기" #. placeholder {0}: group.title -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-group-header.tsx msgid "Open {0}" msgstr "{0} 열기" @@ -3416,7 +3417,7 @@ msgstr "" msgid "Open in full window" msgstr "전체 창으로 열기" -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-toggle-buttons.tsx msgid "Open navigation" msgstr "메뉴 열기" @@ -3931,7 +3932,7 @@ msgstr "재설정 중…" msgid "Restart to update" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/archived-section.tsx msgid "Restore" msgstr "복원" @@ -4136,7 +4137,7 @@ msgid "Searching…" msgstr "검색 중…" #. placeholder {0}: group.title -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-group-header.tsx msgid "Select {0}" msgstr "" @@ -4202,6 +4203,7 @@ msgstr "" #: src/pages/MessagingSettingsOverlay.tsx #: src/pages/SettingsOverlay.tsx #: src/pages/Shell.tsx +#: src/pages/shell/user-menu.tsx msgid "Settings" msgstr "설정" @@ -4253,6 +4255,7 @@ msgid "Show all {0}" msgstr "" #: src/pages/Shell.tsx +#: src/pages/shell/sidebar-toggle-buttons.tsx msgid "Show bots" msgstr "" @@ -4832,7 +4835,7 @@ msgstr "업로드" #: src/pages/AccountSettingsOverlay.tsx #: src/pages/SettingsOverlay.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/user-menu.tsx msgid "Usage" msgstr "사용량" diff --git a/apps/web/src/locales/pt-BR/messages.po b/apps/web/src/locales/pt-BR/messages.po index c6206ed..c480159 100644 --- a/apps/web/src/locales/pt-BR/messages.po +++ b/apps/web/src/locales/pt-BR/messages.po @@ -14,7 +14,7 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n > 1);\n" "X-Generator: @lingui/cli\n" -#: src/pages/Shell.tsx +#: src/pages/shell/roster-rows.tsx msgid " (unread)" msgstr " (não lido)" @@ -126,17 +126,17 @@ msgid "{0}, {label}" msgstr "" #. placeholder {0}: item.chat.name -#: src/pages/Shell.tsx +#: src/pages/shell/roster-rows.tsx msgid "{0}, 1:1 conversation" msgstr "" #. placeholder {0}: item.chat.name -#: src/pages/Shell.tsx +#: src/pages/shell/roster-rows.tsx msgid "{0}, group conversation" msgstr "" #. placeholder {0}: item.chat.name -#: src/pages/Shell.tsx +#: src/pages/shell/roster-rows.tsx msgid "{0}, main conversation" msgstr "" @@ -339,6 +339,7 @@ msgstr "Confirmações de ação" #. placeholder {0}: sectionMenu.section.name #: src/pages/BotContextMenu.tsx #: src/pages/Shell.tsx +#: src/pages/shell/sidebar-group-header.tsx msgid "Actions for {0}" msgstr "Ações para {0}" @@ -354,7 +355,7 @@ msgstr "" msgid "Active model" msgstr "Modelo ativo" -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-header.tsx msgid "Activity" msgstr "Atividade" @@ -647,7 +648,7 @@ msgstr "Arquivar" msgid "archived" msgstr "arquivado" -#: src/pages/Shell.tsx +#: src/pages/shell/archived-section.tsx msgid "Archived" msgstr "Arquivado" @@ -1159,7 +1160,7 @@ msgid "Coder" msgstr "" #. placeholder {0}: group.title -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-group-header.tsx msgid "Collapse {0}" msgstr "" @@ -1743,9 +1744,9 @@ msgstr "" msgid "Couldn't update messaging settings" msgstr "" -#: src/pages/Shell.tsx #: src/pages/shell/bot-panel.tsx #: src/pages/shell/dialogs.tsx +#: src/pages/shell/sidebar-header.tsx msgid "Create" msgstr "Criar" @@ -1902,14 +1903,14 @@ msgstr "Escopo padrão" #: src/pages/KnowledgeSection.tsx #: src/pages/McpServersOverlay.tsx #: src/pages/RoutineEditor.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/archived-section.tsx #: src/pages/shell/dialogs.tsx msgid "Delete" msgstr "Excluir" #. placeholder {0}: bot.name #. placeholder {0}: group.name -#: src/pages/Shell.tsx +#: src/pages/shell/archived-section.tsx msgid "Delete {0}" msgstr "Excluir {0}" @@ -2218,7 +2219,7 @@ msgid "Expand" msgstr "Expandir" #. placeholder {0}: group.title -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-group-header.tsx msgid "Expand {0}" msgstr "" @@ -2791,7 +2792,7 @@ msgstr "" msgid "Local Server Settings" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/user-menu.tsx msgid "Log out" msgstr "Sair" @@ -2974,7 +2975,7 @@ msgstr "Mínimo" msgid "Minimize" msgstr "Minimizar" -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-toggle-buttons.tsx msgid "Minimize bots" msgstr "" @@ -3396,7 +3397,7 @@ msgid "Open" msgstr "Abrir" #. placeholder {0}: group.title -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-group-header.tsx msgid "Open {0}" msgstr "" @@ -3416,7 +3417,7 @@ msgstr "" msgid "Open in full window" msgstr "Abrir em janela cheia" -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-toggle-buttons.tsx msgid "Open navigation" msgstr "Abrir a navegação" @@ -3931,7 +3932,7 @@ msgstr "Redefinindo…" msgid "Restart to update" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/archived-section.tsx msgid "Restore" msgstr "Restaurar" @@ -4136,7 +4137,7 @@ msgid "Searching…" msgstr "Pesquisando…" #. placeholder {0}: group.title -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-group-header.tsx msgid "Select {0}" msgstr "" @@ -4202,6 +4203,7 @@ msgstr "" #: src/pages/MessagingSettingsOverlay.tsx #: src/pages/SettingsOverlay.tsx #: src/pages/Shell.tsx +#: src/pages/shell/user-menu.tsx msgid "Settings" msgstr "Configurações" @@ -4253,6 +4255,7 @@ msgid "Show all {0}" msgstr "" #: src/pages/Shell.tsx +#: src/pages/shell/sidebar-toggle-buttons.tsx msgid "Show bots" msgstr "" @@ -4832,7 +4835,7 @@ msgstr "Enviar" #: src/pages/AccountSettingsOverlay.tsx #: src/pages/SettingsOverlay.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/user-menu.tsx msgid "Usage" msgstr "Uso" diff --git a/apps/web/src/locales/ru/messages.po b/apps/web/src/locales/ru/messages.po index bd8417c..ca0c58c 100644 --- a/apps/web/src/locales/ru/messages.po +++ b/apps/web/src/locales/ru/messages.po @@ -14,7 +14,7 @@ msgstr "" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "X-Generator: @lingui/cli\n" -#: src/pages/Shell.tsx +#: src/pages/shell/roster-rows.tsx msgid " (unread)" msgstr " (непрочитано)" @@ -126,17 +126,17 @@ msgid "{0}, {label}" msgstr "" #. placeholder {0}: item.chat.name -#: src/pages/Shell.tsx +#: src/pages/shell/roster-rows.tsx msgid "{0}, 1:1 conversation" msgstr "" #. placeholder {0}: item.chat.name -#: src/pages/Shell.tsx +#: src/pages/shell/roster-rows.tsx msgid "{0}, group conversation" msgstr "" #. placeholder {0}: item.chat.name -#: src/pages/Shell.tsx +#: src/pages/shell/roster-rows.tsx msgid "{0}, main conversation" msgstr "" @@ -339,6 +339,7 @@ msgstr "Подтверждения действий" #. placeholder {0}: sectionMenu.section.name #: src/pages/BotContextMenu.tsx #: src/pages/Shell.tsx +#: src/pages/shell/sidebar-group-header.tsx msgid "Actions for {0}" msgstr "Действия для {0}" @@ -354,7 +355,7 @@ msgstr "Активный" msgid "Active model" msgstr "Активная модель" -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-header.tsx msgid "Activity" msgstr "Активность" @@ -647,7 +648,7 @@ msgstr "Архивировать" msgid "archived" msgstr "в архиве" -#: src/pages/Shell.tsx +#: src/pages/shell/archived-section.tsx msgid "Archived" msgstr "В архиве" @@ -1159,7 +1160,7 @@ msgid "Coder" msgstr "" #. placeholder {0}: group.title -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-group-header.tsx msgid "Collapse {0}" msgstr "Свернуть {0}" @@ -1743,9 +1744,9 @@ msgstr "Не удалось обновить аватары" msgid "Couldn't update messaging settings" msgstr "Не удалось обновить настройки обмена сообщениями." -#: src/pages/Shell.tsx #: src/pages/shell/bot-panel.tsx #: src/pages/shell/dialogs.tsx +#: src/pages/shell/sidebar-header.tsx msgid "Create" msgstr "Создать" @@ -1902,14 +1903,14 @@ msgstr "Область действия по умолчанию" #: src/pages/KnowledgeSection.tsx #: src/pages/McpServersOverlay.tsx #: src/pages/RoutineEditor.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/archived-section.tsx #: src/pages/shell/dialogs.tsx msgid "Delete" msgstr "Удалить" #. placeholder {0}: bot.name #. placeholder {0}: group.name -#: src/pages/Shell.tsx +#: src/pages/shell/archived-section.tsx msgid "Delete {0}" msgstr "Удалить {0}" @@ -2218,7 +2219,7 @@ msgid "Expand" msgstr "Развернуть" #. placeholder {0}: group.title -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-group-header.tsx msgid "Expand {0}" msgstr "Развернуть {0}" @@ -2791,7 +2792,7 @@ msgstr "" msgid "Local Server Settings" msgstr "Настройки локального сервера" -#: src/pages/Shell.tsx +#: src/pages/shell/user-menu.tsx msgid "Log out" msgstr "Выйти" @@ -2974,7 +2975,7 @@ msgstr "Минимальный" msgid "Minimize" msgstr "Свернуть" -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-toggle-buttons.tsx msgid "Minimize bots" msgstr "Свернуть ботов" @@ -3396,7 +3397,7 @@ msgid "Open" msgstr "Открыть" #. placeholder {0}: group.title -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-group-header.tsx msgid "Open {0}" msgstr "Открыть {0}" @@ -3416,7 +3417,7 @@ msgstr "" msgid "Open in full window" msgstr "Открыть в полном окне" -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-toggle-buttons.tsx msgid "Open navigation" msgstr "Открыть навигацию" @@ -3931,7 +3932,7 @@ msgstr "Сброс…" msgid "Restart to update" msgstr "Перезапустить для обновления" -#: src/pages/Shell.tsx +#: src/pages/shell/archived-section.tsx msgid "Restore" msgstr "Восстановить" @@ -4136,7 +4137,7 @@ msgid "Searching…" msgstr "Поиск…" #. placeholder {0}: group.title -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-group-header.tsx msgid "Select {0}" msgstr "" @@ -4202,6 +4203,7 @@ msgstr "" #: src/pages/MessagingSettingsOverlay.tsx #: src/pages/SettingsOverlay.tsx #: src/pages/Shell.tsx +#: src/pages/shell/user-menu.tsx msgid "Settings" msgstr "Настройки" @@ -4253,6 +4255,7 @@ msgid "Show all {0}" msgstr "" #: src/pages/Shell.tsx +#: src/pages/shell/sidebar-toggle-buttons.tsx msgid "Show bots" msgstr "Показать ботов" @@ -4832,7 +4835,7 @@ msgstr "Загрузить" #: src/pages/AccountSettingsOverlay.tsx #: src/pages/SettingsOverlay.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/user-menu.tsx msgid "Usage" msgstr "Использование" diff --git a/apps/web/src/locales/tr/messages.po b/apps/web/src/locales/tr/messages.po index debd308..7338f1c 100644 --- a/apps/web/src/locales/tr/messages.po +++ b/apps/web/src/locales/tr/messages.po @@ -14,7 +14,7 @@ msgstr "" "Plural-Forms: \n" "X-Generator: @lingui/cli\n" -#: src/pages/Shell.tsx +#: src/pages/shell/roster-rows.tsx msgid " (unread)" msgstr " (okunmadı)" @@ -126,17 +126,17 @@ msgid "{0}, {label}" msgstr "" #. placeholder {0}: item.chat.name -#: src/pages/Shell.tsx +#: src/pages/shell/roster-rows.tsx msgid "{0}, 1:1 conversation" msgstr "" #. placeholder {0}: item.chat.name -#: src/pages/Shell.tsx +#: src/pages/shell/roster-rows.tsx msgid "{0}, group conversation" msgstr "" #. placeholder {0}: item.chat.name -#: src/pages/Shell.tsx +#: src/pages/shell/roster-rows.tsx msgid "{0}, main conversation" msgstr "" @@ -339,6 +339,7 @@ msgstr "İşlem onayları" #. placeholder {0}: sectionMenu.section.name #: src/pages/BotContextMenu.tsx #: src/pages/Shell.tsx +#: src/pages/shell/sidebar-group-header.tsx msgid "Actions for {0}" msgstr "{0} için işlemler" @@ -354,7 +355,7 @@ msgstr "" msgid "Active model" msgstr "Etkin model" -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-header.tsx msgid "Activity" msgstr "Etkinlik" @@ -647,7 +648,7 @@ msgstr "Arşivle" msgid "archived" msgstr "arşivlendi" -#: src/pages/Shell.tsx +#: src/pages/shell/archived-section.tsx msgid "Archived" msgstr "Arşivlendi" @@ -1159,7 +1160,7 @@ msgid "Coder" msgstr "" #. placeholder {0}: group.title -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-group-header.tsx msgid "Collapse {0}" msgstr "" @@ -1743,9 +1744,9 @@ msgstr "" msgid "Couldn't update messaging settings" msgstr "" -#: src/pages/Shell.tsx #: src/pages/shell/bot-panel.tsx #: src/pages/shell/dialogs.tsx +#: src/pages/shell/sidebar-header.tsx msgid "Create" msgstr "Oluştur" @@ -1902,14 +1903,14 @@ msgstr "Varsayılan kapsam" #: src/pages/KnowledgeSection.tsx #: src/pages/McpServersOverlay.tsx #: src/pages/RoutineEditor.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/archived-section.tsx #: src/pages/shell/dialogs.tsx msgid "Delete" msgstr "Sil" #. placeholder {0}: bot.name #. placeholder {0}: group.name -#: src/pages/Shell.tsx +#: src/pages/shell/archived-section.tsx msgid "Delete {0}" msgstr "{0} sil" @@ -2218,7 +2219,7 @@ msgid "Expand" msgstr "Genişlet" #. placeholder {0}: group.title -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-group-header.tsx msgid "Expand {0}" msgstr "" @@ -2791,7 +2792,7 @@ msgstr "" msgid "Local Server Settings" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/user-menu.tsx msgid "Log out" msgstr "Çıkış yap" @@ -2974,7 +2975,7 @@ msgstr "Minimal" msgid "Minimize" msgstr "Küçült" -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-toggle-buttons.tsx msgid "Minimize bots" msgstr "" @@ -3396,7 +3397,7 @@ msgid "Open" msgstr "Aç" #. placeholder {0}: group.title -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-group-header.tsx msgid "Open {0}" msgstr "" @@ -3416,7 +3417,7 @@ msgstr "" msgid "Open in full window" msgstr "Tam pencerede aç" -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-toggle-buttons.tsx msgid "Open navigation" msgstr "Gezinmeyi aç" @@ -3931,7 +3932,7 @@ msgstr "" msgid "Restart to update" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/archived-section.tsx msgid "Restore" msgstr "Geri yükle" @@ -4136,7 +4137,7 @@ msgid "Searching…" msgstr "Aranıyor…" #. placeholder {0}: group.title -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-group-header.tsx msgid "Select {0}" msgstr "" @@ -4202,6 +4203,7 @@ msgstr "" #: src/pages/MessagingSettingsOverlay.tsx #: src/pages/SettingsOverlay.tsx #: src/pages/Shell.tsx +#: src/pages/shell/user-menu.tsx msgid "Settings" msgstr "Ayarlar" @@ -4253,6 +4255,7 @@ msgid "Show all {0}" msgstr "" #: src/pages/Shell.tsx +#: src/pages/shell/sidebar-toggle-buttons.tsx msgid "Show bots" msgstr "" @@ -4832,7 +4835,7 @@ msgstr "Yükle" #: src/pages/AccountSettingsOverlay.tsx #: src/pages/SettingsOverlay.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/user-menu.tsx msgid "Usage" msgstr "Kullanım" diff --git a/apps/web/src/locales/zh-CN/messages.po b/apps/web/src/locales/zh-CN/messages.po index 77c630c..b793e4a 100644 --- a/apps/web/src/locales/zh-CN/messages.po +++ b/apps/web/src/locales/zh-CN/messages.po @@ -14,7 +14,7 @@ msgstr "" "Plural-Forms: \n" "X-Generator: @lingui/cli\n" -#: src/pages/Shell.tsx +#: src/pages/shell/roster-rows.tsx msgid " (unread)" msgstr "(未读)" @@ -126,17 +126,17 @@ msgid "{0}, {label}" msgstr "" #. placeholder {0}: item.chat.name -#: src/pages/Shell.tsx +#: src/pages/shell/roster-rows.tsx msgid "{0}, 1:1 conversation" msgstr "" #. placeholder {0}: item.chat.name -#: src/pages/Shell.tsx +#: src/pages/shell/roster-rows.tsx msgid "{0}, group conversation" msgstr "" #. placeholder {0}: item.chat.name -#: src/pages/Shell.tsx +#: src/pages/shell/roster-rows.tsx msgid "{0}, main conversation" msgstr "" @@ -339,6 +339,7 @@ msgstr "操作确认" #. placeholder {0}: sectionMenu.section.name #: src/pages/BotContextMenu.tsx #: src/pages/Shell.tsx +#: src/pages/shell/sidebar-group-header.tsx msgid "Actions for {0}" msgstr "{0} 的操作" @@ -354,7 +355,7 @@ msgstr "启用" msgid "Active model" msgstr "当前模型" -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-header.tsx msgid "Activity" msgstr "动态" @@ -647,7 +648,7 @@ msgstr "归档" msgid "archived" msgstr "已归档" -#: src/pages/Shell.tsx +#: src/pages/shell/archived-section.tsx msgid "Archived" msgstr "已归档" @@ -1159,7 +1160,7 @@ msgid "Coder" msgstr "" #. placeholder {0}: group.title -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-group-header.tsx msgid "Collapse {0}" msgstr "折叠 {0}" @@ -1743,9 +1744,9 @@ msgstr "无法更新头像" msgid "Couldn't update messaging settings" msgstr "无法更新消息设置" -#: src/pages/Shell.tsx #: src/pages/shell/bot-panel.tsx #: src/pages/shell/dialogs.tsx +#: src/pages/shell/sidebar-header.tsx msgid "Create" msgstr "创建" @@ -1902,14 +1903,14 @@ msgstr "默认范围" #: src/pages/KnowledgeSection.tsx #: src/pages/McpServersOverlay.tsx #: src/pages/RoutineEditor.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/archived-section.tsx #: src/pages/shell/dialogs.tsx msgid "Delete" msgstr "删除" #. placeholder {0}: bot.name #. placeholder {0}: group.name -#: src/pages/Shell.tsx +#: src/pages/shell/archived-section.tsx msgid "Delete {0}" msgstr "删除 {0}" @@ -2218,7 +2219,7 @@ msgid "Expand" msgstr "展开" #. placeholder {0}: group.title -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-group-header.tsx msgid "Expand {0}" msgstr "展开 {0}" @@ -2791,7 +2792,7 @@ msgstr "" msgid "Local Server Settings" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/user-menu.tsx msgid "Log out" msgstr "退出登录" @@ -2974,7 +2975,7 @@ msgstr "最低" msgid "Minimize" msgstr "最小化" -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-toggle-buttons.tsx msgid "Minimize bots" msgstr "" @@ -3396,7 +3397,7 @@ msgid "Open" msgstr "打开" #. placeholder {0}: group.title -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-group-header.tsx msgid "Open {0}" msgstr "打开 {0}" @@ -3416,7 +3417,7 @@ msgstr "" msgid "Open in full window" msgstr "在完整窗口中打开" -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-toggle-buttons.tsx msgid "Open navigation" msgstr "打开导航" @@ -3931,7 +3932,7 @@ msgstr "正在重置…" msgid "Restart to update" msgstr "" -#: src/pages/Shell.tsx +#: src/pages/shell/archived-section.tsx msgid "Restore" msgstr "恢复" @@ -4136,7 +4137,7 @@ msgid "Searching…" msgstr "正在搜索…" #. placeholder {0}: group.title -#: src/pages/Shell.tsx +#: src/pages/shell/sidebar-group-header.tsx msgid "Select {0}" msgstr "" @@ -4202,6 +4203,7 @@ msgstr "" #: src/pages/MessagingSettingsOverlay.tsx #: src/pages/SettingsOverlay.tsx #: src/pages/Shell.tsx +#: src/pages/shell/user-menu.tsx msgid "Settings" msgstr "设置" @@ -4253,6 +4255,7 @@ msgid "Show all {0}" msgstr "" #: src/pages/Shell.tsx +#: src/pages/shell/sidebar-toggle-buttons.tsx msgid "Show bots" msgstr "" @@ -4832,7 +4835,7 @@ msgstr "上传" #: src/pages/AccountSettingsOverlay.tsx #: src/pages/SettingsOverlay.tsx -#: src/pages/Shell.tsx +#: src/pages/shell/user-menu.tsx msgid "Usage" msgstr "用量" diff --git a/apps/web/src/pages/Shell.tsx b/apps/web/src/pages/Shell.tsx index 57d0ed6..6f81974 100644 --- a/apps/web/src/pages/Shell.tsx +++ b/apps/web/src/pages/Shell.tsx @@ -84,25 +84,13 @@ import { Popover, PopoverContent, PopoverTrigger, - Wordmark, } from "@rakazo/ui-web"; import { ArrowLeft, - Bell, Calendar, - ChevronDown, - Folder, - Gauge, Globe, - GripVertical, LayoutGrid, - Lock, - LogOut, Maximize2, - Menu, - MoreHorizontal, - PanelLeftClose, - PanelLeftOpen, PanelRight, Pencil, Plus, @@ -140,7 +128,7 @@ import { TeachRecordingChrome, TeachStopButton } from "../components/teach/Teach import { useSidebarResize } from "../hooks/useSidebarResize"; import { useWideLayout } from "../hooks/useWideLayout"; import { readActivityMode, writeActivityMode } from "../lib/activity-mode"; -import { needsYouChipLabel, rosterActivitySubtitle, rosterStatusDot } from "../lib/agent-activity"; +import { rosterActivitySubtitle } from "../lib/agent-activity"; import { agentPointerFeed } from "../lib/agent-pointer"; import type { ArtifactTarget } from "../lib/artifact-open"; import { attachmentMaxBytes, uploadAttachment } from "../lib/artifact-upload"; @@ -157,7 +145,6 @@ import { shouldNotifyBrowser, } from "../lib/browser-notifications"; import { loadComputerScreen } from "../lib/computer-screen"; -import { desktopBridge } from "../lib/desktop"; import { scheduleFocusPrompt } from "../lib/focus-prompt"; import { formatBytes } from "../lib/format-bytes"; import { @@ -216,8 +203,9 @@ import { } from "./RoutineEditor"; import type { SettingsSection } from "./SettingsOverlay"; import { SpaceSearchResults } from "./SpaceSearch"; +import { ArchivedSection } from "./shell/archived-section"; import { BotSettings, CreateBotForm } from "./shell/bot-panel"; -import { BotCreatePicker, ConversationBotPicker } from "./shell/bot-picker"; +import { ConversationBotPicker } from "./shell/bot-picker"; import { collapsedSidebarSectionsStorageKey, readCollapsedSidebarSections, @@ -243,15 +231,13 @@ import { } from "./shell/dialogs"; import { MainConversationRow } from "./shell/main-conversation-row"; import { cleanRosterPreview, formatRosterTime, stripSpaceTitlePrefix } from "./shell/roster-format"; -import { - rosterNameClass, - rosterPreviewClass, - rosterRowClass, - rosterTimeClass, - rosterUnreadDotClass, -} from "./shell/roster-row-style"; +import { rosterRowClass } from "./shell/roster-row-style"; +import { ProjectRosterRow, TeamRosterRow } from "./shell/roster-rows"; import type { PendingAttachment } from "./shell/shell-types"; import { FALLBACK_BOT_COLOR } from "./shell/shell-types"; +import { SidebarGroupHeader } from "./shell/sidebar-group-header"; +import { SidebarHeader } from "./shell/sidebar-header"; +import { SidebarToggleButtons } from "./shell/sidebar-toggle-buttons"; import { applyThreadEvent, firstThreadRoute, @@ -259,7 +245,7 @@ import { threadSnapshotSignal, } from "./shell/thread-state"; import { Transcript } from "./shell/transcript"; -import { WindowChrome } from "./WindowChrome"; +import { UserMenu } from "./shell/user-menu"; const BotContextMenu = lazyWithRecovery("BotContextMenu", () => import("./BotContextMenu").then((module) => ({ default: module.BotContextMenu })), @@ -326,7 +312,7 @@ function voiceStatusRefreshTimeout(): Promise { export type NavPillar = "heute" | "team" | "projekte"; -import { ProjectDragGrip, SortableGroup } from "../components/SortableGroup"; +import { SortableGroup } from "../components/SortableGroup"; export function ShellPage() { const { t } = useLingui(); @@ -3384,85 +3370,20 @@ export function ShellPage() { onPointerDown={startResizingLeft} className="absolute -right-2 top-0 bottom-0 w-4 cursor-col-resize z-50 hidden md:block" /> -
- -
- -
-
- - - - - + - - {/* Unmount with the state change so the panel it opens never coexists with the menu. */} - {createMenuOpen ? ( - - { - setCreateMenuOpen(false); - setMobileSidebarOpen(false); - setPanel("create"); - }} - onOpenBot={(id) => { - setCreateMenuOpen(false); - setMobileSidebarOpen(false); - navigate(`/app/${id}`); - }} - onCreateGroup={() => { - setCreateMenuOpen(false); - setMobileSidebarOpen(false); - setPanel("create-group"); - }} - onCreateSpace={() => { - setCreateMenuOpen(false); - setMobileSidebarOpen(false); - openNewSpaceDialog("space"); - }} - onShowGroupInfo={() => { - setCreateMenuOpen(false); - setMobileSidebarOpen(false); - setPickerInfoTopic("group"); - }} - onShowSpaceInfo={() => { - setCreateMenuOpen(false); - setMobileSidebarOpen(false); - setPickerInfoTopic("space"); - }} - /> - - ) : null} - -
-
+ setMobileSidebarOpen(false)} + bots={bots} + onCreateBot={() => setPanel("create")} + onOpenBot={(id) => navigate(`/app/${id}`)} + onCreateGroup={() => setPanel("create-group")} + onCreateSpace={() => openNewSpaceDialog("space")} + onShowGroupInfo={() => setPickerInfoTopic("group")} + onShowSpaceInfo={() => setPickerInfoTopic("space")} + /> {group.title ? ( -
- - {group.canDeleteSpace ? ( - - ) : null} -
+ openSpaceChat(spaceId, "/onboarding")} + onToggle={toggleSidebarSection} + sectionMenuAnchor={sectionMenuAnchor} + onSectionMenu={setSectionMenu} + spaceMenuAnchor={spaceMenuAnchor} + onSpaceMenu={setSpaceMenu} + /> ) : null} {!collapsed && group.bots .slice(0, expandedTeamGroups[group.key] ? undefined : 4) .map((item) => ( - + activeSpaceId={bootstrapMe?.spaceId} + menuAnchor={botMenuAnchor} + onMenu={setBotMenu} + /> ))} {!collapsed && group.bots.length > 4 && ( - {group.canDeleteSpace ? ( - - ) : null} - + void startProject(spaceId)} + onToggle={toggleSidebarSection} + sectionMenuAnchor={sectionMenuAnchor} + onSectionMenu={setSectionMenu} + spaceMenuAnchor={spaceMenuAnchor} + onSpaceMenu={setSpaceMenu} + /> ) : null} {!collapsed && group.startSpaceId ? (
@@ -4003,17 +3658,15 @@ export function ShellPage() { ) : null} {!collapsed && group.bots.map((item) => ( - + activeSpaceId={bootstrapMe?.spaceId} + menuAnchor={botMenuAnchor} + onMenu={setBotMenu} + /> ))}
@@ -4099,154 +3691,46 @@ export function ShellPage() { )} {archivedBots.length + archivedGroups.length > 0 && !showSpaceSearch ? ( -
- - {archivedOpen ? ( - <> - {archivedBots.map((bot) => ( -
- - - {bot.name} - - - -
- ))} - {archivedGroups.map((group) => ( -
- - - {group.name} - - - -
- ))} - - ) : null} -
+ setArchivedOpen((open) => !open)} + onRestoreBot={(bot) => + void rpc.bots.restore({ botId: bot.id }).then(() => refreshBots(true)) + } + onRestoreGroup={(group) => + void rpc.groups.restore({ groupId: group.id }).then(() => refreshBots(true)) + } + onDeleteBot={setDeleteTarget} + onDeleteGroup={setDeleteGroupTarget} + /> ) : null} - - - - {initials} - - {userName} - - {menuOpen ? ( - - - - - - ) : null} - + openSettings("general")} + onOpenUsage={() => { + void rpc.usage + .summary() + .then(setUsage) + .catch(() => undefined); + openSettings("usage"); + }} + onLogOut={() => + // This browser stops receiving the account's pushes once it signs out. + void disableWebPush() + .catch(() => undefined) + .then(() => authClient.signOut()) + .then(() => { + clearSpaceSelection(); + navigate("/"); + }) + } + /> - + setMobileSidebarOpen(true)} + /> @@ -4362,30 +3828,11 @@ export function ShellPage() { <>
- {/* Collapsed bots sidebar: this header is the leading edge for window chrome. */} - {botsSidebarCollapsed && desktopBridge() ? : null} - - + setMobileSidebarOpen(true)} + /> {inGroup && projectSessionKey ? ( + {open ? ( + <> + {bots.map((bot) => ( +
+ + + {bot.name} + + + +
+ ))} + {groups.map((group) => ( +
+ + + {group.name} + + + +
+ ))} + + ) : null} +
+ ); +} diff --git a/apps/web/src/pages/shell/roster-rows.tsx b/apps/web/src/pages/shell/roster-rows.tsx new file mode 100644 index 0000000..6f7e3c5 --- /dev/null +++ b/apps/web/src/pages/shell/roster-rows.tsx @@ -0,0 +1,250 @@ +import { Trans, useLingui } from "@lingui/react/macro"; +import type { SpaceBot, SpaceGroup } from "@rakazo/contracts"; +import { BotAvatar, GroupAvatar } from "@rakazo/ui-web"; +import type { RefObject } from "react"; +import { + needsYouChipLabel, + rosterActivitySubtitle, + rosterStatusDot, +} from "../../lib/agent-activity"; +import { localizedPreview } from "../../lib/onboarding-copy"; +import type { ContextMenuPosition } from "../BotContextMenu"; +import { cleanRosterPreview, formatRosterTime } from "./roster-format"; +import { + rosterNameClass, + rosterPreviewClass, + rosterRowClass, + rosterTimeClass, + rosterUnreadDotClass, +} from "./roster-row-style"; + +export type SidebarChatItem = { kind: "bot"; chat: SpaceBot } | { kind: "group"; chat: SpaceGroup }; + +export type BotMenuRequest = { + kind: "bot" | "group"; + id: string; + position: ContextMenuPosition; +}; + +/** A bot in the conversations section: reorderable by drag or Alt+Arrow within its group. */ +export function TeamRosterRow({ + item, + groupBotIds, + draggedBotId, + onDraggedBotIdChange, + onReorder, + selected, + onOpen, + activeSpaceId, + menuAnchor, + onMenu, +}: { + item: Extract; + groupBotIds: string[]; + draggedBotId: string | null; + onDraggedBotIdChange: (botId: string | null) => void; + onReorder: (sourceId: string, targetId: string, groupBotIds: string[]) => void; + selected: boolean; + onOpen: () => void; + activeSpaceId: string | undefined; + menuAnchor: RefObject; + onMenu: (menu: BotMenuRequest) => void; +}) { + const { t } = useLingui(); + return ( + + ); +} + +/** A conversation in the projects section; a project's main conversation has no chat actions. */ +export function ProjectRosterRow({ + item, + selected, + onOpen, + activeSpaceId, + menuAnchor, + onMenu, +}: { + item: SidebarChatItem; + selected: boolean; + onOpen: () => void; + activeSpaceId: string | undefined; + menuAnchor: RefObject; + onMenu: (menu: BotMenuRequest) => void; +}) { + const { t } = useLingui(); + return ( + + ); +} diff --git a/apps/web/src/pages/shell/sidebar-group-header.tsx b/apps/web/src/pages/shell/sidebar-group-header.tsx new file mode 100644 index 0000000..dc44178 --- /dev/null +++ b/apps/web/src/pages/shell/sidebar-group-header.tsx @@ -0,0 +1,161 @@ +import { useLingui } from "@lingui/react/macro"; +import type { BotSection, Space } from "@rakazo/contracts"; +import { Button } from "@rakazo/ui-web"; +import { ChevronDown, Folder, GripVertical, Lock, MoreHorizontal } from "lucide-react"; +import type { RefObject } from "react"; +import { ProjectDragGrip } from "../../components/SortableGroup"; +import type { ContextMenuPosition } from "../BotContextMenu"; + +export type SidebarGroupHeaderGroup = { + key: string; + title: string | null; + sectionId: string | null; + spaceId: string; + spaceName: string; + canDeleteSpace: boolean; + emptySpaceId: string | undefined; + showLock: boolean; +}; + +export type SpaceMenuRequest = { id: string; position: ContextMenuPosition }; + +export type SectionMenuRequest = { + section: BotSection; + spaceId: string; + position: ContextMenuPosition; +}; + +/** + * Collapsible title of a sidebar group. Project groups add a drag grip, show a lock for other + * spaces and select an empty space instead of opening it. + */ +export function SidebarGroupHeader({ + variant, + group, + collapsed, + activeSpaceId, + botSections, + spaces, + onOpenEmptySpace, + onToggle, + sectionMenuAnchor, + onSectionMenu, + spaceMenuAnchor, + onSpaceMenu, +}: { + variant: "conversation" | "project"; + group: SidebarGroupHeaderGroup; + collapsed: boolean; + activeSpaceId: string | undefined; + botSections: BotSection[]; + spaces: Space[]; + onOpenEmptySpace: (spaceId: string) => void; + onToggle: (key: string) => void; + sectionMenuAnchor: RefObject; + onSectionMenu: (menu: SectionMenuRequest) => void; + spaceMenuAnchor: RefObject; + onSpaceMenu: (menu: SpaceMenuRequest) => void; +}) { + const { t } = useLingui(); + const project = variant === "project"; + return ( +
+ {project ? ( + // Drag grip — positioned to the left of the title text + + + + ) : null} + + {group.canDeleteSpace ? ( + + ) : null} +
+ ); +} diff --git a/apps/web/src/pages/shell/sidebar-header.tsx b/apps/web/src/pages/shell/sidebar-header.tsx new file mode 100644 index 0000000..61d3e40 --- /dev/null +++ b/apps/web/src/pages/shell/sidebar-header.tsx @@ -0,0 +1,118 @@ +import { useLingui } from "@lingui/react/macro"; +import type { Bot } from "@rakazo/contracts"; +import { Popover, PopoverContent, PopoverTrigger, Wordmark } from "@rakazo/ui-web"; +import { Bell } from "lucide-react"; +import { WindowChrome } from "../WindowChrome"; +import { BotCreatePicker } from "./bot-picker"; + +/** Window chrome, wordmark, the activity toggle and the create menu atop the sidebar. */ +export function SidebarHeader({ + activityMode, + onToggleActivityMode, + createMenuOpen, + onCreateMenuOpenChange, + onCloseMobileSidebar, + bots, + onCreateBot, + onOpenBot, + onCreateGroup, + onCreateSpace, + onShowGroupInfo, + onShowSpaceInfo, +}: { + activityMode: boolean; + onToggleActivityMode: () => void; + createMenuOpen: boolean; + onCreateMenuOpenChange: (open: boolean) => void; + onCloseMobileSidebar: () => void; + bots: Bot[]; + onCreateBot: () => void; + onOpenBot: (id: string) => void; + onCreateGroup: () => void; + onCreateSpace: () => void; + onShowGroupInfo: () => void; + onShowSpaceInfo: () => void; +}) { + const { t } = useLingui(); + return ( +
+ +
+ +
+
+ + + + + + + + {/* Unmount with the state change so the panel it opens never coexists with the menu. */} + {createMenuOpen ? ( + + { + onCreateMenuOpenChange(false); + onCloseMobileSidebar(); + onCreateBot(); + }} + onOpenBot={(id) => { + onCreateMenuOpenChange(false); + onCloseMobileSidebar(); + onOpenBot(id); + }} + onCreateGroup={() => { + onCreateMenuOpenChange(false); + onCloseMobileSidebar(); + onCreateGroup(); + }} + onCreateSpace={() => { + onCreateMenuOpenChange(false); + onCloseMobileSidebar(); + onCreateSpace(); + }} + onShowGroupInfo={() => { + onCreateMenuOpenChange(false); + onCloseMobileSidebar(); + onShowGroupInfo(); + }} + onShowSpaceInfo={() => { + onCreateMenuOpenChange(false); + onCloseMobileSidebar(); + onShowSpaceInfo(); + }} + /> + + ) : null} + +
+
+ ); +} diff --git a/apps/web/src/pages/shell/sidebar-toggle-buttons.tsx b/apps/web/src/pages/shell/sidebar-toggle-buttons.tsx new file mode 100644 index 0000000..fdbd5f8 --- /dev/null +++ b/apps/web/src/pages/shell/sidebar-toggle-buttons.tsx @@ -0,0 +1,45 @@ +import { useLingui } from "@lingui/react/macro"; +import { Menu, PanelLeftClose, PanelLeftOpen } from "lucide-react"; +import { desktopBridge } from "../../lib/desktop"; +import { WindowChrome } from "../WindowChrome"; + +/** Leading controls of a main header: open the mobile navigation or collapse the bots sidebar. */ +export function SidebarToggleButtons({ + collapsed, + onCollapsedChange, + onOpenNavigation, +}: { + collapsed: boolean; + onCollapsedChange: (collapsed: boolean) => void; + onOpenNavigation: () => void; +}) { + const { t } = useLingui(); + return ( + <> + {/* Collapsed bots sidebar: this header is the leading edge for window chrome. */} + {collapsed && desktopBridge() ? : null} + + + + ); +} diff --git a/apps/web/src/pages/shell/user-menu.tsx b/apps/web/src/pages/shell/user-menu.tsx new file mode 100644 index 0000000..2d5e19f --- /dev/null +++ b/apps/web/src/pages/shell/user-menu.tsx @@ -0,0 +1,73 @@ +import { Trans, useLingui } from "@lingui/react/macro"; +import { Button, Popover, PopoverContent, PopoverTrigger } from "@rakazo/ui-web"; +import { Gauge, LogOut, Settings } from "lucide-react"; + +/** The account button at the foot of the sidebar and its menu. */ +export function UserMenu({ + open, + onOpenChange, + initials, + userName, + onOpenSettings, + onOpenUsage, + onLogOut, +}: { + open: boolean; + onOpenChange: (open: boolean) => void; + initials: string; + userName: string; + onOpenSettings: () => void; + onOpenUsage: () => void; + onLogOut: () => void; +}) { + const { t } = useLingui(); + return ( + + + + {initials} + + {userName} + + {open ? ( + + + + + + ) : null} + + ); +}