@datalayer/jupyter-react 2.0.7 → 2.0.8
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/components/jupyterlab/JupyterLabApp.js +3 -0
- package/lib/components/jupyterlab/JupyterLabApp.js.map +1 -1
- package/lib/components/jupyterlab/JupyterLabAppAdapter.d.ts +3 -0
- package/lib/components/jupyterlab/JupyterLabAppAdapter.js +284 -19
- package/lib/components/jupyterlab/JupyterLabAppAdapter.js.map +1 -1
- package/lib/components/jupyterlab/JupyterLabAppCss.js +5 -2
- package/lib/components/jupyterlab/JupyterLabAppCss.js.map +1 -1
- package/lib/components/kernel/KernelIndicator.d.ts +9 -25
- package/lib/components/kernel/KernelIndicator.js +253 -89
- package/lib/components/kernel/KernelIndicator.js.map +1 -1
- package/lib/components/kernel/KernelIndicatorState.d.ts +32 -0
- package/lib/components/kernel/KernelIndicatorState.js +156 -0
- package/lib/components/kernel/KernelIndicatorState.js.map +1 -0
- package/lib/components/kernel/index.d.ts +1 -0
- package/lib/components/kernel/index.js +1 -0
- package/lib/components/kernel/index.js.map +1 -1
- package/lib/components/notebook/NotebookBase.js +9 -5
- package/lib/components/notebook/NotebookBase.js.map +1 -1
- package/lib/components/notebook/marked/marked.js +79 -2
- package/lib/components/notebook/marked/marked.js.map +1 -1
- package/lib/components/terminal/Terminal.js +7 -0
- package/lib/components/terminal/Terminal.js.map +1 -1
- package/lib/examples/Examples.js +2 -0
- package/lib/examples/Examples.js.map +1 -1
- package/lib/examples/JupyterLabApp.js +15 -1
- package/lib/examples/JupyterLabApp.js.map +1 -1
- package/lib/examples/NotebookPrimerThemeExample.d.ts +1 -0
- package/lib/examples/NotebookPrimerThemeExample.js +42 -0
- package/lib/examples/NotebookPrimerThemeExample.js.map +1 -0
- package/lib/examples/notebooks/NotebookExample1.ipynb.json +9 -0
- package/lib/jupyter/JupyterConfig.js +0 -2
- package/lib/jupyter/JupyterConfig.js.map +1 -1
- package/lib/jupyter/kernel/KernelState.d.ts +1 -1
- package/lib/shims/json5.d.ts +7 -0
- package/lib/shims/json5.js +42 -0
- package/lib/shims/json5.js.map +1 -0
- package/lib/shims/url.d.ts +18 -0
- package/lib/shims/url.js +44 -0
- package/lib/shims/url.js.map +1 -0
- package/lib/theme/JupyterLabCss.d.ts +1 -0
- package/lib/theme/JupyterLabCss.js +15 -11
- package/lib/theme/JupyterLabCss.js.map +1 -1
- package/lib/theme/JupyterLabCssImports.d.ts +9 -8
- package/lib/theme/JupyterLabCssImports.js +9 -8
- package/lib/theme/JupyterLabCssImports.js.map +1 -1
- package/lib/theme/JupyterReactTheme.js +51 -20
- package/lib/theme/JupyterReactTheme.js.map +1 -1
- package/lib/theme/index.d.ts +1 -0
- package/lib/theme/index.js +1 -0
- package/lib/theme/index.js.map +1 -1
- package/lib/theme/usePrimerThemeBridge.d.ts +17 -0
- package/lib/theme/usePrimerThemeBridge.js +34 -0
- package/lib/theme/usePrimerThemeBridge.js.map +1 -0
- package/package.json +4 -2
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2021-2023 Datalayer, Inc.
|
|
3
|
+
*
|
|
4
|
+
* MIT License
|
|
5
|
+
*/
|
|
6
|
+
import { parse as parseJsonc, printParseErrorCode } from 'jsonc-parser';
|
|
7
|
+
function offsetToLineColumn(source, offset) {
|
|
8
|
+
const safeOffset = Math.max(0, Math.min(offset, source.length));
|
|
9
|
+
const before = source.slice(0, safeOffset);
|
|
10
|
+
const lines = before.split(/\r\n|\r|\n/);
|
|
11
|
+
return {
|
|
12
|
+
line: lines.length,
|
|
13
|
+
column: (lines[lines.length - 1] || '').length + 1,
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
export function parse(source) {
|
|
17
|
+
const errors = [];
|
|
18
|
+
const parsed = parseJsonc(source, errors, {
|
|
19
|
+
allowTrailingComma: true,
|
|
20
|
+
disallowComments: false,
|
|
21
|
+
});
|
|
22
|
+
if (errors.length > 0) {
|
|
23
|
+
const firstError = errors[0];
|
|
24
|
+
const description = printParseErrorCode(firstError.error);
|
|
25
|
+
const { line, column } = offsetToLineColumn(source, firstError.offset);
|
|
26
|
+
const error = new Error(description);
|
|
27
|
+
error.description = description;
|
|
28
|
+
error.lineNumber = line;
|
|
29
|
+
error.column = column;
|
|
30
|
+
throw error;
|
|
31
|
+
}
|
|
32
|
+
return parsed;
|
|
33
|
+
}
|
|
34
|
+
export function stringify(value, replacer, space) {
|
|
35
|
+
return JSON.stringify(value, replacer, space);
|
|
36
|
+
}
|
|
37
|
+
const json5 = {
|
|
38
|
+
parse,
|
|
39
|
+
stringify,
|
|
40
|
+
};
|
|
41
|
+
export default json5;
|
|
42
|
+
//# sourceMappingURL=json5.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json5.js","sourceRoot":"","sources":["../../src/shims/json5.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,IAAI,UAAU,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAExE,SAAS,kBAAkB,CACzB,MAAc,EACd,MAAc;IAEd,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IAChE,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;IAC3C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IACzC,OAAO;QACL,IAAI,EAAE,KAAK,CAAC,MAAM;QAClB,MAAM,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC;KACnD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,MAAc;IAClC,MAAM,MAAM,GAA6D,EAAE,CAAC;IAC5E,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE;QACxC,kBAAkB,EAAE,IAAI;QACxB,gBAAgB,EAAE,KAAK;KACxB,CAAC,CAAC;IAEH,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QAC7B,MAAM,WAAW,GAAG,mBAAmB,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAC1D,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,kBAAkB,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;QACvE,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,WAAW,CAIlC,CAAC;QACF,KAAK,CAAC,WAAW,GAAG,WAAW,CAAC;QAChC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC;QACxB,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;QACtB,MAAM,KAAK,CAAC;IACd,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,SAAS,CACvB,KAAc,EACd,QAAc,EACd,KAAuB;IAEvB,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,KAAK,GAAG;IACZ,KAAK;IACL,SAAS;CACV,CAAC;AAEF,eAAe,KAAK,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import * as legacyUrl from 'url/';
|
|
2
|
+
export declare const parse: typeof legacyUrl.parse;
|
|
3
|
+
export declare const format: typeof legacyUrl.format;
|
|
4
|
+
export declare const resolve: typeof legacyUrl.resolve;
|
|
5
|
+
export declare const resolveObject: any;
|
|
6
|
+
export declare const Url: any;
|
|
7
|
+
export declare const pathToFileURL: (inputPath: string) => URL;
|
|
8
|
+
export declare const fileURLToPath: (inputUrl: string | URL) => string;
|
|
9
|
+
declare const urlShim: {
|
|
10
|
+
parse: typeof legacyUrl.parse;
|
|
11
|
+
format: typeof legacyUrl.format;
|
|
12
|
+
resolve: typeof legacyUrl.resolve;
|
|
13
|
+
resolveObject: any;
|
|
14
|
+
Url: any;
|
|
15
|
+
pathToFileURL: (inputPath: string) => URL;
|
|
16
|
+
fileURLToPath: (inputUrl: string | URL) => string;
|
|
17
|
+
};
|
|
18
|
+
export default urlShim;
|
package/lib/shims/url.js
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2021-2023 Datalayer, Inc.
|
|
3
|
+
*
|
|
4
|
+
* MIT License
|
|
5
|
+
*/
|
|
6
|
+
/*
|
|
7
|
+
* Browser shim for Node's `url` module APIs used by transitive deps
|
|
8
|
+
* (notably postcss map generator in Vite dev mode).
|
|
9
|
+
*
|
|
10
|
+
* We proxy legacy `url` APIs from the browser package (`url/`) so libraries
|
|
11
|
+
* expecting `url.parse` keep working, and add modern helpers used by postcss.
|
|
12
|
+
*/
|
|
13
|
+
import * as legacyUrl from 'url/';
|
|
14
|
+
const legacyUrlCompat = legacyUrl;
|
|
15
|
+
export const parse = legacyUrl.parse;
|
|
16
|
+
export const format = legacyUrl.format;
|
|
17
|
+
export const resolve = legacyUrl.resolve;
|
|
18
|
+
export const resolveObject = legacyUrlCompat.resolveObject;
|
|
19
|
+
export const Url = legacyUrlCompat.Url;
|
|
20
|
+
export const pathToFileURL = (inputPath) => {
|
|
21
|
+
const normalized = String(inputPath).replace(/\\/g, '/');
|
|
22
|
+
const withLeadingSlash = normalized.startsWith('/')
|
|
23
|
+
? normalized
|
|
24
|
+
: `/${normalized}`;
|
|
25
|
+
return new URL(encodeURI(withLeadingSlash), 'file://');
|
|
26
|
+
};
|
|
27
|
+
export const fileURLToPath = (inputUrl) => {
|
|
28
|
+
const url = typeof inputUrl === 'string' ? new URL(inputUrl) : inputUrl;
|
|
29
|
+
if (url.protocol !== 'file:') {
|
|
30
|
+
throw new TypeError(`Expected file URL, received: ${url.protocol}`);
|
|
31
|
+
}
|
|
32
|
+
return decodeURI(url.pathname);
|
|
33
|
+
};
|
|
34
|
+
const urlShim = {
|
|
35
|
+
parse,
|
|
36
|
+
format,
|
|
37
|
+
resolve,
|
|
38
|
+
resolveObject,
|
|
39
|
+
Url,
|
|
40
|
+
pathToFileURL,
|
|
41
|
+
fileURLToPath,
|
|
42
|
+
};
|
|
43
|
+
export default urlShim;
|
|
44
|
+
//# sourceMappingURL=url.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"url.js","sourceRoot":"","sources":["../../src/shims/url.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;;GAMG;AAEH,OAAO,KAAK,SAAS,MAAM,MAAM,CAAC;AAElC,MAAM,eAAe,GAAG,SAAgB,CAAC;AAEzC,MAAM,CAAC,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;AACrC,MAAM,CAAC,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;AACvC,MAAM,CAAC,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC;AACzC,MAAM,CAAC,MAAM,aAAa,GAAG,eAAe,CAAC,aAAa,CAAC;AAC3D,MAAM,CAAC,MAAM,GAAG,GAAG,eAAe,CAAC,GAAG,CAAC;AAEvC,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,SAAiB,EAAO,EAAE;IACtD,MAAM,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACzD,MAAM,gBAAgB,GAAG,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC;QACjD,CAAC,CAAC,UAAU;QACZ,CAAC,CAAC,IAAI,UAAU,EAAE,CAAC;IACrB,OAAO,IAAI,GAAG,CAAC,SAAS,CAAC,gBAAgB,CAAC,EAAE,SAAS,CAAC,CAAC;AACzD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,QAAsB,EAAU,EAAE;IAC9D,MAAM,GAAG,GAAG,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;IACxE,IAAI,GAAG,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QAC7B,MAAM,IAAI,SAAS,CAAC,gCAAgC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;IACtE,CAAC;IACD,OAAO,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AACjC,CAAC,CAAC;AAEF,MAAM,OAAO,GAAG;IACd,KAAK;IACL,MAAM;IACN,OAAO;IACP,aAAa;IACb,GAAG;IACH,aAAa;IACb,aAAa;CACd,CAAC;AAEF,eAAe,OAAO,CAAC"}
|
|
@@ -22,7 +22,7 @@ let isLoaded = false;
|
|
|
22
22
|
* Components loading the JupyterLab CSS stylesheets.
|
|
23
23
|
*/
|
|
24
24
|
export function JupyterLabCss(props) {
|
|
25
|
-
const { colormode = 'light' } = props;
|
|
25
|
+
const { colormode = 'light', manageThemeLinks = true } = props;
|
|
26
26
|
useEffect(() => {
|
|
27
27
|
if (isLoaded) {
|
|
28
28
|
// no-op
|
|
@@ -30,18 +30,19 @@ export function JupyterLabCss(props) {
|
|
|
30
30
|
}
|
|
31
31
|
isLoaded = true;
|
|
32
32
|
import('@jupyterlab/apputils/style/index.js');
|
|
33
|
-
import('@jupyterlab/rendermime/style/index.js');
|
|
34
|
-
import('@jupyterlab/codeeditor/style/index.js');
|
|
35
33
|
import('@jupyterlab/cells/style/index.js');
|
|
36
|
-
import('@jupyterlab/documentsearch/style/index.js');
|
|
37
|
-
import('@jupyterlab/outputarea/style/index.js');
|
|
38
|
-
import('@jupyterlab/console/style/index.js');
|
|
39
|
-
import('@jupyterlab/completer/style/index.js');
|
|
40
|
-
import('@jupyterlab/codemirror/style/index.js');
|
|
41
|
-
import('@jupyterlab/codeeditor/style/index.js');
|
|
42
34
|
import('@jupyterlab/cells/style/index.js');
|
|
43
|
-
import('@jupyterlab/
|
|
35
|
+
import('@jupyterlab/codeeditor/style/index.js');
|
|
36
|
+
import('@jupyterlab/codeeditor/style/index.js');
|
|
37
|
+
import('@jupyterlab/codemirror/style/index.js');
|
|
38
|
+
import('@jupyterlab/completer/style/index.js');
|
|
39
|
+
import('@jupyterlab/console/style/index.js');
|
|
40
|
+
import('@jupyterlab/documentsearch/style/index.js');
|
|
44
41
|
import('@jupyterlab/filebrowser/style/index.js');
|
|
42
|
+
import('@jupyterlab/mathjax-extension/style/index.js');
|
|
43
|
+
import('@jupyterlab/notebook/style/index.js');
|
|
44
|
+
import('@jupyterlab/outputarea/style/index.js');
|
|
45
|
+
import('@jupyterlab/rendermime/style/index.js');
|
|
45
46
|
import('@jupyterlab/terminal/style/index.js');
|
|
46
47
|
import('@jupyterlab/ui-components/style/index.js');
|
|
47
48
|
// ipywidgets.
|
|
@@ -49,6 +50,9 @@ export function JupyterLabCss(props) {
|
|
|
49
50
|
import('@jupyter-widgets/controls/css/widgets-base.css');
|
|
50
51
|
}, [colormode]);
|
|
51
52
|
useEffect(() => {
|
|
53
|
+
if (!manageThemeLinks) {
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
52
56
|
let theme;
|
|
53
57
|
switch (colormode) {
|
|
54
58
|
case 'light': {
|
|
@@ -117,7 +121,7 @@ ${css}
|
|
|
117
121
|
return () => {
|
|
118
122
|
observer.disconnect();
|
|
119
123
|
};
|
|
120
|
-
}, [colormode]);
|
|
124
|
+
}, [colormode, manageThemeLinks]);
|
|
121
125
|
return (_jsx("div", { id: "dla-JupyterLabCss-id", children: _jsx(GlobalStyle, {}) }));
|
|
122
126
|
}
|
|
123
127
|
export default JupyterLabCss;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JupyterLabCss.js","sourceRoot":"","sources":["../../src/theme/JupyterLabCss.tsx"],"names":[],"mappings":";AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAGtD,MAAM,qBAAqB,GAAG,uBAAuB,CAAC;AAEtD,MAAM,WAAW,GAAG,iBAAiB,CAAK;;;;;;CAMzC,CAAC;
|
|
1
|
+
{"version":3,"file":"JupyterLabCss.js","sourceRoot":"","sources":["../../src/theme/JupyterLabCss.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
import '@lumino/widgets/style/index.js';
|
|
2
2
|
import '@lumino/dragdrop/style/index.js';
|
|
3
3
|
import '@jupyterlab/apputils/style/index.js';
|
|
4
|
-
import '@jupyterlab/
|
|
4
|
+
import '@jupyterlab/cells/style/index.js';
|
|
5
5
|
import '@jupyterlab/codeeditor/style/index.js';
|
|
6
|
-
import '@jupyterlab/documentsearch/style/index.js';
|
|
7
|
-
import '@jupyterlab/outputarea/style/index.js';
|
|
8
|
-
import '@jupyterlab/console/style/index.js';
|
|
9
|
-
import '@jupyterlab/completer/style/index.js';
|
|
10
|
-
import '@jupyterlab/codemirror/style/index.js';
|
|
11
6
|
import '@jupyterlab/codeeditor/style/index.js';
|
|
12
|
-
import '@jupyterlab/
|
|
13
|
-
import '@jupyterlab/
|
|
7
|
+
import '@jupyterlab/codemirror/style/index.js';
|
|
8
|
+
import '@jupyterlab/completer/style/index.js';
|
|
9
|
+
import '@jupyterlab/console/style/index.js';
|
|
10
|
+
import '@jupyterlab/documentsearch/style/index.js';
|
|
14
11
|
import '@jupyterlab/filebrowser/style/index.js';
|
|
12
|
+
import '@jupyterlab/mathjax-extension/style/index.js';
|
|
13
|
+
import '@jupyterlab/notebook/style/index.js';
|
|
14
|
+
import '@jupyterlab/outputarea/style/index.js';
|
|
15
|
+
import '@jupyterlab/rendermime/style/index.js';
|
|
15
16
|
import '@jupyterlab/terminal/style/index.js';
|
|
16
17
|
import '@jupyterlab/ui-components/style/index.js';
|
|
17
18
|
import '@jupyter-widgets/base/css/index.css';
|
|
@@ -6,17 +6,18 @@
|
|
|
6
6
|
import '@lumino/widgets/style/index.js';
|
|
7
7
|
import '@lumino/dragdrop/style/index.js';
|
|
8
8
|
import '@jupyterlab/apputils/style/index.js';
|
|
9
|
-
import '@jupyterlab/
|
|
9
|
+
import '@jupyterlab/cells/style/index.js';
|
|
10
10
|
import '@jupyterlab/codeeditor/style/index.js';
|
|
11
|
-
import '@jupyterlab/documentsearch/style/index.js';
|
|
12
|
-
import '@jupyterlab/outputarea/style/index.js';
|
|
13
|
-
import '@jupyterlab/console/style/index.js';
|
|
14
|
-
import '@jupyterlab/completer/style/index.js';
|
|
15
|
-
import '@jupyterlab/codemirror/style/index.js';
|
|
16
11
|
import '@jupyterlab/codeeditor/style/index.js';
|
|
17
|
-
import '@jupyterlab/
|
|
18
|
-
import '@jupyterlab/
|
|
12
|
+
import '@jupyterlab/codemirror/style/index.js';
|
|
13
|
+
import '@jupyterlab/completer/style/index.js';
|
|
14
|
+
import '@jupyterlab/console/style/index.js';
|
|
15
|
+
import '@jupyterlab/documentsearch/style/index.js';
|
|
19
16
|
import '@jupyterlab/filebrowser/style/index.js';
|
|
17
|
+
import '@jupyterlab/mathjax-extension/style/index.js';
|
|
18
|
+
import '@jupyterlab/notebook/style/index.js';
|
|
19
|
+
import '@jupyterlab/outputarea/style/index.js';
|
|
20
|
+
import '@jupyterlab/rendermime/style/index.js';
|
|
20
21
|
import '@jupyterlab/terminal/style/index.js';
|
|
21
22
|
import '@jupyterlab/ui-components/style/index.js';
|
|
22
23
|
// import '@jupyterlab/theme-light-extension/style/theme.css';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JupyterLabCssImports.js","sourceRoot":"","sources":["../../src/theme/JupyterLabCssImports.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,gCAAgC,CAAC;AACxC,OAAO,iCAAiC,CAAC;AAEzC,OAAO,qCAAqC,CAAC;AAC7C,OAAO,
|
|
1
|
+
{"version":3,"file":"JupyterLabCssImports.js","sourceRoot":"","sources":["../../src/theme/JupyterLabCssImports.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,gCAAgC,CAAC;AACxC,OAAO,iCAAiC,CAAC;AAEzC,OAAO,qCAAqC,CAAC;AAC7C,OAAO,kCAAkC,CAAC;AAC1C,OAAO,uCAAuC,CAAC;AAC/C,OAAO,uCAAuC,CAAC;AAC/C,OAAO,uCAAuC,CAAC;AAC/C,OAAO,sCAAsC,CAAC;AAC9C,OAAO,oCAAoC,CAAC;AAC5C,OAAO,2CAA2C,CAAC;AACnD,OAAO,wCAAwC,CAAC;AAChD,OAAO,8CAA8C,CAAC;AACtD,OAAO,qCAAqC,CAAC;AAC7C,OAAO,uCAAuC,CAAC;AAC/C,OAAO,uCAAuC,CAAC;AAC/C,OAAO,qCAAqC,CAAC;AAC7C,OAAO,0CAA0C,CAAC;AAElD,8DAA8D;AAC9D,kEAAkE;AAElE,OAAO,qCAAqC,CAAC;AAC7C,OAAO,gDAAgD,CAAC"}
|
|
@@ -4,7 +4,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
4
4
|
*
|
|
5
5
|
* MIT License
|
|
6
6
|
*/
|
|
7
|
-
import { createContext, useContext, useEffect, useRef, useState, } from 'react';
|
|
7
|
+
import { createContext, useContext, useEffect, useLayoutEffect, useRef, useState, } from 'react';
|
|
8
8
|
import { BaseStyles, ThemeProvider } from '@primer/react';
|
|
9
9
|
import { setupPrimerPortals } from '@datalayer/primer-addons';
|
|
10
10
|
import { JupyterLabCss, jupyterLabTheme } from '../theme/index.js';
|
|
@@ -73,22 +73,20 @@ export function JupyterReactTheme(props) {
|
|
|
73
73
|
}
|
|
74
74
|
}, [colormodeFromStore, colormode, colormodeProps, hasColormodeProp]);
|
|
75
75
|
// Sync prop → store (so children reading the store directly also get the right value)
|
|
76
|
-
// Store the resolved value, not 'auto'.
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
76
|
+
// Store the resolved value, not 'auto'. Use useLayoutEffect so the store is
|
|
77
|
+
// updated before the first paint, avoiding an initial 'light' flash without
|
|
78
|
+
// performing a setState during render (which causes a React warning when an
|
|
79
|
+
// ancestor subscribes to the same store).
|
|
80
|
+
useLayoutEffect(() => {
|
|
81
|
+
if (!hasColormodeProp) {
|
|
82
|
+
return;
|
|
82
83
|
}
|
|
83
|
-
}, [colormodeFromStore, colormodeProps, hasColormodeProp, setColormodeStore]);
|
|
84
|
-
// Also sync prop to store eagerly on mount to avoid the initial 'light' frame
|
|
85
|
-
if (hasColormodeProp && !syncedRef.current) {
|
|
86
84
|
const resolved = resolveColormode(colormodeProps);
|
|
87
85
|
if (colormodeFromStore !== resolved) {
|
|
88
86
|
setColormodeStore(resolved);
|
|
89
|
-
syncedRef.current = true;
|
|
90
87
|
}
|
|
91
|
-
|
|
88
|
+
syncedRef.current = true;
|
|
89
|
+
}, [colormodeFromStore, colormodeProps, hasColormodeProp, setColormodeStore]);
|
|
92
90
|
// Sync backgroundColor prop → store so notebook extensions (sidebars, etc.)
|
|
93
91
|
// can read it from the store and render with the same background.
|
|
94
92
|
useEffect(() => {
|
|
@@ -100,6 +98,9 @@ export function JupyterReactTheme(props) {
|
|
|
100
98
|
if (hasColormodeProp && colormodeProps === 'auto') {
|
|
101
99
|
const resolved = matches ? 'dark' : 'light';
|
|
102
100
|
setColormode(resolved);
|
|
101
|
+
if (colormodeFromStore !== resolved) {
|
|
102
|
+
setColormodeStore(resolved);
|
|
103
|
+
}
|
|
103
104
|
setupPrimerPortals(resolved);
|
|
104
105
|
}
|
|
105
106
|
}
|
|
@@ -111,16 +112,34 @@ export function JupyterReactTheme(props) {
|
|
|
111
112
|
? 'dark'
|
|
112
113
|
: 'light';
|
|
113
114
|
setColormode(colormode);
|
|
115
|
+
if (colormodeFromStore !== colormode) {
|
|
116
|
+
setColormodeStore(colormode);
|
|
117
|
+
}
|
|
114
118
|
setupPrimerPortals(colormode);
|
|
115
119
|
}
|
|
116
|
-
if (
|
|
120
|
+
if (jupyterLabAdapter) {
|
|
117
121
|
const themeManager = jupyterLabAdapter?.service('@jupyterlab/apputils-extension:themes');
|
|
118
122
|
if (themeManager) {
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
123
|
+
// When an explicit colormode prop is provided, drive the JupyterLab
|
|
124
|
+
// theme manager to match — otherwise the server-loaded theme link
|
|
125
|
+
// stays and `--jp-*` CSS vars do not switch.
|
|
126
|
+
if (hasColormodeProp) {
|
|
127
|
+
const resolved = resolveColormode(colormodeProps);
|
|
128
|
+
const desiredTheme = resolved === 'dark' ? 'JupyterLab Dark' : 'JupyterLab Light';
|
|
129
|
+
if (themeManager.theme !== desiredTheme) {
|
|
130
|
+
themeManager.setTheme(desiredTheme).catch(() => {
|
|
131
|
+
/* swallow — best effort */
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
setupPrimerPortals(resolved);
|
|
135
|
+
}
|
|
136
|
+
else {
|
|
137
|
+
updateColorMode(themeManager);
|
|
138
|
+
themeManager.themeChanged.connect(updateColorMode);
|
|
139
|
+
return () => {
|
|
140
|
+
themeManager.themeChanged.disconnect(updateColorMode);
|
|
141
|
+
};
|
|
142
|
+
}
|
|
124
143
|
}
|
|
125
144
|
}
|
|
126
145
|
else {
|
|
@@ -136,8 +155,20 @@ export function JupyterReactTheme(props) {
|
|
|
136
155
|
.removeEventListener('change', colorSchemeFromMedia);
|
|
137
156
|
};
|
|
138
157
|
}
|
|
139
|
-
}, [
|
|
140
|
-
|
|
158
|
+
}, [
|
|
159
|
+
inJupyterLab,
|
|
160
|
+
jupyterLabAdapter,
|
|
161
|
+
hasColormodeProp,
|
|
162
|
+
colormodeProps,
|
|
163
|
+
colormodeFromStore,
|
|
164
|
+
setColormodeStore,
|
|
165
|
+
]);
|
|
166
|
+
return (_jsxs(JupyterReactColormodeContext.Provider, { value: colormode, children: [loadJupyterLabCss && (_jsx(JupyterLabCss, { colormode: colormode,
|
|
167
|
+
// When an explicit colormode prop is provided, force theme-link
|
|
168
|
+
// management even if a JupyterLabAdapter is present — otherwise the
|
|
169
|
+
// server-loaded JupyterLab theme variables would override our
|
|
170
|
+
// requested colormode.
|
|
171
|
+
manageThemeLinks: hasColormodeProp || !jupyterLabAdapter })), _jsx(ThemeProvider, { colorMode: colormode, theme: theme, dayScheme: "light", nightScheme: "dark", children: _jsxs(BaseStyles, { style: {
|
|
141
172
|
backgroundColor: backgroundColor ?? 'var(--bgColor-default)',
|
|
142
173
|
color: 'var(--fgColor-default)',
|
|
143
174
|
fontSize: 'var(--text-body-size-medium)',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JupyterReactTheme.js","sourceRoot":"","sources":["../../src/theme/JupyterReactTheme.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"JupyterReactTheme.js","sourceRoot":"","sources":["../../src/theme/JupyterReactTheme.tsx"],"names":[],"mappings":"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"}
|
package/lib/theme/index.d.ts
CHANGED
package/lib/theme/index.js
CHANGED
|
@@ -8,6 +8,7 @@ export * from './JupyterLabColormode.js';
|
|
|
8
8
|
export * from './JupyterLabCss.js';
|
|
9
9
|
export * from './JupyterPalette.js';
|
|
10
10
|
export * from './JupyterReactTheme.js';
|
|
11
|
+
export * from './usePrimerThemeBridge.js';
|
|
11
12
|
// Do NOT export JupyterLabCssImports here...
|
|
12
13
|
// !!! Leave this export commented otherwise webpack may break in consumers
|
|
13
14
|
// export * from './JupyterLabCssImports.js';
|
package/lib/theme/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/theme/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,UAAU,CAAC;AAEzB,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/theme/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,UAAU,CAAC;AAEzB,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AAEvC,6CAA6C;AAC7C,2EAA2E;AAC3E,0CAA0C"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { type ThemeState } from '@datalayer/primer-addons';
|
|
2
|
+
export interface PrimerThemeStoreLike {
|
|
3
|
+
(): ThemeState;
|
|
4
|
+
getState: () => ThemeState;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Shared bridge between primer-addons theme store and jupyter-react/lexical.
|
|
8
|
+
*/
|
|
9
|
+
export declare function usePrimerThemeBridge(useStore: PrimerThemeStoreLike): {
|
|
10
|
+
colorMode: import("@datalayer/primer-addons").ColorMode;
|
|
11
|
+
themeVariant: import("@datalayer/primer-addons").ThemeVariant;
|
|
12
|
+
resolvedMode: "light" | "dark";
|
|
13
|
+
themeConfig: import("@datalayer/primer-addons").ThemeConfig;
|
|
14
|
+
themeBackground: string;
|
|
15
|
+
lexicalTheme: "light" | "dark";
|
|
16
|
+
};
|
|
17
|
+
export default usePrimerThemeBridge;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2021-2023 Datalayer, Inc.
|
|
3
|
+
*
|
|
4
|
+
* MIT License
|
|
5
|
+
*/
|
|
6
|
+
/*
|
|
7
|
+
* Copyright (c) 2021-2026 Datalayer, Inc.
|
|
8
|
+
*
|
|
9
|
+
* MIT License
|
|
10
|
+
*/
|
|
11
|
+
import { themeConfigs, useSystemColorMode, } from '@datalayer/primer-addons';
|
|
12
|
+
/**
|
|
13
|
+
* Shared bridge between primer-addons theme store and jupyter-react/lexical.
|
|
14
|
+
*/
|
|
15
|
+
export function usePrimerThemeBridge(useStore) {
|
|
16
|
+
const { colorMode, theme: themeVariant } = useStore();
|
|
17
|
+
const systemMode = useSystemColorMode();
|
|
18
|
+
const resolvedMode = colorMode === 'auto' ? systemMode : colorMode;
|
|
19
|
+
const themeConfig = themeConfigs[themeVariant];
|
|
20
|
+
const modeStyles = resolvedMode === 'dark'
|
|
21
|
+
? themeConfig.themeStyles.dark
|
|
22
|
+
: themeConfig.themeStyles.light;
|
|
23
|
+
const themeBackground = modeStyles.backgroundColor ?? '';
|
|
24
|
+
return {
|
|
25
|
+
colorMode,
|
|
26
|
+
themeVariant,
|
|
27
|
+
resolvedMode,
|
|
28
|
+
themeConfig,
|
|
29
|
+
themeBackground,
|
|
30
|
+
lexicalTheme: (resolvedMode === 'dark' ? 'dark' : 'light'),
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
export default usePrimerThemeBridge;
|
|
34
|
+
//# sourceMappingURL=usePrimerThemeBridge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usePrimerThemeBridge.js","sourceRoot":"","sources":["../../src/theme/usePrimerThemeBridge.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;GAIG;AAEH,OAAO,EACL,YAAY,EAEZ,kBAAkB,GACnB,MAAM,0BAA0B,CAAC;AAOlC;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,QAA8B;IACjE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,QAAQ,EAAE,CAAC;IACtD,MAAM,UAAU,GAAG,kBAAkB,EAAE,CAAC;IACxC,MAAM,YAAY,GAAG,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;IACnE,MAAM,WAAW,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC;IAC/C,MAAM,UAAU,GACd,YAAY,KAAK,MAAM;QACrB,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI;QAC9B,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC;IACpC,MAAM,eAAe,GAClB,UAAqC,CAAC,eAAe,IAAI,EAAE,CAAC;IAE/D,OAAO;QACL,SAAS;QACT,YAAY;QACZ,YAAY;QACZ,WAAW;QACX,eAAe;QACf,YAAY,EAAE,CAAC,YAAY,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAE/C;KACX,CAAC;AACJ,CAAC;AAED,eAAe,oBAAoB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@datalayer/jupyter-react",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.8",
|
|
4
4
|
"description": "Jupyter React - React.js components 100% compatible with Jupyter.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"main": "lib/index.js",
|
|
@@ -170,7 +170,9 @@
|
|
|
170
170
|
"@jupyter-widgets/jupyterlab-manager": "^5.0.0",
|
|
171
171
|
"@jupyter-widgets/output": "^6.0.0",
|
|
172
172
|
"@jupyter/web-components": "^0.17.1",
|
|
173
|
-
"@jupyter/
|
|
173
|
+
"@jupyter/docprovider-extension": "^4.3.0",
|
|
174
|
+
"@jupyter/collaboration-extension": "^4.3.0",
|
|
175
|
+
"@jupyter/ydoc": "^3.4.1",
|
|
174
176
|
"@jupyterlab/application": "^4.0.0",
|
|
175
177
|
"@jupyterlab/application-extension": "^4.0.0",
|
|
176
178
|
"@jupyterlab/apputils": "^4.0.0",
|