From be5b3edecc1ed8c1b91855fb02794cad97f3eab6 Mon Sep 17 00:00:00 2001 From: martinRenou Date: Mon, 15 Jul 2024 11:22:32 +0200 Subject: [PATCH] ipywidgets 7 support --- .github/workflows/ui-tests.yml | 12 ++ packages/voila/package.json | 3 + packages/voila/src/ipywidgets7.ts | 61 ++++++ packages/voila/src/main.ts | 7 +- packages/voila/src/sharedscope.ts | 4 + packages/voila/webpack.config.js | 18 +- pyproject.toml | 10 + yarn.lock | 308 ++++++++++++++++++++++++++++-- 8 files changed, 405 insertions(+), 18 deletions(-) create mode 100644 packages/voila/src/ipywidgets7.ts diff --git a/.github/workflows/ui-tests.yml b/.github/workflows/ui-tests.yml index 20355df06..91feaf952 100644 --- a/.github/workflows/ui-tests.yml +++ b/.github/workflows/ui-tests.yml @@ -12,6 +12,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: + ipywidgets: [7, 8] jupyter-server-version: ["1.24.0", "2.14.2"] fail-fast: false @@ -21,11 +22,22 @@ jobs: uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1 - name: Install dependencies + if: ${{ matrix.ipywidgets == 7 }} + run: | + python -m pip install -r requirements-visual-test.txt + python -m pip install jupyterlab_miami_nights --no-deps + python -m pip install ".[test7]" + + - name: Install dependencies + if: ${{ matrix.ipywidgets == 8 }} run: | python -m pip install -r requirements-visual-test.txt python -m pip install jupyterlab_miami_nights --no-deps python -m pip install ".[test]" python -m pip install jupyter-server==${{ matrix.jupyter-server-version }} + + - name: Build voila + run: | jlpm jlpm build jupyter labextension develop . --overwrite diff --git a/packages/voila/package.json b/packages/voila/package.json index 3286005b5..04a24bdc3 100644 --- a/packages/voila/package.json +++ b/packages/voila/package.json @@ -12,12 +12,15 @@ "browserslist": ">0.8%, not ie 11, not op_mini all, not dead", "dependencies": { "@jupyter-widgets/base": "^6.0.10", + "@jupyter-widgets/base7": "npm:@jupyter-widgets/base@4.1.6", + "@jupyter-widgets/controls7": "npm:@jupyter-widgets/controls@3.1.6", "@jupyter-widgets/jupyterlab-manager": "^5.0.13", "@jupyterlab/application": "^4.0.0", "@jupyterlab/apputils": "^4.0.0", "@jupyterlab/apputils-extension": "^4.0.0", "@jupyterlab/codemirror": "^4.0.3", "@jupyterlab/codemirror-extension": "^4.0.0", + "@jupyterlab/console": "^4.0.0", "@jupyterlab/coreutils": "^6.0.0", "@jupyterlab/docregistry": "^4.0.0", "@jupyterlab/javascript-extension": "^4.0.0", diff --git a/packages/voila/src/ipywidgets7.ts b/packages/voila/src/ipywidgets7.ts new file mode 100644 index 000000000..a59e4ade6 --- /dev/null +++ b/packages/voila/src/ipywidgets7.ts @@ -0,0 +1,61 @@ +/*************************************************************************** + * Copyright (c) 2024, VoilĂ  contributors * + * Copyright (c) 2024, QuantStack * + * * + * Distributed under the terms of the BSD 3-Clause License. * + * * + * The full license is in the file LICENSE, distributed with this software. * + ****************************************************************************/ + +import * as base from '@jupyter-widgets/base'; +import { + JupyterFrontEnd, + JupyterFrontEndPlugin +} from '@jupyterlab/application'; + +const JUPYTER_WIDGETS_VERSION = '1.2.0'; +const JUPYTER_CONTROLS_VERSION = '1.5.0'; + +/** + * The base widgets. + */ +export const baseWidgets7Plugin: JupyterFrontEndPlugin = { + id: `@jupyter-widgets/jupyterlab-manager:base-${JUPYTER_WIDGETS_VERSION}`, + requires: [base.IJupyterWidgetRegistry], + autoStart: true, + activate: ( + app: JupyterFrontEnd, + registry: base.IJupyterWidgetRegistry + ): void => { + registry.registerWidget({ + name: '@jupyter-widgets/base', + version: JUPYTER_WIDGETS_VERSION, + exports: () => { + return require('@jupyter-widgets/base7') as any; + } + }); + } +}; + +/** + * The control widgets. + */ +export const controlWidgets7Plugin: JupyterFrontEndPlugin = { + id: `@jupyter-widgets/jupyterlab-manager:controls-${JUPYTER_CONTROLS_VERSION}`, + requires: [base.IJupyterWidgetRegistry], + autoStart: true, + activate: ( + app: JupyterFrontEnd, + registry: base.IJupyterWidgetRegistry + ): void => { + registry.registerWidget({ + name: '@jupyter-widgets/controls', + version: JUPYTER_CONTROLS_VERSION, + exports: () => { + const controlsWidgets = require('@jupyter-widgets/controls7') as any; + require('@jupyter-widgets/controls7/css/widgets-base.css'); + return controlsWidgets; + } + }); + } +}; diff --git a/packages/voila/src/main.ts b/packages/voila/src/main.ts index ad3ca582f..c3f835dae 100644 --- a/packages/voila/src/main.ts +++ b/packages/voila/src/main.ts @@ -14,6 +14,7 @@ import { PageConfig, URLExt } from '@jupyterlab/coreutils'; import { VoilaApp } from './app'; import plugins from './voilaplugins'; +import { baseWidgets7Plugin, controlWidgets7Plugin } from './ipywidgets7'; import { VoilaServiceManager } from './services/servicemanager'; import { VoilaShell } from './shell'; import { @@ -42,7 +43,10 @@ async function main() { require('@jupyter-widgets/jupyterlab-manager/lib/plugin').default.filter( (p: any) => p.id !== '@jupyter-widgets/jupyterlab-manager:plugin' ), - plugins + plugins, + // For backward compat with ipywidgets 7 + baseWidgets7Plugin, + controlWidgets7Plugin ]; if (shouldUseMathJax2()) { @@ -85,6 +89,7 @@ async function main() { } const data = p.value; + if (data.extension) { federatedExtensionPromises.push(createModule(data.name, data.extension)); } diff --git a/packages/voila/src/sharedscope.ts b/packages/voila/src/sharedscope.ts index 26ac31571..c41eb0521 100644 --- a/packages/voila/src/sharedscope.ts +++ b/packages/voila/src/sharedscope.ts @@ -1,3 +1,7 @@ +// Ideally we would remove this but the ipywidgets labextension requires it +import '@jupyterlab/notebook'; +import '@jupyterlab/console'; + import '@lumino/algorithm'; import '@lumino/application'; import '@lumino/coreutils'; diff --git a/packages/voila/webpack.config.js b/packages/voila/webpack.config.js index 62b401904..d79b19037 100644 --- a/packages/voila/webpack.config.js +++ b/packages/voila/webpack.config.js @@ -69,6 +69,20 @@ const distRoot = path.resolve( 'static' ); +const shared = {}; +for (const dependency of Object.keys(data.dependencies)) { + // TODO Why can we not share those? + if ( + ['@jupyter-widgets/base7', '@jupyter-widgets/controls7'].includes( + dependency + ) + ) { + continue; + } + + shared[dependency] = data.dependencies[dependency]; +} + module.exports = [ merge(baseConfig, { mode: 'development', @@ -95,9 +109,7 @@ module.exports = [ name: ['_JUPYTERLAB', 'CORE_LIBRARY_FEDERATION'] }, name: 'CORE_FEDERATION', - shared: { - ...data.dependencies - } + shared }) ], resolve: { diff --git a/pyproject.toml b/pyproject.toml index 5131568cd..e5016a570 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -68,6 +68,16 @@ test = [ "pytest", "pytest-tornasync", ] +test7 = [ + "ipykernel", + "ipywidgets==7.8.2", + "matplotlib", + "numpy", + "pandas", + "papermill", + "pytest", + "pytest-tornasync", +] docs = [ "myst-parser", "pydata-sphinx-theme", diff --git a/yarn.lock b/yarn.lock index c47e3f698..99a1801c5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2262,6 +2262,24 @@ __metadata: languageName: node linkType: hard +"@jupyter-widgets/base7@npm:@jupyter-widgets/base@4.1.6, @jupyter-widgets/base@npm:^4.1.6": + version: 4.1.6 + resolution: "@jupyter-widgets/base@npm:4.1.6" + dependencies: + "@jupyterlab/services": ^6.0.0 + "@lumino/coreutils": ^1.2.0 + "@lumino/messaging": ^1.2.1 + "@lumino/widgets": ^1.3.0 + "@types/backbone": ^1.4.1 + "@types/lodash": ^4.14.134 + backbone: 1.2.3 + base64-js: ^1.2.1 + jquery: ^3.1.1 + lodash: ^4.17.4 + checksum: cdd11e8fd480a44b9e9f5a37529361c407456d9e2d2a09f35b8f067b65e915c132aaaaab8d8523f3c8c624e3403215d6eb56a21337f57213b75ebb377a26c208 + languageName: node + linkType: hard + "@jupyter-widgets/base@npm:^6.0.10": version: 6.0.10 resolution: "@jupyter-widgets/base@npm:6.0.10" @@ -2279,6 +2297,24 @@ __metadata: languageName: node linkType: hard +"@jupyter-widgets/controls7@npm:@jupyter-widgets/controls@3.1.6": + version: 3.1.6 + resolution: "@jupyter-widgets/controls@npm:3.1.6" + dependencies: + "@jupyter-widgets/base": ^4.1.6 + "@lumino/algorithm": ^1.1.0 + "@lumino/domutils": ^1.1.0 + "@lumino/messaging": ^1.2.1 + "@lumino/signaling": ^1.2.0 + "@lumino/widgets": ^1.3.0 + d3-format: ^1.3.0 + jquery: ^3.1.1 + jquery-ui: ^1.12.1 + underscore: ^1.8.3 + checksum: 9c69ebe9ce22d7e7cf3cd66dc849505c1433da4424d8daa7411d85f41027d5600c20c2350d703fe582fd44a4b5d11ad8b404fe058b686f17cd47bafd41547646 + languageName: node + linkType: hard + "@jupyter-widgets/controls@npm:^5.0.11": version: 5.0.11 resolution: "@jupyter-widgets/controls@npm:5.0.11" @@ -2660,7 +2696,7 @@ __metadata: languageName: node linkType: hard -"@jupyterlab/console@npm:^3.0.0 || ^4.0.0": +"@jupyterlab/console@npm:^3.0.0 || ^4.0.0, @jupyterlab/console@npm:^4.0.0": version: 4.2.5 resolution: "@jupyterlab/console@npm:4.2.5" dependencies: @@ -2685,6 +2721,21 @@ __metadata: languageName: node linkType: hard +"@jupyterlab/coreutils@npm:^5.6.8": + version: 5.6.8 + resolution: "@jupyterlab/coreutils@npm:5.6.8" + dependencies: + "@lumino/coreutils": ^1.11.0 + "@lumino/disposable": ^1.10.0 + "@lumino/signaling": ^1.10.0 + minimist: ~1.2.0 + moment: ^2.24.0 + path-browserify: ^1.0.0 + url-parse: ~1.5.1 + checksum: 56393ea5b659f439bdb5a1d5346d35a8453f33aa8e012144e3dc0f77bcdaff4db79592fc19f96e1fe19de0e4d183126530edf39f54443e20225c71568cdf47e7 + languageName: node + linkType: hard + "@jupyterlab/coreutils@npm:^6.0.0, @jupyterlab/coreutils@npm:^6.1.0, @jupyterlab/coreutils@npm:^6.2.5": version: 6.2.5 resolution: "@jupyterlab/coreutils@npm:6.2.5" @@ -2978,6 +3029,15 @@ __metadata: languageName: node linkType: hard +"@jupyterlab/nbformat@npm:^3.6.8": + version: 3.6.8 + resolution: "@jupyterlab/nbformat@npm:3.6.8" + dependencies: + "@lumino/coreutils": ^1.11.0 + checksum: 06bbe856d2c3016a1f560aad78c9c67cb63271d695d2f86632e1d9b9d76eed0223e74c163b16efa8a7a20798ddab60ab76611e6fb17682128d38041d1f57a645 + languageName: node + linkType: hard + "@jupyterlab/notebook@npm:^3.0.0 || ^4.0.0, @jupyterlab/notebook@npm:^4.0.0, @jupyterlab/notebook@npm:^4.1.0": version: 4.1.0 resolution: "@jupyterlab/notebook@npm:4.1.0" @@ -3015,6 +3075,19 @@ __metadata: languageName: node linkType: hard +"@jupyterlab/observables@npm:^4.6.8": + version: 4.6.8 + resolution: "@jupyterlab/observables@npm:4.6.8" + dependencies: + "@lumino/algorithm": ^1.9.0 + "@lumino/coreutils": ^1.11.0 + "@lumino/disposable": ^1.10.0 + "@lumino/messaging": ^1.10.0 + "@lumino/signaling": ^1.10.0 + checksum: 4cba3ec51942a33f7aa0a6ff0cf3685cc5b5d2c734ca38bc00a9fd6d56fbd9c74414c4569b0898b6834b68bd219e166f0aa70251aa7e068a7844e7bcc9a28400 + languageName: node + linkType: hard + "@jupyterlab/observables@npm:^5.1.0, @jupyterlab/observables@npm:^5.2.5": version: 5.2.5 resolution: "@jupyterlab/observables@npm:5.2.5" @@ -3093,6 +3166,26 @@ __metadata: languageName: node linkType: hard +"@jupyterlab/services@npm:^6.0.0": + version: 6.6.8 + resolution: "@jupyterlab/services@npm:6.6.8" + dependencies: + "@jupyterlab/coreutils": ^5.6.8 + "@jupyterlab/nbformat": ^3.6.8 + "@jupyterlab/observables": ^4.6.8 + "@jupyterlab/settingregistry": ^3.6.8 + "@jupyterlab/statedb": ^3.6.8 + "@lumino/algorithm": ^1.9.0 + "@lumino/coreutils": ^1.11.0 + "@lumino/disposable": ^1.10.0 + "@lumino/polling": ^1.9.0 + "@lumino/signaling": ^1.10.0 + node-fetch: ^2.6.0 + ws: ^7.4.6 + checksum: 852c5e78a3076fa8495b5d7a9ebbd00f77d2c75f21280993e5fc087c6af32e1e1637d525982271894685b6d0a0fae47a3a06e53e59cbcf5c7d7c42bd171894ca + languageName: node + linkType: hard + "@jupyterlab/services@npm:^6.0.0 || ^7.0.0, @jupyterlab/services@npm:^7.0.0, @jupyterlab/services@npm:^7.1.0, @jupyterlab/services@npm:^7.2.5": version: 7.2.5 resolution: "@jupyterlab/services@npm:7.2.5" @@ -3131,6 +3224,34 @@ __metadata: languageName: node linkType: hard +"@jupyterlab/settingregistry@npm:^3.6.8": + version: 3.6.8 + resolution: "@jupyterlab/settingregistry@npm:3.6.8" + dependencies: + "@jupyterlab/statedb": ^3.6.8 + "@lumino/commands": ^1.19.0 + "@lumino/coreutils": ^1.11.0 + "@lumino/disposable": ^1.10.0 + "@lumino/signaling": ^1.10.0 + ajv: ^6.12.3 + json5: ^2.1.1 + checksum: 12c1cf1a34b925e7b35c42cf9d617d3d4be237acbf2ab51dd0b089f1f130a7c64bda83eb785e9239d51b6e818fd569a971b2c5ec179e02acf8cc0b9c0de5aa94 + languageName: node + linkType: hard + +"@jupyterlab/statedb@npm:^3.6.8": + version: 3.6.8 + resolution: "@jupyterlab/statedb@npm:3.6.8" + dependencies: + "@lumino/commands": ^1.19.0 + "@lumino/coreutils": ^1.11.0 + "@lumino/disposable": ^1.10.0 + "@lumino/properties": ^1.8.0 + "@lumino/signaling": ^1.10.0 + checksum: 64ebb78cbb59ea7f40d285b6b37b2412322d2da82070734ecd6acfee809a3d2c39778a6a134ddfe0c08c857e0c596a9032a88e74c7b5c7f77146a55dca6c151c + languageName: node + linkType: hard + "@jupyterlab/statedb@npm:^4.1.0, @jupyterlab/statedb@npm:^4.2.5": version: 4.2.5 resolution: "@jupyterlab/statedb@npm:4.2.5" @@ -3541,6 +3662,13 @@ __metadata: languageName: node linkType: hard +"@lumino/algorithm@npm:^1.1.0, @lumino/algorithm@npm:^1.9.0, @lumino/algorithm@npm:^1.9.1 || ^2.1, @lumino/algorithm@npm:^1.9.2": + version: 1.9.2 + resolution: "@lumino/algorithm@npm:1.9.2" + checksum: a89e7c63504236119634858e271db1cc649684d30ced5a6ebe2788af7c0837f1e05a6fd3047d8525eb756c42ce137f76b3688f75fd3ef915b71cd4f213dfbb96 + languageName: node + linkType: hard + "@lumino/algorithm@npm:^1.11.1 || ^2.0.0, @lumino/algorithm@npm:^2.0.0, @lumino/algorithm@npm:^2.0.1, @lumino/algorithm@npm:^2.0.2": version: 2.0.2 resolution: "@lumino/algorithm@npm:2.0.2" @@ -3548,13 +3676,6 @@ __metadata: languageName: node linkType: hard -"@lumino/algorithm@npm:^1.9.1 || ^2.1, @lumino/algorithm@npm:^1.9.2": - version: 1.9.2 - resolution: "@lumino/algorithm@npm:1.9.2" - checksum: a89e7c63504236119634858e271db1cc649684d30ced5a6ebe2788af7c0837f1e05a6fd3047d8525eb756c42ce137f76b3688f75fd3ef915b71cd4f213dfbb96 - languageName: node - linkType: hard - "@lumino/application@npm:^2.3.0": version: 2.3.0 resolution: "@lumino/application@npm:2.3.0" @@ -3584,6 +3705,21 @@ __metadata: languageName: node linkType: hard +"@lumino/commands@npm:^1.19.0, @lumino/commands@npm:^1.21.1": + version: 1.21.1 + resolution: "@lumino/commands@npm:1.21.1" + dependencies: + "@lumino/algorithm": ^1.9.2 + "@lumino/coreutils": ^1.12.1 + "@lumino/disposable": ^1.10.4 + "@lumino/domutils": ^1.8.2 + "@lumino/keyboard": ^1.8.2 + "@lumino/signaling": ^1.11.1 + "@lumino/virtualdom": ^1.14.3 + checksum: 1e2ee7ce14b7241aee829df76f2bee6c046a82c2c137c6bb58049142c52a67f8ae74168fdcc4027b0d5a1c9f2ffa8b8f5231ef89f6f0ea8dcc4cab8d475e1ad4 + languageName: node + linkType: hard + "@lumino/commands@npm:^2.0.0, @lumino/commands@npm:^2.2.0, @lumino/commands@npm:^2.3.0, @lumino/commands@npm:^2.3.1": version: 2.3.1 resolution: "@lumino/commands@npm:2.3.1" @@ -3608,6 +3744,15 @@ __metadata: languageName: node linkType: hard +"@lumino/coreutils@npm:^1.11.0, @lumino/coreutils@npm:^1.12.1, @lumino/coreutils@npm:^1.2.0": + version: 1.12.1 + resolution: "@lumino/coreutils@npm:1.12.1" + peerDependencies: + crypto: 1.0.1 + checksum: 55f1b87997f8dd0af28ff23c2d4b3aa252e515b9d3bc91b350a5c6c8526ceae61b14b55dc0d8d01691c69d42974b3d559f2b49bc7ced0f474b8f5dc52b3e83ed + languageName: node + linkType: hard + "@lumino/datagrid@npm:^2.1.2": version: 2.3.0 resolution: "@lumino/datagrid@npm:2.3.0" @@ -3634,7 +3779,17 @@ __metadata: languageName: node linkType: hard -"@lumino/domutils@npm:^1.8.1 || ^2.1": +"@lumino/disposable@npm:^1.10.0, @lumino/disposable@npm:^1.10.4": + version: 1.10.4 + resolution: "@lumino/disposable@npm:1.10.4" + dependencies: + "@lumino/algorithm": ^1.9.2 + "@lumino/signaling": ^1.11.1 + checksum: b53e259830f1d3231455548e6b95c9ae0f4b91e1b501980a1d0bb9708322bf5469b5cbb4e5005653d6f33b549d4bb7e58ce02226477876f51c124ea755152a33 + languageName: node + linkType: hard + +"@lumino/domutils@npm:^1.1.0, @lumino/domutils@npm:^1.8.1 || ^2.1, @lumino/domutils@npm:^1.8.2": version: 1.8.2 resolution: "@lumino/domutils@npm:1.8.2" checksum: 196f25316a17cd8df8f11dbe17f10cbd96e5ce166ea97aab6402307dc554382423d860859bb5d05226f05909748b781fb281bb9220690fe1f3ddc716072c2ed5 @@ -3648,6 +3803,16 @@ __metadata: languageName: node linkType: hard +"@lumino/dragdrop@npm:^1.14.5": + version: 1.14.5 + resolution: "@lumino/dragdrop@npm:1.14.5" + dependencies: + "@lumino/coreutils": ^1.12.1 + "@lumino/disposable": ^1.10.4 + checksum: c10031e9aa9ef7f3ab71a1b73f761b84291dda85a449e5f4d2d7c462277759a947513eb7ee3e3d984f7cfc2730b1c96d0706124802492f9adbd7be00d13137ee + languageName: node + linkType: hard + "@lumino/dragdrop@npm:^2.0.0, @lumino/dragdrop@npm:^2.1.4, @lumino/dragdrop@npm:^2.1.5": version: 2.1.5 resolution: "@lumino/dragdrop@npm:2.1.5" @@ -3658,6 +3823,13 @@ __metadata: languageName: node linkType: hard +"@lumino/keyboard@npm:^1.8.2": + version: 1.8.2 + resolution: "@lumino/keyboard@npm:1.8.2" + checksum: 30f8ced53ca0aa466dba33be3c9379a2a6abcf1c52485073d9f9d9bc119eb3327a7343fad764c2d63a8a30ae05c0047098c40ec605e60af215356f3edb9ab4a9 + languageName: node + linkType: hard + "@lumino/keyboard@npm:^2.0.1, @lumino/keyboard@npm:^2.0.2": version: 2.0.2 resolution: "@lumino/keyboard@npm:2.0.2" @@ -3665,7 +3837,7 @@ __metadata: languageName: node linkType: hard -"@lumino/messaging@npm:^1.10.1 || ^2.1": +"@lumino/messaging@npm:^1.10.0, @lumino/messaging@npm:^1.10.1 || ^2.1, @lumino/messaging@npm:^1.10.3, @lumino/messaging@npm:^1.2.1": version: 1.10.3 resolution: "@lumino/messaging@npm:1.10.3" dependencies: @@ -3685,6 +3857,17 @@ __metadata: languageName: node linkType: hard +"@lumino/polling@npm:^1.9.0": + version: 1.11.4 + resolution: "@lumino/polling@npm:1.11.4" + dependencies: + "@lumino/coreutils": ^1.12.1 + "@lumino/disposable": ^1.10.4 + "@lumino/signaling": ^1.11.1 + checksum: d4625da7bf5399f6bffed29251daaeb4bf14a0733ad77ad1573c9893973480961be445d8700a5d004102d14ab5a2cf4b79244b1fe74680d060167e55db211c04 + languageName: node + linkType: hard + "@lumino/polling@npm:^2.1.2": version: 2.1.2 resolution: "@lumino/polling@npm:2.1.2" @@ -3696,6 +3879,13 @@ __metadata: languageName: node linkType: hard +"@lumino/properties@npm:^1.8.0, @lumino/properties@npm:^1.8.2": + version: 1.8.2 + resolution: "@lumino/properties@npm:1.8.2" + checksum: 9a53709fe58d3abbc99062f0c0fda4d5f64a4c7dca509251f0f89cdcaf881fdf6172ee852dbfe70594ee34bb97255acca771a722d62e7e2150ba8cf6f7e7d15c + languageName: node + linkType: hard + "@lumino/properties@npm:^2.0.0, @lumino/properties@npm:^2.0.1, @lumino/properties@npm:^2.0.2": version: 2.0.2 resolution: "@lumino/properties@npm:2.0.2" @@ -3713,6 +3903,25 @@ __metadata: languageName: node linkType: hard +"@lumino/signaling@npm:^1.10.0, @lumino/signaling@npm:^1.11.1, @lumino/signaling@npm:^1.2.0": + version: 1.11.1 + resolution: "@lumino/signaling@npm:1.11.1" + dependencies: + "@lumino/algorithm": ^1.9.2 + "@lumino/properties": ^1.8.2 + checksum: 3d822be705d9ba8adc46ec405a4422cd4f76ed774f94da5386a511f01df4325c3c8bfa288c9c812184c94cfd0c3ef7b1121dcc9c9489750ad6cfaa7ffb2a3a67 + languageName: node + linkType: hard + +"@lumino/virtualdom@npm:^1.14.3": + version: 1.14.3 + resolution: "@lumino/virtualdom@npm:1.14.3" + dependencies: + "@lumino/algorithm": ^1.9.2 + checksum: dd6acc5402eb7961ab05f5ce9afaebce4258eb92111f4d97b58ac87a6453686376d2b7d0a2041a54eef6e78091e36a430c74834c97b862fba31fa82ef43c72cb + languageName: node + linkType: hard + "@lumino/virtualdom@npm:^2.0.0, @lumino/virtualdom@npm:^2.0.1, @lumino/virtualdom@npm:^2.0.2": version: 2.0.2 resolution: "@lumino/virtualdom@npm:2.0.2" @@ -3722,6 +3931,25 @@ __metadata: languageName: node linkType: hard +"@lumino/widgets@npm:^1.3.0": + version: 1.37.2 + resolution: "@lumino/widgets@npm:1.37.2" + dependencies: + "@lumino/algorithm": ^1.9.2 + "@lumino/commands": ^1.21.1 + "@lumino/coreutils": ^1.12.1 + "@lumino/disposable": ^1.10.4 + "@lumino/domutils": ^1.8.2 + "@lumino/dragdrop": ^1.14.5 + "@lumino/keyboard": ^1.8.2 + "@lumino/messaging": ^1.10.3 + "@lumino/properties": ^1.8.2 + "@lumino/signaling": ^1.11.1 + "@lumino/virtualdom": ^1.14.3 + checksum: 3193f8cca4bad2c9d59031515b7b81b8a3655088f2b8c4f69f575116140d45c5caed935da0ed3fab9dc5ce96fde037bfa5fef0c129921955b3fb73cf725d1b06 + languageName: node + linkType: hard + "@lumino/widgets@npm:^1.30.0 || ^2.1, @lumino/widgets@npm:^1.37.2 || ^2.3.2, @lumino/widgets@npm:^2.0.0, @lumino/widgets@npm:^2.3.1, @lumino/widgets@npm:^2.3.2": version: 2.5.0 resolution: "@lumino/widgets@npm:2.5.0" @@ -4406,6 +4634,16 @@ __metadata: languageName: node linkType: hard +"@types/backbone@npm:^1.4.1": + version: 1.4.22 + resolution: "@types/backbone@npm:1.4.22" + dependencies: + "@types/jquery": "*" + "@types/underscore": "*" + checksum: 095959d89abfdbf01071c8389f8638cf941e235c7ba7b03d2500cea34c8c313830605c3c87b2bb8630760bb9ed8ca54114344c1721947ce6992016482b295c6c + languageName: node + linkType: hard + "@types/base16@npm:^1.0.2": version: 1.0.5 resolution: "@types/base16@npm:1.0.5" @@ -4912,6 +5150,8 @@ __metadata: resolution: "@voila-dashboards/voila@workspace:packages/voila" dependencies: "@jupyter-widgets/base": ^6.0.10 + "@jupyter-widgets/base7": "npm:@jupyter-widgets/base@4.1.6" + "@jupyter-widgets/controls7": "npm:@jupyter-widgets/controls@3.1.6" "@jupyter-widgets/jupyterlab-manager": ^5.0.13 "@jupyterlab/application": ^4.0.0 "@jupyterlab/apputils": ^4.0.0 @@ -4919,6 +5159,7 @@ __metadata: "@jupyterlab/builder": ^4.0.0 "@jupyterlab/codemirror": ^4.0.3 "@jupyterlab/codemirror-extension": ^4.0.0 + "@jupyterlab/console": ^4.0.0 "@jupyterlab/coreutils": ^6.0.0 "@jupyterlab/docregistry": ^4.0.0 "@jupyterlab/javascript-extension": ^4.0.0 @@ -5415,7 +5656,7 @@ __metadata: languageName: node linkType: hard -"ajv@npm:^6.12.4, ajv@npm:^6.12.5": +"ajv@npm:^6.12.3, ajv@npm:^6.12.4, ajv@npm:^6.12.5": version: 6.12.6 resolution: "ajv@npm:6.12.6" dependencies: @@ -5918,6 +6159,15 @@ __metadata: languageName: node linkType: hard +"backbone@npm:1.2.3": + version: 1.2.3 + resolution: "backbone@npm:1.2.3" + dependencies: + underscore: ">=1.7.0" + checksum: 7e460e9e951bcba0907334d41ccc4bd84b5d17658e72fc61f4c7e1057c238e82f97d3545582cfa0501cb824ee2d44f78a45cd18f735d869e6b71430a0c183073 + languageName: node + linkType: hard + "backbone@npm:1.4.0": version: 1.4.0 resolution: "backbone@npm:1.4.0" @@ -7129,6 +7379,13 @@ __metadata: languageName: node linkType: hard +"d3-format@npm:^1.3.0": + version: 1.4.5 + resolution: "d3-format@npm:1.4.5" + checksum: 1b8b2c0bca182173bccd290a43e8b635a83fc8cfe52ec878c7bdabb997d47daac11f2b175cebbe73f807f782ad655f542bdfe18180ca5eb3498a3a82da1e06ab + languageName: node + linkType: hard + "d3-geo-projection@npm:^4.0.0": version: 4.0.0 resolution: "d3-geo-projection@npm:4.0.0" @@ -11387,7 +11644,16 @@ __metadata: languageName: node linkType: hard -"jquery@npm:^3.1.1": +"jquery-ui@npm:^1.12.1": + version: 1.14.0 + resolution: "jquery-ui@npm:1.14.0" + dependencies: + jquery: ">=1.12.0 <5.0.0" + checksum: 16e85d54df56c6f0411de92cc2e1ff570ed247f6346735cac4a62f7ef4160f239ba36b4e5e5aaca6bfd34dbf1100da4028673f5097c69bfac8d076f4299f92c5 + languageName: node + linkType: hard + +"jquery@npm:>=1.12.0 <5.0.0, jquery@npm:^3.1.1": version: 3.7.1 resolution: "jquery@npm:3.7.1" checksum: 4370b8139d6ae82867eb6f7f21d1edccf1d1bdf41c0840920ea80d366c2cd5dbe1ceebb110ee9772aa839b04400faa1572c5c560b507c688ed7b61cea26c0e27 @@ -11604,7 +11870,7 @@ __metadata: languageName: node linkType: hard -"json5@npm:^2.1.2, json5@npm:^2.2.2, json5@npm:^2.2.3": +"json5@npm:^2.1.1, json5@npm:^2.1.2, json5@npm:^2.2.2, json5@npm:^2.2.3": version: 2.2.3 resolution: "json5@npm:2.2.3" bin: @@ -12918,6 +13184,13 @@ __metadata: languageName: node linkType: hard +"moment@npm:^2.24.0": + version: 2.30.1 + resolution: "moment@npm:2.30.1" + checksum: 859236bab1e88c3e5802afcf797fc801acdbd0ee509d34ea3df6eea21eb6bcc2abd4ae4e4e64aa7c986aa6cba563c6e62806218e6412a765010712e5fa121ba6 + languageName: node + linkType: hard + "mri@npm:^1.1.0": version: 1.2.0 resolution: "mri@npm:1.2.0" @@ -16532,6 +16805,13 @@ __metadata: languageName: node linkType: hard +"underscore@npm:>=1.7.0, underscore@npm:^1.8.3": + version: 1.13.7 + resolution: "underscore@npm:1.13.7" + checksum: 174b011af29e4fbe2c70eb2baa8bfab0d0336cf2f5654f364484967bc6264a86224d0134b9176e4235c8cceae00d11839f0fd4824268de04b11c78aca1241684 + languageName: node + linkType: hard + "underscore@npm:>=1.8.3": version: 1.13.6 resolution: "underscore@npm:1.13.6" @@ -16702,7 +16982,7 @@ __metadata: languageName: node linkType: hard -"url-parse@npm:^1.5.3, url-parse@npm:~1.5.4": +"url-parse@npm:^1.5.3, url-parse@npm:~1.5.1, url-parse@npm:~1.5.4": version: 1.5.10 resolution: "url-parse@npm:1.5.10" dependencies: