@datalayer/core 1.0.24 → 1.1.41

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 (364) hide show
  1. package/README.md +35 -24
  2. package/lib/api/constants.d.ts +3 -0
  3. package/lib/api/constants.js +3 -0
  4. package/lib/api/index.d.ts +0 -8
  5. package/lib/api/index.js +0 -8
  6. package/lib/cli-login.js +167 -0
  7. package/lib/client/base.d.ts +0 -3
  8. package/lib/client/base.js +0 -2
  9. package/lib/client/index.d.ts +10 -98
  10. package/lib/client/index.js +12 -21
  11. package/lib/components/avatars/UserAvatar.d.ts +16 -0
  12. package/lib/components/avatars/UserAvatar.js +47 -0
  13. package/lib/components/avatars/index.d.ts +1 -0
  14. package/lib/components/avatars/index.js +1 -0
  15. package/lib/components/billing/BillableAccountSelect.js +4 -0
  16. package/lib/components/billing/index.js +4 -0
  17. package/lib/components/checkout/StripeCheckout.js +48 -2
  18. package/lib/components/context/index.d.ts +0 -1
  19. package/lib/components/context/index.js +0 -1
  20. package/lib/components/display/DisplayHandle.d.ts +12 -0
  21. package/lib/components/display/DisplayHandle.js +11 -0
  22. package/lib/components/display/LiveRelativeTime.d.ts +1 -10
  23. package/lib/components/display/LiveRelativeTime.js +5 -16
  24. package/lib/components/display/index.d.ts +1 -0
  25. package/lib/components/display/index.js +1 -0
  26. package/lib/components/flashes/index.d.ts +0 -1
  27. package/lib/components/flashes/index.js +0 -1
  28. package/lib/components/index.d.ts +2 -0
  29. package/lib/components/index.js +2 -0
  30. package/lib/components/principal/Principal.d.ts +7 -0
  31. package/lib/components/principal/Principal.js +153 -16
  32. package/lib/components/principal/PrincipalAvatar.d.ts +1 -1
  33. package/lib/components/principal/PrincipalAvatar.js +4 -28
  34. package/lib/components/principal/PrincipalBadge.js +4 -4
  35. package/lib/components/principal/PrincipalDetailsOverlay.d.ts +4 -2
  36. package/lib/components/principal/PrincipalDetailsOverlay.js +27 -7
  37. package/lib/components/principal/PrincipalSwitcherMenu.js +76 -39
  38. package/lib/components/progress/index.d.ts +0 -1
  39. package/lib/components/progress/index.js +0 -1
  40. package/lib/components/sharing/ShareAccessComponent.d.ts +3 -2
  41. package/lib/components/sharing/ShareAccessComponent.js +180 -133
  42. package/lib/components/sharing/SharingEditor.js +4 -0
  43. package/lib/components/snippets/index.d.ts +1 -1
  44. package/lib/components/snippets/index.js +1 -1
  45. package/lib/components/students/StudentResultCircle.d.ts +21 -0
  46. package/lib/components/students/StudentResultCircle.js +59 -0
  47. package/lib/components/students/index.d.ts +1 -1
  48. package/lib/components/students/index.js +1 -1
  49. package/lib/components/time/LiveRelativeTime.d.ts +14 -0
  50. package/lib/components/time/LiveRelativeTime.js +43 -0
  51. package/lib/components/time/index.d.ts +1 -0
  52. package/lib/components/time/index.js +9 -0
  53. package/lib/components/timeline/Timeline.d.ts +20 -0
  54. package/lib/components/timeline/Timeline.js +90 -0
  55. package/lib/components/timeline/index.d.ts +1 -0
  56. package/lib/components/timeline/index.js +9 -0
  57. package/lib/components/tokens/index.d.ts +1 -1
  58. package/lib/components/tokens/index.js +1 -1
  59. package/lib/components/toolbars/index.d.ts +1 -3
  60. package/lib/components/toolbars/index.js +1 -3
  61. package/lib/hooks/cacheConverters.d.ts +21 -0
  62. package/lib/hooks/cacheConverters.js +110 -0
  63. package/lib/hooks/index.d.ts +0 -2
  64. package/lib/hooks/index.js +0 -2
  65. package/lib/hooks/useCache.d.ts +65 -36
  66. package/lib/hooks/useCache.js +424 -65
  67. package/lib/hooks/useDatalayer.js +3 -1
  68. package/lib/hooks/useIAM.js +1 -3
  69. package/lib/hooks/useLocationHandles.d.ts +3 -1
  70. package/lib/hooks/useLocationHandles.js +2 -1
  71. package/lib/hooks/usePrincipalStore.d.ts +2 -2
  72. package/lib/hooks/usePrincipalStore.js +97 -14
  73. package/lib/hooks/useProjectStore.d.ts +1 -1
  74. package/lib/hooks/useSelectedPrincipal.js +1 -1
  75. package/lib/hooks/useUser.js +19 -2
  76. package/lib/index.d.ts +1 -6
  77. package/lib/index.js +1 -13
  78. package/lib/main.js +3 -3
  79. package/lib/mocks/index.js +1 -1
  80. package/lib/mocks/models/index.d.ts +0 -1
  81. package/lib/mocks/models/index.js +0 -1
  82. package/lib/models/Datasource.d.ts +2 -2
  83. package/lib/models/IAM.d.ts +1 -1
  84. package/lib/models/IAMToken.d.ts +1 -1
  85. package/lib/models/School.d.ts +12 -3
  86. package/lib/models/Secret.d.ts +2 -2
  87. package/lib/models/Student.d.ts +13 -3
  88. package/lib/models/Usage.d.ts +11 -1
  89. package/lib/models/UserDTO.d.ts +2 -2
  90. package/lib/models/index.d.ts +0 -30
  91. package/lib/models/index.js +0 -30
  92. package/lib/routes/index.d.ts +1 -0
  93. package/lib/routes/index.js +1 -0
  94. package/lib/routes/publicPaths.d.ts +23 -0
  95. package/lib/routes/publicPaths.js +74 -0
  96. package/lib/state/State.d.ts +0 -12
  97. package/lib/state/State.js +0 -12
  98. package/lib/state/substates/CoreState.js +1 -1
  99. package/lib/state/substates/LayoutState.d.ts +12 -1
  100. package/lib/state/substates/index.d.ts +0 -7
  101. package/lib/state/substates/index.js +0 -7
  102. package/lib/utils/Date.d.ts +7 -0
  103. package/lib/utils/Date.js +43 -10
  104. package/lib/utils/Handles.js +3 -1
  105. package/lib/utils/index.d.ts +1 -1
  106. package/lib/utils/index.js +1 -1
  107. package/lib/views/api-keys/APIKeyEdit.d.ts +8 -0
  108. package/lib/views/{iam-tokens/IAMTokenEdit.js → api-keys/APIKeyEdit.js} +31 -31
  109. package/lib/views/api-keys/APIKeyNew.d.ts +8 -0
  110. package/lib/views/api-keys/APIKeyNew.js +143 -0
  111. package/lib/views/api-keys/APIKeys.d.ts +12 -0
  112. package/lib/views/api-keys/APIKeys.js +128 -0
  113. package/lib/views/api-keys/APIKeysStandalone.d.ts +2 -0
  114. package/lib/views/api-keys/APIKeysStandalone.js +117 -0
  115. package/lib/views/api-keys/index.d.ts +3 -0
  116. package/lib/{mocks/jupyter → views/api-keys}/index.js +3 -1
  117. package/lib/views/datasources/DatasourceDetail.d.ts +1 -1
  118. package/lib/views/datasources/DatasourceNew.d.ts +1 -1
  119. package/lib/views/datasources/Datasources.d.ts +1 -1
  120. package/lib/views/datasources/Datasources.js +12 -3
  121. package/lib/views/iam/SignInSimple.d.ts +37 -1
  122. package/lib/views/iam/SignInSimple.js +110 -12
  123. package/package.json +5 -3
  124. package/lib/App.css +0 -47
  125. package/lib/App.d.ts +0 -3
  126. package/lib/App.js +0 -21
  127. package/lib/api/runtimes/checkpoints.d.ts +0 -122
  128. package/lib/api/runtimes/checkpoints.js +0 -118
  129. package/lib/api/runtimes/environments.d.ts +0 -9
  130. package/lib/api/runtimes/environments.js +0 -29
  131. package/lib/api/runtimes/healthz.d.ts +0 -15
  132. package/lib/api/runtimes/healthz.js +0 -44
  133. package/lib/api/runtimes/index.d.ts +0 -12
  134. package/lib/api/runtimes/index.js +0 -16
  135. package/lib/api/runtimes/runtimes.d.ts +0 -138
  136. package/lib/api/runtimes/runtimes.js +0 -230
  137. package/lib/api/runtimes/snapshots.d.ts +0 -38
  138. package/lib/api/runtimes/snapshots.js +0 -82
  139. package/lib/api/spacer/documents.d.ts +0 -12
  140. package/lib/api/spacer/documents.js +0 -43
  141. package/lib/api/spacer/healthz.d.ts +0 -15
  142. package/lib/api/spacer/healthz.js +0 -44
  143. package/lib/api/spacer/index.d.ts +0 -15
  144. package/lib/api/spacer/index.js +0 -19
  145. package/lib/api/spacer/items.d.ts +0 -25
  146. package/lib/api/spacer/items.js +0 -55
  147. package/lib/api/spacer/lexicals.d.ts +0 -34
  148. package/lib/api/spacer/lexicals.js +0 -89
  149. package/lib/api/spacer/notebooks.d.ts +0 -34
  150. package/lib/api/spacer/notebooks.js +0 -89
  151. package/lib/api/spacer/spaces.d.ts +0 -84
  152. package/lib/api/spacer/spaces.js +0 -170
  153. package/lib/api/spacer/users.d.ts +0 -9
  154. package/lib/api/spacer/users.js +0 -29
  155. package/lib/client/mixins/RuntimesMixin.d.ts +0 -93
  156. package/lib/client/mixins/RuntimesMixin.js +0 -229
  157. package/lib/client/mixins/SpacerMixin.d.ts +0 -210
  158. package/lib/client/mixins/SpacerMixin.js +0 -615
  159. package/lib/client/utils/spacerUtils.d.ts +0 -18
  160. package/lib/client/utils/spacerUtils.js +0 -32
  161. package/lib/collaboration/DatalayerCollaboration.d.ts +0 -13
  162. package/lib/collaboration/DatalayerCollaboration.js +0 -28
  163. package/lib/collaboration/DatalayerCollaborationProvider.d.ts +0 -60
  164. package/lib/collaboration/DatalayerCollaborationProvider.js +0 -163
  165. package/lib/collaboration/index.d.ts +0 -2
  166. package/lib/collaboration/index.js +0 -6
  167. package/lib/components/context/SpaceSelect.d.ts +0 -2
  168. package/lib/components/context/SpaceSelect.js +0 -42
  169. package/lib/components/flashes/FlashDisclaimer.d.ts +0 -2
  170. package/lib/components/flashes/FlashDisclaimer.js +0 -17
  171. package/lib/components/icons/ArtifactIcon.d.ts +0 -10
  172. package/lib/components/icons/ArtifactIcon.js +0 -58
  173. package/lib/components/icons/index.d.ts +0 -1
  174. package/lib/components/icons/index.js +0 -5
  175. package/lib/components/nbgrader/NbGradesDetails.d.ts +0 -5
  176. package/lib/components/nbgrader/NbGradesDetails.js +0 -14
  177. package/lib/components/nbgrader/index.d.ts +0 -1
  178. package/lib/components/nbgrader/index.js +0 -5
  179. package/lib/components/progress/CreditsIndicator.d.ts +0 -33
  180. package/lib/components/progress/CreditsIndicator.js +0 -23
  181. package/lib/components/runtimes/RuntimeCellVariables.d.ts +0 -39
  182. package/lib/components/runtimes/RuntimeCellVariables.js +0 -172
  183. package/lib/components/runtimes/RuntimeCellVariablesDialog.d.ts +0 -37
  184. package/lib/components/runtimes/RuntimeCellVariablesDialog.js +0 -101
  185. package/lib/components/runtimes/RuntimeLauncherDialog.d.ts +0 -57
  186. package/lib/components/runtimes/RuntimeLauncherDialog.js +0 -275
  187. package/lib/components/runtimes/RuntimePickerBase.d.ts +0 -69
  188. package/lib/components/runtimes/RuntimePickerBase.js +0 -122
  189. package/lib/components/runtimes/RuntimePickerCell.d.ts +0 -34
  190. package/lib/components/runtimes/RuntimePickerCell.js +0 -104
  191. package/lib/components/runtimes/RuntimePickerNotebook.d.ts +0 -42
  192. package/lib/components/runtimes/RuntimePickerNotebook.js +0 -232
  193. package/lib/components/runtimes/RuntimeReservationControl.d.ts +0 -47
  194. package/lib/components/runtimes/RuntimeReservationControl.js +0 -42
  195. package/lib/components/runtimes/RuntimeSimplePicker.d.ts +0 -38
  196. package/lib/components/runtimes/RuntimeSimplePicker.js +0 -155
  197. package/lib/components/runtimes/RuntimeTransfer.d.ts +0 -16
  198. package/lib/components/runtimes/RuntimeTransfer.js +0 -5
  199. package/lib/components/runtimes/RuntimeUtils.d.ts +0 -17
  200. package/lib/components/runtimes/RuntimeUtils.js +0 -178
  201. package/lib/components/runtimes/RuntimeVariables.d.ts +0 -38
  202. package/lib/components/runtimes/RuntimeVariables.js +0 -75
  203. package/lib/components/runtimes/index.d.ts +0 -11
  204. package/lib/components/runtimes/index.js +0 -15
  205. package/lib/components/snapshots/SandboxSnapshotMenu.d.ts +0 -33
  206. package/lib/components/snapshots/SandboxSnapshotMenu.js +0 -169
  207. package/lib/components/snapshots/index.d.ts +0 -1
  208. package/lib/components/snapshots/index.js +0 -5
  209. package/lib/components/snippets/SnippetDialog.d.ts +0 -42
  210. package/lib/components/snippets/SnippetDialog.js +0 -42
  211. package/lib/components/students/StudentItemStatus.d.ts +0 -7
  212. package/lib/components/students/StudentItemStatus.js +0 -66
  213. package/lib/components/tokens/SpaceVariantToken.d.ts +0 -5
  214. package/lib/components/tokens/SpaceVariantToken.js +0 -23
  215. package/lib/components/toolbars/AssignmentEditorToolbar.d.ts +0 -4
  216. package/lib/components/toolbars/AssignmentEditorToolbar.js +0 -18
  217. package/lib/components/toolbars/DocumentEditorToolbar.d.ts +0 -2
  218. package/lib/components/toolbars/DocumentEditorToolbar.js +0 -12
  219. package/lib/components/toolbars/NotebookEditorToolbar.d.ts +0 -29
  220. package/lib/components/toolbars/NotebookEditorToolbar.js +0 -30
  221. package/lib/examples/CellExample.d.ts +0 -6
  222. package/lib/examples/CellExample.js +0 -20
  223. package/lib/examples/NotebookExample.d.ts +0 -6
  224. package/lib/examples/NotebookExample.js +0 -19
  225. package/lib/examples/lexical-theme.css +0 -436
  226. package/lib/examples/notebooks/IPyWidgetsExample.ipynb.json +0 -101
  227. package/lib/examples/notebooks/IPyWidgetsExampleWithState.ipynb.json +0 -112
  228. package/lib/examples/notebooks/Lite.ipynb.json +0 -128
  229. package/lib/examples/notebooks/Matplotlib.ipynb.json +0 -137
  230. package/lib/examples/notebooks/NotebookExample1.ipynb.json +0 -126
  231. package/lib/examples/notebooks/NotebookExample2.ipynb.json +0 -48
  232. package/lib/examples/notebooks/NotebookOutputs.ipynb.json +0 -49
  233. package/lib/examples/notebooks/NotebookToCExample.ipynb.json +0 -102
  234. package/lib/examples/notebooks/PyGWalker.ipynb.json +0 -55
  235. package/lib/hooks/useCellOutputshot.d.ts +0 -4
  236. package/lib/hooks/useCellOutputshot.js +0 -25
  237. package/lib/hooks/useProjects.d.ts +0 -628
  238. package/lib/hooks/useProjects.js +0 -190
  239. package/lib/hooks/useRuntimes.d.ts +0 -5
  240. package/lib/hooks/useRuntimes.js +0 -34
  241. package/lib/mocks/models/CourseMock.d.ts +0 -6
  242. package/lib/mocks/models/CourseMock.js +0 -29
  243. package/lib/mocks/models/SpaceMock.d.ts +0 -6
  244. package/lib/mocks/models/SpaceMock.js +0 -25
  245. package/lib/models/Assignment.d.ts +0 -7
  246. package/lib/models/Assignment.js +0 -5
  247. package/lib/models/Cell.d.ts +0 -8
  248. package/lib/models/Cell.js +0 -5
  249. package/lib/models/CodeBlock.d.ts +0 -10
  250. package/lib/models/CodeBlock.js +0 -5
  251. package/lib/models/CodeSandboxSnapshot.d.ts +0 -92
  252. package/lib/models/CodeSandboxSnapshot.js +0 -13
  253. package/lib/models/CodeSandboxSnapshotDTO.d.ts +0 -173
  254. package/lib/models/CodeSandboxSnapshotDTO.js +0 -139
  255. package/lib/models/CodefeedBlocks.d.ts +0 -7
  256. package/lib/models/CodefeedBlocks.js +0 -5
  257. package/lib/models/Content.d.ts +0 -5
  258. package/lib/models/Content.js +0 -5
  259. package/lib/models/Course.d.ts +0 -17
  260. package/lib/models/Course.js +0 -5
  261. package/lib/models/Dataset.d.ts +0 -16
  262. package/lib/models/Dataset.js +0 -5
  263. package/lib/models/Document.d.ts +0 -8
  264. package/lib/models/Document.js +0 -5
  265. package/lib/models/Environment.d.ts +0 -86
  266. package/lib/models/Environment.js +0 -5
  267. package/lib/models/EnvironmentDTO.d.ts +0 -125
  268. package/lib/models/EnvironmentDTO.js +0 -88
  269. package/lib/models/Exercise.d.ts +0 -16
  270. package/lib/models/Exercise.js +0 -5
  271. package/lib/models/Item.d.ts +0 -20
  272. package/lib/models/Item.js +0 -5
  273. package/lib/models/ItemDTO.d.ts +0 -74
  274. package/lib/models/ItemDTO.js +0 -186
  275. package/lib/models/ItemType.d.ts +0 -2
  276. package/lib/models/ItemType.js +0 -5
  277. package/lib/models/Lesson.d.ts +0 -5
  278. package/lib/models/Lesson.js +0 -5
  279. package/lib/models/LexicalDTO.d.ts +0 -155
  280. package/lib/models/LexicalDTO.js +0 -157
  281. package/lib/models/Library.d.ts +0 -10
  282. package/lib/models/Library.js +0 -5
  283. package/lib/models/Notebook.d.ts +0 -11
  284. package/lib/models/Notebook.js +0 -5
  285. package/lib/models/NotebookDTO.d.ts +0 -96
  286. package/lib/models/NotebookDTO.js +0 -153
  287. package/lib/models/Page.d.ts +0 -41
  288. package/lib/models/Page.js +0 -25
  289. package/lib/models/PageTag.d.ts +0 -19
  290. package/lib/models/PageTag.js +0 -94
  291. package/lib/models/ProjectDTO.d.ts +0 -89
  292. package/lib/models/ProjectDTO.js +0 -131
  293. package/lib/models/Runtime.d.ts +0 -123
  294. package/lib/models/Runtime.js +0 -18
  295. package/lib/models/RuntimeDTO.d.ts +0 -191
  296. package/lib/models/RuntimeDTO.js +0 -204
  297. package/lib/models/Space.d.ts +0 -35
  298. package/lib/models/Space.js +0 -66
  299. package/lib/models/SpaceDTO.d.ts +0 -334
  300. package/lib/models/SpaceDTO.js +0 -244
  301. package/lib/models/SpaceItem.d.ts +0 -10
  302. package/lib/models/SpaceItem.js +0 -5
  303. package/lib/models/SpaceMember.d.ts +0 -6
  304. package/lib/models/SpaceMember.js +0 -5
  305. package/lib/models/StudentItem.d.ts +0 -21
  306. package/lib/models/StudentItem.js +0 -5
  307. package/lib/services/DatalayerServiceManager.d.ts +0 -22
  308. package/lib/services/DatalayerServiceManager.js +0 -69
  309. package/lib/services/index.d.ts +0 -4
  310. package/lib/services/index.js +0 -7
  311. package/lib/services/reconnectToRuntime.d.ts +0 -32
  312. package/lib/services/reconnectToRuntime.js +0 -59
  313. package/lib/state/substates/CellState.d.ts +0 -12
  314. package/lib/state/substates/CellState.js +0 -22
  315. package/lib/state/substates/DocumentState.d.ts +0 -10
  316. package/lib/state/substates/DocumentState.js +0 -14
  317. package/lib/state/substates/GradeState.d.ts +0 -10
  318. package/lib/state/substates/GradeState.js +0 -14
  319. package/lib/state/substates/JupyterLabState.d.ts +0 -16
  320. package/lib/state/substates/JupyterLabState.js +0 -17
  321. package/lib/state/substates/NbformatState.d.ts +0 -13
  322. package/lib/state/substates/NbformatState.js +0 -16
  323. package/lib/state/substates/RuntimesState.d.ts +0 -79
  324. package/lib/state/substates/RuntimesState.js +0 -180
  325. package/lib/state/substates/SpaceState.d.ts +0 -11
  326. package/lib/state/substates/SpaceState.js +0 -16
  327. package/lib/stateful/index.d.ts +0 -2
  328. package/lib/stateful/index.js +0 -6
  329. package/lib/stateful/jupyter/exec/Python.d.ts +0 -5
  330. package/lib/stateful/jupyter/exec/Python.js +0 -100
  331. package/lib/stateful/jupyter/exec/Snippets.d.ts +0 -105
  332. package/lib/stateful/jupyter/exec/Snippets.js +0 -101
  333. package/lib/stateful/jupyter/exec/index.d.ts +0 -2
  334. package/lib/stateful/jupyter/exec/index.js +0 -6
  335. package/lib/stateful/jupyter/index.d.ts +0 -2
  336. package/lib/stateful/jupyter/index.js +0 -6
  337. package/lib/stateful/jupyter/kernelsHandler.d.ts +0 -8
  338. package/lib/stateful/jupyter/kernelsHandler.js +0 -39
  339. package/lib/stateful/runtimes/actions.d.ts +0 -102
  340. package/lib/stateful/runtimes/actions.js +0 -249
  341. package/lib/stateful/runtimes/apis.d.ts +0 -273
  342. package/lib/stateful/runtimes/apis.js +0 -5
  343. package/lib/stateful/runtimes/index.d.ts +0 -5
  344. package/lib/stateful/runtimes/index.js +0 -9
  345. package/lib/stateful/runtimes/settings.d.ts +0 -15
  346. package/lib/stateful/runtimes/settings.js +0 -31
  347. package/lib/stateful/runtimes/snapshots.d.ts +0 -25
  348. package/lib/stateful/runtimes/snapshots.js +0 -150
  349. package/lib/stateful/runtimes/utils.d.ts +0 -7
  350. package/lib/stateful/runtimes/utils.js +0 -14
  351. package/lib/utils/Cells.d.ts +0 -2
  352. package/lib/utils/Cells.js +0 -28
  353. package/lib/views/iam-tokens/IAMTokenEdit.d.ts +0 -6
  354. package/lib/views/iam-tokens/IAMTokenNew.d.ts +0 -8
  355. package/lib/views/iam-tokens/IAMTokenNew.js +0 -118
  356. package/lib/views/iam-tokens/IAMTokens.d.ts +0 -12
  357. package/lib/views/iam-tokens/IAMTokens.js +0 -87
  358. package/lib/views/iam-tokens/Tokens.d.ts +0 -2
  359. package/lib/views/iam-tokens/Tokens.js +0 -85
  360. package/lib/views/iam-tokens/index.d.ts +0 -3
  361. package/lib/views/iam-tokens/index.js +0 -7
  362. /package/lib/{mocks/jupyter/index.d.ts → cli-login.d.ts} +0 -0
  363. /package/lib/utils/{logger.d.ts → Logger.d.ts} +0 -0
  364. /package/lib/utils/{logger.js → Logger.js} +0 -0
@@ -0,0 +1,59 @@
1
+ import { jsx as _jsx } 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 { useTheme, Tooltip } from '@primer/react';
8
+ import { Box } from '@datalayer/primer-addons';
9
+ /**
10
+ * A small green/yellow/red/neutral result circle with an explanatory tooltip.
11
+ *
12
+ * Standalone component reused across the course progress and report views so
13
+ * the meaning of the green (success) / red (failure) / empty (no result yet)
14
+ * status is discoverable on hover and focus.
15
+ */
16
+ export const StudentResultCircle = (props) => {
17
+ const { status, label } = props;
18
+ const { theme } = useTheme();
19
+ const okColor = useMemo(() => theme?.colorSchemes.light.colors.success.muted, [theme]);
20
+ const nokColor = useMemo(() => theme?.colorSchemes.light.colors.severe.muted, [theme]);
21
+ const partialColor = useMemo(() => theme?.colorSchemes.light.colors.attention.muted, [theme]);
22
+ const isNone = status === 'none';
23
+ return (_jsx(Tooltip, { text: label, "aria-label": label, children: _jsx(Box, { as: "button", type: "button", "aria-label": label, onClick: event => {
24
+ event.preventDefault();
25
+ event.stopPropagation();
26
+ }, onMouseDown: event => {
27
+ event.preventDefault();
28
+ event.stopPropagation();
29
+ }, sx: {
30
+ display: 'inline-block',
31
+ flex: 'none',
32
+ appearance: 'none',
33
+ p: 0,
34
+ bg: 'transparent',
35
+ cursor: 'default',
36
+ lineHeight: 0,
37
+ border: 'none',
38
+ outline: 'none',
39
+ }, children: _jsx(Box, { as: "span", role: "img", "aria-hidden": true, sx: {
40
+ display: 'inline-block',
41
+ flex: 'none',
42
+ width: '14px',
43
+ height: '14px',
44
+ borderRadius: 3,
45
+ ml: 1,
46
+ pointerEvents: 'auto',
47
+ boxSizing: 'border-box',
48
+ backgroundColor: isNone
49
+ ? 'transparent'
50
+ : status === 'pass'
51
+ ? okColor
52
+ : status === 'partial'
53
+ ? partialColor
54
+ : nokColor,
55
+ border: isNone ? '1px solid' : 'none',
56
+ borderColor: isNone ? 'border.default' : 'transparent',
57
+ } }) }) }));
58
+ };
59
+ export default StudentResultCircle;
@@ -1 +1 @@
1
- export * from './StudentItemStatus';
1
+ export * from './StudentResultCircle';
@@ -2,4 +2,4 @@
2
2
  * Copyright (c) 2023-2025 Datalayer, Inc.
3
3
  * Distributed under the terms of the Modified BSD License.
4
4
  */
5
- export * from './StudentItemStatus.js';
5
+ export * from './StudentResultCircle.js';
@@ -0,0 +1,14 @@
1
+ type ILiveRelativeTimeProps = {
2
+ value?: Date | string | number;
3
+ refreshIntervalMs?: number;
4
+ fallback?: string;
5
+ showTooltip?: boolean;
6
+ };
7
+ /**
8
+ * Display a live-updating relative time label (e.g. "5m ago", "in 2m").
9
+ *
10
+ * When `showTooltip` is true, a Primer tooltip shows ISO + localized datetime
11
+ * details with timezone information.
12
+ */
13
+ export declare function LiveRelativeTime({ value, refreshIntervalMs, fallback, showTooltip, }: ILiveRelativeTimeProps): JSX.Element;
14
+ export {};
@@ -0,0 +1,43 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ /*
3
+ * Copyright (c) 2023-2025 Datalayer, Inc.
4
+ * Distributed under the terms of the Modified BSD License.
5
+ */
6
+ /*
7
+ * Copyright (c) 2023-2026 Datalayer, Inc.
8
+ * Distributed under the terms of the Modified BSD License.
9
+ */
10
+ import { useEffect, useMemo, useState } from 'react';
11
+ import { Tooltip } from '@primer/react';
12
+ import { formatDateTimeDetails, formatRelativeTime } from '../../utils/index.js';
13
+ /**
14
+ * Display a live-updating relative time label (e.g. "5m ago", "in 2m").
15
+ *
16
+ * When `showTooltip` is true, a Primer tooltip shows ISO + localized datetime
17
+ * details with timezone information.
18
+ */
19
+ export function LiveRelativeTime({ value, refreshIntervalMs = 30_000, fallback = '—', showTooltip = true, }) {
20
+ const [now, setNow] = useState(() => new Date());
21
+ useEffect(() => {
22
+ const timer = window.setInterval(() => {
23
+ setNow(new Date());
24
+ }, refreshIntervalMs);
25
+ return () => window.clearInterval(timer);
26
+ }, [refreshIntervalMs]);
27
+ const label = useMemo(() => formatRelativeTime(value, now), [value, now]);
28
+ const tooltip = useMemo(() => formatDateTimeDetails(value), [value]);
29
+ const content = (_jsx("button", { type: "button", "aria-label": tooltip || 'Date and time details', style: {
30
+ border: 'none',
31
+ background: 'transparent',
32
+ padding: 0,
33
+ margin: 0,
34
+ font: 'inherit',
35
+ color: 'inherit',
36
+ cursor: 'inherit',
37
+ lineHeight: 'inherit',
38
+ }, children: label ?? fallback }));
39
+ if (!showTooltip || !tooltip) {
40
+ return content;
41
+ }
42
+ return _jsx(Tooltip, { text: tooltip, children: content });
43
+ }
@@ -0,0 +1 @@
1
+ export * from './LiveRelativeTime';
@@ -0,0 +1,9 @@
1
+ /*
2
+ * Copyright (c) 2023-2025 Datalayer, Inc.
3
+ * Distributed under the terms of the Modified BSD License.
4
+ */
5
+ /*
6
+ * Copyright (c) 2023-2026 Datalayer, Inc.
7
+ * Distributed under the terms of the Modified BSD License.
8
+ */
9
+ export * from './LiveRelativeTime.js';
@@ -0,0 +1,20 @@
1
+ import { type ReactNode } from 'react';
2
+ export type TimelineStatus = 'done' | 'current' | 'pending' | 'failed' | 'neutral';
3
+ export type TimelineItem = {
4
+ id: string;
5
+ title: string;
6
+ timestamp?: string;
7
+ status?: TimelineStatus;
8
+ subtitle?: ReactNode;
9
+ };
10
+ export type TimelineProps = {
11
+ items: TimelineItem[];
12
+ renderTimestamp?: (value?: string) => ReactNode;
13
+ };
14
+ /**
15
+ * Horizontal metro-style timeline with connected markers and labels.
16
+ *
17
+ * The first item is rendered on the left. Pass items in the desired order
18
+ * (for example: newest to oldest).
19
+ */
20
+ export declare const Timeline: ({ items, renderTimestamp }: TimelineProps) => import("react/jsx-runtime").JSX.Element | null;
@@ -0,0 +1,90 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Box, Text } from '@primer/react';
3
+ const statusStyles = {
4
+ done: {
5
+ dotBackground: 'success.emphasis',
6
+ dotBorder: 'success.emphasis',
7
+ lineColor: 'success.muted',
8
+ titleColor: 'fg.default',
9
+ },
10
+ current: {
11
+ dotBackground: 'attention.emphasis',
12
+ dotBorder: 'attention.emphasis',
13
+ lineColor: 'attention.muted',
14
+ titleColor: 'fg.default',
15
+ },
16
+ pending: {
17
+ dotBackground: 'canvas.default',
18
+ dotBorder: 'border.default',
19
+ lineColor: 'border.default',
20
+ titleColor: 'fg.muted',
21
+ },
22
+ failed: {
23
+ dotBackground: 'danger.emphasis',
24
+ dotBorder: 'danger.emphasis',
25
+ lineColor: 'danger.muted',
26
+ titleColor: 'danger.fg',
27
+ },
28
+ neutral: {
29
+ dotBackground: 'accent.emphasis',
30
+ dotBorder: 'accent.emphasis',
31
+ lineColor: 'accent.muted',
32
+ titleColor: 'fg.default',
33
+ },
34
+ };
35
+ /**
36
+ * Horizontal metro-style timeline with connected markers and labels.
37
+ *
38
+ * The first item is rendered on the left. Pass items in the desired order
39
+ * (for example: newest to oldest).
40
+ */
41
+ export const Timeline = ({ items, renderTimestamp }) => {
42
+ if (!items.length) {
43
+ return null;
44
+ }
45
+ return (_jsx(Box, { sx: {
46
+ overflowX: 'auto',
47
+ pb: 1,
48
+ }, children: _jsx(Box, { sx: {
49
+ display: 'flex',
50
+ alignItems: 'stretch',
51
+ minWidth: 'max-content',
52
+ }, children: items.map((item, index) => {
53
+ const status = item.status || 'neutral';
54
+ const style = statusStyles[status];
55
+ const hasNext = index < items.length - 1;
56
+ return (_jsxs(Box, { sx: {
57
+ display: 'flex',
58
+ flexDirection: 'column',
59
+ minWidth: 220,
60
+ flex: hasNext ? '0 0 220px' : '0 0 auto',
61
+ pr: hasNext ? 0 : 1,
62
+ }, children: [_jsxs(Box, { sx: {
63
+ display: 'flex',
64
+ alignItems: 'center',
65
+ minHeight: 28,
66
+ mb: 2,
67
+ }, children: [_jsx(Box, { sx: {
68
+ width: 16,
69
+ height: 16,
70
+ borderRadius: '50%',
71
+ border: '2px solid',
72
+ borderColor: style.dotBorder,
73
+ bg: style.dotBackground,
74
+ boxShadow: 'inset 0 0 0 1px rgba(255,255,255,0.2)',
75
+ } }), hasNext ? (_jsx(Box, { sx: {
76
+ flex: 1,
77
+ height: 4,
78
+ ml: 2,
79
+ mr: 2,
80
+ borderRadius: 999,
81
+ bg: style.lineColor,
82
+ } })) : null] }), _jsx(Text, { as: "p", sx: { fontWeight: 600, color: style.titleColor, mb: 1 }, children: item.title }), _jsx(Text, { as: "p", sx: {
83
+ fontSize: 0,
84
+ color: 'fg.muted',
85
+ mb: item.subtitle ? 1 : 0,
86
+ }, children: renderTimestamp
87
+ ? renderTimestamp(item.timestamp)
88
+ : item.timestamp || 'n/a' }), item.subtitle ? (_jsx(Text, { as: "p", sx: { fontSize: 0, color: 'fg.subtle' }, children: item.subtitle })) : null] }, item.id));
89
+ }) }) }));
90
+ };
@@ -0,0 +1 @@
1
+ export * from './Timeline';
@@ -0,0 +1,9 @@
1
+ /*
2
+ * Copyright (c) 2023-2025 Datalayer, Inc.
3
+ * Distributed under the terms of the Modified BSD License.
4
+ */
5
+ /*
6
+ * Copyright (c) 2023-2026 Datalayer, Inc.
7
+ * Distributed under the terms of the Modified BSD License.
8
+ */
9
+ export * from './Timeline.js';
@@ -1 +1 @@
1
- export * from './SpaceVariantToken';
1
+ export {};
@@ -2,4 +2,4 @@
2
2
  * Copyright (c) 2023-2025 Datalayer, Inc.
3
3
  * Distributed under the terms of the Modified BSD License.
4
4
  */
5
- export * from './SpaceVariantToken.js';
5
+ export {};
@@ -1,3 +1 @@
1
- export * from './AssignmentEditorToolbar';
2
- export * from './DocumentEditorToolbar';
3
- export * from './NotebookEditorToolbar';
1
+ export {};
@@ -2,6 +2,4 @@
2
2
  * Copyright (c) 2023-2025 Datalayer, Inc.
3
3
  * Distributed under the terms of the Modified BSD License.
4
4
  */
5
- export * from './AssignmentEditorToolbar.js';
6
- export * from './DocumentEditorToolbar.js';
7
- export * from './NotebookEditorToolbar.js';
5
+ export {};
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Convert a raw code sandbox snapshot payload into its client shape.
3
+ *
4
+ * @param s - The raw snapshot payload from the API.
5
+ * @returns The converted snapshot object.
6
+ */
7
+ export declare function asCodeSandboxSnapshot(s: any): any;
8
+ /**
9
+ * Convert a raw page payload into its client shape.
10
+ *
11
+ * @param s - The raw page payload from the API.
12
+ * @returns The converted page object.
13
+ */
14
+ export declare const asPage: (s: any) => any;
15
+ /**
16
+ * Convert a raw space payload into its client shape.
17
+ *
18
+ * @param raw_space - The raw space payload from the API.
19
+ * @returns The converted space object.
20
+ */
21
+ export declare const asSpace: (raw_space: any) => any;
@@ -0,0 +1,110 @@
1
+ /*
2
+ * Copyright (c) 2023-2025 Datalayer, Inc.
3
+ * Distributed under the terms of the Modified BSD License.
4
+ */
5
+ /**
6
+ * Local response converters for the core cache hook.
7
+ *
8
+ * The rich content models (Space, Page, CodeSandboxSnapshot) live in the
9
+ * runtime/content package (`@datalayer/agent-runtimes`). The core cache still
10
+ * fetches this data over raw HTTP, so these converters are kept here with
11
+ * loosened (structural) types to preserve runtime behaviour without depending
12
+ * on the content models.
13
+ *
14
+ * @module hooks/cacheConverters
15
+ */
16
+ import { asUser } from '../models/index.js';
17
+ import { asArray } from '../utils/index.js';
18
+ /**
19
+ * Convert a raw code sandbox snapshot payload into its client shape.
20
+ *
21
+ * @param s - The raw snapshot payload from the API.
22
+ * @returns The converted snapshot object.
23
+ */
24
+ export function asCodeSandboxSnapshot(s) {
25
+ const { uid, updated_at, format_version, ...others } = s;
26
+ return {
27
+ ...others,
28
+ id: uid,
29
+ updatedAt: new Date(updated_at),
30
+ formatVersion: format_version,
31
+ };
32
+ }
33
+ /**
34
+ * Convert a raw page payload into its client shape.
35
+ *
36
+ * @param s - The raw page payload from the API.
37
+ * @returns The converted page object.
38
+ */
39
+ export const asPage = (s) => {
40
+ return {
41
+ id: s.uid,
42
+ type: 'page',
43
+ variant: s.variant_s,
44
+ name: s.name_t,
45
+ description: s.description_t,
46
+ theme: s.theme_s,
47
+ nbformat: s.nbformat_s ? JSON.parse(s.nbformat_s) : undefined,
48
+ screenCapture: s.screen_capture_cdn_url_s || s.screen_capture_s,
49
+ tags: s.tags_ss ?? [],
50
+ creator: s.creator ? asUser(s.creator) : undefined,
51
+ creatorId: s.creator_uid,
52
+ kernelSnapshot: s.kernel_snapshot
53
+ ? asCodeSandboxSnapshot(s.kernel_snapshot)
54
+ : undefined,
55
+ kernelSnapshotId: s.kernel_snapshot_uid,
56
+ };
57
+ };
58
+ /**
59
+ * Convert a raw space payload into its client shape.
60
+ *
61
+ * @param raw_space - The raw space payload from the API.
62
+ * @returns The converted space object.
63
+ */
64
+ export const asSpace = (raw_space) => {
65
+ const sharedOwnerUserUids = asArray(raw_space?.shared_owner_user_uids_ss ||
66
+ raw_space?.shared_ower_user_uids_ss ||
67
+ []).filter((uid) => typeof uid === 'string' && uid.length > 0);
68
+ const organizationHandle = raw_space?.organization?.handle;
69
+ const owner = raw_space?.owner
70
+ ? asUser(raw_space.owner)
71
+ : {
72
+ id: '',
73
+ handle: '',
74
+ email: '',
75
+ firstName: '',
76
+ lastName: '',
77
+ initials: '',
78
+ displayName: '',
79
+ roles: [],
80
+ iamProviders: [],
81
+ setRoles: () => { },
82
+ unsubscribedFromOutbounds: false,
83
+ onboarding: {},
84
+ events: [],
85
+ settings: {},
86
+ };
87
+ let members = [];
88
+ if (raw_space.members) {
89
+ members = asArray(raw_space.members).map((m) => asUser(m));
90
+ }
91
+ const space = {
92
+ id: raw_space.uid,
93
+ handle: raw_space.handle_s,
94
+ type: 'space',
95
+ variant: raw_space.variant_s,
96
+ name: raw_space.name_t,
97
+ description: raw_space.description_t,
98
+ public: raw_space.public_b,
99
+ members,
100
+ creationDate: new Date(raw_space.creation_ts_dt),
101
+ owner,
102
+ organization: organizationHandle
103
+ ? { handle: organizationHandle }
104
+ : undefined,
105
+ sharedOwnerUserUids,
106
+ // Preserve raw Solr fields so consumers can access dynamic fields.
107
+ ...raw_space,
108
+ };
109
+ return space;
110
+ };
@@ -20,12 +20,10 @@ export * from './useNavigate';
20
20
  export * from './useParams';
21
21
  export * from './useOnClickOutside';
22
22
  export * from './useRef';
23
- export * from './useRuntimes';
24
23
  export * from './useScreencapture';
25
24
  export * from './useToast';
26
25
  export * from './useUpload';
27
26
  export * from './useUser';
28
- export * from './useProjects';
29
27
  export * from './useProjectStore';
30
28
  export * from './useMobile';
31
29
  export * from './useUsageRefreshStore';
@@ -25,12 +25,10 @@ export * from './useNavigate.js';
25
25
  export * from './useParams.js';
26
26
  export * from './useOnClickOutside.js';
27
27
  export * from './useRef.js';
28
- export * from './useRuntimes.js';
29
28
  export * from './useScreencapture.js';
30
29
  export * from './useToast.js';
31
30
  export * from './useUpload.js';
32
31
  export * from './useUser.js';
33
- export * from './useProjects.js';
34
32
  export * from './useProjectStore.js';
35
33
  export * from './useMobile.js';
36
34
  export * from './useUsageRefreshStore.js';