๐ข The package has been migrated to the @xterm scope (#4860, #4861) via @Tyriar. This means that the old xterm and xterm-* packages are now deprecated and will no longer be maintained. This was done mainly for security reasons to remove ambiguity around the package names and to prevent potential typosquatting attacks.
Please use the new scoped @xterm/* packages.
๐ฆ API
input(data: string, wasUserInput?: boolean): void API to emit an input event from Terminal (#4953) via @arencoskun
documentOverride option to help multi-window app support (#4844) via @Tyriar
attachCustomWheelEventHandler API to allow embedders to intercept wheel events (#4913, #4915) via @Tyriar, @tisilent
๐ Bug fixes
Selection is now synchronized between the accessibility tree and the main selection model (#4742) via @JasonXJ
Fix and add integration tests for inactive selection drawing (#4763, #4808) via @tisilent
Fix a possible exception when disposing Terminal (#4776, #4785) via @Tyriar
Fix handling of invisible characters in the DOM renderer (#4762) via @tisilent
Improve reliability of playwright tests across browsers (#4777) via @Tyriar
Fix inverse minimum contrast ratio edge cases (#4778) via @Tyriar
Fix regression in forced mouse selection handling (#4783) via @Tyriar
Always render cursor above selection in the DOM renderer (#4786) via @Tyriar
Get voice over to announce terminal output consistently (#4789) via @meganrogge
Use isCursorInitialized correctly in the DOM renderer (#4798) via @tisilent
Move WidthCache measurment container to the helper element (#4807) via @mofux
Fix DOM renderer showing selection overflowing its container (#4815, #4837) via @tisilent
Don't re-render after parse if the viewport did not change (#4820) via @Tyriar
Send correct code for ctrl+alt+backspace (#4839) via @JasonXJ
Make xterm.js multi-window aware (#4846, #4912) via @Tyriar, @jeanp413
Fix node process check for node v21+ (#4851) via @davidfiala
Improve non-browser usage of xterm package by preferring globalThis over self (#4856) via @alan-agius4
Fix crosshair cursor not working (#4921) via @Tyriar
Fix exception in render service (#4954) via @Tyriar
Fix spacing when measuring before element is attached to the DOM (#4973) via @Tyriar
๐ Documentation and internal improvements
New default text metrics measure strategy (#4929) via @Tyriar. This should improve general performance and also some cases where characters would be cut off.
The addon repository package.jsons now point at the correct URL (#4795) via @ujjwalpandey922
Upgrade from es6 target to es2021 (#4743) via @Tyriar
Set up shared playwright tests for the DOM and canvas renderers (#4768, #4770) via @Tyriar
Add Edge as a debug target (#4782) via @Tyriar
Fix server debugging target (#4784) via @Tyriar
Tweak worker use in playwright tests (#4787) via @Tyriar
Remove noisy trace calls (#4796, #4919) via @Tyriar
Remove duplicate overviewRulerWidth from demo (#4803) via @tisilent
Clean up setCellFromCodePOint internal API (#4825) via @PerBothner
Update node-pty (#4832) via @Tyriar
Have addons implement their API so it's checked at compile time (#4847) via @tisilent
Fix image addon build (#4862) via @Tyriar
Remove testing on node v16 (#4866) via @silamon
Help embedders avoid memory leaks by unsetting options on dispose (#4910) via @Tyriar
Improve structure of link implementation (#4924) via @Tyriar
Refactor color handling code and add tests (#4927) via @Tyriar
Update eslint and eslint-plugin-jsdoc (#4930) via @PerBothner
Ignore out/ dirs in eslint (#4931) via @Tyriar
โ ๏ธ Deprecations
The old xterm and xterm-* packages are now deprecated and will no longer be maintained. Please use the new scoped @xterm/* packages instead.
๐ฅ Addons
@xterm/addon-canvas
Add underline variants to make underline patterns appear correctly (#4703) via @tisilent
Improve rendering of dashed underline patterns (#4874) via @tisilent
Support blending of selection and background/powerline characters and the selection (#4920, #4950) via @Tyriar
@xterm/addon-unicode-graphemes
This is a new experimental addon that provides support for grapheme clusters in the terminal (#4519) via @PerBothner
Tweak addon export (#4809) via @silamon
Remove install instructions from README (#4858) via @Tyriar
@xterm/addon-search
Bring back clearActiveDecoration API implementation (#4827) via @Tyriar
Re-search when options change (#4831) via @tisilent
@xterm/addon-serialize
Fix hex color serialization (#4833) via @arcanis
Add ability to serialize via a range (#4877) via @Tyriar
@xterm/addon-webgl
Add underline variants to make underline patterns appear correctly (#4703) via @tisilent
Improve rendering of dashed underline patterns (#4874) via @tisilent
Fix inactive cursor rendering (#4801) via @tisilent
Allow addon to work on legacy versions of Safari when webgl2 is explicitly enabled (#4836) via @xiaoxiaobt
Support blending of selection and background/powerline characters and the selection (#4920, #4950) via @Tyriar
@xterm/addon-web-links
Fix url parsing for urls with percentage sign (#4937) via @szymonkaliski