@datalayer/core 1.0.13 → 1.0.15

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 (275) hide show
  1. package/lib/App.js +2 -2
  2. package/lib/api/DatalayerApi.js +6 -1
  3. package/lib/api/constants.d.ts +1 -1
  4. package/lib/api/constants.js +1 -1
  5. package/lib/api/iam/authentication.js +3 -3
  6. package/lib/api/iam/datasources.js +3 -3
  7. package/lib/api/iam/healthz.js +2 -2
  8. package/lib/api/iam/index.js +12 -12
  9. package/lib/api/iam/oauth2.js +2 -2
  10. package/lib/api/iam/profile.js +3 -3
  11. package/lib/api/iam/secrets.js +3 -3
  12. package/lib/api/iam/usage.js +2 -2
  13. package/lib/api/index.js +8 -8
  14. package/lib/api/otel/index.js +5 -5
  15. package/lib/api/otel/logs.js +3 -3
  16. package/lib/api/otel/metrics.js +3 -3
  17. package/lib/api/otel/query.js +3 -3
  18. package/lib/api/otel/services.js +3 -3
  19. package/lib/api/otel/traces.js +3 -3
  20. package/lib/api/runtimes/checkpoints.js +3 -3
  21. package/lib/api/runtimes/environments.js +3 -3
  22. package/lib/api/runtimes/healthz.js +2 -2
  23. package/lib/api/runtimes/index.js +5 -5
  24. package/lib/api/runtimes/runtimes.js +3 -3
  25. package/lib/api/runtimes/snapshots.js +3 -3
  26. package/lib/api/spacer/documents.js +2 -2
  27. package/lib/api/spacer/healthz.js +2 -2
  28. package/lib/api/spacer/index.js +7 -7
  29. package/lib/api/spacer/items.js +2 -2
  30. package/lib/api/spacer/lexicals.d.ts +8 -0
  31. package/lib/api/spacer/lexicals.js +16 -2
  32. package/lib/api/spacer/notebooks.d.ts +8 -0
  33. package/lib/api/spacer/notebooks.js +16 -2
  34. package/lib/api/spacer/spaces.d.ts +76 -1
  35. package/lib/api/spacer/spaces.js +143 -3
  36. package/lib/api/spacer/users.js +3 -3
  37. package/lib/client/auth/AuthenticationManager.js +3 -3
  38. package/lib/client/auth/index.js +4 -4
  39. package/lib/client/auth/storage.d.ts +3 -1
  40. package/lib/client/auth/storage.js +35 -14
  41. package/lib/client/auth/strategies.js +3 -3
  42. package/lib/client/base.js +2 -2
  43. package/lib/client/index.d.ts +22 -2
  44. package/lib/client/index.js +21 -20
  45. package/lib/client/mixins/IAMMixin.js +10 -10
  46. package/lib/client/mixins/RuntimesMixin.js +7 -7
  47. package/lib/client/mixins/SpacerMixin.d.ts +99 -0
  48. package/lib/client/mixins/SpacerMixin.js +265 -11
  49. package/lib/client/utils/slugify.d.ts +8 -0
  50. package/lib/client/utils/slugify.js +18 -0
  51. package/lib/client/utils/spacerUtils.js +3 -3
  52. package/lib/collaboration/DatalayerCollaborationProvider.js +1 -1
  53. package/lib/collaboration/index.js +2 -2
  54. package/lib/components/auth/Login.js +6 -6
  55. package/lib/components/auth/Login.stories.js +2 -2
  56. package/lib/components/auth/LoginToken.js +2 -2
  57. package/lib/components/auth/index.js +3 -3
  58. package/lib/components/avatars/BoringAvatar.stories.js +1 -1
  59. package/lib/components/avatars/UserProfileAvatar.js +2 -2
  60. package/lib/components/avatars/index.js +2 -2
  61. package/lib/components/banners/NoAutomationBanner.js +1 -1
  62. package/lib/components/banners/index.js +1 -1
  63. package/lib/components/buttons/DownloadCSVButton.js +1 -1
  64. package/lib/components/buttons/DownloadJsonButton.js +1 -1
  65. package/lib/components/buttons/index.js +5 -5
  66. package/lib/components/checkout/StripeCheckout.js +1 -1
  67. package/lib/components/checkout/index.js +1 -1
  68. package/lib/components/confetti/index.js +1 -1
  69. package/lib/components/context/OrganizationSelect.js +2 -2
  70. package/lib/components/context/SpaceSelect.js +2 -2
  71. package/lib/components/context/index.js +2 -2
  72. package/lib/components/display/DatalayerBox.js +1 -1
  73. package/lib/components/display/LiveRelativeTime.js +1 -1
  74. package/lib/components/display/NavLink.js +1 -1
  75. package/lib/components/display/index.js +14 -14
  76. package/lib/components/echarts/index.js +1 -1
  77. package/lib/components/flashes/FlashDisclaimer.js +2 -2
  78. package/lib/components/flashes/FlashGuest.js +4 -4
  79. package/lib/components/flashes/FlashSurveys.js +4 -4
  80. package/lib/components/flashes/FlashUnauthorized.js +1 -1
  81. package/lib/components/flashes/index.js +6 -6
  82. package/lib/components/flashes/surveys/index.js +2 -2
  83. package/lib/components/iam/ExternalTokenSilentLogin.js +3 -3
  84. package/lib/components/iam/index.js +1 -1
  85. package/lib/components/icons/index.js +1 -1
  86. package/lib/components/index.js +2 -2
  87. package/lib/components/labels/index.js +1 -1
  88. package/lib/components/landings/index.js +1 -1
  89. package/lib/components/navbar/NavigationVisbilityObserver.js +4 -4
  90. package/lib/components/navbar/SubdomainNavBar.js +5 -5
  91. package/lib/components/navbar/index.js +2 -2
  92. package/lib/components/nbgrader/index.js +1 -1
  93. package/lib/components/notebooks/index.js +2 -2
  94. package/lib/components/progress/ConsumptionBar.js +1 -1
  95. package/lib/components/progress/CreditsIndicator.js +2 -2
  96. package/lib/components/progress/index.js +6 -6
  97. package/lib/components/runtimes/RuntimeCellVariablesDialog.js +2 -2
  98. package/lib/components/runtimes/RuntimeLauncherDialog.js +9 -9
  99. package/lib/components/runtimes/RuntimePickerBase.js +3 -3
  100. package/lib/components/runtimes/RuntimePickerCell.js +8 -8
  101. package/lib/components/runtimes/RuntimePickerNotebook.js +6 -6
  102. package/lib/components/runtimes/RuntimeSimplePicker.js +3 -3
  103. package/lib/components/runtimes/index.js +11 -11
  104. package/lib/components/screencapture/ScreencaptureButton.js +3 -3
  105. package/lib/components/screencapture/index.js +2 -2
  106. package/lib/components/snapshots/RuntimeSnapshotMenu.js +4 -4
  107. package/lib/components/snapshots/index.js +1 -1
  108. package/lib/components/snippets/SnippetDialog.js +1 -1
  109. package/lib/components/snippets/index.js +1 -1
  110. package/lib/components/sparklines/Sparklines.js +5 -1
  111. package/lib/components/sparklines/dataProcessing.d.ts +2 -4
  112. package/lib/components/sparklines/dataProcessing.js +1 -1
  113. package/lib/components/sparklines/index.d.ts +1 -0
  114. package/lib/components/sparklines/index.js +7 -3
  115. package/lib/components/sparklines/types.js +1 -1
  116. package/lib/components/storage/ContentsBrowser.js +3 -3
  117. package/lib/components/storage/index.js +2 -2
  118. package/lib/components/students/index.js +1 -1
  119. package/lib/components/subnav/SubNav.js +2 -2
  120. package/lib/components/subnav/index.js +1 -1
  121. package/lib/components/tables/index.js +1 -1
  122. package/lib/components/text-reveal/TextRevealAnimation.js +1 -1
  123. package/lib/components/text-reveal/index.js +1 -1
  124. package/lib/components/tokens/index.js +1 -1
  125. package/lib/components/toolbars/AssignmentEditorToolbar.js +1 -1
  126. package/lib/components/toolbars/DocumentEditorToolbar.js +1 -1
  127. package/lib/components/toolbars/index.js +3 -3
  128. package/lib/components/users/PeerIndicator.js +1 -1
  129. package/lib/components/users/index.js +1 -1
  130. package/lib/config/Configuration.d.ts +1 -1
  131. package/lib/config/Configuration.js +2 -2
  132. package/lib/config/index.js +2 -2
  133. package/lib/config/integrations/index.js +1 -1
  134. package/lib/hooks/assets/index.js +1 -1
  135. package/lib/hooks/index.js +33 -33
  136. package/lib/hooks/layouts/LayoutBackdrop.js +2 -2
  137. package/lib/hooks/layouts/LayoutScreencapture.js +3 -3
  138. package/lib/hooks/layouts/index.js +2 -2
  139. package/lib/hooks/useAuthorization.js +3 -3
  140. package/lib/hooks/useBackdrop.js +2 -2
  141. package/lib/hooks/useCache.js +9 -9
  142. package/lib/hooks/useCellOutputshot.js +2 -2
  143. package/lib/hooks/useDatalayer.js +6 -6
  144. package/lib/hooks/useIAM.js +4 -4
  145. package/lib/hooks/useLocation.js +2 -2
  146. package/lib/hooks/useLocationHandles.js +3 -3
  147. package/lib/hooks/useNavigate.js +4 -4
  148. package/lib/hooks/useParams.js +2 -2
  149. package/lib/hooks/useProjects.d.ts +2 -8
  150. package/lib/hooks/useProjects.js +2 -2
  151. package/lib/hooks/useRuntimes.js +1 -1
  152. package/lib/hooks/useScreencapture.js +1 -1
  153. package/lib/hooks/useToast.js +41 -5
  154. package/lib/hooks/useUpload.js +2 -2
  155. package/lib/hooks/useUser.js +1 -1
  156. package/lib/i18n/index.js +1 -1
  157. package/lib/index.d.ts +1 -1
  158. package/lib/index.js +17 -17
  159. package/lib/main.js +1 -1
  160. package/lib/mocks/components/FlashMock.js +1 -1
  161. package/lib/mocks/components/index.js +1 -1
  162. package/lib/mocks/hooks/index.js +1 -1
  163. package/lib/mocks/hooks/rests/index.js +1 -1
  164. package/lib/mocks/hooks/useDatalayerMock.js +5 -5
  165. package/lib/mocks/index.js +5 -5
  166. package/lib/mocks/models/CourseMock.js +3 -3
  167. package/lib/mocks/models/InviteMock.js +2 -2
  168. package/lib/mocks/models/OrganisationMock.js +1 -1
  169. package/lib/mocks/models/SchoolMock.js +1 -1
  170. package/lib/mocks/models/SpaceMock.js +2 -2
  171. package/lib/mocks/models/TeamMock.js +1 -1
  172. package/lib/mocks/models/UserMock.js +1 -1
  173. package/lib/mocks/models/index.js +9 -9
  174. package/lib/mocks/views/ChartMock.js +3 -3
  175. package/lib/mocks/views/DashboardMock.js +2 -2
  176. package/lib/mocks/views/TableMock.js +1 -1
  177. package/lib/mocks/views/index.js +7 -7
  178. package/lib/models/Contact.js +3 -3
  179. package/lib/models/CreditsDTO.js +1 -1
  180. package/lib/models/Datasource.js +1 -1
  181. package/lib/models/EnvironmentDTO.d.ts +1 -1
  182. package/lib/models/EnvironmentDTO.js +2 -2
  183. package/lib/models/HealthCheck.js +1 -1
  184. package/lib/models/IAMProviderUsers.js +1 -1
  185. package/lib/models/Invite.js +1 -1
  186. package/lib/models/ItemDTO.js +1 -1
  187. package/lib/models/LexicalDTO.js +4 -4
  188. package/lib/models/NotebookDTO.js +4 -4
  189. package/lib/models/Organization.js +2 -2
  190. package/lib/models/Page.js +2 -2
  191. package/lib/models/ProjectDTO.d.ts +89 -0
  192. package/lib/models/ProjectDTO.js +131 -0
  193. package/lib/models/RuntimeDTO.js +2 -2
  194. package/lib/models/RuntimeSnapshotDTO.js +2 -2
  195. package/lib/models/Secret.js +1 -1
  196. package/lib/models/Space.d.ts +1 -1
  197. package/lib/models/Space.js +3 -3
  198. package/lib/models/SpaceDTO.d.ts +61 -0
  199. package/lib/models/SpaceDTO.js +9 -9
  200. package/lib/models/Team.js +2 -2
  201. package/lib/models/User.js +5 -5
  202. package/lib/models/UserDTO.js +1 -1
  203. package/lib/models/index.js +75 -75
  204. package/lib/navigation/components.js +1 -1
  205. package/lib/navigation/index.js +4 -4
  206. package/lib/otel/client/OtelClient.js +1 -1
  207. package/lib/otel/client/index.js +1 -1
  208. package/lib/otel/hooks/index.js +1 -1
  209. package/lib/otel/index.js +15 -15
  210. package/lib/otel/types.d.ts +1 -1
  211. package/lib/otel/views/OtelLive.js +11 -11
  212. package/lib/otel/views/OtelLogsList.js +1 -1
  213. package/lib/otel/views/OtelMetricsList.d.ts +2 -5
  214. package/lib/otel/views/OtelMetricsList.js +2 -2
  215. package/lib/otel/views/OtelSpanDetail.js +2 -2
  216. package/lib/otel/views/OtelSpanTree.js +1 -1
  217. package/lib/otel/views/OtelSqlView.js +1 -1
  218. package/lib/otel/views/OtelSystemView.js +1 -1
  219. package/lib/otel/views/OtelTimeline.js +1 -1
  220. package/lib/otel/views/OtelTracesList.js +1 -1
  221. package/lib/otel/views/index.d.ts +1 -0
  222. package/lib/otel/views/index.js +12 -12
  223. package/lib/routes/index.js +1 -1
  224. package/lib/services/DatalayerServiceManager.d.ts +1 -1
  225. package/lib/services/DatalayerServiceManager.js +4 -4
  226. package/lib/services/index.js +3 -3
  227. package/lib/state/State.js +13 -13
  228. package/lib/state/index.js +3 -3
  229. package/lib/state/storage/IAMStorage.js +31 -6
  230. package/lib/state/storage/index.js +1 -1
  231. package/lib/state/substates/CoreState.js +2 -2
  232. package/lib/state/substates/IAMState.js +5 -5
  233. package/lib/state/substates/RuntimesState.js +3 -3
  234. package/lib/state/substates/SurveysState.js +4 -4
  235. package/lib/state/substates/TeamState.js +1 -1
  236. package/lib/state/substates/index.js +14 -14
  237. package/lib/stateful/index.js +2 -2
  238. package/lib/stateful/jupyter/exec/Snippets.js +1 -1
  239. package/lib/stateful/jupyter/exec/index.js +2 -2
  240. package/lib/stateful/jupyter/index.js +2 -2
  241. package/lib/stateful/runtimes/actions.js +4 -4
  242. package/lib/stateful/runtimes/index.js +5 -5
  243. package/lib/stateful/runtimes/snapshots.js +1 -1
  244. package/lib/utils/Date.d.ts +11 -0
  245. package/lib/utils/Date.js +30 -0
  246. package/lib/utils/cli/index.js +1 -1
  247. package/lib/utils/index.js +29 -29
  248. package/lib/views/datasources/DatasourceDetail.js +3 -3
  249. package/lib/views/datasources/DatasourceNew.js +2 -2
  250. package/lib/views/datasources/Datasources.js +1 -1
  251. package/lib/views/datasources/index.js +3 -3
  252. package/lib/views/iam/SignInSimple.js +1 -1
  253. package/lib/views/iam/index.js +1 -1
  254. package/lib/views/iam-tokens/IAMTokenEdit.js +3 -3
  255. package/lib/views/iam-tokens/IAMTokenNew.js +2 -2
  256. package/lib/views/iam-tokens/IAMTokens.js +1 -1
  257. package/lib/views/iam-tokens/Tokens.js +1 -1
  258. package/lib/views/iam-tokens/index.js +3 -3
  259. package/lib/views/index.js +3 -3
  260. package/lib/views/otel/DashboardView.js +1 -1
  261. package/lib/views/otel/LogsView.js +1 -1
  262. package/lib/views/otel/MetricsView.js +1 -1
  263. package/lib/views/otel/OtelHeader.js +1 -1
  264. package/lib/views/otel/SqlView.js +1 -1
  265. package/lib/views/otel/SystemView.js +1 -1
  266. package/lib/views/otel/TracesView.js +1 -1
  267. package/lib/views/otel/index.js +8 -8
  268. package/lib/views/otel/simpleAuthStore.js +1 -1
  269. package/lib/views/profile/UserBadge.js +1 -1
  270. package/lib/views/profile/index.js +1 -1
  271. package/lib/views/secrets/SecretEdit.js +3 -3
  272. package/lib/views/secrets/SecretNew.js +2 -2
  273. package/lib/views/secrets/Secrets.js +1 -1
  274. package/lib/views/secrets/index.js +3 -3
  275. package/package.json +1 -1
@@ -5,7 +5,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
5
5
  */
6
6
  import { useEffect, useState } from 'react';
7
7
  import { Avatar, AvatarStack } from '@primer/react';
8
- import { getAvatarURL, getRelativeTime } from '../../utils';
8
+ import { getAvatarURL, getRelativeTime } from '../../utils/index.js';
9
9
  const AVATAR_SIZE = 28;
10
10
  const SPACER_USER_AGENT = 'DatalayerSpacer';
11
11
  const AWARENESS_NOTIFICATION_TIMEOUT_MS = 30_000;
@@ -2,4 +2,4 @@
2
2
  * Copyright (c) 2023-2025 Datalayer, Inc.
3
3
  * Distributed under the terms of the Modified BSD License.
4
4
  */
5
- export * from './PeerIndicator';
5
+ export * from './PeerIndicator.js';
@@ -26,7 +26,7 @@ export type IDatalayerCoreConfig = {
26
26
  /**
27
27
  * CPU environment name.
28
28
  * Specifies which CPU-based environment to use for kernels.
29
- * @example "python-cpu-env"
29
+ * @example "ai-agents-env"
30
30
  */
31
31
  cpuEnvironment: string;
32
32
  /**
@@ -3,7 +3,7 @@
3
3
  * Distributed under the terms of the Modified BSD License.
4
4
  */
5
5
  import { Signal } from '@lumino/signaling';
6
- import { coreStore } from '../state';
6
+ import { coreStore } from '../state/index.js';
7
7
  export const FORCE_ACTIVATE_RUNTIMES_PLUGINS = false;
8
8
  export class DatalayerConfiguration {
9
9
  _configuration = coreStore.getState().configuration;
@@ -28,7 +28,7 @@ export class DatalayerConfiguration {
28
28
  export const DEFAULT_DATALAYER_CONFIG = {
29
29
  runUrl: 'https://oss.datalayer.run',
30
30
  credits: 100,
31
- cpuEnvironment: 'python-cpu-env',
31
+ cpuEnvironment: 'ai-agents-env',
32
32
  gpuEnvironment: 'ai-env',
33
33
  };
34
34
  /**
@@ -2,5 +2,5 @@
2
2
  * Copyright (c) 2023-2025 Datalayer, Inc.
3
3
  * Distributed under the terms of the Modified BSD License.
4
4
  */
5
- export * from './Configuration';
6
- export * from './integrations';
5
+ export * from './Configuration.js';
6
+ export * from './integrations/index.js';
@@ -2,4 +2,4 @@
2
2
  * Copyright (c) 2023-2025 Datalayer, Inc.
3
3
  * Distributed under the terms of the Modified BSD License.
4
4
  */
5
- export * from './Loom';
5
+ export * from './Loom.js';
@@ -2,4 +2,4 @@
2
2
  * Copyright (c) 2023-2025 Datalayer, Inc.
3
3
  * Distributed under the terms of the Modified BSD License.
4
4
  */
5
- export * from './OutputshotPlaceholders';
5
+ export * from './OutputshotPlaceholders.js';
@@ -2,36 +2,36 @@
2
2
  * Copyright (c) 2023-2025 Datalayer, Inc.
3
3
  * Distributed under the terms of the Modified BSD License.
4
4
  */
5
- export * from './useAuthorization';
6
- export * from './useBackdrop';
7
- export * from './useBackdropJupyterLab';
8
- export * from './useCache';
9
- export * from './useContainsFocus';
10
- export * from './useDatalayer';
11
- // export * from "./useCellOutputshot"; // Do not export html2canvas
12
- export * from './useError';
13
- export * from './useExternalScript';
14
- export * from './useFocusTrap';
15
- export * from './useIAM';
16
- export * from './useId';
17
- export * from './useIsomorphicLayoutEffect';
18
- export * from './useJupyterLabTheme';
19
- export * from './useHighZIndexPortal';
20
- export * from './useKeyboardShortcuts';
21
- export * from './useKeyboardEscape';
22
- export * from './useLocation';
23
- export * from './useLocationHandles';
24
- export * from './useNavigate';
25
- export * from './useParams';
26
- export * from './useOnClickOutside';
27
- export * from './useRef';
28
- export * from './useRuntimes';
29
- export * from './useScreencapture';
30
- export * from './useToast';
31
- export * from './useUpload';
32
- export * from './useUser';
33
- export * from './useProjects';
34
- export * from './useProjectStore';
35
- export * from './useMobile';
36
- export * from './useVisibilityObserver';
37
- export * from './useWindowSize';
5
+ export * from './useAuthorization.js';
6
+ export * from './useBackdrop.js';
7
+ export * from './useBackdropJupyterLab.js';
8
+ export * from './useCache.js';
9
+ export * from './useContainsFocus.js';
10
+ export * from './useDatalayer.js';
11
+ // export * from "./useCellOutputshot.js"; // Do not export html2canvas
12
+ export * from './useError.js';
13
+ export * from './useExternalScript.js';
14
+ export * from './useFocusTrap.js';
15
+ export * from './useIAM.js';
16
+ export * from './useId.js';
17
+ export * from './useIsomorphicLayoutEffect.js';
18
+ export * from './useJupyterLabTheme.js';
19
+ export * from './useHighZIndexPortal.js';
20
+ export * from './useKeyboardShortcuts.js';
21
+ export * from './useKeyboardEscape.js';
22
+ export * from './useLocation.js';
23
+ export * from './useLocationHandles.js';
24
+ export * from './useNavigate.js';
25
+ export * from './useParams.js';
26
+ export * from './useOnClickOutside.js';
27
+ export * from './useRef.js';
28
+ export * from './useRuntimes.js';
29
+ export * from './useScreencapture.js';
30
+ export * from './useToast.js';
31
+ export * from './useUpload.js';
32
+ export * from './useUser.js';
33
+ export * from './useProjects.js';
34
+ export * from './useProjectStore.js';
35
+ export * from './useMobile.js';
36
+ export * from './useVisibilityObserver.js';
37
+ export * from './useWindowSize.js';
@@ -5,8 +5,8 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
5
5
  */
6
6
  import { useEffect } from 'react';
7
7
  import { Heading, Box, Spinner } from '@primer/react';
8
- import { useBackdrop } from '..';
9
- import { useLayoutStore } from '../../state';
8
+ import { useBackdrop } from '../index.js';
9
+ import { useLayoutStore } from '../../state/index.js';
10
10
  const BackdropContent = (props) => {
11
11
  const { backdropDisplay } = props;
12
12
  return (_jsx(Box, { style: { zIndex: 10999 }, children: backdropDisplay.message ? (_jsxs(Box, { display: "flex", style: { alignItems: 'center' }, children: [_jsx(Box, { mr: 3, children: _jsx(Spinner, { size: "large" }) }), _jsx(Box, { children: _jsx(Heading, { sx: { fontSize: 5, color: 'white' }, children: backdropDisplay.message }) })] })) : (_jsx(Spinner, { size: "large" })) }));
@@ -5,9 +5,9 @@ import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
5
5
  */
6
6
  import { useEffect } from 'react';
7
7
  import { Box } from '@primer/react';
8
- import { useScreencapture, useToast } from '..';
9
- import { lazyWithPreload, WithSuspense } from '../../utils';
10
- import { useLayoutStore } from '../../state';
8
+ import { useScreencapture, useToast } from '../index.js';
9
+ import { lazyWithPreload, WithSuspense } from '../../utils/index.js';
10
+ import { useLayoutStore } from '../../state/index.js';
11
11
  import '../../../style/screencapture/index.css';
12
12
  const Screencapture = WithSuspense(lazyWithPreload(() => import('../../components/screencapture/Screencapture')));
13
13
  const Capture = (props) => {
@@ -2,5 +2,5 @@
2
2
  * Copyright (c) 2023-2025 Datalayer, Inc.
3
3
  * Distributed under the terms of the Modified BSD License.
4
4
  */
5
- export * from './LayoutBackdrop';
6
- export * from './LayoutScreencapture';
5
+ export * from './LayoutBackdrop.js';
6
+ export * from './LayoutScreencapture.js';
@@ -2,9 +2,9 @@
2
2
  * Copyright (c) 2023-2025 Datalayer, Inc.
3
3
  * Distributed under the terms of the Modified BSD License.
4
4
  */
5
- import { useLocation } from './useLocation';
6
- import { PlatformRoles, OrganizationRoles, TeamRoles, } from '../models';
7
- import useNavigate from './useNavigate';
5
+ import { useLocation } from './useLocation.js';
6
+ import { PlatformRoles, OrganizationRoles, TeamRoles, } from '../models/index.js';
7
+ import useNavigate from './useNavigate.js';
8
8
  export const useAuthorization = () => {
9
9
  const navigate = useNavigate();
10
10
  const location = useLocation();
@@ -5,7 +5,7 @@ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-run
5
5
  */
6
6
  import { createContext, useState, useContext } from 'react';
7
7
  import PropTypes from 'prop-types';
8
- import { LayoutBackdrop } from './layouts';
8
+ import { LayoutBackdrop } from './layouts/index.js';
9
9
  export const BackdropContext = createContext({
10
10
  closeBackdrop: () => { },
11
11
  displayBackdrop: (nextBackdrop) => { },
@@ -25,7 +25,7 @@ Example
25
25
  -------
26
26
  import React from 'react'
27
27
  import { BackdropProvider } from 'use-backdrop';
28
- import ExampleComponent from './ExampleComponent'
28
+ import ExampleComponent from './ExampleComponent.js'
29
29
  const renderCustomBackdropSurface = (children) => (
30
30
  <div style={{
31
31
  // Style your own backdrop surface!
@@ -39,14 +39,14 @@
39
39
  * ```
40
40
  */
41
41
  import { useQuery, useMutation, useQueryClient, } from '@tanstack/react-query';
42
- import { BOOTSTRAP_USER_ONBOARDING, asContact, asDatasource, asInvite, asOrganization, asPage, asSecret, asSpace, asTeam, asToken, asUser, } from '../models';
43
- import { useCoreStore, useIAMStore } from '../state';
44
- import { asDisplayName, namesAsInitials, asArray } from '../utils';
45
- import { newUserMock } from './../mocks';
46
- import { useDatalayer } from './useDatalayer';
47
- import { useAuthorization } from './useAuthorization';
48
- import { useUploadForm } from './useUpload';
49
- import { OUTPUTSHOT_PLACEHOLDER_DEFAULT_SVG } from './assets';
42
+ import { BOOTSTRAP_USER_ONBOARDING, asContact, asDatasource, asInvite, asOrganization, asPage, asSecret, asSpace, asTeam, asToken, asUser, } from '../models/index.js';
43
+ import { useCoreStore, useIAMStore } from '../state/index.js';
44
+ import { asDisplayName, namesAsInitials, asArray } from '../utils/index.js';
45
+ import { newUserMock } from './../mocks/index.js';
46
+ import { useDatalayer } from './useDatalayer.js';
47
+ import { useAuthorization } from './useAuthorization.js';
48
+ import { useUploadForm } from './useUpload.js';
49
+ import { OUTPUTSHOT_PLACEHOLDER_DEFAULT_SVG } from './assets/index.js';
50
50
  // Kept for potential future use
51
51
  // Default query options for all queries
52
52
  const DEFAULT_QUERY_OPTIONS = {
@@ -3249,7 +3249,7 @@ export const useCache = ({ loginRoute = '/login' } = {}) => {
3249
3249
  };
3250
3250
  /**
3251
3251
  * Get default items (notebook UID & document UID) for a space / project.
3252
- * Calls GET /api/spacer/v1/spaces/{spaceId}/default-items
3252
+ * Calls `GET /api/spacer/v1/spaces/:spaceId/default-items`
3253
3253
  */
3254
3254
  const useSpaceDefaultItems = (spaceId) => {
3255
3255
  return useQuery({
@@ -3,8 +3,8 @@
3
3
  * Distributed under the terms of the Modified BSD License.
4
4
  */
5
5
  import { useState } from 'react';
6
- import { useCellStore } from '../state';
7
- import { takeHTMLNodeScreencapture } from '../utils/Screencapture';
6
+ import { useCellStore } from '../state/index.js';
7
+ import { takeHTMLNodeScreencapture } from '../utils/Screencapture.js';
8
8
  const useCellOutputshot = () => {
9
9
  const [outputshot, setOutputshot] = useState('');
10
10
  const [error, setError] = useState();
@@ -2,12 +2,12 @@
2
2
  * Copyright (c) 2023-2025 Datalayer, Inc.
3
3
  * Distributed under the terms of the Modified BSD License.
4
4
  */
5
- import { useLocation } from './useLocation';
6
- import { useNavigate } from './useNavigate';
7
- import { useToast } from './useToast';
8
- // import { useRuMnock } from './../mocks';
9
- import { useIAMStore } from '../state';
10
- import { requestDatalayerAPI } from '../api/DatalayerApi';
5
+ import { useLocation } from './useLocation.js';
6
+ import { useNavigate } from './useNavigate.js';
7
+ import { useToast } from './useToast.js';
8
+ // import { useRuMnock } from './../mocks/index.js';
9
+ import { useIAMStore } from '../state/index.js';
10
+ import { requestDatalayerAPI } from '../api/DatalayerApi.js';
11
11
  export function useDatalayer(props = {}) {
12
12
  const { loginRoute = '/login', notifyOnError = true } = props;
13
13
  const location = useLocation();
@@ -3,10 +3,10 @@
3
3
  * Distributed under the terms of the Modified BSD License.
4
4
  */
5
5
  import { useEffect, useState } from 'react';
6
- import { useCache } from './useCache';
7
- import { coreStore, useIAMStore, useLayoutStore, useOrganizationStore, useSpaceStore, } from '../state';
8
- import { asUser, ANONYMOUS_USER, ANONYMOUS_USER_TOKEN, } from '../models';
9
- import { requestDatalayerAPI, } from '../api/DatalayerApi';
6
+ import { useCache } from './useCache.js';
7
+ import { coreStore, useIAMStore, useLayoutStore, useOrganizationStore, useSpaceStore, } from '../state/index.js';
8
+ import { asUser, ANONYMOUS_USER, ANONYMOUS_USER_TOKEN, } from '../models/index.js';
9
+ import { requestDatalayerAPI, } from '../api/DatalayerApi.js';
10
10
  export const useIAM = (props = { user: undefined, token: undefined }) => {
11
11
  const { token } = props;
12
12
  const [iamState, setIAMState] = useState(props);
@@ -4,13 +4,13 @@
4
4
  */
5
5
  import { useEffect, useState } from 'react';
6
6
  // Import React Router hooks from our wrapper
7
- import { useLocationRR, useNavigateRR, } from '../navigation/adapters/react-router';
7
+ import { useLocationRR, useNavigateRR, } from '../navigation/adapters/react-router.js';
8
8
  // Import Next.js hooks from our wrapper
9
9
  // Currently not used but kept for future Next.js support
10
10
  // import {
11
11
  // usePathnameNext,
12
12
  // useSearchParamsNext,
13
- // } from '../navigation/adapters/nextjs';
13
+ // } from '../navigation/adapters/nextjs.js';
14
14
  /**
15
15
  * Hook to get current location
16
16
  * Detects and uses React Router when available, falls back to native browser location
@@ -2,9 +2,9 @@
2
2
  * Copyright (c) 2023-2025 Datalayer, Inc.
3
3
  * Distributed under the terms of the Modified BSD License.
4
4
  */
5
- import { useLocation } from './useLocation';
6
- import { useParams } from './useParams';
7
- import { useRunStore } from '../state';
5
+ import { useLocation } from './useLocation.js';
6
+ import { useParams } from './useParams.js';
7
+ import { useRunStore } from '../state/index.js';
8
8
  export const useLocationHandles = () => {
9
9
  const params = useParams();
10
10
  const { accountHandle, spaceHandle } = params;
@@ -3,13 +3,13 @@
3
3
  * Distributed under the terms of the Modified BSD License.
4
4
  */
5
5
  import { useCallback } from 'react';
6
- import { useLayoutStore } from '../state';
7
- import { createNativeNavigate } from '../navigation/adapters/native';
6
+ import { useLayoutStore } from '../state/index.js';
7
+ import { createNativeNavigate } from '../navigation/adapters/native.js';
8
8
  // Import React Router hooks from our wrapper
9
- import { useNavigateRR } from '../navigation/adapters/react-router';
9
+ import { useNavigateRR } from '../navigation/adapters/react-router.js';
10
10
  // Import Next.js hooks from our wrapper
11
11
  // Currently not used but kept for future Next.js support
12
- // import { useRouterNext } from '../navigation/adapters/nextjs';
12
+ // import { useRouterNext } from '../navigation/adapters/nextjs.js';
13
13
  /**
14
14
  * Main navigation hook that provides a universal navigate function
15
15
  * Works with React Router, Next.js, or native browser navigation
@@ -3,8 +3,8 @@
3
3
  * Distributed under the terms of the Modified BSD License.
4
4
  */
5
5
  import { useEffect, useState, useMemo } from 'react';
6
- import { useParamsRR } from '../navigation/adapters/react-router';
7
- import { useParamsNext, useSearchParamsNext, } from '../navigation/adapters/nextjs';
6
+ import { useParamsRR } from '../navigation/adapters/react-router.js';
7
+ import { useParamsNext, useSearchParamsNext, } from '../navigation/adapters/nextjs.js';
8
8
  /**
9
9
  * Hook to get URL parameters
10
10
  * Works with Next.js App Router, React Router, or falls back to URL parsing
@@ -571,17 +571,11 @@ export declare function useRefreshProjects(): import("@tanstack/react-query").Us
571
571
  * Hook to delete a project (space) and all its contents.
572
572
  */
573
573
  export declare function useDeleteProject(): import("@tanstack/react-query").UseMutationResult<any, Error, string, unknown>;
574
- /**
575
- * Default items (notebook UID and document UID) for a project.
576
- */
577
- export type ProjectDefaultItems = {
578
- defaultNotebookUid: string | null;
579
- defaultDocumentUid: string | null;
580
- };
574
+ export type { ProjectDefaultItems } from '../models/ProjectDTO';
581
575
  /**
582
576
  * Hook to fetch the default notebook and document UIDs for a project.
583
577
  *
584
- * This calls the spacer `GET /spaces/{uid}/default-items` endpoint which
578
+ * This calls the spacer `GET /spaces/:uid/default-items` endpoint which
585
579
  * returns the UID of the first notebook and first document in the space.
586
580
  */
587
581
  export declare function useProjectDefaultItems(projectUid: string | undefined): import("@tanstack/react-query").UseQueryResult<{
@@ -13,7 +13,7 @@
13
13
  * @module hooks/useProjects
14
14
  */
15
15
  import { useMemo, useCallback } from 'react';
16
- import { useCache } from './useCache';
16
+ import { useCache } from './useCache.js';
17
17
  /** The space type value used to identify project spaces in Solr */
18
18
  export const PROJECT_SPACE_VARIANT = 'project';
19
19
  /**
@@ -157,7 +157,7 @@ export function useDeleteProject() {
157
157
  /**
158
158
  * Hook to fetch the default notebook and document UIDs for a project.
159
159
  *
160
- * This calls the spacer `GET /spaces/{uid}/default-items` endpoint which
160
+ * This calls the spacer `GET /spaces/:uid/default-items` endpoint which
161
161
  * returns the UID of the first notebook and first document in the space.
162
162
  */
163
163
  export function useProjectDefaultItems(projectUid) {
@@ -2,7 +2,7 @@
2
2
  * Copyright (c) 2023-2025 Datalayer, Inc.
3
3
  * Distributed under the terms of the Modified BSD License.
4
4
  */
5
- import { requestJupyterKernelsExtension } from '../stateful/jupyter/kernelsHandler';
5
+ import { requestJupyterKernelsExtension } from '../stateful/jupyter/kernelsHandler.js';
6
6
  export const useRuntimes = () => {
7
7
  // Folder Mounting ----------------------------------------------------------
8
8
  const mountLocalFolder = (kernelId) => {
@@ -4,7 +4,7 @@ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-run
4
4
  * Distributed under the terms of the Modified BSD License.
5
5
  */
6
6
  import { createContext, useState, useContext } from 'react';
7
- import { LayoutScreencapture } from './layouts';
7
+ import { LayoutScreencapture } from './layouts/index.js';
8
8
  export const ScreencaptureContext = createContext({
9
9
  closeScreencapture: () => { },
10
10
  displayScreencapture: (nextScreencapture) => { },
@@ -8,8 +8,33 @@ import { toast } from 'react-toastify';
8
8
  import { Notification } from '@jupyterlab/apputils';
9
9
  import { Button } from '@primer/react';
10
10
  import { JupyterReactTheme } from '@datalayer/jupyter-react';
11
- import { isInsideJupyterLab } from '../utils';
11
+ import { isInsideJupyterLab } from '../utils/index.js';
12
12
  const TOAST_POSITION = 'bottom-right';
13
+ const THEME_STORAGE_KEY = 'datalayer-theme';
14
+ function resolveToastTheme() {
15
+ if (typeof window === 'undefined') {
16
+ return 'dark';
17
+ }
18
+ let preferredMode;
19
+ try {
20
+ const raw = window.localStorage.getItem(THEME_STORAGE_KEY);
21
+ if (raw) {
22
+ const parsed = JSON.parse(raw);
23
+ preferredMode = parsed?.state?.colorMode;
24
+ }
25
+ }
26
+ catch {
27
+ // Ignore parsing/storage access errors and fall back to media query.
28
+ }
29
+ if (preferredMode === 'light') {
30
+ return 'light';
31
+ }
32
+ if (preferredMode === 'dark') {
33
+ return 'dark';
34
+ }
35
+ const systemPrefersDark = window.matchMedia?.('(prefers-color-scheme: dark)')?.matches;
36
+ return systemPrefersDark ? 'dark' : 'light';
37
+ }
13
38
  const displayType2Class = {
14
39
  accent: 'primary',
15
40
  link: 'invisible',
@@ -45,6 +70,7 @@ export const useToast = () => {
45
70
  const insideJupyterLab = isInsideJupyterLab();
46
71
  const enqueueToast = (message, options = { variant: 'info' }) => {
47
72
  const { actions, autoClose } = options;
73
+ const theme = resolveToastTheme();
48
74
  switch (options.variant) {
49
75
  case 'info': {
50
76
  return insideJupyterLab
@@ -55,7 +81,7 @@ export const useToast = () => {
55
81
  : toast.info(({ closeToast }) => createContent(message, () => {
56
82
  if (closeToast)
57
83
  closeToast();
58
- }, actions), { autoClose, position: TOAST_POSITION });
84
+ }, actions), { autoClose, position: TOAST_POSITION, theme });
59
85
  }
60
86
  case 'success': {
61
87
  return insideJupyterLab
@@ -66,7 +92,7 @@ export const useToast = () => {
66
92
  : toast.success(({ closeToast }) => createContent(message, () => {
67
93
  if (closeToast)
68
94
  closeToast();
69
- }, actions), { autoClose, position: TOAST_POSITION });
95
+ }, actions), { autoClose, position: TOAST_POSITION, theme });
70
96
  }
71
97
  case 'warning': {
72
98
  return insideJupyterLab
@@ -77,7 +103,11 @@ export const useToast = () => {
77
103
  : toast.warning(({ closeToast }) => createContent(message, () => {
78
104
  if (closeToast)
79
105
  closeToast();
80
- }, actions), { autoClose: autoClose ?? false, position: TOAST_POSITION });
106
+ }, actions), {
107
+ autoClose: autoClose ?? false,
108
+ position: TOAST_POSITION,
109
+ theme,
110
+ });
81
111
  }
82
112
  case 'error': {
83
113
  return insideJupyterLab
@@ -88,11 +118,16 @@ export const useToast = () => {
88
118
  : toast.error(({ closeToast }) => createContent(message, () => {
89
119
  if (closeToast)
90
120
  closeToast();
91
- }, actions), { autoClose: autoClose ?? false, position: TOAST_POSITION });
121
+ }, actions), {
122
+ autoClose: autoClose ?? false,
123
+ position: TOAST_POSITION,
124
+ theme,
125
+ });
92
126
  }
93
127
  }
94
128
  };
95
129
  const trackAsyncTask = (promise, options) => {
130
+ const theme = resolveToastTheme();
96
131
  return insideJupyterLab
97
132
  ? Notification.promise(promise, options)
98
133
  : toast.promise(promise, {
@@ -104,6 +139,7 @@ export const useToast = () => {
104
139
  },
105
140
  }, {
106
141
  position: TOAST_POSITION,
142
+ theme,
107
143
  ...options.pending.options,
108
144
  });
109
145
  };
@@ -4,8 +4,8 @@
4
4
  */
5
5
  import { useState } from 'react';
6
6
  import axios from 'axios';
7
- // import useRun from "./useRun";
8
- import { useIAMStore } from '../state';
7
+ // import useRun from "./useRun.js";
8
+ import { useIAMStore } from '../state/index.js';
9
9
  // TODO reuse useRun hook.
10
10
  export const useUploadForm = (url) => {
11
11
  const [isSuccess, setIsSuccess] = useState(false);
@@ -2,7 +2,7 @@
2
2
  * Copyright (c) 2023-2025 Datalayer, Inc.
3
3
  * Distributed under the terms of the Modified BSD License.
4
4
  */
5
- import { useIAMStore } from '../state';
5
+ import { useIAMStore } from '../state/index.js';
6
6
  const LOGIN_HREF = '/login';
7
7
  export const useUser = (role) => {
8
8
  const { user } = useIAMStore();
package/lib/i18n/index.js CHANGED
@@ -2,4 +2,4 @@
2
2
  * Copyright (c) 2023-2025 Datalayer, Inc.
3
3
  * Distributed under the terms of the Modified BSD License.
4
4
  */
5
- export * from './Labels';
5
+ export * from './Labels.js';
package/lib/index.d.ts CHANGED
@@ -11,7 +11,7 @@ export { API_BASE_PATHS } from './api/constants';
11
11
  export * as runtimesApi from './api/runtimes';
12
12
  export * as iamApi from './api/iam';
13
13
  export * as spacerApi from './api/spacer';
14
- export { DatalayerClient, type DatalayerClientConfig, type ClientHandlers, User, Runtime, Environment, Snapshot, Space, Notebook, LexicalDTO, Secret, Credits, Item, type RuntimeJSON, type EnvironmentJSON, type UserJSON, type RuntimeData, type EnvironmentData, type UserData, type SpaceData, type SpaceItem, type NotebookData, type LexicalData, type RuntimeSnapshotData, type CreditsInfo, type CreditReservation, type CreateRuntimeRequest, type CreateRuntimeResponse, type ListRuntimesResponse, type ListEnvironmentsResponse, type CreateRuntimeSnapshotRequest, type CreateRuntimeSnapshotResponse, type GetRuntimeSnapshotResponse, type ListRuntimeSnapshotsResponse, type CreateSpaceRequest, type CreateSpaceResponse, type SpacesForUserResponse, type CollaborationSessionResponse, type DeleteSpaceItemResponse, type GetSpaceItemResponse, type GetSpaceItemsResponse, type CreateNotebookRequest, type CreateNotebookResponse, type GetNotebookResponse, type UpdateNotebookRequest, type UpdateNotebookResponse, type CreateLexicalRequest, type CreateLexicalResponse, type GetLexicalResponse, type UpdateLexicalRequest, type UpdateLexicalResponse, type CreditsResponse, type CreateDatasourceResponse, type GetDatasourceResponse, type ListDatasourcesResponse, type UpdateDatasourceResponse, type CreateSecretRequest, type CreateSecretResponse, type GetSecretResponse, type ListSecretsResponse, type UpdateSecretRequest, type UpdateSecretResponse, type SpaceJSON, type NotebookJSON, type LexicalJSON, type RuntimeSnapshotJSON, HealthCheck, type HealthCheckJSON, type LoginRequest, type LoginResponse, type UserMeResponse, type MembershipsResponse, type WhoAmIResponse, type HealthzPingResponse, AuthenticationManager, type IUser, type IBaseUser, type ICell, type IDatasource, type IDatasourceVariant, type ICredits, type ICreditsReservation, type ISpaceItem, type ISurvey, type ISpace, type IBaseSpace, type IAnySpace, type ISpaceVariant, type IBaseTeam, type IAnyTeam, type IOrganization, type IAnyOrganization, type IBaseOrganization, type IRuntimeModel, type IRuntimePod, type IRuntimeType, type IRuntimeLocation, type IRuntimeCapabilities, type IRuntimeSnapshot, type IDatalayerEnvironment, type IResources, type ISnippet, type IRole, type IAssignment, type IContact, type ICourse, type IOrganizationMember, type IPage, type PageTagName, type PageTheme, type PageVariant, type ISecret, type ISecretVariant, type SecretData, type SecretJSON, type DatasourceData, type DatasourceJSON, type DatasourceType, type CreateDatasourceRequest, type UpdateDatasourceRequest, Datasource, type IIAMToken, type IIAMTokenVariant, type IDocument, type IBaseDocument, type IEnvironment, type IExercise, type ICode, type IHelp, type IInvite, type ILesson, type INotebook, type IBaseNotebook, type ISchool, type ITeam, type TeamMember, type IUserOnboarding, type IClient, type IOnboardingPosition, type IOnboardingTours, type ITour, type ITourStatus, type IUserSettings, type IDataset, type IUsage, type IItem, type IItemType, type Member, type Profile, type SpaceMember, type IContactEvent, type IContactIAMProvider, type IStudentItem, type Instructor, type IStudent, type IDean, type IUserEvent, type IIAMProviderLinked, type IContent, type AuthResult, type TokenValidationResult, type AuthOptions, type TokenStorage, type IRuntimeOptions, type IMultiServiceManager, type IRemoteServicesManager, type IEnvironmentsManager, type IRemoteRuntimesManager, type NavigationLinkProps, type IDatalayerCoreConfig, type IRuntimesConfiguration, type IIAMProviderName, } from './client';
14
+ export { DatalayerClient, type DatalayerClientConfig, type ClientHandlers, User, Runtime, Environment, Snapshot, Space, Project, Notebook, LexicalDTO, Secret, Credits, Item, type RuntimeJSON, type EnvironmentJSON, type UserJSON, type RuntimeData, type EnvironmentData, type UserData, type SpaceData, type SpaceItem, type NotebookData, type LexicalData, type RuntimeSnapshotData, type CreditsInfo, type CreditReservation, type CreateRuntimeRequest, type CreateRuntimeResponse, type ListRuntimesResponse, type ListEnvironmentsResponse, type CreateRuntimeSnapshotRequest, type CreateRuntimeSnapshotResponse, type GetRuntimeSnapshotResponse, type ListRuntimeSnapshotsResponse, type CreateSpaceRequest, type CreateSpaceResponse, type SpacesForUserResponse, type CollaborationSessionResponse, type DeleteSpaceItemResponse, type GetSpaceItemResponse, type GetSpaceItemsResponse, type CreateNotebookRequest, type CreateNotebookResponse, type GetNotebookResponse, type UpdateNotebookRequest, type UpdateNotebookResponse, type CreateLexicalRequest, type CreateLexicalResponse, type GetLexicalResponse, type UpdateLexicalRequest, type UpdateLexicalResponse, type CreditsResponse, type CreateDatasourceResponse, type GetDatasourceResponse, type ListDatasourcesResponse, type UpdateDatasourceResponse, type CreateSecretRequest, type CreateSecretResponse, type GetSecretResponse, type ListSecretsResponse, type UpdateSecretRequest, type UpdateSecretResponse, type SpaceJSON, type ProjectJSON, type ProjectDefaultItems, type UpdateSpaceRequest, type GetSpaceResponse, type UpdateSpaceResponse, type DeleteSpaceResponse, type GetSpaceDefaultItemsResponse, type GetSpacesByTypeResponse, type NotebookJSON, type LexicalJSON, type RuntimeSnapshotJSON, HealthCheck, type HealthCheckJSON, type LoginRequest, type LoginResponse, type UserMeResponse, type MembershipsResponse, type WhoAmIResponse, type HealthzPingResponse, AuthenticationManager, type IUser, type IBaseUser, type ICell, type IDatasource, type IDatasourceVariant, type ICredits, type ICreditsReservation, type ISpaceItem, type ISurvey, type ISpace, type IBaseSpace, type IAnySpace, type ISpaceVariant, type IBaseTeam, type IAnyTeam, type IOrganization, type IAnyOrganization, type IBaseOrganization, type IRuntimeModel, type IRuntimePod, type IRuntimeType, type IRuntimeLocation, type IRuntimeCapabilities, type IRuntimeSnapshot, type IDatalayerEnvironment, type IResources, type ISnippet, type IRole, type IAssignment, type IContact, type ICourse, type IOrganizationMember, type IPage, type PageTagName, type PageTheme, type PageVariant, type ISecret, type ISecretVariant, type SecretData, type SecretJSON, type DatasourceData, type DatasourceJSON, type DatasourceType, type CreateDatasourceRequest, type UpdateDatasourceRequest, Datasource, type IIAMToken, type IIAMTokenVariant, type IDocument, type IBaseDocument, type IEnvironment, type IExercise, type ICode, type IHelp, type IInvite, type ILesson, type INotebook, type IBaseNotebook, type ISchool, type ITeam, type TeamMember, type IUserOnboarding, type IClient, type IOnboardingPosition, type IOnboardingTours, type ITour, type ITourStatus, type IUserSettings, type IDataset, type IUsage, type IItem, type IItemType, type Member, type Profile, type SpaceMember, type IContactEvent, type IContactIAMProvider, type IStudentItem, type Instructor, type IStudent, type IDean, type IUserEvent, type IIAMProviderLinked, type IContent, type AuthResult, type TokenValidationResult, type AuthOptions, type TokenStorage, type IRuntimeOptions, type IMultiServiceManager, type IRemoteServicesManager, type IEnvironmentsManager, type IRemoteRuntimesManager, type NavigationLinkProps, type IDatalayerCoreConfig, type IRuntimesConfiguration, type IIAMProviderName, } from './client';
15
15
  export { getEnvironments, createRuntime, getRuntimes, deleteRuntime, snapshotRuntime, getRuntimeSnapshots, loadRuntimeSnapshot, } from './stateful/runtimes/actions';
16
16
  export * from './otel';
17
17
  export * from './views';
package/lib/index.js CHANGED
@@ -3,30 +3,30 @@
3
3
  * Distributed under the terms of the Modified BSD License.
4
4
  */
5
5
  // Export core components and utilities
6
- export * from './components';
7
- export * from './utils';
8
- export * from './state';
9
- export * from './collaboration';
10
- export * from './services';
6
+ export * from './components/index.js';
7
+ export * from './utils/index.js';
8
+ export * from './state/index.js';
9
+ export * from './collaboration/index.js';
10
+ export * from './services/index.js';
11
11
  // Export navigation before hooks to avoid conflicts
12
- export * from './navigation';
13
- export * from './hooks';
12
+ export * from './navigation/index.js';
13
+ export * from './hooks/index.js';
14
14
  // Export APIs.
15
- export { requestDatalayerAPI, RunResponseError, NetworkError, } from './api/DatalayerApi';
16
- export { API_BASE_PATHS } from './api/constants';
17
- export * as runtimesApi from './api/runtimes';
18
- export * as iamApi from './api/iam';
19
- export * as spacerApi from './api/spacer';
15
+ export { requestDatalayerAPI, RunResponseError, NetworkError, } from './api/DatalayerApi.js';
16
+ export { API_BASE_PATHS } from './api/constants.js';
17
+ export * as runtimesApi from './api/runtimes/index.js';
18
+ export * as iamApi from './api/iam/index.js';
19
+ export * as spacerApi from './api/spacer/index.js';
20
20
  export {
21
21
  // Export client and config types
22
22
  DatalayerClient,
23
23
  // Export domain models
24
- User, Runtime, Environment, Snapshot, Space, Notebook, LexicalDTO, Secret, Credits, Item, HealthCheck,
24
+ User, Runtime, Environment, Snapshot, Space, Project, Notebook, LexicalDTO, Secret, Credits, Item, HealthCheck,
25
25
  // Export auth
26
- AuthenticationManager, Datasource, } from './client';
26
+ AuthenticationManager, Datasource, } from './client/index.js';
27
27
  // Export commonly used functions directly for convenience
28
- export { getEnvironments, createRuntime, getRuntimes, deleteRuntime, snapshotRuntime, getRuntimeSnapshots, loadRuntimeSnapshot, } from './stateful/runtimes/actions';
28
+ export { getEnvironments, createRuntime, getRuntimes, deleteRuntime, snapshotRuntime, getRuntimeSnapshots, loadRuntimeSnapshot, } from './stateful/runtimes/actions.js';
29
29
  // OTEL observability components, hooks, and types
30
- export * from './otel';
30
+ export * from './otel/index.js';
31
31
  // Reusable views (sign-in pages, etc.)
32
- export * from './views';
32
+ export * from './views/index.js';
package/lib/main.js CHANGED
@@ -4,7 +4,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
4
4
  * Distributed under the terms of the Modified BSD License.
5
5
  */
6
6
  import { createRoot } from 'react-dom/client';
7
- import App from './App';
7
+ import App from './App.js';
8
8
  import './index.css';
9
9
  const rootElement = document.getElementById('root');
10
10
  if (rootElement) {