@jupyterlab/application 4.3.0-alpha.0 → 4.3.0-alpha.2

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.
@@ -1,6 +1,6 @@
1
1
  // Copyright (c) Jupyter Development Team.
2
2
  // Distributed under the terms of the Modified BSD License.
3
- import { showErrorMessage } from '@jupyterlab/apputils';
3
+ import { Dialog, showDialog } from '@jupyterlab/apputils';
4
4
  import { nullTranslator } from '@jupyterlab/translation';
5
5
  /**
6
6
  * A default connection lost handler, which brings up an error dialog.
@@ -12,6 +12,45 @@ export const ConnectionLost = async function (manager, err, translator) {
12
12
  const networkMsg = trans.__('A connection to the Jupyter server could not be established.\n' +
13
13
  'JupyterLab will continue trying to reconnect.\n' +
14
14
  'Check your network connection or Jupyter server configuration.\n');
15
- return showErrorMessage(title, { message: networkMsg });
15
+ if (!Private.displayConnectionLost) {
16
+ return;
17
+ }
18
+ if (Private.serverConnectionLost) {
19
+ // Wait for the pre-existing promise to complete
20
+ await Private.serverConnectionLost;
21
+ return;
22
+ }
23
+ const dialog = showDialog({
24
+ title: title,
25
+ body: networkMsg,
26
+ checkbox: {
27
+ label: trans.__('Do not show this message again in this session.'),
28
+ caption: trans.__('If checked, you will not see a dialog informing you about an issue with server connection in this session.')
29
+ },
30
+ buttons: [Dialog.okButton({ label: trans.__('Dismiss') })]
31
+ })
32
+ .then(result => {
33
+ if (result.isChecked) {
34
+ Private.displayConnectionLost = false;
35
+ }
36
+ return;
37
+ })
38
+ .catch(error => {
39
+ console.error('An error occurred while showing the dialog: ', error);
40
+ })
41
+ .finally(() => {
42
+ Private.serverConnectionLost = undefined;
43
+ });
44
+ Private.serverConnectionLost = dialog;
16
45
  };
46
+ /**
47
+ * The namespace for module private data.
48
+ */
49
+ var Private;
50
+ (function (Private) {
51
+ /**
52
+ * Boolean determining if connection lost dialog is displayed.
53
+ */
54
+ Private.displayConnectionLost = true;
55
+ })(Private || (Private = {}));
17
56
  //# sourceMappingURL=connectionlost.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"connectionlost.js","sourceRoot":"","sources":["../src/connectionlost.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,2DAA2D;AAE3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,OAAO,EAAe,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAGtE;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAoB,KAAK,WAClD,OAAgC,EAChC,GAAkC,EAClC,UAAwB;IAExB,UAAU,GAAG,UAAU,IAAI,cAAc,CAAC;IAC1C,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC5C,MAAM,KAAK,GAAG,KAAK,CAAC,EAAE,CAAC,yBAAyB,CAAC,CAAC;IAClD,MAAM,UAAU,GAAG,KAAK,CAAC,EAAE,CACzB,gEAAgE;QAC9D,iDAAiD;QACjD,kEAAkE,CACrE,CAAC;IAEF,OAAO,gBAAgB,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;AAC1D,CAAC,CAAC"}
1
+ {"version":3,"file":"connectionlost.js","sourceRoot":"","sources":["../src/connectionlost.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,2DAA2D;AAE3D,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,EAAe,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAGtE;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAoB,KAAK,WAClD,OAAgC,EAChC,GAAkC,EAClC,UAAwB;IAExB,UAAU,GAAG,UAAU,IAAI,cAAc,CAAC;IAC1C,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC5C,MAAM,KAAK,GAAG,KAAK,CAAC,EAAE,CAAC,yBAAyB,CAAC,CAAC;IAClD,MAAM,UAAU,GAAG,KAAK,CAAC,EAAE,CACzB,gEAAgE;QAC9D,iDAAiD;QACjD,kEAAkE,CACrE,CAAC;IAEF,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE;QAClC,OAAO;KACR;IAED,IAAI,OAAO,CAAC,oBAAoB,EAAE;QAChC,gDAAgD;QAChD,MAAM,OAAO,CAAC,oBAAoB,CAAC;QACnC,OAAO;KACR;IAED,MAAM,MAAM,GAAG,UAAU,CAAC;QACxB,KAAK,EAAE,KAAK;QACZ,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE;YACR,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,iDAAiD,CAAC;YAClE,OAAO,EAAE,KAAK,CAAC,EAAE,CACf,4GAA4G,CAC7G;SACF;QACD,OAAO,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;KAC3D,CAAC;SACC,IAAI,CAAC,MAAM,CAAC,EAAE;QACb,IAAI,MAAM,CAAC,SAAS,EAAE;YACpB,OAAO,CAAC,qBAAqB,GAAG,KAAK,CAAC;SACvC;QACD,OAAO;IACT,CAAC,CAAC;SACD,KAAK,CAAC,KAAK,CAAC,EAAE;QACb,OAAO,CAAC,KAAK,CAAC,8CAA8C,EAAE,KAAK,CAAC,CAAC;IACvE,CAAC,CAAC;SACD,OAAO,CAAC,GAAG,EAAE;QACZ,OAAO,CAAC,oBAAoB,GAAG,SAAS,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEL,OAAO,CAAC,oBAAoB,GAAG,MAAM,CAAC;AACxC,CAAC,CAAC;AAEF;;GAEG;AACH,IAAU,OAAO,CAWhB;AAXD,WAAU,OAAO;IACf;;OAEG;IACQ,6BAAqB,GAAG,IAAI,CAAC;AAO1C,CAAC,EAXS,OAAO,KAAP,OAAO,QAWhB"}
package/lib/frontend.js CHANGED
@@ -25,6 +25,8 @@ export class JupyterFrontEnd extends Application {
25
25
  constructor(options) {
26
26
  super(options);
27
27
  this._formatChanged = new Signal(this);
28
+ // Class to scope global Jupyter CSS rules
29
+ options.shell.addClass('jp-ThemedContainer');
28
30
  // render context menu/submenus with inline svg icon tweaks
29
31
  this.contextMenu = new ContextMenuSvg({
30
32
  commands: this.commands,
@@ -1 +1 @@
1
- {"version":3,"file":"frontend.js","sourceRoot":"","sources":["../src/frontend.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"frontend.js","sourceRoot":"","sources":["../src/frontend.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jupyterlab/application",
3
- "version": "4.3.0-alpha.0",
3
+ "version": "4.3.0-alpha.2",
4
4
  "description": "JupyterLab - Application",
5
5
  "homepage": "https://github.com/jupyterlab/jupyterlab",
6
6
  "bugs": {
@@ -42,15 +42,15 @@
42
42
  },
43
43
  "dependencies": {
44
44
  "@fortawesome/fontawesome-free": "^5.12.0",
45
- "@jupyterlab/apputils": "^4.4.0-alpha.0",
46
- "@jupyterlab/coreutils": "^6.3.0-alpha.0",
47
- "@jupyterlab/docregistry": "^4.3.0-alpha.0",
48
- "@jupyterlab/rendermime": "^4.3.0-alpha.0",
49
- "@jupyterlab/rendermime-interfaces": "^3.11.0-alpha.0",
50
- "@jupyterlab/services": "^7.3.0-alpha.0",
51
- "@jupyterlab/statedb": "^4.3.0-alpha.0",
52
- "@jupyterlab/translation": "^4.3.0-alpha.0",
53
- "@jupyterlab/ui-components": "^4.3.0-alpha.0",
45
+ "@jupyterlab/apputils": "^4.4.0-alpha.2",
46
+ "@jupyterlab/coreutils": "^6.3.0-alpha.2",
47
+ "@jupyterlab/docregistry": "^4.3.0-alpha.2",
48
+ "@jupyterlab/rendermime": "^4.3.0-alpha.2",
49
+ "@jupyterlab/rendermime-interfaces": "^3.11.0-alpha.2",
50
+ "@jupyterlab/services": "^7.3.0-alpha.2",
51
+ "@jupyterlab/statedb": "^4.3.0-alpha.2",
52
+ "@jupyterlab/translation": "^4.3.0-alpha.2",
53
+ "@jupyterlab/ui-components": "^4.3.0-alpha.2",
54
54
  "@lumino/algorithm": "^2.0.1",
55
55
  "@lumino/application": "^2.3.1",
56
56
  "@lumino/commands": "^2.3.0",
@@ -63,7 +63,7 @@
63
63
  "@lumino/widgets": "^2.3.2"
64
64
  },
65
65
  "devDependencies": {
66
- "@jupyterlab/testing": "^4.3.0-alpha.0",
66
+ "@jupyterlab/testing": "^4.3.0-alpha.2",
67
67
  "@types/jest": "^29.2.0",
68
68
  "jest": "^29.2.0",
69
69
  "rimraf": "~5.0.5",
@@ -1,7 +1,7 @@
1
1
  // Copyright (c) Jupyter Development Team.
2
2
  // Distributed under the terms of the Modified BSD License.
3
3
 
4
- import { showErrorMessage } from '@jupyterlab/apputils';
4
+ import { Dialog, showDialog } from '@jupyterlab/apputils';
5
5
  import { ServerConnection, ServiceManager } from '@jupyterlab/services';
6
6
  import { ITranslator, nullTranslator } from '@jupyterlab/translation';
7
7
  import { IConnectionLost } from './tokens';
@@ -23,5 +23,55 @@ export const ConnectionLost: IConnectionLost = async function (
23
23
  'Check your network connection or Jupyter server configuration.\n'
24
24
  );
25
25
 
26
- return showErrorMessage(title, { message: networkMsg });
26
+ if (!Private.displayConnectionLost) {
27
+ return;
28
+ }
29
+
30
+ if (Private.serverConnectionLost) {
31
+ // Wait for the pre-existing promise to complete
32
+ await Private.serverConnectionLost;
33
+ return;
34
+ }
35
+
36
+ const dialog = showDialog({
37
+ title: title,
38
+ body: networkMsg,
39
+ checkbox: {
40
+ label: trans.__('Do not show this message again in this session.'),
41
+ caption: trans.__(
42
+ 'If checked, you will not see a dialog informing you about an issue with server connection in this session.'
43
+ )
44
+ },
45
+ buttons: [Dialog.okButton({ label: trans.__('Dismiss') })]
46
+ })
47
+ .then(result => {
48
+ if (result.isChecked) {
49
+ Private.displayConnectionLost = false;
50
+ }
51
+ return;
52
+ })
53
+ .catch(error => {
54
+ console.error('An error occurred while showing the dialog: ', error);
55
+ })
56
+ .finally(() => {
57
+ Private.serverConnectionLost = undefined;
58
+ });
59
+
60
+ Private.serverConnectionLost = dialog;
27
61
  };
62
+
63
+ /**
64
+ * The namespace for module private data.
65
+ */
66
+ namespace Private {
67
+ /**
68
+ * Boolean determining if connection lost dialog is displayed.
69
+ */
70
+ export let displayConnectionLost = true;
71
+ /**
72
+ * The resulting connection lost dialog promise.
73
+ */
74
+ export let serverConnectionLost:
75
+ | Promise<void | Dialog.IResult<string>>
76
+ | undefined;
77
+ }
package/src/frontend.ts CHANGED
@@ -46,6 +46,9 @@ export abstract class JupyterFrontEnd<
46
46
  constructor(options: JupyterFrontEnd.IOptions<T>) {
47
47
  super(options);
48
48
 
49
+ // Class to scope global Jupyter CSS rules
50
+ options.shell.addClass('jp-ThemedContainer');
51
+
49
52
  // render context menu/submenus with inline svg icon tweaks
50
53
  this.contextMenu = new ContextMenuSvg({
51
54
  commands: this.commands,
package/style/buttons.css CHANGED
@@ -17,11 +17,11 @@
17
17
  | Distributed under the terms of the Modified BSD License.
18
18
  |----------------------------------------------------------------------------*/
19
19
 
20
- button {
20
+ .jp-ThemedContainer button {
21
21
  border-radius: var(--jp-border-radius);
22
22
  }
23
23
 
24
- button:focus-visible {
24
+ .jp-ThemedContainer button:focus-visible {
25
25
  outline: 1px solid var(--jp-accept-color-active, var(--jp-brand-color1));
26
26
  outline-offset: -1px;
27
27
  }
package/style/core.css CHANGED
@@ -11,7 +11,7 @@
11
11
  display: none !important;
12
12
  }
13
13
 
14
- body {
14
+ .jp-ThemedContainer {
15
15
  font-family: var(--jp-ui-font-family);
16
16
  background: var(--jp-layout-color3);
17
17
  margin: 0;
package/style/menus.css CHANGED
@@ -26,7 +26,7 @@
26
26
  overflow-x: auto;
27
27
  }
28
28
 
29
- .lm-MenuBar-menu {
29
+ .lm-MenuBar-menu.jp-ThemedContainer {
30
30
  top: calc(-2 * var(--jp-border-width));
31
31
  }
32
32
 
@@ -53,8 +53,9 @@
53
53
  }
54
54
 
55
55
  .jp-SideBar .lm-TabBar-tab:focus-visible {
56
- outline: 4px solid var(--jp-accept-color-active, var(--jp-brand-color1));
57
- outline-offset: -1px;
56
+ /* --accent-fill-focus is computed by the jp toolkit to ensure accessibility */
57
+ outline: 2px solid var(--accent-fill-focus, var(--jp-brand-color1));
58
+ outline-offset: -3px;
58
59
  }
59
60
 
60
61
  .jp-SideBar .lm-TabBar-tab.lm-mod-current::after {
package/style/tabs.css CHANGED
@@ -60,6 +60,22 @@
60
60
  position: relative;
61
61
  }
62
62
 
63
+ .lm-DockPanel-tabBar .lm-TabBar-tab:focus-visible,
64
+ .lm-DockPanel-tabBar .lm-TabBar-addButton:focus-visible,
65
+ .lm-TabPanel-tabBar .lm-TabBar-tab:focus-visible {
66
+ border: 1px solid var(--accent-fill-focus);
67
+ border-bottom: none;
68
+
69
+ /* Thicken the border by 1px within the element border */
70
+ box-shadow: 0 0 0 1px inset var(--accent-fill-focus);
71
+ outline: none;
72
+ }
73
+
74
+ .lm-DockPanel-tabBar .lm-TabBar-tab:not(.lm-mod-current):focus-visible::after,
75
+ .lm-TabPanel-tabBar .lm-TabBar-tab:not(.lm-mod-current):focus-visible::after {
76
+ border-bottom-color: var(--accent-fill-focus);
77
+ }
78
+
63
79
  .lm-DockPanel-tabBar .lm-TabBar-tab:hover:not(.lm-mod-current),
64
80
  .lm-TabPanel-tabBar .lm-TabBar-tab:hover:not(.lm-mod-current) {
65
81
  background: var(--jp-layout-color1);