@datalayer/core 0.0.1 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (676) hide show
  1. package/README.md +187 -7
  2. package/lib/App.css +47 -0
  3. package/lib/App.d.ts +3 -0
  4. package/lib/App.js +21 -5
  5. package/lib/__tests__/App.test.d.ts +1 -0
  6. package/lib/__tests__/App.test.js +17 -0
  7. package/lib/__tests__/hooks.test.d.ts +1 -0
  8. package/lib/__tests__/hooks.test.js +19 -0
  9. package/lib/__tests__/index.test.d.ts +1 -0
  10. package/lib/__tests__/index.test.js +27 -0
  11. package/lib/__tests__/integration.test.d.ts +1 -0
  12. package/lib/__tests__/integration.test.js +57 -0
  13. package/lib/__tests__/utils.test.d.ts +1 -0
  14. package/lib/__tests__/utils.test.js +59 -0
  15. package/lib/api/DatalayerApi.d.ts +75 -0
  16. package/lib/api/DatalayerApi.js +145 -0
  17. package/lib/api/index.d.ts +3 -0
  18. package/lib/api/index.js +7 -0
  19. package/lib/api/jupyter/exec/Python.d.ts +5 -0
  20. package/lib/api/jupyter/exec/Python.js +100 -0
  21. package/lib/api/jupyter/exec/Snippets.d.ts +145 -0
  22. package/lib/api/jupyter/exec/Snippets.js +120 -0
  23. package/lib/api/jupyter/exec/index.d.ts +2 -0
  24. package/lib/api/jupyter/exec/index.js +6 -0
  25. package/lib/api/jupyter/index.d.ts +2 -0
  26. package/lib/api/jupyter/index.js +6 -0
  27. package/lib/api/jupyter/kernelsHandler.d.ts +8 -0
  28. package/lib/api/jupyter/kernelsHandler.js +39 -0
  29. package/lib/api/runtimes/actions.d.ts +102 -0
  30. package/lib/api/runtimes/actions.js +264 -0
  31. package/lib/api/runtimes/apis.d.ts +273 -0
  32. package/lib/api/runtimes/apis.js +5 -0
  33. package/lib/api/runtimes/index.d.ts +5 -0
  34. package/lib/api/runtimes/index.js +9 -0
  35. package/lib/api/runtimes/settings.d.ts +15 -0
  36. package/lib/api/runtimes/settings.js +31 -0
  37. package/lib/api/runtimes/snapshots.d.ts +25 -0
  38. package/lib/api/runtimes/snapshots.js +150 -0
  39. package/lib/api/runtimes/utils.d.ts +7 -0
  40. package/lib/api/runtimes/utils.js +17 -0
  41. package/lib/assets/react.svg +1 -0
  42. package/lib/components/avatars/BoringAvatar.d.ts +19 -0
  43. package/lib/components/avatars/BoringAvatar.js +44 -0
  44. package/lib/components/avatars/BoringAvatar.stories.d.ts +27 -0
  45. package/lib/components/avatars/BoringAvatar.stories.js +23 -0
  46. package/lib/components/avatars/UserProfileAvatar.d.ts +13 -0
  47. package/lib/components/avatars/UserProfileAvatar.js +32 -0
  48. package/lib/components/avatars/index.d.ts +2 -0
  49. package/lib/components/avatars/index.js +6 -0
  50. package/lib/components/banners/NoAutomationBanner.d.ts +2 -0
  51. package/lib/components/banners/NoAutomationBanner.js +13 -0
  52. package/lib/components/banners/index.d.ts +1 -0
  53. package/lib/components/banners/index.js +5 -0
  54. package/lib/components/buttons/DownloadCSVButton.d.ts +13 -0
  55. package/lib/components/buttons/DownloadCSVButton.js +16 -0
  56. package/lib/components/buttons/DownloadJsonButton.d.ts +16 -0
  57. package/lib/components/buttons/DownloadJsonButton.js +18 -0
  58. package/lib/components/buttons/LongActionButton.d.ts +28 -0
  59. package/lib/components/buttons/LongActionButton.js +24 -0
  60. package/lib/components/buttons/UploadButton.d.ts +37 -0
  61. package/lib/components/buttons/UploadButton.js +43 -0
  62. package/lib/components/buttons/VariantType.d.ts +1 -0
  63. package/lib/components/buttons/VariantType.js +5 -0
  64. package/lib/components/buttons/index.d.ts +5 -0
  65. package/lib/components/buttons/index.js +9 -0
  66. package/lib/components/checkout/StripeCheckout.d.ts +32 -0
  67. package/lib/components/checkout/StripeCheckout.js +95 -0
  68. package/lib/components/checkout/index.d.ts +1 -0
  69. package/lib/components/checkout/index.js +5 -0
  70. package/lib/components/confetti/ConfettiSuccess.d.ts +2 -0
  71. package/lib/components/confetti/ConfettiSuccess.js +12 -0
  72. package/lib/components/confetti/index.d.ts +1 -0
  73. package/lib/components/confetti/index.js +5 -0
  74. package/lib/components/context/OrganizationSelect.d.ts +2 -0
  75. package/lib/components/context/OrganizationSelect.js +35 -0
  76. package/lib/components/context/SpaceSelect.d.ts +2 -0
  77. package/lib/components/context/SpaceSelect.js +43 -0
  78. package/lib/components/context/index.d.ts +2 -0
  79. package/lib/components/context/index.js +6 -0
  80. package/lib/components/display/AvatarSkeleton.d.ts +5 -0
  81. package/lib/components/display/AvatarSkeleton.js +11 -0
  82. package/lib/components/display/CenteredSpinner.d.ts +14 -0
  83. package/lib/components/display/CenteredSpinner.js +20 -0
  84. package/lib/components/display/CodePreview.d.ts +4 -0
  85. package/lib/components/display/CodePreview.js +15 -0
  86. package/lib/components/display/DatalayerBox.d.ts +8 -0
  87. package/lib/components/display/DatalayerBox.js +28 -0
  88. package/lib/components/display/HorizontalCenter.d.ts +9 -0
  89. package/lib/components/display/HorizontalCenter.js +14 -0
  90. package/lib/components/display/JupyterDialog.d.ts +69 -0
  91. package/lib/components/display/JupyterDialog.js +115 -0
  92. package/lib/components/display/Markdown.d.ts +23 -0
  93. package/lib/components/display/Markdown.js +20 -0
  94. package/lib/components/display/NavLink.d.ts +9 -0
  95. package/lib/components/display/NavLink.js +17 -0
  96. package/lib/components/display/NotebookSkeleton.d.ts +2 -0
  97. package/lib/components/display/NotebookSkeleton.js +11 -0
  98. package/lib/components/display/Placeholder.d.ts +2 -0
  99. package/lib/components/display/Placeholder.js +9 -0
  100. package/lib/components/display/ToTopBranded.d.ts +2 -0
  101. package/lib/components/display/ToTopBranded.js +11 -0
  102. package/lib/components/display/VisuallyHidden.d.ts +5 -0
  103. package/lib/components/display/VisuallyHidden.js +24 -0
  104. package/lib/components/display/index.d.ts +12 -0
  105. package/lib/components/display/index.js +16 -0
  106. package/lib/components/echarts/EChartsReact.d.ts +11 -0
  107. package/lib/components/echarts/EChartsReact.js +53 -0
  108. package/lib/components/echarts/index.d.ts +1 -0
  109. package/lib/components/echarts/index.js +5 -0
  110. package/lib/components/flashes/FlashClosable.d.ts +22 -0
  111. package/lib/components/flashes/FlashClosable.js +64 -0
  112. package/lib/components/flashes/FlashDisclaimer.d.ts +2 -0
  113. package/lib/components/flashes/FlashDisclaimer.js +18 -0
  114. package/lib/components/flashes/FlashGuest.d.ts +2 -0
  115. package/lib/components/flashes/FlashGuest.js +30 -0
  116. package/lib/components/flashes/FlashSurveys.d.ts +6 -0
  117. package/lib/components/flashes/FlashSurveys.js +36 -0
  118. package/lib/components/flashes/FlashUnauthorized.d.ts +2 -0
  119. package/lib/components/flashes/FlashUnauthorized.js +18 -0
  120. package/lib/components/flashes/index.d.ts +6 -0
  121. package/lib/components/flashes/index.js +10 -0
  122. package/lib/components/flashes/surveys/Survey2025_1.d.ts +3 -0
  123. package/lib/components/flashes/surveys/Survey2025_1.js +129 -0
  124. package/lib/components/flashes/surveys/SurveyProps.d.ts +6 -0
  125. package/lib/components/flashes/surveys/SurveyProps.js +5 -0
  126. package/lib/components/flashes/surveys/index.d.ts +2 -0
  127. package/lib/components/flashes/surveys/index.js +6 -0
  128. package/lib/components/iam/ExternalTokenSilentLogin.d.ts +5 -0
  129. package/lib/components/iam/ExternalTokenSilentLogin.js +33 -0
  130. package/lib/components/iam/index.d.ts +1 -0
  131. package/lib/components/iam/index.js +5 -0
  132. package/lib/components/icons/ArtifactIcon.d.ts +10 -0
  133. package/lib/components/icons/ArtifactIcon.js +58 -0
  134. package/lib/components/icons/index.d.ts +1 -0
  135. package/lib/components/icons/index.js +5 -0
  136. package/lib/components/index.d.ts +1 -0
  137. package/lib/components/index.js +5 -0
  138. package/lib/components/labels/VisibilityLabel.d.ts +4 -0
  139. package/lib/components/labels/VisibilityLabel.js +17 -0
  140. package/lib/components/labels/index.d.ts +1 -0
  141. package/lib/components/labels/index.js +5 -0
  142. package/lib/components/landings/StepBlock.d.ts +11 -0
  143. package/lib/components/landings/StepBlock.js +12 -0
  144. package/lib/components/landings/index.d.ts +1 -0
  145. package/lib/components/landings/index.js +5 -0
  146. package/lib/components/navbar/NavigationVisbilityObserver.d.ts +5 -0
  147. package/lib/components/navbar/NavigationVisbilityObserver.js +58 -0
  148. package/lib/components/navbar/SubdomainNavBar.d.ts +81 -0
  149. package/lib/components/navbar/SubdomainNavBar.js +235 -0
  150. package/lib/components/navbar/SubdomainNavBar.module.css +718 -0
  151. package/lib/components/navbar/index.d.ts +2 -0
  152. package/lib/components/navbar/index.js +6 -0
  153. package/lib/components/nbgrader/NbGradesDetails.d.ts +5 -0
  154. package/lib/components/nbgrader/NbGradesDetails.js +17 -0
  155. package/lib/components/nbgrader/index.d.ts +1 -0
  156. package/lib/components/nbgrader/index.js +5 -0
  157. package/lib/components/notebooks/JupyterNotebook.d.ts +12 -0
  158. package/lib/components/notebooks/JupyterNotebook.js +36 -0
  159. package/lib/components/notebooks/JupyterNotebookToolbar.d.ts +2 -0
  160. package/lib/components/notebooks/JupyterNotebookToolbar.js +39 -0
  161. package/lib/components/notebooks/index.d.ts +2 -0
  162. package/lib/components/notebooks/index.js +6 -0
  163. package/lib/components/primer/Helper.d.ts +32 -0
  164. package/lib/components/primer/Helper.js +19 -0
  165. package/lib/components/primer/Portals.d.ts +9 -0
  166. package/lib/components/primer/Portals.js +26 -0
  167. package/lib/components/primer/Styles.d.ts +2 -0
  168. package/lib/components/primer/Styles.js +11 -0
  169. package/lib/components/primer/index.d.ts +2 -0
  170. package/lib/components/primer/index.js +6 -0
  171. package/lib/components/progress/ConsumptionBar.d.ts +40 -0
  172. package/lib/components/progress/ConsumptionBar.js +49 -0
  173. package/lib/components/progress/CreditsIndicator.d.ts +27 -0
  174. package/lib/components/progress/CreditsIndicator.js +24 -0
  175. package/lib/components/progress/ProgressBar.d.ts +2 -0
  176. package/lib/components/progress/ProgressBar.js +21 -0
  177. package/lib/components/progress/ProgressRing.d.ts +36 -0
  178. package/lib/components/progress/ProgressRing.js +31 -0
  179. package/lib/components/progress/Timer.d.ts +9 -0
  180. package/lib/components/progress/Timer.js +28 -0
  181. package/lib/components/progress/index.d.ts +5 -0
  182. package/lib/components/progress/index.js +9 -0
  183. package/lib/components/runtimes/RuntimeCellVariables.d.ts +39 -0
  184. package/lib/components/runtimes/RuntimeCellVariables.js +172 -0
  185. package/lib/components/runtimes/RuntimeCellVariablesDialog.d.ts +37 -0
  186. package/lib/components/runtimes/RuntimeCellVariablesDialog.js +101 -0
  187. package/lib/components/runtimes/RuntimeLauncherDialog.d.ts +53 -0
  188. package/lib/components/runtimes/RuntimeLauncherDialog.js +250 -0
  189. package/lib/components/runtimes/RuntimePickerBase.d.ts +69 -0
  190. package/lib/components/runtimes/RuntimePickerBase.js +109 -0
  191. package/lib/components/runtimes/RuntimePickerCell.d.ts +34 -0
  192. package/lib/components/runtimes/RuntimePickerCell.js +106 -0
  193. package/lib/components/runtimes/RuntimePickerNotebook.d.ts +42 -0
  194. package/lib/components/runtimes/RuntimePickerNotebook.js +168 -0
  195. package/lib/components/runtimes/RuntimeReservationControl.d.ts +47 -0
  196. package/lib/components/runtimes/RuntimeReservationControl.js +38 -0
  197. package/lib/components/runtimes/RuntimeSimplePicker.d.ts +34 -0
  198. package/lib/components/runtimes/RuntimeSimplePicker.js +156 -0
  199. package/lib/components/runtimes/RuntimeTransfer.d.ts +16 -0
  200. package/lib/components/runtimes/RuntimeTransfer.js +5 -0
  201. package/lib/components/runtimes/RuntimeUtils.d.ts +17 -0
  202. package/lib/components/runtimes/RuntimeUtils.js +168 -0
  203. package/lib/components/runtimes/RuntimeVariables.d.ts +38 -0
  204. package/lib/components/runtimes/RuntimeVariables.js +75 -0
  205. package/lib/components/runtimes/index.d.ts +11 -0
  206. package/lib/components/runtimes/index.js +15 -0
  207. package/lib/components/screenshot/ScreenCapture.d.ts +38 -0
  208. package/lib/components/screenshot/ScreenCapture.js +174 -0
  209. package/lib/components/screenshot/ScreenCaptureButton.d.ts +3 -0
  210. package/lib/components/screenshot/ScreenCaptureButton.js +21 -0
  211. package/lib/components/screenshot/index.d.ts +2 -0
  212. package/lib/components/screenshot/index.js +6 -0
  213. package/lib/components/snapshots/RuntimeSnapshotMenu.d.ts +36 -0
  214. package/lib/components/snapshots/RuntimeSnapshotMenu.js +164 -0
  215. package/lib/components/snapshots/index.d.ts +1 -0
  216. package/lib/components/snapshots/index.js +5 -0
  217. package/lib/components/snippets/SnippetDialog.d.ts +42 -0
  218. package/lib/components/snippets/SnippetDialog.js +42 -0
  219. package/lib/components/snippets/index.d.ts +1 -0
  220. package/lib/components/snippets/index.js +5 -0
  221. package/lib/components/storage/ContentsBrowser.d.ts +32 -0
  222. package/lib/components/storage/ContentsBrowser.js +255 -0
  223. package/lib/components/storage/ContentsItems.d.ts +58 -0
  224. package/lib/components/storage/ContentsItems.js +78 -0
  225. package/lib/components/storage/index.d.ts +2 -0
  226. package/lib/components/storage/index.js +6 -0
  227. package/lib/components/students/StudentItemStatus.d.ts +7 -0
  228. package/lib/components/students/StudentItemStatus.js +47 -0
  229. package/lib/components/students/index.d.ts +1 -0
  230. package/lib/components/students/index.js +5 -0
  231. package/lib/components/subnav/SubNav.d.ts +84 -0
  232. package/lib/components/subnav/SubNav.js +265 -0
  233. package/lib/components/subnav/SubNav.module.css +683 -0
  234. package/lib/components/subnav/index.d.ts +1 -0
  235. package/lib/components/subnav/index.js +5 -0
  236. package/lib/components/tables/DataTable.d.ts +5 -0
  237. package/lib/components/tables/DataTable.js +19 -0
  238. package/lib/components/tables/index.d.ts +1 -0
  239. package/lib/components/tables/index.js +5 -0
  240. package/lib/components/text-reveal/TextRevealAnimation.d.ts +6 -0
  241. package/lib/components/text-reveal/TextRevealAnimation.js +49 -0
  242. package/lib/components/text-reveal/TextRevealAnimation.module.css +43 -0
  243. package/lib/components/text-reveal/index.d.ts +1 -0
  244. package/lib/components/text-reveal/index.js +5 -0
  245. package/lib/components/text-reveal/useTextRevealAnimationLines.d.ts +4 -0
  246. package/lib/components/text-reveal/useTextRevealAnimationLines.js +47 -0
  247. package/lib/components/tokens/SpaceVariantToken.d.ts +5 -0
  248. package/lib/components/tokens/SpaceVariantToken.js +20 -0
  249. package/lib/components/tokens/index.d.ts +1 -0
  250. package/lib/components/tokens/index.js +5 -0
  251. package/lib/components/toolbars/AssignmentEditorToolbar.d.ts +4 -0
  252. package/lib/components/toolbars/AssignmentEditorToolbar.js +18 -0
  253. package/lib/components/toolbars/DocumentEditorToolbar.d.ts +2 -0
  254. package/lib/components/toolbars/DocumentEditorToolbar.js +12 -0
  255. package/lib/components/toolbars/NotebookEditorToolbar.d.ts +29 -0
  256. package/lib/components/toolbars/NotebookEditorToolbar.js +30 -0
  257. package/lib/components/toolbars/index.d.ts +3 -0
  258. package/lib/components/toolbars/index.js +7 -0
  259. package/lib/components/users/PeerIndicator.d.ts +18 -0
  260. package/lib/components/users/PeerIndicator.js +100 -0
  261. package/lib/components/users/index.d.ts +1 -0
  262. package/lib/components/users/index.js +5 -0
  263. package/lib/config/Configuration.d.ts +111 -0
  264. package/lib/config/Configuration.js +25 -0
  265. package/lib/config/index.d.ts +2 -0
  266. package/lib/config/index.js +6 -0
  267. package/lib/config/integrations/Loom.d.ts +1 -0
  268. package/lib/config/integrations/Loom.js +16 -0
  269. package/lib/config/integrations/index.d.ts +1 -0
  270. package/lib/config/integrations/index.js +5 -0
  271. package/lib/examples/CellExample.d.ts +6 -0
  272. package/lib/examples/CellExample.js +24 -0
  273. package/lib/examples/NotebookExample.d.ts +8 -0
  274. package/lib/examples/NotebookExample.js +22 -0
  275. package/lib/examples/NotebookExample1.ipynb.json +136 -0
  276. package/lib/hooks/assets/OutputshotPlaceholders.d.ts +19 -0
  277. package/lib/hooks/assets/OutputshotPlaceholders.js +23 -0
  278. package/lib/hooks/assets/index.d.ts +1 -0
  279. package/lib/hooks/assets/index.js +5 -0
  280. package/lib/hooks/index.d.ts +28 -0
  281. package/lib/hooks/index.js +33 -0
  282. package/lib/hooks/layouts/LayoutBackdrop.d.ts +2 -0
  283. package/lib/hooks/layouts/LayoutBackdrop.js +30 -0
  284. package/lib/hooks/layouts/LayoutScreenshot.css +58 -0
  285. package/lib/hooks/layouts/LayoutScreenshot.d.ts +3 -0
  286. package/lib/hooks/layouts/LayoutScreenshot.js +44 -0
  287. package/lib/hooks/layouts/index.d.ts +2 -0
  288. package/lib/hooks/layouts/index.js +6 -0
  289. package/lib/hooks/useAIAgents.d.ts +13 -0
  290. package/lib/hooks/useAIAgents.js +72 -0
  291. package/lib/hooks/useAuthorization.d.ts +19 -0
  292. package/lib/hooks/useAuthorization.js +124 -0
  293. package/lib/hooks/useBackdrop.d.ts +28 -0
  294. package/lib/hooks/useBackdrop.js +100 -0
  295. package/lib/hooks/useBackdropJupyterLab.d.ts +15 -0
  296. package/lib/hooks/useBackdropJupyterLab.js +51 -0
  297. package/lib/hooks/useCache.d.ts +306 -0
  298. package/lib/hooks/useCache.js +3098 -0
  299. package/lib/hooks/useCellOutputshot.d.ts +4 -0
  300. package/lib/hooks/useCellOutputshot.js +28 -0
  301. package/lib/hooks/useContainsFocus.d.ts +9 -0
  302. package/lib/hooks/useContainsFocus.js +43 -0
  303. package/lib/hooks/useDatalayer.d.ts +21 -0
  304. package/lib/hooks/useDatalayer.js +81 -0
  305. package/lib/hooks/useError.d.ts +9 -0
  306. package/lib/hooks/useError.js +26 -0
  307. package/lib/hooks/useExternalScript.d.ts +2 -0
  308. package/lib/hooks/useExternalScript.js +17 -0
  309. package/lib/hooks/useFocusTrap.d.ts +30 -0
  310. package/lib/hooks/useFocusTrap.js +48 -0
  311. package/lib/hooks/useIAM.d.ts +14 -0
  312. package/lib/hooks/useIAM.js +93 -0
  313. package/lib/hooks/useId.d.ts +19 -0
  314. package/lib/hooks/useId.js +100 -0
  315. package/lib/hooks/useIsomorphicLayoutEffect.d.ts +3 -0
  316. package/lib/hooks/useIsomorphicLayoutEffect.js +11 -0
  317. package/lib/hooks/useJupyterLabTheme.d.ts +6 -0
  318. package/lib/hooks/useJupyterLabTheme.js +24 -0
  319. package/lib/hooks/useKeyboardEscape.d.ts +1 -0
  320. package/lib/hooks/useKeyboardEscape.js +18 -0
  321. package/lib/hooks/useLocationHandles.d.ts +10 -0
  322. package/lib/hooks/useLocationHandles.js +22 -0
  323. package/lib/hooks/useNavigate.d.ts +2 -0
  324. package/lib/hooks/useNavigate.js +24 -0
  325. package/lib/hooks/useNotebookAIAgent.d.ts +8 -0
  326. package/lib/hooks/useNotebookAIAgent.js +54 -0
  327. package/lib/hooks/useOnClickOutside.d.ts +1 -0
  328. package/lib/hooks/useOnClickOutside.js +29 -0
  329. package/lib/hooks/useRef.d.ts +10 -0
  330. package/lib/hooks/useRef.js +17 -0
  331. package/lib/hooks/useRuntimes.d.ts +5 -0
  332. package/lib/hooks/useRuntimes.js +34 -0
  333. package/lib/hooks/useScreenshot.d.ts +21 -0
  334. package/lib/hooks/useScreenshot.js +60 -0
  335. package/lib/hooks/useToast.d.ts +42 -0
  336. package/lib/hooks/useToast.js +141 -0
  337. package/lib/hooks/useUpload.d.ts +7 -0
  338. package/lib/hooks/useUpload.js +46 -0
  339. package/lib/hooks/useUser.d.ts +3 -0
  340. package/lib/hooks/useUser.js +22 -0
  341. package/lib/hooks/useVisibilityObserver.d.ts +5 -0
  342. package/lib/hooks/useVisibilityObserver.js +42 -0
  343. package/lib/hooks/useWindowSize.d.ts +21 -0
  344. package/lib/hooks/useWindowSize.js +74 -0
  345. package/lib/i18n/Labels.d.ts +1 -0
  346. package/lib/i18n/Labels.js +5 -0
  347. package/lib/i18n/index.d.ts +1 -0
  348. package/lib/i18n/index.js +5 -0
  349. package/lib/index.css +73 -0
  350. package/lib/index.d.ts +3 -0
  351. package/lib/index.js +6 -0
  352. package/lib/main.d.ts +1 -0
  353. package/lib/main.js +5 -2
  354. package/lib/mocks/components/FlashMock.d.ts +2 -0
  355. package/lib/mocks/components/FlashMock.js +13 -0
  356. package/lib/mocks/components/index.d.ts +1 -0
  357. package/lib/mocks/components/index.js +5 -0
  358. package/lib/mocks/hooks/index.d.ts +1 -0
  359. package/lib/mocks/hooks/index.js +5 -0
  360. package/lib/mocks/hooks/rests/index.d.ts +1 -0
  361. package/lib/mocks/hooks/rests/index.js +5 -0
  362. package/lib/mocks/hooks/rests/rests.d.ts +22 -0
  363. package/lib/mocks/hooks/rests/rests.js +32 -0
  364. package/lib/mocks/hooks/useDatalayerMock.d.ts +6 -0
  365. package/lib/mocks/hooks/useDatalayerMock.js +78 -0
  366. package/lib/mocks/index.d.ts +4 -0
  367. package/lib/mocks/index.js +9 -0
  368. package/lib/mocks/jupyter/index.d.ts +1 -0
  369. package/lib/mocks/jupyter/index.js +5 -0
  370. package/lib/mocks/models/CodeBlockMock.d.ts +1 -0
  371. package/lib/mocks/models/CodeBlockMock.js +5 -0
  372. package/lib/mocks/models/CodelineMock.d.ts +1 -0
  373. package/lib/mocks/models/CodelineMock.js +5 -0
  374. package/lib/mocks/models/CourseMock.d.ts +6 -0
  375. package/lib/mocks/models/CourseMock.js +29 -0
  376. package/lib/mocks/models/InviteMock.d.ts +6 -0
  377. package/lib/mocks/models/InviteMock.js +22 -0
  378. package/lib/mocks/models/JupyterLabUserMock.d.ts +2 -0
  379. package/lib/mocks/models/JupyterLabUserMock.js +17 -0
  380. package/lib/mocks/models/OrganisationMock.d.ts +5 -0
  381. package/lib/mocks/models/OrganisationMock.js +24 -0
  382. package/lib/mocks/models/SchoolMock.d.ts +6 -0
  383. package/lib/mocks/models/SchoolMock.js +25 -0
  384. package/lib/mocks/models/SpaceMock.d.ts +6 -0
  385. package/lib/mocks/models/SpaceMock.js +25 -0
  386. package/lib/mocks/models/TeamMock.d.ts +5 -0
  387. package/lib/mocks/models/TeamMock.js +26 -0
  388. package/lib/mocks/models/UserMock.d.ts +2 -0
  389. package/lib/mocks/models/UserMock.js +29 -0
  390. package/lib/mocks/models/index.d.ts +9 -0
  391. package/lib/mocks/models/index.js +13 -0
  392. package/lib/mocks/views/ActionMenuMock.d.ts +5 -0
  393. package/lib/mocks/views/ActionMenuMock.js +12 -0
  394. package/lib/mocks/views/ChartMock.d.ts +5 -0
  395. package/lib/mocks/views/ChartMock.js +15 -0
  396. package/lib/mocks/views/ChartMockOptions.d.ts +92 -0
  397. package/lib/mocks/views/ChartMockOptions.js +102 -0
  398. package/lib/mocks/views/DashboardMock.d.ts +2 -0
  399. package/lib/mocks/views/DashboardMock.js +118 -0
  400. package/lib/mocks/views/FormMock.d.ts +5 -0
  401. package/lib/mocks/views/FormMock.js +28 -0
  402. package/lib/mocks/views/TableMock.d.ts +5 -0
  403. package/lib/mocks/views/TableMock.js +155 -0
  404. package/lib/mocks/views/WipMock.d.ts +5 -0
  405. package/lib/mocks/views/WipMock.js +12 -0
  406. package/lib/mocks/views/index.d.ts +7 -0
  407. package/lib/mocks/views/index.js +11 -0
  408. package/lib/models/AIAgent.d.ts +17 -0
  409. package/lib/models/AIAgent.js +5 -0
  410. package/lib/models/Account.d.ts +4 -0
  411. package/lib/models/Account.js +5 -0
  412. package/lib/models/Assignment.d.ts +7 -0
  413. package/lib/models/Assignment.js +5 -0
  414. package/lib/models/Base.d.ts +16 -0
  415. package/lib/models/Base.js +5 -0
  416. package/lib/models/Cell.d.ts +8 -0
  417. package/lib/models/Cell.js +5 -0
  418. package/lib/models/CodeBlock.d.ts +10 -0
  419. package/lib/models/CodeBlock.js +5 -0
  420. package/lib/models/CodefeedBlocks.d.ts +7 -0
  421. package/lib/models/CodefeedBlocks.js +5 -0
  422. package/lib/models/Contact.d.ts +73 -0
  423. package/lib/models/Contact.js +90 -0
  424. package/lib/models/ContactEvent.d.ts +10 -0
  425. package/lib/models/ContactEvent.js +14 -0
  426. package/lib/models/ContactIAMProvider.d.ts +12 -0
  427. package/lib/models/ContactIAMProvider.js +20 -0
  428. package/lib/models/ContactTags.d.ts +23 -0
  429. package/lib/models/ContactTags.js +73 -0
  430. package/lib/models/Content.d.ts +5 -0
  431. package/lib/models/Content.js +5 -0
  432. package/lib/models/Course.d.ts +17 -0
  433. package/lib/models/Course.js +5 -0
  434. package/lib/models/Credits.d.ts +76 -0
  435. package/lib/models/Credits.js +11 -0
  436. package/lib/models/Dataset.d.ts +16 -0
  437. package/lib/models/Dataset.js +5 -0
  438. package/lib/models/Datasource.d.ts +11 -0
  439. package/lib/models/Datasource.js +14 -0
  440. package/lib/models/Dean.d.ts +3 -0
  441. package/lib/models/Dean.js +5 -0
  442. package/lib/models/Document.d.ts +8 -0
  443. package/lib/models/Document.js +5 -0
  444. package/lib/models/Environment.d.ts +82 -0
  445. package/lib/models/Environment.js +5 -0
  446. package/lib/models/Errors.d.ts +6 -0
  447. package/lib/models/Errors.js +13 -0
  448. package/lib/models/Exercise.d.ts +16 -0
  449. package/lib/models/Exercise.js +5 -0
  450. package/lib/models/GrowthKPI.d.ts +5 -0
  451. package/lib/models/GrowthKPI.js +9 -0
  452. package/lib/models/IAMProviderLinked.d.ts +9 -0
  453. package/lib/models/IAMProviderLinked.js +13 -0
  454. package/lib/models/IAMProviderPost.d.ts +8 -0
  455. package/lib/models/IAMProviderPost.js +22 -0
  456. package/lib/models/IAMProviderUsers.d.ts +49 -0
  457. package/lib/models/IAMProviderUsers.js +29 -0
  458. package/lib/models/IAMProvidersSpecs.d.ts +22 -0
  459. package/lib/models/IAMProvidersSpecs.js +72 -0
  460. package/lib/models/IAMToken.d.ts +11 -0
  461. package/lib/models/IAMToken.js +14 -0
  462. package/lib/models/Inbound.d.ts +25 -0
  463. package/lib/models/Inbound.js +29 -0
  464. package/lib/models/Instructor.d.ts +3 -0
  465. package/lib/models/Instructor.js +5 -0
  466. package/lib/models/Invite.d.ts +14 -0
  467. package/lib/models/Invite.js +24 -0
  468. package/lib/models/Item.d.ts +20 -0
  469. package/lib/models/Item.js +5 -0
  470. package/lib/models/ItemType.d.ts +2 -0
  471. package/lib/models/ItemType.js +5 -0
  472. package/lib/models/LandingRoles.d.ts +3 -0
  473. package/lib/models/LandingRoles.js +27 -0
  474. package/lib/models/Lesson.d.ts +5 -0
  475. package/lib/models/Lesson.js +5 -0
  476. package/lib/models/Library.d.ts +10 -0
  477. package/lib/models/Library.js +5 -0
  478. package/lib/models/Member.d.ts +3 -0
  479. package/lib/models/Member.js +5 -0
  480. package/lib/models/Notebook.d.ts +11 -0
  481. package/lib/models/Notebook.js +5 -0
  482. package/lib/models/Organization.d.ts +27 -0
  483. package/lib/models/Organization.js +36 -0
  484. package/lib/models/OrganizationMember.d.ts +6 -0
  485. package/lib/models/OrganizationMember.js +5 -0
  486. package/lib/models/Outbound.d.ts +41 -0
  487. package/lib/models/Outbound.js +45 -0
  488. package/lib/models/Page.d.ts +36 -0
  489. package/lib/models/Page.js +23 -0
  490. package/lib/models/PageTag.d.ts +19 -0
  491. package/lib/models/PageTag.js +26 -0
  492. package/lib/models/Profile.d.ts +1 -0
  493. package/lib/models/Profile.js +5 -0
  494. package/lib/models/Role.d.ts +9 -0
  495. package/lib/models/Role.js +5 -0
  496. package/lib/models/RolesOrganization.d.ts +9 -0
  497. package/lib/models/RolesOrganization.js +58 -0
  498. package/lib/models/RolesPlatform.d.ts +16 -0
  499. package/lib/models/RolesPlatform.js +142 -0
  500. package/lib/models/RolesTeam.d.ts +7 -0
  501. package/lib/models/RolesTeam.js +34 -0
  502. package/lib/models/Runtime.d.ts +123 -0
  503. package/lib/models/Runtime.js +18 -0
  504. package/lib/models/RuntimeSnapshot.d.ts +92 -0
  505. package/lib/models/RuntimeSnapshot.js +13 -0
  506. package/lib/models/School.d.ts +11 -0
  507. package/lib/models/School.js +5 -0
  508. package/lib/models/Secret.d.ts +10 -0
  509. package/lib/models/Secret.js +13 -0
  510. package/lib/models/Space.d.ts +34 -0
  511. package/lib/models/Space.js +39 -0
  512. package/lib/models/SpaceItem.d.ts +10 -0
  513. package/lib/models/SpaceItem.js +5 -0
  514. package/lib/models/SpaceMember.d.ts +6 -0
  515. package/lib/models/SpaceMember.js +5 -0
  516. package/lib/models/Student.d.ts +6 -0
  517. package/lib/models/Student.js +5 -0
  518. package/lib/models/StudentItem.d.ts +21 -0
  519. package/lib/models/StudentItem.js +5 -0
  520. package/lib/models/Survey.d.ts +20 -0
  521. package/lib/models/Survey.js +14 -0
  522. package/lib/models/Team.d.ts +22 -0
  523. package/lib/models/Team.js +32 -0
  524. package/lib/models/TeamMember.d.ts +6 -0
  525. package/lib/models/TeamMember.js +5 -0
  526. package/lib/models/URN.d.ts +63 -0
  527. package/lib/models/URN.js +40 -0
  528. package/lib/models/Usage.d.ts +46 -0
  529. package/lib/models/Usage.js +21 -0
  530. package/lib/models/User.d.ts +71 -0
  531. package/lib/models/User.js +98 -0
  532. package/lib/models/UserEvent.d.ts +10 -0
  533. package/lib/models/UserEvent.js +14 -0
  534. package/lib/models/UserOnboarding.d.ts +14 -0
  535. package/lib/models/UserOnboarding.js +19 -0
  536. package/lib/models/UserSettings.d.ts +16 -0
  537. package/lib/models/UserSettings.js +27 -0
  538. package/lib/models/WaitingListFormData.d.ts +6 -0
  539. package/lib/models/WaitingListFormData.js +5 -0
  540. package/lib/models/index.d.ts +65 -0
  541. package/lib/models/index.js +69 -0
  542. package/lib/routes/Routes.d.ts +3 -0
  543. package/lib/routes/Routes.js +7 -0
  544. package/lib/routes/index.d.ts +1 -0
  545. package/lib/routes/index.js +5 -0
  546. package/lib/state/State.d.ts +33 -0
  547. package/lib/state/State.js +44 -0
  548. package/lib/state/index.d.ts +3 -0
  549. package/lib/state/index.js +7 -0
  550. package/lib/state/storage/IAMStorage.d.ts +33 -0
  551. package/lib/state/storage/IAMStorage.js +76 -0
  552. package/lib/state/storage/index.d.ts +1 -0
  553. package/lib/state/storage/index.js +5 -0
  554. package/lib/state/substates/AIAgentState.d.ts +11 -0
  555. package/lib/state/substates/AIAgentState.js +40 -0
  556. package/lib/state/substates/CellState.d.ts +12 -0
  557. package/lib/state/substates/CellState.js +21 -0
  558. package/lib/state/substates/CoreState.d.ts +25 -0
  559. package/lib/state/substates/CoreState.js +88 -0
  560. package/lib/state/substates/DatasourceState.d.ts +11 -0
  561. package/lib/state/substates/DatasourceState.js +16 -0
  562. package/lib/state/substates/DocumentState.d.ts +10 -0
  563. package/lib/state/substates/DocumentState.js +14 -0
  564. package/lib/state/substates/GradeState.d.ts +10 -0
  565. package/lib/state/substates/GradeState.js +14 -0
  566. package/lib/state/substates/IAMState.d.ts +75 -0
  567. package/lib/state/substates/IAMState.js +291 -0
  568. package/lib/state/substates/JupyterLabState.d.ts +16 -0
  569. package/lib/state/substates/JupyterLabState.js +17 -0
  570. package/lib/state/substates/LayoutState.d.ts +62 -0
  571. package/lib/state/substates/LayoutState.js +74 -0
  572. package/lib/state/substates/NbformatState.d.ts +13 -0
  573. package/lib/state/substates/NbformatState.js +16 -0
  574. package/lib/state/substates/OrganizationState.d.ts +11 -0
  575. package/lib/state/substates/OrganizationState.js +16 -0
  576. package/lib/state/substates/RuntimesState.d.ts +88 -0
  577. package/lib/state/substates/RuntimesState.js +178 -0
  578. package/lib/state/substates/SpaceState.d.ts +11 -0
  579. package/lib/state/substates/SpaceState.js +16 -0
  580. package/lib/state/substates/SurveysState.d.ts +14 -0
  581. package/lib/state/substates/SurveysState.js +98 -0
  582. package/lib/state/substates/TeamState.d.ts +11 -0
  583. package/lib/state/substates/TeamState.js +17 -0
  584. package/lib/state/substates/index.d.ts +15 -0
  585. package/lib/state/substates/index.js +19 -0
  586. package/lib/stories/assets/accessibility.png +0 -0
  587. package/lib/stories/assets/accessibility.svg +1 -0
  588. package/lib/stories/assets/addon-library.png +0 -0
  589. package/lib/stories/assets/assets.png +0 -0
  590. package/lib/stories/assets/context.png +0 -0
  591. package/lib/stories/assets/discord.svg +1 -0
  592. package/lib/stories/assets/docs.png +0 -0
  593. package/lib/stories/assets/figma-plugin.png +0 -0
  594. package/lib/stories/assets/github.svg +1 -0
  595. package/lib/stories/assets/share.png +0 -0
  596. package/lib/stories/assets/styling.png +0 -0
  597. package/lib/stories/assets/testing.png +0 -0
  598. package/lib/stories/assets/theming.png +0 -0
  599. package/lib/stories/assets/tutorials.svg +1 -0
  600. package/lib/stories/assets/youtube.svg +1 -0
  601. package/lib/stories/button.css +35 -0
  602. package/lib/stories/header.css +37 -0
  603. package/lib/stories/page.css +73 -0
  604. package/lib/test-setup.d.ts +1 -0
  605. package/lib/test-setup.js +57 -0
  606. package/lib/theme/DatalayerTheme.d.ts +37 -0
  607. package/lib/theme/DatalayerTheme.js +62 -0
  608. package/lib/theme/DatalayerThemeProvider.d.ts +17 -0
  609. package/lib/theme/DatalayerThemeProvider.js +69 -0
  610. package/lib/theme/Palette.d.ts +5 -0
  611. package/lib/theme/Palette.js +22 -0
  612. package/lib/theme/index.d.ts +3 -0
  613. package/lib/theme/index.js +7 -0
  614. package/lib/utils/Array.d.ts +2 -0
  615. package/lib/utils/Array.js +16 -0
  616. package/lib/utils/Avatar.d.ts +9 -0
  617. package/lib/utils/Avatar.js +34 -0
  618. package/lib/utils/Browser.d.ts +3 -0
  619. package/lib/utils/Browser.js +63 -0
  620. package/lib/utils/Cells.d.ts +2 -0
  621. package/lib/utils/Cells.js +28 -0
  622. package/lib/utils/Cookie.d.ts +12 -0
  623. package/lib/utils/Cookie.js +48 -0
  624. package/lib/utils/Date.d.ts +2 -0
  625. package/lib/utils/Date.js +60 -0
  626. package/lib/utils/Download.d.ts +3 -0
  627. package/lib/utils/Download.js +48 -0
  628. package/lib/utils/DownloadFile.d.ts +10 -0
  629. package/lib/utils/DownloadFile.js +36 -0
  630. package/lib/utils/Env.d.ts +1 -0
  631. package/lib/utils/Env.js +7 -0
  632. package/lib/utils/File.d.ts +7 -0
  633. package/lib/utils/File.js +16 -0
  634. package/lib/utils/Format.d.ts +17 -0
  635. package/lib/utils/Format.js +54 -0
  636. package/lib/utils/Ids.d.ts +2 -0
  637. package/lib/utils/Ids.js +12 -0
  638. package/lib/utils/Jupyter.d.ts +1 -0
  639. package/lib/utils/Jupyter.js +12 -0
  640. package/lib/utils/Lazy.d.ts +8 -0
  641. package/lib/utils/Lazy.js +23 -0
  642. package/lib/utils/Msc.d.ts +16 -0
  643. package/lib/utils/Msc.js +28 -0
  644. package/lib/utils/Name.d.ts +7 -0
  645. package/lib/utils/Name.js +34 -0
  646. package/lib/utils/Notebook.d.ts +19 -0
  647. package/lib/utils/Notebook.js +37 -0
  648. package/lib/utils/Number.d.ts +1 -0
  649. package/lib/utils/Number.js +21 -0
  650. package/lib/utils/Plots.d.ts +16 -0
  651. package/lib/utils/Plots.js +56 -0
  652. package/lib/utils/Random.d.ts +1 -0
  653. package/lib/utils/Random.js +7 -0
  654. package/lib/utils/Screenshot.d.ts +1 -0
  655. package/lib/utils/Screenshot.js +27 -0
  656. package/lib/utils/Scroll.d.ts +2 -0
  657. package/lib/utils/Scroll.js +32 -0
  658. package/lib/utils/Sleep.d.ts +2 -0
  659. package/lib/utils/Sleep.js +8 -0
  660. package/lib/utils/Snapshot.d.ts +7 -0
  661. package/lib/utils/Snapshot.js +21 -0
  662. package/lib/utils/String.d.ts +1 -0
  663. package/lib/utils/String.js +13 -0
  664. package/lib/utils/Uri.d.ts +2 -0
  665. package/lib/utils/Uri.js +26 -0
  666. package/lib/utils/Validator.d.ts +12 -0
  667. package/lib/utils/Validator.js +44 -0
  668. package/lib/utils/WithSuspense.d.ts +2 -0
  669. package/lib/utils/WithSuspense.js +21 -0
  670. package/lib/utils/index.d.ts +26 -0
  671. package/lib/utils/index.js +31 -0
  672. package/package.json +86 -17
  673. package/style/animation/Animation.module.css +174 -0
  674. package/style/base.css +62 -3
  675. package/style/index.css +2 -3
  676. package/style/index.js +0 -7
@@ -0,0 +1,37 @@
1
+ declare const theme: {
2
+ animation: {
3
+ easeOutCubic: string;
4
+ };
5
+ borderWidths: (string | number)[];
6
+ breakpoints: string[];
7
+ fonts: {
8
+ normal: any;
9
+ mono: string;
10
+ };
11
+ fontSizes: string[];
12
+ fontWeights: {
13
+ light: number;
14
+ normal: number;
15
+ semibold: number;
16
+ bold: number;
17
+ };
18
+ lineHeights: {
19
+ condensedUltra: number;
20
+ condensed: number;
21
+ default: number;
22
+ };
23
+ radii: string[];
24
+ sizes: {
25
+ small: string;
26
+ medium: string;
27
+ large: string;
28
+ xlarge: string;
29
+ };
30
+ space: string[];
31
+ } & {
32
+ colorSchemes: {
33
+ light: {};
34
+ dark: {};
35
+ };
36
+ };
37
+ export { theme as datalayerTheme };
@@ -0,0 +1,62 @@
1
+ /*
2
+ * Copyright (c) 2023-2025 Datalayer, Inc.
3
+ * Distributed under the terms of the Modified BSD License.
4
+ */
5
+ import { theme as primerTheme } from '@primer/react';
6
+ import cloneDeep from 'lodash/cloneDeep.js';
7
+ import merge from 'lodash/merge.js';
8
+ /**
9
+ * Datalayer Theme for Primer React.
10
+ */
11
+ const datalayerThemeDefs = {
12
+ colorSchemes: {
13
+ light: {
14
+ colors: {
15
+ btn: {
16
+ // text: 'var(--jp-ui-font-color1, rgba(0, 0, 0, 0.87))',
17
+ // bg: 'var(--jp-layout-color1, white)',
18
+ // border: 'var(--jp-border-color1, #bdbdbd)',
19
+ // hoverBg: 'var(--jp-layout-color2, #eee)',
20
+ // hoverBorder: 'var(--jp-border-color1, #bdbdbd)',
21
+ // activeBg: 'var(--jp-layout-color3, #bdbdbd)',
22
+ // activeBorder: 'var(--jp-border-color1, #bdbdbd)',
23
+ // selectedBg: 'var(--jp-layout-color0, white)',
24
+ // counterBg: 'var(--jp-layout-color4, #757575)',
25
+ primary: {
26
+ // text: 'var(--jp-ui-inverse-font-color1, rgba(255, 255, 255, 1))',
27
+ bg: 'var(--dla-color-green-dark)',
28
+ // border: 'var(--dla-color-green-light)',
29
+ hoverBg: 'var(--dla-color-grey)',
30
+ // hoverBorder: 'var(--dla-color-green-light)',
31
+ selectedBg: 'var(--dla-color-black)',
32
+ // disabledText: 'var(--jp-ui-inverse-font-color2, rgba(255, 255, 255, 0.7))',
33
+ // disabledBg: 'var(--jp-brand-color3, #c8e6c9)',
34
+ // disabledBorder: 'var(--jp-border-color1, #bdbdbd)',
35
+ // icon: 'var(--jp-ui-inverse-font-color2, rgba(255, 255, 255, 0.7))',
36
+ // counterBg: 'var(--jp-inverse-layout-color3, #616161)',
37
+ },
38
+ },
39
+ },
40
+ shadows: {},
41
+ },
42
+ dark: {
43
+ colors: {},
44
+ shadows: {},
45
+ }
46
+ },
47
+ };
48
+ const { colorSchemes: primerSchemes, ...primerOthers } = cloneDeep(primerTheme);
49
+ const { colorSchemes: jupyterSchemes, ...datalayerOthers } = datalayerThemeDefs;
50
+ // Merge with the light theme to ensure all variables are defined (although the style may be ugly).
51
+ const theme = merge(primerOthers, datalayerOthers, {
52
+ colorSchemes: { light: {}, dark: {} },
53
+ });
54
+ theme.colorSchemes.light = {
55
+ colors: merge(primerSchemes.light.colors, jupyterSchemes.light.colors),
56
+ shadows: merge(primerSchemes.light.shadows, jupyterSchemes.light.shadows),
57
+ };
58
+ theme.colorSchemes.dark = {
59
+ colors: merge(primerSchemes.dark.colors, jupyterSchemes.dark.colors),
60
+ shadows: merge(primerSchemes.dark.shadows, jupyterSchemes.dark.shadows),
61
+ };
62
+ export { theme as datalayerTheme };
@@ -0,0 +1,17 @@
1
+ import { type CSSProperties } from 'react';
2
+ import { ThemeProviderProps } from '@primer/react';
3
+ export interface IDatalayerThemeProviderProps extends ThemeProviderProps {
4
+ /**
5
+ * Whether the components is embedded in Jupyter UI or not.
6
+ */
7
+ inJupyterLab?: boolean;
8
+ /**
9
+ * Base styles
10
+ */
11
+ baseStyles?: CSSProperties;
12
+ }
13
+ /**
14
+ * ThemeProvider component changing color mode with JupyterLab theme
15
+ * if embedded in Jupyter or with the browser color scheme preference.
16
+ */
17
+ export declare function DatalayerThemeProvider(props: React.PropsWithChildren<IDatalayerThemeProviderProps>): JSX.Element;
@@ -0,0 +1,69 @@
1
+ import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
2
+ /*
3
+ * Copyright (c) 2023-2025 Datalayer, Inc.
4
+ * Distributed under the terms of the Modified BSD License.
5
+ */
6
+ import { useEffect, useState } from 'react';
7
+ import { BaseStyles, ThemeProvider as PrimerThemeProvider } from '@primer/react';
8
+ import { loadJupyterConfig, jupyterLabTheme } from '@datalayer/jupyter-react';
9
+ import { datalayerTheme } from '../theme';
10
+ import { useRuntimesStore } from '../state';
11
+ /**
12
+ * ThemeProvider component changing color mode with JupyterLab theme
13
+ * if embedded in Jupyter or with the browser color scheme preference.
14
+ */
15
+ export function DatalayerThemeProvider(props) {
16
+ const { children, colorMode: colorModeProps,
17
+ // inJupyterLab,
18
+ baseStyles, ...rest } = props;
19
+ const { jupyterLabAdapter } = useRuntimesStore();
20
+ const [colorMode, setColorMode] = useState(colorModeProps ?? 'light');
21
+ const [inJupyterLab, setInJupterLab] = useState(undefined);
22
+ useEffect(() => {
23
+ setInJupterLab(loadJupyterConfig().insideJupyterLab);
24
+ }, []);
25
+ useEffect(() => {
26
+ if (inJupyterLab !== undefined) {
27
+ function colorSchemeFromMedia({ matches }) {
28
+ setColorMode(matches ? 'dark' : 'light');
29
+ }
30
+ function updateColorMode(themeManager) {
31
+ setColorMode(themeManager.theme && !themeManager.isLight(themeManager.theme) ? 'dark' : 'light');
32
+ }
33
+ if (inJupyterLab) {
34
+ // TODO remove the try/catch for JupyterLab > 4.1.
35
+ try {
36
+ const themeManager = jupyterLabAdapter?.service('@jupyterlab/apputils-extension:themes');
37
+ if (themeManager) {
38
+ updateColorMode(themeManager);
39
+ themeManager.themeChanged.connect(updateColorMode);
40
+ return () => {
41
+ themeManager.themeChanged.disconnect(updateColorMode);
42
+ };
43
+ }
44
+ }
45
+ catch (e) {
46
+ console.error('Error while setting the theme', e);
47
+ }
48
+ }
49
+ else {
50
+ colorSchemeFromMedia({
51
+ matches: window.matchMedia('(prefers-color-scheme: dark)').matches
52
+ });
53
+ window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', colorSchemeFromMedia);
54
+ return () => {
55
+ window.matchMedia('(prefers-color-scheme: dark)').removeEventListener('change', colorSchemeFromMedia);
56
+ };
57
+ }
58
+ }
59
+ }, [inJupyterLab, jupyterLabAdapter]);
60
+ return (inJupyterLab !== undefined ?
61
+ _jsx(PrimerThemeProvider, { colorMode: colorMode, theme: inJupyterLab ? jupyterLabTheme : datalayerTheme, ...rest, children: _jsx(BaseStyles, { style: {
62
+ backgroundColor: 'var(--bgColor-default)',
63
+ color: 'var(--fgColor-default)',
64
+ fontSize: 'var(--text-body-size-medium)',
65
+ ...baseStyles
66
+ }, children: children }) })
67
+ :
68
+ _jsx(_Fragment, {}));
69
+ }
@@ -0,0 +1,5 @@
1
+ export declare const jpCssToColor: (cssVariableName: string) => any;
2
+ export declare const RESERVATION_CIRCLE_COLOR = "#656D76";
3
+ export declare const CREDITS_CIRCLE_COLOR = "#16A085";
4
+ export declare const JOINED_INVITE_COLOR = "#0366d6";
5
+ export declare const PENDING_INVITE_COLOR = "#cfd3d7";
@@ -0,0 +1,22 @@
1
+ /*
2
+ * Copyright (c) 2023-2025 Datalayer, Inc.
3
+ * Distributed under the terms of the Modified BSD License.
4
+ */
5
+ const JUPYTERLAB_COLLABORATORS_COLORS = {
6
+ '--jp-collaborator-color1': '#ffad8e',
7
+ '--jp-collaborator-color2': '#dac83d',
8
+ '--jp-collaborator-color3': '#72dd76',
9
+ '--jp-collaborator-color4': '#00e4d0',
10
+ '--jp-collaborator-color5': '#45d4ff',
11
+ '--jp-collaborator-color6': '#e2b1ff',
12
+ '--jp-collaborator-color7': '#ff9de6'
13
+ };
14
+ export const jpCssToColor = (cssVariableName) => {
15
+ return JUPYTERLAB_COLLABORATORS_COLORS[cssVariableName.replaceAll('var(', '').replaceAll(')', '')];
16
+ };
17
+ // export const RESERVATION_CIRCLE_COLOR_VAR = '--data-yellow-color';
18
+ export const RESERVATION_CIRCLE_COLOR = '#656D76';
19
+ // export const CREDITS_CIRCLE_COLOR_VAR = '--data-blue-color';
20
+ export const CREDITS_CIRCLE_COLOR = '#16A085';
21
+ export const JOINED_INVITE_COLOR = '#0366d6';
22
+ export const PENDING_INVITE_COLOR = '#cfd3d7';
@@ -0,0 +1,3 @@
1
+ export * from './DatalayerTheme';
2
+ export * from './DatalayerThemeProvider';
3
+ export * from './Palette';
@@ -0,0 +1,7 @@
1
+ /*
2
+ * Copyright (c) 2023-2025 Datalayer, Inc.
3
+ * Distributed under the terms of the Modified BSD License.
4
+ */
5
+ export * from './DatalayerTheme';
6
+ export * from './DatalayerThemeProvider';
7
+ export * from './Palette';
@@ -0,0 +1,2 @@
1
+ export declare const asArray: (obj: any) => any[];
2
+ export declare const shuffleArray: (array: Array<any>) => void;
@@ -0,0 +1,16 @@
1
+ /*
2
+ * Copyright (c) 2023-2025 Datalayer, Inc.
3
+ * Distributed under the terms of the Modified BSD License.
4
+ */
5
+ export const asArray = (obj) => {
6
+ if (Array.isArray(obj)) {
7
+ return obj;
8
+ }
9
+ return [obj];
10
+ };
11
+ export const shuffleArray = (array) => {
12
+ for (let i = array.length - 1; i > 0; i--) {
13
+ const j = Math.floor(Math.random() * (i + 1));
14
+ [array[i], array[j]] = [array[j], array[i]];
15
+ }
16
+ };
@@ -0,0 +1,9 @@
1
+ export declare const DEFAULT_AVATAR_URL = "https://avatars.githubusercontent.com/u/70511875?s=200&v=4";
2
+ export declare const DEFAULT_AVATAR_URL_ENCODED: string;
3
+ export declare function stringAvatar(name: string): {
4
+ sx: {
5
+ bgcolor: string;
6
+ };
7
+ children: string;
8
+ };
9
+ export declare function getAvatarURL(url?: string): string;
@@ -0,0 +1,34 @@
1
+ /*
2
+ * Copyright (c) 2023-2025 Datalayer, Inc.
3
+ * Distributed under the terms of the Modified BSD License.
4
+ */
5
+ export const DEFAULT_AVATAR_URL = 'https://avatars.githubusercontent.com/u/70511875?s=200&v=4';
6
+ export const DEFAULT_AVATAR_URL_ENCODED = encodeURIComponent(DEFAULT_AVATAR_URL);
7
+ function stringToColor(string) {
8
+ let hash = 0;
9
+ let i;
10
+ for (i = 0; i < string.length; i += 1) {
11
+ hash = string.charCodeAt(i) + ((hash << 5) - hash);
12
+ }
13
+ let color = '#';
14
+ for (i = 0; i < 3; i += 1) {
15
+ const value = (hash >> (i * 8)) & 0xff;
16
+ color += `00${value.toString(16)}`.substr(-2);
17
+ }
18
+ return color;
19
+ }
20
+ export function stringAvatar(name) {
21
+ return {
22
+ sx: {
23
+ bgcolor: stringToColor(name),
24
+ },
25
+ children: `${name.split(' ')[0][0]}${name.split(' ')[1][0]}`,
26
+ };
27
+ }
28
+ export function getAvatarURL(url) {
29
+ return url ?
30
+ url.startsWith('https://www.gravatar.com/avatar')
31
+ ? `${url}?v=4&s=200&d=${DEFAULT_AVATAR_URL_ENCODED}` // Use gravatar syntax - sizing works for Gravatar and GitHub
32
+ : url
33
+ : DEFAULT_AVATAR_URL; // This fallback should barely be used - hence we allow decoding the URI.
34
+ }
@@ -0,0 +1,3 @@
1
+ export declare const detectBrowser: () => any;
2
+ export declare function getBrowserType(): "Opera" | "Microsoft Edge" | "Google Chrome" | "Mozilla Firefox" | "Apple Safari" | "Microsoft Internet Explorer" | "UC Browser" | "Samsung Browser" | "Unknown browser";
3
+ export default detectBrowser;
@@ -0,0 +1,63 @@
1
+ /*
2
+ * Copyright (c) 2023-2025 Datalayer, Inc.
3
+ * Distributed under the terms of the Modified BSD License.
4
+ */
5
+ // https://stackoverflow.com/questions/49328382/browser-detection-in-reactjs
6
+ // https://codepedia.info/detect-browser-in-javascript
7
+ export const detectBrowser = () => {
8
+ const userAgent = navigator.userAgent;
9
+ let browserName;
10
+ if (userAgent.match(/chrome|chromium|crios/i)) {
11
+ browserName = "chrome";
12
+ }
13
+ else if (userAgent.match(/firefox|fxios/i)) {
14
+ browserName = "firefox";
15
+ }
16
+ else if (userAgent.match(/safari/i)) {
17
+ browserName = "safari";
18
+ }
19
+ else if (userAgent.match(/opr\//i)) {
20
+ browserName = "opera";
21
+ }
22
+ else if (userAgent.match(/edg/i)) {
23
+ browserName = "edge";
24
+ }
25
+ else {
26
+ browserName = "Unknow browser.";
27
+ }
28
+ return browserName;
29
+ };
30
+ // TODO Is this a duplicate of detectBrowser ?
31
+ export function getBrowserType() {
32
+ const test = (regexp) => {
33
+ return regexp.test(navigator.userAgent);
34
+ };
35
+ if (test(/opr\//i)) {
36
+ return 'Opera';
37
+ }
38
+ else if (test(/edg/i)) {
39
+ return 'Microsoft Edge';
40
+ }
41
+ else if (test(/chrome|chromium|crios/i)) {
42
+ return 'Google Chrome';
43
+ }
44
+ else if (test(/firefox|fxios/i)) {
45
+ return 'Mozilla Firefox';
46
+ }
47
+ else if (test(/safari/i)) {
48
+ return 'Apple Safari';
49
+ }
50
+ else if (test(/trident/i)) {
51
+ return 'Microsoft Internet Explorer';
52
+ }
53
+ else if (test(/ucbrowser/i)) {
54
+ return 'UC Browser';
55
+ }
56
+ else if (test(/samsungbrowser/i)) {
57
+ return 'Samsung Browser';
58
+ }
59
+ else {
60
+ return 'Unknown browser';
61
+ }
62
+ }
63
+ export default detectBrowser;
@@ -0,0 +1,2 @@
1
+ import { IDataset } from "../models";
2
+ export declare const getDatasetCell: (dataset: IDataset) => string;
@@ -0,0 +1,28 @@
1
+ /*
2
+ * Copyright (c) 2023-2025 Datalayer, Inc.
3
+ * Distributed under the terms of the Modified BSD License.
4
+ */
5
+ export const getDatasetCell = (dataset) => {
6
+ switch (dataset.contentType) {
7
+ case 'application/vnd.ms-excel':
8
+ case 'text/csv':
9
+ return `# --- ✅ Load the ${dataset.fileName}.${dataset.datasetExtension} dataset (${dataset.mimeType})
10
+ import pandas as pd
11
+ ${dataset.fileName}_${dataset.datasetExtension} = pd.read_csv("${dataset.cdnUrl}")
12
+ ${dataset.fileName}_${dataset.datasetExtension}
13
+
14
+ `;
15
+ case 'image/png':
16
+ case 'image/jpg':
17
+ case 'image/jpeg':
18
+ return `# --- ✅ Display the ${dataset.fileName}.${dataset.datasetExtension} dataset (${dataset.mimeType})
19
+ from IPython.display import Image
20
+ url = "${dataset.cdnUrl}"
21
+ Image(url, width=300)
22
+
23
+ `;
24
+ default:
25
+ return `# --- 😞 File of type ${dataset.contentType} is not supported for now.
26
+ `;
27
+ }
28
+ };
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Get a cookie from the document.
3
+ */
4
+ export declare function getCookie(cname: string): string | undefined;
5
+ /**
6
+ * Set a cookie in the document.
7
+ */
8
+ export declare function setCookie(name: string, value: string, path?: string): void;
9
+ /**
10
+ * Set a cookie in the document.
11
+ */
12
+ export declare function deleteCookie(name: string): 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
+ * Get a cookie from the document.
7
+ */
8
+ export function getCookie(cname) {
9
+ // From http://www.tornadoweb.org/en/stable/guide/security.html
10
+ let cookie;
11
+ try {
12
+ cookie = document.cookie;
13
+ }
14
+ catch (e) {
15
+ // e.g. SecurityError in case of CSP Sandbox
16
+ return cookie;
17
+ }
18
+ // From https://www.w3schools.com/js/js_cookies.asp
19
+ const name = cname + "=";
20
+ const decodedCookie = decodeURIComponent(document.cookie);
21
+ const ca = decodedCookie.split(';');
22
+ for (let i = 0; i < ca.length; i++) {
23
+ let c = ca[i];
24
+ while (c.charAt(0) === ' ') {
25
+ c = c.substring(1);
26
+ }
27
+ if (c.indexOf(name) === 0) {
28
+ return c.substring(name.length, c.length);
29
+ }
30
+ }
31
+ }
32
+ /**
33
+ * Set a cookie in the document.
34
+ */
35
+ export function setCookie(name, value, path = '/') {
36
+ // document.cookie = "username=John Doe; expires=Thu, 18 Dec 2013 12:00:00 UTC; path=/";
37
+ const expire = new Date();
38
+ const time = expire.getTime();
39
+ const expireTime = time + 1000 * 36000;
40
+ expire.setTime(expireTime);
41
+ document.cookie = `${name}=${value}; expires=${expire.toUTCString()}; SameSite=Lax; path=${path}`;
42
+ }
43
+ /**
44
+ * Set a cookie in the document.
45
+ */
46
+ export function deleteCookie(name) {
47
+ document.cookie = `${name}=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;`;
48
+ }
@@ -0,0 +1,2 @@
1
+ export declare const getRelativeTime: (d1: Date, d2?: Date) => string;
2
+ export declare const timeSince: (date: Date) => string;
@@ -0,0 +1,60 @@
1
+ /*
2
+ * Copyright (c) 2023-2025 Datalayer, Inc.
3
+ * Distributed under the terms of the Modified BSD License.
4
+ */
5
+ //- Taken from https://stackoverflow.com/questions/6108819/javascript-timestamp-to-relative-time
6
+ // in miliseconds
7
+ const units = {
8
+ year: 24 * 60 * 60 * 1000 * 365,
9
+ month: (24 * 60 * 60 * 1000 * 365) / 12,
10
+ day: 24 * 60 * 60 * 1000,
11
+ hour: 60 * 60 * 1000,
12
+ minute: 60 * 1000,
13
+ second: 1000
14
+ };
15
+ const rtf = new Intl.RelativeTimeFormat(undefined, {
16
+ numeric: 'auto',
17
+ style: 'short'
18
+ });
19
+ export const getRelativeTime = (d1, d2 = new Date()) => {
20
+ const elapsed = d1.getTime() - d2.getTime();
21
+ // "Math.abs" accounts for both "past" & "future" scenarios
22
+ for (const u in units)
23
+ if (Math.abs(elapsed) > units[u] || u === 'second')
24
+ return rtf.format(Math.round(elapsed / units[u]), u);
25
+ return 'now';
26
+ };
27
+ //-
28
+ const p = (i) => {
29
+ return i > 1 ? 's' : '';
30
+ };
31
+ export const timeSince = (date) => {
32
+ const seconds = Math.floor((new Date().getTime() - date.getTime()) / 1000);
33
+ let interval = seconds / 31536000;
34
+ if (interval > 1) {
35
+ const i = Math.floor(interval);
36
+ return i + ` year${p(i)}`;
37
+ }
38
+ interval = seconds / 2592000;
39
+ if (interval > 1) {
40
+ const i = Math.floor(interval);
41
+ return i + ` month${p(i)}`;
42
+ }
43
+ interval = seconds / 86400;
44
+ if (interval > 1) {
45
+ const i = Math.floor(interval);
46
+ return i + ` day${p(i)}`;
47
+ }
48
+ interval = seconds / 3600;
49
+ if (interval > 1) {
50
+ const i = Math.floor(interval);
51
+ return i + ` hour${p(i)}`;
52
+ }
53
+ interval = seconds / 60;
54
+ if (interval > 1) {
55
+ const i = Math.floor(interval);
56
+ return i + ` minute${p(i)}`;
57
+ }
58
+ const i = Math.floor(interval);
59
+ return i + ` second${p(i)}`;
60
+ };
@@ -0,0 +1,3 @@
1
+ export declare function jsonToCSVString(json: any): string;
2
+ export declare const downloadJson: (data: any, fileName: string, extension: string) => void;
3
+ export declare const downloadCSV: (data: any, fileName: string) => 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
+ export function jsonToCSVString(json) {
6
+ const headers = Object.keys(json[0]);
7
+ let csvString = '';
8
+ csvString += headers.join(',') + '\n';
9
+ json.forEach(obj => {
10
+ const rowCells = headers.map(header => {
11
+ const val = obj[header];
12
+ if (typeof val === "number") {
13
+ return val;
14
+ }
15
+ if (typeof val === "string") {
16
+ return val;
17
+ }
18
+ if (val instanceof Date) {
19
+ return val.toISOString();
20
+ }
21
+ return '';
22
+ });
23
+ const row = rowCells.join(',');
24
+ csvString += row + '\n';
25
+ });
26
+ return csvString;
27
+ }
28
+ export const downloadJson = (data, fileName, extension) => {
29
+ const jsonData = new Blob([JSON.stringify(data)], { type: 'application/json' });
30
+ const jsonURL = URL.createObjectURL(jsonData);
31
+ const jsonLink = document.createElement('a');
32
+ jsonLink.href = jsonURL;
33
+ jsonLink.download = `${fileName}.${extension}`;
34
+ document.body.appendChild(jsonLink);
35
+ jsonLink.click();
36
+ document.body.removeChild(jsonLink);
37
+ };
38
+ export const downloadCSV = (data, fileName) => {
39
+ const csvString = jsonToCSVString(data);
40
+ const csvData = new Blob([csvString], { type: 'text/csv' });
41
+ const csvURL = URL.createObjectURL(csvData);
42
+ const csvLink = document.createElement('a');
43
+ csvLink.href = csvURL;
44
+ csvLink.download = `${fileName}.csv`;
45
+ document.body.appendChild(csvLink);
46
+ csvLink.click();
47
+ document.body.removeChild(csvLink);
48
+ };
@@ -0,0 +1,10 @@
1
+ /**
2
+ * @param data
3
+ * @param filename
4
+ * @param mime See https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types
5
+ * @param bom A byte order mark (BOM) is a sequence of bytes used to indicate Unicode encoding of a text file. The underlying character code, U+FEFF , takes one of the following forms depending on the character encoding.
6
+ *
7
+ * .zip ZIP archive application/zip
8
+ */
9
+ export declare const downloadFile: (data: any, filename: string, mime?: any, bom?: any) => void;
10
+ export default downloadFile;
@@ -0,0 +1,36 @@
1
+ /*
2
+ * Copyright (c) 2023-2025 Datalayer, Inc.
3
+ * Distributed under the terms of the Modified BSD License.
4
+ */
5
+ /**
6
+ * @param data
7
+ * @param filename
8
+ * @param mime See https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types
9
+ * @param bom A byte order mark (BOM) is a sequence of bytes used to indicate Unicode encoding of a text file. The underlying character code, U+FEFF , takes one of the following forms depending on the character encoding.
10
+ *
11
+ * .zip ZIP archive application/zip
12
+ */
13
+ export const downloadFile = (data, filename, mime, bom) => {
14
+ const blobData = (typeof bom !== 'undefined') ? [bom, data] : [data];
15
+ const blob = new Blob(blobData, { type: mime || 'application/octet-stream' });
16
+ const blobURL = (window.URL && window.URL.createObjectURL) ? window.URL.createObjectURL(blob) : window.webkitURL.createObjectURL(blob);
17
+ const tempLink = document.createElement('a');
18
+ tempLink.style.display = 'none';
19
+ tempLink.href = blobURL;
20
+ tempLink.setAttribute('download', filename);
21
+ // Safari thinks _blank anchor are pop ups. We only want to set _blank
22
+ // target if the browser does not support the HTML5 download attribute.
23
+ // This allows you to download files in desktop safari if pop up blocking
24
+ // is enabled.
25
+ if (typeof tempLink.download === 'undefined') {
26
+ tempLink.setAttribute('target', '_blank');
27
+ }
28
+ document.body.appendChild(tempLink);
29
+ tempLink.click();
30
+ // Fixes "webkit blob resource error 1"
31
+ setTimeout(function () {
32
+ document.body.removeChild(tempLink);
33
+ window.URL.revokeObjectURL(blobURL);
34
+ }, 200);
35
+ };
36
+ export default downloadFile;
@@ -0,0 +1 @@
1
+ export declare const isDevDeployment: () => boolean;
@@ -0,0 +1,7 @@
1
+ /*
2
+ * Copyright (c) 2023-2025 Datalayer, Inc.
3
+ * Distributed under the terms of the Modified BSD License.
4
+ */
5
+ export const isDevDeployment = () => {
6
+ return location.hostname.startsWith('dev') || location.hostname.startsWith('localhost');
7
+ };
@@ -0,0 +1,7 @@
1
+ /**
2
+ * creates name of file.
3
+ *
4
+ * @param {string} extension
5
+ * @param {string[]} parts of file name
6
+ */
7
+ export declare const createFileName: (extension?: string, ...names: any[]) => string;