@datalayer/core 0.0.1 → 0.0.2

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 (641) hide show
  1. package/README.md +176 -7
  2. package/lib/App.d.ts +3 -0
  3. package/lib/App.js +4 -0
  4. package/lib/__tests__/App.test.d.ts +1 -0
  5. package/lib/__tests__/App.test.js +17 -0
  6. package/lib/__tests__/hooks.test.d.ts +1 -0
  7. package/lib/__tests__/hooks.test.js +19 -0
  8. package/lib/__tests__/index.test.d.ts +1 -0
  9. package/lib/__tests__/index.test.js +26 -0
  10. package/lib/__tests__/integration.test.d.ts +1 -0
  11. package/lib/__tests__/integration.test.js +57 -0
  12. package/lib/__tests__/utils.test.d.ts +1 -0
  13. package/lib/__tests__/utils.test.js +59 -0
  14. package/lib/api/RunApi.d.ts +75 -0
  15. package/lib/api/RunApi.js +150 -0
  16. package/lib/api/index.d.ts +2 -0
  17. package/lib/api/index.js +11 -0
  18. package/lib/api/runtimes/exec/Python.d.ts +5 -0
  19. package/lib/api/runtimes/exec/Python.js +105 -0
  20. package/lib/api/runtimes/exec/Snippets.d.ts +145 -0
  21. package/lib/api/runtimes/exec/Snippets.js +125 -0
  22. package/lib/api/runtimes/exec/index.d.ts +2 -0
  23. package/lib/api/runtimes/exec/index.js +11 -0
  24. package/lib/api/runtimes/index.d.ts +7 -0
  25. package/lib/api/runtimes/index.js +16 -0
  26. package/lib/api/runtimes/kernelsHandler.d.ts +8 -0
  27. package/lib/api/runtimes/kernelsHandler.js +44 -0
  28. package/lib/api/runtimes/models.d.ts +59 -0
  29. package/lib/api/runtimes/models.js +11 -0
  30. package/lib/api/runtimes/runtimesApi.d.ts +370 -0
  31. package/lib/api/runtimes/runtimesApi.js +269 -0
  32. package/lib/api/runtimes/settings.d.ts +15 -0
  33. package/lib/api/runtimes/settings.js +36 -0
  34. package/lib/api/runtimes/snapshots.d.ts +25 -0
  35. package/lib/api/runtimes/snapshots.js +155 -0
  36. package/lib/api/runtimes/utils.d.ts +7 -0
  37. package/lib/api/runtimes/utils.js +22 -0
  38. package/lib/components/avatars/BoringAvatar.d.ts +20 -0
  39. package/lib/components/avatars/BoringAvatar.js +39 -0
  40. package/lib/components/avatars/UserProfileAvatar.d.ts +13 -0
  41. package/lib/components/avatars/UserProfileAvatar.js +37 -0
  42. package/lib/components/avatars/index.d.ts +2 -0
  43. package/lib/components/avatars/index.js +11 -0
  44. package/lib/components/banners/NoAutomationBanner.d.ts +2 -0
  45. package/lib/components/banners/NoAutomationBanner.js +18 -0
  46. package/lib/components/banners/index.d.ts +1 -0
  47. package/lib/components/banners/index.js +10 -0
  48. package/lib/components/buttons/DownloadCSVButton.d.ts +13 -0
  49. package/lib/components/buttons/DownloadCSVButton.js +21 -0
  50. package/lib/components/buttons/DownloadJsonButton.d.ts +16 -0
  51. package/lib/components/buttons/DownloadJsonButton.js +23 -0
  52. package/lib/components/buttons/LongActionButton.d.ts +28 -0
  53. package/lib/components/buttons/LongActionButton.js +29 -0
  54. package/lib/components/buttons/UploadButton.d.ts +37 -0
  55. package/lib/components/buttons/UploadButton.js +48 -0
  56. package/lib/components/buttons/VariantType.d.ts +1 -0
  57. package/lib/components/buttons/VariantType.js +5 -0
  58. package/lib/components/buttons/index.d.ts +5 -0
  59. package/lib/components/buttons/index.js +14 -0
  60. package/lib/components/checkout/StripeCheckout.d.ts +32 -0
  61. package/lib/components/checkout/StripeCheckout.js +100 -0
  62. package/lib/components/checkout/index.d.ts +1 -0
  63. package/lib/components/checkout/index.js +10 -0
  64. package/lib/components/confetti/ConfettiSuccess.d.ts +2 -0
  65. package/lib/components/confetti/ConfettiSuccess.js +17 -0
  66. package/lib/components/confetti/index.d.ts +1 -0
  67. package/lib/components/confetti/index.js +10 -0
  68. package/lib/components/context/OrganizationSelect.d.ts +2 -0
  69. package/lib/components/context/OrganizationSelect.js +40 -0
  70. package/lib/components/context/SpaceSelect.d.ts +2 -0
  71. package/lib/components/context/SpaceSelect.js +48 -0
  72. package/lib/components/context/index.d.ts +2 -0
  73. package/lib/components/context/index.js +11 -0
  74. package/lib/components/display/AvatarSkeleton.d.ts +5 -0
  75. package/lib/components/display/AvatarSkeleton.js +16 -0
  76. package/lib/components/display/CenteredSpinner.d.ts +14 -0
  77. package/lib/components/display/CenteredSpinner.js +25 -0
  78. package/lib/components/display/CodePreview.d.ts +4 -0
  79. package/lib/components/display/CodePreview.js +20 -0
  80. package/lib/components/display/DatalayerBox.d.ts +8 -0
  81. package/lib/components/display/DatalayerBox.js +33 -0
  82. package/lib/components/display/HorizontalCenter.d.ts +9 -0
  83. package/lib/components/display/HorizontalCenter.js +14 -0
  84. package/lib/components/display/JupyterDialog.d.ts +69 -0
  85. package/lib/components/display/JupyterDialog.js +120 -0
  86. package/lib/components/display/Markdown.d.ts +23 -0
  87. package/lib/components/display/Markdown.js +20 -0
  88. package/lib/components/display/NavLink.d.ts +9 -0
  89. package/lib/components/display/NavLink.js +22 -0
  90. package/lib/components/display/NotebookSkeleton.d.ts +2 -0
  91. package/lib/components/display/NotebookSkeleton.js +16 -0
  92. package/lib/components/display/Placeholder.d.ts +2 -0
  93. package/lib/components/display/Placeholder.js +14 -0
  94. package/lib/components/display/ToTopBranded.d.ts +2 -0
  95. package/lib/components/display/ToTopBranded.js +16 -0
  96. package/lib/components/display/VisuallyHidden.d.ts +5 -0
  97. package/lib/components/display/VisuallyHidden.js +29 -0
  98. package/lib/components/display/index.d.ts +12 -0
  99. package/lib/components/display/index.js +21 -0
  100. package/lib/components/echarts/EChartsReact.d.ts +11 -0
  101. package/lib/components/echarts/EChartsReact.js +53 -0
  102. package/lib/components/echarts/index.d.ts +1 -0
  103. package/lib/components/echarts/index.js +10 -0
  104. package/lib/components/flashes/FlashClosable.d.ts +22 -0
  105. package/lib/components/flashes/FlashClosable.js +69 -0
  106. package/lib/components/flashes/FlashDisclaimer.d.ts +2 -0
  107. package/lib/components/flashes/FlashDisclaimer.js +23 -0
  108. package/lib/components/flashes/FlashGuest.d.ts +2 -0
  109. package/lib/components/flashes/FlashGuest.js +35 -0
  110. package/lib/components/flashes/FlashSurveys.d.ts +6 -0
  111. package/lib/components/flashes/FlashSurveys.js +41 -0
  112. package/lib/components/flashes/FlashUnauthorized.d.ts +2 -0
  113. package/lib/components/flashes/FlashUnauthorized.js +23 -0
  114. package/lib/components/flashes/index.d.ts +6 -0
  115. package/lib/components/flashes/index.js +15 -0
  116. package/lib/components/flashes/surveys/Survey2025_1.d.ts +3 -0
  117. package/lib/components/flashes/surveys/Survey2025_1.js +134 -0
  118. package/lib/components/flashes/surveys/SurveyProps.d.ts +6 -0
  119. package/lib/components/flashes/surveys/SurveyProps.js +5 -0
  120. package/lib/components/flashes/surveys/index.d.ts +2 -0
  121. package/lib/components/flashes/surveys/index.js +11 -0
  122. package/lib/components/iam/ExternalTokenSilentLogin.d.ts +5 -0
  123. package/lib/components/iam/ExternalTokenSilentLogin.js +38 -0
  124. package/lib/components/iam/index.d.ts +1 -0
  125. package/lib/components/iam/index.js +10 -0
  126. package/lib/components/icons/ArtifactIcon.d.ts +10 -0
  127. package/lib/components/icons/ArtifactIcon.js +63 -0
  128. package/lib/components/icons/index.d.ts +1 -0
  129. package/lib/components/icons/index.js +10 -0
  130. package/lib/components/index.d.ts +1 -0
  131. package/lib/components/index.js +10 -0
  132. package/lib/components/labels/VisibilityLabel.d.ts +4 -0
  133. package/lib/components/labels/VisibilityLabel.js +22 -0
  134. package/lib/components/labels/index.d.ts +1 -0
  135. package/lib/components/labels/index.js +10 -0
  136. package/lib/components/landings/StepBlock.d.ts +11 -0
  137. package/lib/components/landings/StepBlock.js +17 -0
  138. package/lib/components/landings/index.d.ts +1 -0
  139. package/lib/components/landings/index.js +10 -0
  140. package/lib/components/navbar/NavigationVisbilityObserver.d.ts +5 -0
  141. package/lib/components/navbar/NavigationVisbilityObserver.js +63 -0
  142. package/lib/components/navbar/SubdomainNavBar.d.ts +81 -0
  143. package/lib/components/navbar/SubdomainNavBar.js +240 -0
  144. package/lib/components/navbar/index.d.ts +2 -0
  145. package/lib/components/navbar/index.js +11 -0
  146. package/lib/components/nbgrader/NbGradesDetails.d.ts +5 -0
  147. package/lib/components/nbgrader/NbGradesDetails.js +22 -0
  148. package/lib/components/nbgrader/index.d.ts +1 -0
  149. package/lib/components/nbgrader/index.js +10 -0
  150. package/lib/components/notebooks/JupyterNotebook.d.ts +12 -0
  151. package/lib/components/notebooks/JupyterNotebook.js +41 -0
  152. package/lib/components/notebooks/JupyterNotebookToolbar.d.ts +2 -0
  153. package/lib/components/notebooks/JupyterNotebookToolbar.js +44 -0
  154. package/lib/components/notebooks/index.d.ts +2 -0
  155. package/lib/components/notebooks/index.js +11 -0
  156. package/lib/components/primer/Helper.d.ts +32 -0
  157. package/lib/components/primer/Helper.js +19 -0
  158. package/lib/components/primer/Portals.d.ts +9 -0
  159. package/lib/components/primer/Portals.js +31 -0
  160. package/lib/components/primer/Styles.d.ts +2 -0
  161. package/lib/components/primer/Styles.js +16 -0
  162. package/lib/components/primer/index.d.ts +2 -0
  163. package/lib/components/primer/index.js +11 -0
  164. package/lib/components/progress/ConsumptionBar.d.ts +40 -0
  165. package/lib/components/progress/ConsumptionBar.js +54 -0
  166. package/lib/components/progress/CreditsIndicator.d.ts +27 -0
  167. package/lib/components/progress/CreditsIndicator.js +30 -0
  168. package/lib/components/progress/ProgressBar.d.ts +2 -0
  169. package/lib/components/progress/ProgressBar.js +26 -0
  170. package/lib/components/progress/ProgressRing.d.ts +36 -0
  171. package/lib/components/progress/ProgressRing.js +31 -0
  172. package/lib/components/progress/Timer.d.ts +9 -0
  173. package/lib/components/progress/Timer.js +33 -0
  174. package/lib/components/progress/index.d.ts +5 -0
  175. package/lib/components/progress/index.js +14 -0
  176. package/lib/components/runtimes/RuntimeCellVariables.d.ts +39 -0
  177. package/lib/components/runtimes/RuntimeCellVariables.js +177 -0
  178. package/lib/components/runtimes/RuntimeCellVariablesDialog.d.ts +37 -0
  179. package/lib/components/runtimes/RuntimeCellVariablesDialog.js +106 -0
  180. package/lib/components/runtimes/RuntimeLauncherDialog.d.ts +54 -0
  181. package/lib/components/runtimes/RuntimeLauncherDialog.js +254 -0
  182. package/lib/components/runtimes/RuntimePickerBase.d.ts +69 -0
  183. package/lib/components/runtimes/RuntimePickerBase.js +114 -0
  184. package/lib/components/runtimes/RuntimePickerCell.d.ts +34 -0
  185. package/lib/components/runtimes/RuntimePickerCell.js +111 -0
  186. package/lib/components/runtimes/RuntimePickerNotebook.d.ts +43 -0
  187. package/lib/components/runtimes/RuntimePickerNotebook.js +173 -0
  188. package/lib/components/runtimes/RuntimeReservationControl.d.ts +47 -0
  189. package/lib/components/runtimes/RuntimeReservationControl.js +43 -0
  190. package/lib/components/runtimes/RuntimeSimplePicker.d.ts +34 -0
  191. package/lib/components/runtimes/RuntimeSimplePicker.js +161 -0
  192. package/lib/components/runtimes/RuntimeTransfer.d.ts +16 -0
  193. package/lib/components/runtimes/RuntimeTransfer.js +5 -0
  194. package/lib/components/runtimes/RuntimeUtils.d.ts +17 -0
  195. package/lib/components/runtimes/RuntimeUtils.js +173 -0
  196. package/lib/components/runtimes/RuntimeVariables.d.ts +38 -0
  197. package/lib/components/runtimes/RuntimeVariables.js +80 -0
  198. package/lib/components/runtimes/index.d.ts +11 -0
  199. package/lib/components/runtimes/index.js +20 -0
  200. package/lib/components/screenshot/ScreenCapture.d.ts +38 -0
  201. package/lib/components/screenshot/ScreenCapture.js +179 -0
  202. package/lib/components/screenshot/ScreenCaptureButton.d.ts +3 -0
  203. package/lib/components/screenshot/ScreenCaptureButton.js +21 -0
  204. package/lib/components/screenshot/index.d.ts +2 -0
  205. package/lib/components/screenshot/index.js +11 -0
  206. package/lib/components/snapshots/RuntimeSnapshotMenu.d.ts +36 -0
  207. package/lib/components/snapshots/RuntimeSnapshotMenu.js +169 -0
  208. package/lib/components/snapshots/index.d.ts +1 -0
  209. package/lib/components/snapshots/index.js +10 -0
  210. package/lib/components/snippets/SnippetDialog.d.ts +42 -0
  211. package/lib/components/snippets/SnippetDialog.js +47 -0
  212. package/lib/components/snippets/index.d.ts +1 -0
  213. package/lib/components/snippets/index.js +10 -0
  214. package/lib/components/storage/ContentsBrowser.d.ts +32 -0
  215. package/lib/components/storage/ContentsBrowser.js +250 -0
  216. package/lib/components/storage/ContentsItems.d.ts +58 -0
  217. package/lib/components/storage/ContentsItems.js +83 -0
  218. package/lib/components/storage/index.d.ts +2 -0
  219. package/lib/components/storage/index.js +11 -0
  220. package/lib/components/students/StudentItemStatus.d.ts +7 -0
  221. package/lib/components/students/StudentItemStatus.js +49 -0
  222. package/lib/components/students/index.d.ts +1 -0
  223. package/lib/components/students/index.js +10 -0
  224. package/lib/components/subnav/SubNav.d.ts +84 -0
  225. package/lib/components/subnav/SubNav.js +270 -0
  226. package/lib/components/subnav/index.d.ts +1 -0
  227. package/lib/components/subnav/index.js +10 -0
  228. package/lib/components/tables/DataTable.d.ts +5 -0
  229. package/lib/components/tables/DataTable.js +24 -0
  230. package/lib/components/tables/index.d.ts +1 -0
  231. package/lib/components/tables/index.js +10 -0
  232. package/lib/components/text-reveal/TextRevealAnimation.d.ts +6 -0
  233. package/lib/components/text-reveal/TextRevealAnimation.js +55 -0
  234. package/lib/components/text-reveal/index.d.ts +1 -0
  235. package/lib/components/text-reveal/index.js +10 -0
  236. package/lib/components/text-reveal/useTextRevealAnimationLines.d.ts +4 -0
  237. package/lib/components/text-reveal/useTextRevealAnimationLines.js +52 -0
  238. package/lib/components/tokens/SpaceVariantToken.d.ts +5 -0
  239. package/lib/components/tokens/SpaceVariantToken.js +25 -0
  240. package/lib/components/tokens/index.d.ts +1 -0
  241. package/lib/components/tokens/index.js +10 -0
  242. package/lib/components/toolbars/AssignmentEditorToolbar.d.ts +4 -0
  243. package/lib/components/toolbars/AssignmentEditorToolbar.js +23 -0
  244. package/lib/components/toolbars/DocumentEditorToolbar.d.ts +2 -0
  245. package/lib/components/toolbars/DocumentEditorToolbar.js +17 -0
  246. package/lib/components/toolbars/NotebookEditorToolbar.d.ts +29 -0
  247. package/lib/components/toolbars/NotebookEditorToolbar.js +35 -0
  248. package/lib/components/toolbars/index.d.ts +3 -0
  249. package/lib/components/toolbars/index.js +12 -0
  250. package/lib/components/users/PeerIndicator.d.ts +18 -0
  251. package/lib/components/users/PeerIndicator.js +105 -0
  252. package/lib/components/users/index.d.ts +1 -0
  253. package/lib/components/users/index.js +10 -0
  254. package/lib/config/Configuration.d.ts +111 -0
  255. package/lib/config/Configuration.js +30 -0
  256. package/lib/config/index.d.ts +2 -0
  257. package/lib/config/index.js +11 -0
  258. package/lib/config/integrations/Loom.d.ts +1 -0
  259. package/lib/config/integrations/Loom.js +21 -0
  260. package/lib/config/integrations/index.d.ts +1 -0
  261. package/lib/config/integrations/index.js +10 -0
  262. package/lib/hooks/assets/OutputshotPlaceholders.d.ts +19 -0
  263. package/lib/hooks/assets/OutputshotPlaceholders.js +28 -0
  264. package/lib/hooks/assets/index.d.ts +1 -0
  265. package/lib/hooks/assets/index.js +10 -0
  266. package/lib/hooks/index.d.ts +28 -0
  267. package/lib/hooks/index.js +38 -0
  268. package/lib/hooks/layouts/LayoutBackdrop.d.ts +2 -0
  269. package/lib/hooks/layouts/LayoutBackdrop.js +35 -0
  270. package/lib/hooks/layouts/LayoutScreenshot.d.ts +2 -0
  271. package/lib/hooks/layouts/LayoutScreenshot.js +48 -0
  272. package/lib/hooks/layouts/index.d.ts +2 -0
  273. package/lib/hooks/layouts/index.js +11 -0
  274. package/lib/hooks/useAIAgents.d.ts +13 -0
  275. package/lib/hooks/useAIAgents.js +77 -0
  276. package/lib/hooks/useAuthorization.d.ts +19 -0
  277. package/lib/hooks/useAuthorization.js +130 -0
  278. package/lib/hooks/useBackdrop.d.ts +28 -0
  279. package/lib/hooks/useBackdrop.js +105 -0
  280. package/lib/hooks/useBackdropJupyterLab.d.ts +15 -0
  281. package/lib/hooks/useBackdropJupyterLab.js +56 -0
  282. package/lib/hooks/useCache.d.ts +306 -0
  283. package/lib/hooks/useCache.js +3103 -0
  284. package/lib/hooks/useCellOutputshot.d.ts +4 -0
  285. package/lib/hooks/useCellOutputshot.js +33 -0
  286. package/lib/hooks/useContainsFocus.d.ts +9 -0
  287. package/lib/hooks/useContainsFocus.js +48 -0
  288. package/lib/hooks/useError.d.ts +9 -0
  289. package/lib/hooks/useError.js +31 -0
  290. package/lib/hooks/useExternalScript.d.ts +2 -0
  291. package/lib/hooks/useExternalScript.js +22 -0
  292. package/lib/hooks/useFocusTrap.d.ts +30 -0
  293. package/lib/hooks/useFocusTrap.js +53 -0
  294. package/lib/hooks/useIAM.d.ts +14 -0
  295. package/lib/hooks/useIAM.js +98 -0
  296. package/lib/hooks/useId.d.ts +19 -0
  297. package/lib/hooks/useId.js +105 -0
  298. package/lib/hooks/useIsomorphicLayoutEffect.d.ts +3 -0
  299. package/lib/hooks/useIsomorphicLayoutEffect.js +16 -0
  300. package/lib/hooks/useJupyterLabTheme.d.ts +6 -0
  301. package/lib/hooks/useJupyterLabTheme.js +29 -0
  302. package/lib/hooks/useKeyboardEscape.d.ts +1 -0
  303. package/lib/hooks/useKeyboardEscape.js +23 -0
  304. package/lib/hooks/useLocationHandles.d.ts +10 -0
  305. package/lib/hooks/useLocationHandles.js +27 -0
  306. package/lib/hooks/useNavigate.d.ts +2 -0
  307. package/lib/hooks/useNavigate.js +29 -0
  308. package/lib/hooks/useNotebookAIAgent.d.ts +8 -0
  309. package/lib/hooks/useNotebookAIAgent.js +59 -0
  310. package/lib/hooks/useOnClickOutside.d.ts +1 -0
  311. package/lib/hooks/useOnClickOutside.js +34 -0
  312. package/lib/hooks/useRef.d.ts +10 -0
  313. package/lib/hooks/useRef.js +22 -0
  314. package/lib/hooks/useRun.d.ts +21 -0
  315. package/lib/hooks/useRun.js +85 -0
  316. package/lib/hooks/useRuntimes.d.ts +5 -0
  317. package/lib/hooks/useRuntimes.js +39 -0
  318. package/lib/hooks/useScreenshot.d.ts +21 -0
  319. package/lib/hooks/useScreenshot.js +65 -0
  320. package/lib/hooks/useToast.d.ts +42 -0
  321. package/lib/hooks/useToast.js +143 -0
  322. package/lib/hooks/useUpload.d.ts +7 -0
  323. package/lib/hooks/useUpload.js +51 -0
  324. package/lib/hooks/useUser.d.ts +3 -0
  325. package/lib/hooks/useUser.js +22 -0
  326. package/lib/hooks/useVisibilityObserver.d.ts +5 -0
  327. package/lib/hooks/useVisibilityObserver.js +47 -0
  328. package/lib/hooks/useWindowSize.d.ts +21 -0
  329. package/lib/hooks/useWindowSize.js +80 -0
  330. package/lib/i18n/Labels.d.ts +1 -0
  331. package/lib/i18n/Labels.js +10 -0
  332. package/lib/i18n/index.d.ts +1 -0
  333. package/lib/i18n/index.js +10 -0
  334. package/lib/index.d.ts +3 -0
  335. package/lib/index.js +6 -0
  336. package/lib/main.d.ts +1 -0
  337. package/lib/main.js +4 -0
  338. package/lib/mocks/components/FlashMock.d.ts +2 -0
  339. package/lib/mocks/components/FlashMock.js +18 -0
  340. package/lib/mocks/components/index.d.ts +1 -0
  341. package/lib/mocks/components/index.js +10 -0
  342. package/lib/mocks/hooks/index.d.ts +1 -0
  343. package/lib/mocks/hooks/index.js +10 -0
  344. package/lib/mocks/hooks/rests/index.d.ts +1 -0
  345. package/lib/mocks/hooks/rests/index.js +10 -0
  346. package/lib/mocks/hooks/rests/rests.d.ts +22 -0
  347. package/lib/mocks/hooks/rests/rests.js +37 -0
  348. package/lib/mocks/hooks/useRunMock.d.ts +6 -0
  349. package/lib/mocks/hooks/useRunMock.js +83 -0
  350. package/lib/mocks/index.d.ts +4 -0
  351. package/lib/mocks/index.js +14 -0
  352. package/lib/mocks/jupyter/index.d.ts +1 -0
  353. package/lib/mocks/jupyter/index.js +10 -0
  354. package/lib/mocks/models/CodeBlockMock.d.ts +1 -0
  355. package/lib/mocks/models/CodeBlockMock.js +10 -0
  356. package/lib/mocks/models/CodelineMock.d.ts +1 -0
  357. package/lib/mocks/models/CodelineMock.js +10 -0
  358. package/lib/mocks/models/CourseMock.d.ts +6 -0
  359. package/lib/mocks/models/CourseMock.js +34 -0
  360. package/lib/mocks/models/InviteMock.d.ts +6 -0
  361. package/lib/mocks/models/InviteMock.js +27 -0
  362. package/lib/mocks/models/JupyterLabUserMock.d.ts +2 -0
  363. package/lib/mocks/models/JupyterLabUserMock.js +17 -0
  364. package/lib/mocks/models/OrganisationMock.d.ts +5 -0
  365. package/lib/mocks/models/OrganisationMock.js +24 -0
  366. package/lib/mocks/models/SchoolMock.d.ts +6 -0
  367. package/lib/mocks/models/SchoolMock.js +25 -0
  368. package/lib/mocks/models/SpaceMock.d.ts +6 -0
  369. package/lib/mocks/models/SpaceMock.js +30 -0
  370. package/lib/mocks/models/TeamMock.d.ts +5 -0
  371. package/lib/mocks/models/TeamMock.js +26 -0
  372. package/lib/mocks/models/UserMock.d.ts +2 -0
  373. package/lib/mocks/models/UserMock.js +34 -0
  374. package/lib/mocks/models/index.d.ts +9 -0
  375. package/lib/mocks/models/index.js +18 -0
  376. package/lib/mocks/views/ActionMenuMock.d.ts +5 -0
  377. package/lib/mocks/views/ActionMenuMock.js +17 -0
  378. package/lib/mocks/views/ChartMock.d.ts +5 -0
  379. package/lib/mocks/views/ChartMock.js +20 -0
  380. package/lib/mocks/views/ChartMockOptions.d.ts +92 -0
  381. package/lib/mocks/views/ChartMockOptions.js +107 -0
  382. package/lib/mocks/views/DashboardMock.d.ts +2 -0
  383. package/lib/mocks/views/DashboardMock.js +123 -0
  384. package/lib/mocks/views/FormMock.d.ts +5 -0
  385. package/lib/mocks/views/FormMock.js +33 -0
  386. package/lib/mocks/views/TableMock.d.ts +5 -0
  387. package/lib/mocks/views/TableMock.js +160 -0
  388. package/lib/mocks/views/WipMock.d.ts +5 -0
  389. package/lib/mocks/views/WipMock.js +17 -0
  390. package/lib/mocks/views/index.d.ts +7 -0
  391. package/lib/mocks/views/index.js +16 -0
  392. package/lib/models/AIAgent.d.ts +17 -0
  393. package/lib/models/AIAgent.js +5 -0
  394. package/lib/models/Account.d.ts +4 -0
  395. package/lib/models/Account.js +5 -0
  396. package/lib/models/Assignment.d.ts +7 -0
  397. package/lib/models/Assignment.js +5 -0
  398. package/lib/models/Base.d.ts +16 -0
  399. package/lib/models/Base.js +5 -0
  400. package/lib/models/Cell.d.ts +8 -0
  401. package/lib/models/Cell.js +5 -0
  402. package/lib/models/CodeBlock.d.ts +10 -0
  403. package/lib/models/CodeBlock.js +5 -0
  404. package/lib/models/CodefeedBlocks.d.ts +7 -0
  405. package/lib/models/CodefeedBlocks.js +5 -0
  406. package/lib/models/Contact.d.ts +73 -0
  407. package/lib/models/Contact.js +95 -0
  408. package/lib/models/ContactEvent.d.ts +10 -0
  409. package/lib/models/ContactEvent.js +19 -0
  410. package/lib/models/ContactIAMProvider.d.ts +12 -0
  411. package/lib/models/ContactIAMProvider.js +20 -0
  412. package/lib/models/ContactTags.d.ts +23 -0
  413. package/lib/models/ContactTags.js +73 -0
  414. package/lib/models/Content.d.ts +5 -0
  415. package/lib/models/Content.js +5 -0
  416. package/lib/models/Course.d.ts +17 -0
  417. package/lib/models/Course.js +5 -0
  418. package/lib/models/Credits.d.ts +76 -0
  419. package/lib/models/Credits.js +16 -0
  420. package/lib/models/Dataset.d.ts +16 -0
  421. package/lib/models/Dataset.js +5 -0
  422. package/lib/models/Datasource.d.ts +11 -0
  423. package/lib/models/Datasource.js +19 -0
  424. package/lib/models/Dean.d.ts +3 -0
  425. package/lib/models/Dean.js +5 -0
  426. package/lib/models/Document.d.ts +8 -0
  427. package/lib/models/Document.js +5 -0
  428. package/lib/models/Environment.d.ts +82 -0
  429. package/lib/models/Environment.js +5 -0
  430. package/lib/models/Errors.d.ts +6 -0
  431. package/lib/models/Errors.js +18 -0
  432. package/lib/models/Exercise.d.ts +16 -0
  433. package/lib/models/Exercise.js +5 -0
  434. package/lib/models/GrowthKPI.d.ts +5 -0
  435. package/lib/models/GrowthKPI.js +14 -0
  436. package/lib/models/IAMProviderLinked.d.ts +9 -0
  437. package/lib/models/IAMProviderLinked.js +13 -0
  438. package/lib/models/IAMProviderPost.d.ts +8 -0
  439. package/lib/models/IAMProviderPost.js +22 -0
  440. package/lib/models/IAMProviderUsers.d.ts +49 -0
  441. package/lib/models/IAMProviderUsers.js +34 -0
  442. package/lib/models/IAMProvidersSpecs.d.ts +22 -0
  443. package/lib/models/IAMProvidersSpecs.js +72 -0
  444. package/lib/models/IAMToken.d.ts +11 -0
  445. package/lib/models/IAMToken.js +19 -0
  446. package/lib/models/Inbound.d.ts +25 -0
  447. package/lib/models/Inbound.js +34 -0
  448. package/lib/models/Instructor.d.ts +3 -0
  449. package/lib/models/Instructor.js +5 -0
  450. package/lib/models/Invite.d.ts +14 -0
  451. package/lib/models/Invite.js +24 -0
  452. package/lib/models/Item.d.ts +20 -0
  453. package/lib/models/Item.js +5 -0
  454. package/lib/models/ItemType.d.ts +2 -0
  455. package/lib/models/ItemType.js +5 -0
  456. package/lib/models/LandingRoles.d.ts +3 -0
  457. package/lib/models/LandingRoles.js +32 -0
  458. package/lib/models/Lesson.d.ts +5 -0
  459. package/lib/models/Lesson.js +5 -0
  460. package/lib/models/Library.d.ts +10 -0
  461. package/lib/models/Library.js +5 -0
  462. package/lib/models/Member.d.ts +3 -0
  463. package/lib/models/Member.js +5 -0
  464. package/lib/models/Notebook.d.ts +11 -0
  465. package/lib/models/Notebook.js +5 -0
  466. package/lib/models/Organization.d.ts +27 -0
  467. package/lib/models/Organization.js +41 -0
  468. package/lib/models/OrganizationMember.d.ts +6 -0
  469. package/lib/models/OrganizationMember.js +5 -0
  470. package/lib/models/Outbound.d.ts +41 -0
  471. package/lib/models/Outbound.js +50 -0
  472. package/lib/models/Page.d.ts +36 -0
  473. package/lib/models/Page.js +23 -0
  474. package/lib/models/PageTag.d.ts +19 -0
  475. package/lib/models/PageTag.js +26 -0
  476. package/lib/models/Profile.d.ts +1 -0
  477. package/lib/models/Profile.js +5 -0
  478. package/lib/models/Role.d.ts +9 -0
  479. package/lib/models/Role.js +5 -0
  480. package/lib/models/RolesOrganization.d.ts +9 -0
  481. package/lib/models/RolesOrganization.js +63 -0
  482. package/lib/models/RolesPlatform.d.ts +16 -0
  483. package/lib/models/RolesPlatform.js +147 -0
  484. package/lib/models/RolesTeam.d.ts +7 -0
  485. package/lib/models/RolesTeam.js +39 -0
  486. package/lib/models/Runtime.d.ts +65 -0
  487. package/lib/models/Runtime.js +16 -0
  488. package/lib/models/RuntimeSnapshot.d.ts +92 -0
  489. package/lib/models/RuntimeSnapshot.js +13 -0
  490. package/lib/models/School.d.ts +11 -0
  491. package/lib/models/School.js +5 -0
  492. package/lib/models/Secret.d.ts +10 -0
  493. package/lib/models/Secret.js +18 -0
  494. package/lib/models/Space.d.ts +34 -0
  495. package/lib/models/Space.js +39 -0
  496. package/lib/models/SpaceItem.d.ts +10 -0
  497. package/lib/models/SpaceItem.js +5 -0
  498. package/lib/models/SpaceMember.d.ts +6 -0
  499. package/lib/models/SpaceMember.js +5 -0
  500. package/lib/models/Student.d.ts +6 -0
  501. package/lib/models/Student.js +5 -0
  502. package/lib/models/StudentItem.d.ts +21 -0
  503. package/lib/models/StudentItem.js +5 -0
  504. package/lib/models/Survey.d.ts +20 -0
  505. package/lib/models/Survey.js +19 -0
  506. package/lib/models/Team.d.ts +22 -0
  507. package/lib/models/Team.js +37 -0
  508. package/lib/models/TeamMember.d.ts +6 -0
  509. package/lib/models/TeamMember.js +5 -0
  510. package/lib/models/URN.d.ts +63 -0
  511. package/lib/models/URN.js +45 -0
  512. package/lib/models/Usage.d.ts +46 -0
  513. package/lib/models/Usage.js +21 -0
  514. package/lib/models/User.d.ts +71 -0
  515. package/lib/models/User.js +103 -0
  516. package/lib/models/UserEvent.d.ts +10 -0
  517. package/lib/models/UserEvent.js +19 -0
  518. package/lib/models/UserOnboarding.d.ts +14 -0
  519. package/lib/models/UserOnboarding.js +24 -0
  520. package/lib/models/UserSettings.d.ts +16 -0
  521. package/lib/models/UserSettings.js +32 -0
  522. package/lib/models/WaitingListFormData.d.ts +6 -0
  523. package/lib/models/WaitingListFormData.js +5 -0
  524. package/lib/models/index.d.ts +65 -0
  525. package/lib/models/index.js +74 -0
  526. package/lib/routes/Routes.d.ts +3 -0
  527. package/lib/routes/Routes.js +12 -0
  528. package/lib/routes/index.d.ts +1 -0
  529. package/lib/routes/index.js +10 -0
  530. package/lib/state/State.d.ts +33 -0
  531. package/lib/state/State.js +49 -0
  532. package/lib/state/index.d.ts +3 -0
  533. package/lib/state/index.js +12 -0
  534. package/lib/state/storage/IAMStorage.d.ts +33 -0
  535. package/lib/state/storage/IAMStorage.js +81 -0
  536. package/lib/state/storage/index.d.ts +1 -0
  537. package/lib/state/storage/index.js +10 -0
  538. package/lib/state/substates/AIAgentState.d.ts +11 -0
  539. package/lib/state/substates/AIAgentState.js +45 -0
  540. package/lib/state/substates/CellState.d.ts +12 -0
  541. package/lib/state/substates/CellState.js +26 -0
  542. package/lib/state/substates/CoreState.d.ts +25 -0
  543. package/lib/state/substates/CoreState.js +93 -0
  544. package/lib/state/substates/DatasourceState.d.ts +11 -0
  545. package/lib/state/substates/DatasourceState.js +21 -0
  546. package/lib/state/substates/DocumentState.d.ts +10 -0
  547. package/lib/state/substates/DocumentState.js +19 -0
  548. package/lib/state/substates/GradeState.d.ts +10 -0
  549. package/lib/state/substates/GradeState.js +19 -0
  550. package/lib/state/substates/IAMState.d.ts +75 -0
  551. package/lib/state/substates/IAMState.js +294 -0
  552. package/lib/state/substates/JupyterLabState.d.ts +16 -0
  553. package/lib/state/substates/JupyterLabState.js +22 -0
  554. package/lib/state/substates/LayoutState.d.ts +62 -0
  555. package/lib/state/substates/LayoutState.js +74 -0
  556. package/lib/state/substates/NbformatState.d.ts +13 -0
  557. package/lib/state/substates/NbformatState.js +21 -0
  558. package/lib/state/substates/OrganizationState.d.ts +11 -0
  559. package/lib/state/substates/OrganizationState.js +21 -0
  560. package/lib/state/substates/RuntimesState.d.ts +88 -0
  561. package/lib/state/substates/RuntimesState.js +183 -0
  562. package/lib/state/substates/SpaceState.d.ts +11 -0
  563. package/lib/state/substates/SpaceState.js +21 -0
  564. package/lib/state/substates/SurveysState.d.ts +14 -0
  565. package/lib/state/substates/SurveysState.js +103 -0
  566. package/lib/state/substates/TeamState.d.ts +11 -0
  567. package/lib/state/substates/TeamState.js +22 -0
  568. package/lib/state/substates/index.d.ts +15 -0
  569. package/lib/state/substates/index.js +24 -0
  570. package/lib/test-setup.d.ts +1 -0
  571. package/lib/test-setup.js +7 -0
  572. package/lib/theme/DatalayerTheme.d.ts +37 -0
  573. package/lib/theme/DatalayerTheme.js +67 -0
  574. package/lib/theme/DatalayerThemeProvider.d.ts +17 -0
  575. package/lib/theme/DatalayerThemeProvider.js +74 -0
  576. package/lib/theme/Palette.d.ts +5 -0
  577. package/lib/theme/Palette.js +27 -0
  578. package/lib/theme/index.d.ts +3 -0
  579. package/lib/theme/index.js +12 -0
  580. package/lib/utils/Array.d.ts +2 -0
  581. package/lib/utils/Array.js +21 -0
  582. package/lib/utils/Avatar.d.ts +9 -0
  583. package/lib/utils/Avatar.js +39 -0
  584. package/lib/utils/Browser.d.ts +3 -0
  585. package/lib/utils/Browser.js +68 -0
  586. package/lib/utils/Cells.d.ts +2 -0
  587. package/lib/utils/Cells.js +28 -0
  588. package/lib/utils/Cookie.d.ts +12 -0
  589. package/lib/utils/Cookie.js +53 -0
  590. package/lib/utils/Date.d.ts +2 -0
  591. package/lib/utils/Date.js +65 -0
  592. package/lib/utils/Download.d.ts +3 -0
  593. package/lib/utils/Download.js +53 -0
  594. package/lib/utils/DownloadFile.d.ts +10 -0
  595. package/lib/utils/DownloadFile.js +41 -0
  596. package/lib/utils/Env.d.ts +1 -0
  597. package/lib/utils/Env.js +12 -0
  598. package/lib/utils/File.d.ts +7 -0
  599. package/lib/utils/File.js +21 -0
  600. package/lib/utils/Format.d.ts +17 -0
  601. package/lib/utils/Format.js +54 -0
  602. package/lib/utils/Ids.d.ts +2 -0
  603. package/lib/utils/Ids.js +17 -0
  604. package/lib/utils/Jupyter.d.ts +1 -0
  605. package/lib/utils/Jupyter.js +17 -0
  606. package/lib/utils/Lazy.d.ts +8 -0
  607. package/lib/utils/Lazy.js +29 -0
  608. package/lib/utils/Msc.d.ts +16 -0
  609. package/lib/utils/Msc.js +28 -0
  610. package/lib/utils/Name.d.ts +7 -0
  611. package/lib/utils/Name.js +39 -0
  612. package/lib/utils/Notebook.d.ts +19 -0
  613. package/lib/utils/Notebook.js +37 -0
  614. package/lib/utils/Number.d.ts +1 -0
  615. package/lib/utils/Number.js +26 -0
  616. package/lib/utils/Plots.d.ts +16 -0
  617. package/lib/utils/Plots.js +56 -0
  618. package/lib/utils/Random.d.ts +1 -0
  619. package/lib/utils/Random.js +12 -0
  620. package/lib/utils/Screenshot.d.ts +1 -0
  621. package/lib/utils/Screenshot.js +32 -0
  622. package/lib/utils/Scroll.d.ts +2 -0
  623. package/lib/utils/Scroll.js +36 -0
  624. package/lib/utils/Sleep.d.ts +2 -0
  625. package/lib/utils/Sleep.js +13 -0
  626. package/lib/utils/Snapshot.d.ts +7 -0
  627. package/lib/utils/Snapshot.js +26 -0
  628. package/lib/utils/String.d.ts +1 -0
  629. package/lib/utils/String.js +18 -0
  630. package/lib/utils/Uri.d.ts +2 -0
  631. package/lib/utils/Uri.js +31 -0
  632. package/lib/utils/Validator.d.ts +12 -0
  633. package/lib/utils/Validator.js +49 -0
  634. package/lib/utils/WithSuspense.d.ts +2 -0
  635. package/lib/utils/WithSuspense.js +26 -0
  636. package/lib/utils/index.d.ts +26 -0
  637. package/lib/utils/index.js +36 -0
  638. package/package.json +43 -4
  639. package/style/base.css +0 -5
  640. package/style/index.css +0 -7
  641. package/style/index.js +0 -7
@@ -0,0 +1,4 @@
1
+ declare const useCellOutputshot: () => (string | ((node: HTMLDivElement) => void) | {
2
+ error: undefined;
3
+ })[];
4
+ export default useCellOutputshot;
@@ -0,0 +1,33 @@
1
+ /*
2
+ * Copyright (c) 2023-2025 Datalayer, Inc.
3
+ * Distributed under the terms of the Modified BSD License.
4
+ */
5
+ /*
6
+ * Copyright (c) 2021-2024 Datalayer, Inc.
7
+ *
8
+ * Datalayer License
9
+ */
10
+ import { useState } from 'react';
11
+ import { useCellStore } from '../state';
12
+ import { takeHTMLNodeScreenshot } from '../utils/Screenshot';
13
+ const useCellOutputshot = () => {
14
+ const [outputshot, setOutputshot] = useState('');
15
+ const [error, setError] = useState();
16
+ const { update } = useCellStore();
17
+ const takeOutputshot = (node) => {
18
+ takeHTMLNodeScreenshot(node).then(outputshotData => {
19
+ setOutputshot(outputshotData);
20
+ update({
21
+ outputshotData,
22
+ });
23
+ return outputshotData;
24
+ })
25
+ .catch(reason => setError(reason));
26
+ };
27
+ return [
28
+ outputshot,
29
+ takeOutputshot,
30
+ { error }
31
+ ];
32
+ };
33
+ export default useCellOutputshot;
@@ -0,0 +1,9 @@
1
+ import { type RefObject } from 'react';
2
+ /**
3
+ * Determine if a child element of the provided ref is currently focussed.
4
+ * @param containerRef The ref to the container element.
5
+ * @param onFocusChange The callback to be called when the focus state changes.
6
+ * @type T The type of the container element.
7
+ * @returns The ref to be applied to the container element.
8
+ */
9
+ export declare const useContainsFocus: <T extends HTMLElement>(containerRef?: RefObject<T>, onFocusChange?: (isFocussed: boolean) => void) => void;
@@ -0,0 +1,48 @@
1
+ /*
2
+ * Copyright (c) 2023-2025 Datalayer, Inc.
3
+ * Distributed under the terms of the Modified BSD License.
4
+ */
5
+ /*
6
+ * Copyright (c) 2021-2024 Datalayer, Inc.
7
+ *
8
+ * Datalayer License
9
+ */
10
+ import { useCallback, useEffect, useState } from 'react';
11
+ /**
12
+ * Determine if a child element of the provided ref is currently focussed.
13
+ * @param containerRef The ref to the container element.
14
+ * @param onFocusChange The callback to be called when the focus state changes.
15
+ * @type T The type of the container element.
16
+ * @returns The ref to be applied to the container element.
17
+ */
18
+ export const useContainsFocus = (containerRef, onFocusChange) => {
19
+ const [isChildFocused, setIsChildFocused] = useState(false);
20
+ const updateState = useCallback((isFocused) => {
21
+ if (isFocused !== isChildFocused) {
22
+ setIsChildFocused(isFocused);
23
+ onFocusChange?.(isFocused);
24
+ }
25
+ }, [isChildFocused, onFocusChange]);
26
+ useEffect(() => {
27
+ if (!containerRef) {
28
+ return;
29
+ }
30
+ const handleFocusIn = () => {
31
+ updateState(true);
32
+ };
33
+ const handleFocusOut = (event) => {
34
+ if (containerRef.current && !containerRef.current.contains(event.relatedTarget)) {
35
+ updateState(false);
36
+ }
37
+ };
38
+ const container = containerRef.current;
39
+ if (container) {
40
+ container.addEventListener('focusin', handleFocusIn, true);
41
+ container.addEventListener('focusout', handleFocusOut, true);
42
+ return () => {
43
+ container.removeEventListener('focusin', handleFocusIn, true);
44
+ container.removeEventListener('focusout', handleFocusOut, true);
45
+ };
46
+ }
47
+ }, [updateState, containerRef]);
48
+ };
@@ -0,0 +1,9 @@
1
+ import React from "react";
2
+ export declare const ErrorMessage: React.FC<{
3
+ message: Array<string> | string | null;
4
+ }>;
5
+ export declare const useError: (initialState: string | null) => {
6
+ error: string | null;
7
+ showError: (errorMessage: string | null) => void;
8
+ };
9
+ export default useError;
@@ -0,0 +1,31 @@
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) 2021-2024 Datalayer, Inc.
8
+ *
9
+ * Datalayer License
10
+ */
11
+ import { useState } from "react";
12
+ import { Flash } from '@primer/react';
13
+ export const ErrorMessage = ({ message }) => {
14
+ if (message instanceof Array) {
15
+ return _jsx("div", { children: message.map((m, i) => _jsx(Flash, { variant: "danger", children: m }, i)) });
16
+ }
17
+ else {
18
+ return _jsx(Flash, { variant: "danger", children: message });
19
+ }
20
+ };
21
+ export const useError = (initialState) => {
22
+ const [error, setError] = useState(initialState);
23
+ const showError = (errorMessage) => {
24
+ setError(errorMessage);
25
+ window.setTimeout(() => {
26
+ setError(null);
27
+ }, 3000);
28
+ };
29
+ return { error, showError };
30
+ };
31
+ export default useError;
@@ -0,0 +1,2 @@
1
+ declare const useExternalScript: (url: string) => void;
2
+ export default useExternalScript;
@@ -0,0 +1,22 @@
1
+ /*
2
+ * Copyright (c) 2023-2025 Datalayer, Inc.
3
+ * Distributed under the terms of the Modified BSD License.
4
+ */
5
+ /*
6
+ * Copyright (c) 2021-2024 Datalayer, Inc.
7
+ *
8
+ * Datalayer License
9
+ */
10
+ import { useEffect } from "react";
11
+ const useExternalScript = (url) => {
12
+ useEffect(() => {
13
+ const head = document.querySelector("head");
14
+ const script = document.createElement("script");
15
+ script.setAttribute("src", url);
16
+ head.appendChild(script);
17
+ return () => {
18
+ head.removeChild(script);
19
+ };
20
+ }, [url]);
21
+ };
22
+ export default useExternalScript;
@@ -0,0 +1,30 @@
1
+ import React from 'react';
2
+ export interface FocusTrapHookSettings {
3
+ /**
4
+ * Ref that will be used for the trapping container. If not provided, one will
5
+ * be created by this hook and returned.
6
+ */
7
+ containerRef: React.RefObject<HTMLElement>;
8
+ /**
9
+ * Ref for the element that should receive focus when the focus trap is first enabled.
10
+ * If not provided, one will be created by this hook and returned. Its use is optional.
11
+ */
12
+ initialFocusRef?: React.RefObject<HTMLElement>;
13
+ /**
14
+ * Set to true to disable the focus trap and clean up listeners. Can be re-enabled at any time.
15
+ */
16
+ disabled?: boolean;
17
+ /**
18
+ * If true, when this focus trap is cleaned up, restore focus to the element that had focus immediately before the focus trap was enabled. (Default: false)
19
+ */
20
+ restoreFocusOnCleanUp?: boolean;
21
+ }
22
+ /**
23
+ * Hook used to trap focus inside a container. Returns a ref that can be added to the container
24
+ * that should trap focus.
25
+ * @param settings {FocusTrapHookSettings}
26
+ */
27
+ export declare function useFocusTrap(settings?: FocusTrapHookSettings, dependencies?: React.DependencyList): {
28
+ containerRef: React.RefObject<HTMLElement> | undefined;
29
+ initialFocusRef: React.RefObject<HTMLElement> | undefined;
30
+ };
@@ -0,0 +1,53 @@
1
+ /*
2
+ * Copyright (c) 2023-2025 Datalayer, Inc.
3
+ * Distributed under the terms of the Modified BSD License.
4
+ */
5
+ /*
6
+ * Copyright (c) 2021-2024 Datalayer, Inc.
7
+ *
8
+ * Datalayer License
9
+ */
10
+ import React from 'react';
11
+ import { focusTrap } from '@primer/behaviors';
12
+ /**
13
+ * Hook used to trap focus inside a container. Returns a ref that can be added to the container
14
+ * that should trap focus.
15
+ * @param settings {FocusTrapHookSettings}
16
+ */
17
+ export function useFocusTrap(settings, dependencies = []) {
18
+ const containerRef = settings?.containerRef;
19
+ const initialFocusRef = settings?.initialFocusRef;
20
+ const disabled = settings?.disabled;
21
+ const abortController = React.useRef();
22
+ const previousFocusedElement = React.useRef(null);
23
+ // If we are enabling a focus trap and haven't already stored the previously focused element
24
+ // go ahead an do that so we can restore later when the trap is disabled.
25
+ if (!previousFocusedElement.current && !settings?.disabled) {
26
+ previousFocusedElement.current = document.activeElement;
27
+ }
28
+ // This function removes the event listeners that enable the focus trap and restores focus
29
+ // to the previously-focused element (if necessary).
30
+ function disableTrap() {
31
+ abortController.current?.abort();
32
+ if (settings?.restoreFocusOnCleanUp && previousFocusedElement.current instanceof HTMLElement) {
33
+ previousFocusedElement.current.focus();
34
+ previousFocusedElement.current = null;
35
+ }
36
+ }
37
+ React.useEffect(() => {
38
+ if (containerRef?.current instanceof HTMLElement) {
39
+ if (!disabled) {
40
+ abortController.current = focusTrap(containerRef.current, initialFocusRef?.current ?? undefined);
41
+ return () => {
42
+ disableTrap();
43
+ };
44
+ }
45
+ else {
46
+ disableTrap();
47
+ }
48
+ }
49
+ },
50
+ // eslint-disable-next-line react-hooks/exhaustive-deps
51
+ [containerRef, initialFocusRef, disabled, ...dependencies]);
52
+ return { containerRef, initialFocusRef };
53
+ }
@@ -0,0 +1,14 @@
1
+ import { IUser } from '../models';
2
+ export type IAMStateProps = {
3
+ user?: IUser;
4
+ token?: string;
5
+ loginRoute?: string;
6
+ };
7
+ export declare const useIAM: (props?: IAMStateProps) => {
8
+ user: IUser | undefined;
9
+ token: string | undefined;
10
+ loginAndNavigate: (token: string, logout: () => void, refresh: (token: string) => void, navigate?: (location: string, e?: any, resetPortals?: boolean) => void, homeRoute?: string) => Promise<void>;
11
+ setLogin: (user: IUser, token: string) => void;
12
+ logout: () => void;
13
+ };
14
+ export default useIAM;
@@ -0,0 +1,98 @@
1
+ /*
2
+ * Copyright (c) 2023-2025 Datalayer, Inc.
3
+ * Distributed under the terms of the Modified BSD License.
4
+ */
5
+ /*
6
+ * Copyright (c) 2021-2024 Datalayer, Inc.
7
+ *
8
+ * Datalayer License
9
+ */
10
+ import { useEffect, useState } from 'react';
11
+ import { useCache } from './useCache';
12
+ import { coreStore, useIAMStore, useLayoutStore, useOrganizationStore, useSpaceStore } from '../state';
13
+ import { asUser, ANONYMOUS_USER, ANONYMOUS_USER_TOKEN } from '../models';
14
+ import { requestRunAPI } from '../api';
15
+ export const useIAM = (props = { user: undefined, token: undefined }) => {
16
+ const { token } = props;
17
+ const [iamState, setIAMState] = useState(props);
18
+ const iamStore = useIAMStore();
19
+ const layoutStore = useLayoutStore();
20
+ const organizationStore = useOrganizationStore();
21
+ const spaceStore = useSpaceStore();
22
+ const { clearAllCaches, whoami } = useCache();
23
+ const loginAndNavigate = async (token, logout, refresh, navigate, homeRoute) => {
24
+ try {
25
+ const resp = await requestRunAPI({
26
+ url: `${iamStore.iamRunUrl}/api/iam/v1/login`,
27
+ method: 'POST',
28
+ body: { token },
29
+ });
30
+ if (resp.success && resp.token) {
31
+ if (resp.is_provided_token_external === true) {
32
+ // The provided token is recognized as an external one, so store it as such...
33
+ iamStore.setExternalToken(token);
34
+ }
35
+ const user = asUser(resp.user);
36
+ const responseToken = resp.token;
37
+ setIAMState({ user, token: responseToken });
38
+ refresh(responseToken);
39
+ if (navigate && homeRoute) {
40
+ navigate(homeRoute);
41
+ }
42
+ }
43
+ else {
44
+ throw new Error('Invalid Token.');
45
+ }
46
+ }
47
+ catch (error) {
48
+ if (error.name === 'RunResponseError' &&
49
+ error.response.status === 401) {
50
+ console.log('Datalayer IAM has sent a 401 return code.');
51
+ logout();
52
+ }
53
+ throw error;
54
+ }
55
+ };
56
+ const setLogin = (user, token) => {
57
+ iamStore.setLogin(user, token);
58
+ setIAMState({
59
+ user,
60
+ token,
61
+ });
62
+ };
63
+ const logout = () => {
64
+ iamStore.logout();
65
+ layoutStore.reset();
66
+ organizationStore.updateOrganizations([]);
67
+ spaceStore.updateSpaces([]);
68
+ clearAllCaches();
69
+ setIAMState({ user: ANONYMOUS_USER, token: ANONYMOUS_USER_TOKEN });
70
+ };
71
+ useEffect(() => {
72
+ if (token) {
73
+ whoami()
74
+ .then(resp => {
75
+ if (resp.success) {
76
+ const user = asUser(resp.profile);
77
+ setIAMState({ user, token });
78
+ iamStore.setLogin(user, token);
79
+ // TODO centralize user settings management.
80
+ const aiagentsRunUrl = user.settings?.aiAgentsUrl;
81
+ if (aiagentsRunUrl) {
82
+ coreStore.getState().setConfiguration({
83
+ aiagentsRunUrl,
84
+ });
85
+ }
86
+ }
87
+ });
88
+ }
89
+ }, []);
90
+ return {
91
+ user: iamState.user,
92
+ token: iamState.token,
93
+ loginAndNavigate,
94
+ setLogin,
95
+ logout
96
+ };
97
+ };
98
+ export default useIAM;
@@ -0,0 +1,19 @@
1
+ /**
2
+ * useId
3
+ *
4
+ * Autogenerate IDs to facilitate WAI-ARIA and server rendering.
5
+ *
6
+ * Note: The returned ID will initially be `null` and will update after a
7
+ * component mounts. Users may need to supply their own ID if they need
8
+ * consistent values for SSR.
9
+ *
10
+ * @see Docs https://reach.tech/auto-id
11
+ */
12
+ declare function useId(idFromProps: string): string;
13
+ declare function useId(idFromProps: number): number;
14
+ declare function useId(idFromProps: string | number): string | number;
15
+ declare function useId(idFromProps: string | undefined | null): string | undefined;
16
+ declare function useId(idFromProps: number | undefined | null): number | undefined;
17
+ declare function useId(idFromProps: string | number | undefined | null): string | number | undefined;
18
+ declare function useId(): string | undefined;
19
+ export { useId };
@@ -0,0 +1,105 @@
1
+ /*
2
+ * Copyright (c) 2023-2025 Datalayer, Inc.
3
+ * Distributed under the terms of the Modified BSD License.
4
+ */
5
+ /*
6
+ * Copyright (c) 2021-2024 Datalayer, Inc.
7
+ *
8
+ * Datalayer License
9
+ */
10
+ /*
11
+ * Welcome to @reach/auto-id!
12
+
13
+ * Let's see if we can make sense of why this hook exists and its
14
+ * implementation.
15
+ *
16
+ * Some background:
17
+ * 1. Accessibility APIs rely heavily on element IDs
18
+ * 2. Requiring developers to put IDs on every element in Reach UI is both
19
+ * cumbersome and error-prone
20
+ * 3. With a component model, we can generate IDs for them!
21
+ *
22
+ * Solution 1: Generate random IDs.
23
+ *
24
+ * This works great as long as you don't server render your app. When React (in
25
+ * the client) tries to reuse the markup from the server, the IDs won't match
26
+ * and React will then recreate the entire DOM tree.
27
+ *
28
+ * Solution 2: Increment an integer
29
+ *
30
+ * This sounds great. Since we're rendering the exact same tree on the server
31
+ * and client, we can increment a counter and get a deterministic result between
32
+ * client and server. Also, JS integers can go up to nine-quadrillion. I'm
33
+ * pretty sure the tab will be closed before an app never needs
34
+ * 10 quadrillion IDs!
35
+ *
36
+ * Problem solved, right?
37
+ *
38
+ * Ah, but there's a catch! React's concurrent rendering makes this approach
39
+ * non-deterministic. While the client and server will end up with the same
40
+ * elements in the end, depending on suspense boundaries (and possibly some user
41
+ * input during the initial render) the incrementing integers won't always match
42
+ * up.
43
+ *
44
+ * Solution 3: Don't use IDs at all on the server; patch after first render.
45
+ *
46
+ * What we've done here is solution 2 with some tricks. With this approach, the
47
+ * ID returned is an empty string on the first render. This way the server and
48
+ * client have the same markup no matter how wild the concurrent rendering may
49
+ * have gotten.
50
+ *
51
+ * After the render, we patch up the components with an incremented ID. This
52
+ * causes a double render on any components with `useId`. Shouldn't be a problem
53
+ * since the components using this hook should be small, and we're only updating
54
+ * the ID attribute on the DOM, nothing big is happening.
55
+ *
56
+ * It doesn't have to be an incremented number, though--we could do generate
57
+ * random strings instead, but incrementing a number is probably the cheapest
58
+ * thing we can do.
59
+ *
60
+ * Additionally, we only do this patchup on the very first client render ever.
61
+ * Any calls to `useId` that happen dynamically in the client will be
62
+ * populated immediately with a value. So, we only get the double render after
63
+ * server hydration and never again, SO BACK OFF ALRIGHT?
64
+ */
65
+ /* eslint-disable react-hooks/rules-of-hooks */
66
+ import * as React from "react";
67
+ import { useLayoutEffect } from "react";
68
+ let serverHandoffComplete = false;
69
+ let id = 0;
70
+ function genId() {
71
+ return ++id;
72
+ }
73
+ // Workaround for https://github.com/webpack/webpack/issues/14814
74
+ // https://github.com/eps1lon/material-ui/blob/8d5f135b4d7a58253a99ab56dce4ac8de61f5dc1/packages/mui-utils/src/useId.ts#L21
75
+ const maybeReactUseId = React["useId".toString()];
76
+ function useId(providedId) {
77
+ if (maybeReactUseId !== undefined) {
78
+ let generatedId = maybeReactUseId();
79
+ return providedId ?? generatedId;
80
+ }
81
+ // If this instance isn't part of the initial render, we don't have to do the
82
+ // double render/patch-up dance. We can just generate the ID and return it.
83
+ let initialId = providedId ?? (serverHandoffComplete ? genId() : null);
84
+ let [id, setId] = React.useState(initialId);
85
+ useLayoutEffect(() => {
86
+ if (id === null) {
87
+ // Patch the ID after render. We do this in `useLayoutEffect` to avoid any
88
+ // rendering flicker, though it'll make the first render slower (unlikely
89
+ // to matter, but you're welcome to measure your app and let us know if
90
+ // it's a problem).
91
+ setId(genId());
92
+ }
93
+ // eslint-disable-next-line react-hooks/exhaustive-deps
94
+ }, []);
95
+ React.useEffect(() => {
96
+ if (serverHandoffComplete === false) {
97
+ // Flag all future uses of `useId` to skip the update dance. This is in
98
+ // `useEffect` because it goes after `useLayoutEffect`, ensuring we don't
99
+ // accidentally bail out of the patch-up dance prematurely.
100
+ serverHandoffComplete = true;
101
+ }
102
+ }, []);
103
+ return providedId ?? id ?? undefined;
104
+ }
105
+ export { useId };
@@ -0,0 +1,3 @@
1
+ import { useEffect } from 'react';
2
+ declare const useIsomorphicLayoutEffect: typeof useEffect;
3
+ export default useIsomorphicLayoutEffect;
@@ -0,0 +1,16 @@
1
+ /*
2
+ * Copyright (c) 2023-2025 Datalayer, Inc.
3
+ * Distributed under the terms of the Modified BSD License.
4
+ */
5
+ /*
6
+ * Copyright (c) 2021-2024 Datalayer, Inc.
7
+ *
8
+ * Datalayer License
9
+ */
10
+ import { useEffect, useLayoutEffect } from 'react';
11
+ const useIsomorphicLayoutEffect = typeof window !== 'undefined' &&
12
+ typeof window.document !== 'undefined' &&
13
+ typeof window.document.createElement !== 'undefined'
14
+ ? useLayoutEffect
15
+ : useEffect;
16
+ export default useIsomorphicLayoutEffect;
@@ -0,0 +1,6 @@
1
+ import { IThemeManager } from '@jupyterlab/apputils';
2
+ export declare enum JupyterLabTheme {
3
+ LIGHT = "JupyterLab Light",
4
+ DARK = "JupyterLab Dark"
5
+ }
6
+ export declare const useJupyterLabTheme: (themeManager: IThemeManager) => any;
@@ -0,0 +1,29 @@
1
+ /*
2
+ * Copyright (c) 2023-2025 Datalayer, Inc.
3
+ * Distributed under the terms of the Modified BSD License.
4
+ */
5
+ /*
6
+ * Copyright (c) 2021-2024 Datalayer, Inc.
7
+ *
8
+ * Datalayer License
9
+ */
10
+ import { useEffect, useState } from 'react';
11
+ export var JupyterLabTheme;
12
+ (function (JupyterLabTheme) {
13
+ JupyterLabTheme["LIGHT"] = "JupyterLab Light";
14
+ JupyterLabTheme["DARK"] = "JupyterLab Dark";
15
+ })(JupyterLabTheme || (JupyterLabTheme = {}));
16
+ export const useJupyterLabTheme = (themeManager) => {
17
+ const isLight = themeManager && themeManager.theme ? themeManager.isLight(themeManager.theme) : true;
18
+ const [theme, setTheme] = useState(isLight ? JupyterLabTheme.LIGHT : JupyterLabTheme.DARK);
19
+ useEffect(() => {
20
+ const handleThemeChange = (newTheme, event) => {
21
+ setTheme(event.newValue);
22
+ };
23
+ themeManager?.themeChanged?.connect(handleThemeChange);
24
+ return () => {
25
+ themeManager?.themeChanged?.disconnect(handleThemeChange);
26
+ };
27
+ }, []);
28
+ return theme;
29
+ };
@@ -0,0 +1 @@
1
+ export declare function useKeyboardEscape(handler: any): void;
@@ -0,0 +1,23 @@
1
+ /*
2
+ * Copyright (c) 2023-2025 Datalayer, Inc.
3
+ * Distributed under the terms of the Modified BSD License.
4
+ */
5
+ /*
6
+ * Copyright (c) 2021-2024 Datalayer, Inc.
7
+ *
8
+ * Datalayer License
9
+ */
10
+ import { useCallback, useEffect } from 'react';
11
+ export function useKeyboardEscape(handler) {
12
+ const handleKeyboardEscape = useCallback(event => {
13
+ if (event.key === 'Escape') {
14
+ handler();
15
+ }
16
+ }, [handler]);
17
+ useEffect(() => {
18
+ document.addEventListener('keydown', handleKeyboardEscape, false);
19
+ return () => {
20
+ document.removeEventListener('keydown', handleKeyboardEscape, false);
21
+ };
22
+ }, [handleKeyboardEscape]);
23
+ }
@@ -0,0 +1,10 @@
1
+ export declare const useLocationHandles: () => {
2
+ accountHandle: string | undefined;
3
+ spaceHandler: string | undefined;
4
+ spaceHandle?: undefined;
5
+ } | {
6
+ accountHandle: string | undefined;
7
+ spaceHandle: string | undefined;
8
+ spaceHandler?: undefined;
9
+ };
10
+ export default useLocationHandles;
@@ -0,0 +1,27 @@
1
+ /*
2
+ * Copyright (c) 2023-2025 Datalayer, Inc.
3
+ * Distributed under the terms of the Modified BSD License.
4
+ */
5
+ /*
6
+ * Copyright (c) 2021-2024 Datalayer, Inc.
7
+ *
8
+ * Datalayer License
9
+ */
10
+ import { useLocation, useParams } from "react-router-dom";
11
+ import { useRunStore } from "../state";
12
+ export const useLocationHandles = () => {
13
+ const { accountHandle, spaceHandle } = useParams();
14
+ const { pathname } = useLocation();
15
+ const runStore = useRunStore();
16
+ if (pathname.startsWith("/public")) {
17
+ return {
18
+ accountHandle: runStore.iam().user?.handle,
19
+ spaceHandler: runStore.layout().space?.handle,
20
+ };
21
+ }
22
+ return {
23
+ accountHandle,
24
+ spaceHandle,
25
+ };
26
+ };
27
+ export default useLocationHandles;
@@ -0,0 +1,2 @@
1
+ export declare const useNavigate: () => (location: string, e?: any, resetPortals?: boolean, options?: any) => void;
2
+ export default useNavigate;
@@ -0,0 +1,29 @@
1
+ /*
2
+ * Copyright (c) 2023-2025 Datalayer, Inc.
3
+ * Distributed under the terms of the Modified BSD License.
4
+ */
5
+ /*
6
+ * Copyright (c) 2021-2024 Datalayer, Inc.
7
+ *
8
+ * Datalayer License
9
+ */
10
+ import { useNavigate as useRouterNavigate } from "react-router-dom";
11
+ import { useLayoutStore } from '../state';
12
+ export const useNavigate = () => {
13
+ const routerNavigate = useRouterNavigate();
14
+ const layoutStore = useLayoutStore();
15
+ const navigate = (location, e = undefined, resetPortals = true, options = undefined) => {
16
+ if (e) {
17
+ e.preventDefault();
18
+ }
19
+ if (resetPortals) {
20
+ layoutStore.resetLeftPortal();
21
+ layoutStore.resetRightPortal();
22
+ }
23
+ window.scrollTo(0, 0);
24
+ document.body.scrollTop = 0;
25
+ routerNavigate(location, options);
26
+ };
27
+ return navigate;
28
+ };
29
+ export default useNavigate;
@@ -0,0 +1,8 @@
1
+ import type { IAIAgent } from '../models';
2
+ /**
3
+ * Get the document AI Agent if any.
4
+ *
5
+ * It handles checking the AI Agent is alive so it should only be use once per document.
6
+ */
7
+ export declare function useNotebookAIAgent(notebookId: string): IAIAgent | undefined;
8
+ export default useNotebookAIAgent;