@jupyterlab/terminal 4.7.0-alpha.0 → 4.7.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/widget.js CHANGED
@@ -1,6 +1,5 @@
1
1
  // Copyright (c) Jupyter Development Team.
2
2
  // Distributed under the terms of the Modified BSD License.
3
- /* eslint-disable @typescript-eslint/no-explicit-any */
4
3
  import { nullTranslator } from '@jupyterlab/translation';
5
4
  import { PromiseDelegate } from '@lumino/coreutils';
6
5
  import { Platform } from '@lumino/domutils';
@@ -315,6 +314,9 @@ export class Terminal extends Widget {
315
314
  // Open the terminal if necessary.
316
315
  if (!this._termOpened) {
317
316
  this._term.open(this.node);
317
+ // Load the renderer addon after open so a failed activation leaves
318
+ // the DOM renderer in place.
319
+ Private.addRenderer(this._term);
318
320
  (_a = this._term.element) === null || _a === void 0 ? void 0 : _a.classList.add(TERMINAL_BODY_CLASS);
319
321
  (_b = this._term.textarea) === null || _b === void 0 ? void 0 : _b.setAttribute('aria-describedby', this._escapeInstructionsId);
320
322
  (_d = (_c = this._term.element) === null || _c === void 0 ? void 0 : _c.querySelector('.xterm-viewport')) === null || _d === void 0 ? void 0 : _d.setAttribute('aria-describedby', this._escapeInstructionsId);
@@ -516,6 +518,37 @@ export class Terminal extends Widget {
516
518
  if (viewportFocused && event.key === 'Tab' && xtermTextarea) {
517
519
  xtermTextarea.tabIndex = -1;
518
520
  }
521
+ // The viewport is not a native scroll container, so translate the
522
+ // scrolling keys into xterm.js scroll API calls.
523
+ if (viewportFocused) {
524
+ let handled = true;
525
+ switch (event.key) {
526
+ case 'ArrowUp':
527
+ this._term.scrollLines(-1);
528
+ break;
529
+ case 'ArrowDown':
530
+ this._term.scrollLines(1);
531
+ break;
532
+ case 'PageUp':
533
+ this._term.scrollPages(-1);
534
+ break;
535
+ case 'PageDown':
536
+ this._term.scrollPages(1);
537
+ break;
538
+ case 'Home':
539
+ this._term.scrollToTop();
540
+ break;
541
+ case 'End':
542
+ this._term.scrollToBottom();
543
+ break;
544
+ default:
545
+ handled = false;
546
+ }
547
+ if (handled) {
548
+ event.preventDefault();
549
+ event.stopPropagation();
550
+ }
551
+ }
519
552
  }
520
553
  _scheduleEscapeReset() {
521
554
  this._clearEscapeResetTimer();
@@ -632,69 +665,96 @@ var Private;
632
665
  * Utility functions for creating a Terminal widget
633
666
  */
634
667
  (function (Private) {
635
- let supportWebGL = false;
636
668
  let Xterm_;
637
669
  let FitAddon_;
638
670
  let WeblinksAddon_;
639
671
  let SearchAddon_;
640
- let Renderer_;
672
+ let WebglAddon_;
673
+ let initPromise;
641
674
  /**
642
- * Detect if the browser supports WebGL or not.
675
+ * Detect if the browser supports WebGL2 or not, which the xterm.js
676
+ * WebGL addon requires.
643
677
  *
644
678
  * Reference: https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API/By_example/Detect_WebGL
645
679
  */
646
- function hasWebGLContext() {
680
+ function hasWebGL2Context() {
647
681
  // Create canvas element. The canvas is not added to the
648
682
  // document itself, so it is never displayed in the
649
683
  // browser window.
650
684
  const canvas = document.createElement('canvas');
651
- // Get WebGLRenderingContext from canvas element.
652
- const gl = canvas.getContext('webgl') || canvas.getContext('experimental-webgl');
685
+ // Get WebGL2RenderingContext from canvas element.
686
+ const gl = canvas.getContext('webgl2');
653
687
  // Report the result.
654
688
  try {
655
- return gl instanceof WebGLRenderingContext;
689
+ return gl instanceof WebGL2RenderingContext;
656
690
  }
657
691
  catch (error) {
658
692
  return false;
659
693
  }
660
694
  }
695
+ /**
696
+ * Load the xterm.js modules, at most once.
697
+ */
698
+ async function initialize() {
699
+ const [xterm_, fitAddon_, weblinksAddon_, searchAddon_] = await Promise.all([
700
+ import('@xterm/xterm'),
701
+ import('@xterm/addon-fit'),
702
+ import('@xterm/addon-web-links'),
703
+ import('@xterm/addon-search')
704
+ ]);
705
+ Xterm_ = xterm_.Terminal;
706
+ FitAddon_ = fitAddon_.FitAddon;
707
+ WeblinksAddon_ = weblinksAddon_.WebLinksAddon;
708
+ SearchAddon_ = searchAddon_.SearchAddon;
709
+ if (hasWebGL2Context()) {
710
+ try {
711
+ const webglAddon_ = await import('@xterm/addon-webgl');
712
+ WebglAddon_ = webglAddon_.WebglAddon;
713
+ }
714
+ catch (error) {
715
+ console.warn('Failed to load the WebGL renderer, falling back to the DOM renderer.', error);
716
+ }
717
+ }
718
+ }
719
+ /**
720
+ * Attach the WebGL renderer to an opened terminal.
721
+ *
722
+ * The built-in DOM renderer is used when the WebGL addon is unavailable
723
+ * or fails to activate.
724
+ */
661
725
  function addRenderer(term) {
662
- let renderer = new Renderer_();
663
- term.loadAddon(renderer);
664
- if (supportWebGL) {
665
- renderer.onContextLoss(event => {
726
+ if (!WebglAddon_) {
727
+ return;
728
+ }
729
+ try {
730
+ const renderer = new WebglAddon_();
731
+ term.loadAddon(renderer);
732
+ renderer.onContextLoss(() => {
666
733
  console.debug('WebGL context lost - reinitialize Xtermjs renderer.');
667
734
  renderer.dispose();
668
735
  // If the Webgl context is lost, reinitialize the addon
669
736
  addRenderer(term);
670
737
  });
671
738
  }
739
+ catch (error) {
740
+ console.warn('Failed to activate the WebGL renderer, falling back to the DOM renderer.', error);
741
+ }
672
742
  }
743
+ Private.addRenderer = addRenderer;
673
744
  /**
674
745
  * Create a xterm.js terminal asynchronously.
675
746
  */
676
747
  async function createTerminal(options) {
677
- var _a;
678
- if (!Xterm_) {
679
- supportWebGL = hasWebGLContext();
680
- const [xterm_, fitAddon_, renderer_, weblinksAddon_, searchAddon_] = await Promise.all([
681
- import('@xterm/xterm'),
682
- import('@xterm/addon-fit'),
683
- supportWebGL
684
- ? import('@xterm/addon-webgl')
685
- : import('@xterm/addon-canvas'),
686
- import('@xterm/addon-web-links'),
687
- import('@xterm/addon-search')
688
- ]);
689
- Xterm_ = xterm_.Terminal;
690
- FitAddon_ = fitAddon_.FitAddon;
691
- Renderer_ =
692
- (_a = renderer_.WebglAddon) !== null && _a !== void 0 ? _a : renderer_.CanvasAddon;
693
- WeblinksAddon_ = weblinksAddon_.WebLinksAddon;
694
- SearchAddon_ = searchAddon_.SearchAddon;
748
+ if (!initPromise) {
749
+ initPromise = initialize();
750
+ // Allow a later terminal to retry if the modules failed to load, for
751
+ // example because of a transient network failure.
752
+ initPromise.catch(() => {
753
+ initPromise = undefined;
754
+ });
695
755
  }
756
+ await initPromise;
696
757
  const term = new Xterm_(options);
697
- addRenderer(term);
698
758
  const fitAddon = new FitAddon_();
699
759
  term.loadAddon(fitAddon);
700
760
  const searchAddon = new SearchAddon_();
package/lib/widget.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"widget.js","sourceRoot":"","sources":["../src/widget.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"widget.js","sourceRoot":"","sources":["../src/widget.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jupyterlab/terminal",
3
- "version": "4.7.0-alpha.0",
3
+ "version": "4.7.0-alpha.1",
4
4
  "description": "JupyterLab - Terminal Emulator Widget",
5
5
  "homepage": "https://github.com/jupyterlab/jupyterlab",
6
6
  "bugs": {
@@ -41,24 +41,23 @@
41
41
  "watch": "tsc -b --watch"
42
42
  },
43
43
  "dependencies": {
44
- "@jupyterlab/apputils": "^4.8.0-alpha.0",
45
- "@jupyterlab/services": "^7.7.0-alpha.0",
46
- "@jupyterlab/translation": "^4.7.0-alpha.0",
47
- "@lumino/coreutils": "^2.2.2",
48
- "@lumino/domutils": "^2.0.4",
49
- "@lumino/messaging": "^2.0.4",
50
- "@lumino/signaling": "^2.1.5",
51
- "@lumino/widgets": "^2.8.0",
52
- "@xterm/addon-canvas": "~0.7.0",
53
- "@xterm/addon-fit": "~0.10.0",
54
- "@xterm/addon-search": "~0.15.0",
55
- "@xterm/addon-web-links": "~0.11.0",
56
- "@xterm/addon-webgl": "~0.18.0",
57
- "@xterm/xterm": "~5.5.0",
44
+ "@jupyterlab/apputils": "^4.8.0-alpha.1",
45
+ "@jupyterlab/services": "^7.7.0-alpha.1",
46
+ "@jupyterlab/translation": "^4.7.0-alpha.1",
47
+ "@lumino/coreutils": "^2.2.3",
48
+ "@lumino/domutils": "^2.0.5",
49
+ "@lumino/messaging": "^2.0.5",
50
+ "@lumino/signaling": "^2.1.6",
51
+ "@lumino/widgets": "^2.9.0",
52
+ "@xterm/addon-fit": "~0.11.0",
53
+ "@xterm/addon-search": "~0.16.0",
54
+ "@xterm/addon-web-links": "~0.12.0",
55
+ "@xterm/addon-webgl": "~0.19.0",
56
+ "@xterm/xterm": "~6.0.0",
58
57
  "color": "^5.0.0"
59
58
  },
60
59
  "devDependencies": {
61
- "@jupyterlab/testing": "^4.7.0-alpha.0",
60
+ "@jupyterlab/testing": "^4.7.0-alpha.1",
62
61
  "@types/jest": "^29.2.0",
63
62
  "jest": "^29.2.0",
64
63
  "jest-canvas-mock": "^2.5.2",
package/src/widget.ts CHANGED
@@ -1,6 +1,5 @@
1
1
  // Copyright (c) Jupyter Development Team.
2
2
  // Distributed under the terms of the Modified BSD License.
3
- /* eslint-disable @typescript-eslint/no-explicit-any */
4
3
 
5
4
  import type { Terminal as TerminalNS } from '@jupyterlab/services';
6
5
  import type { ITranslator, TranslationBundle } from '@jupyterlab/translation';
@@ -17,7 +16,6 @@ import type {
17
16
  ITerminalOptions,
18
17
  Terminal as Xterm
19
18
  } from '@xterm/xterm';
20
- import type { CanvasAddon } from '@xterm/addon-canvas';
21
19
  import type { FitAddon } from '@xterm/addon-fit';
22
20
  import type { SearchAddon } from '@xterm/addon-search';
23
21
  import type { WebLinksAddon } from '@xterm/addon-web-links';
@@ -377,6 +375,9 @@ export class Terminal extends Widget implements ITerminal.ITerminal {
377
375
  // Open the terminal if necessary.
378
376
  if (!this._termOpened) {
379
377
  this._term.open(this.node);
378
+ // Load the renderer addon after open so a failed activation leaves
379
+ // the DOM renderer in place.
380
+ Private.addRenderer(this._term);
380
381
  this._term.element?.classList.add(TERMINAL_BODY_CLASS);
381
382
  this._term.textarea?.setAttribute(
382
383
  'aria-describedby',
@@ -619,6 +620,38 @@ export class Terminal extends Widget implements ITerminal.ITerminal {
619
620
  if (viewportFocused && event.key === 'Tab' && xtermTextarea) {
620
621
  xtermTextarea.tabIndex = -1;
621
622
  }
623
+
624
+ // The viewport is not a native scroll container, so translate the
625
+ // scrolling keys into xterm.js scroll API calls.
626
+ if (viewportFocused) {
627
+ let handled = true;
628
+ switch (event.key) {
629
+ case 'ArrowUp':
630
+ this._term.scrollLines(-1);
631
+ break;
632
+ case 'ArrowDown':
633
+ this._term.scrollLines(1);
634
+ break;
635
+ case 'PageUp':
636
+ this._term.scrollPages(-1);
637
+ break;
638
+ case 'PageDown':
639
+ this._term.scrollPages(1);
640
+ break;
641
+ case 'Home':
642
+ this._term.scrollToTop();
643
+ break;
644
+ case 'End':
645
+ this._term.scrollToBottom();
646
+ break;
647
+ default:
648
+ handled = false;
649
+ }
650
+ if (handled) {
651
+ event.preventDefault();
652
+ event.stopPropagation();
653
+ }
654
+ }
622
655
  }
623
656
 
624
657
  private _scheduleEscapeReset(): void {
@@ -763,46 +796,89 @@ namespace Private {
763
796
  * Utility functions for creating a Terminal widget
764
797
  */
765
798
  namespace Private {
766
- let supportWebGL: boolean = false;
767
799
  let Xterm_: typeof Xterm;
768
800
  let FitAddon_: typeof FitAddon;
769
801
  let WeblinksAddon_: typeof WebLinksAddon;
770
802
  let SearchAddon_: typeof SearchAddon;
771
- let Renderer_: typeof CanvasAddon | typeof WebglAddon;
803
+ let WebglAddon_: typeof WebglAddon | undefined;
804
+ let initPromise: Promise<void> | undefined;
772
805
 
773
806
  /**
774
- * Detect if the browser supports WebGL or not.
807
+ * Detect if the browser supports WebGL2 or not, which the xterm.js
808
+ * WebGL addon requires.
775
809
  *
776
810
  * Reference: https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API/By_example/Detect_WebGL
777
811
  */
778
- function hasWebGLContext(): boolean {
812
+ function hasWebGL2Context(): boolean {
779
813
  // Create canvas element. The canvas is not added to the
780
814
  // document itself, so it is never displayed in the
781
815
  // browser window.
782
816
  const canvas = document.createElement('canvas');
783
817
 
784
- // Get WebGLRenderingContext from canvas element.
785
- const gl =
786
- canvas.getContext('webgl') || canvas.getContext('experimental-webgl');
818
+ // Get WebGL2RenderingContext from canvas element.
819
+ const gl = canvas.getContext('webgl2');
787
820
 
788
821
  // Report the result.
789
822
  try {
790
- return gl instanceof WebGLRenderingContext;
823
+ return gl instanceof WebGL2RenderingContext;
791
824
  } catch (error) {
792
825
  return false;
793
826
  }
794
827
  }
795
828
 
796
- function addRenderer(term: Xterm): void {
797
- let renderer = new Renderer_();
798
- term.loadAddon(renderer);
799
- if (supportWebGL) {
800
- (renderer as WebglAddon).onContextLoss(event => {
829
+ /**
830
+ * Load the xterm.js modules, at most once.
831
+ */
832
+ async function initialize(): Promise<void> {
833
+ const [xterm_, fitAddon_, weblinksAddon_, searchAddon_] = await Promise.all(
834
+ [
835
+ import('@xterm/xterm'),
836
+ import('@xterm/addon-fit'),
837
+ import('@xterm/addon-web-links'),
838
+ import('@xterm/addon-search')
839
+ ]
840
+ );
841
+ Xterm_ = xterm_.Terminal;
842
+ FitAddon_ = fitAddon_.FitAddon;
843
+ WeblinksAddon_ = weblinksAddon_.WebLinksAddon;
844
+ SearchAddon_ = searchAddon_.SearchAddon;
845
+ if (hasWebGL2Context()) {
846
+ try {
847
+ const webglAddon_ = await import('@xterm/addon-webgl');
848
+ WebglAddon_ = webglAddon_.WebglAddon;
849
+ } catch (error) {
850
+ console.warn(
851
+ 'Failed to load the WebGL renderer, falling back to the DOM renderer.',
852
+ error
853
+ );
854
+ }
855
+ }
856
+ }
857
+
858
+ /**
859
+ * Attach the WebGL renderer to an opened terminal.
860
+ *
861
+ * The built-in DOM renderer is used when the WebGL addon is unavailable
862
+ * or fails to activate.
863
+ */
864
+ export function addRenderer(term: Xterm): void {
865
+ if (!WebglAddon_) {
866
+ return;
867
+ }
868
+ try {
869
+ const renderer = new WebglAddon_();
870
+ term.loadAddon(renderer);
871
+ renderer.onContextLoss(() => {
801
872
  console.debug('WebGL context lost - reinitialize Xtermjs renderer.');
802
873
  renderer.dispose();
803
874
  // If the Webgl context is lost, reinitialize the addon
804
875
  addRenderer(term);
805
876
  });
877
+ } catch (error) {
878
+ console.warn(
879
+ 'Failed to activate the WebGL renderer, falling back to the DOM renderer.',
880
+ error
881
+ );
806
882
  }
807
883
  }
808
884
 
@@ -812,28 +888,17 @@ namespace Private {
812
888
  export async function createTerminal(
813
889
  options: ITerminalOptions & ITerminalInitOnlyOptions
814
890
  ): Promise<[Xterm, FitAddon, SearchAddon]> {
815
- if (!Xterm_) {
816
- supportWebGL = hasWebGLContext();
817
- const [xterm_, fitAddon_, renderer_, weblinksAddon_, searchAddon_] =
818
- await Promise.all([
819
- import('@xterm/xterm'),
820
- import('@xterm/addon-fit'),
821
- supportWebGL
822
- ? import('@xterm/addon-webgl')
823
- : import('@xterm/addon-canvas'),
824
- import('@xterm/addon-web-links'),
825
- import('@xterm/addon-search')
826
- ]);
827
- Xterm_ = xterm_.Terminal;
828
- FitAddon_ = fitAddon_.FitAddon;
829
- Renderer_ =
830
- (renderer_ as any).WebglAddon ?? (renderer_ as any).CanvasAddon;
831
- WeblinksAddon_ = weblinksAddon_.WebLinksAddon;
832
- SearchAddon_ = searchAddon_.SearchAddon;
891
+ if (!initPromise) {
892
+ initPromise = initialize();
893
+ // Allow a later terminal to retry if the modules failed to load, for
894
+ // example because of a transient network failure.
895
+ initPromise.catch(() => {
896
+ initPromise = undefined;
897
+ });
833
898
  }
899
+ await initPromise;
834
900
 
835
901
  const term = new Xterm_(options);
836
- addRenderer(term);
837
902
  const fitAddon = new FitAddon_();
838
903
  term.loadAddon(fitAddon);
839
904
  const searchAddon = new SearchAddon_();
package/style/base.css CHANGED
@@ -19,6 +19,11 @@
19
19
  outline-offset: calc(var(--jp-focus-outline-width) * -1);
20
20
  }
21
21
 
22
+ /*
23
+ * These border rules only apply to the WebGL renderer; the DOM renderer has
24
+ * no `<canvas>`. Each border color matches the corresponding terminal
25
+ * background, so without a canvas only an invisible 1px spacer is missing.
26
+ */
22
27
  [data-term-theme='inherit'] .xterm .xterm-screen canvas {
23
28
  border: var(--jp-border-width) solid var(--jp-layout-color0);
24
29
  }
@@ -30,3 +35,21 @@
30
35
  [data-term-theme='dark'] .xterm .xterm-screen canvas {
31
36
  border: var(--jp-border-width) solid #000;
32
37
  }
38
+
39
+ /*
40
+ * xterm's stylesheet paints `.xterm-viewport` black and the theme does not
41
+ * restyle it. The viewport spans the `.jp-Terminal-body` padding, so the
42
+ * black would show as a frame around the terminal; match it to the terminal
43
+ * theme instead.
44
+ */
45
+ [data-term-theme='inherit'] .xterm .xterm-viewport {
46
+ background-color: var(--jp-layout-color0);
47
+ }
48
+
49
+ [data-term-theme='light'] .xterm .xterm-viewport {
50
+ background-color: white;
51
+ }
52
+
53
+ [data-term-theme='dark'] .xterm .xterm-viewport {
54
+ background-color: black;
55
+ }