@datalayer/core 0.0.2 → 0.0.4

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 (474) hide show
  1. package/README.md +124 -2
  2. package/lib/App.css +47 -0
  3. package/lib/App.js +14 -2
  4. package/lib/__tests__/index.test.js +7 -6
  5. package/lib/api/{RunApi.d.ts → DatalayerApi.d.ts} +4 -4
  6. package/lib/api/{RunApi.js → DatalayerApi.js} +6 -11
  7. package/lib/api/index.d.ts +3 -2
  8. package/lib/api/index.js +3 -7
  9. package/lib/api/{runtimes → jupyter}/exec/Python.js +0 -5
  10. package/lib/api/{runtimes → jupyter}/exec/Snippets.js +0 -5
  11. package/lib/api/{runtimes → jupyter}/exec/index.js +0 -5
  12. package/lib/api/jupyter/index.d.ts +2 -0
  13. package/lib/api/jupyter/index.js +6 -0
  14. package/lib/api/{runtimes → jupyter}/kernelsHandler.d.ts +1 -1
  15. package/lib/api/{runtimes → jupyter}/kernelsHandler.js +1 -6
  16. package/lib/api/runtimes/actions.d.ts +102 -0
  17. package/lib/api/runtimes/{runtimesApi.js → actions.js} +47 -53
  18. package/lib/api/runtimes/{runtimesApi.d.ts → apis.d.ts} +8 -105
  19. package/lib/api/runtimes/apis.js +5 -0
  20. package/lib/api/runtimes/index.d.ts +2 -4
  21. package/lib/api/runtimes/index.js +2 -9
  22. package/lib/api/runtimes/settings.js +3 -8
  23. package/lib/api/runtimes/snapshots.d.ts +1 -1
  24. package/lib/api/runtimes/snapshots.js +8 -13
  25. package/lib/api/runtimes/utils.js +1 -9
  26. package/lib/assets/react.svg +1 -0
  27. package/lib/collaboration/DatalayerCollaboration.d.ts +9 -0
  28. package/lib/collaboration/DatalayerCollaboration.js +28 -0
  29. package/lib/collaboration/DatalayerCollaborationProvider.d.ts +54 -0
  30. package/lib/collaboration/DatalayerCollaborationProvider.js +162 -0
  31. package/lib/collaboration/index.d.ts +2 -0
  32. package/lib/collaboration/index.js +6 -0
  33. package/lib/components/avatars/BoringAvatar.d.ts +2 -3
  34. package/lib/components/avatars/BoringAvatar.js +14 -9
  35. package/lib/components/avatars/BoringAvatar.stories.d.ts +27 -0
  36. package/lib/components/avatars/BoringAvatar.stories.js +23 -0
  37. package/lib/components/avatars/UserProfileAvatar.js +2 -14
  38. package/lib/components/avatars/index.js +0 -5
  39. package/lib/components/banners/NoAutomationBanner.js +4 -9
  40. package/lib/components/banners/index.js +0 -5
  41. package/lib/components/buttons/DownloadCSVButton.d.ts +1 -1
  42. package/lib/components/buttons/DownloadCSVButton.js +1 -6
  43. package/lib/components/buttons/DownloadJsonButton.d.ts +1 -1
  44. package/lib/components/buttons/DownloadJsonButton.js +0 -5
  45. package/lib/components/buttons/LongActionButton.js +0 -5
  46. package/lib/components/buttons/UploadButton.js +1 -6
  47. package/lib/components/buttons/index.js +0 -5
  48. package/lib/components/checkout/StripeCheckout.d.ts +1 -1
  49. package/lib/components/checkout/StripeCheckout.js +6 -11
  50. package/lib/components/checkout/index.js +0 -5
  51. package/lib/components/confetti/ConfettiSuccess.js +1 -6
  52. package/lib/components/confetti/index.js +0 -5
  53. package/lib/components/context/OrganizationSelect.js +5 -10
  54. package/lib/components/context/SpaceSelect.js +7 -12
  55. package/lib/components/context/index.js +0 -5
  56. package/lib/components/display/AvatarSkeleton.js +1 -6
  57. package/lib/components/display/CenteredSpinner.js +4 -9
  58. package/lib/components/display/CodePreview.js +4 -9
  59. package/lib/components/display/DatalayerBox.js +13 -19
  60. package/lib/components/display/HorizontalCenter.d.ts +1 -1
  61. package/lib/components/display/HorizontalCenter.js +1 -1
  62. package/lib/components/display/JupyterDialog.js +17 -20
  63. package/lib/components/display/NavLink.d.ts +4 -2
  64. package/lib/components/display/NavLink.js +6 -9
  65. package/lib/components/display/NotebookSkeleton.js +2 -7
  66. package/lib/components/display/Placeholder.js +1 -6
  67. package/lib/components/display/ToTopBranded.js +1 -6
  68. package/lib/components/display/VisuallyHidden.js +0 -5
  69. package/lib/components/display/index.js +0 -5
  70. package/lib/components/echarts/EChartsReact.d.ts +1 -1
  71. package/lib/components/echarts/EChartsReact.js +7 -7
  72. package/lib/components/echarts/index.js +0 -5
  73. package/lib/components/flashes/FlashClosable.js +11 -16
  74. package/lib/components/flashes/FlashDisclaimer.js +2 -8
  75. package/lib/components/flashes/FlashGuest.js +3 -9
  76. package/lib/components/flashes/FlashSurveys.js +3 -9
  77. package/lib/components/flashes/FlashUnauthorized.js +2 -7
  78. package/lib/components/flashes/index.js +0 -5
  79. package/lib/components/flashes/surveys/Survey2025_1.d.ts +1 -1
  80. package/lib/components/flashes/surveys/Survey2025_1.js +62 -90
  81. package/lib/components/flashes/surveys/index.js +0 -5
  82. package/lib/components/iam/ExternalTokenSilentLogin.js +6 -9
  83. package/lib/components/iam/index.js +0 -5
  84. package/lib/components/icons/ArtifactIcon.d.ts +2 -2
  85. package/lib/components/icons/ArtifactIcon.js +39 -44
  86. package/lib/components/icons/index.js +0 -5
  87. package/lib/components/index.js +1 -6
  88. package/lib/components/labels/VisibilityLabel.js +2 -10
  89. package/lib/components/labels/index.js +0 -5
  90. package/lib/components/landings/StepBlock.d.ts +1 -1
  91. package/lib/components/landings/StepBlock.js +1 -6
  92. package/lib/components/landings/index.js +0 -5
  93. package/lib/components/navbar/NavigationVisbilityObserver.js +2 -7
  94. package/lib/components/navbar/SubdomainNavBar.js +46 -29
  95. package/lib/components/navbar/SubdomainNavBar.module.css +737 -0
  96. package/lib/components/navbar/index.js +0 -5
  97. package/lib/components/nbgrader/NbGradesDetails.d.ts +1 -1
  98. package/lib/components/nbgrader/NbGradesDetails.js +5 -13
  99. package/lib/components/nbgrader/index.js +0 -5
  100. package/lib/components/notebooks/JupyterNotebook.js +5 -10
  101. package/lib/components/notebooks/JupyterNotebookToolbar.js +3 -8
  102. package/lib/components/notebooks/index.js +0 -5
  103. package/lib/components/primer/Helper.d.ts +1 -1
  104. package/lib/components/primer/Helper.js +5 -3
  105. package/lib/components/primer/Portals.d.ts +1 -1
  106. package/lib/components/primer/Portals.js +2 -7
  107. package/lib/components/primer/Styles.js +1 -6
  108. package/lib/components/primer/index.js +0 -5
  109. package/lib/components/progress/ConsumptionBar.js +2 -7
  110. package/lib/components/progress/CreditsIndicator.d.ts +1 -1
  111. package/lib/components/progress/CreditsIndicator.js +4 -13
  112. package/lib/components/progress/ProgressBar.js +0 -5
  113. package/lib/components/progress/ProgressRing.js +2 -2
  114. package/lib/components/progress/Timer.js +0 -5
  115. package/lib/components/progress/index.js +0 -5
  116. package/lib/components/runtimes/RuntimeCellVariables.js +9 -14
  117. package/lib/components/runtimes/RuntimeCellVariablesDialog.js +7 -12
  118. package/lib/components/runtimes/RuntimeLauncherDialog.d.ts +1 -2
  119. package/lib/components/runtimes/RuntimeLauncherDialog.js +32 -40
  120. package/lib/components/runtimes/RuntimePickerBase.d.ts +1 -1
  121. package/lib/components/runtimes/RuntimePickerBase.js +42 -36
  122. package/lib/components/runtimes/RuntimePickerCell.js +9 -17
  123. package/lib/components/runtimes/RuntimePickerNotebook.d.ts +1 -2
  124. package/lib/components/runtimes/RuntimePickerNotebook.js +45 -50
  125. package/lib/components/runtimes/RuntimeReservationControl.js +10 -20
  126. package/lib/components/runtimes/RuntimeSimplePicker.d.ts +1 -1
  127. package/lib/components/runtimes/RuntimeSimplePicker.js +44 -52
  128. package/lib/components/runtimes/RuntimeUtils.d.ts +1 -1
  129. package/lib/components/runtimes/RuntimeUtils.js +22 -17
  130. package/lib/components/runtimes/RuntimeVariables.js +7 -12
  131. package/lib/components/runtimes/index.js +0 -5
  132. package/lib/components/screenshot/ScreenCapture.js +10 -19
  133. package/lib/components/screenshot/ScreenCaptureButton.d.ts +1 -1
  134. package/lib/components/screenshot/ScreenCaptureButton.js +14 -8
  135. package/lib/components/screenshot/index.js +0 -5
  136. package/lib/components/snapshots/RuntimeSnapshotMenu.js +19 -22
  137. package/lib/components/snapshots/index.js +0 -5
  138. package/lib/components/snippets/SnippetDialog.js +5 -10
  139. package/lib/components/snippets/index.js +0 -5
  140. package/lib/components/storage/ContentsBrowser.js +75 -63
  141. package/lib/components/storage/ContentsItems.js +10 -13
  142. package/lib/components/storage/index.js +0 -5
  143. package/lib/components/students/StudentItemStatus.d.ts +1 -1
  144. package/lib/components/students/StudentItemStatus.js +38 -21
  145. package/lib/components/students/index.js +0 -5
  146. package/lib/components/subnav/SubNav.d.ts +3 -3
  147. package/lib/components/subnav/SubNav.js +34 -24
  148. package/lib/components/subnav/SubNav.module.css +717 -0
  149. package/lib/components/subnav/index.js +0 -5
  150. package/lib/components/tables/DataTable.js +1 -9
  151. package/lib/components/tables/index.js +0 -5
  152. package/lib/components/text-reveal/TextRevealAnimation.js +7 -8
  153. package/lib/components/text-reveal/TextRevealAnimation.module.css +45 -0
  154. package/lib/components/text-reveal/index.js +0 -5
  155. package/lib/components/text-reveal/useTextRevealAnimationLines.js +0 -5
  156. package/lib/components/tokens/SpaceVariantToken.d.ts +1 -1
  157. package/lib/components/tokens/SpaceVariantToken.js +5 -10
  158. package/lib/components/tokens/index.js +0 -5
  159. package/lib/components/toolbars/AssignmentEditorToolbar.js +1 -8
  160. package/lib/components/toolbars/DocumentEditorToolbar.js +0 -5
  161. package/lib/components/toolbars/NotebookEditorToolbar.d.ts +1 -1
  162. package/lib/components/toolbars/NotebookEditorToolbar.js +0 -5
  163. package/lib/components/toolbars/index.js +0 -5
  164. package/lib/components/users/PeerIndicator.d.ts +1 -1
  165. package/lib/components/users/PeerIndicator.js +5 -10
  166. package/lib/components/users/index.js +0 -5
  167. package/lib/config/Configuration.d.ts +48 -0
  168. package/lib/config/Configuration.js +42 -5
  169. package/lib/config/index.js +0 -5
  170. package/lib/config/integrations/Loom.js +3 -8
  171. package/lib/config/integrations/index.js +0 -5
  172. package/lib/examples/CellExample.d.ts +6 -0
  173. package/lib/examples/CellExample.js +55 -0
  174. package/lib/examples/DatalayerNotebookExample.d.ts +16 -0
  175. package/lib/examples/DatalayerNotebookExample.js +75 -0
  176. package/lib/examples/NativeNavigationExample.d.ts +8 -0
  177. package/lib/examples/NativeNavigationExample.js +97 -0
  178. package/lib/examples/NotebookExample.d.ts +6 -0
  179. package/lib/examples/NotebookExample.js +24 -0
  180. package/lib/examples/NotebookMutationsKernel.d.ts +2 -0
  181. package/lib/examples/NotebookMutationsKernel.js +115 -0
  182. package/lib/examples/NotebookMutationsServiceManager.d.ts +2 -0
  183. package/lib/examples/NotebookMutationsServiceManager.js +107 -0
  184. package/lib/examples/ReactRouterExample.d.ts +6 -0
  185. package/lib/examples/ReactRouterExample.js +175 -0
  186. package/lib/examples/example-selector.d.ts +22 -0
  187. package/lib/examples/example-selector.js +45 -0
  188. package/lib/examples/index.d.ts +2 -0
  189. package/lib/examples/index.js +6 -0
  190. package/lib/examples/main.js +153 -0
  191. package/lib/examples/notebooks/IPyWidgetsExample.ipynb.json +101 -0
  192. package/lib/examples/notebooks/IPyWidgetsExampleWithState.ipynb.json +112 -0
  193. package/lib/examples/notebooks/Lite.ipynb.json +128 -0
  194. package/lib/examples/notebooks/Matplotlib.ipynb.json +137 -0
  195. package/lib/examples/notebooks/NotebookExample1.ipynb.json +126 -0
  196. package/lib/examples/notebooks/NotebookExample2.ipynb.json +48 -0
  197. package/lib/examples/notebooks/NotebookOutputs.ipynb.json +49 -0
  198. package/lib/examples/notebooks/NotebookToCExample.ipynb.json +102 -0
  199. package/lib/examples/notebooks/OutputIPyWidgetsExample.d.ts +145 -0
  200. package/lib/examples/notebooks/OutputIPyWidgetsExample.js +153 -0
  201. package/lib/examples/notebooks/PyGWalker.ipynb.json +55 -0
  202. package/lib/hooks/assets/OutputshotPlaceholders.d.ts +10 -10
  203. package/lib/hooks/assets/OutputshotPlaceholders.js +9 -14
  204. package/lib/hooks/assets/index.js +0 -5
  205. package/lib/hooks/index.d.ts +29 -28
  206. package/lib/hooks/index.js +29 -33
  207. package/lib/hooks/layouts/LayoutBackdrop.js +3 -11
  208. package/lib/hooks/layouts/LayoutScreenshot.css +58 -0
  209. package/lib/hooks/layouts/LayoutScreenshot.d.ts +1 -0
  210. package/lib/hooks/layouts/LayoutScreenshot.js +7 -11
  211. package/lib/hooks/layouts/index.js +0 -5
  212. package/lib/hooks/useAIAgents.d.ts +1 -1
  213. package/lib/hooks/useAIAgents.js +13 -18
  214. package/lib/hooks/useAuthorization.js +4 -10
  215. package/lib/hooks/useBackdrop.js +7 -12
  216. package/lib/hooks/useBackdropJupyterLab.d.ts +1 -1
  217. package/lib/hooks/useBackdropJupyterLab.js +4 -9
  218. package/lib/hooks/useCache.d.ts +8 -4
  219. package/lib/hooks/useCache.js +410 -361
  220. package/lib/hooks/useCellOutputshot.js +3 -11
  221. package/lib/hooks/useContainsFocus.js +2 -6
  222. package/lib/hooks/useDatalayer.d.ts +21 -0
  223. package/lib/hooks/{useRun.js → useDatalayer.js} +16 -18
  224. package/lib/hooks/useError.d.ts +1 -1
  225. package/lib/hooks/useError.js +2 -7
  226. package/lib/hooks/useExternalScript.js +4 -9
  227. package/lib/hooks/useFocusTrap.d.ts +1 -1
  228. package/lib/hooks/useFocusTrap.js +3 -7
  229. package/lib/hooks/useIAM.js +6 -12
  230. package/lib/hooks/useId.js +6 -11
  231. package/lib/hooks/useIsomorphicLayoutEffect.js +0 -5
  232. package/lib/hooks/useJupyterLabTheme.js +3 -6
  233. package/lib/hooks/useKeyboardEscape.js +0 -5
  234. package/lib/hooks/useLocation.d.ts +22 -0
  235. package/lib/hooks/useLocation.js +149 -0
  236. package/lib/hooks/useLocationHandles.d.ts +2 -2
  237. package/lib/hooks/useLocationHandles.js +6 -9
  238. package/lib/hooks/useNavigate.d.ts +5 -1
  239. package/lib/hooks/useNavigate.js +62 -12
  240. package/lib/hooks/useNotebookAIAgent.js +3 -6
  241. package/lib/hooks/useOnClickOutside.js +0 -5
  242. package/lib/hooks/useParams.d.ts +5 -0
  243. package/lib/hooks/useParams.js +152 -0
  244. package/lib/hooks/useRef.js +0 -5
  245. package/lib/hooks/useRuntimes.js +2 -7
  246. package/lib/hooks/useScreenshot.js +5 -10
  247. package/lib/hooks/useToast.js +21 -21
  248. package/lib/hooks/useUpload.js +9 -14
  249. package/lib/hooks/useUser.js +1 -1
  250. package/lib/hooks/useVisibilityObserver.js +0 -5
  251. package/lib/hooks/useWindowSize.js +0 -6
  252. package/lib/i18n/Labels.js +0 -5
  253. package/lib/i18n/index.js +0 -5
  254. package/lib/index.css +73 -0
  255. package/lib/index.d.ts +6 -3
  256. package/lib/index.js +7 -3
  257. package/lib/main.js +1 -2
  258. package/lib/mocks/components/FlashMock.js +4 -9
  259. package/lib/mocks/components/index.js +0 -5
  260. package/lib/mocks/hooks/index.d.ts +1 -1
  261. package/lib/mocks/hooks/index.js +1 -6
  262. package/lib/mocks/hooks/rests/index.js +0 -5
  263. package/lib/mocks/hooks/rests/rests.js +15 -23
  264. package/lib/mocks/hooks/useDatalayerMock.d.ts +6 -0
  265. package/lib/mocks/hooks/{useRunMock.js → useDatalayerMock.js} +9 -14
  266. package/lib/mocks/index.js +0 -5
  267. package/lib/mocks/jupyter/index.js +1 -6
  268. package/lib/mocks/models/CodeBlockMock.js +1 -6
  269. package/lib/mocks/models/CodelineMock.js +1 -6
  270. package/lib/mocks/models/CourseMock.d.ts +1 -1
  271. package/lib/mocks/models/CourseMock.js +10 -15
  272. package/lib/mocks/models/InviteMock.d.ts +1 -1
  273. package/lib/mocks/models/InviteMock.js +21 -11
  274. package/lib/mocks/models/JupyterLabUserMock.js +2 -2
  275. package/lib/mocks/models/OrganisationMock.d.ts +1 -1
  276. package/lib/mocks/models/OrganisationMock.js +11 -7
  277. package/lib/mocks/models/SchoolMock.d.ts +1 -1
  278. package/lib/mocks/models/SchoolMock.js +6 -6
  279. package/lib/mocks/models/SpaceMock.d.ts +1 -1
  280. package/lib/mocks/models/SpaceMock.js +9 -14
  281. package/lib/mocks/models/TeamMock.d.ts +1 -1
  282. package/lib/mocks/models/TeamMock.js +6 -6
  283. package/lib/mocks/models/UserMock.d.ts +1 -1
  284. package/lib/mocks/models/UserMock.js +4 -11
  285. package/lib/mocks/models/index.js +0 -5
  286. package/lib/mocks/views/ActionMenuMock.js +1 -6
  287. package/lib/mocks/views/ChartMock.js +3 -8
  288. package/lib/mocks/views/ChartMockOptions.js +24 -29
  289. package/lib/mocks/views/DashboardMock.js +74 -79
  290. package/lib/mocks/views/FormMock.js +1 -6
  291. package/lib/mocks/views/TableMock.js +1 -6
  292. package/lib/mocks/views/WipMock.js +0 -5
  293. package/lib/mocks/views/index.js +0 -5
  294. package/lib/models/Account.d.ts +2 -2
  295. package/lib/models/Assignment.d.ts +2 -2
  296. package/lib/models/Cell.d.ts +1 -1
  297. package/lib/models/CodeBlock.d.ts +1 -1
  298. package/lib/models/CodefeedBlocks.d.ts +2 -2
  299. package/lib/models/Contact.d.ts +1 -1
  300. package/lib/models/Contact.js +14 -19
  301. package/lib/models/ContactEvent.js +0 -5
  302. package/lib/models/ContactIAMProvider.js +2 -2
  303. package/lib/models/Course.d.ts +7 -7
  304. package/lib/models/Credits.js +0 -5
  305. package/lib/models/Dataset.d.ts +2 -2
  306. package/lib/models/Datasource.js +0 -5
  307. package/lib/models/Dean.d.ts +1 -1
  308. package/lib/models/Document.d.ts +1 -1
  309. package/lib/models/Environment.d.ts +2 -2
  310. package/lib/models/Errors.js +0 -5
  311. package/lib/models/Exercise.d.ts +1 -1
  312. package/lib/models/GrowthKPI.js +0 -5
  313. package/lib/models/IAMProviderLinked.js +1 -1
  314. package/lib/models/IAMProviderUsers.js +0 -5
  315. package/lib/models/IAMToken.js +0 -5
  316. package/lib/models/Inbound.js +0 -5
  317. package/lib/models/Instructor.d.ts +1 -1
  318. package/lib/models/Invite.d.ts +2 -2
  319. package/lib/models/Invite.js +1 -1
  320. package/lib/models/Item.d.ts +5 -5
  321. package/lib/models/LandingRoles.js +18 -23
  322. package/lib/models/Lesson.d.ts +1 -1
  323. package/lib/models/Member.d.ts +1 -1
  324. package/lib/models/Notebook.d.ts +1 -1
  325. package/lib/models/Organization.d.ts +4 -4
  326. package/lib/models/Organization.js +2 -7
  327. package/lib/models/OrganizationMember.d.ts +2 -2
  328. package/lib/models/Outbound.js +7 -12
  329. package/lib/models/Page.js +4 -2
  330. package/lib/models/PageTag.d.ts +2 -2
  331. package/lib/models/PageTag.js +56 -9
  332. package/lib/models/Profile.d.ts +1 -1
  333. package/lib/models/RolesOrganization.d.ts +1 -1
  334. package/lib/models/RolesOrganization.js +4 -17
  335. package/lib/models/RolesPlatform.d.ts +1 -1
  336. package/lib/models/RolesPlatform.js +12 -39
  337. package/lib/models/RolesTeam.d.ts +1 -1
  338. package/lib/models/RolesTeam.js +3 -15
  339. package/lib/models/Runtime.d.ts +59 -1
  340. package/lib/models/Runtime.js +11 -9
  341. package/lib/models/RuntimeSnapshot.js +1 -1
  342. package/lib/models/School.d.ts +4 -4
  343. package/lib/models/Secret.js +0 -5
  344. package/lib/models/Space.d.ts +5 -5
  345. package/lib/models/Space.js +3 -3
  346. package/lib/models/SpaceItem.d.ts +8 -8
  347. package/lib/models/SpaceMember.d.ts +2 -2
  348. package/lib/models/Student.d.ts +2 -2
  349. package/lib/models/StudentItem.d.ts +3 -3
  350. package/lib/models/Survey.js +0 -5
  351. package/lib/models/Team.d.ts +3 -3
  352. package/lib/models/Team.js +2 -7
  353. package/lib/models/TeamMember.d.ts +2 -2
  354. package/lib/models/URN.js +1 -6
  355. package/lib/models/User.d.ts +2 -2
  356. package/lib/models/User.js +7 -10
  357. package/lib/models/UserEvent.js +0 -5
  358. package/lib/models/UserOnboarding.d.ts +1 -1
  359. package/lib/models/UserOnboarding.js +7 -12
  360. package/lib/models/UserSettings.js +2 -7
  361. package/lib/models/index.d.ts +2 -2
  362. package/lib/models/index.js +2 -7
  363. package/lib/navigation/adapters/native.d.ts +11 -0
  364. package/lib/navigation/adapters/native.js +48 -0
  365. package/lib/navigation/adapters/nextjs.d.ts +9 -0
  366. package/lib/navigation/adapters/nextjs.js +35 -0
  367. package/lib/navigation/adapters/react-router.d.ts +4 -0
  368. package/lib/navigation/adapters/react-router.js +12 -0
  369. package/lib/navigation/components.d.ts +20 -0
  370. package/lib/navigation/components.js +36 -0
  371. package/lib/navigation/index.d.ts +4 -0
  372. package/lib/navigation/index.js +12 -0
  373. package/lib/routes/Routes.js +0 -5
  374. package/lib/routes/index.d.ts +1 -1
  375. package/lib/routes/index.js +1 -6
  376. package/lib/services/DatalayerServiceManager.d.ts +22 -0
  377. package/lib/services/DatalayerServiceManager.js +79 -0
  378. package/lib/services/index.d.ts +4 -0
  379. package/lib/services/index.js +7 -0
  380. package/lib/services/reconnectToRuntime.d.ts +32 -0
  381. package/lib/services/reconnectToRuntime.js +59 -0
  382. package/lib/state/State.d.ts +1 -1
  383. package/lib/state/State.js +1 -6
  384. package/lib/state/index.d.ts +1 -1
  385. package/lib/state/index.js +1 -6
  386. package/lib/state/storage/IAMStorage.js +14 -7
  387. package/lib/state/storage/index.d.ts +1 -1
  388. package/lib/state/storage/index.js +1 -6
  389. package/lib/state/substates/AIAgentState.js +4 -7
  390. package/lib/state/substates/CellState.js +6 -10
  391. package/lib/state/substates/CoreState.d.ts +1 -1
  392. package/lib/state/substates/CoreState.js +23 -20
  393. package/lib/state/substates/DatasourceState.js +1 -6
  394. package/lib/state/substates/DocumentState.js +0 -5
  395. package/lib/state/substates/GradeState.js +0 -5
  396. package/lib/state/substates/IAMState.d.ts +5 -1
  397. package/lib/state/substates/IAMState.js +88 -72
  398. package/lib/state/substates/JupyterLabState.js +1 -6
  399. package/lib/state/substates/LayoutState.d.ts +2 -2
  400. package/lib/state/substates/LayoutState.js +41 -28
  401. package/lib/state/substates/NbformatState.js +0 -5
  402. package/lib/state/substates/OrganizationState.js +1 -6
  403. package/lib/state/substates/RuntimesState.d.ts +2 -2
  404. package/lib/state/substates/RuntimesState.js +6 -10
  405. package/lib/state/substates/SpaceState.js +1 -6
  406. package/lib/state/substates/SurveysState.js +7 -12
  407. package/lib/state/substates/TeamState.js +1 -6
  408. package/lib/state/substates/index.js +0 -5
  409. package/lib/stories/assets/accessibility.png +0 -0
  410. package/lib/stories/assets/accessibility.svg +1 -0
  411. package/lib/stories/assets/addon-library.png +0 -0
  412. package/lib/stories/assets/assets.png +0 -0
  413. package/lib/stories/assets/context.png +0 -0
  414. package/lib/stories/assets/discord.svg +1 -0
  415. package/lib/stories/assets/docs.png +0 -0
  416. package/lib/stories/assets/figma-plugin.png +0 -0
  417. package/lib/stories/assets/github.svg +1 -0
  418. package/lib/stories/assets/share.png +0 -0
  419. package/lib/stories/assets/styling.png +0 -0
  420. package/lib/stories/assets/testing.png +0 -0
  421. package/lib/stories/assets/theming.png +0 -0
  422. package/lib/stories/assets/tutorials.svg +1 -0
  423. package/lib/stories/assets/youtube.svg +1 -0
  424. package/lib/stories/button.css +35 -0
  425. package/lib/stories/header.css +37 -0
  426. package/lib/stories/page.css +73 -0
  427. package/lib/test-setup.js +73 -1
  428. package/lib/theme/DatalayerTheme.js +1 -6
  429. package/lib/theme/DatalayerThemeProvider.js +17 -19
  430. package/lib/theme/Palette.js +1 -6
  431. package/lib/theme/index.js +0 -5
  432. package/lib/utils/Array.js +0 -5
  433. package/lib/utils/Avatar.js +2 -7
  434. package/lib/utils/Browser.js +6 -11
  435. package/lib/utils/Cells.d.ts +1 -1
  436. package/lib/utils/Cookie.js +1 -6
  437. package/lib/utils/Date.js +5 -10
  438. package/lib/utils/Download.js +5 -8
  439. package/lib/utils/DownloadFile.js +4 -7
  440. package/lib/utils/Env.js +2 -6
  441. package/lib/utils/File.js +0 -5
  442. package/lib/utils/Ids.js +0 -5
  443. package/lib/utils/Jupyter.js +0 -5
  444. package/lib/utils/Lazy.d.ts +1 -1
  445. package/lib/utils/Lazy.js +2 -8
  446. package/lib/utils/Name.js +10 -13
  447. package/lib/utils/Notebook.d.ts +1 -1
  448. package/lib/utils/Notebook.js +3 -3
  449. package/lib/utils/Number.js +13 -14
  450. package/lib/utils/Plots.d.ts +1 -1
  451. package/lib/utils/Plots.js +5 -5
  452. package/lib/utils/Random.js +0 -5
  453. package/lib/utils/Screenshot.js +1 -6
  454. package/lib/utils/Scroll.js +3 -7
  455. package/lib/utils/Sleep.js +1 -6
  456. package/lib/utils/Snapshot.js +2 -7
  457. package/lib/utils/String.js +2 -7
  458. package/lib/utils/Uri.js +2 -7
  459. package/lib/utils/Validator.js +0 -5
  460. package/lib/utils/WithSuspense.js +3 -11
  461. package/lib/utils/index.js +0 -5
  462. package/package.json +96 -30
  463. package/style/animation/Animation.module.css +174 -0
  464. package/style/base.css +64 -0
  465. package/style/index.css +6 -0
  466. package/lib/__tests__/App.test.js +0 -17
  467. package/lib/api/runtimes/models.d.ts +0 -59
  468. package/lib/api/runtimes/models.js +0 -11
  469. package/lib/hooks/useRun.d.ts +0 -21
  470. package/lib/mocks/hooks/useRunMock.d.ts +0 -6
  471. /package/lib/api/{runtimes → jupyter}/exec/Python.d.ts +0 -0
  472. /package/lib/api/{runtimes → jupyter}/exec/Snippets.d.ts +0 -0
  473. /package/lib/api/{runtimes → jupyter}/exec/index.d.ts +0 -0
  474. /package/lib/{__tests__/App.test.d.ts → examples/main.d.ts} +0 -0
@@ -0,0 +1,162 @@
1
+ /*
2
+ * Copyright (c) 2023-2025 Datalayer, Inc.
3
+ * Distributed under the terms of the Modified BSD License.
4
+ */
5
+ import { WebsocketProvider } from 'y-websocket';
6
+ import { URLExt } from '@jupyterlab/coreutils';
7
+ import { Signal } from '@lumino/signaling';
8
+ // Import CollaborationStatus enum separately since it's exported
9
+ var CollaborationStatus;
10
+ (function (CollaborationStatus) {
11
+ CollaborationStatus["Disconnected"] = "disconnected";
12
+ CollaborationStatus["Connecting"] = "connecting";
13
+ CollaborationStatus["Connected"] = "connected";
14
+ CollaborationStatus["Error"] = "error";
15
+ })(CollaborationStatus || (CollaborationStatus = {}));
16
+ import { requestDatalayerCollaborationSessionId } from './DatalayerCollaboration';
17
+ import { coreStore } from '../state/substates/CoreState';
18
+ /**
19
+ * Datalayer collaboration provider
20
+ *
21
+ * This provider connects to Datalayer's collaboration service using WebSockets.
22
+ */
23
+ export class DatalayerCollaborationProvider {
24
+ type = 'datalayer';
25
+ _status = CollaborationStatus.Disconnected;
26
+ _provider = null;
27
+ _sharedModel = null;
28
+ _statusChanged = new Signal(this);
29
+ _errorOccurred = new Signal(this);
30
+ _syncStateChanged = new Signal(this);
31
+ _isDisposed = false;
32
+ _config;
33
+ _onSync = null;
34
+ _onConnectionClose = null;
35
+ constructor(config) {
36
+ this._config = config;
37
+ }
38
+ get status() {
39
+ return this._status;
40
+ }
41
+ get isConnected() {
42
+ return this._status === CollaborationStatus.Connected;
43
+ }
44
+ get isDisposed() {
45
+ return this._isDisposed;
46
+ }
47
+ get events() {
48
+ return {
49
+ statusChanged: this._statusChanged,
50
+ errorOccurred: this._errorOccurred,
51
+ syncStateChanged: this._syncStateChanged,
52
+ };
53
+ }
54
+ setStatus(status) {
55
+ if (this._status !== status) {
56
+ this._status = status;
57
+ this._statusChanged.emit(status);
58
+ }
59
+ }
60
+ async connect(sharedModel, documentId, options) {
61
+ if (this.isConnected) {
62
+ console.warn('Already connected to Datalayer collaboration service');
63
+ return;
64
+ }
65
+ this.setStatus(CollaborationStatus.Connecting);
66
+ try {
67
+ // Get configuration from store or use provided config
68
+ const { configuration } = coreStore.getState();
69
+ const runUrl = this._config.runUrl ?? configuration?.runUrl;
70
+ const token = this._config.token ?? configuration?.token;
71
+ if (!runUrl) {
72
+ throw new Error('Datalayer runUrl is not configured');
73
+ }
74
+ if (!token) {
75
+ throw new Error('Datalayer token is not configured');
76
+ }
77
+ const { ydoc, awareness } = sharedModel;
78
+ // Build WebSocket URL
79
+ const documentURL = URLExt.join(runUrl, '/api/spacer/v1/documents');
80
+ const wsUrl = documentURL.replace(/^http/, 'ws');
81
+ // Request collaboration session from Datalayer
82
+ const sessionId = await requestDatalayerCollaborationSessionId({
83
+ url: URLExt.join(documentURL, documentId),
84
+ token,
85
+ });
86
+ // Create WebSocket provider
87
+ this._provider = new WebsocketProvider(wsUrl, documentId, ydoc, {
88
+ disableBc: true,
89
+ params: {
90
+ sessionId,
91
+ token,
92
+ },
93
+ awareness,
94
+ ...options,
95
+ });
96
+ this._sharedModel = sharedModel;
97
+ // Set up event handlers
98
+ this._onSync = (isSynced) => {
99
+ this.handleSync(isSynced);
100
+ };
101
+ this._onConnectionClose = (event) => {
102
+ if (event) {
103
+ this.handleConnectionClose(event);
104
+ }
105
+ };
106
+ this._provider.on('sync', this._onSync);
107
+ this._provider.on('connection-close', this._onConnectionClose);
108
+ console.log('Connected to Datalayer collaboration service');
109
+ }
110
+ catch (error) {
111
+ this.setStatus(CollaborationStatus.Error);
112
+ this._errorOccurred.emit(error);
113
+ throw error;
114
+ }
115
+ }
116
+ disconnect() {
117
+ if (this._provider) {
118
+ if (this._onSync) {
119
+ this._provider.off('sync', this._onSync);
120
+ }
121
+ if (this._onConnectionClose) {
122
+ this._provider.off('connection-close', this._onConnectionClose);
123
+ }
124
+ this._provider.disconnect();
125
+ this._provider = null;
126
+ }
127
+ this._sharedModel = null;
128
+ this.setStatus(CollaborationStatus.Disconnected);
129
+ }
130
+ getProvider() {
131
+ return this._provider;
132
+ }
133
+ getSharedModel() {
134
+ return this._sharedModel;
135
+ }
136
+ handleConnectionClose(event) {
137
+ console.warn('Collaboration connection closed:', event);
138
+ this.setStatus(CollaborationStatus.Disconnected);
139
+ // Handle session expiration (code 4002)
140
+ if (event.code === 4002) {
141
+ console.warn('Datalayer collaboration session expired');
142
+ // Attempt to reconnect could be implemented here
143
+ }
144
+ }
145
+ handleSync(isSynced) {
146
+ this._syncStateChanged.emit(isSynced);
147
+ if (isSynced) {
148
+ this.setStatus(CollaborationStatus.Connected);
149
+ }
150
+ }
151
+ dispose() {
152
+ if (this._isDisposed) {
153
+ return;
154
+ }
155
+ this.disconnect();
156
+ // Signals don't need explicit disposal in Lumino
157
+ // They are cleaned up when the object is garbage collected
158
+ this._isDisposed = true;
159
+ }
160
+ }
161
+ // Export the provider for direct instantiation
162
+ export default DatalayerCollaborationProvider;
@@ -0,0 +1,2 @@
1
+ export * from './DatalayerCollaboration';
2
+ export * from './DatalayerCollaborationProvider';
@@ -0,0 +1,6 @@
1
+ /*
2
+ * Copyright (c) 2023-2025 Datalayer, Inc.
3
+ * Distributed under the terms of the Modified BSD License.
4
+ */
5
+ export * from './DatalayerCollaboration';
6
+ export * from './DatalayerCollaborationProvider';
@@ -1,4 +1,4 @@
1
- type VariantType = "marble" | "beam" | "pixel" | "sunset" | "ring" | "bauhaus" | undefined;
1
+ type VariantType = 'marble' | 'beam' | 'pixel' | 'sunset' | 'ring' | 'bauhaus' | undefined;
2
2
  type IBoringAvatarProps = {
3
3
  displayName: string;
4
4
  variant: VariantType;
@@ -6,7 +6,6 @@ type IBoringAvatarProps = {
6
6
  square: boolean;
7
7
  style: object;
8
8
  };
9
- export declare const getRandomBoringAvatarVariant: () => VariantType;
10
9
  export declare const BoringAvatar: {
11
10
  (props: IBoringAvatarProps): import("react/jsx-runtime").JSX.Element;
12
11
  defaultProps: {
@@ -14,7 +13,7 @@ export declare const BoringAvatar: {
14
13
  variant: VariantType;
15
14
  size: number;
16
15
  square: boolean;
17
- style: {};
16
+ style: undefined;
18
17
  };
19
18
  };
20
19
  export default BoringAvatar;
@@ -3,19 +3,24 @@ import { jsx as _jsx } from "react/jsx-runtime";
3
3
  * Copyright (c) 2023-2025 Datalayer, Inc.
4
4
  * Distributed under the terms of the Modified BSD License.
5
5
  */
6
- /*
7
- * Copyright (c) 2021-2024 Datalayer, Inc.
8
- *
9
- * Datalayer License
10
- */
11
6
  import BoringAvatars from 'boring-avatars';
12
- // export const getRandomBoringAvatarVariant = () => variants[Math.floor(Math.random() * variants.length)] as VariantType;
13
- export const getRandomBoringAvatarVariant = () => "bauhaus";
7
+ /*
8
+ const variants = [
9
+ "bauhaus",
10
+ "beam",
11
+ "marble",
12
+ "pixel",
13
+ "ring",
14
+ "sunset",
15
+ ];
16
+ export const getRandomBoringAvatarVariant = () => variants[Math.floor(Math.random() * variants.length)] as VariantType;
17
+ */
18
+ const getRandomBoringAvatarVariant = () => 'bauhaus';
14
19
  const RANDOM_BORING_AVATOR_VARIANT = getRandomBoringAvatarVariant();
15
20
  export const BoringAvatar = (props) => {
16
21
  const { displayName, size, square, style } = props;
17
22
  const variant = props.variant ?? getRandomBoringAvatarVariant();
18
- return (_jsx("span", { style: { ...style }, children: _jsx(BoringAvatars, { size: size, name: displayName, variant: variant, square: square, colors: [
23
+ return (_jsx("span", { style: { ...(style || {}) }, children: _jsx(BoringAvatars, { size: size, name: displayName, variant: variant, square: square, colors: [
19
24
  '#000000',
20
25
  '#146A7C',
21
26
  '#16A085',
@@ -34,6 +39,6 @@ BoringAvatar.defaultProps = {
34
39
  variant: RANDOM_BORING_AVATOR_VARIANT,
35
40
  size: 40,
36
41
  square: false,
37
- style: {},
42
+ style: undefined,
38
43
  };
39
44
  export default BoringAvatar;
@@ -0,0 +1,27 @@
1
+ import type { StoryObj } from '@storybook/react-vite';
2
+ declare const meta: {
3
+ title: string;
4
+ component: {
5
+ (props: {
6
+ displayName: string;
7
+ variant: "marble" | "beam" | "pixel" | "sunset" | "ring" | "bauhaus" | undefined;
8
+ size: number;
9
+ square: boolean;
10
+ style: object;
11
+ }): import("react/jsx-runtime").JSX.Element;
12
+ defaultProps: {
13
+ displayName: string;
14
+ variant: "marble" | "beam" | "pixel" | "sunset" | "ring" | "bauhaus" | undefined;
15
+ size: number;
16
+ square: boolean;
17
+ style: undefined;
18
+ };
19
+ };
20
+ tags: string[];
21
+ parameters: {
22
+ layout: string;
23
+ };
24
+ };
25
+ export default meta;
26
+ type Story = StoryObj<typeof meta>;
27
+ export declare const SimpleAvatar: Story;
@@ -0,0 +1,23 @@
1
+ /*
2
+ * Copyright (c) 2023-2025 Datalayer, Inc.
3
+ * Distributed under the terms of the Modified BSD License.
4
+ */
5
+ import { BoringAvatar } from './BoringAvatar';
6
+ const meta = {
7
+ title: 'Datalayer/BoringAvatar',
8
+ component: BoringAvatar,
9
+ tags: ['autodocs'],
10
+ parameters: {
11
+ layout: 'fullscreen',
12
+ },
13
+ };
14
+ export default meta;
15
+ export const SimpleAvatar = {
16
+ args: {
17
+ displayName: 'Jane Doe',
18
+ variant: 'bauhaus',
19
+ size: 40,
20
+ square: false,
21
+ style: {},
22
+ },
23
+ };
@@ -3,13 +3,8 @@ import { jsx as _jsx } from "react/jsx-runtime";
3
3
  * Copyright (c) 2023-2025 Datalayer, Inc.
4
4
  * Distributed under the terms of the Modified BSD License.
5
5
  */
6
- /*
7
- * Copyright (c) 2021-2024 Datalayer, Inc.
8
- *
9
- * Datalayer License
10
- */
11
6
  import { Avatar, Link } from '@primer/react';
12
- import { Box } from "@datalayer/primer-addons";
7
+ import { Box } from '@datalayer/primer-addons';
13
8
  import { AvatarSkeleton } from '../../components/display';
14
9
  import { getAvatarURL } from '../../utils';
15
10
  const Profile = (props) => {
@@ -22,14 +17,7 @@ const Profile = (props) => {
22
17
  };
23
18
  export const UserProfileAvatar = (props) => {
24
19
  const { onClick, user, size } = props;
25
- return (user ?
26
- onClick
27
- ?
28
- _jsx(Link, { href: "javascript: return false;", onClick: onClick, children: _jsx(Profile, { ...props }) })
29
- :
30
- _jsx(Profile, { ...props })
31
- :
32
- _jsx(AvatarSkeleton, { size: size }));
20
+ return user ? (onClick ? (_jsx(Link, { href: "javascript: return false;", onClick: onClick, children: _jsx(Profile, { ...props }) })) : (_jsx(Profile, { ...props }))) : (_jsx(AvatarSkeleton, { size: size }));
33
21
  };
34
22
  UserProfileAvatar.defaultProps = {
35
23
  size: 100,
@@ -2,10 +2,5 @@
2
2
  * Copyright (c) 2023-2025 Datalayer, Inc.
3
3
  * Distributed under the terms of the Modified BSD License.
4
4
  */
5
- /*
6
- * Copyright (c) 2021-2024 Datalayer, Inc.
7
- *
8
- * Datalayer License
9
- */
10
5
  export * from './BoringAvatar';
11
6
  export * from './UserProfileAvatar';
@@ -3,16 +3,11 @@ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-run
3
3
  * Copyright (c) 2023-2025 Datalayer, Inc.
4
4
  * Distributed under the terms of the Modified BSD License.
5
5
  */
6
- /*
7
- * Copyright (c) 2021-2024 Datalayer, Inc.
8
- *
9
- * Datalayer License
10
- */
11
- import { Link } from "@primer/react";
12
- import { Banner } from "@primer/react/experimental";
13
- import { useNavigate } from "../../hooks";
6
+ import { Link } from '@primer/react';
7
+ import { Banner } from '@primer/react/experimental';
8
+ import { useNavigate } from '../../hooks';
14
9
  export const NoAutomationBanner = () => {
15
10
  const navigate = useNavigate();
16
- return (_jsx(_Fragment, { children: _jsx(Banner, { title: "Warning", description: _jsxs(_Fragment, { children: ["We don't have bandwidth to automate this feature. ", _jsx(Link, { href: "", onClick: e => navigate('/contact', e), children: "Please reach out" }), " to prioritize this."] }), primaryAction: _jsx(Banner.PrimaryAction, { onClick: e => navigate('/contact', e), children: "Reach out" }), variant: "warning" }) }));
11
+ return (_jsx(_Fragment, { children: _jsx(Banner, { title: "Warning", description: _jsxs(_Fragment, { children: ["We don't have bandwidth to automate this feature.", ' ', _jsx(Link, { href: "", onClick: e => navigate('/contact', e), children: "Please reach out" }), ' ', "to prioritize this."] }), primaryAction: _jsx(Banner.PrimaryAction, { onClick: e => navigate('/contact', e), children: "Reach out" }), variant: "warning" }) }));
17
12
  };
18
13
  export default NoAutomationBanner;
@@ -2,9 +2,4 @@
2
2
  * Copyright (c) 2023-2025 Datalayer, Inc.
3
3
  * Distributed under the terms of the Modified BSD License.
4
4
  */
5
- /*
6
- * Copyright (c) 2021-2024 Datalayer, Inc.
7
- *
8
- * Datalayer License
9
- */
10
5
  export * from './NoAutomationBanner';
@@ -1,6 +1,6 @@
1
1
  import { VariantType } from './VariantType';
2
2
  type IDownloadCSVButtonProps = {
3
- data?: {};
3
+ data?: object;
4
4
  fileName: string;
5
5
  variant: VariantType;
6
6
  };
@@ -3,11 +3,6 @@ import { jsx as _jsx } from "react/jsx-runtime";
3
3
  * Copyright (c) 2023-2025 Datalayer, Inc.
4
4
  * Distributed under the terms of the Modified BSD License.
5
5
  */
6
- /*
7
- * Copyright (c) 2021-2024 Datalayer, Inc.
8
- *
9
- * Datalayer License
10
- */
11
6
  import { Button } from '@primer/react';
12
7
  import { DownloadIcon } from '@primer/octicons-react';
13
8
  import { downloadCSV } from '../../utils';
@@ -16,6 +11,6 @@ export const DownloadCSVButton = (props) => {
16
11
  return (_jsx(Button, { variant: variant, leadingVisual: DownloadIcon, onClick: e => downloadCSV(data, fileName), children: "Download" }));
17
12
  };
18
13
  DownloadCSVButton.defaultProps = {
19
- variant: "default",
14
+ variant: 'default',
20
15
  };
21
16
  export default DownloadCSVButton;
@@ -1,6 +1,6 @@
1
1
  import { VariantType } from './VariantType';
2
2
  type IDownloadJsonButtonProps = {
3
- data?: {};
3
+ data?: object;
4
4
  fileName: string;
5
5
  extension: string;
6
6
  variant: VariantType;
@@ -3,11 +3,6 @@ import { jsx as _jsx } from "react/jsx-runtime";
3
3
  * Copyright (c) 2023-2025 Datalayer, Inc.
4
4
  * Distributed under the terms of the Modified BSD License.
5
5
  */
6
- /*
7
- * Copyright (c) 2021-2024 Datalayer, Inc.
8
- *
9
- * Datalayer License
10
- */
11
6
  import { Button } from '@primer/react';
12
7
  import { DownloadIcon } from '@primer/octicons-react';
13
8
  import { downloadJson } from '../../utils';
@@ -3,11 +3,6 @@ import { jsx as _jsx } from "react/jsx-runtime";
3
3
  * Copyright (c) 2023-2025 Datalayer, Inc.
4
4
  * Distributed under the terms of the Modified BSD License.
5
5
  */
6
- /*
7
- * Copyright (c) 2021-2024 Datalayer, Inc.
8
- *
9
- * Datalayer License
10
- */
11
6
  import { useCallback, useState } from 'react';
12
7
  import { IconButton, Spinner } from '@primer/react';
13
8
  /**
@@ -3,11 +3,6 @@ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-run
3
3
  * Copyright (c) 2023-2025 Datalayer, Inc.
4
4
  * Distributed under the terms of the Modified BSD License.
5
5
  */
6
- /*
7
- * Copyright (c) 2021-2024 Datalayer, Inc.
8
- *
9
- * Datalayer License
10
- */
11
6
  import { useCallback, useMemo, useRef } from 'react';
12
7
  import { Button, IconButton } from '@primer/react';
13
8
  import { UploadIcon } from '@primer/octicons-react';
@@ -43,6 +38,6 @@ export function UploadButton(props) {
43
38
  return _jsx(UploadBaseButton, { buttonFactory: factory, ...others });
44
39
  }
45
40
  UploadButton.defaultProps = {
46
- variant: "primary",
41
+ variant: 'primary',
47
42
  };
48
43
  export default UploadButton;
@@ -2,11 +2,6 @@
2
2
  * Copyright (c) 2023-2025 Datalayer, Inc.
3
3
  * Distributed under the terms of the Modified BSD License.
4
4
  */
5
- /*
6
- * Copyright (c) 2021-2024 Datalayer, Inc.
7
- *
8
- * Datalayer License
9
- */
10
5
  export * from './DownloadCSVButton';
11
6
  export * from './DownloadJsonButton';
12
7
  export * from './LongActionButton';
@@ -27,6 +27,6 @@ export interface IPrice {
27
27
  /**
28
28
  * Stripe checkout.
29
29
  */
30
- export declare function StripeCheckout({ checkoutPortal }: {
30
+ export declare function StripeCheckout({ checkoutPortal, }: {
31
31
  checkoutPortal: ICheckoutPortal | null;
32
32
  }): import("react/jsx-runtime").JSX.Element;
@@ -3,20 +3,15 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  * Copyright (c) 2023-2025 Datalayer, Inc.
4
4
  * Distributed under the terms of the Modified BSD License.
5
5
  */
6
- /*
7
- * Copyright (c) 2021-2024 Datalayer, Inc.
8
- *
9
- * Datalayer License
10
- */
11
6
  import { createElement, useCallback, useEffect, useState } from 'react';
12
7
  import { Button, Flash, FormControl, Spinner, Text } from '@primer/react';
13
- import { Box } from "@datalayer/primer-addons";
8
+ import { Box } from '@datalayer/primer-addons';
14
9
  import { useCache } from '../../hooks';
15
10
  import { useIAMStore } from '../../state';
16
11
  /**
17
12
  * Stripe checkout.
18
13
  */
19
- export function StripeCheckout({ checkoutPortal }) {
14
+ export function StripeCheckout({ checkoutPortal, }) {
20
15
  const { iamRunUrl } = useIAMStore();
21
16
  const { createCheckoutSession, refreshStripePrices } = useCache();
22
17
  const [stripe, setStripe] = useState(null);
@@ -75,7 +70,7 @@ export function StripeCheckout({ checkoutPortal }) {
75
70
  display: 'grid',
76
71
  gap: 'var(--stack-gap-normal)',
77
72
  gridTemplateColumns: Array(items.length).fill('1fr').join(' '),
78
- padding: 'var(--stack-padding-normal) 0'
73
+ padding: 'var(--stack-padding-normal) 0',
79
74
  }, children: items.map(item => (_jsx(Box, { role: "radio", "aria-labelledby": `checkout-price-${item.id}`, "aria-checked": product?.id === item.id, onClick: () => {
80
75
  setProduct(item);
81
76
  }, sx: {
@@ -86,12 +81,12 @@ export function StripeCheckout({ checkoutPortal }) {
86
81
  ? 'var(--borderColor-accent-emphasis)'
87
82
  : 'var(--borderColor-default)',
88
83
  padding: 'var(--stack-padding-condensed)',
89
- cursor: 'pointer'
84
+ cursor: 'pointer',
90
85
  }, children: _jsxs(FormControl, { sx: {
91
- alignItems: 'center'
86
+ alignItems: 'center',
92
87
  }, children: [_jsx(FormControl.Label, { id: `checkout-price-${item.id}`, sx: { alignSelf: 'center' }, children: item.name }), _jsx(Text, { as: "p", children: new Intl.NumberFormat(undefined, {
93
88
  style: 'currency',
94
- currency: item.currency
89
+ currency: item.currency,
95
90
  }).format(item.amount / 100) }), _jsxs(Text, { as: "p", children: [item.credits, " credits"] })] }, item.id) }))) }), _jsx(Button, { variant: "primary", onClick: () => {
96
91
  setCheckout(true);
97
92
  }, disabled: product === null, sx: { float: 'right' }, children: "Checkout" })] })) : (_jsx(Box, { children: _jsx(Flash, { variant: "danger", children: "Unable to fetch the available products. Please try again later." }) }));
@@ -2,9 +2,4 @@
2
2
  * Copyright (c) 2023-2025 Datalayer, Inc.
3
3
  * Distributed under the terms of the Modified BSD License.
4
4
  */
5
- /*
6
- * Copyright (c) 2021-2024 Datalayer, Inc.
7
- *
8
- * Datalayer License
9
- */
10
5
  export * from './StripeCheckout';
@@ -3,15 +3,10 @@ import { jsx as _jsx } from "react/jsx-runtime";
3
3
  * Copyright (c) 2023-2025 Datalayer, Inc.
4
4
  * Distributed under the terms of the Modified BSD License.
5
5
  */
6
- /*
7
- * Copyright (c) 2021-2024 Datalayer, Inc.
8
- *
9
- * Datalayer License
10
- */
11
6
  import { useWindowSize } from 'usehooks-ts';
12
7
  import Confetti from 'react-confetti';
13
8
  export const ConfettiSuccess = () => {
14
9
  const { width, height } = useWindowSize();
15
- return (_jsx(Confetti, { width: width, height: height }));
10
+ return _jsx(Confetti, { width: width, height: height });
16
11
  };
17
12
  export default ConfettiSuccess;
@@ -2,9 +2,4 @@
2
2
  * Copyright (c) 2023-2025 Datalayer, Inc.
3
3
  * Distributed under the terms of the Modified BSD License.
4
4
  */
5
- /*
6
- * Copyright (c) 2021-2024 Datalayer, Inc.
7
- *
8
- * Datalayer License
9
- */
10
5
  export * from './ConfettiSuccess';
@@ -3,16 +3,11 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
3
3
  * Copyright (c) 2023-2025 Datalayer, Inc.
4
4
  * Distributed under the terms of the Modified BSD License.
5
5
  */
6
- /*
7
- * Copyright (c) 2021-2024 Datalayer, Inc.
8
- *
9
- * Datalayer License
10
- */
11
- import { useState, useEffect, useCallback } from "react";
12
- import { Select } from "@primer/react";
13
- import { useCache, useUser } from "./../../hooks";
14
- import { useLayoutStore } from "../../state";
15
- const NO_ORGANIZATION_SELECTED_VALUE = "NO_ORGANIZATION_SELECTED_VALUE";
6
+ import { useState, useEffect, useCallback } from 'react';
7
+ import { Select } from '@primer/react';
8
+ import { useCache, useUser } from './../../hooks';
9
+ import { useLayoutStore } from '../../state';
10
+ const NO_ORGANIZATION_SELECTED_VALUE = 'NO_ORGANIZATION_SELECTED_VALUE';
16
11
  export const OrganizationSelect = () => {
17
12
  const user = useUser();
18
13
  const { organization, updateLayoutOrganization, updateLayoutSpace } = useLayoutStore();
@@ -3,20 +3,15 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
3
3
  * Copyright (c) 2023-2025 Datalayer, Inc.
4
4
  * Distributed under the terms of the Modified BSD License.
5
5
  */
6
- /*
7
- * Copyright (c) 2021-2024 Datalayer, Inc.
8
- *
9
- * Datalayer License
10
- */
11
- import { useState, useEffect, useCallback } from "react";
12
- import { FormControl, Select } from "@primer/react";
13
- import { Box } from "@datalayer/primer-addons";
14
- import { useCache, useUser } from "./../../hooks";
15
- import { useLayoutStore } from "../../state";
6
+ import { useState, useEffect, useCallback } from 'react';
7
+ import { FormControl, Select } from '@primer/react';
8
+ import { Box } from '@datalayer/primer-addons';
9
+ import { useCache, useUser } from './../../hooks';
10
+ import { useLayoutStore } from '../../state';
16
11
  export const SpaceSelect = () => {
17
12
  const user = useUser();
18
13
  const { organization, space, updateLayoutSpace } = useLayoutStore();
19
- const { refreshUserSpaces, getUserSpaces, refreshOrganizationSpaces, getOrganizationSpaces } = useCache();
14
+ const { refreshUserSpaces, getUserSpaces, refreshOrganizationSpaces, getOrganizationSpaces, } = useCache();
20
15
  const [spaces, setSpaces] = useState([]);
21
16
  const [_, setSelection] = useState(space);
22
17
  useEffect(() => {
@@ -37,7 +32,7 @@ export const SpaceSelect = () => {
37
32
  }, [user, organization]);
38
33
  const onSelectionChange = useCallback((e) => {
39
34
  const selectedSpace = e.target.value;
40
- const org = (selectedSpace === undefined)
35
+ const org = selectedSpace === undefined
41
36
  ? undefined
42
37
  : spaces[parseInt(selectedSpace, 10)];
43
38
  setSelection(org);
@@ -2,10 +2,5 @@
2
2
  * Copyright (c) 2023-2025 Datalayer, Inc.
3
3
  * Distributed under the terms of the Modified BSD License.
4
4
  */
5
- /*
6
- * Copyright (c) 2021-2024 Datalayer, Inc.
7
- *
8
- * Datalayer License
9
- */
10
5
  export * from './OrganizationSelect';
11
6
  export * from './SpaceSelect';
@@ -3,12 +3,7 @@ import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
3
3
  * Copyright (c) 2023-2025 Datalayer, Inc.
4
4
  * Distributed under the terms of the Modified BSD License.
5
5
  */
6
- /*
7
- * Copyright (c) 2021-2024 Datalayer, Inc.
8
- *
9
- * Datalayer License
10
- */
11
- import { SkeletonAvatar } from "@primer/react/experimental";
6
+ import { SkeletonAvatar } from '@primer/react/experimental';
12
7
  export const AvatarSkeleton = (props) => {
13
8
  const { size } = props;
14
9
  return (_jsx(_Fragment, { children: _jsx(SkeletonAvatar, { size: size }) }));