diff --git a/packages/app/e2e/regression/side-panels.spec.ts b/packages/app/e2e/regression/side-panels.spec.ts index 1344ed9ce75..8507ad00044 100644 --- a/packages/app/e2e/regression/side-panels.spec.ts +++ b/packages/app/e2e/regression/side-panels.spec.ts @@ -212,6 +212,54 @@ test("closing the last New tab closes the side region, and only a New tab lists await expect(review).toBeVisible() }) +test("tabs in a narrow side strip shrink to keep their close buttons, and a tab's menu closes the others", async ({ + page, +}) => { + await page.setViewportSize({ width: 1000, height: 700 }) + const directory = "C:/OpenCode/NarrowStrip" + const key = `local\u0000${base64Encode(directory)}/ses_narrowstrip` + const files = ["a.md", "a-file-name-long-enough-to-overflow-the-side-strip-by-itself.md", "b.md"] + + await openSession(page, { + name: "NarrowStrip", + fileList: () => [], + fileContent: (path) => ({ type: "text", content: `contents:${path}` }), + seed: { + panes: { ses_narrowstrip: { review: true, sessionWidth: 640 } }, + storage: { + "opencode.global.dat:layout": { + sessionTabs: { [key]: { all: files.map((file) => `file://${file}`), active: `file://${files[1]}` } }, + }, + }, + }, + }) + + const side = page.locator('[data-pane-content="side"]') + const add = side.getByRole("button", { name: "Add tab", exact: true }) + await expect(side.getByRole("tab", { name: files[1], exact: true })).toHaveAttribute("aria-selected", "true") + + // Every tab's close button stays left of "+", instead of the strip scrolling it away under its edge fade. + const end = (await add.boundingBox())!.x + const closes = side.locator('[data-pane-strip="side"] [data-slot="tabs-trigger-close-button"]') + await expect(closes).toHaveCount(files.length) + + for (const close of await closes.all()) { + const box = (await close.boundingBox())! + expect(box.x + box.width).toBeLessThanOrEqual(end) + } + + await side.getByRole("tab", { name: "b.md", exact: true }).click({ button: "right" }) + await page.getByRole("menuitem", { name: "Close other tabs", exact: true }).click() + await expect(side.getByRole("tab")).toHaveCount(1) + await expect(side.getByRole("tab", { name: "b.md", exact: true })).toHaveAttribute("aria-selected", "true") + + // With nothing else to close, the menu offers only the tab itself. + await side.getByRole("tab", { name: "b.md", exact: true }).click({ button: "right" }) + await expect(page.getByRole("menuitem", { name: "Close other tabs", exact: true })).toBeDisabled() + await page.getByRole("menuitem", { name: "Close tab", exact: true }).click() + await expect(side.getByRole("tab", { name: "b.md", exact: true })).toHaveCount(0) +}) + // A DOM mark survives only while the same node stays mounted. function mark(locator: Locator) { return locator.evaluate((element) => element.setAttribute("data-e2e-mounted", "original")) diff --git a/packages/app/src/runtime/i18n/am.ts b/packages/app/src/runtime/i18n/am.ts index bf0d747de59..a63b05c35f4 100644 --- a/packages/app/src/runtime/i18n/am.ts +++ b/packages/app/src/runtime/i18n/am.ts @@ -725,6 +725,7 @@ export const dict = { "toast.migration.progress.working.progress": "ውሂብ በማዛወር ላይ {{current}}/{{total}}", "home.workspaceTip": "ለውጦችን ለብለል ለማቆየት ቀጣዩን ክፍለ ጊዜ በአዲስ የስራ ቦታ ይጀምሩ", "session.tab.add": "ትር አክል", + "session.tab.closeOthers": "ሌሎች ትሮችን ዝጋ", "session.queue.attachments.one": "ፕላስ {{count}} አባሪ", "session.queue.attachments.other": "ፕላስ {{count}} አባሪዎች", "settings.backToSettings": "ወደ ቅንብሮች ተመለስ", diff --git a/packages/app/src/runtime/i18n/ar.ts b/packages/app/src/runtime/i18n/ar.ts index f7a73adaa19..283727f8f5a 100644 --- a/packages/app/src/runtime/i18n/ar.ts +++ b/packages/app/src/runtime/i18n/ar.ts @@ -777,6 +777,7 @@ export const dict = { "dialog.server.menu.remove": "إزالة", "home.workspaceTip": "ابدأ الجلسة التالية في شجرة عمل جديدة لإبقاء التغييرات معزولة", "session.tab.add": "إضافة علامة تبويب", + "session.tab.closeOthers": "إغلاق علامات التبويب الأخرى", "session.queue.attachments.one": "بالإضافة إلى {{count}} مرفق", "session.queue.attachments.other": "بالإضافة إلى \u2068{{count}}\u2069 مرفقات", "settings.backToSettings": "العودة إلى الإعدادات", diff --git a/packages/app/src/runtime/i18n/az.ts b/packages/app/src/runtime/i18n/az.ts index 91ffba8d218..4c022f8061a 100644 --- a/packages/app/src/runtime/i18n/az.ts +++ b/packages/app/src/runtime/i18n/az.ts @@ -749,6 +749,7 @@ export const dict = { "toast.migration.progress.working.progress": "Məlumatlar köçürülür {{current}}/{{total}}", "home.workspaceTip": "Dəyişiklikləri izolə etmək üçün növbəti sessiyanı yeni iş sahəsində başlayın", "session.tab.add": "Tab əlavə et", + "session.tab.closeOthers": "Digər tabları bağla", "session.queue.attachments.one": "{{count}} əlavə əlavə et", "session.queue.attachments.other": "{{count}} əlavə əlavələr əlavə et", "settings.backToSettings": "Parametrlərə qayıt", diff --git a/packages/app/src/runtime/i18n/bg.ts b/packages/app/src/runtime/i18n/bg.ts index 127d58ffddf..ae3db9b2b64 100644 --- a/packages/app/src/runtime/i18n/bg.ts +++ b/packages/app/src/runtime/i18n/bg.ts @@ -748,6 +748,7 @@ export const dict = { "toast.migration.progress.working.progress": "Мигриране на данни {{current}}/{{total}}", "home.workspaceTip": "Започнете следващата сесия в ново работно пространство, за да запазите промените изолирани", "session.tab.add": "Добавяне на раздел", + "session.tab.closeOthers": "Затваряне на другите раздели", "session.queue.attachments.one": "Плюс {{count}} прикачен файл", "session.queue.attachments.other": "Плюс {{count}} прикачени файла", "settings.backToSettings": "Назад към настройките", diff --git a/packages/app/src/runtime/i18n/bn.ts b/packages/app/src/runtime/i18n/bn.ts index 5ce2375e0f4..917e9a7e84d 100644 --- a/packages/app/src/runtime/i18n/bn.ts +++ b/packages/app/src/runtime/i18n/bn.ts @@ -749,6 +749,7 @@ export const dict = { "toast.migration.progress.working.progress": "ডেটা স্থানান্তরিত হচ্ছে {{current}}/{{total}}", "home.workspaceTip": "পরিবর্তনগুলিকে বিচ্ছিন্ন রাখতে একটি নতুন কর্মক্ষেত্রে পরবর্তী সেশন শুরু করুন৷", "session.tab.add": "ট্যাব যোগ করুন", + "session.tab.closeOthers": "অন্য ট্যাবগুলো বন্ধ করুন", "session.queue.attachments.one": "প্লাস {{count}} সংযুক্তি", "session.queue.attachments.other": "প্লাস {{count}}টি সংযুক্তি৷", "settings.backToSettings": "সেটিংসে ফিরে যান", diff --git a/packages/app/src/runtime/i18n/br.ts b/packages/app/src/runtime/i18n/br.ts index ed80d01c476..74f461aeb12 100644 --- a/packages/app/src/runtime/i18n/br.ts +++ b/packages/app/src/runtime/i18n/br.ts @@ -37,6 +37,7 @@ export const dict = { "dialog.server.menu.remove": "Remover", "home.workspaceTip": "Inicie a próxima sessão em um novo espaço de trabalho para manter as alterações isoladas", "session.tab.add": "Adicionar guia", + "session.tab.closeOthers": "Fechar outras abas", "session.queue.attachments.one": "Mais acessório {{count}}", "session.queue.attachments.other": "Mais acessórios {{count}}", "settings.backToSettings": "Voltar às configurações", diff --git a/packages/app/src/runtime/i18n/bs.ts b/packages/app/src/runtime/i18n/bs.ts index 7a455be8081..18fb92eb471 100644 --- a/packages/app/src/runtime/i18n/bs.ts +++ b/packages/app/src/runtime/i18n/bs.ts @@ -813,6 +813,7 @@ export const dict = { "toast.migration.progress.working.progress": "Migracija podataka {{current}}/{{total}}", "home.workspaceTip": "Pokrenite sljedeću sesiju u novom radnom prostoru kako bi promjene ostale izolovane", "session.tab.add": "Dodaj karticu", + "session.tab.closeOthers": "Zatvori ostale kartice", "session.queue.attachments.one": "Još {{count}} prilog", "session.queue.attachments.few": "Još {{count}} priloga", "session.queue.attachments.other": "Još {{count}} priloga", diff --git a/packages/app/src/runtime/i18n/ca.ts b/packages/app/src/runtime/i18n/ca.ts index c7068a3ed90..9760cca35d4 100644 --- a/packages/app/src/runtime/i18n/ca.ts +++ b/packages/app/src/runtime/i18n/ca.ts @@ -744,6 +744,7 @@ export const dict = { "dialog.server.menu.remove": "Elimina", "home.workspaceTip": "Inicieu la propera sessió en un nou espai de treball per mantenir els canvis aïllats", "session.tab.add": "Afegeix una pestanya", + "session.tab.closeOthers": "Tanca les altres pestanyes", "session.queue.attachments.one": "Més adjunt {{count}}", "session.queue.attachments.other": "Més fitxers adjunts {{count}}", "settings.backToSettings": "Tornar a la configuració", diff --git a/packages/app/src/runtime/i18n/cs.ts b/packages/app/src/runtime/i18n/cs.ts index 806c6d99686..5a88e85b02d 100644 --- a/packages/app/src/runtime/i18n/cs.ts +++ b/packages/app/src/runtime/i18n/cs.ts @@ -758,6 +758,7 @@ export const dict = { "toast.migration.progress.working.progress": "Migrace dat {{current}}/{{total}}", "home.workspaceTip": "Spusťte příští relaci v novém pracovním prostoru, aby změny zůstaly oddělené", "session.tab.add": "Přidat kartu", + "session.tab.closeOthers": "Zavřít ostatní karty", "session.queue.attachments.one": "A {{count}} příloha", "session.queue.attachments.few": "A {{count}} přílohy", "session.queue.attachments.many": "A {{count}} přílohy", diff --git a/packages/app/src/runtime/i18n/da.ts b/packages/app/src/runtime/i18n/da.ts index 5ff6f22f061..b6a4dc1a947 100644 --- a/packages/app/src/runtime/i18n/da.ts +++ b/packages/app/src/runtime/i18n/da.ts @@ -37,6 +37,7 @@ export const dict = { "dialog.server.menu.remove": "Fjern", "home.workspaceTip": "Start næste session i et nyt arbejdsområde for at holde ændringer isoleret", "session.tab.add": "Tilføj fane", + "session.tab.closeOthers": "Luk andre faner", "session.queue.attachments.one": "Plus {{count}} vedhæftning", "session.queue.attachments.other": "Plus {{count}} vedhæftede filer", "settings.backToSettings": "Tilbage til indstillinger", diff --git a/packages/app/src/runtime/i18n/de.ts b/packages/app/src/runtime/i18n/de.ts index 56b90c409c7..c216d95ec8e 100644 --- a/packages/app/src/runtime/i18n/de.ts +++ b/packages/app/src/runtime/i18n/de.ts @@ -43,6 +43,7 @@ export const dict = { "home.workspaceTip": "Starten Sie die nächste Sitzung in einem neuen Arbeitsbereich, um Änderungen isoliert zu halten", "session.tab.add": "Registerkarte hinzufügen", + "session.tab.closeOthers": "Andere Tabs schließen", "session.queue.attachments.one": "Plus {{count}}-Aufsatz", "session.queue.attachments.other": "Plus {{count}}-Anbaugeräte", "settings.backToSettings": "Zurück zu den Einstellungen", diff --git a/packages/app/src/runtime/i18n/dv.ts b/packages/app/src/runtime/i18n/dv.ts index 20b7da012fb..c6492f8b993 100644 --- a/packages/app/src/runtime/i18n/dv.ts +++ b/packages/app/src/runtime/i18n/dv.ts @@ -766,6 +766,7 @@ export const dict = { "toast.migration.progress.working.progress": "ޑޭޓާ މައިގްރޭޓްކުރުން \u2068{{current}}\u2069/\u2068{{total}}\u2069", "home.workspaceTip": "ބަދަލުތައް އެކަހެރިކޮށް ބެހެއްޓުމަށްޓަކައި އާ ވޯކްސްޕޭސްއެއްގައި ދެން އޮންނަ ސެޝަން ފެށުން", "session.tab.add": "ޓެބް އިތުރުކުރުން", + "session.tab.closeOthers": "އެހެން ޓެބްތައް ބަންދުކުރުން", "session.queue.attachments.one": "ޕްލަސް \u2068{{count}}\u2069 އެޓޭޗްމަންޓް", "session.queue.attachments.other": "ޕްލަސް \u2068{{count}}\u2069 އެޓޭޗްމަންޓްސް", "settings.backToSettings": "އެނބުރި ސެޓިންގްސް އަށް", diff --git a/packages/app/src/runtime/i18n/dz.ts b/packages/app/src/runtime/i18n/dz.ts index 079b88b458b..f56b034d8f3 100644 --- a/packages/app/src/runtime/i18n/dz.ts +++ b/packages/app/src/runtime/i18n/dz.ts @@ -741,6 +741,7 @@ export const dict = { "dialog.server.menu.remove": "བཏོན་བཏང་", "home.workspaceTip": "བསྒྱུར་བཅོས་ཚུ་སོ་སོ་སྦེ་བཞག་ནི་ལུ་ ལཱ་གི་ས་སྒོ་གསརཔ་ཅིག་ནང་ ཤུལ་མམ་གྱི་ལཱ་ཡུན་འགོ་བཙུགས།", "session.tab.add": "མཆོང་ལྡེ་ཁ་སྐོང་", + "session.tab.closeOthers": "མཆོང་ལྡེ་གཞན་ཚུ་ཁ་བསྡམས།", "session.queue.attachments.one": "པ་ལཱསི་ {{count}} མཐུད་སྣེ།", "session.queue.attachments.other": "དེ་ལས་ {{count}} མཐུད་སྣེ་ཚུ་", "settings.backToSettings": "གཞི་སྒྲིག་ལུ་ལོག་འགྱོ།", diff --git a/packages/app/src/runtime/i18n/el.ts b/packages/app/src/runtime/i18n/el.ts index e77d29b287c..b0bd60ab363 100644 --- a/packages/app/src/runtime/i18n/el.ts +++ b/packages/app/src/runtime/i18n/el.ts @@ -743,6 +743,7 @@ export const dict = { "home.workspaceTip": "Ξεκινήστε την επόμενη συνεδρία σε νέο χώρο εργασίας για να διατηρήσετε τις αλλαγές απομονωμένες", "session.tab.add": "Προσθήκη καρτέλας", + "session.tab.closeOthers": "Κλείσιμο των άλλων καρτελών", "session.queue.attachments.one": "Συν {{count}} συνημμένο", "session.queue.attachments.other": "Συν {{count}} συνημμένα", "settings.backToSettings": "Επιστροφή στις ρυθμίσεις", diff --git a/packages/app/src/runtime/i18n/en.ts b/packages/app/src/runtime/i18n/en.ts index 7be03ef2e11..48e2d960af8 100644 --- a/packages/app/src/runtime/i18n/en.ts +++ b/packages/app/src/runtime/i18n/en.ts @@ -582,6 +582,7 @@ export const dict = { "session.tab.more": "More...", "session.view.select": "Session view", "session.tab.add": "Add tab", + "session.tab.closeOthers": "Close other tabs", "session.tab.recentHint": "Hold {{key}} for recently closed", "session.tab.showMore": "Show more", "session.tab.new": "New tab", diff --git a/packages/app/src/runtime/i18n/es.ts b/packages/app/src/runtime/i18n/es.ts index ecc93dbe673..d01912a786d 100644 --- a/packages/app/src/runtime/i18n/es.ts +++ b/packages/app/src/runtime/i18n/es.ts @@ -38,6 +38,7 @@ export const dict = { "dialog.server.menu.remove": "Quitar", "home.workspaceTip": "Inicie la próxima sesión en un nuevo espacio de trabajo para mantener los cambios aislados", "session.tab.add": "Agregar pestaña", + "session.tab.closeOthers": "Cerrar otras pestañas", "session.queue.attachments.one": "Más accesorio {{count}}", "session.queue.attachments.other": "Más accesorios {{count}}", "settings.backToSettings": "Volver a la configuración", diff --git a/packages/app/src/runtime/i18n/et.ts b/packages/app/src/runtime/i18n/et.ts index 0578cb504c6..d7e3bbec0e6 100644 --- a/packages/app/src/runtime/i18n/et.ts +++ b/packages/app/src/runtime/i18n/et.ts @@ -723,6 +723,7 @@ export const dict = { "dialog.server.menu.remove": "Eemalda", "home.workspaceTip": "Alustage järgmist seanssi uues tööruumis, et hoida muudatused isoleerituna", "session.tab.add": "Lisa vahekaart", + "session.tab.closeOthers": "Sule teised vahekaardid", "session.queue.attachments.one": "Plus {{count}} kinnitus", "session.queue.attachments.other": "Pluss {{count}} lisaseadmed", "settings.backToSettings": "Tagasi seadete juurde", diff --git a/packages/app/src/runtime/i18n/fa.ts b/packages/app/src/runtime/i18n/fa.ts index a9706fea374..fb2209cfb78 100644 --- a/packages/app/src/runtime/i18n/fa.ts +++ b/packages/app/src/runtime/i18n/fa.ts @@ -741,6 +741,7 @@ export const dict = { "dialog.server.menu.remove": "حذف", "home.workspaceTip": "نشست بعدی را در یک درخت‌کار جدید آغاز کنید تا تغییرات جدا بمانند", "session.tab.add": "افزودن زبانه", + "session.tab.closeOthers": "بستن برگه‌های دیگر", "session.queue.attachments.one": "به‌علاوهٔ {{count}} پیوست", "session.queue.attachments.other": "به‌علاوهٔ \u2068{{count}}\u2069 پیوست", "settings.backToSettings": "بازگشت به تنظیمات", diff --git a/packages/app/src/runtime/i18n/fi.ts b/packages/app/src/runtime/i18n/fi.ts index f2e02aec91b..b08725930d7 100644 --- a/packages/app/src/runtime/i18n/fi.ts +++ b/packages/app/src/runtime/i18n/fi.ts @@ -35,6 +35,7 @@ export const dict = { "dialog.server.menu.remove": "Poista", "home.workspaceTip": "Aloita seuraava istunto uudessa työtilassa, jotta muutokset pysyvät erillään", "session.tab.add": "Lisää välilehti", + "session.tab.closeOthers": "Sulje muut välilehdet", "session.queue.attachments.one": "Plus {{count}} kiinnitys", "session.queue.attachments.other": "Plus {{count}} lisälaitteet", "settings.backToSettings": "Takaisin asetuksiin", diff --git a/packages/app/src/runtime/i18n/fo.ts b/packages/app/src/runtime/i18n/fo.ts index d7987cbce20..2129f5bfa9e 100644 --- a/packages/app/src/runtime/i18n/fo.ts +++ b/packages/app/src/runtime/i18n/fo.ts @@ -727,6 +727,7 @@ export const dict = { "dialog.server.menu.remove": "Strika", "home.workspaceTip": "Byrja næstu setu í einum nýggjum arbeiðsøki fyri at halda broytingar einstøkar", "session.tab.add": "Legg flipa til", + "session.tab.closeOthers": "Lat hinar flipanar aftur", "session.queue.attachments.one": "Pluss {{count}} viðheft", "session.queue.attachments.other": "Umframt {{count}} viðheftir", "settings.backToSettings": "Aftur til innstillingar", diff --git a/packages/app/src/runtime/i18n/fr.ts b/packages/app/src/runtime/i18n/fr.ts index 320aec6a329..55425d2ffba 100644 --- a/packages/app/src/runtime/i18n/fr.ts +++ b/packages/app/src/runtime/i18n/fr.ts @@ -39,6 +39,7 @@ export const dict = { "home.workspaceTip": "Démarrez la prochaine session dans un nouvel espace de travail pour garder les modifications isolées", "session.tab.add": "Ajouter un onglet", + "session.tab.closeOthers": "Fermer les autres onglets", "session.queue.attachments.one": "Plus accessoire {{count}}", "session.queue.attachments.other": "Plus les accessoires {{count}}", "settings.backToSettings": "Retour aux paramètres", diff --git a/packages/app/src/runtime/i18n/he.ts b/packages/app/src/runtime/i18n/he.ts index a825396e71a..c698dadd64d 100644 --- a/packages/app/src/runtime/i18n/he.ts +++ b/packages/app/src/runtime/i18n/he.ts @@ -738,6 +738,7 @@ export const dict = { "dialog.server.menu.remove": "הסרה", "home.workspaceTip": "כדאי להתחיל את ההפעלה הבאה בעץ עבודה חדש כדי לשמור את השינויים מבודדים", "session.tab.add": "הוספת כרטיסייה", + "session.tab.closeOthers": "סגור כרטיסיות אחרות", "session.queue.attachments.one": "בנוסף ל-{{count}} קובץ מצורף", "session.queue.attachments.other": "בנוסף ל-\u2068{{count}}\u2069 קבצים מצורפים", "settings.backToSettings": "חזרה להגדרות", diff --git a/packages/app/src/runtime/i18n/hi.ts b/packages/app/src/runtime/i18n/hi.ts index 9faee636c97..9a5367ad25b 100644 --- a/packages/app/src/runtime/i18n/hi.ts +++ b/packages/app/src/runtime/i18n/hi.ts @@ -749,6 +749,7 @@ export const dict = { "toast.migration.progress.working.progress": "डेटा माइग्रेट करना {{current}}/{{total}}", "home.workspaceTip": "परिवर्तनों को पृथक रखने के लिए अगले सत्र को एक नए कार्यक्षेत्र में प्रारंभ करें", "session.tab.add": "टैब जोड़ें", + "session.tab.closeOthers": "अन्य टैब बंद करें", "session.queue.attachments.one": "साथ ही {{count}} अनुलग्नक", "session.queue.attachments.other": "प्लस {{count}} अनुलग्नक", "settings.backToSettings": "सेटिंग्स पर वापस जाएँ", diff --git a/packages/app/src/runtime/i18n/hr.ts b/packages/app/src/runtime/i18n/hr.ts index c3d223b0eef..08b53b437b6 100644 --- a/packages/app/src/runtime/i18n/hr.ts +++ b/packages/app/src/runtime/i18n/hr.ts @@ -757,6 +757,7 @@ export const dict = { "toast.migration.progress.working.progress": "Migracija podataka {{current}}/{{total}}", "home.workspaceTip": "Pokrenite sljedeću sesiju u novom radnom prostoru kako bi promjene ostale izolovane", "session.tab.add": "Dodaj karticu", + "session.tab.closeOthers": "Zatvori ostale kartice", "session.queue.attachments.one": "Još {{count}} prilog", "session.queue.attachments.few": "Još {{count}} priloga", "session.queue.attachments.other": "Još {{count}} priloga", diff --git a/packages/app/src/runtime/i18n/hu.ts b/packages/app/src/runtime/i18n/hu.ts index 2a52a2ffe8c..dfbf1b40476 100644 --- a/packages/app/src/runtime/i18n/hu.ts +++ b/packages/app/src/runtime/i18n/hu.ts @@ -741,6 +741,7 @@ export const dict = { "home.workspaceTip": "Indítsa el a következő munkamenetet egy új munkaterületen, hogy a változtatások elszigeteltek maradjanak", "session.tab.add": "Tabulátor hozzáadása", + "session.tab.closeOthers": "Többi lap bezárása", "session.queue.attachments.one": "Plusz {{count}} rögzítés", "session.queue.attachments.other": "Plusz {{count}} tartozékok", "settings.backToSettings": "Vissza a beállításokhoz", diff --git a/packages/app/src/runtime/i18n/hy.ts b/packages/app/src/runtime/i18n/hy.ts index e33d02bf57b..c284fa02601 100644 --- a/packages/app/src/runtime/i18n/hy.ts +++ b/packages/app/src/runtime/i18n/hy.ts @@ -743,6 +743,7 @@ export const dict = { "toast.migration.progress.working.progress": "Տվյալների տեղափոխում՝ {{current}}/{{total}}", "home.workspaceTip": "Սկսել հաջորդ նստաշրջանը նոր աշխատանքային տարածքում՝ փոփոխությունները մեկուսացնելու համար", "session.tab.add": "Ավելացնել ներդիր", + "session.tab.closeOthers": "Փակել մյուս ներդիրները", "session.queue.attachments.one": "Ավելացնել {{count}} կցում", "session.queue.attachments.other": "Ավելացնել {{count}} կցումներ", "settings.backToSettings": "Հետ երթ դեպի կարգավորումներ", diff --git a/packages/app/src/runtime/i18n/id.ts b/packages/app/src/runtime/i18n/id.ts index a908e44aac1..c5093b0b39a 100644 --- a/packages/app/src/runtime/i18n/id.ts +++ b/packages/app/src/runtime/i18n/id.ts @@ -815,6 +815,7 @@ export const dict = { "toast.migration.progress.working.progress": "Memigrasikan data {{current}}/{{total}}", "home.workspaceTip": "Mulai sesi berikutnya di ruang kerja baru untuk menjaga perubahan tetap terisolasi", "session.tab.add": "Tambah tab", + "session.tab.closeOthers": "Tutup tab lain", "session.queue.attachments.one": "Tambahkan {{count}} lampiran", "session.queue.attachments.other": "Tambahkan {{count}} lampiran", "settings.backToSettings": "Kembali ke pengaturan", diff --git a/packages/app/src/runtime/i18n/is.ts b/packages/app/src/runtime/i18n/is.ts index a089659a104..d59bed90c73 100644 --- a/packages/app/src/runtime/i18n/is.ts +++ b/packages/app/src/runtime/i18n/is.ts @@ -730,6 +730,7 @@ export const dict = { "dialog.server.menu.remove": "Fjarlægja", "home.workspaceTip": "Byrjaðu næstu lotu á nýju vinnusvæði til að halda breytingum einangruðum", "session.tab.add": "Bæta við flipa", + "session.tab.closeOthers": "Loka öðrum flipum", "session.queue.attachments.one": "Auk {{count}} viðhengi", "session.queue.attachments.other": "Auk {{count}} viðhengja", "settings.backToSettings": "Til baka í stillingar", diff --git a/packages/app/src/runtime/i18n/it.ts b/packages/app/src/runtime/i18n/it.ts index 8afa3f1a181..027e79b419e 100644 --- a/packages/app/src/runtime/i18n/it.ts +++ b/packages/app/src/runtime/i18n/it.ts @@ -37,6 +37,7 @@ export const dict = { "dialog.server.menu.remove": "Rimuovi", "home.workspaceTip": "Inizia la sessione successiva in una nuova area di lavoro per mantenere isolate le modifiche", "session.tab.add": "Aggiungi scheda", + "session.tab.closeOthers": "Chiudi le altre schede", "session.queue.attachments.one": "Inoltre attacco {{count}}", "session.queue.attachments.other": "Inoltre accessori {{count}}", "settings.backToSettings": "Torna alle impostazioni", diff --git a/packages/app/src/runtime/i18n/ja.ts b/packages/app/src/runtime/i18n/ja.ts index d02823c5847..49dd4dcd70d 100644 --- a/packages/app/src/runtime/i18n/ja.ts +++ b/packages/app/src/runtime/i18n/ja.ts @@ -759,6 +759,7 @@ export const dict = { "toast.migration.progress.working.progress": "データを移行中 {{current}}/{{total}}", "home.workspaceTip": "変更を隔離するために、新しいワークスペースで次のセッションを開始", "session.tab.add": "タブを追加", + "session.tab.closeOthers": "他のタブを閉じる", "session.queue.attachments.one": "添付ファイル {{count}} 件追加", "session.queue.attachments.other": "添付ファイル {{count}} 件追加", "settings.backToSettings": "設定に戻る", diff --git a/packages/app/src/runtime/i18n/ka.ts b/packages/app/src/runtime/i18n/ka.ts index 37ed962ad0d..aa8998c8fc9 100644 --- a/packages/app/src/runtime/i18n/ka.ts +++ b/packages/app/src/runtime/i18n/ka.ts @@ -743,6 +743,7 @@ export const dict = { "toast.migration.progress.working.progress": "მონაცემების გადატანა {{current}}/{{total}}", "home.workspaceTip": "დაიწყეთ შემდეგი სესიას ახალი სამუშაო სივრცეში, რომ ცვლილებები განცალკევებულად შენარჩუნდეს", "session.tab.add": "ჩანართის დამატება", + "session.tab.closeOthers": "სხვა ჩანართების დახურვა", "session.queue.attachments.one": "დამატება {{count}} შემაგანთქმელი", "session.queue.attachments.other": "დამატება {{count}} შემაგანთქმელი", "settings.backToSettings": "წარსვლა დასაყენებლებში", diff --git a/packages/app/src/runtime/i18n/km.ts b/packages/app/src/runtime/i18n/km.ts index 2843e1853a8..1264e733920 100644 --- a/packages/app/src/runtime/i18n/km.ts +++ b/packages/app/src/runtime/i18n/km.ts @@ -742,6 +742,7 @@ export const dict = { "toast.migration.progress.working.progress": "កំពុងផ្ទេរទិន្នន័យ {{current}}/{{total}}", "home.workspaceTip": "ចាប់ផ្តើមសម័យក្រោយនៅក្នុងកន្លែងធ្វើការថ្មីដើម្បីរក្សា​ការ​ផ្លាស់ប្តូរ​ឲ្យ​ផ្ទាល់ខ្លួន", "session.tab.add": "បន្ថែមផ្ទាំង", + "session.tab.closeOthers": "បិទផ្ទាំងផ្សេងទៀត", "session.queue.attachments.one": "បូក {{count}} ភ្ជាប់ឯកសារ", "session.queue.attachments.other": "បូក {{count}} ភ្ជាប់ឯកសារ", "settings.backToSettings": "ត្រឡប់ទៅការកំណត់", diff --git a/packages/app/src/runtime/i18n/ko.ts b/packages/app/src/runtime/i18n/ko.ts index 3e1c9c8a13a..3ebbf1e38ff 100644 --- a/packages/app/src/runtime/i18n/ko.ts +++ b/packages/app/src/runtime/i18n/ko.ts @@ -757,6 +757,7 @@ export const dict = { "toast.migration.progress.working.progress": "데이터 마이그레이션 중 {{current}}/{{total}}", "home.workspaceTip": "변경 사항을 격리하려면 새 워크스페이스에서 다음 세션 시작", "session.tab.add": "탭 추가", + "session.tab.closeOthers": "다른 탭 닫기", "session.queue.attachments.one": "첨부파일 {{count}}개 추가", "session.queue.attachments.other": "첨부파일 {{count}}개 추가", "settings.backToSettings": "설정으로 돌아가기", diff --git a/packages/app/src/runtime/i18n/lo.ts b/packages/app/src/runtime/i18n/lo.ts index a7a4a8131de..8f38bc00038 100644 --- a/packages/app/src/runtime/i18n/lo.ts +++ b/packages/app/src/runtime/i18n/lo.ts @@ -740,6 +740,7 @@ export const dict = { "toast.migration.progress.working.progress": "ການຍ້າຍຂໍ້ມູນ {{current}}/{{total}}", "home.workspaceTip": "ເລີ່ມ session ຕໍ່ໄປໃນພື້ນທີ່ການເຮັດວຽກໃຫມ່ເພື່ອຮັກສາການປ່ຽນແປງໃຫ້ຖືກແຍກອອກ", "session.tab.add": "ແຖບເພີ່ມ", + "session.tab.closeOthers": "ປິດແຖບອື່ນ", "session.queue.attachments.one": "ພ້ອມກັບໄຟລ໌ແນບ {{count}}", "session.queue.attachments.other": "ພ້ອມກັບໄຟລ໌ແນບ {{count}}", "settings.backToSettings": "ກັບໄປທີ່ການຕັ້ງຄ່າ", diff --git a/packages/app/src/runtime/i18n/lt.ts b/packages/app/src/runtime/i18n/lt.ts index 3cfbf0af8bb..34758c917e1 100644 --- a/packages/app/src/runtime/i18n/lt.ts +++ b/packages/app/src/runtime/i18n/lt.ts @@ -751,6 +751,7 @@ export const dict = { "dialog.server.menu.remove": "Pašalinti", "home.workspaceTip": "Pradėkite kitą seansą naujoje darbo srityje, kad pakeitimai būtų atskirti", "session.tab.add": "Pridėti skirtuką", + "session.tab.closeOthers": "Uždaryti kitus skirtukus", "session.queue.attachments.one": "Plus {{count}} tvirtinimas", "session.queue.attachments.other": "Plus {{count}} priedai", "settings.backToSettings": "Atgal į nustatymus", diff --git a/packages/app/src/runtime/i18n/lv.ts b/packages/app/src/runtime/i18n/lv.ts index b63dad8f0b1..695fa99c055 100644 --- a/packages/app/src/runtime/i18n/lv.ts +++ b/packages/app/src/runtime/i18n/lv.ts @@ -739,6 +739,7 @@ export const dict = { "dialog.server.menu.remove": "Noņemt", "home.workspaceTip": "Sāciet nākamo sesiju jaunā darbvietā, lai izmaiņas būtu izolētas", "session.tab.add": "Pievienot cilni", + "session.tab.closeOthers": "Aizvērt citas cilnes", "session.queue.attachments.one": "Plus {{count}} stiprinājums", "session.queue.attachments.other": "Plus {{count}} stiprinājumi", "settings.backToSettings": "Atpakaļ uz iestatījumiem", diff --git a/packages/app/src/runtime/i18n/mk.ts b/packages/app/src/runtime/i18n/mk.ts index 92b634c2d2d..bbe3f1c0993 100644 --- a/packages/app/src/runtime/i18n/mk.ts +++ b/packages/app/src/runtime/i18n/mk.ts @@ -747,6 +747,7 @@ export const dict = { "toast.migration.progress.working.progress": "Мигрирање на податоци {{current}}/{{total}}", "home.workspaceTip": "Започнете ја следната сесија во нов работен простор за да ги одделите промените", "session.tab.add": "Додај јазиче", + "session.tab.closeOthers": "Затвори ги другите картички", "session.queue.attachments.one": "Плус {{count}} прилог", "session.queue.attachments.other": "Плус {{count}} прилози", "settings.backToSettings": "Назад на поставки", diff --git a/packages/app/src/runtime/i18n/mn.ts b/packages/app/src/runtime/i18n/mn.ts index a84fa71dc69..f8bb65fcfea 100644 --- a/packages/app/src/runtime/i18n/mn.ts +++ b/packages/app/src/runtime/i18n/mn.ts @@ -746,6 +746,7 @@ export const dict = { "toast.migration.progress.working.progress": "Өгөгдлийг шилжүүлж байна {{current}}/{{total}}", "home.workspaceTip": "Өөрчлөлтүүдийг тусгаарлахын тулд шинэ ажлын орчинд дараагийн сессийг эхлүүлнэ үү", "session.tab.add": "Шинэ таб нэмэх", + "session.tab.closeOthers": "Бусад табыг хаах", "session.queue.attachments.one": "Нэмэлт {{count}} хавсралт", "session.queue.attachments.other": "Нэмэлт {{count}} хавсралт", "settings.backToSettings": "Тохиргоонд буцах", diff --git a/packages/app/src/runtime/i18n/ms.ts b/packages/app/src/runtime/i18n/ms.ts index d4d5f95bc39..bcb7dbfaee7 100644 --- a/packages/app/src/runtime/i18n/ms.ts +++ b/packages/app/src/runtime/i18n/ms.ts @@ -747,6 +747,7 @@ export const dict = { "toast.migration.progress.working.progress": "Memindahkan data {{current}}/{{total}}", "home.workspaceTip": "Mula sesi seterusnya dalam ruang kerja baru untuk memastikan perubahan terasing", "session.tab.add": "Tambah tab", + "session.tab.closeOthers": "Tutup tab lain", "session.queue.attachments.one": "Tambah {{count}} lampiran", "session.queue.attachments.other": "Tambah {{count}} lampiran", "settings.backToSettings": "Kembali ke tetapan", diff --git a/packages/app/src/runtime/i18n/my.ts b/packages/app/src/runtime/i18n/my.ts index 7708fd5ce16..ec069cdf7d8 100644 --- a/packages/app/src/runtime/i18n/my.ts +++ b/packages/app/src/runtime/i18n/my.ts @@ -757,6 +757,7 @@ export const dict = { "home.workspaceTip": "ပြင်ဆင်မှုများကို ထိန်းသိမ်းထားရန် အလုပ်အပ်ရန် အသစ်သော အလုပ်ဌာနတွင် နောက်ဆုံးအစည်းအဝေးကို စတင်ပါ", "session.tab.add": "တက်ထည့်ရန်", + "session.tab.closeOthers": "အခြားတဘ်များကို ပိတ်ပါ။", "session.queue.attachments.one": "နောက်ထပ် ပူးတွဲဖိုင် {{count}} ခု", "session.queue.attachments.other": "နောက်ထပ် ပူးတွဲဖိုင် {{count}} ခု", "settings.backToSettings": "ဆက်တင်များသို့ ပြန်သွားရန်", diff --git a/packages/app/src/runtime/i18n/ne.ts b/packages/app/src/runtime/i18n/ne.ts index 805308ec6aa..0f7b73416ff 100644 --- a/packages/app/src/runtime/i18n/ne.ts +++ b/packages/app/src/runtime/i18n/ne.ts @@ -748,6 +748,7 @@ export const dict = { "toast.migration.progress.working.progress": "डेटा माइग्रेट गर्दै {{current}}/{{total}}", "home.workspaceTip": "परिवर्तनहरूलाई अलग राख्नको लागि नयाँ कार्यस्थानमा अर्को सत्र सुरु गर्नुहोस्", "session.tab.add": "ट्याब थप्नुहोस्", + "session.tab.closeOthers": "अन्य ट्याबहरू बन्द गर्नुहोस्", "session.queue.attachments.one": "थप {{count}} संलग्नक", "session.queue.attachments.other": "थप {{count}} संलग्नहरू", "settings.backToSettings": "सेटिङहरूमा फर्कनुहोस्", diff --git a/packages/app/src/runtime/i18n/nl.ts b/packages/app/src/runtime/i18n/nl.ts index 6a483e6ff2f..2b1bbb02552 100644 --- a/packages/app/src/runtime/i18n/nl.ts +++ b/packages/app/src/runtime/i18n/nl.ts @@ -37,6 +37,7 @@ export const dict = { "dialog.server.menu.remove": "Verwijderen", "home.workspaceTip": "Start de volgende sessie in een nieuwe werkruimte om wijzigingen geïsoleerd te houden", "session.tab.add": "Tabblad toevoegen", + "session.tab.closeOthers": "Andere tabbladen sluiten", "session.queue.attachments.one": "Plus {{count}}-hulpstuk", "session.queue.attachments.other": "Plus {{count}}-hulpstukken", "settings.backToSettings": "Terug naar instellingen", diff --git a/packages/app/src/runtime/i18n/no.ts b/packages/app/src/runtime/i18n/no.ts index a47446c204c..5b01c5b3164 100644 --- a/packages/app/src/runtime/i18n/no.ts +++ b/packages/app/src/runtime/i18n/no.ts @@ -39,6 +39,7 @@ export const dict = { "dialog.server.menu.remove": "Fjern", "home.workspaceTip": "Start neste økt i et nytt arbeidsområde for å holde endringer isolert", "session.tab.add": "Legg til fane", + "session.tab.closeOthers": "Lukk andre faner", "session.queue.attachments.one": "Pluss {{count}} vedlegg", "session.queue.attachments.other": "Pluss {{count}} vedlegg", "settings.backToSettings": "Tilbake til innstillinger", diff --git a/packages/app/src/runtime/i18n/pa.ts b/packages/app/src/runtime/i18n/pa.ts index 60ec3e42382..cc7630da731 100644 --- a/packages/app/src/runtime/i18n/pa.ts +++ b/packages/app/src/runtime/i18n/pa.ts @@ -757,6 +757,7 @@ export const dict = { "toast.migration.progress.working.progress": "ڈیٹا دی منتقلی \u2068{{current}}\u2069/\u2068{{total}}\u2069", "home.workspaceTip": "تبدیلیوں کو الگ تھلگ رکھنے لئی اگلا سیشن ایک نئی ورک اسپیس میں شروع کرو۔", "session.tab.add": "ٹیب شامل کرو۔", + "session.tab.closeOthers": "ہور ٹیب بند کرو", "session.queue.attachments.one": "پلس \u2068{{count}}\u2069 منسلکہ", "session.queue.attachments.other": "پلس \u2068{{count}}\u2069 منسلکات", "settings.backToSettings": "ترتیبات پر واپس جائیں۔", diff --git a/packages/app/src/runtime/i18n/pl.ts b/packages/app/src/runtime/i18n/pl.ts index e827f6d0594..abeef05c703 100644 --- a/packages/app/src/runtime/i18n/pl.ts +++ b/packages/app/src/runtime/i18n/pl.ts @@ -771,6 +771,7 @@ export const dict = { "toast.migration.progress.working.progress": "Migracja danych {{current}}/{{total}}", "home.workspaceTip": "Rozpocznij następną sesję w nowym obszarze roboczym, aby zmiany były odizolowane", "session.tab.add": "Dodaj kartę", + "session.tab.closeOthers": "Zamknij pozostałe karty", "session.queue.attachments.one": "Jeszcze {{count}} załącznik", "session.queue.attachments.other": "Jeszcze {{count}} załącznika", "settings.backToSettings": "Powrót do ustawień", diff --git a/packages/app/src/runtime/i18n/ro.ts b/packages/app/src/runtime/i18n/ro.ts index b349900b6f8..cd86538d973 100644 --- a/packages/app/src/runtime/i18n/ro.ts +++ b/packages/app/src/runtime/i18n/ro.ts @@ -738,6 +738,7 @@ export const dict = { "dialog.server.menu.remove": "Eliminați", "home.workspaceTip": "Începeți următoarea sesiune într-un spațiu de lucru nou pentru a păstra modificările izolate", "session.tab.add": "Adăugați fila", + "session.tab.closeOthers": "Închide celelalte file", "session.queue.attachments.one": "Plus {{count}} atașament", "session.queue.attachments.other": "Plus {{count}} atașamente", "settings.backToSettings": "Înapoi la setări", diff --git a/packages/app/src/runtime/i18n/ru.ts b/packages/app/src/runtime/i18n/ru.ts index 532849000b6..7d3c41927e5 100644 --- a/packages/app/src/runtime/i18n/ru.ts +++ b/packages/app/src/runtime/i18n/ru.ts @@ -827,6 +827,7 @@ export const dict = { "home.workspaceTip": "Начните следующую сессию в новом рабочем пространстве, чтобы изменения оставались изолированными", "session.tab.add": "Добавить вкладку", + "session.tab.closeOthers": "Закрыть другие вкладки", "session.queue.attachments.one": "Плюс {{count}} вложение", "session.queue.attachments.other": "Плюс {{count}} вложения", "settings.backToSettings": "Назад к настройкам", diff --git a/packages/app/src/runtime/i18n/si.ts b/packages/app/src/runtime/i18n/si.ts index 7deda282ebb..eb7708a59f8 100644 --- a/packages/app/src/runtime/i18n/si.ts +++ b/packages/app/src/runtime/i18n/si.ts @@ -744,6 +744,7 @@ export const dict = { "toast.migration.progress.working.progress": "දත්ත සංක්‍රමණය වෙමින් {{current}}/{{total}}", "home.workspaceTip": "වෙනස්කම් හුදකලාව තබා ගැනීමට නව වැඩබිමක මීළඟ සැසිය ආරම්භ කරන්න", "session.tab.add": "ටැබ් එක එකතු කරන්න", + "session.tab.closeOthers": "අනෙක් ටැබ් වසන්න", "session.queue.attachments.one": "ප්ලස් {{count}} ඇමුණුම", "session.queue.attachments.other": "ප්ලස් {{count}} ඇමුණුම්", "settings.backToSettings": "සැකසීම් වෙත ආපසු", diff --git a/packages/app/src/runtime/i18n/sk.ts b/packages/app/src/runtime/i18n/sk.ts index 8f6290e8f99..f636d8c4a70 100644 --- a/packages/app/src/runtime/i18n/sk.ts +++ b/packages/app/src/runtime/i18n/sk.ts @@ -768,6 +768,7 @@ export const dict = { "toast.migration.progress.working.progress": "Migrácia údajov {{current}}/{{total}}", "home.workspaceTip": "Spustite ďalšiu reláciu v novom pracovnom prostredí, aby zostali zmeny izolované", "session.tab.add": "Pridať kartu", + "session.tab.closeOthers": "Zavrieť ostatné karty", "session.queue.attachments.one": "Plus {{count}} príloha", "session.queue.attachments.other": "Plus {{count}} príloh", "settings.backToSettings": "Späť do nastavení", diff --git a/packages/app/src/runtime/i18n/sl.ts b/packages/app/src/runtime/i18n/sl.ts index 8a90237c390..679b943bb83 100644 --- a/packages/app/src/runtime/i18n/sl.ts +++ b/packages/app/src/runtime/i18n/sl.ts @@ -767,6 +767,7 @@ export const dict = { "toast.migration.progress.working.progress": "Migriram podatke {{current}}/{{total}}", "home.workspaceTip": "Za naslednjo sejo začnite v novem delovnem prostoru, da ohranite spremembe ločene", "session.tab.add": "Dodaj zavihek", + "session.tab.closeOthers": "Zapri druge zavihke", "session.queue.attachments.one": "Še {{count}} priponka", "session.queue.attachments.other": "Še {{count}} priponk", "settings.backToSettings": "Nazaj na nastavitve", diff --git a/packages/app/src/runtime/i18n/sq.ts b/packages/app/src/runtime/i18n/sq.ts index a6bfc6c8c06..0c03c4fe5b4 100644 --- a/packages/app/src/runtime/i18n/sq.ts +++ b/packages/app/src/runtime/i18n/sq.ts @@ -730,6 +730,7 @@ export const dict = { "dialog.server.menu.remove": "Hiq", "home.workspaceTip": "Filloni sesionin tjetër në një hapësirë ​​të re pune për të mbajtur ndryshimet të izoluara", "session.tab.add": "Shto skedën", + "session.tab.closeOthers": "Mbyll skedat e tjera", "session.queue.attachments.one": "Plus {{count}} bashkëngjitje", "session.queue.attachments.other": "Plus bashkëngjitjet {{count}}", "settings.backToSettings": "Kthehu te cilësimet", diff --git a/packages/app/src/runtime/i18n/sr.ts b/packages/app/src/runtime/i18n/sr.ts index 188c2d43685..62e4694ad47 100644 --- a/packages/app/src/runtime/i18n/sr.ts +++ b/packages/app/src/runtime/i18n/sr.ts @@ -755,6 +755,7 @@ export const dict = { "toast.migration.progress.working.progress": "Мигрирање података {{current}}/{{total}}", "home.workspaceTip": "Покрените следећу сесију у новом радном простору да бисте задржали измене изолованим", "session.tab.add": "Додај картицу", + "session.tab.closeOthers": "Затвори остале картице", "session.queue.attachments.one": "Још {{count}} прилог", "session.queue.attachments.other": "Још {{count}} прилога", "settings.backToSettings": "Назад на подешавања", diff --git a/packages/app/src/runtime/i18n/sv.ts b/packages/app/src/runtime/i18n/sv.ts index 358ae6f9149..3ab8129db37 100644 --- a/packages/app/src/runtime/i18n/sv.ts +++ b/packages/app/src/runtime/i18n/sv.ts @@ -36,6 +36,7 @@ export const dict = { "dialog.server.menu.remove": "Ta bort", "home.workspaceTip": "Starta nästa session i en ny arbetsyta för att hålla ändringar isolerade", "session.tab.add": "Lägg till flik", + "session.tab.closeOthers": "Stäng andra flikar", "session.queue.attachments.one": "Plus {{count}}-tillbehör", "session.queue.attachments.other": "Plus {{count}}-tillbehör", "settings.backToSettings": "Tillbaka till inställningarna", diff --git a/packages/app/src/runtime/i18n/tg.ts b/packages/app/src/runtime/i18n/tg.ts index bd12a6589bc..b359780422d 100644 --- a/packages/app/src/runtime/i18n/tg.ts +++ b/packages/app/src/runtime/i18n/tg.ts @@ -748,6 +748,7 @@ export const dict = { "toast.migration.progress.working.progress": "Интиқоли додаҳо {{current}}/{{total}}", "home.workspaceTip": "Сеанси навбатиро дар фазои кории нав оғоз кунед, то тағирот дар алоҳидагӣ нигоҳ дошта шавад", "session.tab.add": "Иловаи ҷадвал", + "session.tab.closeOthers": "Варақаҳои дигарро пӯшед", "session.queue.attachments.one": "Илова бар замимаи {{count}}", "session.queue.attachments.other": "Илова бар ин {{count}} замима", "settings.backToSettings": "Бозгашт ба танзимот", diff --git a/packages/app/src/runtime/i18n/th.ts b/packages/app/src/runtime/i18n/th.ts index 068d84fa03c..335e8ca49ce 100644 --- a/packages/app/src/runtime/i18n/th.ts +++ b/packages/app/src/runtime/i18n/th.ts @@ -802,6 +802,7 @@ export const dict = { "toast.migration.progress.working.progress": "กำลังย้ายข้อมูล {{current}}/{{total}}", "home.workspaceTip": "เริ่มเซสชันถัดไปในพื้นที่ทำงานใหม่เพื่อให้การเปลี่ยนแปลงแยกออกจากกัน", "session.tab.add": "เพิ่มแท็บ", + "session.tab.closeOthers": "ปิดแท็บอื่น", "session.queue.attachments.one": "เพิ่มไฟล์แนบ {{count}} ไฟล์", "session.queue.attachments.other": "เพิ่มไฟล์แนบ {{count}} ไฟล์", "settings.backToSettings": "กลับไปที่การตั้งค่า", diff --git a/packages/app/src/runtime/i18n/tk.ts b/packages/app/src/runtime/i18n/tk.ts index d9ef14138cd..1ea1e08d9d4 100644 --- a/packages/app/src/runtime/i18n/tk.ts +++ b/packages/app/src/runtime/i18n/tk.ts @@ -741,6 +741,7 @@ export const dict = { "toast.migration.progress.working.progress": "Maglumatlar geçirilýär {{current}}/{{total}}", "home.workspaceTip": "Üýtgeşmeleri üzňe saklamak üçin indiki sessiýany täze iş ýerinde başlaň", "session.tab.add": "Salgy goşuň", + "session.tab.closeOthers": "Beýleki salgylary ýapyň", "session.queue.attachments.one": "Goşmaça {{count}} goşundy", "session.queue.attachments.other": "Goşmaça {{count}} goşundylar", "settings.backToSettings": "Sazlamalara dolan", diff --git a/packages/app/src/runtime/i18n/tr.ts b/packages/app/src/runtime/i18n/tr.ts index 3d93bb80107..eb618db8bf3 100644 --- a/packages/app/src/runtime/i18n/tr.ts +++ b/packages/app/src/runtime/i18n/tr.ts @@ -806,6 +806,7 @@ export const dict = { "dialog.server.menu.remove": "Kaldır", "home.workspaceTip": "Değişiklikleri izole tutmak için sonraki oturumu yeni bir çalışma alanında başlatın", "session.tab.add": "Sekme ekle", + "session.tab.closeOthers": "Diğer sekmeleri kapat", "session.queue.attachments.one": "Artı {{count}} eklentisi", "session.queue.attachments.other": "Ayrıca {{count}} eklentileri", "settings.backToSettings": "Ayarlara geri dön", diff --git a/packages/app/src/runtime/i18n/uk.ts b/packages/app/src/runtime/i18n/uk.ts index 9502cf735da..c2a11ee2344 100644 --- a/packages/app/src/runtime/i18n/uk.ts +++ b/packages/app/src/runtime/i18n/uk.ts @@ -836,6 +836,7 @@ export const dict = { "toast.migration.progress.working.progress": "Перенесення даних {{current}}/{{total}}", "home.workspaceTip": "Розпочніть наступну сесію в новому робочому просторі, щоб ізолювати зміни", "session.tab.add": "Додати вкладку", + "session.tab.closeOthers": "Закрити інші вкладки", "session.queue.attachments.one": "Ще {{count}} вкладення", "session.queue.attachments.other": "Ще {{count}} вкладення", "settings.backToSettings": "Назад до налаштувань", diff --git a/packages/app/src/runtime/i18n/ur.ts b/packages/app/src/runtime/i18n/ur.ts index d9ec8f05d06..1d287d5de8a 100644 --- a/packages/app/src/runtime/i18n/ur.ts +++ b/packages/app/src/runtime/i18n/ur.ts @@ -757,6 +757,7 @@ export const dict = { "toast.migration.progress.working.progress": "ڈیٹا کی منتقلی \u2068{{current}}\u2069/\u2068{{total}}\u2069", "home.workspaceTip": "تبدیلیوں کو الگ تھلگ رکھنے کے لیے اگلا سیشن ایک نئی ورک اسپیس میں شروع کریں۔", "session.tab.add": "ٹیب شامل کریں۔", + "session.tab.closeOthers": "دیگر ٹیبز بند کریں", "session.queue.attachments.one": "پلس \u2068{{count}}\u2069 منسلکہ", "session.queue.attachments.other": "پلس \u2068{{count}}\u2069 منسلکات", "settings.backToSettings": "ترتیبات پر واپس جائیں۔", diff --git a/packages/app/src/runtime/i18n/uz.ts b/packages/app/src/runtime/i18n/uz.ts index cd044277688..6c8cc59d6f7 100644 --- a/packages/app/src/runtime/i18n/uz.ts +++ b/packages/app/src/runtime/i18n/uz.ts @@ -747,6 +747,7 @@ export const dict = { "toast.migration.progress.working.progress": "Maʼlumotlar koʻchirilmoqda {{current}}/{{total}}", "home.workspaceTip": "O'zgarishlarni izolyatsiya qilish uchun keyingi sessiyani yangi ish maydonida boshlang", "session.tab.add": "Yorliq qo'shish", + "session.tab.closeOthers": "Boshqa tablarni yoping", "session.queue.attachments.one": "Yana {{count}} ta biriktirma", "session.queue.attachments.other": "Yana {{count}} ta biriktirma", "settings.backToSettings": "Sozlamalarga qaytish", diff --git a/packages/app/src/runtime/i18n/vi.ts b/packages/app/src/runtime/i18n/vi.ts index 299958b3ae8..33e62ecebea 100644 --- a/packages/app/src/runtime/i18n/vi.ts +++ b/packages/app/src/runtime/i18n/vi.ts @@ -753,6 +753,7 @@ export const dict = { "toast.migration.progress.working.progress": "Đang di chuyển dữ liệu {{current}}/{{total}}", "home.workspaceTip": "Bắt đầu phiên tiếp theo trong một không gian làm việc mới để giữ các thay đổi riêng biệt", "session.tab.add": "Thêm tab", + "session.tab.closeOthers": "Đóng các tab khác", "session.queue.attachments.one": "Thêm {{count}} tệp đính kèm", "session.queue.attachments.other": "Thêm {{count}} tệp đính kèm", "settings.backToSettings": "Quay lại cài đặt", diff --git a/packages/app/src/runtime/i18n/zh.ts b/packages/app/src/runtime/i18n/zh.ts index e78ea4fc1e3..3c4f5d5b42c 100644 --- a/packages/app/src/runtime/i18n/zh.ts +++ b/packages/app/src/runtime/i18n/zh.ts @@ -799,6 +799,7 @@ export const dict = { "toast.migration.progress.working.progress": "正在迁移数据 {{current}}/{{total}}", "home.workspaceTip": "在新工作区中开始下一个会话以保持更改独立", "session.tab.add": "添加标签页", + "session.tab.closeOthers": "关闭其他标签页", "session.queue.attachments.one": "添加 {{count}} 个附件", "session.queue.attachments.other": "添加 {{count}} 个附件", "settings.backToSettings": "返回设置", diff --git a/packages/app/src/runtime/i18n/zht.ts b/packages/app/src/runtime/i18n/zht.ts index 4bcc04226b6..016d8f6a436 100644 --- a/packages/app/src/runtime/i18n/zht.ts +++ b/packages/app/src/runtime/i18n/zht.ts @@ -791,6 +791,7 @@ export const dict = { "toast.migration.progress.working.progress": "正在遷移資料 {{current}}/{{total}}", "home.workspaceTip": "在新工作區啟動下一個工作階段,以保持變更彼此獨立", "session.tab.add": "新增分頁", + "session.tab.closeOthers": "關閉其他分頁", "session.queue.attachments.one": "另加 {{count}} 個附件", "session.queue.attachments.other": "另加 {{count}} 個附件", "settings.backToSettings": "返回設定", diff --git a/packages/app/src/runtime/plugin/panel-trigger.tsx b/packages/app/src/runtime/plugin/panel-trigger.tsx index 19bb64ed934..acb84d9bca2 100644 --- a/packages/app/src/runtime/plugin/panel-trigger.tsx +++ b/packages/app/src/runtime/plugin/panel-trigger.tsx @@ -122,7 +122,7 @@ export function PanelTrigger(props: { > +
+ props.pane.keys().filter((key) => { + const tab = props.region.entry(key)?.tab + + return !!tab && !tab.pinned && tab.closable !== false + }), + ) + // Without a new tab item, "+" opens a host-owned new tab view listing the launchers, as ⌘T does inside the region. const current = createMemo(() => props.region.shownNewTab(props.pane.id)) const add = () => props.region.openNewTab(props.pane.id) @@ -256,6 +268,17 @@ export function PaneTabs(props: { }) onCleanup(createTabStripScroll({ el, lead: props.pane.lead })) }} + onContextMenu={(event: MouseEvent) => { + const key = + event.target instanceof Element + ? event.target.closest("[data-pane-tab]")?.dataset.paneTab + : undefined + + // A label's own context menu, such as a terminal's, handles the click first. + if (!key || event.defaultPrevented) return + event.preventDefault() + setTabMenu({ open: true, key, x: event.clientX, y: event.clientY }) + }} > {(key) => ( @@ -348,6 +371,32 @@ export function PaneTabs(props: {
+ setTabMenu("open", open)} + modal={false} + placement="bottom-start" + gutter={0} + getAnchorRect={() => ({ x: tabMenu.x, y: tabMenu.y, width: 0, height: 0 })} + > + + + props.region.close(tabMenu.key)}> + {language.t("common.closeTab")} + + key !== tabMenu.key)} + onSelect={() => { + const keep = tabMenu.key + + closable().forEach((key) => key !== keep && props.region.close(key)) + }} + > + {language.t("session.tab.closeOthers")} + + + +
:not(.sticky) { + flex: 1 1 0; + min-width: 72px; + max-width: max-content; + } } [data-slot="tabs-trigger-wrapper"] { height: 28px; + min-width: 0; + flex-shrink: 1; padding-inline: 10px; border: 0; background-color: transparent; @@ -510,6 +520,15 @@ [data-slot="tabs-trigger"] { padding: 0 !important; + + /* A plugin's label shrinks with the tab so its own `truncate` text can ellipsize. */ + > * { + min-width: 0; + } + } + + [data-slot="tabs-trigger-close-button"] { + flex-shrink: 0; } /* The 20px close button sits 4px from the tab's end, as from its top and bottom. */