Update xterm and integrate new scroll bars

Fixes #211199
Fixes #216521
See xtermjs/xterm.js#5096
This commit is contained in:
Daniel Imms
2024-07-11 11:27:41 -07:00
parent 067c430016
commit 4f13098d4c
15 changed files with 232 additions and 233 deletions
+8 -8
View File
@@ -82,14 +82,14 @@
"@vscode/windows-mutex": "^0.5.0",
"@vscode/windows-process-tree": "^0.6.0",
"@vscode/windows-registry": "^1.1.0",
"@xterm/addon-clipboard": "0.2.0-beta.19",
"@xterm/addon-image": "0.9.0-beta.36",
"@xterm/addon-search": "0.16.0-beta.36",
"@xterm/addon-serialize": "0.14.0-beta.36",
"@xterm/addon-unicode11": "0.9.0-beta.36",
"@xterm/addon-webgl": "0.19.0-beta.36",
"@xterm/headless": "5.6.0-beta.36",
"@xterm/xterm": "5.6.0-beta.36",
"@xterm/addon-clipboard": "0.2.0-beta.28",
"@xterm/addon-image": "0.9.0-beta.45",
"@xterm/addon-search": "0.16.0-beta.45",
"@xterm/addon-serialize": "0.14.0-beta.45",
"@xterm/addon-unicode11": "0.9.0-beta.45",
"@xterm/addon-webgl": "0.19.0-beta.45",
"@xterm/headless": "5.6.0-beta.45",
"@xterm/xterm": "5.6.0-beta.45",
"http-proxy-agent": "^7.0.0",
"https-proxy-agent": "^7.0.2",
"jschardet": "3.1.3",
+8 -8
View File
@@ -14,14 +14,14 @@
"@vscode/vscode-languagedetection": "1.0.21",
"@vscode/windows-process-tree": "^0.6.0",
"@vscode/windows-registry": "^1.1.0",
"@xterm/addon-clipboard": "0.2.0-beta.19",
"@xterm/addon-image": "0.9.0-beta.36",
"@xterm/addon-search": "0.16.0-beta.36",
"@xterm/addon-serialize": "0.14.0-beta.36",
"@xterm/addon-unicode11": "0.9.0-beta.36",
"@xterm/addon-webgl": "0.19.0-beta.36",
"@xterm/headless": "5.6.0-beta.36",
"@xterm/xterm": "5.6.0-beta.36",
"@xterm/addon-clipboard": "0.2.0-beta.28",
"@xterm/addon-image": "0.9.0-beta.45",
"@xterm/addon-search": "0.16.0-beta.45",
"@xterm/addon-serialize": "0.14.0-beta.45",
"@xterm/addon-unicode11": "0.9.0-beta.45",
"@xterm/addon-webgl": "0.19.0-beta.45",
"@xterm/headless": "5.6.0-beta.45",
"@xterm/xterm": "5.6.0-beta.45",
"cookie": "^0.4.0",
"http-proxy-agent": "^7.0.0",
"https-proxy-agent": "^7.0.2",
+7 -7
View File
@@ -7,13 +7,13 @@
"@microsoft/1ds-post-js": "^3.2.13",
"@vscode/iconv-lite-umd": "0.7.0",
"@vscode/vscode-languagedetection": "1.0.21",
"@xterm/addon-clipboard": "0.2.0-beta.19",
"@xterm/addon-image": "0.9.0-beta.36",
"@xterm/addon-search": "0.16.0-beta.36",
"@xterm/addon-serialize": "0.14.0-beta.36",
"@xterm/addon-unicode11": "0.9.0-beta.36",
"@xterm/addon-webgl": "0.19.0-beta.36",
"@xterm/xterm": "5.6.0-beta.36",
"@xterm/addon-clipboard": "0.2.0-beta.28",
"@xterm/addon-image": "0.9.0-beta.45",
"@xterm/addon-search": "0.16.0-beta.45",
"@xterm/addon-serialize": "0.14.0-beta.45",
"@xterm/addon-unicode11": "0.9.0-beta.45",
"@xterm/addon-webgl": "0.19.0-beta.45",
"@xterm/xterm": "5.6.0-beta.45",
"jschardet": "3.1.3",
"tas-client-umd": "0.2.0",
"vscode-oniguruma": "1.7.0",
+28 -28
View File
@@ -48,42 +48,42 @@
resolved "https://registry.yarnpkg.com/@vscode/vscode-languagedetection/-/vscode-languagedetection-1.0.21.tgz#89b48f293f6aa3341bb888c1118d16ff13b032d3"
integrity sha512-zSUH9HYCw5qsCtd7b31yqkpaCU6jhtkKLkvOOA8yTrIRfBSOFb8PPhgmMicD7B/m+t4PwOJXzU1XDtrM9Fd3/g==
"@xterm/addon-clipboard@0.2.0-beta.19":
version "0.2.0-beta.19"
resolved "https://registry.yarnpkg.com/@xterm/addon-clipboard/-/addon-clipboard-0.2.0-beta.19.tgz#da2ea7a0d6e51383d4a21cbb04fb7fbd9db7d853"
integrity sha512-A/NxJQoOq21kE1ykZ07Cw3IxD5cQFxba1iMxnSFvWGVC71ZdHGwUveLeY8nHWEL8PfLsZxAgIzlMTfWgfkQ+CA==
"@xterm/addon-clipboard@0.2.0-beta.28":
version "0.2.0-beta.28"
resolved "https://registry.yarnpkg.com/@xterm/addon-clipboard/-/addon-clipboard-0.2.0-beta.28.tgz#f6e386b918318fe81479f10fed1bb83e2600e979"
integrity sha512-v3SZuDZat0nFWhz6X+Yr8kB6V+krPv0Hr2FlB29zsKZt1j4NlE58RvhneJesIQ2+/C4Wo4wD/T1Hjz42J2yy9A==
dependencies:
js-base64 "^3.7.5"
"@xterm/addon-image@0.9.0-beta.36":
version "0.9.0-beta.36"
resolved "https://registry.yarnpkg.com/@xterm/addon-image/-/addon-image-0.9.0-beta.36.tgz#79024103c48f4e401ca15afe49fad4f3834c023c"
integrity sha512-m8c5OfJBzPYfv90mSgc0bX/P+qUsgczVajHW+kE59UoC311ng13IlCg6a4bJHb2EHqGsq19fIrYCn6+JsMdRsQ==
"@xterm/addon-image@0.9.0-beta.45":
version "0.9.0-beta.45"
resolved "https://registry.yarnpkg.com/@xterm/addon-image/-/addon-image-0.9.0-beta.45.tgz#a414e50d69082eecbf036ec3ee3f59a72ae4a147"
integrity sha512-p35WvXBjARn2EwmIiINIgQLSL83qCIcTuDv/h6RHokYzDM72xmQ4I0hs5+7zZXTRXcSjATRLf2yA5Y7Kd4wxBQ==
"@xterm/addon-search@0.16.0-beta.36":
version "0.16.0-beta.36"
resolved "https://registry.yarnpkg.com/@xterm/addon-search/-/addon-search-0.16.0-beta.36.tgz#22deda3250552f24de05f8112299d15f3fe90f01"
integrity sha512-lN66vYpKvNBxbvtJXLbuidirirmIzySXnl8JvarcrDaw4HlqluOvvjEdVYKofWV5ZGSaPfIAijwJW1f0KjUhJw==
"@xterm/addon-search@0.16.0-beta.45":
version "0.16.0-beta.45"
resolved "https://registry.yarnpkg.com/@xterm/addon-search/-/addon-search-0.16.0-beta.45.tgz#2bcbea97634e150f40907f9bdeaaefbf43dfff9a"
integrity sha512-c0qc8v+xTeHgXLV1t7YzCbkVfakMJbK4tzQDGtHwPPOUWf98YZK/l8KrF61cQpmHzjuuqu+2DvquG+WuaHxLlA==
"@xterm/addon-serialize@0.14.0-beta.36":
version "0.14.0-beta.36"
resolved "https://registry.yarnpkg.com/@xterm/addon-serialize/-/addon-serialize-0.14.0-beta.36.tgz#1407c13fe1bd869ad4f26e7b7da4e7fa87442021"
integrity sha512-6KpzHlQIuHakPv70dKhQp8f6e9hk4q1fNuuTD1rEzDg8DeKRfUDjorw1vPkKTB/DD+3zaMUBtg7DFVVEi+/+Cw==
"@xterm/addon-serialize@0.14.0-beta.45":
version "0.14.0-beta.45"
resolved "https://registry.yarnpkg.com/@xterm/addon-serialize/-/addon-serialize-0.14.0-beta.45.tgz#c87b271700ada63a9db4a440c4576f1c9429650e"
integrity sha512-cpICPGaekJVtbRK0/KFUhsjT9EPHJq3oGdOXnSGsDawqpam0m8iu1gNzUpscq693v9BisDy80YqSdgdGu/iVMw==
"@xterm/addon-unicode11@0.9.0-beta.36":
version "0.9.0-beta.36"
resolved "https://registry.yarnpkg.com/@xterm/addon-unicode11/-/addon-unicode11-0.9.0-beta.36.tgz#158dcdd707a466958a256a960e5d9a967a97a9dc"
integrity sha512-BKP2ml0fYOHnfaTp0LorSluNXjHRSEwf3yrD3K6jEZfYTBePhee1TAxOdNH/TdqwNYZYaYHaK87A5mSuYpKPBQ==
"@xterm/addon-unicode11@0.9.0-beta.45":
version "0.9.0-beta.45"
resolved "https://registry.yarnpkg.com/@xterm/addon-unicode11/-/addon-unicode11-0.9.0-beta.45.tgz#879b478efa13fdda7608f23a20033e124b578f15"
integrity sha512-oRJ/W6AA0FwSXDkSkbE3/v4UEmqrXv4NjHEmPPrdaenk0JcuNCfuB+iNZbz3BH6ErRxgCx+6QMq+A2NW1EqQdQ==
"@xterm/addon-webgl@0.19.0-beta.36":
version "0.19.0-beta.36"
resolved "https://registry.yarnpkg.com/@xterm/addon-webgl/-/addon-webgl-0.19.0-beta.36.tgz#8926a0434e5ce74eee12a965c06cd5f601391f18"
integrity sha512-bJA1enVNlIMRkBU9i7i8qX26Zs2/CrGedREW5WI0NZUAn0IHlatWlj3aOfTuI2MYWUPGE8ul30PyipYP6P+fmA==
"@xterm/addon-webgl@0.19.0-beta.45":
version "0.19.0-beta.45"
resolved "https://registry.yarnpkg.com/@xterm/addon-webgl/-/addon-webgl-0.19.0-beta.45.tgz#d239170f22b5782cb4a765d4c4a8a2356d6a8390"
integrity sha512-6dw4ZC5nAU+ODDXlB1bVJizTuR4yyaxcwJLBH8YI4FM2/SOcgdVl5MEKoTpRrVnG1HtPfeHoiw+0k61d92/zkQ==
"@xterm/xterm@5.6.0-beta.36":
version "5.6.0-beta.36"
resolved "https://registry.yarnpkg.com/@xterm/xterm/-/xterm-5.6.0-beta.36.tgz#fd0fd598b67e3bcba61a59bb1a33b131ad86eea3"
integrity sha512-YtFKQIggbvV2brWifksZAtLi447j0DFdoSRoq4vQi/N7KFC0pguGdG3YzYkDOyqoeLMPu569e2b5oevMe6d2aQ==
"@xterm/xterm@5.6.0-beta.45":
version "5.6.0-beta.45"
resolved "https://registry.yarnpkg.com/@xterm/xterm/-/xterm-5.6.0-beta.45.tgz#382dd244c365f5a1cea5e164effc1e4f7814cd7b"
integrity sha512-PtPJYHhuKgyFZQTc5jgvxtQ79yW5cRBgc5R7+xFdOOhnZAOog/CqUWXAHVIPG8T7uzhSatRStbW6K4pGGeiNSw==
js-base64@^3.7.5:
version "3.7.7"
+32 -32
View File
@@ -122,47 +122,47 @@
resolved "https://registry.yarnpkg.com/@vscode/windows-registry/-/windows-registry-1.1.0.tgz#03dace7c29c46f658588b9885b9580e453ad21f9"
integrity sha512-5AZzuWJpGscyiMOed0IuyEwt6iKmV5Us7zuwCDCFYMIq7tsvooO9BUiciywsvuthGz6UG4LSpeDeCxvgMVhnIw==
"@xterm/addon-clipboard@0.2.0-beta.19":
version "0.2.0-beta.19"
resolved "https://registry.yarnpkg.com/@xterm/addon-clipboard/-/addon-clipboard-0.2.0-beta.19.tgz#da2ea7a0d6e51383d4a21cbb04fb7fbd9db7d853"
integrity sha512-A/NxJQoOq21kE1ykZ07Cw3IxD5cQFxba1iMxnSFvWGVC71ZdHGwUveLeY8nHWEL8PfLsZxAgIzlMTfWgfkQ+CA==
"@xterm/addon-clipboard@0.2.0-beta.28":
version "0.2.0-beta.28"
resolved "https://registry.yarnpkg.com/@xterm/addon-clipboard/-/addon-clipboard-0.2.0-beta.28.tgz#f6e386b918318fe81479f10fed1bb83e2600e979"
integrity sha512-v3SZuDZat0nFWhz6X+Yr8kB6V+krPv0Hr2FlB29zsKZt1j4NlE58RvhneJesIQ2+/C4Wo4wD/T1Hjz42J2yy9A==
dependencies:
js-base64 "^3.7.5"
"@xterm/addon-image@0.9.0-beta.36":
version "0.9.0-beta.36"
resolved "https://registry.yarnpkg.com/@xterm/addon-image/-/addon-image-0.9.0-beta.36.tgz#79024103c48f4e401ca15afe49fad4f3834c023c"
integrity sha512-m8c5OfJBzPYfv90mSgc0bX/P+qUsgczVajHW+kE59UoC311ng13IlCg6a4bJHb2EHqGsq19fIrYCn6+JsMdRsQ==
"@xterm/addon-image@0.9.0-beta.45":
version "0.9.0-beta.45"
resolved "https://registry.yarnpkg.com/@xterm/addon-image/-/addon-image-0.9.0-beta.45.tgz#a414e50d69082eecbf036ec3ee3f59a72ae4a147"
integrity sha512-p35WvXBjARn2EwmIiINIgQLSL83qCIcTuDv/h6RHokYzDM72xmQ4I0hs5+7zZXTRXcSjATRLf2yA5Y7Kd4wxBQ==
"@xterm/addon-search@0.16.0-beta.36":
version "0.16.0-beta.36"
resolved "https://registry.yarnpkg.com/@xterm/addon-search/-/addon-search-0.16.0-beta.36.tgz#22deda3250552f24de05f8112299d15f3fe90f01"
integrity sha512-lN66vYpKvNBxbvtJXLbuidirirmIzySXnl8JvarcrDaw4HlqluOvvjEdVYKofWV5ZGSaPfIAijwJW1f0KjUhJw==
"@xterm/addon-search@0.16.0-beta.45":
version "0.16.0-beta.45"
resolved "https://registry.yarnpkg.com/@xterm/addon-search/-/addon-search-0.16.0-beta.45.tgz#2bcbea97634e150f40907f9bdeaaefbf43dfff9a"
integrity sha512-c0qc8v+xTeHgXLV1t7YzCbkVfakMJbK4tzQDGtHwPPOUWf98YZK/l8KrF61cQpmHzjuuqu+2DvquG+WuaHxLlA==
"@xterm/addon-serialize@0.14.0-beta.36":
version "0.14.0-beta.36"
resolved "https://registry.yarnpkg.com/@xterm/addon-serialize/-/addon-serialize-0.14.0-beta.36.tgz#1407c13fe1bd869ad4f26e7b7da4e7fa87442021"
integrity sha512-6KpzHlQIuHakPv70dKhQp8f6e9hk4q1fNuuTD1rEzDg8DeKRfUDjorw1vPkKTB/DD+3zaMUBtg7DFVVEi+/+Cw==
"@xterm/addon-serialize@0.14.0-beta.45":
version "0.14.0-beta.45"
resolved "https://registry.yarnpkg.com/@xterm/addon-serialize/-/addon-serialize-0.14.0-beta.45.tgz#c87b271700ada63a9db4a440c4576f1c9429650e"
integrity sha512-cpICPGaekJVtbRK0/KFUhsjT9EPHJq3oGdOXnSGsDawqpam0m8iu1gNzUpscq693v9BisDy80YqSdgdGu/iVMw==
"@xterm/addon-unicode11@0.9.0-beta.36":
version "0.9.0-beta.36"
resolved "https://registry.yarnpkg.com/@xterm/addon-unicode11/-/addon-unicode11-0.9.0-beta.36.tgz#158dcdd707a466958a256a960e5d9a967a97a9dc"
integrity sha512-BKP2ml0fYOHnfaTp0LorSluNXjHRSEwf3yrD3K6jEZfYTBePhee1TAxOdNH/TdqwNYZYaYHaK87A5mSuYpKPBQ==
"@xterm/addon-unicode11@0.9.0-beta.45":
version "0.9.0-beta.45"
resolved "https://registry.yarnpkg.com/@xterm/addon-unicode11/-/addon-unicode11-0.9.0-beta.45.tgz#879b478efa13fdda7608f23a20033e124b578f15"
integrity sha512-oRJ/W6AA0FwSXDkSkbE3/v4UEmqrXv4NjHEmPPrdaenk0JcuNCfuB+iNZbz3BH6ErRxgCx+6QMq+A2NW1EqQdQ==
"@xterm/addon-webgl@0.19.0-beta.36":
version "0.19.0-beta.36"
resolved "https://registry.yarnpkg.com/@xterm/addon-webgl/-/addon-webgl-0.19.0-beta.36.tgz#8926a0434e5ce74eee12a965c06cd5f601391f18"
integrity sha512-bJA1enVNlIMRkBU9i7i8qX26Zs2/CrGedREW5WI0NZUAn0IHlatWlj3aOfTuI2MYWUPGE8ul30PyipYP6P+fmA==
"@xterm/addon-webgl@0.19.0-beta.45":
version "0.19.0-beta.45"
resolved "https://registry.yarnpkg.com/@xterm/addon-webgl/-/addon-webgl-0.19.0-beta.45.tgz#d239170f22b5782cb4a765d4c4a8a2356d6a8390"
integrity sha512-6dw4ZC5nAU+ODDXlB1bVJizTuR4yyaxcwJLBH8YI4FM2/SOcgdVl5MEKoTpRrVnG1HtPfeHoiw+0k61d92/zkQ==
"@xterm/headless@5.6.0-beta.36":
version "5.6.0-beta.36"
resolved "https://registry.yarnpkg.com/@xterm/headless/-/headless-5.6.0-beta.36.tgz#cf3e690024019eac2e22d87e0e9f04da6e99cfa9"
integrity sha512-X0Te4ssxcVZ3/YlYEjzN+4w5e4f3Ni/kdjBUKoyZSRpA1+Er54HC/I3t1jc4amqI9xysnVwhq+Ey+LjygIfALw==
"@xterm/headless@5.6.0-beta.45":
version "5.6.0-beta.45"
resolved "https://registry.yarnpkg.com/@xterm/headless/-/headless-5.6.0-beta.45.tgz#0e387cab4750c1d37206c5111e287941c17ed1f3"
integrity sha512-kzYnl2zJUtRTfmrAso7dAu7g+hroA0sE98gZQGyAl8G6dmtH2qJdKZnn9B67ON7n3Drgv9QPRD606/Y44JfRlw==
"@xterm/xterm@5.6.0-beta.36":
version "5.6.0-beta.36"
resolved "https://registry.yarnpkg.com/@xterm/xterm/-/xterm-5.6.0-beta.36.tgz#fd0fd598b67e3bcba61a59bb1a33b131ad86eea3"
integrity sha512-YtFKQIggbvV2brWifksZAtLi447j0DFdoSRoq4vQi/N7KFC0pguGdG3YzYkDOyqoeLMPu569e2b5oevMe6d2aQ==
"@xterm/xterm@5.6.0-beta.45":
version "5.6.0-beta.45"
resolved "https://registry.yarnpkg.com/@xterm/xterm/-/xterm-5.6.0-beta.45.tgz#382dd244c365f5a1cea5e164effc1e4f7814cd7b"
integrity sha512-PtPJYHhuKgyFZQTc5jgvxtQ79yW5cRBgc5R7+xFdOOhnZAOog/CqUWXAHVIPG8T7uzhSatRStbW6K4pGGeiNSw==
agent-base@^7.0.1, agent-base@^7.0.2, agent-base@^7.1.0:
version "7.1.0"
@@ -1,45 +0,0 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
.monaco-workbench .xterm-viewport {
/* Use the hack presented in https://stackoverflow.com/a/38748186/1156119 to get opacity transitions working on the scrollbar */
-webkit-background-clip: text;
background-clip: text;
-webkit-text-fill-color: transparent;
transition: background-color 800ms linear;
}
.monaco-workbench .xterm-viewport {
scrollbar-width: thin;
}
.monaco-workbench .xterm-viewport::-webkit-scrollbar {
width: 10px;
}
.monaco-workbench .xterm-viewport::-webkit-scrollbar-track {
opacity: 0;
}
.monaco-workbench .xterm-viewport::-webkit-scrollbar-thumb {
min-height: 20px;
background-color: inherit;
}
.monaco-workbench .force-scrollbar .xterm .xterm-viewport,
.monaco-workbench .xterm.focus .xterm-viewport,
.monaco-workbench .xterm:focus .xterm-viewport,
.monaco-workbench .xterm:hover .xterm-viewport {
transition: opacity 100ms linear;
cursor: default;
}
.monaco-workbench .xterm .xterm-viewport::-webkit-scrollbar-thumb:hover {
transition: opacity 0ms linear;
}
.monaco-workbench .xterm .xterm-viewport::-webkit-scrollbar-thumb:window-inactive {
background-color: inherit;
}
@@ -73,8 +73,16 @@
}
.monaco-workbench .xterm {
/* All terminals have at least 20px left, 10px right edge padding and 2 padding on the bottom (so underscores on last line are visible) */
padding: 0 10px 2px 20px;
/* All terminals have at least 20px left padding for the gutter */
padding-left: 20px;
}
.monaco-workbench .xterm .xterm-scrollable-element {
/* Offset the scrollable element such that:
* - The terminal grid will be positioned to the right of the gutter
* - Elements are not hidden in the gutter */
margin-left: -20px;
padding-left: 20px;
}
.monaco-workbench .terminal-editor .xterm,
@@ -130,10 +138,10 @@
.xterm.xterm-cursor-pointer .xterm-screen { cursor: pointer; }
.xterm.column-select.focus .xterm-screen { cursor: crosshair; }
.monaco-workbench .terminal-editor .terminal-group .monaco-split-view2.horizontal .split-view-view:last-child .xterm,
/* .monaco-workbench .terminal-editor .terminal-group .monaco-split-view2.horizontal .split-view-view:last-child .xterm,
.monaco-workbench .pane-body.integrated-terminal .terminal-group .monaco-split-view2.horizontal .split-view-view:last-child .xterm {
padding-right: 20px;
}
} */
.monaco-workbench .terminal-editor .xterm a:not(.xterm-invalid-link),
.monaco-workbench .pane-body.integrated-terminal .xterm a:not(.xterm-invalid-link) {
@@ -159,8 +167,8 @@
.monaco-workbench .terminal-editor .terminal-wrapper:not(.fixed-dims) .xterm-viewport,
.monaco-workbench .pane-body.integrated-terminal .terminal-wrapper:not(.fixed-dims) .xterm-viewport {
/* Override xterm.js' width as we want to size the viewport to fill the panel so the scrollbar is on the right edge */
width: auto !important;
/* Override xterm.js' position so the area that accepts mouse events extends to the edge of the scroll bar */
right: 14px;
}
.monaco-workbench .pane-body.integrated-terminal {
@@ -520,29 +528,6 @@
background-color: var(--vscode-terminal-hoverHighlightBackground);
}
.force-scrollbar .xterm .xterm-viewport,
.monaco-workbench .xterm.focus .xterm-viewport,
.monaco-workbench .xterm:focus .xterm-viewport,
.monaco-workbench .xterm:hover .xterm-viewport {
background-color: var(--vscode-scrollbarSlider-background) !important;
}
.monaco-workbench .xterm-viewport {
scrollbar-color: var(--vscode-scrollbarSlider-background) transparent;
}
.monaco-workbench .xterm .xterm-viewport::-webkit-scrollbar-thumb:hover {
background-color: var(--vscode-scrollbarSlider-hoverBackground);
}
.monaco-workbench .xterm-viewport:hover {
scrollbar-color: var(--vscode-scrollbarSlider-hoverBackground) transparent;
}
.monaco-workbench .xterm .xterm-viewport::-webkit-scrollbar-thumb:active {
background-color: var(--vscode-scrollbarSlider-activeBackground);
}
.monaco-workbench .xterm.terminal.hide {
visibility: hidden;
}
@@ -95,10 +95,6 @@
}
.xterm .xterm-viewport {
/* On OS X this is required in order for the scroll bar to appear fully opaque */
background-color: #000;
overflow-y: scroll;
cursor: default;
position: absolute;
right: 0;
left: 0;
@@ -116,10 +112,6 @@
top: 0;
}
.xterm .xterm-scroll-area {
visibility: hidden;
}
.xterm-char-measure-element {
display: inline-block;
visibility: hidden;
@@ -144,7 +136,7 @@
cursor: crosshair;
}
.xterm .xterm-accessibility,
.xterm .xterm-accessibility:not(.debug),
.xterm .xterm-message {
position: absolute;
left: 0;
@@ -156,6 +148,21 @@
pointer-events: none;
}
.xterm .xterm-accessibility-tree:not(.debug) *::selection {
color: transparent;
}
.xterm .xterm-accessibility-tree {
font-family: monospace;
user-select: text;
white-space: pre;
}
.xterm .xterm-accessibility-tree > div {
transform-origin: left;
width: fit-content;
}
.xterm .live-region {
position: absolute;
left: -9999px;
@@ -239,3 +246,74 @@
z-index: 2;
position: relative;
}
/* Derived from vs/base/browser/ui/scrollbar/media/scrollbar.css */
/* xterm.js customization: Override xterm's cursor style */
.xterm .xterm-scrollable-element > .scrollbar {
cursor: default;
}
/* Arrows */
.xterm .xterm-scrollable-element > .scrollbar > .scra {
cursor: pointer;
font-size: 11px !important;
}
.xterm .xterm-scrollable-element > .visible {
opacity: 1;
/* Background rule added for IE9 - to allow clicks on dom node */
background: rgba(0, 0, 0, 0);
transition: opacity 100ms linear;
/* In front of peek view */
z-index: 11;
}
.xterm .xterm-scrollable-element > .invisible {
opacity: 0;
pointer-events: none;
}
.xterm .xterm-scrollable-element > .invisible.fade {
transition: opacity 800ms linear;
}
/* Scrollable Content Inset Shadow */
.xterm .xterm-scrollable-element > .shadow {
position: absolute;
display: none;
}
.xterm .xterm-scrollable-element > .shadow.top {
display: block;
top: 0;
left: 3px;
height: 3px;
width: 100%;
box-shadow: var(--vscode-scrollbar-shadow, #000) 0 6px 6px -6px inset;
}
.xterm .xterm-scrollable-element > .shadow.left {
display: block;
top: 3px;
left: 0;
height: 100%;
width: 3px;
box-shadow: var(--vscode-scrollbar-shadow, #000) 6px 0 6px -6px inset;
}
.xterm .xterm-scrollable-element > .shadow.top-left-corner {
display: block;
top: 0;
left: 0;
height: 3px;
width: 3px;
}
.xterm .xterm-scrollable-element > .shadow.top.left {
box-shadow: var(--vscode-scrollbar-shadow, #000) 6px 0 6px -6px inset;
}
@@ -7,7 +7,6 @@ import { KeyCode, KeyMod } from 'vs/base/common/keyCodes';
import { Schemas } from 'vs/base/common/network';
import { isIOS, isWindows } from 'vs/base/common/platform';
import { URI } from 'vs/base/common/uri';
import 'vs/css!./media/scrollbar';
import 'vs/css!./media/terminal';
import 'vs/css!./media/terminalVoice';
import 'vs/css!./media/widgets';
@@ -699,7 +699,7 @@ export class TerminalInstance extends Disposable implements ITerminalInstance {
return undefined;
}
const computedStyle = dom.getWindow(this.xterm.raw.element).getComputedStyle(this.xterm.raw.element);
const horizontalPadding = parseInt(computedStyle.paddingLeft) + parseInt(computedStyle.paddingRight);
const horizontalPadding = parseInt(computedStyle.paddingLeft) + parseInt(computedStyle.paddingRight) + 14/*scroll bar padding*/;
const verticalPadding = parseInt(computedStyle.paddingTop) + parseInt(computedStyle.paddingBottom);
TerminalInstance._lastKnownCanvasDimensions = new dom.Dimension(
Math.min(Constants.MaxCanvasWidth, width - horizontalPadding),
@@ -24,7 +24,7 @@ import { MarkNavigationAddon, ScrollPosition } from 'vs/workbench/contrib/termin
import { localize } from 'vs/nls';
import { IColorTheme, IThemeService } from 'vs/platform/theme/common/themeService';
import { PANEL_BACKGROUND } from 'vs/workbench/common/theme';
import { TERMINAL_FOREGROUND_COLOR, TERMINAL_BACKGROUND_COLOR, TERMINAL_CURSOR_FOREGROUND_COLOR, TERMINAL_CURSOR_BACKGROUND_COLOR, ansiColorIdentifiers, TERMINAL_SELECTION_BACKGROUND_COLOR, TERMINAL_FIND_MATCH_BACKGROUND_COLOR, TERMINAL_FIND_MATCH_HIGHLIGHT_BACKGROUND_COLOR, TERMINAL_FIND_MATCH_BORDER_COLOR, TERMINAL_OVERVIEW_RULER_FIND_MATCH_FOREGROUND_COLOR, TERMINAL_FIND_MATCH_HIGHLIGHT_BORDER_COLOR, TERMINAL_OVERVIEW_RULER_CURSOR_FOREGROUND_COLOR, TERMINAL_SELECTION_FOREGROUND_COLOR, TERMINAL_INACTIVE_SELECTION_BACKGROUND_COLOR } from 'vs/workbench/contrib/terminal/common/terminalColorRegistry';
import { TERMINAL_FOREGROUND_COLOR, TERMINAL_BACKGROUND_COLOR, TERMINAL_CURSOR_FOREGROUND_COLOR, TERMINAL_CURSOR_BACKGROUND_COLOR, ansiColorIdentifiers, TERMINAL_SELECTION_BACKGROUND_COLOR, TERMINAL_FIND_MATCH_BACKGROUND_COLOR, TERMINAL_FIND_MATCH_HIGHLIGHT_BACKGROUND_COLOR, TERMINAL_FIND_MATCH_BORDER_COLOR, TERMINAL_OVERVIEW_RULER_FIND_MATCH_FOREGROUND_COLOR, TERMINAL_FIND_MATCH_HIGHLIGHT_BORDER_COLOR, TERMINAL_OVERVIEW_RULER_CURSOR_FOREGROUND_COLOR, TERMINAL_SELECTION_FOREGROUND_COLOR, TERMINAL_INACTIVE_SELECTION_BACKGROUND_COLOR, TERMINAL_BORDER_COLOR } from 'vs/workbench/contrib/terminal/common/terminalColorRegistry';
import { ShellIntegrationAddon } from 'vs/platform/terminal/common/xterm/shellIntegrationAddon';
import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation';
import { DecorationAddon } from 'vs/workbench/contrib/terminal/browser/xterm/decorationAddon';
@@ -40,6 +40,7 @@ import { MouseWheelClassifier } from 'vs/base/browser/ui/scrollbar/scrollableEle
import { IMouseWheelEvent, StandardWheelEvent } from 'vs/base/browser/mouseEvent';
import { ILayoutService } from 'vs/platform/layout/browser/layoutService';
import { AccessibilitySignal, IAccessibilitySignalService } from 'vs/platform/accessibilitySignal/browser/accessibilitySignalService';
import { scrollbarSliderActiveBackground, scrollbarSliderBackground, scrollbarSliderHoverBackground } from 'vs/platform/theme/common/colorRegistry';
const enum RenderConstants {
SmoothScrollDuration = 125
@@ -234,7 +235,7 @@ export class XtermTerminal extends Disposable implements IXtermTerminal, IDetach
fastScrollSensitivity: config.fastScrollSensitivity,
scrollSensitivity: config.mouseWheelScrollSensitivity,
wordSeparator: config.wordSeparators,
overviewRulerWidth: 10,
overviewRulerWidth: 14,
ignoreBracketedPasteMode: config.ignoreBracketedPasteMode,
rescaleOverlappingGlyphs: config.rescaleOverlappingGlyphs,
windowOptions: {
@@ -799,6 +800,11 @@ export class XtermTerminal extends Disposable implements IXtermTerminal, IDetach
selectionBackground: selectionBackgroundColor?.toString(),
selectionInactiveBackground: selectionInactiveBackgroundColor?.toString(),
selectionForeground: selectionForegroundColor?.toString(),
// TODO: Use a specific color
overviewRulerBorder: theme.getColor(TERMINAL_BORDER_COLOR)?.toString(),
scrollbarSliderActiveBackground: theme.getColor(scrollbarSliderActiveBackground)?.toString(),
scrollbarSliderBackground: theme.getColor(scrollbarSliderBackground)?.toString(),
scrollbarSliderHoverBackground: theme.getColor(scrollbarSliderHoverBackground)?.toString(),
black: theme.getColor(ansiColorIdentifiers[0])?.toString(),
red: theme.getColor(ansiColorIdentifiers[1])?.toString(),
green: theme.getColor(ansiColorIdentifiers[2])?.toString(),
@@ -31,6 +31,7 @@ class TestWebglAddon implements WebglAddon {
static isEnabled = false;
readonly onChangeTextureAtlas = new Emitter().event as IEvent<HTMLCanvasElement>;
readonly onAddTextureAtlasCanvas = new Emitter().event as IEvent<HTMLCanvasElement>;
readonly onRemoveTextureAtlasCanvas = new Emitter().event as IEvent<HTMLCanvasElement, void>;
readonly onContextLoss = new Emitter().event as IEvent<void>;
activate() {
TestWebglAddon.isEnabled = !TestWebglAddon.shouldThrow;
@@ -7,8 +7,8 @@
display: none;
position: absolute;
left: 0;
right: 0;
z-index: 32; /* Must be higher than .xterm-viewport and decorations */
right: 14px; /* Don't overflow terminal scroll bar */
z-index: 32; /* Must be higher than decorations */
background: var(--vscode-terminalStickyScroll-background, var(--vscode-terminal-background, var(--vscode-panel-background)));
box-shadow: var(--vscode-scrollbar-shadow) 0 3px 2px -2px;
border-bottom: 1px solid var(--vscode-terminalStickyScroll-border, transparent);
@@ -439,7 +439,7 @@ export class TerminalStickyScrollOverlay extends Disposable {
drawBoldTextInBrightColors: o.drawBoldTextInBrightColors,
minimumContrastRatio: o.minimumContrastRatio,
tabStopWidth: o.tabStopWidth,
overviewRulerWidth: o.overviewRulerWidth,
overviewRulerWidth: undefined,
customGlyphs: o.customGlyphs,
};
}
+35 -60
View File
@@ -1972,47 +1972,47 @@
resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-2.0.5.tgz#325db42395cd49fe6c14057f9a900e427df8810e"
integrity sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==
"@xterm/addon-clipboard@0.2.0-beta.19":
version "0.2.0-beta.19"
resolved "https://registry.yarnpkg.com/@xterm/addon-clipboard/-/addon-clipboard-0.2.0-beta.19.tgz#da2ea7a0d6e51383d4a21cbb04fb7fbd9db7d853"
integrity sha512-A/NxJQoOq21kE1ykZ07Cw3IxD5cQFxba1iMxnSFvWGVC71ZdHGwUveLeY8nHWEL8PfLsZxAgIzlMTfWgfkQ+CA==
"@xterm/addon-clipboard@0.2.0-beta.28":
version "0.2.0-beta.28"
resolved "https://registry.yarnpkg.com/@xterm/addon-clipboard/-/addon-clipboard-0.2.0-beta.28.tgz#f6e386b918318fe81479f10fed1bb83e2600e979"
integrity sha512-v3SZuDZat0nFWhz6X+Yr8kB6V+krPv0Hr2FlB29zsKZt1j4NlE58RvhneJesIQ2+/C4Wo4wD/T1Hjz42J2yy9A==
dependencies:
js-base64 "^3.7.5"
"@xterm/addon-image@0.9.0-beta.36":
version "0.9.0-beta.36"
resolved "https://registry.yarnpkg.com/@xterm/addon-image/-/addon-image-0.9.0-beta.36.tgz#79024103c48f4e401ca15afe49fad4f3834c023c"
integrity sha512-m8c5OfJBzPYfv90mSgc0bX/P+qUsgczVajHW+kE59UoC311ng13IlCg6a4bJHb2EHqGsq19fIrYCn6+JsMdRsQ==
"@xterm/addon-image@0.9.0-beta.45":
version "0.9.0-beta.45"
resolved "https://registry.yarnpkg.com/@xterm/addon-image/-/addon-image-0.9.0-beta.45.tgz#a414e50d69082eecbf036ec3ee3f59a72ae4a147"
integrity sha512-p35WvXBjARn2EwmIiINIgQLSL83qCIcTuDv/h6RHokYzDM72xmQ4I0hs5+7zZXTRXcSjATRLf2yA5Y7Kd4wxBQ==
"@xterm/addon-search@0.16.0-beta.36":
version "0.16.0-beta.36"
resolved "https://registry.yarnpkg.com/@xterm/addon-search/-/addon-search-0.16.0-beta.36.tgz#22deda3250552f24de05f8112299d15f3fe90f01"
integrity sha512-lN66vYpKvNBxbvtJXLbuidirirmIzySXnl8JvarcrDaw4HlqluOvvjEdVYKofWV5ZGSaPfIAijwJW1f0KjUhJw==
"@xterm/addon-search@0.16.0-beta.45":
version "0.16.0-beta.45"
resolved "https://registry.yarnpkg.com/@xterm/addon-search/-/addon-search-0.16.0-beta.45.tgz#2bcbea97634e150f40907f9bdeaaefbf43dfff9a"
integrity sha512-c0qc8v+xTeHgXLV1t7YzCbkVfakMJbK4tzQDGtHwPPOUWf98YZK/l8KrF61cQpmHzjuuqu+2DvquG+WuaHxLlA==
"@xterm/addon-serialize@0.14.0-beta.36":
version "0.14.0-beta.36"
resolved "https://registry.yarnpkg.com/@xterm/addon-serialize/-/addon-serialize-0.14.0-beta.36.tgz#1407c13fe1bd869ad4f26e7b7da4e7fa87442021"
integrity sha512-6KpzHlQIuHakPv70dKhQp8f6e9hk4q1fNuuTD1rEzDg8DeKRfUDjorw1vPkKTB/DD+3zaMUBtg7DFVVEi+/+Cw==
"@xterm/addon-serialize@0.14.0-beta.45":
version "0.14.0-beta.45"
resolved "https://registry.yarnpkg.com/@xterm/addon-serialize/-/addon-serialize-0.14.0-beta.45.tgz#c87b271700ada63a9db4a440c4576f1c9429650e"
integrity sha512-cpICPGaekJVtbRK0/KFUhsjT9EPHJq3oGdOXnSGsDawqpam0m8iu1gNzUpscq693v9BisDy80YqSdgdGu/iVMw==
"@xterm/addon-unicode11@0.9.0-beta.36":
version "0.9.0-beta.36"
resolved "https://registry.yarnpkg.com/@xterm/addon-unicode11/-/addon-unicode11-0.9.0-beta.36.tgz#158dcdd707a466958a256a960e5d9a967a97a9dc"
integrity sha512-BKP2ml0fYOHnfaTp0LorSluNXjHRSEwf3yrD3K6jEZfYTBePhee1TAxOdNH/TdqwNYZYaYHaK87A5mSuYpKPBQ==
"@xterm/addon-unicode11@0.9.0-beta.45":
version "0.9.0-beta.45"
resolved "https://registry.yarnpkg.com/@xterm/addon-unicode11/-/addon-unicode11-0.9.0-beta.45.tgz#879b478efa13fdda7608f23a20033e124b578f15"
integrity sha512-oRJ/W6AA0FwSXDkSkbE3/v4UEmqrXv4NjHEmPPrdaenk0JcuNCfuB+iNZbz3BH6ErRxgCx+6QMq+A2NW1EqQdQ==
"@xterm/addon-webgl@0.19.0-beta.36":
version "0.19.0-beta.36"
resolved "https://registry.yarnpkg.com/@xterm/addon-webgl/-/addon-webgl-0.19.0-beta.36.tgz#8926a0434e5ce74eee12a965c06cd5f601391f18"
integrity sha512-bJA1enVNlIMRkBU9i7i8qX26Zs2/CrGedREW5WI0NZUAn0IHlatWlj3aOfTuI2MYWUPGE8ul30PyipYP6P+fmA==
"@xterm/addon-webgl@0.19.0-beta.45":
version "0.19.0-beta.45"
resolved "https://registry.yarnpkg.com/@xterm/addon-webgl/-/addon-webgl-0.19.0-beta.45.tgz#d239170f22b5782cb4a765d4c4a8a2356d6a8390"
integrity sha512-6dw4ZC5nAU+ODDXlB1bVJizTuR4yyaxcwJLBH8YI4FM2/SOcgdVl5MEKoTpRrVnG1HtPfeHoiw+0k61d92/zkQ==
"@xterm/headless@5.6.0-beta.36":
version "5.6.0-beta.36"
resolved "https://registry.yarnpkg.com/@xterm/headless/-/headless-5.6.0-beta.36.tgz#cf3e690024019eac2e22d87e0e9f04da6e99cfa9"
integrity sha512-X0Te4ssxcVZ3/YlYEjzN+4w5e4f3Ni/kdjBUKoyZSRpA1+Er54HC/I3t1jc4amqI9xysnVwhq+Ey+LjygIfALw==
"@xterm/headless@5.6.0-beta.45":
version "5.6.0-beta.45"
resolved "https://registry.yarnpkg.com/@xterm/headless/-/headless-5.6.0-beta.45.tgz#0e387cab4750c1d37206c5111e287941c17ed1f3"
integrity sha512-kzYnl2zJUtRTfmrAso7dAu7g+hroA0sE98gZQGyAl8G6dmtH2qJdKZnn9B67ON7n3Drgv9QPRD606/Y44JfRlw==
"@xterm/xterm@5.6.0-beta.36":
version "5.6.0-beta.36"
resolved "https://registry.yarnpkg.com/@xterm/xterm/-/xterm-5.6.0-beta.36.tgz#fd0fd598b67e3bcba61a59bb1a33b131ad86eea3"
integrity sha512-YtFKQIggbvV2brWifksZAtLi447j0DFdoSRoq4vQi/N7KFC0pguGdG3YzYkDOyqoeLMPu569e2b5oevMe6d2aQ==
"@xterm/xterm@5.6.0-beta.45":
version "5.6.0-beta.45"
resolved "https://registry.yarnpkg.com/@xterm/xterm/-/xterm-5.6.0-beta.45.tgz#382dd244c365f5a1cea5e164effc1e4f7814cd7b"
integrity sha512-PtPJYHhuKgyFZQTc5jgvxtQ79yW5cRBgc5R7+xFdOOhnZAOog/CqUWXAHVIPG8T7uzhSatRStbW6K4pGGeiNSw==
"@xtuc/ieee754@^1.2.0":
version "1.2.0"
@@ -9564,7 +9564,7 @@ streamx@^2.18.0:
optionalDependencies:
bare-events "^2.2.0"
"string-width-cjs@npm:string-width@^4.2.0":
"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
version "4.2.3"
resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
@@ -9599,15 +9599,6 @@ string-width@^3.0.0, string-width@^3.1.0:
is-fullwidth-code-point "^2.0.0"
strip-ansi "^5.1.0"
string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
version "4.2.3"
resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
dependencies:
emoji-regex "^8.0.0"
is-fullwidth-code-point "^3.0.0"
strip-ansi "^6.0.1"
string-width@^5.0.1, string-width@^5.1.2:
version "5.1.2"
resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794"
@@ -9670,7 +9661,7 @@ string_decoder@~1.1.1:
dependencies:
safe-buffer "~5.1.0"
"strip-ansi-cjs@npm:strip-ansi@^6.0.1":
"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1:
version "6.0.1"
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
@@ -9698,13 +9689,6 @@ strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0:
dependencies:
ansi-regex "^4.1.0"
strip-ansi@^6.0.0, strip-ansi@^6.0.1:
version "6.0.1"
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
dependencies:
ansi-regex "^5.0.1"
strip-ansi@^7.0.1, strip-ansi@^7.1.0:
version "7.1.0"
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45"
@@ -10869,7 +10853,7 @@ workerpool@6.2.1:
resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.2.1.tgz#46fc150c17d826b86a008e5a4508656777e9c343"
integrity sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==
"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0":
"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0:
version "7.0.0"
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
@@ -10904,15 +10888,6 @@ wrap-ansi@^6.2.0:
string-width "^4.1.0"
strip-ansi "^6.0.0"
wrap-ansi@^7.0.0:
version "7.0.0"
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
dependencies:
ansi-styles "^4.0.0"
string-width "^4.1.0"
strip-ansi "^6.0.0"
wrap-ansi@^8.1.0:
version "8.1.0"
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214"