@datalayer/core 1.0.25 → 1.1.43

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 (359) hide show
  1. package/README.md +11 -134
  2. package/lib/api/index.d.ts +0 -9
  3. package/lib/api/index.js +0 -9
  4. package/lib/cli-login.js +167 -0
  5. package/lib/client/auth/AuthenticationManager.d.ts +3 -3
  6. package/lib/client/auth/AuthenticationManager.js +13 -13
  7. package/lib/client/auth/strategies.d.ts +2 -2
  8. package/lib/client/auth/strategies.js +6 -6
  9. package/lib/client/base.d.ts +9 -12
  10. package/lib/client/base.js +17 -19
  11. package/lib/client/index.d.ts +10 -98
  12. package/lib/client/index.js +12 -21
  13. package/lib/client/mixins/IAMMixin.js +26 -26
  14. package/lib/components/auth/Login.js +2 -2
  15. package/lib/components/avatars/UserAvatar.d.ts +16 -0
  16. package/lib/components/avatars/UserAvatar.js +47 -0
  17. package/lib/components/avatars/index.d.ts +1 -0
  18. package/lib/components/avatars/index.js +1 -0
  19. package/lib/components/billing/BillableAccountSelect.js +4 -0
  20. package/lib/components/billing/index.js +4 -0
  21. package/lib/components/context/index.d.ts +0 -1
  22. package/lib/components/context/index.js +0 -1
  23. package/lib/components/display/DisplayHandle.d.ts +12 -0
  24. package/lib/components/display/DisplayHandle.js +11 -0
  25. package/lib/components/display/LiveRelativeTime.js +4 -0
  26. package/lib/components/display/index.d.ts +1 -0
  27. package/lib/components/display/index.js +1 -0
  28. package/lib/components/flashes/index.d.ts +0 -1
  29. package/lib/components/flashes/index.js +0 -1
  30. package/lib/components/index.d.ts +0 -1
  31. package/lib/components/index.js +0 -1
  32. package/lib/components/principal/Principal.d.ts +7 -0
  33. package/lib/components/principal/Principal.js +153 -16
  34. package/lib/components/principal/PrincipalAvatar.d.ts +1 -1
  35. package/lib/components/principal/PrincipalAvatar.js +4 -28
  36. package/lib/components/principal/PrincipalBadge.js +4 -4
  37. package/lib/components/principal/PrincipalDetailsOverlay.d.ts +4 -2
  38. package/lib/components/principal/PrincipalDetailsOverlay.js +27 -7
  39. package/lib/components/principal/PrincipalSwitcherMenu.js +79 -42
  40. package/lib/components/progress/index.d.ts +0 -1
  41. package/lib/components/progress/index.js +0 -1
  42. package/lib/components/sharing/ShareAccessComponent.d.ts +3 -2
  43. package/lib/components/sharing/ShareAccessComponent.js +194 -147
  44. package/lib/components/sharing/SharingEditor.js +4 -0
  45. package/lib/components/snippets/index.d.ts +1 -1
  46. package/lib/components/snippets/index.js +1 -1
  47. package/lib/components/students/StudentResultCircle.d.ts +21 -0
  48. package/lib/components/students/StudentResultCircle.js +59 -0
  49. package/lib/components/students/index.d.ts +1 -1
  50. package/lib/components/students/index.js +1 -1
  51. package/lib/components/time/LiveRelativeTime.js +4 -0
  52. package/lib/components/time/index.js +4 -0
  53. package/lib/components/timeline/index.js +4 -0
  54. package/lib/components/tokens/index.d.ts +1 -1
  55. package/lib/components/tokens/index.js +1 -1
  56. package/lib/components/toolbars/index.d.ts +1 -3
  57. package/lib/components/toolbars/index.js +1 -3
  58. package/lib/config/Configuration.d.ts +13 -13
  59. package/lib/config/Configuration.js +5 -5
  60. package/lib/hooks/cacheConverters.d.ts +21 -0
  61. package/lib/hooks/cacheConverters.js +110 -0
  62. package/lib/hooks/index.d.ts +0 -2
  63. package/lib/hooks/index.js +0 -2
  64. package/lib/hooks/useCache.d.ts +64 -35
  65. package/lib/hooks/useCache.js +661 -306
  66. package/lib/hooks/useDatalayer.js +3 -1
  67. package/lib/hooks/useIAM.js +2 -4
  68. package/lib/hooks/useLocationHandles.d.ts +3 -1
  69. package/lib/hooks/useLocationHandles.js +2 -1
  70. package/lib/hooks/usePrincipalStore.d.ts +2 -2
  71. package/lib/hooks/usePrincipalStore.js +97 -14
  72. package/lib/hooks/useSelectedPrincipal.js +1 -1
  73. package/lib/hooks/useUser.js +19 -2
  74. package/lib/index.d.ts +1 -6
  75. package/lib/index.js +1 -13
  76. package/lib/main.js +3 -3
  77. package/lib/mocks/index.js +1 -1
  78. package/lib/mocks/models/index.d.ts +0 -1
  79. package/lib/mocks/models/index.js +0 -1
  80. package/lib/models/Datasource.d.ts +2 -2
  81. package/lib/models/IAM.d.ts +1 -1
  82. package/lib/models/School.d.ts +12 -3
  83. package/lib/models/Secret.d.ts +2 -2
  84. package/lib/models/Student.d.ts +13 -3
  85. package/lib/models/Usage.d.ts +11 -1
  86. package/lib/models/UserDTO.d.ts +2 -2
  87. package/lib/models/UserSettings.d.ts +1 -1
  88. package/lib/models/UserSettings.js +1 -1
  89. package/lib/models/index.d.ts +0 -30
  90. package/lib/models/index.js +0 -30
  91. package/lib/otel/client/OtelClient.d.ts +2 -2
  92. package/lib/otel/client/OtelClient.js +2 -2
  93. package/lib/otel/hooks/index.js +5 -5
  94. package/lib/otel/types.d.ts +1 -1
  95. package/lib/otel/views/OtelLive.js +1 -1
  96. package/lib/routes/index.d.ts +1 -0
  97. package/lib/routes/index.js +1 -0
  98. package/lib/routes/publicPaths.d.ts +23 -0
  99. package/lib/routes/publicPaths.js +74 -0
  100. package/lib/state/State.d.ts +0 -12
  101. package/lib/state/State.js +0 -12
  102. package/lib/state/substates/CoreState.js +13 -13
  103. package/lib/state/substates/IAMState.d.ts +1 -1
  104. package/lib/state/substates/IAMState.js +14 -14
  105. package/lib/state/substates/LayoutState.d.ts +12 -1
  106. package/lib/state/substates/SurveysState.d.ts +1 -1
  107. package/lib/state/substates/SurveysState.js +10 -10
  108. package/lib/state/substates/index.d.ts +0 -7
  109. package/lib/state/substates/index.js +0 -7
  110. package/lib/utils/Handles.js +3 -1
  111. package/lib/utils/index.d.ts +0 -1
  112. package/lib/utils/index.js +0 -1
  113. package/lib/views/api-keys/APIKeys.js +12 -3
  114. package/lib/views/datasources/DatasourceDetail.d.ts +1 -1
  115. package/lib/views/datasources/DatasourceNew.d.ts +1 -1
  116. package/lib/views/datasources/Datasources.d.ts +1 -1
  117. package/lib/views/datasources/Datasources.js +12 -3
  118. package/lib/views/iam/SignInSimple.d.ts +37 -1
  119. package/lib/views/iam/SignInSimple.js +111 -13
  120. package/package.json +5 -3
  121. package/lib/App.css +0 -47
  122. package/lib/App.d.ts +0 -3
  123. package/lib/App.js +0 -21
  124. package/lib/api/runtimes/checkpoints.d.ts +0 -122
  125. package/lib/api/runtimes/checkpoints.js +0 -118
  126. package/lib/api/runtimes/environments.d.ts +0 -9
  127. package/lib/api/runtimes/environments.js +0 -29
  128. package/lib/api/runtimes/healthz.d.ts +0 -15
  129. package/lib/api/runtimes/healthz.js +0 -44
  130. package/lib/api/runtimes/index.d.ts +0 -12
  131. package/lib/api/runtimes/index.js +0 -16
  132. package/lib/api/runtimes/runtimes.d.ts +0 -138
  133. package/lib/api/runtimes/runtimes.js +0 -230
  134. package/lib/api/runtimes/snapshots.d.ts +0 -38
  135. package/lib/api/runtimes/snapshots.js +0 -82
  136. package/lib/api/scheduler/index.d.ts +0 -6
  137. package/lib/api/scheduler/index.js +0 -10
  138. package/lib/api/scheduler/schedules.d.ts +0 -85
  139. package/lib/api/scheduler/schedules.js +0 -78
  140. package/lib/api/spacer/documents.d.ts +0 -12
  141. package/lib/api/spacer/documents.js +0 -43
  142. package/lib/api/spacer/healthz.d.ts +0 -15
  143. package/lib/api/spacer/healthz.js +0 -44
  144. package/lib/api/spacer/index.d.ts +0 -15
  145. package/lib/api/spacer/index.js +0 -19
  146. package/lib/api/spacer/items.d.ts +0 -25
  147. package/lib/api/spacer/items.js +0 -55
  148. package/lib/api/spacer/lexicals.d.ts +0 -34
  149. package/lib/api/spacer/lexicals.js +0 -89
  150. package/lib/api/spacer/notebooks.d.ts +0 -34
  151. package/lib/api/spacer/notebooks.js +0 -89
  152. package/lib/api/spacer/spaces.d.ts +0 -84
  153. package/lib/api/spacer/spaces.js +0 -170
  154. package/lib/api/spacer/users.d.ts +0 -9
  155. package/lib/api/spacer/users.js +0 -29
  156. package/lib/client/mixins/RuntimesMixin.d.ts +0 -93
  157. package/lib/client/mixins/RuntimesMixin.js +0 -229
  158. package/lib/client/mixins/SpacerMixin.d.ts +0 -210
  159. package/lib/client/mixins/SpacerMixin.js +0 -615
  160. package/lib/client/utils/spacerUtils.d.ts +0 -18
  161. package/lib/client/utils/spacerUtils.js +0 -32
  162. package/lib/collaboration/DatalayerCollaboration.d.ts +0 -13
  163. package/lib/collaboration/DatalayerCollaboration.js +0 -28
  164. package/lib/collaboration/DatalayerCollaborationProvider.d.ts +0 -60
  165. package/lib/collaboration/DatalayerCollaborationProvider.js +0 -163
  166. package/lib/collaboration/index.d.ts +0 -2
  167. package/lib/collaboration/index.js +0 -6
  168. package/lib/components/context/SpaceSelect.d.ts +0 -2
  169. package/lib/components/context/SpaceSelect.js +0 -42
  170. package/lib/components/flashes/FlashDisclaimer.d.ts +0 -2
  171. package/lib/components/flashes/FlashDisclaimer.js +0 -17
  172. package/lib/components/icons/ArtifactIcon.d.ts +0 -10
  173. package/lib/components/icons/ArtifactIcon.js +0 -58
  174. package/lib/components/icons/index.d.ts +0 -1
  175. package/lib/components/icons/index.js +0 -5
  176. package/lib/components/nbgrader/NbGradesDetails.d.ts +0 -5
  177. package/lib/components/nbgrader/NbGradesDetails.js +0 -14
  178. package/lib/components/nbgrader/index.d.ts +0 -1
  179. package/lib/components/nbgrader/index.js +0 -5
  180. package/lib/components/progress/CreditsIndicator.d.ts +0 -33
  181. package/lib/components/progress/CreditsIndicator.js +0 -23
  182. package/lib/components/runtimes/RuntimeCellVariables.d.ts +0 -39
  183. package/lib/components/runtimes/RuntimeCellVariables.js +0 -172
  184. package/lib/components/runtimes/RuntimeCellVariablesDialog.d.ts +0 -37
  185. package/lib/components/runtimes/RuntimeCellVariablesDialog.js +0 -101
  186. package/lib/components/runtimes/RuntimeLauncherDialog.d.ts +0 -57
  187. package/lib/components/runtimes/RuntimeLauncherDialog.js +0 -275
  188. package/lib/components/runtimes/RuntimePickerBase.d.ts +0 -69
  189. package/lib/components/runtimes/RuntimePickerBase.js +0 -122
  190. package/lib/components/runtimes/RuntimePickerCell.d.ts +0 -34
  191. package/lib/components/runtimes/RuntimePickerCell.js +0 -104
  192. package/lib/components/runtimes/RuntimePickerNotebook.d.ts +0 -42
  193. package/lib/components/runtimes/RuntimePickerNotebook.js +0 -232
  194. package/lib/components/runtimes/RuntimeReservationControl.d.ts +0 -47
  195. package/lib/components/runtimes/RuntimeReservationControl.js +0 -42
  196. package/lib/components/runtimes/RuntimeSimplePicker.d.ts +0 -38
  197. package/lib/components/runtimes/RuntimeSimplePicker.js +0 -155
  198. package/lib/components/runtimes/RuntimeTransfer.d.ts +0 -16
  199. package/lib/components/runtimes/RuntimeTransfer.js +0 -5
  200. package/lib/components/runtimes/RuntimeUtils.d.ts +0 -17
  201. package/lib/components/runtimes/RuntimeUtils.js +0 -178
  202. package/lib/components/runtimes/RuntimeVariables.d.ts +0 -38
  203. package/lib/components/runtimes/RuntimeVariables.js +0 -75
  204. package/lib/components/runtimes/index.d.ts +0 -11
  205. package/lib/components/runtimes/index.js +0 -15
  206. package/lib/components/scheduler/ScheduleMenu.d.ts +0 -54
  207. package/lib/components/scheduler/ScheduleMenu.js +0 -154
  208. package/lib/components/scheduler/index.d.ts +0 -1
  209. package/lib/components/scheduler/index.js +0 -5
  210. package/lib/components/snapshots/SandboxSnapshotMenu.d.ts +0 -33
  211. package/lib/components/snapshots/SandboxSnapshotMenu.js +0 -169
  212. package/lib/components/snapshots/index.d.ts +0 -1
  213. package/lib/components/snapshots/index.js +0 -5
  214. package/lib/components/snippets/SnippetDialog.d.ts +0 -42
  215. package/lib/components/snippets/SnippetDialog.js +0 -42
  216. package/lib/components/students/StudentItemStatus.d.ts +0 -7
  217. package/lib/components/students/StudentItemStatus.js +0 -66
  218. package/lib/components/tokens/SpaceVariantToken.d.ts +0 -5
  219. package/lib/components/tokens/SpaceVariantToken.js +0 -23
  220. package/lib/components/toolbars/AssignmentEditorToolbar.d.ts +0 -4
  221. package/lib/components/toolbars/AssignmentEditorToolbar.js +0 -18
  222. package/lib/components/toolbars/DocumentEditorToolbar.d.ts +0 -2
  223. package/lib/components/toolbars/DocumentEditorToolbar.js +0 -12
  224. package/lib/components/toolbars/NotebookEditorToolbar.d.ts +0 -29
  225. package/lib/components/toolbars/NotebookEditorToolbar.js +0 -30
  226. package/lib/examples/CellExample.d.ts +0 -6
  227. package/lib/examples/CellExample.js +0 -20
  228. package/lib/examples/NotebookExample.d.ts +0 -6
  229. package/lib/examples/NotebookExample.js +0 -19
  230. package/lib/examples/lexical-theme.css +0 -436
  231. package/lib/examples/notebooks/IPyWidgetsExample.ipynb.json +0 -101
  232. package/lib/examples/notebooks/IPyWidgetsExampleWithState.ipynb.json +0 -112
  233. package/lib/examples/notebooks/Lite.ipynb.json +0 -128
  234. package/lib/examples/notebooks/Matplotlib.ipynb.json +0 -137
  235. package/lib/examples/notebooks/NotebookExample1.ipynb.json +0 -126
  236. package/lib/examples/notebooks/NotebookExample2.ipynb.json +0 -48
  237. package/lib/examples/notebooks/NotebookOutputs.ipynb.json +0 -49
  238. package/lib/examples/notebooks/NotebookToCExample.ipynb.json +0 -102
  239. package/lib/examples/notebooks/PyGWalker.ipynb.json +0 -55
  240. package/lib/hooks/useCellOutputshot.d.ts +0 -4
  241. package/lib/hooks/useCellOutputshot.js +0 -25
  242. package/lib/hooks/useProjects.d.ts +0 -628
  243. package/lib/hooks/useProjects.js +0 -190
  244. package/lib/hooks/useRuntimes.d.ts +0 -5
  245. package/lib/hooks/useRuntimes.js +0 -34
  246. package/lib/mocks/jupyter/index.js +0 -5
  247. package/lib/mocks/models/CourseMock.d.ts +0 -6
  248. package/lib/mocks/models/CourseMock.js +0 -29
  249. package/lib/mocks/models/SpaceMock.d.ts +0 -6
  250. package/lib/mocks/models/SpaceMock.js +0 -25
  251. package/lib/models/Assignment.d.ts +0 -7
  252. package/lib/models/Assignment.js +0 -5
  253. package/lib/models/Cell.d.ts +0 -8
  254. package/lib/models/Cell.js +0 -5
  255. package/lib/models/CodeBlock.d.ts +0 -10
  256. package/lib/models/CodeBlock.js +0 -5
  257. package/lib/models/CodeSandboxSnapshot.d.ts +0 -92
  258. package/lib/models/CodeSandboxSnapshot.js +0 -13
  259. package/lib/models/CodeSandboxSnapshotDTO.d.ts +0 -173
  260. package/lib/models/CodeSandboxSnapshotDTO.js +0 -139
  261. package/lib/models/CodefeedBlocks.d.ts +0 -7
  262. package/lib/models/CodefeedBlocks.js +0 -5
  263. package/lib/models/Content.d.ts +0 -5
  264. package/lib/models/Content.js +0 -5
  265. package/lib/models/Course.d.ts +0 -17
  266. package/lib/models/Course.js +0 -5
  267. package/lib/models/Dataset.d.ts +0 -16
  268. package/lib/models/Dataset.js +0 -5
  269. package/lib/models/Document.d.ts +0 -8
  270. package/lib/models/Document.js +0 -5
  271. package/lib/models/Environment.d.ts +0 -86
  272. package/lib/models/Environment.js +0 -5
  273. package/lib/models/EnvironmentDTO.d.ts +0 -125
  274. package/lib/models/EnvironmentDTO.js +0 -88
  275. package/lib/models/Exercise.d.ts +0 -16
  276. package/lib/models/Exercise.js +0 -5
  277. package/lib/models/Item.d.ts +0 -20
  278. package/lib/models/Item.js +0 -5
  279. package/lib/models/ItemDTO.d.ts +0 -74
  280. package/lib/models/ItemDTO.js +0 -186
  281. package/lib/models/ItemType.d.ts +0 -2
  282. package/lib/models/ItemType.js +0 -5
  283. package/lib/models/Lesson.d.ts +0 -5
  284. package/lib/models/Lesson.js +0 -5
  285. package/lib/models/LexicalDTO.d.ts +0 -155
  286. package/lib/models/LexicalDTO.js +0 -157
  287. package/lib/models/Library.d.ts +0 -10
  288. package/lib/models/Library.js +0 -5
  289. package/lib/models/Notebook.d.ts +0 -11
  290. package/lib/models/Notebook.js +0 -5
  291. package/lib/models/NotebookDTO.d.ts +0 -96
  292. package/lib/models/NotebookDTO.js +0 -153
  293. package/lib/models/Page.d.ts +0 -41
  294. package/lib/models/Page.js +0 -25
  295. package/lib/models/PageTag.d.ts +0 -19
  296. package/lib/models/PageTag.js +0 -94
  297. package/lib/models/ProjectDTO.d.ts +0 -89
  298. package/lib/models/ProjectDTO.js +0 -131
  299. package/lib/models/Runtime.d.ts +0 -123
  300. package/lib/models/Runtime.js +0 -18
  301. package/lib/models/RuntimeDTO.d.ts +0 -191
  302. package/lib/models/RuntimeDTO.js +0 -204
  303. package/lib/models/Space.d.ts +0 -35
  304. package/lib/models/Space.js +0 -66
  305. package/lib/models/SpaceDTO.d.ts +0 -334
  306. package/lib/models/SpaceDTO.js +0 -244
  307. package/lib/models/SpaceItem.d.ts +0 -10
  308. package/lib/models/SpaceItem.js +0 -5
  309. package/lib/models/SpaceMember.d.ts +0 -6
  310. package/lib/models/SpaceMember.js +0 -5
  311. package/lib/models/StudentItem.d.ts +0 -21
  312. package/lib/models/StudentItem.js +0 -5
  313. package/lib/services/DatalayerServiceManager.d.ts +0 -22
  314. package/lib/services/DatalayerServiceManager.js +0 -69
  315. package/lib/services/index.d.ts +0 -4
  316. package/lib/services/index.js +0 -7
  317. package/lib/services/reconnectToRuntime.d.ts +0 -32
  318. package/lib/services/reconnectToRuntime.js +0 -59
  319. package/lib/state/substates/CellState.d.ts +0 -12
  320. package/lib/state/substates/CellState.js +0 -22
  321. package/lib/state/substates/DocumentState.d.ts +0 -10
  322. package/lib/state/substates/DocumentState.js +0 -14
  323. package/lib/state/substates/GradeState.d.ts +0 -10
  324. package/lib/state/substates/GradeState.js +0 -14
  325. package/lib/state/substates/JupyterLabState.d.ts +0 -16
  326. package/lib/state/substates/JupyterLabState.js +0 -17
  327. package/lib/state/substates/NbformatState.d.ts +0 -13
  328. package/lib/state/substates/NbformatState.js +0 -16
  329. package/lib/state/substates/RuntimesState.d.ts +0 -79
  330. package/lib/state/substates/RuntimesState.js +0 -180
  331. package/lib/state/substates/SpaceState.d.ts +0 -11
  332. package/lib/state/substates/SpaceState.js +0 -16
  333. package/lib/stateful/index.d.ts +0 -2
  334. package/lib/stateful/index.js +0 -6
  335. package/lib/stateful/jupyter/exec/Python.d.ts +0 -5
  336. package/lib/stateful/jupyter/exec/Python.js +0 -100
  337. package/lib/stateful/jupyter/exec/Snippets.d.ts +0 -105
  338. package/lib/stateful/jupyter/exec/Snippets.js +0 -101
  339. package/lib/stateful/jupyter/exec/index.d.ts +0 -2
  340. package/lib/stateful/jupyter/exec/index.js +0 -6
  341. package/lib/stateful/jupyter/index.d.ts +0 -2
  342. package/lib/stateful/jupyter/index.js +0 -6
  343. package/lib/stateful/jupyter/kernelsHandler.d.ts +0 -8
  344. package/lib/stateful/jupyter/kernelsHandler.js +0 -39
  345. package/lib/stateful/runtimes/actions.d.ts +0 -102
  346. package/lib/stateful/runtimes/actions.js +0 -249
  347. package/lib/stateful/runtimes/apis.d.ts +0 -273
  348. package/lib/stateful/runtimes/apis.js +0 -5
  349. package/lib/stateful/runtimes/index.d.ts +0 -5
  350. package/lib/stateful/runtimes/index.js +0 -9
  351. package/lib/stateful/runtimes/settings.d.ts +0 -15
  352. package/lib/stateful/runtimes/settings.js +0 -31
  353. package/lib/stateful/runtimes/snapshots.d.ts +0 -25
  354. package/lib/stateful/runtimes/snapshots.js +0 -150
  355. package/lib/stateful/runtimes/utils.d.ts +0 -7
  356. package/lib/stateful/runtimes/utils.js +0 -14
  357. package/lib/utils/Cells.d.ts +0 -2
  358. package/lib/utils/Cells.js +0 -28
  359. /package/lib/{mocks/jupyter/index.d.ts → cli-login.d.ts} +0 -0
@@ -1,30 +0,0 @@
1
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
- /*
3
- * Copyright (c) 2023-2025 Datalayer, Inc.
4
- * Distributed under the terms of the Modified BSD License.
5
- */
6
- import { NotebookCommandIds } from '@datalayer/jupyter-react';
7
- import { Button } from '@primer/react';
8
- import { PlayIcon, StopIcon } from '@primer/octicons-react';
9
- import { useEffect, useState } from 'react';
10
- /**
11
- * Notebook editor toolbar
12
- */
13
- export function NotebookEditorToolbar(props) {
14
- const { commandRegistry, runtimeDesc, sessionConnection } = props;
15
- const [kernelStatus, setKernelStatus] = useState();
16
- useEffect(() => {
17
- const onStatusChanged = () => {
18
- setKernelStatus(sessionConnection?.kernel?.status);
19
- };
20
- onStatusChanged();
21
- sessionConnection?.statusChanged.connect(onStatusChanged);
22
- sessionConnection?.connectionStatusChanged.connect(onStatusChanged);
23
- return () => {
24
- sessionConnection?.statusChanged.disconnect(onStatusChanged);
25
- sessionConnection?.connectionStatusChanged.disconnect(onStatusChanged);
26
- };
27
- }, [sessionConnection]);
28
- return (_jsxs(_Fragment, { children: [_jsx(Button, { variant: "invisible", size: "small", leadingVisual: PlayIcon, disabled: !runtimeDesc?.location || kernelStatus === 'busy', onClick: (e) => commandRegistry?.execute(NotebookCommandIds.runAll), children: "Run all" }), _jsx(Button, { variant: "invisible", size: "small", leadingVisual: StopIcon, disabled: !runtimeDesc?.location || kernelStatus !== 'busy', onClick: (e) => commandRegistry?.execute(NotebookCommandIds.interrupt), children: "Interrupt" })] }));
29
- }
30
- export default NotebookEditorToolbar;
@@ -1,6 +0,0 @@
1
- import { ServiceManager } from '@jupyterlab/services';
2
- type ICellExampleProps = {
3
- serviceManager?: ServiceManager.IManager;
4
- };
5
- export declare const CellExample: (props: ICellExampleProps) => import("react/jsx-runtime").JSX.Element;
6
- export default CellExample;
@@ -1,20 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { JupyterReactTheme, Cell, KernelIndicator, useJupyter, useKernelsStore, useCellsStore, } from '@datalayer/jupyter-react';
3
- import { Button, Label } from '@primer/react';
4
- import { Box } from '@datalayer/primer-addons';
5
- const CELL_ID = 'cell-example-1';
6
- const DEFAULT_SOURCE = `from IPython.display import display
7
-
8
- for i in range(10):
9
- display('I am a long string which is repeatedly added to the dom in separated divs: %d' % i)`;
10
- const CellExampleContent = (props) => {
11
- // const { serviceManager } = props;
12
- const { defaultKernel } = useJupyter({ startDefaultKernel: true });
13
- const cellsStore = useCellsStore();
14
- const kernelsStore = useKernelsStore();
15
- return (_jsxs(Box, { p: 4, children: [_jsx(Box, { as: "h1", children: "A Jupyter Cell" }), _jsxs(Box, { children: ["Source: ", cellsStore.getSource(CELL_ID)] }), _jsxs(Box, { children: ["Outputs Count: ", cellsStore.getOutputsCount(CELL_ID)] }), _jsxs(Box, { children: ["Kernel State:", ' ', _jsx(Label, { children: defaultKernel && kernelsStore.getExecutionState(defaultKernel.id) })] }), _jsxs(Box, { children: ["Kernel Phase:", ' ', _jsx(Label, { children: defaultKernel && kernelsStore.getExecutionPhase(defaultKernel.id) })] }), _jsxs(Box, { display: "flex", children: [_jsx(Box, { children: "Kernel Indicator:" }), _jsx(Box, { ml: 3, children: _jsx(KernelIndicator, { kernel: defaultKernel && defaultKernel.connection }) })] }), _jsx(Box, { children: _jsx(Button, { onClick: () => cellsStore.execute(CELL_ID), children: "Run cell" }) }), _jsx(Cell, { source: DEFAULT_SOURCE, id: CELL_ID, kernel: defaultKernel })] }));
16
- };
17
- export const CellExample = (props) => {
18
- return (_jsx(JupyterReactTheme, { children: _jsx(CellExampleContent, { ...props }) }));
19
- };
20
- export default CellExample;
@@ -1,6 +0,0 @@
1
- import { ServiceManager } from '@jupyterlab/services';
2
- type INotebookExampleProps = {
3
- serviceManager?: ServiceManager.IManager;
4
- };
5
- export declare const NotebookExample: (props: INotebookExampleProps) => import("react/jsx-runtime").JSX.Element;
6
- export default NotebookExample;
@@ -1,19 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
- /*
3
- * Copyright (c) 2023-2025 Datalayer, Inc.
4
- * Distributed under the terms of the Modified BSD License.
5
- */
6
- import { useMemo } from 'react';
7
- import { Box } from '@datalayer/primer-addons';
8
- import { Notebook, NotebookToolbar, CellSidebarExtension, CellSidebarButton, } from '@datalayer/jupyter-react';
9
- import nbformatExample from './notebooks/NotebookExample1.ipynb.json';
10
- const NOTEBOOK_ID = 'notebook-example-1';
11
- export const NotebookExample = (props) => {
12
- const { serviceManager } = props;
13
- const extensions = useMemo(() => [new CellSidebarExtension({ factory: CellSidebarButton })], []);
14
- if (!serviceManager) {
15
- return (_jsxs(Box, { as: "h1", children: ["A Jupyter Notebook", _jsx("div", { children: "Loading..." })] }));
16
- }
17
- return (_jsxs(_Fragment, { children: [_jsx(Box, { as: "h1", children: "A Jupyter Notebook" }), _jsx(Notebook, { id: NOTEBOOK_ID, nbformat: nbformatExample, serviceManager: serviceManager, startDefaultKernel: true, extensions: extensions, Toolbar: NotebookToolbar })] }));
18
- };
19
- export default NotebookExample;
@@ -1,436 +0,0 @@
1
- /*
2
- * Copyright (c) 2023-2025 Datalayer, Inc.
3
- * Distributed under the terms of the Modified BSD License.
4
- */
5
-
6
- /**
7
- * Lexical Editor Theme - Integrated with JupyterReactTheme
8
- *
9
- * This theme uses CSS variables from:
10
- * - JupyterLab theme (--jp-* variables)
11
- * - Primer design system (--bgColor-*, --fgColor-*, --borderColor-*, etc.)
12
- * - Automatically adapts to light/dark mode via JupyterReactTheme
13
- *
14
- * Based on Lexical's theming guide: https://lexical.dev/docs/getting-started/theming
15
- */
16
-
17
- /* ============================================
18
- Text Formatting
19
- ============================================ */
20
-
21
- .lexical-theme-bold {
22
- font-weight: bold;
23
- }
24
-
25
- .lexical-theme-italic {
26
- font-style: italic;
27
- }
28
-
29
- .lexical-theme-underline {
30
- text-decoration: underline;
31
- }
32
-
33
- .lexical-theme-strikethrough {
34
- text-decoration: line-through;
35
- }
36
-
37
- .lexical-theme-code {
38
- background-color: var(--jp-layout-color2, var(--bgColor-neutral-muted));
39
- border-radius: 3px;
40
- padding: 2px 4px;
41
- font-family: var(
42
- --jp-code-font-family,
43
- 'Monaco',
44
- 'Menlo',
45
- 'Ubuntu Mono',
46
- 'Consolas',
47
- monospace
48
- );
49
- font-size: var(--jp-code-font-size, 0.9em);
50
- color: var(--jp-mirror-editor-keyword-color, var(--fgColor-accent));
51
- }
52
-
53
- .lexical-theme-subscript {
54
- font-size: 0.8em;
55
- vertical-align: sub;
56
- }
57
-
58
- .lexical-theme-superscript {
59
- font-size: 0.8em;
60
- vertical-align: super;
61
- }
62
-
63
- /* ============================================
64
- Block Elements
65
- ============================================ */
66
-
67
- .lexical-theme-paragraph {
68
- margin: 0;
69
- padding: 8px 0;
70
- line-height: var(--jp-content-line-height, 1.6);
71
- color: var(--jp-ui-font-color1, var(--fgColor-default));
72
- }
73
-
74
- .lexical-theme-heading-h1 {
75
- font-size: var(--jp-content-heading-font-size1, 2em);
76
- font-weight: 600;
77
- margin: 0.67em 0;
78
- line-height: var(--jp-content-heading-line-height, 1.3);
79
- color: var(--jp-ui-font-color0, var(--fgColor-default));
80
- }
81
-
82
- .lexical-theme-heading-h2 {
83
- font-size: var(--jp-content-heading-font-size2, 1.5em);
84
- font-weight: 600;
85
- margin: 0.75em 0;
86
- line-height: var(--jp-content-heading-line-height, 1.3);
87
- color: var(--jp-ui-font-color0, var(--fgColor-default));
88
- }
89
-
90
- .lexical-theme-heading-h3 {
91
- font-size: var(--jp-content-heading-font-size3, 1.25em);
92
- font-weight: 600;
93
- margin: 0.83em 0;
94
- line-height: var(--jp-content-heading-line-height, 1.3);
95
- color: var(--jp-ui-font-color0, var(--fgColor-default));
96
- }
97
-
98
- .lexical-theme-heading-h4 {
99
- font-size: var(--jp-content-heading-font-size4, 1.1em);
100
- font-weight: 600;
101
- margin: 1em 0;
102
- line-height: var(--jp-content-heading-line-height, 1.3);
103
- color: var(--jp-ui-font-color0, var(--fgColor-default));
104
- }
105
-
106
- .lexical-theme-heading-h5 {
107
- font-size: var(--jp-content-heading-font-size5, 1em);
108
- font-weight: 600;
109
- margin: 1.33em 0;
110
- line-height: var(--jp-content-heading-line-height, 1.3);
111
- color: var(--jp-ui-font-color0, var(--fgColor-default));
112
- }
113
-
114
- .lexical-theme-heading-h6 {
115
- font-size: 0.875em;
116
- font-weight: 600;
117
- margin: 1.67em 0;
118
- line-height: var(--jp-content-heading-line-height, 1.3);
119
- color: var(--jp-ui-font-color1, var(--fgColor-muted));
120
- }
121
-
122
- .lexical-theme-quote {
123
- margin: 16px 0;
124
- padding: 8px 16px;
125
- border-left: 4px solid
126
- var(--jp-border-color2, var(--borderColor-accent-emphasis));
127
- background-color: var(--jp-layout-color2, var(--bgColor-neutral-muted));
128
- font-style: italic;
129
- color: var(--jp-ui-font-color2, var(--fgColor-muted));
130
- }
131
-
132
- /* ============================================
133
- Lists
134
- ============================================ */
135
-
136
- .lexical-theme-list-ul {
137
- margin: 8px 0;
138
- padding-left: 24px;
139
- list-style-type: disc;
140
- color: var(--jp-ui-font-color1, var(--fgColor-default));
141
- }
142
-
143
- .lexical-theme-list-ol {
144
- margin: 8px 0;
145
- padding-left: 24px;
146
- list-style-type: decimal;
147
- color: var(--jp-ui-font-color1, var(--fgColor-default));
148
- }
149
-
150
- .lexical-theme-list-listitem {
151
- margin: 4px 0;
152
- line-height: var(--jp-content-line-height, 1.6);
153
- }
154
-
155
- .lexical-theme-list-nested-listitem {
156
- list-style-type: none;
157
- }
158
-
159
- .lexical-theme-list-checklist {
160
- padding-left: 4px;
161
- list-style-type: none;
162
- }
163
-
164
- .lexical-theme-list-listitemChecked {
165
- text-decoration: line-through;
166
- opacity: 0.7;
167
- }
168
-
169
- .lexical-theme-list-listitemUnchecked {
170
- text-decoration: none;
171
- }
172
-
173
- /* ============================================
174
- Code Blocks
175
- ============================================ */
176
-
177
- /* Code blocks styled like Jupyter cells */
178
- code.lexical-theme-code-block,
179
- code.lexical-theme-code-block[spellcheck],
180
- code.lexical-theme-code-block[data-highlight-language] {
181
- background-color: #f7f7f7 !important;
182
- background: #f7f7f7 !important;
183
- border: 1px solid #d3d3d3 !important;
184
- border-radius: 6px !important;
185
- border-left: 3px solid #0366d6 !important;
186
- padding: 8px 16px 8px 70px !important;
187
- margin: 16px 0 0 0 !important;
188
- overflow-x: auto !important;
189
- font-family: var(
190
- --jp-code-font-family,
191
- 'Monaco',
192
- 'Menlo',
193
- 'Ubuntu Mono',
194
- monospace
195
- ) !important;
196
- font-size: 13px !important;
197
- line-height: 1.6 !important;
198
- color: #24292e !important;
199
- box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1) !important;
200
- display: block !important;
201
- min-height: 50px !important;
202
- position: relative !important;
203
- }
204
-
205
- /* Display line numbers from data-gutter attribute */
206
- code.lexical-theme-code-block::before {
207
- content: attr(data-gutter);
208
- position: absolute !important;
209
- left: 0 !important;
210
- top: 0 !important;
211
- bottom: 0 !important;
212
- width: 50px !important;
213
- padding: 8px 8px 8px 0 !important;
214
- color: #999 !important;
215
- text-align: right !important;
216
- white-space: pre !important;
217
- font-family: monospace !important;
218
- font-size: 13px !important;
219
- line-height: 1.6 !important;
220
- background-color: #f7f7f7 !important;
221
- border-right: 1px solid #e1e4e8 !important;
222
- }
223
-
224
- /* Force transparent background on all child elements */
225
- code.lexical-theme-code-block *,
226
- code.lexical-theme-code-block span,
227
- code.lexical-theme-code-block span[class*='lexical-theme-code-token'],
228
- code.lexical-theme-code-block span[data-lexical-text],
229
- code.lexical-theme-code-block br {
230
- background-color: transparent !important;
231
- background: transparent !important;
232
- }
233
-
234
- code.lexical-theme-code-block:hover {
235
- border-color: #66afe9 !important;
236
- box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15) !important;
237
- }
238
-
239
- /* Code syntax highlighting tokens using JupyterLab CodeMirror colors */
240
- .lexical-theme-code-tokenComment {
241
- color: var(--jp-mirror-editor-comment-color, var(--fgColor-muted));
242
- }
243
-
244
- .lexical-theme-code-tokenPunctuation {
245
- color: var(--jp-content-font-color1, var(--fgColor-default));
246
- }
247
-
248
- .lexical-theme-code-tokenProperty {
249
- color: var(--jp-mirror-editor-attribute-color, var(--fgColor-accent));
250
- }
251
-
252
- .lexical-theme-code-tokenSelector {
253
- color: var(--jp-mirror-editor-builtin-color, var(--fgColor-done));
254
- }
255
-
256
- .lexical-theme-code-tokenOperator {
257
- color: var(--jp-mirror-editor-operator-color, var(--fgColor-danger));
258
- }
259
-
260
- .lexical-theme-code-tokenAttr {
261
- color: var(--jp-mirror-editor-attribute-color, var(--fgColor-accent));
262
- }
263
-
264
- .lexical-theme-code-tokenVariable {
265
- color: var(--jp-mirror-editor-variable-color, var(--fgColor-attention));
266
- }
267
-
268
- .lexical-theme-code-tokenFunction {
269
- color: var(--jp-mirror-editor-def-color, var(--fgColor-done));
270
- }
271
-
272
- .lexical-theme-code-tokenKeyword {
273
- color: var(--jp-mirror-editor-keyword-color, var(--fgColor-danger));
274
- }
275
-
276
- .lexical-theme-code-tokenString {
277
- color: var(--jp-mirror-editor-string-color, var(--fgColor-success));
278
- }
279
-
280
- .lexical-theme-code-tokenNumber {
281
- color: var(--jp-mirror-editor-number-color, var(--fgColor-accent));
282
- }
283
-
284
- .lexical-theme-code-tokenBoolean {
285
- color: var(--jp-mirror-editor-number-color, var(--fgColor-accent));
286
- }
287
-
288
- .lexical-theme-code-tokenRegex {
289
- color: var(--jp-mirror-editor-string-color, var(--fgColor-success));
290
- }
291
-
292
- /* ============================================
293
- Links
294
- ============================================ */
295
-
296
- .lexical-theme-link {
297
- color: var(--jp-content-link-color, var(--fgColor-accent));
298
- text-decoration: none;
299
- cursor: pointer;
300
- }
301
-
302
- .lexical-theme-link:hover {
303
- text-decoration: underline;
304
- color: var(--jp-content-link-color, var(--fgColor-accent));
305
- }
306
-
307
- .lexical-theme-autolink {
308
- color: var(--jp-content-link-color, var(--fgColor-accent));
309
- text-decoration: none;
310
- }
311
-
312
- .lexical-theme-autolink:hover {
313
- text-decoration: underline;
314
- }
315
-
316
- /* ============================================
317
- Tables
318
- ============================================ */
319
-
320
- .lexical-theme-table {
321
- border-collapse: collapse;
322
- border: 1px solid var(--jp-border-color2, var(--borderColor-default));
323
- margin: 16px 0;
324
- width: 100%;
325
- }
326
-
327
- .lexical-theme-tableCell {
328
- border: 1px solid var(--jp-border-color2, var(--borderColor-default));
329
- padding: 8px 12px;
330
- min-width: 75px;
331
- vertical-align: top;
332
- color: var(--jp-ui-font-color1, var(--fgColor-default));
333
- }
334
-
335
- .lexical-theme-tableCellHeader {
336
- background-color: var(--jp-layout-color2, var(--bgColor-neutral-muted));
337
- border: 1px solid var(--jp-border-color2, var(--borderColor-default));
338
- padding: 8px 12px;
339
- font-weight: 600;
340
- text-align: left;
341
- color: var(--jp-ui-font-color0, var(--fgColor-default));
342
- }
343
-
344
- /* ============================================
345
- Special Nodes
346
- ============================================ */
347
-
348
- .lexical-theme-hashtag {
349
- color: var(--jp-brand-color1, var(--fgColor-accent));
350
- background-color: var(--jp-layout-color2, var(--bgColor-accent-muted));
351
- border-radius: 3px;
352
- padding: 2px 4px;
353
- cursor: pointer;
354
- }
355
-
356
- .lexical-theme-image {
357
- max-width: 100%;
358
- height: auto;
359
- margin: 16px 0;
360
- border-radius: var(--jp-border-radius, 6px);
361
- }
362
-
363
- .lexical-theme-hr {
364
- border: none;
365
- border-top: 2px solid var(--jp-border-color2, var(--borderColor-default));
366
- margin: 24px 0;
367
- }
368
-
369
- .lexical-theme-mark {
370
- background-color: var(--jp-warn-color3, rgba(255, 212, 0, 0.4));
371
- padding: 2px 0;
372
- }
373
-
374
- /* ============================================
375
- Jupyter-specific Nodes
376
- ============================================ */
377
-
378
- /* Jupyter cells are styled by the jupyter-lexical components themselves.
379
- Do not add theme CSS here as it conflicts with the component's internal styling.
380
- The JupyterCellNode, JupyterInputNode, and JupyterOutputNode components
381
- handle their own styling and theming. */
382
-
383
- /* ============================================
384
- Editor Container Styles
385
- ============================================ */
386
-
387
- .lexical-editor-content {
388
- min-height: 450px;
389
- outline: none;
390
- padding: 16px;
391
- font-family: var(
392
- --jp-ui-font-family,
393
- -apple-system,
394
- BlinkMacSystemFont,
395
- 'Segoe UI',
396
- Helvetica,
397
- Arial,
398
- sans-serif
399
- );
400
- font-size: var(--jp-ui-font-size1, 16px);
401
- line-height: var(--jp-content-line-height, 1.6);
402
- color: var(--jp-ui-font-color1, var(--fgColor-default));
403
- background-color: var(--jp-layout-color1, var(--bgColor-default));
404
- }
405
-
406
- .lexical-editor-content:focus {
407
- outline: none;
408
- }
409
-
410
- .lexical-editor-inner {
411
- position: relative;
412
- background-color: var(--jp-layout-color1, var(--bgColor-default));
413
- }
414
-
415
- /* ============================================
416
- Placeholder
417
- ============================================ */
418
-
419
- .lexical-theme-placeholder {
420
- color: var(--jp-ui-font-color3, var(--fgColor-muted));
421
- overflow: hidden;
422
- position: absolute;
423
- text-overflow: ellipsis;
424
- top: 16px;
425
- left: 16px;
426
- font-size: var(--jp-ui-font-size1, 16px);
427
- user-select: none;
428
- pointer-events: none;
429
- }
430
-
431
- /* ============================================
432
- Dark Mode Adjustments
433
- ============================================ */
434
-
435
- /* Dark mode is handled automatically via CSS variables from JupyterReactTheme */
436
- /* The --jp-* and Primer variables change based on colormode */
@@ -1,101 +0,0 @@
1
- {
2
- "cells": [
3
- {
4
- "cell_type": "code",
5
- "execution_count": 1,
6
- "id": "3a86eccf-352d-480d-b1b0-4cf355921be9",
7
- "metadata": {},
8
- "outputs": [
9
- {
10
- "data": {
11
- "application/vnd.jupyter.widget-view+json": {
12
- "model_id": "c686864a5ad44793b53c9cf1b112fafe",
13
- "version_major": 2,
14
- "version_minor": 0
15
- },
16
- "text/plain": []
17
- },
18
- "metadata": {},
19
- "output_type": "display_data"
20
- }
21
- ],
22
- "source": ["import ipywidgets as widgets\n", "widgets.IntSlider()"]
23
- },
24
- {
25
- "cell_type": "code",
26
- "execution_count": 8,
27
- "id": "f347e0ac-7614-4643-8fed-e6b5dfb67bcd",
28
- "metadata": {},
29
- "outputs": [
30
- {
31
- "data": {
32
- "application/vnd.jupyter.widget-view+json": {
33
- "model_id": "e361a274319a4715ae5cfc8104c87224",
34
- "version_major": 2,
35
- "version_minor": 0
36
- },
37
- "text/plain": ["FloatText(value=0.0)"]
38
- },
39
- "metadata": {},
40
- "output_type": "display_data"
41
- },
42
- {
43
- "data": {
44
- "application/vnd.jupyter.widget-view+json": {
45
- "model_id": "859ac1871f56461fa8f2c97e6e18c4c4",
46
- "version_major": 2,
47
- "version_minor": 0
48
- },
49
- "text/plain": ["FloatSlider(value=0.0)"]
50
- },
51
- "metadata": {},
52
- "output_type": "display_data"
53
- }
54
- ],
55
- "source": [
56
- "from IPython.display import display\n",
57
- "a = widgets.FloatText()\n",
58
- "b = widgets.FloatSlider()\n",
59
- "display(a,b)\n",
60
- "mylink = widgets.jslink((a, 'value'), (b, 'value'))"
61
- ]
62
- },
63
- {
64
- "cell_type": "code",
65
- "execution_count": 7,
66
- "id": "07f52271-ccae-476d-83b9-715c96168c7c",
67
- "metadata": {},
68
- "outputs": [],
69
- "source": ["mylink.unlink()"]
70
- },
71
- {
72
- "cell_type": "code",
73
- "execution_count": null,
74
- "id": "81b15288-063d-412d-99db-c73453e18565",
75
- "metadata": {},
76
- "outputs": [],
77
- "source": []
78
- }
79
- ],
80
- "metadata": {
81
- "kernelspec": {
82
- "display_name": "Python 3 (ipykernel)",
83
- "language": "python",
84
- "name": "python3"
85
- },
86
- "language_info": {
87
- "codemirror_mode": {
88
- "name": "ipython",
89
- "version": 3
90
- },
91
- "file_extension": ".py",
92
- "mimetype": "text/x-python",
93
- "name": "python",
94
- "nbconvert_exporter": "python",
95
- "pygments_lexer": "ipython3",
96
- "version": "3.11.4"
97
- }
98
- },
99
- "nbformat": 4,
100
- "nbformat_minor": 5
101
- }