mirror of
https://github.com/anomalyco/opencode.git
synced 2026-11-15 12:41:37 +03:00
fix(app): keep side panel tab close buttons in view and add a tab menu (#60244)
Co-authored-by: neriousy <34747899+neriousy@users.noreply.github.com>
This commit is contained in:
committed by
GitHub
Unverified
parent
589c62db60
commit
f99bc07445
@@ -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"))
|
||||
|
||||
@@ -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": "ወደ ቅንብሮች ተመለስ",
|
||||
|
||||
@@ -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": "العودة إلى الإعدادات",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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": "Назад към настройките",
|
||||
|
||||
@@ -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": "সেটিংসে ফিরে যান",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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ó",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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": "އެނބުރި ސެޓިންގްސް އަށް",
|
||||
|
||||
@@ -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": "གཞི་སྒྲིག་ལུ་ལོག་འགྱོ།",
|
||||
|
||||
@@ -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": "Επιστροφή στις ρυθμίσεις",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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": "بازگشت به تنظیمات",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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": "חזרה להגדרות",
|
||||
|
||||
@@ -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": "सेटिंग्स पर वापस जाएँ",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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": "Հետ երթ դեպի կարգավորումներ",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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": "設定に戻る",
|
||||
|
||||
@@ -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": "წარსვლა დასაყენებლებში",
|
||||
|
||||
@@ -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": "ត្រឡប់ទៅការកំណត់",
|
||||
|
||||
@@ -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": "설정으로 돌아가기",
|
||||
|
||||
@@ -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": "ກັບໄປທີ່ການຕັ້ງຄ່າ",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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": "Назад на поставки",
|
||||
|
||||
@@ -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": "Тохиргоонд буцах",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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": "ဆက်တင်များသို့ ပြန်သွားရန်",
|
||||
|
||||
@@ -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": "सेटिङहरूमा फर्कनुहोस्",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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": "ترتیبات پر واپس جائیں۔",
|
||||
|
||||
@@ -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ń",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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": "Назад к настройкам",
|
||||
|
||||
@@ -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": "සැකසීම් වෙත ආපසු",
|
||||
|
||||
@@ -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í",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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": "Назад на подешавања",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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": "Бозгашт ба танзимот",
|
||||
|
||||
@@ -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": "กลับไปที่การตั้งค่า",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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": "Назад до налаштувань",
|
||||
|
||||
@@ -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": "ترتیبات پر واپس جائیں۔",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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": "返回设置",
|
||||
|
||||
@@ -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": "返回設定",
|
||||
|
||||
@@ -122,7 +122,7 @@ export function PanelTrigger(props: {
|
||||
>
|
||||
<Switch
|
||||
fallback={
|
||||
<div class="relative">
|
||||
<div class="relative min-w-0">
|
||||
<Tabs.Trigger
|
||||
value={props.value}
|
||||
id={props.tab.dom?.tab}
|
||||
|
||||
@@ -220,6 +220,18 @@ export function PaneTabs(props: {
|
||||
|
||||
const modifier = closedTabsModifier()
|
||||
|
||||
// The tab a right click opened the tab menu on, and where. One menu serves the strip: a menu around each trigger
|
||||
// would register the tab in the menu's item collection instead of the strip's.
|
||||
const [tabMenu, setTabMenu] = createStore({ open: false, key: "", x: 0, y: 0 })
|
||||
|
||||
const closable = createMemo(() =>
|
||||
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<HTMLElement>("[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 })
|
||||
}}
|
||||
>
|
||||
<For each={props.pane.keys()}>
|
||||
{(key) => (
|
||||
@@ -348,6 +371,32 @@ export function PaneTabs(props: {
|
||||
</Show>
|
||||
</div>
|
||||
</Tabs.List>
|
||||
<Menu
|
||||
open={tabMenu.open}
|
||||
onOpenChange={(open) => setTabMenu("open", open)}
|
||||
modal={false}
|
||||
placement="bottom-start"
|
||||
gutter={0}
|
||||
getAnchorRect={() => ({ x: tabMenu.x, y: tabMenu.y, width: 0, height: 0 })}
|
||||
>
|
||||
<Menu.Portal>
|
||||
<Menu.Content>
|
||||
<Menu.Item disabled={!closable().includes(tabMenu.key)} onSelect={() => props.region.close(tabMenu.key)}>
|
||||
{language.t("common.closeTab")}
|
||||
</Menu.Item>
|
||||
<Menu.Item
|
||||
disabled={!closable().some((key) => key !== tabMenu.key)}
|
||||
onSelect={() => {
|
||||
const keep = tabMenu.key
|
||||
|
||||
closable().forEach((key) => key !== keep && props.region.close(key))
|
||||
}}
|
||||
>
|
||||
{language.t("session.tab.closeOthers")}
|
||||
</Menu.Item>
|
||||
</Menu.Content>
|
||||
</Menu.Portal>
|
||||
</Menu>
|
||||
<div
|
||||
data-slot="session-side-panel-actions"
|
||||
class="session-review-v2-open-in-app-slot h-[var(--tabs-bar-height)] shrink-0 flex items-center gap-2 pe-3"
|
||||
|
||||
@@ -495,10 +495,20 @@
|
||||
padding-inline-end: 12px;
|
||||
gap: 8px;
|
||||
--tabs-review-fade: 8px;
|
||||
|
||||
/* Like browser tabs, each tab keeps its natural width while they all fit; otherwise the longest titles truncate
|
||||
first, and the strip scrolls only once every tab is at its minimum. Close buttons stay in view meanwhile. */
|
||||
> :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. */
|
||||
|
||||
Reference in New Issue
Block a user