@datalayer/jupyter-react 2.0.1 → 2.0.3

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.
Files changed (367) hide show
  1. package/README.md +38 -5
  2. package/lib/app/App.js +1 -1
  3. package/lib/app/JupyterReact.js +4 -4
  4. package/lib/app/index.js +1 -1
  5. package/lib/app/tabs/ComponentsTab.js +5 -5
  6. package/lib/app/tabs/components/CellComponent.js +2 -2
  7. package/lib/app/tabs/components/FileBrowserComponent.js +2 -2
  8. package/lib/app/tabs/components/IPyWidgetsComponent.js +2 -2
  9. package/lib/app/tabs/components/NotebookComponent.js +4 -4
  10. package/lib/app/tabs/components/ViewerComponent.js +1 -1
  11. package/lib/cell.d.ts +7 -0
  12. package/lib/cell.js +13 -0
  13. package/lib/cell.js.map +1 -0
  14. package/lib/components/button/index.js +1 -1
  15. package/lib/components/cell/Cell.js +14 -9
  16. package/lib/components/cell/Cell.js.map +1 -1
  17. package/lib/components/cell/CellAdapter.js +6 -6
  18. package/lib/components/cell/index.js +4 -4
  19. package/lib/components/codemirror/CodeMirrorEditor.js +3 -3
  20. package/lib/components/codemirror/index.js +4 -4
  21. package/lib/components/commands/Commands.js +2 -2
  22. package/lib/components/commands/index.js +2 -2
  23. package/lib/components/console/Console.js +4 -4
  24. package/lib/components/console/index.js +3 -3
  25. package/lib/components/dialog/Dialog.js +2 -2
  26. package/lib/components/dialog/index.js +2 -2
  27. package/lib/components/environment/index.js +1 -1
  28. package/lib/components/filebrowser/FileBrowser.js +1 -1
  29. package/lib/components/filebrowser/index.js +1 -1
  30. package/lib/components/filemanager/FileManagerJupyterLab.js +3 -3
  31. package/lib/components/filemanager/index.js +2 -2
  32. package/lib/components/filemanager/lab/index.js +1 -1
  33. package/lib/components/index.js +19 -19
  34. package/lib/components/jupyterlab/JupyterLabApp.js +4 -4
  35. package/lib/components/jupyterlab/index.js +3 -3
  36. package/lib/components/kernel/KernelActionMenu.d.ts +1 -0
  37. package/lib/components/kernel/KernelActionMenu.js +21 -8
  38. package/lib/components/kernel/KernelActionMenu.js.map +1 -1
  39. package/lib/components/kernel/KernelInspector.js +2 -2
  40. package/lib/components/kernel/KernelSelector.js +1 -1
  41. package/lib/components/kernel/KernelVariables.js +2 -2
  42. package/lib/components/kernel/Kernels.js +1 -1
  43. package/lib/components/kernel/index.js +13 -13
  44. package/lib/components/kernel/inspector/index.js +2 -2
  45. package/lib/components/kernel/inspector/widget.js +2 -2
  46. package/lib/components/kernel/variables/index.js +7 -7
  47. package/lib/components/kernel/variables/variablesinspector.js +5 -5
  48. package/lib/components/lumino/Lumino.js +0 -14
  49. package/lib/components/lumino/Lumino.js.map +1 -1
  50. package/lib/components/lumino/index.js +5 -5
  51. package/lib/components/notebook/Notebook.d.ts +8 -1
  52. package/lib/components/notebook/Notebook.js +4 -15
  53. package/lib/components/notebook/Notebook.js.map +1 -1
  54. package/lib/components/notebook/NotebookAdapter.d.ts +5 -8
  55. package/lib/components/notebook/NotebookAdapter.js +21 -64
  56. package/lib/components/notebook/NotebookAdapter.js.map +1 -1
  57. package/lib/components/notebook/NotebookBase.d.ts +8 -1
  58. package/lib/components/notebook/NotebookBase.js +72 -103
  59. package/lib/components/notebook/NotebookBase.js.map +1 -1
  60. package/lib/components/notebook/NotebookState.d.ts +1 -0
  61. package/lib/components/notebook/NotebookState.js +16 -3
  62. package/lib/components/notebook/NotebookState.js.map +1 -1
  63. package/lib/components/notebook/cell/index.js +3 -3
  64. package/lib/components/notebook/cell/metadata/CellMetadataEditor.js +1 -1
  65. package/lib/components/notebook/cell/metadata/index.js +2 -2
  66. package/lib/components/notebook/cell/prompt/CountdownInputPrompt.js +1 -1
  67. package/lib/components/notebook/cell/prompt/CountdownOutputPrompt.js +1 -1
  68. package/lib/components/notebook/cell/prompt/index.js +3 -3
  69. package/lib/components/notebook/cell/sidebar/CellSidebar.js +2 -2
  70. package/lib/components/notebook/cell/sidebar/CellSidebarButton.js +2 -2
  71. package/lib/components/notebook/cell/sidebar/CellSidebarExtension.js +2 -2
  72. package/lib/components/notebook/cell/sidebar/CellSidebarRun.js +2 -2
  73. package/lib/components/notebook/cell/sidebar/index.js +4 -4
  74. package/lib/components/notebook/content/JupyterReactContentFactory.js +1 -1
  75. package/lib/components/notebook/content/index.js +1 -1
  76. package/lib/components/notebook/index.js +11 -11
  77. package/lib/components/notebook/marked/index.js +1 -1
  78. package/lib/components/notebook/model/index.js +1 -1
  79. package/lib/components/notebook/toolbar/NotebookToolbar.js +1 -1
  80. package/lib/components/notebook/toolbar/index.js +1 -1
  81. package/lib/components/output/Output.js +110 -31
  82. package/lib/components/output/Output.js.map +1 -1
  83. package/lib/components/output/OutputAdapter.js +3 -3
  84. package/lib/components/output/OutputIPyWidgets.js +1 -1
  85. package/lib/components/output/index.js +6 -6
  86. package/lib/components/output/ipywidgets/IPyWidgetsAttached.js +1 -1
  87. package/lib/components/settings/Settings.js +2 -2
  88. package/lib/components/settings/index.js +2 -2
  89. package/lib/components/terminal/Terminal.js +4 -4
  90. package/lib/components/terminal/index.js +3 -3
  91. package/lib/components/textinput/index.js +1 -1
  92. package/lib/components/utils/index.js +2 -2
  93. package/lib/components/viewer/Viewer.js +3 -3
  94. package/lib/components/viewer/index.js +3 -3
  95. package/lib/components/viewer/input/CodemirrorViewer.js +2 -2
  96. package/lib/components/viewer/input/InputViewer.js +4 -4
  97. package/lib/components/viewer/input/index.js +2 -2
  98. package/lib/components/viewer/output/OutputViewer.js +2 -2
  99. package/lib/components/viewer/output/index.js +2 -2
  100. package/lib/console.d.ts +7 -0
  101. package/lib/console.js +13 -0
  102. package/lib/console.js.map +1 -0
  103. package/lib/core.d.ts +38 -0
  104. package/lib/core.js +48 -0
  105. package/lib/core.js.map +1 -0
  106. package/lib/examples/Bokeh.js +5 -5
  107. package/lib/examples/Bqplot.js +5 -5
  108. package/lib/examples/Cell.js +6 -6
  109. package/lib/examples/CellLite.js +3 -3
  110. package/lib/examples/Cells.js +3 -3
  111. package/lib/examples/CellsExecute.js +4 -4
  112. package/lib/examples/Console.js +2 -2
  113. package/lib/examples/ConsoleLite.js +2 -2
  114. package/lib/examples/Dashboard.js +5 -5
  115. package/lib/examples/Deno.js +5 -5
  116. package/lib/examples/FileBrowser.js +3 -3
  117. package/lib/examples/GeoJson.js +6 -6
  118. package/lib/examples/IPyLeaflet.js +5 -5
  119. package/lib/examples/IPyReact.js +5 -5
  120. package/lib/examples/IPyWidgets.js +5 -5
  121. package/lib/examples/IPyWidgetsState.js +5 -5
  122. package/lib/examples/JupyterContext.js +15 -15
  123. package/lib/examples/JupyterLabApp.js +2 -2
  124. package/lib/examples/JupyterLabAppHeadless.js +3 -3
  125. package/lib/examples/JupyterLabAppHeadlessServerless.js +3 -3
  126. package/lib/examples/JupyterLabAppServerless.js +3 -3
  127. package/lib/examples/JupyterLabAppServiceManager.js +4 -4
  128. package/lib/examples/JupyterLabTheme.js +2 -2
  129. package/lib/examples/KernelExecute.js +3 -3
  130. package/lib/examples/KernelExecuteLite.js +4 -4
  131. package/lib/examples/KernelExecutor.js +3 -3
  132. package/lib/examples/KernelExecutorLite.js +4 -4
  133. package/lib/examples/Kernels.js +3 -3
  134. package/lib/examples/Lumino.js +2 -2
  135. package/lib/examples/Matplotlib.js +5 -5
  136. package/lib/examples/Notebook.js +4 -4
  137. package/lib/examples/Notebook.js.map +1 -1
  138. package/lib/examples/NotebookActions.js +4 -4
  139. package/lib/examples/NotebookCellSidebar.js +6 -6
  140. package/lib/examples/NotebookCellToolbar.js +7 -7
  141. package/lib/examples/NotebookCollaborative.js +3 -3
  142. package/lib/examples/NotebookCollaborative.js.map +1 -1
  143. package/lib/examples/NotebookColormode.js +6 -6
  144. package/lib/examples/NotebookExtension.js +4 -4
  145. package/lib/examples/NotebookExternalContent.js +5 -5
  146. package/lib/examples/NotebookInit.js +5 -5
  147. package/lib/examples/NotebookKernel.js +6 -6
  148. package/lib/examples/NotebookKernelChange.js +6 -6
  149. package/lib/examples/NotebookLess.js +5 -5
  150. package/lib/examples/NotebookLite.js +4 -4
  151. package/lib/examples/NotebookLocalServer.js +6 -6
  152. package/lib/examples/NotebookNbformat.js +3 -3
  153. package/lib/examples/NotebookNbformatChange.js +5 -5
  154. package/lib/examples/NotebookNoContext.js +6 -6
  155. package/lib/examples/NotebookNoPrimer.js +6 -6
  156. package/lib/examples/NotebookOnSessionConnection.js +3 -3
  157. package/lib/examples/NotebookPath.js +6 -6
  158. package/lib/examples/NotebookPathChange.js +4 -4
  159. package/lib/examples/NotebookReadonly.js +5 -5
  160. package/lib/examples/NotebookServiceManager.js +6 -6
  161. package/lib/examples/NotebookSkeleton.js +6 -6
  162. package/lib/examples/NotebookTOC.js +7 -7
  163. package/lib/examples/NotebookTheme.js +5 -5
  164. package/lib/examples/NotebookThemeColormode.js +4 -4
  165. package/lib/examples/NotebookURL.js +6 -6
  166. package/lib/examples/NotebookUnmount.js +5 -5
  167. package/lib/examples/ObservableHQ.js +5 -5
  168. package/lib/examples/OutputIPyWidgets.js +3 -3
  169. package/lib/examples/OutputWithMonitoring.js +5 -5
  170. package/lib/examples/Outputs.js +8 -8
  171. package/lib/examples/OutputsIpynb.js +3 -3
  172. package/lib/examples/Panel.js +6 -6
  173. package/lib/examples/Plotly.js +5 -5
  174. package/lib/examples/PyGWalker.js +5 -5
  175. package/lib/examples/RunningSessions.js +2 -2
  176. package/lib/examples/Terminal.js +2 -2
  177. package/lib/examples/Vega.js +6 -6
  178. package/lib/examples/Viewer.js +2 -2
  179. package/lib/examples/extensions/cellsidebars/CellSidebarSource.js +3 -3
  180. package/lib/examples/extensions/cellsidebars/index.js +1 -1
  181. package/lib/examples/extensions/celltoolbar/CellToolbar.js +1 -1
  182. package/lib/examples/extensions/celltoolbar/CellToolbarComponent.js +1 -1
  183. package/lib/examples/extensions/celltoolbar/CellToolbarExtension.js +1 -1
  184. package/lib/examples/extensions/celltoolbar/CellToolbarWidget.js +1 -1
  185. package/lib/examples/extensions/celltoolbar/index.js +4 -4
  186. package/lib/examples/extensions/exectime/ExecTimeExtension.js +1 -1
  187. package/lib/examples/extensions/exectime/ExecTimeWidget.js +1 -1
  188. package/lib/examples/extensions/exectime/index.js +3 -3
  189. package/lib/examples/extensions/index.js +3 -3
  190. package/lib/examples/extensions/toc/ReactLayoutFactory.js +1 -1
  191. package/lib/examples/extensions/toc/TocComponent.js +1 -1
  192. package/lib/examples/extensions/toc/TocExtension.js +1 -1
  193. package/lib/index.js +7 -7
  194. package/lib/jupyter/JupyterConfig.js +1 -1
  195. package/lib/jupyter/JupyterHandlers.js +1 -1
  196. package/lib/jupyter/JupyterUse.js +1 -1
  197. package/lib/jupyter/collaboration/CollaborationContext.js +1 -1
  198. package/lib/jupyter/collaboration/index.js +4 -4
  199. package/lib/jupyter/collaboration/providers/JupyterCollaborationProvider.js +2 -2
  200. package/lib/jupyter/collaboration/providers/NoOpCollaborationProvider.js +1 -1
  201. package/lib/jupyter/collaboration/providers/index.js +2 -2
  202. package/lib/jupyter/index.js +11 -11
  203. package/lib/jupyter/ipywidgets/classic/htmlmanager.js +1 -1
  204. package/lib/jupyter/ipywidgets/classic/index.js +3 -3
  205. package/lib/jupyter/ipywidgets/classic/manager.js +6 -16
  206. package/lib/jupyter/ipywidgets/classic/manager.js.map +1 -1
  207. package/lib/jupyter/ipywidgets/index.js +5 -5
  208. package/lib/jupyter/ipywidgets/lab/index.js +2 -2
  209. package/lib/jupyter/ipywidgets/lab/manager.js +3 -3
  210. package/lib/jupyter/ipywidgets/libembed-amd.js +1 -1
  211. package/lib/jupyter/ipywidgets/libembed.js +2 -1
  212. package/lib/jupyter/ipywidgets/libembed.js.map +1 -1
  213. package/lib/jupyter/kernel/Kernel.js +2 -7
  214. package/lib/jupyter/kernel/Kernel.js.map +1 -1
  215. package/lib/jupyter/kernel/KernelExecutor.js +3 -5
  216. package/lib/jupyter/kernel/KernelExecutor.js.map +1 -1
  217. package/lib/jupyter/kernel/index.js +3 -3
  218. package/lib/jupyter/lite/LiteServer.js +2 -2
  219. package/lib/jupyter/lite/contents/broadcast.js +2 -2
  220. package/lib/jupyter/lite/contents/contents.js +1 -1
  221. package/lib/jupyter/lite/contents/drivecontents.js +2 -2
  222. package/lib/jupyter/lite/contents/drivefs.js +1 -1
  223. package/lib/jupyter/lite/contents/index.js +6 -6
  224. package/lib/jupyter/lite/index.js +7 -7
  225. package/lib/jupyter/lite/javascript-kernel/comlink.worker.js +1 -1
  226. package/lib/jupyter/lite/javascript-kernel/index.js +2 -2
  227. package/lib/jupyter/lite/javascript-kernel/kernel.js +1 -1
  228. package/lib/jupyter/lite/javascript-kernel-extension/index.js +2 -2
  229. package/lib/jupyter/lite/kernel/index.js +4 -4
  230. package/lib/jupyter/lite/kernel/kernelspecs.js +1 -1
  231. package/lib/jupyter/lite/licenses/index.js +2 -2
  232. package/lib/jupyter/lite/licenses/licenses.js +1 -1
  233. package/lib/jupyter/lite/localforage/index.js +2 -2
  234. package/lib/jupyter/lite/pyodide-kernel/coincident.worker.js +2 -2
  235. package/lib/jupyter/lite/pyodide-kernel/comlink.worker.js +2 -2
  236. package/lib/jupyter/lite/pyodide-kernel/index.js +6 -6
  237. package/lib/jupyter/lite/pyodide-kernel/kernel.js +3 -3
  238. package/lib/jupyter/lite/pyodide-kernel-extension/index.js +3 -3
  239. package/lib/jupyter/lite/server/app.js +1 -1
  240. package/lib/jupyter/lite/server/index.js +4 -4
  241. package/lib/jupyter/lite/server-extension/index.js +8 -8
  242. package/lib/jupyter/lite/session/index.js +2 -2
  243. package/lib/jupyter/lite/settings/index.js +2 -2
  244. package/lib/jupyter/lite/translation/index.js +2 -2
  245. package/lib/jupyter/lite/types/index.js +1 -1
  246. package/lib/jupyter/renderers/index.js +1 -1
  247. package/lib/jupyter/renderers/plotly/index.js +1 -1
  248. package/lib/jupyter/services/ServiceManagerLite.js +1 -1
  249. package/lib/jupyter/services/index.d.ts +1 -0
  250. package/lib/jupyter/services/index.js +4 -3
  251. package/lib/jupyter/services/index.js.map +1 -1
  252. package/lib/jupyter/services/serviceManagerUtils.d.ts +73 -0
  253. package/lib/jupyter/services/serviceManagerUtils.js +132 -0
  254. package/lib/jupyter/services/serviceManagerUtils.js.map +1 -0
  255. package/lib/jupyter-context.d.ts +13 -0
  256. package/lib/jupyter-context.js +19 -0
  257. package/lib/jupyter-context.js.map +1 -0
  258. package/lib/lazy/JupyterSkeleton.d.ts +27 -0
  259. package/lib/lazy/JupyterSkeleton.js +32 -0
  260. package/lib/lazy/JupyterSkeleton.js.map +1 -0
  261. package/lib/lazy/LazyCell.d.ts +36 -0
  262. package/lib/lazy/LazyCell.js +46 -0
  263. package/lib/lazy/LazyCell.js.map +1 -0
  264. package/lib/lazy/LazyConsole.d.ts +26 -0
  265. package/lib/lazy/LazyConsole.js +32 -0
  266. package/lib/lazy/LazyConsole.js.map +1 -0
  267. package/lib/lazy/LazyNotebook.d.ts +30 -0
  268. package/lib/lazy/LazyNotebook.js +36 -0
  269. package/lib/lazy/LazyNotebook.js.map +1 -0
  270. package/lib/lazy/LazyOutput.d.ts +30 -0
  271. package/lib/lazy/LazyOutput.js +36 -0
  272. package/lib/lazy/LazyOutput.js.map +1 -0
  273. package/lib/lazy/LazyTerminal.d.ts +29 -0
  274. package/lib/lazy/LazyTerminal.js +35 -0
  275. package/lib/lazy/LazyTerminal.js.map +1 -0
  276. package/lib/lazy/LazyViewer.d.ts +29 -0
  277. package/lib/lazy/LazyViewer.js +35 -0
  278. package/lib/lazy/LazyViewer.js.map +1 -0
  279. package/lib/lazy/index.d.ts +21 -0
  280. package/lib/lazy/index.js +27 -0
  281. package/lib/lazy/index.js.map +1 -0
  282. package/lib/lazy-entry.d.ts +37 -0
  283. package/lib/lazy-entry.js +39 -0
  284. package/lib/lazy-entry.js.map +1 -0
  285. package/lib/lite-entry.d.ts +6 -0
  286. package/lib/lite-entry.js +14 -0
  287. package/lib/lite-entry.js.map +1 -0
  288. package/lib/notebook.d.ts +7 -0
  289. package/lib/notebook.js +13 -0
  290. package/lib/notebook.js.map +1 -0
  291. package/lib/output.d.ts +7 -0
  292. package/lib/output.js +13 -0
  293. package/lib/output.js.map +1 -0
  294. package/lib/state/JupyterReactState.js +46 -25
  295. package/lib/state/JupyterReactState.js.map +1 -1
  296. package/lib/state/index.js +1 -1
  297. package/lib/terminal.d.ts +7 -0
  298. package/lib/terminal.js +13 -0
  299. package/lib/terminal.js.map +1 -0
  300. package/lib/theme/JupyterReactTheme.js +3 -3
  301. package/lib/theme/index.js +6 -6
  302. package/lib/theme/themes/index.js +1 -1
  303. package/lib/theme-entry.d.ts +7 -0
  304. package/lib/theme-entry.js +13 -0
  305. package/lib/theme-entry.js.map +1 -0
  306. package/lib/tools/__tests__/operationRunner.test.js +10 -10
  307. package/lib/tools/__tests__/operationRunner.test.js.map +1 -1
  308. package/lib/tools/core/executor.js +0 -6
  309. package/lib/tools/core/executor.js.map +1 -1
  310. package/lib/tools/core/index.d.ts +2 -1
  311. package/lib/tools/core/index.js +14 -13
  312. package/lib/tools/core/index.js.map +1 -1
  313. package/lib/tools/core/operationRunner.js +11 -2
  314. package/lib/tools/core/operationRunner.js.map +1 -1
  315. package/lib/tools/core/zodUtils.js +75 -3
  316. package/lib/tools/core/zodUtils.js.map +1 -1
  317. package/lib/tools/definitions/deleteCells.d.ts +7 -0
  318. package/lib/tools/definitions/{deleteCell.js → deleteCells.js} +8 -8
  319. package/lib/tools/definitions/deleteCells.js.map +1 -0
  320. package/lib/tools/definitions/executeCode.js +2 -2
  321. package/lib/tools/definitions/index.d.ts +1 -1
  322. package/lib/tools/definitions/index.js +7 -7
  323. package/lib/tools/definitions/index.js.map +1 -1
  324. package/lib/tools/definitions/insertCell.js +4 -4
  325. package/lib/tools/definitions/insertCell.js.map +1 -1
  326. package/lib/tools/definitions/readAllCells.js +2 -2
  327. package/lib/tools/definitions/readCell.js +2 -2
  328. package/lib/tools/definitions/runCell.js +2 -2
  329. package/lib/tools/definitions/updateCell.js +2 -2
  330. package/lib/tools/index.js +18 -18
  331. package/lib/tools/index.js.map +1 -1
  332. package/lib/tools/operations/deleteCells.d.ts +38 -0
  333. package/lib/tools/operations/deleteCells.js +65 -0
  334. package/lib/tools/operations/deleteCells.js.map +1 -0
  335. package/lib/tools/operations/executeCode.js +2 -2
  336. package/lib/tools/operations/insertCell.js +14 -5
  337. package/lib/tools/operations/insertCell.js.map +1 -1
  338. package/lib/tools/operations/readAllCells.js +2 -2
  339. package/lib/tools/operations/readCell.js +1 -1
  340. package/lib/tools/operations/runCell.js +3 -3
  341. package/lib/tools/operations/updateCell.js +2 -2
  342. package/lib/tools/schemas/deleteCells.d.ts +21 -0
  343. package/lib/tools/schemas/deleteCells.js +25 -0
  344. package/lib/tools/schemas/deleteCells.js.map +1 -0
  345. package/lib/tools/schemas/index.d.ts +1 -1
  346. package/lib/tools/schemas/index.js +7 -7
  347. package/lib/tools/schemas/index.js.map +1 -1
  348. package/lib/tools/schemas/readCell.d.ts +2 -1
  349. package/lib/tools/schemas/readCell.js +2 -1
  350. package/lib/tools/schemas/readCell.js.map +1 -1
  351. package/lib/tools/schemas/updateCell.d.ts +2 -1
  352. package/lib/tools/schemas/updateCell.js +2 -1
  353. package/lib/tools/schemas/updateCell.js.map +1 -1
  354. package/lib/utils/Utils.js +1 -1
  355. package/lib/utils/index.js +2 -2
  356. package/lib/viewer.d.ts +7 -0
  357. package/lib/viewer.js +13 -0
  358. package/lib/viewer.js.map +1 -0
  359. package/package.json +92 -7
  360. package/lib/tools/definitions/deleteCell.d.ts +0 -7
  361. package/lib/tools/definitions/deleteCell.js.map +0 -1
  362. package/lib/tools/operations/deleteCell.d.ts +0 -49
  363. package/lib/tools/operations/deleteCell.js +0 -103
  364. package/lib/tools/operations/deleteCell.js.map +0 -1
  365. package/lib/tools/schemas/deleteCell.d.ts +0 -20
  366. package/lib/tools/schemas/deleteCell.js +0 -24
  367. package/lib/tools/schemas/deleteCell.js.map +0 -1
package/README.md CHANGED
@@ -28,11 +28,44 @@ The Jupyter(Lab) notebook is a tool that allows data scientist to analyse datase
28
28
 
29
29
  In terms of technical stack, the Jupyter(Lab) user interface is built on top of Lumino, which is an imperative way to build user interface and **can not** be consumed by industry standard declarative frameworks like React.js. As a user interface developer, if you want to create a custom data product on top of Jupyter, you have to stick to Lumino and carry-on the full notebook interface not tailored to your specific needs. This is not what you want. You just want to expose what you need, you want to develop with your favorite toolkit (like React.js) and you also want to integrate on a per-component basis the Jupyter functionality in your application.
30
30
 
31
- Although a developer can embed a React.js component into JupyterLab, the reverse is not possible: you can not embed JupyterLab into a React.js application. To solve that issue, Jupyter-React ships components to easily create a React.js data product compatible with the Jupyter ecosystem. Those components can be used in any React.js application, and also in static websites like Docusaurus, Next.js or Remix. They wrap underneath the JupyterLab code and allow developing React.js applications with code execution capability. State management is based on Redux, and Mobx is to be added.
32
-
33
- <div align="center" style="text-align: center">
34
- <img alt="Jupyter React Communication" src="https://datalayer-jupyter-examples.s3.amazonaws.com/jupyter-react-communication.png" />
35
- </div>
31
+ Although a developer can embed a React.js component into JupyterLab, the reverse is not possible: you can not embed JupyterLab into a React.js application. To solve that issue, Jupyter-React ships components to easily create a React.js data product compatible with the Jupyter ecosystem. Those components can be used in any React.js application, and also in static websites like Docusaurus, Next.js or Remix. They wrap underneath the JupyterLab code and allow developing React.js applications with code execution capability. State management is based on Zustand.
32
+
33
+ ```mermaid
34
+ flowchart LR
35
+ subgraph Host["Host React Application"]
36
+ HA[Components]
37
+ end
38
+
39
+ subgraph Zustand["Zustand Store"]
40
+ ZA[Actions]
41
+ ZS[State]
42
+ end
43
+
44
+ subgraph JupyterUI["Jupyter UI"]
45
+ JR[React Components]
46
+ end
47
+
48
+ subgraph JupyterLab["JupyterLab/Lumino"]
49
+ LC[Commands]
50
+ LS[Signals]
51
+ LW[Widgets]
52
+ end
53
+
54
+ subgraph Kernel["Jupyter Server"]
55
+ K[Kernel]
56
+ end
57
+
58
+ HA -->|"dispatch"| ZA
59
+ ZA -->|"proxy"| LC
60
+ LC -->|"execute"| LW
61
+ LW -->|"request"| K
62
+
63
+ K -->|"response"| LS
64
+ LS -->|"emit"| ZS
65
+ ZS -->|"subscribe"| HA
66
+
67
+ JR -.->|"wraps"| LW
68
+ ```
36
69
 
37
70
  IPyWidgets are supported (the Comm feature needs to be fixed). JupyterLite and PyScript support is on the roadmap. Autocompletion is also available.
38
71
 
package/lib/app/App.js CHANGED
@@ -5,7 +5,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
5
5
  * MIT License
6
6
  */
7
7
  import { createRoot } from 'react-dom/client';
8
- import JupyterReact from './JupyterReact';
8
+ import JupyterReact from './JupyterReact.js';
9
9
  const div = document.createElement('div');
10
10
  document.body.appendChild(div);
11
11
  const root = createRoot(div);
@@ -9,10 +9,10 @@ import { Box } from '@primer/react';
9
9
  import { UnderlineNav } from '@primer/react';
10
10
  import { ReactJsIcon, RingedPlanetIcon } from '@datalayer/icons-react';
11
11
  import { ServerConnection } from '@jupyterlab/services';
12
- import { JupyterReactTheme } from '../theme';
13
- import { requestAPI } from '../jupyter/JupyterHandlers';
14
- import { AboutTab } from './tabs/AboutTab';
15
- import { ComponentsTab } from './tabs/ComponentsTab';
12
+ import { JupyterReactTheme } from '../theme/index.js';
13
+ import { requestAPI } from '../jupyter/JupyterHandlers.js';
14
+ import { AboutTab } from './tabs/AboutTab.js';
15
+ import { ComponentsTab } from './tabs/ComponentsTab.js';
16
16
  export const JupyterReact = (props) => {
17
17
  const { app } = props;
18
18
  const [tab, setTab] = useState(1);
package/lib/app/index.js CHANGED
@@ -3,5 +3,5 @@
3
3
  *
4
4
  * MIT License
5
5
  */
6
- export * from './JupyterReact';
6
+ export * from './JupyterReact.js';
7
7
  //# sourceMappingURL=index.js.map
@@ -6,11 +6,11 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
6
6
  */
7
7
  import { useState } from 'react';
8
8
  import { Box, NavList } from '@primer/react';
9
- import { FileBrowserComponent } from './components/FileBrowserComponent';
10
- import { CellComponent } from './components/CellComponent';
11
- import { NotebookComponent } from './components/NotebookComponent';
12
- import { IPyWidgetsComponent } from './components/IPyWidgetsComponent';
13
- import { ViewerComponent } from './components/ViewerComponent';
9
+ import { FileBrowserComponent } from './components/FileBrowserComponent.js';
10
+ import { CellComponent } from './components/CellComponent.js';
11
+ import { NotebookComponent } from './components/NotebookComponent.js';
12
+ import { IPyWidgetsComponent } from './components/IPyWidgetsComponent.js';
13
+ import { ViewerComponent } from './components/ViewerComponent.js';
14
14
  export const ComponentsTab = (props) => {
15
15
  const [nav, setNav] = useState(1);
16
16
  return (_jsx(_Fragment, { children: _jsxs(Box, { sx: { display: 'flex' }, children: [_jsx(Box, { children: _jsxs(NavList, { sx: {
@@ -4,8 +4,8 @@ import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
4
4
  *
5
5
  * MIT License
6
6
  */
7
- import { useJupyter } from '../../../jupyter';
8
- import { Cell } from '../../../components/cell/Cell';
7
+ import { useJupyter } from '../../../jupyter/index.js';
8
+ import { Cell } from '../../../components/cell/Cell.js';
9
9
  export const CellComponent = () => {
10
10
  const { defaultKernel } = useJupyter({ startDefaultKernel: true });
11
11
  return (_jsx(_Fragment, { children: defaultKernel && (_jsx(Cell, { source: "print('Hello \uD83E\uDE90 \u269B\uFE0F Jupyter React')", kernel: defaultKernel })) }));
@@ -4,8 +4,8 @@ import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
4
4
  *
5
5
  * MIT License
6
6
  */
7
- import { useJupyter } from './../../../jupyter/JupyterUse';
8
- import { FileBrowser } from '../../../components/filebrowser/FileBrowser';
7
+ import { useJupyter } from './../../../jupyter/JupyterUse.js';
8
+ import { FileBrowser } from '../../../components/filebrowser/FileBrowser.js';
9
9
  export const FileBrowserComponent = () => {
10
10
  const { serviceManager } = useJupyter();
11
11
  return serviceManager ? (_jsx(FileBrowser, { serviceManager: serviceManager })) : (_jsx(_Fragment, {}));
@@ -4,8 +4,8 @@ import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
4
4
  *
5
5
  * MIT License
6
6
  */
7
- import { OutputIPyWidgets } from '../../../components/output';
8
- import { view, state, } from './../../../examples/notebooks/OutputIPyWidgetsExample';
7
+ import { OutputIPyWidgets } from '../../../components/output/index.js';
8
+ import { view, state, } from './../../../examples/notebooks/OutputIPyWidgetsExample.js';
9
9
  export const IPyWidgetsComponent = () => {
10
10
  return (_jsx(_Fragment, { children: _jsx(OutputIPyWidgets, { view: view, state: state }) }));
11
11
  };
@@ -5,10 +5,10 @@ import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
5
5
  * MIT License
6
6
  */
7
7
  import { useMemo } from 'react';
8
- import { CellSidebarExtension } from '../../../components';
9
- import { Notebook } from '../../../components/notebook/Notebook';
10
- import { useJupyter } from '../../../jupyter';
11
- import { CellSidebarButton } from './../../../components/notebook/cell/sidebar/CellSidebarButton';
8
+ import { CellSidebarExtension } from '../../../components/index.js';
9
+ import { Notebook } from '../../../components/notebook/Notebook.js';
10
+ import { useJupyter } from '../../../jupyter/index.js';
11
+ import { CellSidebarButton } from './../../../components/notebook/cell/sidebar/CellSidebarButton.js';
12
12
  import NBFORMAT from './../../..//examples/notebooks/NotebookExample1.ipynb.json';
13
13
  export const NotebookComponent = () => {
14
14
  const { serviceManager, defaultKernel } = useJupyter({
@@ -4,7 +4,7 @@ import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
4
4
  *
5
5
  * MIT License
6
6
  */
7
- import Viewer from '../../../components/viewer/Viewer';
7
+ import Viewer from '../../../components/viewer/Viewer.js';
8
8
  // import NBFORMAT from '../../../examples/notebooks/IPyWidgetsExample.ipynb.json';
9
9
  export const ViewerComponent = () => {
10
10
  return (_jsx(_Fragment, { children: _jsx(Viewer, { nbformatUrl: 'https://raw.githubusercontent.com/anissa111/matplotlib-tutorial/main/notebooks/01-basic-matplotlib-tutorial.ipynb', outputs: true }) }));
package/lib/cell.d.ts ADDED
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Cell component entry point
3
+ *
4
+ * This is a separate entry point for tree-shaking.
5
+ * Import from '@datalayer/jupyter-react/cell' for smaller bundles.
6
+ */
7
+ export * from './components/cell';
package/lib/cell.js ADDED
@@ -0,0 +1,13 @@
1
+ /*
2
+ * Copyright (c) 2021-2023 Datalayer, Inc.
3
+ *
4
+ * MIT License
5
+ */
6
+ /**
7
+ * Cell component entry point
8
+ *
9
+ * This is a separate entry point for tree-shaking.
10
+ * Import from '@datalayer/jupyter-react/cell' for smaller bundles.
11
+ */
12
+ export * from './components/cell/index.js';
13
+ //# sourceMappingURL=cell.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cell.js","sourceRoot":"","sources":["../src/cell.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;GAKG;AAEH,cAAc,mBAAmB,CAAC"}
@@ -3,5 +3,5 @@
3
3
  *
4
4
  * MIT License
5
5
  */
6
- export * from './Button';
6
+ export * from './Button.js';
7
7
  //# sourceMappingURL=index.js.map
@@ -4,17 +4,20 @@ import { jsx as _jsx } from "react/jsx-runtime";
4
4
  *
5
5
  * MIT License
6
6
  */
7
- import { useState, useEffect } from 'react';
7
+ import { useState, useEffect, useRef } from 'react';
8
8
  import { CodeCell } from '@jupyterlab/cells';
9
+ import { Spinner } from '@primer/react';
9
10
  import { Box } from '@datalayer/primer-addons';
10
- import { newUuid } from '../../utils';
11
- import { Lumino } from '../lumino';
12
- import { CellAdapter } from './CellAdapter';
13
- import { useCellsStore } from './CellState';
11
+ import { newUuid } from '../../utils/index.js';
12
+ import { Lumino } from '../lumino/index.js';
13
+ import { CellAdapter } from './CellAdapter.js';
14
+ import { useCellsStore } from './CellState.js';
14
15
  export const Cell = ({ autoStart = true, id: providedId, kernel, outputs = [], showToolbar = true, source = '', type = 'code', }) => {
15
16
  const [id] = useState(providedId || newUuid());
16
17
  const [adapter, setAdapter] = useState();
17
18
  const cellsStore = useCellsStore();
19
+ // Use refs to prevent multiple adapter creations
20
+ const adapterCreatingRef = useRef(false);
18
21
  const handleCellInitEvents = (adapter) => {
19
22
  adapter.cell.model.contentChanged.connect((cellModel, _) => {
20
23
  cellsStore.setSource(id, cellModel.sharedModel.getSource());
@@ -38,8 +41,10 @@ export const Cell = ({ autoStart = true, id: providedId, kernel, outputs = [], s
38
41
  });
39
42
  };
40
43
  useEffect(() => {
41
- if (!adapter) {
42
- kernel?.ready.then(() => {
44
+ // Guard against multiple adapter creations using a ref
45
+ if (!adapter && !adapterCreatingRef.current && kernel) {
46
+ adapterCreatingRef.current = true;
47
+ kernel.ready.then(() => {
43
48
  const adapter = new CellAdapter({
44
49
  id,
45
50
  type,
@@ -98,12 +103,12 @@ export const Cell = ({ autoStart = true, id: providedId, kernel, outputs = [], s
98
103
  position: 'relative',
99
104
  },
100
105
  '& .jp-Cell-outputArea': {
101
- paddingBottom: '30px',
106
+ paddingBottom: '2px',
102
107
  },
103
108
  '& .jp-CodeMirrorEditor': {
104
109
  cursor: 'text !important',
105
110
  },
106
- }, children: _jsx(Lumino, { children: adapter.panel }) })) : (_jsx(Box, { children: "Loading Jupyter Cell..." }));
111
+ }, children: _jsx(Lumino, { children: adapter.panel }) })) : (_jsx(Box, { display: "flex", justifyContent: "center", alignItems: "center", p: 4, children: _jsx(Spinner, { size: "medium" }) }));
107
112
  };
108
113
  export default Cell;
109
114
  //# sourceMappingURL=Cell.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Cell.js","sourceRoot":"","sources":["../../../src/components/cell/Cell.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Cell.js","sourceRoot":"","sources":["../../../src/components/cell/Cell.tsx"],"names":[],"mappings":"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"}
@@ -14,12 +14,12 @@ import { Completer, CompleterModel, CompletionHandler, ProviderReconciliator, Ke
14
14
  import { RenderMimeRegistry, standardRendererFactories as initialFactories, } from '@jupyterlab/rendermime';
15
15
  import { runIcon } from '@jupyterlab/ui-components';
16
16
  import { createStandaloneCell, } from '@jupyter/ydoc';
17
- import { execute as executeOutput } from './../output/OutputExecutor';
18
- import { ClassicWidgetManager, WIDGET_MIMETYPE, WidgetRenderer, } from '../../jupyter/ipywidgets/classic';
19
- import { requireLoader as loader } from '../../jupyter/ipywidgets/libembed-amd';
20
- import getMarked from '../notebook/marked/marked';
21
- import CellCommands from './CellCommands';
22
- import { cellsStore } from './CellState';
17
+ import { execute as executeOutput } from './../output/OutputExecutor.js';
18
+ import { ClassicWidgetManager, WIDGET_MIMETYPE, WidgetRenderer, } from '../../jupyter/ipywidgets/classic/index.js';
19
+ import { requireLoader as loader } from '../../jupyter/ipywidgets/libembed-amd.js';
20
+ import getMarked from '../notebook/marked/marked.js';
21
+ import CellCommands from './CellCommands.js';
22
+ import { cellsStore } from './CellState.js';
23
23
  export class CellAdapter {
24
24
  _id;
25
25
  _outputs;
@@ -3,8 +3,8 @@
3
3
  *
4
4
  * MIT License
5
5
  */
6
- export * from './Cell';
7
- export * from './CellAdapter';
8
- export * from './CellCommands';
9
- export * from './CellState';
6
+ export * from './Cell.js';
7
+ export * from './CellAdapter.js';
8
+ export * from './CellCommands.js';
9
+ export * from './CellState.js';
10
10
  //# sourceMappingURL=index.js.map
@@ -10,9 +10,9 @@ import { EditorState, Prec } from '@codemirror/state';
10
10
  import { keymap, EditorView } from '@codemirror/view';
11
11
  import { Compartment } from '@codemirror/state';
12
12
  import { python } from '@codemirror/lang-python';
13
- import useOutputsStore from '../output/OutputState';
14
- import codeMirrorTheme from './CodeMirrorTheme';
15
- import CodeMirrorOutputToolbar from './CodeMirrorOutputToolbar';
13
+ import useOutputsStore from '../output/OutputState.js';
14
+ import codeMirrorTheme from './CodeMirrorTheme.js';
15
+ import CodeMirrorOutputToolbar from './CodeMirrorOutputToolbar.js';
16
16
  export const CodeMirrorEditor = (props) => {
17
17
  const { code, codePre, outputAdapter, autoRun, disableRun, sourceId, toolbarPosition, insertText, kernel, } = props;
18
18
  const outputStore = useOutputsStore();
@@ -3,8 +3,8 @@
3
3
  *
4
4
  * MIT License
5
5
  */
6
- export * from './CodeMirrorEditor';
7
- export { CodeMirrorDatalayerEditor } from './CodeMirrorEditor';
8
- export * from './CodeMirrorOutputToolbar';
9
- export * from './CodeMirrorTheme';
6
+ export * from './CodeMirrorEditor.js';
7
+ export { CodeMirrorDatalayerEditor } from './CodeMirrorEditor.js';
8
+ export * from './CodeMirrorOutputToolbar.js';
9
+ export * from './CodeMirrorTheme.js';
10
10
  //# sourceMappingURL=index.js.map
@@ -4,8 +4,8 @@ import { jsx as _jsx } from "react/jsx-runtime";
4
4
  *
5
5
  * MIT License
6
6
  */
7
- import CommandAdapter from './CommandsAdapter';
8
- import Lumino from '../lumino/Lumino';
7
+ import CommandAdapter from './CommandsAdapter.js';
8
+ import Lumino from '../lumino/Lumino.js';
9
9
  export const Commands = () => {
10
10
  const commandsAdapter = new CommandAdapter();
11
11
  return _jsx(Lumino, { children: commandsAdapter.panel });
@@ -3,6 +3,6 @@
3
3
  *
4
4
  * MIT License
5
5
  */
6
- export * from './Commands';
7
- export * from './CommandsAdapter';
6
+ export * from './Commands.js';
7
+ export * from './CommandsAdapter.js';
8
8
  //# sourceMappingURL=index.js.map
@@ -5,10 +5,10 @@ import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
5
5
  * MIT License
6
6
  */
7
7
  import { useState, useEffect } from 'react';
8
- import { useJupyter } from './../../jupyter/JupyterUse';
9
- import Lumino from '../lumino/Lumino';
10
- import ConsoleAdapter from './ConsoleAdapter';
11
- import useConsoleStore from './ConsoleState';
8
+ import { useJupyter } from './../../jupyter/JupyterUse.js';
9
+ import Lumino from '../lumino/Lumino.js';
10
+ import ConsoleAdapter from './ConsoleAdapter.js';
11
+ import useConsoleStore from './ConsoleState.js';
12
12
  import './Console.css';
13
13
  export const Console = (options) => {
14
14
  const { defaultKernel, serviceManager } = useJupyter();
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * MIT License
5
5
  */
6
- export * from './Console';
7
- export * from './ConsoleAdapter';
8
- export * from './ConsoleState';
6
+ export * from './Console.js';
7
+ export * from './ConsoleAdapter.js';
8
+ export * from './ConsoleState.js';
9
9
  //# sourceMappingURL=index.js.map
@@ -5,8 +5,8 @@ import { jsx as _jsx } from "react/jsx-runtime";
5
5
  * MIT License
6
6
  */
7
7
  import { useState, useEffect } from 'react';
8
- import LuminoDetached from '../lumino/LuminoDetached';
9
- import DialogAdapter from './DialogAdapter';
8
+ import LuminoDetached from '../lumino/LuminoDetached.js';
9
+ import DialogAdapter from './DialogAdapter.js';
10
10
  export const Dialog = () => {
11
11
  const [dialogAdapter, _] = useState(new DialogAdapter());
12
12
  useEffect(() => {
@@ -3,6 +3,6 @@
3
3
  *
4
4
  * MIT License
5
5
  */
6
- export * from './Dialog';
7
- export * from './DialogAdapter';
6
+ export * from './Dialog.js';
7
+ export * from './DialogAdapter.js';
8
8
  //# sourceMappingURL=index.js.map
@@ -3,5 +3,5 @@
3
3
  *
4
4
  * MIT License
5
5
  */
6
- export * from './Environment';
6
+ export * from './Environment.js';
7
7
  //# sourceMappingURL=index.js.map
@@ -7,7 +7,7 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
7
7
  import { useState, useEffect, useReducer } from 'react';
8
8
  import { TreeView } from '@primer/react';
9
9
  import { FileIcon } from '@primer/octicons-react';
10
- import JupyterServices from './../../jupyter/services/JupyterServices';
10
+ import JupyterServices from './../../jupyter/services/JupyterServices.js';
11
11
  const initialTree = {
12
12
  id: 'root',
13
13
  name: 'File Browser',
@@ -3,5 +3,5 @@
3
3
  *
4
4
  * MIT License
5
5
  */
6
- export * from './FileBrowser';
6
+ export * from './FileBrowser.js';
7
7
  //# sourceMappingURL=index.js.map
@@ -5,9 +5,9 @@ import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
5
5
  * MIT License
6
6
  */
7
7
  import { useState, useEffect } from 'react';
8
- import { useJupyter } from '../../jupyter/JupyterUse';
9
- import Lumino from '../lumino/Lumino';
10
- import FileManagerAdapter from './lab/FileManagerAdapter';
8
+ import { useJupyter } from '../../jupyter/JupyterUse.js';
9
+ import Lumino from '../lumino/Lumino.js';
10
+ import FileManagerAdapter from './lab/FileManagerAdapter.js';
11
11
  export const FileManagerJupyterLab = () => {
12
12
  const { serviceManager } = useJupyter();
13
13
  const [fileManagerAdapter, setFileManagerAdapter] = useState();
@@ -3,6 +3,6 @@
3
3
  *
4
4
  * MIT License
5
5
  */
6
- export * from './FileManagerJupyterLab';
7
- // export * from './lab';
6
+ export * from './FileManagerJupyterLab.js';
7
+ // export * from './lab/index.js';
8
8
  //# sourceMappingURL=index.js.map
@@ -3,5 +3,5 @@
3
3
  *
4
4
  * MIT License
5
5
  */
6
- export * from './FileManagerAdapter';
6
+ export * from './FileManagerAdapter.js';
7
7
  //# sourceMappingURL=index.js.map
@@ -3,23 +3,23 @@
3
3
  *
4
4
  * MIT License
5
5
  */
6
- export * from './button';
7
- export * from './cell';
8
- export * from './codemirror';
9
- export * from './commands';
10
- export * from './console';
11
- export * from './dialog';
12
- export * from './environment';
13
- export * from './filebrowser';
14
- export * from './filemanager';
15
- export * from './jupyterlab';
16
- export * from './kernel';
17
- export * from './lumino';
18
- export * from './notebook';
19
- export * from './output';
20
- export * from './settings';
21
- export * from './terminal';
22
- export * from './textinput';
23
- export * from './utils';
24
- export * from './viewer';
6
+ export * from './button/index.js';
7
+ export * from './cell/index.js';
8
+ export * from './codemirror/index.js';
9
+ export * from './commands/index.js';
10
+ export * from './console/index.js';
11
+ export * from './dialog/index.js';
12
+ export * from './environment/index.js';
13
+ export * from './filebrowser/index.js';
14
+ export * from './filemanager/index.js';
15
+ export * from './jupyterlab/index.js';
16
+ export * from './kernel/index.js';
17
+ export * from './lumino/index.js';
18
+ export * from './notebook/index.js';
19
+ export * from './output/index.js';
20
+ export * from './settings/index.js';
21
+ export * from './terminal/index.js';
22
+ export * from './textinput/index.js';
23
+ export * from './utils/index.js';
24
+ export * from './viewer/index.js';
25
25
  //# sourceMappingURL=index.js.map
@@ -7,10 +7,10 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
7
7
  import { memo, useState, useEffect, useMemo, useRef } from 'react';
8
8
  import { Box } from '@primer/react';
9
9
  import { PageConfig } from '@jupyterlab/coreutils';
10
- import { useJupyter } from '../../jupyter/JupyterUse';
11
- import { JupyterLabAppCorePlugins } from './JupyterLabAppPlugins';
12
- import JupyterLabAppAdapter from './JupyterLabAppAdapter';
13
- import JupyterLabAppCss from './JupyterLabAppCss';
10
+ import { useJupyter } from '../../jupyter/JupyterUse.js';
11
+ import { JupyterLabAppCorePlugins } from './JupyterLabAppPlugins.js';
12
+ import JupyterLabAppAdapter from './JupyterLabAppAdapter.js';
13
+ import JupyterLabAppCss from './JupyterLabAppCss.js';
14
14
  // The webpack public path needs to be set before loading the CSS assets.
15
15
  globalThis.__webpack_public_path__ =
16
16
  PageConfig.getOption('fullStaticUrl') + '/';
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * MIT License
5
5
  */
6
- export * from './JupyterLabApp';
7
- export * from './JupyterLabAppAdapter';
8
- export * from './JupyterLabAppPlugins';
6
+ export * from './JupyterLabApp.js';
7
+ export * from './JupyterLabAppAdapter.js';
8
+ export * from './JupyterLabAppPlugins.js';
9
9
  //# sourceMappingURL=index.js.map
@@ -3,6 +3,7 @@ import Kernel from '../../jupyter/kernel/Kernel';
3
3
  export type KernelActionMenuProps = {
4
4
  kernel?: Kernel;
5
5
  outputAdapter?: OutputAdapter;
6
+ onClearOutputs?: () => void;
6
7
  };
7
8
  export declare const KernelActionMenu: (props: KernelActionMenuProps) => import("react/jsx-runtime").JSX.Element;
8
9
  export default KernelActionMenu;
@@ -8,14 +8,27 @@ import { ActionMenu, ActionList, IconButton } from '@primer/react';
8
8
  import { KebabHorizontalIcon, StopIcon, PaintbrushIcon, } from '@primer/octicons-react';
9
9
  import { RestartIcon } from '@datalayer/icons-react';
10
10
  export const KernelActionMenu = (props) => {
11
- const { kernel, outputAdapter } = props;
12
- return (_jsxs(ActionMenu, { children: [_jsx(ActionMenu.Anchor, { children: _jsx(IconButton, { "aria-labelledby": "", icon: KebabHorizontalIcon, variant: "invisible" }) }), _jsx(ActionMenu.Overlay, { children: _jsxs(ActionList, { children: [kernel && (_jsxs(ActionList.Item, { onSelect: e => {
13
- kernel.interrupt();
14
- }, children: [_jsx(ActionList.LeadingVisual, { children: _jsx(StopIcon, {}) }), "Interrupt kernel"] })), kernel && (_jsxs(ActionList.Item, { onSelect: e => {
15
- kernel.restart();
16
- }, children: [_jsx(ActionList.LeadingVisual, { children: _jsx(RestartIcon, {}) }), "Restart kernel"] })), outputAdapter && (_jsxs(ActionList.Item, { variant: "danger", onSelect: e => {
17
- outputAdapter.clear();
18
- }, children: [_jsx(ActionList.LeadingVisual, { children: _jsx(PaintbrushIcon, {}) }), "Clear outputs"] }))] }) })] }));
11
+ const { kernel, outputAdapter, onClearOutputs } = props;
12
+ return (_jsxs(ActionMenu, { children: [_jsx(ActionMenu.Anchor, { children: _jsx(IconButton, { "aria-labelledby": "", icon: KebabHorizontalIcon, variant: "invisible" }) }), _jsx(ActionMenu.Overlay, { children: _jsxs(ActionList, { children: [_jsxs(ActionList.Item, { disabled: !kernel, onSelect: e => {
13
+ if (kernel) {
14
+ kernel.interrupt();
15
+ }
16
+ }, children: [_jsx(ActionList.LeadingVisual, { children: _jsx(StopIcon, {}) }), "Interrupt kernel"] }), _jsxs(ActionList.Item, { disabled: !kernel, onSelect: e => {
17
+ if (kernel) {
18
+ kernel.restart();
19
+ }
20
+ }, children: [_jsx(ActionList.LeadingVisual, { children: _jsx(RestartIcon, {}) }), "Restart kernel"] }), _jsxs(ActionList.Item, { variant: "danger", disabled: false, onSelect: e => {
21
+ console.log('[KernelActionMenu] Clear outputs clicked - onClearOutputs:', !!onClearOutputs, 'outputAdapter:', !!outputAdapter);
22
+ if (onClearOutputs) {
23
+ onClearOutputs();
24
+ }
25
+ else if (outputAdapter) {
26
+ outputAdapter.clear();
27
+ }
28
+ else {
29
+ console.warn('[KernelActionMenu] No clear method available!');
30
+ }
31
+ }, children: [_jsx(ActionList.LeadingVisual, { children: _jsx(PaintbrushIcon, {}) }), "Clear outputs"] })] }) })] }));
19
32
  };
20
33
  export default KernelActionMenu;
21
34
  //# sourceMappingURL=KernelActionMenu.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"KernelActionMenu.js","sourceRoot":"","sources":["../../../src/components/kernel/KernelActionMenu.tsx"],"names":[],"mappings":";AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EACL,mBAAmB,EACnB,QAAQ,EACR,cAAc,GACf,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AASrD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,KAA4B,EAAE,EAAE;IAC/D,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,KAAK,CAAC;IACxC,OAAO,CACL,MAAC,UAAU,eACT,KAAC,UAAU,CAAC,MAAM,cAChB,KAAC,UAAU,uBACO,EAAE,EAClB,IAAI,EAAE,mBAAmB,EACzB,OAAO,EAAC,WAAW,GACnB,GACgB,EACpB,KAAC,UAAU,CAAC,OAAO,cACjB,MAAC,UAAU,eACR,MAAM,IAAI,CACT,MAAC,UAAU,CAAC,IAAI,IACd,QAAQ,EAAE,CAAC,CAAC,EAAE;gCACZ,MAAM,CAAC,SAAS,EAAE,CAAC;4BACrB,CAAC,aAED,KAAC,UAAU,CAAC,aAAa,cACvB,KAAC,QAAQ,KAAG,GACa,wBAEX,CACnB,EACA,MAAM,IAAI,CACT,MAAC,UAAU,CAAC,IAAI,IACd,QAAQ,EAAE,CAAC,CAAC,EAAE;gCACZ,MAAM,CAAC,OAAO,EAAE,CAAC;4BACnB,CAAC,aAED,KAAC,UAAU,CAAC,aAAa,cACvB,KAAC,WAAW,KAAG,GACU,sBAEX,CACnB,EACA,aAAa,IAAI,CAChB,MAAC,UAAU,CAAC,IAAI,IACd,OAAO,EAAC,QAAQ,EAChB,QAAQ,EAAE,CAAC,CAAC,EAAE;gCACZ,aAAa,CAAC,KAAK,EAAE,CAAC;4BACxB,CAAC,aAED,KAAC,UAAU,CAAC,aAAa,cACvB,KAAC,cAAc,KAAG,GACO,qBAEX,CACnB,IACU,GACM,IACV,CACd,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"KernelActionMenu.js","sourceRoot":"","sources":["../../../src/components/kernel/KernelActionMenu.tsx"],"names":[],"mappings":";AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EACL,mBAAmB,EACnB,QAAQ,EACR,cAAc,GACf,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAUrD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,KAA4B,EAAE,EAAE;IAC/D,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,cAAc,EAAE,GAAG,KAAK,CAAC;IACxD,OAAO,CACL,MAAC,UAAU,eACT,KAAC,UAAU,CAAC,MAAM,cAChB,KAAC,UAAU,uBACO,EAAE,EAClB,IAAI,EAAE,mBAAmB,EACzB,OAAO,EAAC,WAAW,GACnB,GACgB,EACpB,KAAC,UAAU,CAAC,OAAO,cACjB,MAAC,UAAU,eACT,MAAC,UAAU,CAAC,IAAI,IACd,QAAQ,EAAE,CAAC,MAAM,EACjB,QAAQ,EAAE,CAAC,CAAC,EAAE;gCACZ,IAAI,MAAM,EAAE,CAAC;oCACX,MAAM,CAAC,SAAS,EAAE,CAAC;gCACrB,CAAC;4BACH,CAAC,aAED,KAAC,UAAU,CAAC,aAAa,cACvB,KAAC,QAAQ,KAAG,GACa,wBAEX,EAClB,MAAC,UAAU,CAAC,IAAI,IACd,QAAQ,EAAE,CAAC,MAAM,EACjB,QAAQ,EAAE,CAAC,CAAC,EAAE;gCACZ,IAAI,MAAM,EAAE,CAAC;oCACX,MAAM,CAAC,OAAO,EAAE,CAAC;gCACnB,CAAC;4BACH,CAAC,aAED,KAAC,UAAU,CAAC,aAAa,cACvB,KAAC,WAAW,KAAG,GACU,sBAEX,EAClB,MAAC,UAAU,CAAC,IAAI,IACd,OAAO,EAAC,QAAQ,EAChB,QAAQ,EAAE,KAAK,EACf,QAAQ,EAAE,CAAC,CAAC,EAAE;gCACZ,OAAO,CAAC,GAAG,CACT,4DAA4D,EAC5D,CAAC,CAAC,cAAc,EAChB,gBAAgB,EAChB,CAAC,CAAC,aAAa,CAChB,CAAC;gCACF,IAAI,cAAc,EAAE,CAAC;oCACnB,cAAc,EAAE,CAAC;gCACnB,CAAC;qCAAM,IAAI,aAAa,EAAE,CAAC;oCACzB,aAAa,CAAC,KAAK,EAAE,CAAC;gCACxB,CAAC;qCAAM,CAAC;oCACN,OAAO,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;gCAChE,CAAC;4BACH,CAAC,aAED,KAAC,UAAU,CAAC,aAAa,cACvB,KAAC,cAAc,KAAG,GACO,qBAEX,IACP,GACM,IACV,CACd,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
@@ -5,8 +5,8 @@ import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
5
5
  * MIT License
6
6
  */
7
7
  import { useState, useEffect } from 'react';
8
- import Lumino from '../lumino/Lumino';
9
- import { KernelSpyView } from './inspector/widget';
8
+ import Lumino from '../lumino/Lumino.js';
9
+ import { KernelSpyView } from './inspector/widget.js';
10
10
  import { Box } from '@primer/react';
11
11
  export const KernelInspector = (props) => {
12
12
  const { kernel } = props;