@datalayer/jupyter-react 0.7.8 → 0.7.10
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/app/JupyterLabApp.d.ts +2 -2
- package/lib/components/app/JupyterLabApp.js +2 -2
- package/lib/components/app/JupyterLabApp.js.map +1 -1
- package/lib/components/app/JupyterLabAppAdapter.d.ts +10 -13
- package/lib/components/app/JupyterLabAppAdapter.js +7 -29
- package/lib/components/app/JupyterLabAppAdapter.js.map +1 -1
- package/lib/components/app/JupyterLabAppCss.js +2 -2
- package/lib/components/app/JupyterLabAppCss.js.map +1 -1
- package/lib/examples/JupyterLabHeadlessApp.js +22 -11
- package/lib/examples/JupyterLabHeadlessApp.js.map +1 -1
- package/lib/examples/NotebookThemed.js +3 -0
- package/lib/examples/NotebookThemed.js.map +1 -1
- package/package.json +2 -2
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { JupyterLab } from '@jupyterlab/application';
|
|
2
2
|
import { IRenderMime } from '@jupyterlab/rendermime-interfaces';
|
|
3
3
|
import { ServiceManager } from "@jupyterlab/services";
|
|
4
|
-
import JupyterLabAppAdapter from "./JupyterLabAppAdapter";
|
|
5
4
|
import { JupyterLabTheme } from "./../../jupyter/lab/JupyterLabTheme";
|
|
5
|
+
import JupyterLabAppAdapter from "./JupyterLabAppAdapter";
|
|
6
6
|
export type JupyterLabAppProps = {
|
|
7
7
|
hostId: string;
|
|
8
8
|
extensions: Array<JupyterLab.IPluginModule>;
|
|
@@ -16,7 +16,7 @@ export type JupyterLabAppProps = {
|
|
|
16
16
|
headless: boolean;
|
|
17
17
|
serviceManager?: ServiceManager;
|
|
18
18
|
theme: JupyterLabTheme;
|
|
19
|
-
onReady: (
|
|
19
|
+
onReady: (jupyterlabAppdapter: JupyterLabAppAdapter) => void;
|
|
20
20
|
};
|
|
21
21
|
export declare const JupyterLabApp: {
|
|
22
22
|
(props: JupyterLabAppProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -2,9 +2,9 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
|
|
|
2
2
|
import { useState, useEffect, useRef } from "react";
|
|
3
3
|
import { Box } from "@primer/react";
|
|
4
4
|
import { PageConfig } from '@jupyterlab/coreutils';
|
|
5
|
+
import { useJupyter } from "../../jupyter/JupyterContext";
|
|
5
6
|
import JupyterLabAppAdapter from "./JupyterLabAppAdapter";
|
|
6
7
|
import { JupyterLabAppCorePlugins } from "./JupyterLabAppPlugins";
|
|
7
|
-
import { useJupyter } from "../../jupyter/JupyterContext";
|
|
8
8
|
import JupyterLabAppCss from "./JupyterLabAppCss";
|
|
9
9
|
// The webpack public path needs to be set before loading the CSS assets.
|
|
10
10
|
global.__webpack_public_path__ = PageConfig.getOption('fullStaticUrl') + '/';
|
|
@@ -46,7 +46,7 @@ JupyterLabApp.defaultProps = {
|
|
|
46
46
|
devMode: false,
|
|
47
47
|
theme: 'light',
|
|
48
48
|
headless: false,
|
|
49
|
-
onReady: (
|
|
49
|
+
onReady: (jupyterlabAppAdapter) => { }
|
|
50
50
|
};
|
|
51
51
|
export default JupyterLabApp;
|
|
52
52
|
//# sourceMappingURL=JupyterLabApp.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JupyterLabApp.js","sourceRoot":"","sources":["../../../src/components/app/JupyterLabApp.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAInD,OAAO,
|
|
1
|
+
{"version":3,"file":"JupyterLabApp.js","sourceRoot":"","sources":["../../../src/components/app/JupyterLabApp.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAInD,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAE1D,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAElD,yEAAyE;AACxE,MAAc,CAAC,uBAAuB,GAAG,UAAU,CAAC,SAAS,CAAC,eAAe,CAAC,GAAG,GAAG,CAAC;AAkBtF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAAyB,EAAE,EAAE;IACzD,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAC5E,MAAM,EAAE,cAAc,EAAE,GAAG,UAAU,EAAE,CAAC;IACxC,MAAM,GAAG,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IACzC,MAAM,CAAC,CAAC,EAAE,UAAU,CAAC,GAAG,QAAQ,EAAwB,CAAC;IACzD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,GAAG,IAAI,cAAc,EAAE;YACzB,MAAM,OAAO,GAAG,IAAI,oBAAoB,CAAC;gBACvC,GAAG,KAAK;gBACR,cAAc;aACf,CAAC,CAAC;YACH,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE;gBACtB,OAAO,CAAC,OAAO,CAAC,CAAC;YACnB,CAAC,CAAC,CAAC;YACH,UAAU,CAAC,OAAO,CAAC,CAAC;SACrB;IACH,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC,CAAC;IACzC,OAAO,CACL,4BACE,MAAC,GAAG,IACF,EAAE,EAAE;gBACF,gBAAgB,EAAE;oBAChB,QAAQ,EAAE,QAAe;oBACzB,MAAM,EAAE,MAAa;oBACrB,KAAK,EAAE,KAAY;oBACnB,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;iBACvC;aACF,aAED,KAAC,gBAAgB,IAAC,KAAK,EAAE,KAAK,GAAG,EACjC,cAAK,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,GAAG,IACxB,GACL,CACJ,CAAA;AACH,CAAC,CAAA;AAED,aAAa,CAAC,YAAY,GAAG;IAC3B,MAAM,EAAE,gBAAgB;IACxB,UAAU,EAAE,EAAE;IACd,cAAc,EAAE,EAAE;IAClB,iBAAiB,EAAE,wBAAwB,CAAC,iBAAiB;IAC7D,qBAAqB,EAAE,wBAAwB,CAAC,qBAAqB;IACrE,QAAQ,EAAE,UAAU;IACpB,KAAK,EAAE,MAAM;IACb,MAAM,EAAE,OAAO;IACf,OAAO,EAAE,KAAK;IACd,KAAK,EAAE,OAAO;IACd,QAAQ,EAAE,KAAK;IACf,OAAO,EAAE,CAAC,oBAA0C,EAAE,EAAE,GAAE,CAAC;CAC7B,CAAC;AAEjC,eAAe,aAAa,CAAC"}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
|
+
import { CommandRegistry } from '@lumino/commands';
|
|
1
2
|
import { JupyterLab, JupyterFrontEndPlugin } from '@jupyterlab/application';
|
|
2
|
-
import { JupyterFrontEnd, LabShell
|
|
3
|
+
import { JupyterFrontEnd, LabShell } from '@jupyterlab/application';
|
|
3
4
|
import { IRenderMime } from '@jupyterlab/rendermime-interfaces';
|
|
4
|
-
import { CommandRegistry } from '@lumino/commands';
|
|
5
5
|
import { DocumentRegistry } from '@jupyterlab/docregistry';
|
|
6
6
|
import { JupyterLabAppProps } from "./JupyterLabApp";
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
}
|
|
7
|
+
type Plugin = JupyterFrontEndPlugin<any, any, any> & {
|
|
8
|
+
service: any;
|
|
9
|
+
};
|
|
10
|
+
type Plugins = Map<string, Plugin>;
|
|
10
11
|
export declare class JupyterLabAppAdapter {
|
|
11
12
|
private _props;
|
|
12
13
|
private _jupyterlab;
|
|
@@ -16,21 +17,17 @@ export declare class JupyterLabAppAdapter {
|
|
|
16
17
|
private _readyResolve;
|
|
17
18
|
constructor(props: JupyterLabAppProps);
|
|
18
19
|
loadApp(props: JupyterLabAppProps): Promise<void>;
|
|
19
|
-
get jupyterlab():
|
|
20
|
+
get jupyterlab(): JupyterLab;
|
|
20
21
|
get shell(): LabShell;
|
|
21
22
|
get docRegistry(): DocumentRegistry;
|
|
22
23
|
get commands(): CommandRegistry;
|
|
23
24
|
get mimeExtensions(): IRenderMime.IExtensionModule[];
|
|
24
25
|
get info(): JupyterLab.IInfo;
|
|
25
26
|
get path(): JupyterFrontEnd.IPaths;
|
|
26
|
-
get plugins():
|
|
27
|
-
service: any;
|
|
28
|
-
}>;
|
|
27
|
+
get plugins(): Plugins;
|
|
29
28
|
get ready(): Promise<void>;
|
|
30
29
|
get props(): JupyterLabAppProps;
|
|
31
|
-
plugin(id: string):
|
|
32
|
-
|
|
33
|
-
}) | undefined;
|
|
34
|
-
service(id: string): any;
|
|
30
|
+
plugin(id: string): Plugin | undefined;
|
|
31
|
+
service(id: string): Plugin["service"];
|
|
35
32
|
}
|
|
36
33
|
export default JupyterLabAppAdapter;
|
|
@@ -1,27 +1,6 @@
|
|
|
1
|
+
// import { Widget } from '@lumino/widgets';
|
|
1
2
|
import { JupyterLab } from '@jupyterlab/application';
|
|
2
3
|
import { LabShell } from '@jupyterlab/application';
|
|
3
|
-
/*
|
|
4
|
-
interface IHeadLessLabShell extends ILabShell {
|
|
5
|
-
// set currentWidget(widget: Widget | null);
|
|
6
|
-
}
|
|
7
|
-
class HeadlessLabShell extends LabShell implements IHeadLessLabShell {
|
|
8
|
-
private _currentWidget: Widget | null;
|
|
9
|
-
constructor(options?: ILabShell.IOptions) {
|
|
10
|
-
super(options);
|
|
11
|
-
}
|
|
12
|
-
get currentWidget() {
|
|
13
|
-
return this._currentWidget;
|
|
14
|
-
}
|
|
15
|
-
set currentWidget(widget: Widget | null) {
|
|
16
|
-
this._currentWidget = widget;
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
*/
|
|
20
|
-
class HeadLessJupyterLab extends JupyterLab {
|
|
21
|
-
constructor(options) {
|
|
22
|
-
super(options);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
4
|
export class JupyterLabAppAdapter {
|
|
26
5
|
_props;
|
|
27
6
|
_jupyterlab;
|
|
@@ -41,7 +20,7 @@ export class JupyterLabAppAdapter {
|
|
|
41
20
|
const mimeExtensionResolved = await Promise.all(mimeExtensionPromises);
|
|
42
21
|
mimeExtensions.push(...mimeExtensionResolved);
|
|
43
22
|
this._shell = new LabShell();
|
|
44
|
-
this._jupyterlab = new
|
|
23
|
+
this._jupyterlab = new JupyterLab({
|
|
45
24
|
shell: this._shell,
|
|
46
25
|
mimeExtensions,
|
|
47
26
|
devMode,
|
|
@@ -59,17 +38,16 @@ export class JupyterLabAppAdapter {
|
|
|
59
38
|
extensions.push(...extensionResolved);
|
|
60
39
|
this._jupyterlab.registerPluginModules(extensions);
|
|
61
40
|
if (headless) {
|
|
62
|
-
this._jupyterlab.deregisterPlugin('@jupyterlab/apputils-extension:splash', true);
|
|
41
|
+
// this._jupyterlab.deregisterPlugin('@jupyterlab/apputils-extension:splash', true);
|
|
63
42
|
}
|
|
64
|
-
this._jupyterlab.start({
|
|
43
|
+
await this._jupyterlab.start({
|
|
65
44
|
hostID: hostId,
|
|
66
45
|
startPlugins: [],
|
|
67
46
|
ignorePlugins: [],
|
|
68
47
|
});
|
|
69
|
-
this._jupyterlab.restored
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
});
|
|
48
|
+
await this._jupyterlab.restored;
|
|
49
|
+
this._plugins = this._jupyterlab['_plugins'];
|
|
50
|
+
this._readyResolve();
|
|
73
51
|
}
|
|
74
52
|
get jupyterlab() {
|
|
75
53
|
return this._jupyterlab;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JupyterLabAppAdapter.js","sourceRoot":"","sources":["../../../src/components/app/JupyterLabAppAdapter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"JupyterLabAppAdapter.js","sourceRoot":"","sources":["../../../src/components/app/JupyterLabAppAdapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,11 +27,11 @@ export const JupyterLabCss = (props) => {
|
|
|
27
27
|
useEffect(() => {
|
|
28
28
|
switch (theme) {
|
|
29
29
|
case 'light': {
|
|
30
|
-
import('@jupyterlab/theme-light-extension/style/theme.css');
|
|
30
|
+
// import('@jupyterlab/theme-light-extension/style/theme.css');
|
|
31
31
|
break;
|
|
32
32
|
}
|
|
33
33
|
case 'dark': {
|
|
34
|
-
import('@jupyterlab/theme-dark-extension/style/theme.css');
|
|
34
|
+
// import('@jupyterlab/theme-dark-extension/style/theme.css');
|
|
35
35
|
break;
|
|
36
36
|
}
|
|
37
37
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JupyterLabAppCss.js","sourceRoot":"","sources":["../../../src/components/app/JupyterLabAppCss.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGlC,OAAO,kDAAkD,CAAC;AAC1D,OAAO,+CAA+C,CAAC;AACvD,OAAO,mDAAmD,CAAC;AAC3D,OAAO,iDAAiD,CAAC;AACzD,OAAO,gDAAgD,CAAC;AACxD,OAAO,8CAA8C,CAAC;AACtD,OAAO,iDAAiD,CAAC;AACzD,OAAO,qDAAqD,CAAC;AAC7D,OAAO,kDAAkD,CAAC;AAC1D,OAAO,iDAAiD,CAAC;AACzD,OAAO,iDAAiD,CAAC;AACzD,OAAO,2CAA2C,CAAC;AACnD,OAAO,+CAA+C,CAAC;AACvD,OAAO,0CAA0C,CAAC;AAClD,OAAO,+CAA+C,CAAC;AACvD,OAAO,+CAA+C,CAAC;AACvD,OAAO,iDAAiD,CAAC;AACzD,OAAO,gDAAgD,CAAC;AACxD,OAAO,gDAAgD,CAAC;AACxD,OAAO,0CAA0C,CAAC;AAClD,OAAO,kDAAkD,CAAC;AAC1D,OAAO,oDAAoD,CAAC;AAM5D,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAAY,EAAE,EAAE;IAC5C,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;IACxB,SAAS,CAAC,GAAG,EAAE;QACb,QAAO,KAAK,EAAE;YACZ,KAAK,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"JupyterLabAppCss.js","sourceRoot":"","sources":["../../../src/components/app/JupyterLabAppCss.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGlC,OAAO,kDAAkD,CAAC;AAC1D,OAAO,+CAA+C,CAAC;AACvD,OAAO,mDAAmD,CAAC;AAC3D,OAAO,iDAAiD,CAAC;AACzD,OAAO,gDAAgD,CAAC;AACxD,OAAO,8CAA8C,CAAC;AACtD,OAAO,iDAAiD,CAAC;AACzD,OAAO,qDAAqD,CAAC;AAC7D,OAAO,kDAAkD,CAAC;AAC1D,OAAO,iDAAiD,CAAC;AACzD,OAAO,iDAAiD,CAAC;AACzD,OAAO,2CAA2C,CAAC;AACnD,OAAO,+CAA+C,CAAC;AACvD,OAAO,0CAA0C,CAAC;AAClD,OAAO,+CAA+C,CAAC;AACvD,OAAO,+CAA+C,CAAC;AACvD,OAAO,iDAAiD,CAAC;AACzD,OAAO,gDAAgD,CAAC;AACxD,OAAO,gDAAgD,CAAC;AACxD,OAAO,0CAA0C,CAAC;AAClD,OAAO,kDAAkD,CAAC;AAC1D,OAAO,oDAAoD,CAAC;AAM5D,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAAY,EAAE,EAAE;IAC5C,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;IACxB,SAAS,CAAC,GAAG,EAAE;QACb,QAAO,KAAK,EAAE;YACZ,KAAK,OAAO,CAAC,CAAC;gBACpB,sEAAsE;gBAC9D,MAAM;aACP;YACD,KAAK,MAAM,CAAC,CAAC;gBACnB,qEAAqE;gBAC7D,MAAM;aACP;SACF;IACH,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IACZ,OAAO,cAAK,EAAE,EAAC,yBAAyB,GAAO,CAAA;AACjD,CAAC,CAAA;AAED,eAAe,aAAa,CAAC"}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
2
|
import { useState } from 'react';
|
|
3
3
|
import { createRoot } from 'react-dom/client';
|
|
4
|
-
import { Box, Text, ToggleSwitch } from "@primer/react";
|
|
4
|
+
import { Box, Text, ToggleSwitch, ThemeProvider, useTheme } from "@primer/react";
|
|
5
5
|
import { BoxPanel } from '@lumino/widgets';
|
|
6
6
|
import Jupyter from '../jupyter/Jupyter';
|
|
7
7
|
import Lumino from '../jupyter/lumino/Lumino';
|
|
8
8
|
import JupyterLabApp from "../components/app/JupyterLabApp";
|
|
9
|
+
import * as darkThemeExtension from '@jupyterlab/theme-dark-extension';
|
|
10
|
+
import * as lightThemeExtension from '@jupyterlab/theme-light-extension';
|
|
9
11
|
import * as ipywidgetsExtension from '@jupyter-widgets/jupyterlab-manager';
|
|
10
12
|
import * as plotlyExtension from 'jupyterlab-plotly/lib/jupyterlab-plugin';
|
|
11
13
|
import * as mimePlotlyExtension from 'jupyterlab-plotly/lib/plotly-renderer';
|
|
@@ -17,16 +19,23 @@ const PATH_INDEX = 1;
|
|
|
17
19
|
const height = "900px";
|
|
18
20
|
const JupyterLabHeadlessAppExample = () => {
|
|
19
21
|
const [boxPanel, setBoxPanel] = useState();
|
|
20
|
-
const [_, setJupyterlabAdapter] = useState();
|
|
21
22
|
const [theme, setTheme] = useState('light');
|
|
23
|
+
const [jupyterlabAdapter, setJupyterlabAdapter] = useState();
|
|
24
|
+
const { setColorMode } = useTheme();
|
|
22
25
|
const [isOn, setIsOn] = useState(false);
|
|
23
|
-
const onClick = () => {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
26
|
+
const onClick = async () => {
|
|
27
|
+
if (jupyterlabAdapter) {
|
|
28
|
+
const themeManager = jupyterlabAdapter.service("@jupyterlab/apputils-extension:themes");
|
|
29
|
+
const isLight = themeManager.isLight(themeManager.theme ?? "JupyterLab Light");
|
|
30
|
+
const themes = [
|
|
31
|
+
'JupyterLab Light',
|
|
32
|
+
'JupyterLab Dark',
|
|
33
|
+
];
|
|
34
|
+
await jupyterlabAdapter.commands.execute('apputils:change-theme', {
|
|
35
|
+
theme: themes[~~isLight],
|
|
36
|
+
});
|
|
37
|
+
setTheme(isOn ? 'light' : 'dark');
|
|
38
|
+
setColorMode(isOn ? 'night' : 'day');
|
|
30
39
|
}
|
|
31
40
|
setIsOn(!isOn);
|
|
32
41
|
};
|
|
@@ -49,7 +58,7 @@ const JupyterLabHeadlessAppExample = () => {
|
|
|
49
58
|
boxPanel.addWidget(notebookPanel);
|
|
50
59
|
setBoxPanel(boxPanel);
|
|
51
60
|
};
|
|
52
|
-
return (_jsx(_Fragment, { children: _jsxs(Jupyter, { startDefaultKernel: false, disableCssLoading: true, theme: theme, children:
|
|
61
|
+
return (_jsx(_Fragment, { children: _jsxs(Jupyter, { startDefaultKernel: false, disableCssLoading: true, theme: "light", children: [_jsx(ThemeProvider, { colorMode: theme === 'light' ? "day" : "night", dayScheme: "light", nightScheme: "dark_high_contrast", children: _jsxs(Box, { display: "flex", color: "fg.default", bg: "canvas.default", children: [_jsx(Box, { mr: 3, children: _jsx(Text, { as: "h2", children: "JupyterLab Headless Application" }) }), _jsxs(Box, { children: [_jsx(Box, { children: _jsx(Text, { fontSize: 2, fontWeight: "bold", id: "switch-label", display: "block", mb: 1, children: "Dark theme" }) }), _jsx(Box, { children: _jsx(ToggleSwitch, { size: "small", onClick: onClick, onChange: handleSwitchChange, checked: isOn, statusLabelPosition: "end", "aria-labelledby": "switch-label" }) })] })] }) }), boxPanel &&
|
|
53
62
|
_jsx("div", { style: { position: "relative" }, children: _jsx(Box, { className: "jp-LabShell", sx: {
|
|
54
63
|
'& .dla-Jupyter-Notebook': {
|
|
55
64
|
height,
|
|
@@ -57,11 +66,13 @@ const JupyterLabHeadlessAppExample = () => {
|
|
|
57
66
|
width: '100%',
|
|
58
67
|
}
|
|
59
68
|
}, children: _jsx(Box, { children: _jsx(Lumino, { children: boxPanel }) }) }) }), _jsx(JupyterLabApp, { extensions: [
|
|
69
|
+
lightThemeExtension,
|
|
70
|
+
darkThemeExtension,
|
|
60
71
|
ipywidgetsExtension,
|
|
61
72
|
plotlyExtension,
|
|
62
73
|
], mimeExtensions: [
|
|
63
74
|
mimePlotlyExtension,
|
|
64
|
-
],
|
|
75
|
+
], hostId: `jupyterlab-app-example-id`, headless: true, onReady: onReady })] }) }));
|
|
65
76
|
};
|
|
66
77
|
const div = document.createElement('div');
|
|
67
78
|
document.body.appendChild(div);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JupyterLabHeadlessApp.js","sourceRoot":"","sources":["../../src/examples/JupyterLabHeadlessApp.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"JupyterLabHeadlessApp.js","sourceRoot":"","sources":["../../src/examples/JupyterLabHeadlessApp.tsx"],"names":[],"mappings":"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"}
|
|
@@ -10,12 +10,15 @@ import nbformat from "./notebooks/NotebookExample1.ipynb.json";
|
|
|
10
10
|
const NotebookThemed = () => {
|
|
11
11
|
const [theme, setTheme] = useState('light');
|
|
12
12
|
const [isOn, setIsOn] = useState(false);
|
|
13
|
+
// const { setColorMode } = useTheme();
|
|
13
14
|
const onClick = () => {
|
|
14
15
|
if (isOn) {
|
|
15
16
|
setTheme('light');
|
|
17
|
+
// setColorMode('day');
|
|
16
18
|
}
|
|
17
19
|
else {
|
|
18
20
|
setTheme('dark');
|
|
21
|
+
// setColorMode('night');
|
|
19
22
|
}
|
|
20
23
|
setIsOn(!isOn);
|
|
21
24
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NotebookThemed.js","sourceRoot":"","sources":["../../src/examples/NotebookThemed.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAEnD,OAAO,OAAO,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"NotebookThemed.js","sourceRoot":"","sources":["../../src/examples/NotebookThemed.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAEnD,OAAO,OAAO,MAAM,oBAAoB,CAAC;AAEzC,OAAO,QAAQ,MAAM,iCAAiC,CAAC;AACvD,OAAO,eAAe,MAAM,4BAA4B,CAAC;AACzD,OAAO,WAAW,MAAM,iDAAiD,CAAC;AAE1E,OAAO,QAAQ,MAAM,yCAAyC,CAAC;AAE/D,MAAM,cAAc,GAAG,GAAG,EAAE;IAC1B,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAkB,OAAO,CAAC,CAAC;IAC7D,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC1C,wCAAwC;IACtC,MAAM,OAAO,GAAG,GAAG,EAAE;QACnB,IAAI,IAAI,EAAE;YACR,QAAQ,CAAC,OAAO,CAAC,CAAC;YACxB,4BAA4B;SACvB;aAAM;YACL,QAAQ,CAAC,MAAM,CAAC,CAAC;YACvB,8BAA8B;SACzB;QACD,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC,CAAA;IACD,MAAM,kBAAkB,GAAG,CAAC,EAAW,EAAE,EAAE;QACzC,OAAO,CAAC,EAAE,CAAC,CAAC;IACd,CAAC,CAAA;IACD,OAAO,CACL,4BACE,MAAC,OAAO;QACd,uEAAuE;QACvE,mEAAmE;QACnE,yFAAyF;;YAFzF,uEAAuE;YACvE,mEAAmE;YACnE,yFAAyF;YACjF,KAAK,EAAE,KAAK,aAEZ,KAAC,IAAI,IAAC,QAAQ,EAAE,CAAC,EAAE,UAAU,EAAC,MAAM,EAAC,EAAE,EAAC,cAAc,EAAC,OAAO,EAAC,OAAO,EAAC,EAAE,EAAE,CAAC,2BAErE,EACP,KAAC,YAAY,IACX,IAAI,EAAC,OAAO,EACZ,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,kBAAkB,EAC5B,OAAO,EAAE,IAAI,EACb,mBAAmB,EAAC,KAAK,qBACT,cAAc,GAC9B,EACF,KAAC,QAAQ,IACP,QAAQ,EAAE,QAA4B,EACtC,GAAG,EAAC,oBAAoB,EACxB,kBAAkB,EAAE;wBAClB,EAAE,IAAI,EAAE,yBAAyB,EAAE,OAAO,EAAE,OAAO,EAAE;wBACrD,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE;wBACrC,EAAE,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,QAAQ,EAAE;qBAClD,EACD,MAAM,EAAC,sBAAsB,CAAC,6BAA6B;sBAC3D,iBAAiB,EAAE,GAAG,EACtB,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,eAAe,GACxB,IACM,GACT,CACJ,CAAA;AACH,CAAC,CAAA;AAED,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAC1C,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;AAC/B,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,CAAA;AAE5B,IAAI,CAAC,MAAM,CACT,KAAC,cAAc,KAAE,CAClB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@datalayer/jupyter-react",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.10",
|
|
4
4
|
"description": "🪐 ⚛️ Jupyter React, React.js components 💯% compatible with Jupyter.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"main": "lib/index.js",
|
|
@@ -66,7 +66,7 @@
|
|
|
66
66
|
"@datalayer/jupyterlite-kernel": "0.1.0-beta.13",
|
|
67
67
|
"@datalayer/jupyterlite-server": "0.1.0-beta.13",
|
|
68
68
|
"@datalayer/jupyterlite-server-extension": "0.1.0-beta.13",
|
|
69
|
-
"@datalayer/primer-addons": "0.1.
|
|
69
|
+
"@datalayer/primer-addons": "0.1.5",
|
|
70
70
|
"@datalayer/typescript-fsa-redux-observable": "0.18.0",
|
|
71
71
|
"@jupyter-widgets/base": "6.0.5",
|
|
72
72
|
"@jupyter-widgets/controls": "5.0.6",
|