@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.
- package/README.md +124 -2
- package/lib/App.css +47 -0
- package/lib/App.js +14 -2
- package/lib/__tests__/index.test.js +7 -6
- package/lib/api/{RunApi.d.ts → DatalayerApi.d.ts} +4 -4
- package/lib/api/{RunApi.js → DatalayerApi.js} +6 -11
- package/lib/api/index.d.ts +3 -2
- package/lib/api/index.js +3 -7
- package/lib/api/{runtimes → jupyter}/exec/Python.js +0 -5
- package/lib/api/{runtimes → jupyter}/exec/Snippets.js +0 -5
- package/lib/api/{runtimes → jupyter}/exec/index.js +0 -5
- package/lib/api/jupyter/index.d.ts +2 -0
- package/lib/api/jupyter/index.js +6 -0
- package/lib/api/{runtimes → jupyter}/kernelsHandler.d.ts +1 -1
- package/lib/api/{runtimes → jupyter}/kernelsHandler.js +1 -6
- package/lib/api/runtimes/actions.d.ts +102 -0
- package/lib/api/runtimes/{runtimesApi.js → actions.js} +47 -53
- package/lib/api/runtimes/{runtimesApi.d.ts → apis.d.ts} +8 -105
- package/lib/api/runtimes/apis.js +5 -0
- package/lib/api/runtimes/index.d.ts +2 -4
- package/lib/api/runtimes/index.js +2 -9
- package/lib/api/runtimes/settings.js +3 -8
- package/lib/api/runtimes/snapshots.d.ts +1 -1
- package/lib/api/runtimes/snapshots.js +8 -13
- package/lib/api/runtimes/utils.js +1 -9
- package/lib/assets/react.svg +1 -0
- package/lib/collaboration/DatalayerCollaboration.d.ts +9 -0
- package/lib/collaboration/DatalayerCollaboration.js +28 -0
- package/lib/collaboration/DatalayerCollaborationProvider.d.ts +54 -0
- package/lib/collaboration/DatalayerCollaborationProvider.js +162 -0
- package/lib/collaboration/index.d.ts +2 -0
- package/lib/collaboration/index.js +6 -0
- package/lib/components/avatars/BoringAvatar.d.ts +2 -3
- package/lib/components/avatars/BoringAvatar.js +14 -9
- package/lib/components/avatars/BoringAvatar.stories.d.ts +27 -0
- package/lib/components/avatars/BoringAvatar.stories.js +23 -0
- package/lib/components/avatars/UserProfileAvatar.js +2 -14
- package/lib/components/avatars/index.js +0 -5
- package/lib/components/banners/NoAutomationBanner.js +4 -9
- package/lib/components/banners/index.js +0 -5
- package/lib/components/buttons/DownloadCSVButton.d.ts +1 -1
- package/lib/components/buttons/DownloadCSVButton.js +1 -6
- package/lib/components/buttons/DownloadJsonButton.d.ts +1 -1
- package/lib/components/buttons/DownloadJsonButton.js +0 -5
- package/lib/components/buttons/LongActionButton.js +0 -5
- package/lib/components/buttons/UploadButton.js +1 -6
- package/lib/components/buttons/index.js +0 -5
- package/lib/components/checkout/StripeCheckout.d.ts +1 -1
- package/lib/components/checkout/StripeCheckout.js +6 -11
- package/lib/components/checkout/index.js +0 -5
- package/lib/components/confetti/ConfettiSuccess.js +1 -6
- package/lib/components/confetti/index.js +0 -5
- package/lib/components/context/OrganizationSelect.js +5 -10
- package/lib/components/context/SpaceSelect.js +7 -12
- package/lib/components/context/index.js +0 -5
- package/lib/components/display/AvatarSkeleton.js +1 -6
- package/lib/components/display/CenteredSpinner.js +4 -9
- package/lib/components/display/CodePreview.js +4 -9
- package/lib/components/display/DatalayerBox.js +13 -19
- package/lib/components/display/HorizontalCenter.d.ts +1 -1
- package/lib/components/display/HorizontalCenter.js +1 -1
- package/lib/components/display/JupyterDialog.js +17 -20
- package/lib/components/display/NavLink.d.ts +4 -2
- package/lib/components/display/NavLink.js +6 -9
- package/lib/components/display/NotebookSkeleton.js +2 -7
- package/lib/components/display/Placeholder.js +1 -6
- package/lib/components/display/ToTopBranded.js +1 -6
- package/lib/components/display/VisuallyHidden.js +0 -5
- package/lib/components/display/index.js +0 -5
- package/lib/components/echarts/EChartsReact.d.ts +1 -1
- package/lib/components/echarts/EChartsReact.js +7 -7
- package/lib/components/echarts/index.js +0 -5
- package/lib/components/flashes/FlashClosable.js +11 -16
- package/lib/components/flashes/FlashDisclaimer.js +2 -8
- package/lib/components/flashes/FlashGuest.js +3 -9
- package/lib/components/flashes/FlashSurveys.js +3 -9
- package/lib/components/flashes/FlashUnauthorized.js +2 -7
- package/lib/components/flashes/index.js +0 -5
- package/lib/components/flashes/surveys/Survey2025_1.d.ts +1 -1
- package/lib/components/flashes/surveys/Survey2025_1.js +62 -90
- package/lib/components/flashes/surveys/index.js +0 -5
- package/lib/components/iam/ExternalTokenSilentLogin.js +6 -9
- package/lib/components/iam/index.js +0 -5
- package/lib/components/icons/ArtifactIcon.d.ts +2 -2
- package/lib/components/icons/ArtifactIcon.js +39 -44
- package/lib/components/icons/index.js +0 -5
- package/lib/components/index.js +1 -6
- package/lib/components/labels/VisibilityLabel.js +2 -10
- package/lib/components/labels/index.js +0 -5
- package/lib/components/landings/StepBlock.d.ts +1 -1
- package/lib/components/landings/StepBlock.js +1 -6
- package/lib/components/landings/index.js +0 -5
- package/lib/components/navbar/NavigationVisbilityObserver.js +2 -7
- package/lib/components/navbar/SubdomainNavBar.js +46 -29
- package/lib/components/navbar/SubdomainNavBar.module.css +737 -0
- package/lib/components/navbar/index.js +0 -5
- package/lib/components/nbgrader/NbGradesDetails.d.ts +1 -1
- package/lib/components/nbgrader/NbGradesDetails.js +5 -13
- package/lib/components/nbgrader/index.js +0 -5
- package/lib/components/notebooks/JupyterNotebook.js +5 -10
- package/lib/components/notebooks/JupyterNotebookToolbar.js +3 -8
- package/lib/components/notebooks/index.js +0 -5
- package/lib/components/primer/Helper.d.ts +1 -1
- package/lib/components/primer/Helper.js +5 -3
- package/lib/components/primer/Portals.d.ts +1 -1
- package/lib/components/primer/Portals.js +2 -7
- package/lib/components/primer/Styles.js +1 -6
- package/lib/components/primer/index.js +0 -5
- package/lib/components/progress/ConsumptionBar.js +2 -7
- package/lib/components/progress/CreditsIndicator.d.ts +1 -1
- package/lib/components/progress/CreditsIndicator.js +4 -13
- package/lib/components/progress/ProgressBar.js +0 -5
- package/lib/components/progress/ProgressRing.js +2 -2
- package/lib/components/progress/Timer.js +0 -5
- package/lib/components/progress/index.js +0 -5
- package/lib/components/runtimes/RuntimeCellVariables.js +9 -14
- package/lib/components/runtimes/RuntimeCellVariablesDialog.js +7 -12
- package/lib/components/runtimes/RuntimeLauncherDialog.d.ts +1 -2
- package/lib/components/runtimes/RuntimeLauncherDialog.js +32 -40
- package/lib/components/runtimes/RuntimePickerBase.d.ts +1 -1
- package/lib/components/runtimes/RuntimePickerBase.js +42 -36
- package/lib/components/runtimes/RuntimePickerCell.js +9 -17
- package/lib/components/runtimes/RuntimePickerNotebook.d.ts +1 -2
- package/lib/components/runtimes/RuntimePickerNotebook.js +45 -50
- package/lib/components/runtimes/RuntimeReservationControl.js +10 -20
- package/lib/components/runtimes/RuntimeSimplePicker.d.ts +1 -1
- package/lib/components/runtimes/RuntimeSimplePicker.js +44 -52
- package/lib/components/runtimes/RuntimeUtils.d.ts +1 -1
- package/lib/components/runtimes/RuntimeUtils.js +22 -17
- package/lib/components/runtimes/RuntimeVariables.js +7 -12
- package/lib/components/runtimes/index.js +0 -5
- package/lib/components/screenshot/ScreenCapture.js +10 -19
- package/lib/components/screenshot/ScreenCaptureButton.d.ts +1 -1
- package/lib/components/screenshot/ScreenCaptureButton.js +14 -8
- package/lib/components/screenshot/index.js +0 -5
- package/lib/components/snapshots/RuntimeSnapshotMenu.js +19 -22
- package/lib/components/snapshots/index.js +0 -5
- package/lib/components/snippets/SnippetDialog.js +5 -10
- package/lib/components/snippets/index.js +0 -5
- package/lib/components/storage/ContentsBrowser.js +75 -63
- package/lib/components/storage/ContentsItems.js +10 -13
- package/lib/components/storage/index.js +0 -5
- package/lib/components/students/StudentItemStatus.d.ts +1 -1
- package/lib/components/students/StudentItemStatus.js +38 -21
- package/lib/components/students/index.js +0 -5
- package/lib/components/subnav/SubNav.d.ts +3 -3
- package/lib/components/subnav/SubNav.js +34 -24
- package/lib/components/subnav/SubNav.module.css +717 -0
- package/lib/components/subnav/index.js +0 -5
- package/lib/components/tables/DataTable.js +1 -9
- package/lib/components/tables/index.js +0 -5
- package/lib/components/text-reveal/TextRevealAnimation.js +7 -8
- package/lib/components/text-reveal/TextRevealAnimation.module.css +45 -0
- package/lib/components/text-reveal/index.js +0 -5
- package/lib/components/text-reveal/useTextRevealAnimationLines.js +0 -5
- package/lib/components/tokens/SpaceVariantToken.d.ts +1 -1
- package/lib/components/tokens/SpaceVariantToken.js +5 -10
- package/lib/components/tokens/index.js +0 -5
- package/lib/components/toolbars/AssignmentEditorToolbar.js +1 -8
- package/lib/components/toolbars/DocumentEditorToolbar.js +0 -5
- package/lib/components/toolbars/NotebookEditorToolbar.d.ts +1 -1
- package/lib/components/toolbars/NotebookEditorToolbar.js +0 -5
- package/lib/components/toolbars/index.js +0 -5
- package/lib/components/users/PeerIndicator.d.ts +1 -1
- package/lib/components/users/PeerIndicator.js +5 -10
- package/lib/components/users/index.js +0 -5
- package/lib/config/Configuration.d.ts +48 -0
- package/lib/config/Configuration.js +42 -5
- package/lib/config/index.js +0 -5
- package/lib/config/integrations/Loom.js +3 -8
- package/lib/config/integrations/index.js +0 -5
- package/lib/examples/CellExample.d.ts +6 -0
- package/lib/examples/CellExample.js +55 -0
- package/lib/examples/DatalayerNotebookExample.d.ts +16 -0
- package/lib/examples/DatalayerNotebookExample.js +75 -0
- package/lib/examples/NativeNavigationExample.d.ts +8 -0
- package/lib/examples/NativeNavigationExample.js +97 -0
- package/lib/examples/NotebookExample.d.ts +6 -0
- package/lib/examples/NotebookExample.js +24 -0
- package/lib/examples/NotebookMutationsKernel.d.ts +2 -0
- package/lib/examples/NotebookMutationsKernel.js +115 -0
- package/lib/examples/NotebookMutationsServiceManager.d.ts +2 -0
- package/lib/examples/NotebookMutationsServiceManager.js +107 -0
- package/lib/examples/ReactRouterExample.d.ts +6 -0
- package/lib/examples/ReactRouterExample.js +175 -0
- package/lib/examples/example-selector.d.ts +22 -0
- package/lib/examples/example-selector.js +45 -0
- package/lib/examples/index.d.ts +2 -0
- package/lib/examples/index.js +6 -0
- package/lib/examples/main.js +153 -0
- package/lib/examples/notebooks/IPyWidgetsExample.ipynb.json +101 -0
- package/lib/examples/notebooks/IPyWidgetsExampleWithState.ipynb.json +112 -0
- package/lib/examples/notebooks/Lite.ipynb.json +128 -0
- package/lib/examples/notebooks/Matplotlib.ipynb.json +137 -0
- package/lib/examples/notebooks/NotebookExample1.ipynb.json +126 -0
- package/lib/examples/notebooks/NotebookExample2.ipynb.json +48 -0
- package/lib/examples/notebooks/NotebookOutputs.ipynb.json +49 -0
- package/lib/examples/notebooks/NotebookToCExample.ipynb.json +102 -0
- package/lib/examples/notebooks/OutputIPyWidgetsExample.d.ts +145 -0
- package/lib/examples/notebooks/OutputIPyWidgetsExample.js +153 -0
- package/lib/examples/notebooks/PyGWalker.ipynb.json +55 -0
- package/lib/hooks/assets/OutputshotPlaceholders.d.ts +10 -10
- package/lib/hooks/assets/OutputshotPlaceholders.js +9 -14
- package/lib/hooks/assets/index.js +0 -5
- package/lib/hooks/index.d.ts +29 -28
- package/lib/hooks/index.js +29 -33
- package/lib/hooks/layouts/LayoutBackdrop.js +3 -11
- package/lib/hooks/layouts/LayoutScreenshot.css +58 -0
- package/lib/hooks/layouts/LayoutScreenshot.d.ts +1 -0
- package/lib/hooks/layouts/LayoutScreenshot.js +7 -11
- package/lib/hooks/layouts/index.js +0 -5
- package/lib/hooks/useAIAgents.d.ts +1 -1
- package/lib/hooks/useAIAgents.js +13 -18
- package/lib/hooks/useAuthorization.js +4 -10
- package/lib/hooks/useBackdrop.js +7 -12
- package/lib/hooks/useBackdropJupyterLab.d.ts +1 -1
- package/lib/hooks/useBackdropJupyterLab.js +4 -9
- package/lib/hooks/useCache.d.ts +8 -4
- package/lib/hooks/useCache.js +410 -361
- package/lib/hooks/useCellOutputshot.js +3 -11
- package/lib/hooks/useContainsFocus.js +2 -6
- package/lib/hooks/useDatalayer.d.ts +21 -0
- package/lib/hooks/{useRun.js → useDatalayer.js} +16 -18
- package/lib/hooks/useError.d.ts +1 -1
- package/lib/hooks/useError.js +2 -7
- package/lib/hooks/useExternalScript.js +4 -9
- package/lib/hooks/useFocusTrap.d.ts +1 -1
- package/lib/hooks/useFocusTrap.js +3 -7
- package/lib/hooks/useIAM.js +6 -12
- package/lib/hooks/useId.js +6 -11
- package/lib/hooks/useIsomorphicLayoutEffect.js +0 -5
- package/lib/hooks/useJupyterLabTheme.js +3 -6
- package/lib/hooks/useKeyboardEscape.js +0 -5
- package/lib/hooks/useLocation.d.ts +22 -0
- package/lib/hooks/useLocation.js +149 -0
- package/lib/hooks/useLocationHandles.d.ts +2 -2
- package/lib/hooks/useLocationHandles.js +6 -9
- package/lib/hooks/useNavigate.d.ts +5 -1
- package/lib/hooks/useNavigate.js +62 -12
- package/lib/hooks/useNotebookAIAgent.js +3 -6
- package/lib/hooks/useOnClickOutside.js +0 -5
- package/lib/hooks/useParams.d.ts +5 -0
- package/lib/hooks/useParams.js +152 -0
- package/lib/hooks/useRef.js +0 -5
- package/lib/hooks/useRuntimes.js +2 -7
- package/lib/hooks/useScreenshot.js +5 -10
- package/lib/hooks/useToast.js +21 -21
- package/lib/hooks/useUpload.js +9 -14
- package/lib/hooks/useUser.js +1 -1
- package/lib/hooks/useVisibilityObserver.js +0 -5
- package/lib/hooks/useWindowSize.js +0 -6
- package/lib/i18n/Labels.js +0 -5
- package/lib/i18n/index.js +0 -5
- package/lib/index.css +73 -0
- package/lib/index.d.ts +6 -3
- package/lib/index.js +7 -3
- package/lib/main.js +1 -2
- package/lib/mocks/components/FlashMock.js +4 -9
- package/lib/mocks/components/index.js +0 -5
- package/lib/mocks/hooks/index.d.ts +1 -1
- package/lib/mocks/hooks/index.js +1 -6
- package/lib/mocks/hooks/rests/index.js +0 -5
- package/lib/mocks/hooks/rests/rests.js +15 -23
- package/lib/mocks/hooks/useDatalayerMock.d.ts +6 -0
- package/lib/mocks/hooks/{useRunMock.js → useDatalayerMock.js} +9 -14
- package/lib/mocks/index.js +0 -5
- package/lib/mocks/jupyter/index.js +1 -6
- package/lib/mocks/models/CodeBlockMock.js +1 -6
- package/lib/mocks/models/CodelineMock.js +1 -6
- package/lib/mocks/models/CourseMock.d.ts +1 -1
- package/lib/mocks/models/CourseMock.js +10 -15
- package/lib/mocks/models/InviteMock.d.ts +1 -1
- package/lib/mocks/models/InviteMock.js +21 -11
- package/lib/mocks/models/JupyterLabUserMock.js +2 -2
- package/lib/mocks/models/OrganisationMock.d.ts +1 -1
- package/lib/mocks/models/OrganisationMock.js +11 -7
- package/lib/mocks/models/SchoolMock.d.ts +1 -1
- package/lib/mocks/models/SchoolMock.js +6 -6
- package/lib/mocks/models/SpaceMock.d.ts +1 -1
- package/lib/mocks/models/SpaceMock.js +9 -14
- package/lib/mocks/models/TeamMock.d.ts +1 -1
- package/lib/mocks/models/TeamMock.js +6 -6
- package/lib/mocks/models/UserMock.d.ts +1 -1
- package/lib/mocks/models/UserMock.js +4 -11
- package/lib/mocks/models/index.js +0 -5
- package/lib/mocks/views/ActionMenuMock.js +1 -6
- package/lib/mocks/views/ChartMock.js +3 -8
- package/lib/mocks/views/ChartMockOptions.js +24 -29
- package/lib/mocks/views/DashboardMock.js +74 -79
- package/lib/mocks/views/FormMock.js +1 -6
- package/lib/mocks/views/TableMock.js +1 -6
- package/lib/mocks/views/WipMock.js +0 -5
- package/lib/mocks/views/index.js +0 -5
- package/lib/models/Account.d.ts +2 -2
- package/lib/models/Assignment.d.ts +2 -2
- package/lib/models/Cell.d.ts +1 -1
- package/lib/models/CodeBlock.d.ts +1 -1
- package/lib/models/CodefeedBlocks.d.ts +2 -2
- package/lib/models/Contact.d.ts +1 -1
- package/lib/models/Contact.js +14 -19
- package/lib/models/ContactEvent.js +0 -5
- package/lib/models/ContactIAMProvider.js +2 -2
- package/lib/models/Course.d.ts +7 -7
- package/lib/models/Credits.js +0 -5
- package/lib/models/Dataset.d.ts +2 -2
- package/lib/models/Datasource.js +0 -5
- package/lib/models/Dean.d.ts +1 -1
- package/lib/models/Document.d.ts +1 -1
- package/lib/models/Environment.d.ts +2 -2
- package/lib/models/Errors.js +0 -5
- package/lib/models/Exercise.d.ts +1 -1
- package/lib/models/GrowthKPI.js +0 -5
- package/lib/models/IAMProviderLinked.js +1 -1
- package/lib/models/IAMProviderUsers.js +0 -5
- package/lib/models/IAMToken.js +0 -5
- package/lib/models/Inbound.js +0 -5
- package/lib/models/Instructor.d.ts +1 -1
- package/lib/models/Invite.d.ts +2 -2
- package/lib/models/Invite.js +1 -1
- package/lib/models/Item.d.ts +5 -5
- package/lib/models/LandingRoles.js +18 -23
- package/lib/models/Lesson.d.ts +1 -1
- package/lib/models/Member.d.ts +1 -1
- package/lib/models/Notebook.d.ts +1 -1
- package/lib/models/Organization.d.ts +4 -4
- package/lib/models/Organization.js +2 -7
- package/lib/models/OrganizationMember.d.ts +2 -2
- package/lib/models/Outbound.js +7 -12
- package/lib/models/Page.js +4 -2
- package/lib/models/PageTag.d.ts +2 -2
- package/lib/models/PageTag.js +56 -9
- package/lib/models/Profile.d.ts +1 -1
- package/lib/models/RolesOrganization.d.ts +1 -1
- package/lib/models/RolesOrganization.js +4 -17
- package/lib/models/RolesPlatform.d.ts +1 -1
- package/lib/models/RolesPlatform.js +12 -39
- package/lib/models/RolesTeam.d.ts +1 -1
- package/lib/models/RolesTeam.js +3 -15
- package/lib/models/Runtime.d.ts +59 -1
- package/lib/models/Runtime.js +11 -9
- package/lib/models/RuntimeSnapshot.js +1 -1
- package/lib/models/School.d.ts +4 -4
- package/lib/models/Secret.js +0 -5
- package/lib/models/Space.d.ts +5 -5
- package/lib/models/Space.js +3 -3
- package/lib/models/SpaceItem.d.ts +8 -8
- package/lib/models/SpaceMember.d.ts +2 -2
- package/lib/models/Student.d.ts +2 -2
- package/lib/models/StudentItem.d.ts +3 -3
- package/lib/models/Survey.js +0 -5
- package/lib/models/Team.d.ts +3 -3
- package/lib/models/Team.js +2 -7
- package/lib/models/TeamMember.d.ts +2 -2
- package/lib/models/URN.js +1 -6
- package/lib/models/User.d.ts +2 -2
- package/lib/models/User.js +7 -10
- package/lib/models/UserEvent.js +0 -5
- package/lib/models/UserOnboarding.d.ts +1 -1
- package/lib/models/UserOnboarding.js +7 -12
- package/lib/models/UserSettings.js +2 -7
- package/lib/models/index.d.ts +2 -2
- package/lib/models/index.js +2 -7
- package/lib/navigation/adapters/native.d.ts +11 -0
- package/lib/navigation/adapters/native.js +48 -0
- package/lib/navigation/adapters/nextjs.d.ts +9 -0
- package/lib/navigation/adapters/nextjs.js +35 -0
- package/lib/navigation/adapters/react-router.d.ts +4 -0
- package/lib/navigation/adapters/react-router.js +12 -0
- package/lib/navigation/components.d.ts +20 -0
- package/lib/navigation/components.js +36 -0
- package/lib/navigation/index.d.ts +4 -0
- package/lib/navigation/index.js +12 -0
- package/lib/routes/Routes.js +0 -5
- package/lib/routes/index.d.ts +1 -1
- package/lib/routes/index.js +1 -6
- package/lib/services/DatalayerServiceManager.d.ts +22 -0
- package/lib/services/DatalayerServiceManager.js +79 -0
- package/lib/services/index.d.ts +4 -0
- package/lib/services/index.js +7 -0
- package/lib/services/reconnectToRuntime.d.ts +32 -0
- package/lib/services/reconnectToRuntime.js +59 -0
- package/lib/state/State.d.ts +1 -1
- package/lib/state/State.js +1 -6
- package/lib/state/index.d.ts +1 -1
- package/lib/state/index.js +1 -6
- package/lib/state/storage/IAMStorage.js +14 -7
- package/lib/state/storage/index.d.ts +1 -1
- package/lib/state/storage/index.js +1 -6
- package/lib/state/substates/AIAgentState.js +4 -7
- package/lib/state/substates/CellState.js +6 -10
- package/lib/state/substates/CoreState.d.ts +1 -1
- package/lib/state/substates/CoreState.js +23 -20
- package/lib/state/substates/DatasourceState.js +1 -6
- package/lib/state/substates/DocumentState.js +0 -5
- package/lib/state/substates/GradeState.js +0 -5
- package/lib/state/substates/IAMState.d.ts +5 -1
- package/lib/state/substates/IAMState.js +88 -72
- package/lib/state/substates/JupyterLabState.js +1 -6
- package/lib/state/substates/LayoutState.d.ts +2 -2
- package/lib/state/substates/LayoutState.js +41 -28
- package/lib/state/substates/NbformatState.js +0 -5
- package/lib/state/substates/OrganizationState.js +1 -6
- package/lib/state/substates/RuntimesState.d.ts +2 -2
- package/lib/state/substates/RuntimesState.js +6 -10
- package/lib/state/substates/SpaceState.js +1 -6
- package/lib/state/substates/SurveysState.js +7 -12
- package/lib/state/substates/TeamState.js +1 -6
- package/lib/state/substates/index.js +0 -5
- package/lib/stories/assets/accessibility.png +0 -0
- package/lib/stories/assets/accessibility.svg +1 -0
- package/lib/stories/assets/addon-library.png +0 -0
- package/lib/stories/assets/assets.png +0 -0
- package/lib/stories/assets/context.png +0 -0
- package/lib/stories/assets/discord.svg +1 -0
- package/lib/stories/assets/docs.png +0 -0
- package/lib/stories/assets/figma-plugin.png +0 -0
- package/lib/stories/assets/github.svg +1 -0
- package/lib/stories/assets/share.png +0 -0
- package/lib/stories/assets/styling.png +0 -0
- package/lib/stories/assets/testing.png +0 -0
- package/lib/stories/assets/theming.png +0 -0
- package/lib/stories/assets/tutorials.svg +1 -0
- package/lib/stories/assets/youtube.svg +1 -0
- package/lib/stories/button.css +35 -0
- package/lib/stories/header.css +37 -0
- package/lib/stories/page.css +73 -0
- package/lib/test-setup.js +73 -1
- package/lib/theme/DatalayerTheme.js +1 -6
- package/lib/theme/DatalayerThemeProvider.js +17 -19
- package/lib/theme/Palette.js +1 -6
- package/lib/theme/index.js +0 -5
- package/lib/utils/Array.js +0 -5
- package/lib/utils/Avatar.js +2 -7
- package/lib/utils/Browser.js +6 -11
- package/lib/utils/Cells.d.ts +1 -1
- package/lib/utils/Cookie.js +1 -6
- package/lib/utils/Date.js +5 -10
- package/lib/utils/Download.js +5 -8
- package/lib/utils/DownloadFile.js +4 -7
- package/lib/utils/Env.js +2 -6
- package/lib/utils/File.js +0 -5
- package/lib/utils/Ids.js +0 -5
- package/lib/utils/Jupyter.js +0 -5
- package/lib/utils/Lazy.d.ts +1 -1
- package/lib/utils/Lazy.js +2 -8
- package/lib/utils/Name.js +10 -13
- package/lib/utils/Notebook.d.ts +1 -1
- package/lib/utils/Notebook.js +3 -3
- package/lib/utils/Number.js +13 -14
- package/lib/utils/Plots.d.ts +1 -1
- package/lib/utils/Plots.js +5 -5
- package/lib/utils/Random.js +0 -5
- package/lib/utils/Screenshot.js +1 -6
- package/lib/utils/Scroll.js +3 -7
- package/lib/utils/Sleep.js +1 -6
- package/lib/utils/Snapshot.js +2 -7
- package/lib/utils/String.js +2 -7
- package/lib/utils/Uri.js +2 -7
- package/lib/utils/Validator.js +0 -5
- package/lib/utils/WithSuspense.js +3 -11
- package/lib/utils/index.js +0 -5
- package/package.json +96 -30
- package/style/animation/Animation.module.css +174 -0
- package/style/base.css +64 -0
- package/style/index.css +6 -0
- package/lib/__tests__/App.test.js +0 -17
- package/lib/api/runtimes/models.d.ts +0 -59
- package/lib/api/runtimes/models.js +0 -11
- package/lib/hooks/useRun.d.ts +0 -21
- package/lib/mocks/hooks/useRunMock.d.ts +0 -6
- /package/lib/api/{runtimes → jupyter}/exec/Python.d.ts +0 -0
- /package/lib/api/{runtimes → jupyter}/exec/Snippets.d.ts +0 -0
- /package/lib/api/{runtimes → jupyter}/exec/index.d.ts +0 -0
- /package/lib/{__tests__/App.test.d.ts → examples/main.d.ts} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="33" height="32" fill="none" viewBox="0 0 33 32"><g clip-path="url(#clip0_10031_177597)"><path fill="#B7F0EF" fill-rule="evenodd" d="M17 7.87059C17 6.48214 17.9812 5.28722 19.3431 5.01709L29.5249 2.99755C31.3238 2.64076 33 4.01717 33 5.85105V22.1344C33 23.5229 32.0188 24.7178 30.6569 24.9879L20.4751 27.0074C18.6762 27.3642 17 25.9878 17 24.1539L17 7.87059Z" clip-rule="evenodd" opacity=".7"/><path fill="#87E6E5" fill-rule="evenodd" d="M1 5.85245C1 4.01857 2.67623 2.64215 4.47507 2.99895L14.6569 5.01848C16.0188 5.28861 17 6.48354 17 7.87198V24.1553C17 25.9892 15.3238 27.3656 13.5249 27.0088L3.34311 24.9893C1.98119 24.7192 1 23.5242 1 22.1358V5.85245Z" clip-rule="evenodd"/><path fill="#61C1FD" fill-rule="evenodd" d="M15.543 5.71289C15.543 5.71289 16.8157 5.96289 17.4002 6.57653C17.9847 7.19016 18.4521 9.03107 18.4521 9.03107C18.4521 9.03107 18.4521 25.1106 18.4521 26.9629C18.4521 28.8152 19.3775 31.4174 19.3775 31.4174L17.4002 28.8947L16.2575 31.4174C16.2575 31.4174 15.543 29.0765 15.543 27.122C15.543 25.1674 15.543 5.71289 15.543 5.71289Z" clip-rule="evenodd"/></g><defs><clipPath id="clip0_10031_177597"><rect width="32" height="32" fill="#fff" transform="translate(0.5)"/></clipPath></defs></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" fill="none" viewBox="0 0 32 32"><path fill="#ED1D24" d="M31.3313 8.44657C30.9633 7.08998 29.8791 6.02172 28.5022 5.65916C26.0067 5.00026 16 5.00026 16 5.00026C16 5.00026 5.99333 5.00026 3.4978 5.65916C2.12102 6.02172 1.03665 7.08998 0.668678 8.44657C0 10.9053 0 16.0353 0 16.0353C0 16.0353 0 21.1652 0.668678 23.6242C1.03665 24.9806 2.12102 26.0489 3.4978 26.4116C5.99333 27.0703 16 27.0703 16 27.0703C16 27.0703 26.0067 27.0703 28.5022 26.4116C29.8791 26.0489 30.9633 24.9806 31.3313 23.6242C32 21.1652 32 16.0353 32 16.0353C32 16.0353 32 10.9053 31.3313 8.44657Z"/><path fill="#fff" d="M12.7266 20.6934L21.0902 16.036L12.7266 11.3781V20.6934Z"/></svg>
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2023-2025 Datalayer, Inc.
|
|
3
|
+
* Distributed under the terms of the Modified BSD License.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
.storybook-button {
|
|
7
|
+
display: inline-block;
|
|
8
|
+
cursor: pointer;
|
|
9
|
+
border: 0;
|
|
10
|
+
border-radius: 3em;
|
|
11
|
+
font-weight: 700;
|
|
12
|
+
line-height: 1;
|
|
13
|
+
font-family: 'Nunito Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
|
|
14
|
+
}
|
|
15
|
+
.storybook-button--primary {
|
|
16
|
+
background-color: #555ab9;
|
|
17
|
+
color: white;
|
|
18
|
+
}
|
|
19
|
+
.storybook-button--secondary {
|
|
20
|
+
box-shadow: rgba(0, 0, 0, 0.15) 0px 0px 0px 1px inset;
|
|
21
|
+
background-color: transparent;
|
|
22
|
+
color: #333;
|
|
23
|
+
}
|
|
24
|
+
.storybook-button--small {
|
|
25
|
+
padding: 10px 16px;
|
|
26
|
+
font-size: 12px;
|
|
27
|
+
}
|
|
28
|
+
.storybook-button--medium {
|
|
29
|
+
padding: 11px 20px;
|
|
30
|
+
font-size: 14px;
|
|
31
|
+
}
|
|
32
|
+
.storybook-button--large {
|
|
33
|
+
padding: 12px 24px;
|
|
34
|
+
font-size: 16px;
|
|
35
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2023-2025 Datalayer, Inc.
|
|
3
|
+
* Distributed under the terms of the Modified BSD License.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
.storybook-header {
|
|
7
|
+
display: flex;
|
|
8
|
+
justify-content: space-between;
|
|
9
|
+
align-items: center;
|
|
10
|
+
border-bottom: 1px solid rgba(0, 0, 0, 0.1);
|
|
11
|
+
padding: 15px 20px;
|
|
12
|
+
font-family: 'Nunito Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
.storybook-header svg {
|
|
16
|
+
display: inline-block;
|
|
17
|
+
vertical-align: top;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.storybook-header h1 {
|
|
21
|
+
display: inline-block;
|
|
22
|
+
vertical-align: top;
|
|
23
|
+
margin: 6px 0 6px 10px;
|
|
24
|
+
font-weight: 700;
|
|
25
|
+
font-size: 20px;
|
|
26
|
+
line-height: 1;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
.storybook-header button + button {
|
|
30
|
+
margin-left: 10px;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
.storybook-header .welcome {
|
|
34
|
+
margin-right: 10px;
|
|
35
|
+
color: #333;
|
|
36
|
+
font-size: 14px;
|
|
37
|
+
}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2023-2025 Datalayer, Inc.
|
|
3
|
+
* Distributed under the terms of the Modified BSD License.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
.storybook-page {
|
|
7
|
+
margin: 0 auto;
|
|
8
|
+
padding: 48px 20px;
|
|
9
|
+
max-width: 600px;
|
|
10
|
+
color: #333;
|
|
11
|
+
font-size: 14px;
|
|
12
|
+
line-height: 24px;
|
|
13
|
+
font-family: 'Nunito Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
.storybook-page h2 {
|
|
17
|
+
display: inline-block;
|
|
18
|
+
vertical-align: top;
|
|
19
|
+
margin: 0 0 4px;
|
|
20
|
+
font-weight: 700;
|
|
21
|
+
font-size: 32px;
|
|
22
|
+
line-height: 1;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
.storybook-page p {
|
|
26
|
+
margin: 1em 0;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
.storybook-page a {
|
|
30
|
+
color: inherit;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
.storybook-page ul {
|
|
34
|
+
margin: 1em 0;
|
|
35
|
+
padding-left: 30px;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
.storybook-page li {
|
|
39
|
+
margin-bottom: 8px;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
.storybook-page .tip {
|
|
43
|
+
display: inline-block;
|
|
44
|
+
vertical-align: top;
|
|
45
|
+
margin-right: 10px;
|
|
46
|
+
border-radius: 1em;
|
|
47
|
+
background: #e7fdd8;
|
|
48
|
+
padding: 4px 12px;
|
|
49
|
+
color: #357a14;
|
|
50
|
+
font-weight: 700;
|
|
51
|
+
font-size: 11px;
|
|
52
|
+
line-height: 12px;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
.storybook-page .tip-wrapper {
|
|
56
|
+
margin-top: 40px;
|
|
57
|
+
margin-bottom: 40px;
|
|
58
|
+
font-size: 13px;
|
|
59
|
+
line-height: 20px;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
.storybook-page .tip-wrapper svg {
|
|
63
|
+
display: inline-block;
|
|
64
|
+
vertical-align: top;
|
|
65
|
+
margin-top: 3px;
|
|
66
|
+
margin-right: 4px;
|
|
67
|
+
width: 12px;
|
|
68
|
+
height: 12px;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
.storybook-page .tip-wrapper svg path {
|
|
72
|
+
fill: #1ea7fd;
|
|
73
|
+
}
|
package/lib/test-setup.js
CHANGED
|
@@ -2,6 +2,78 @@
|
|
|
2
2
|
* Copyright (c) 2023-2025 Datalayer, Inc.
|
|
3
3
|
* Distributed under the terms of the Modified BSD License.
|
|
4
4
|
*/
|
|
5
|
-
export {};
|
|
6
5
|
// Test setup for unit tests
|
|
7
6
|
// Add any global test configuration here
|
|
7
|
+
// Define webpack globals that are expected by some dependencies
|
|
8
|
+
global.__webpack_public_path__ = '';
|
|
9
|
+
// Define other globals that might be needed
|
|
10
|
+
global.global = globalThis;
|
|
11
|
+
// Mock DragEvent and other DOM APIs not available in jsdom
|
|
12
|
+
class MockDragEvent extends Event {
|
|
13
|
+
dataTransfer = null;
|
|
14
|
+
constructor(type, init) {
|
|
15
|
+
super(type, init);
|
|
16
|
+
this.dataTransfer = init?.dataTransfer || null;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
// Mock DataTransfer if not available
|
|
20
|
+
class MockDataTransfer {
|
|
21
|
+
dropEffect = 'none';
|
|
22
|
+
effectAllowed = 'uninitialized';
|
|
23
|
+
files = [];
|
|
24
|
+
items = [];
|
|
25
|
+
types = [];
|
|
26
|
+
clearData(format) { }
|
|
27
|
+
getData(format) {
|
|
28
|
+
return '';
|
|
29
|
+
}
|
|
30
|
+
setData(format, data) { }
|
|
31
|
+
setDragImage(image, x, y) { }
|
|
32
|
+
}
|
|
33
|
+
// Add missing DOM APIs to global scope
|
|
34
|
+
global.DragEvent = MockDragEvent;
|
|
35
|
+
global.DataTransfer = MockDataTransfer;
|
|
36
|
+
// Mock window.matchMedia
|
|
37
|
+
Object.defineProperty(window, 'matchMedia', {
|
|
38
|
+
writable: true,
|
|
39
|
+
value: (query) => ({
|
|
40
|
+
matches: false,
|
|
41
|
+
media: query,
|
|
42
|
+
onchange: null,
|
|
43
|
+
addListener: () => { }, // deprecated
|
|
44
|
+
removeListener: () => { }, // deprecated
|
|
45
|
+
addEventListener: () => { },
|
|
46
|
+
removeEventListener: () => { },
|
|
47
|
+
dispatchEvent: () => { },
|
|
48
|
+
}),
|
|
49
|
+
});
|
|
50
|
+
// Mock Jupyter-related modules to prevent import errors
|
|
51
|
+
import { vi } from 'vitest';
|
|
52
|
+
vi.mock('@datalayer/jupyter-react', () => ({
|
|
53
|
+
useJupyter: () => ({
|
|
54
|
+
defaultKernel: null,
|
|
55
|
+
serviceManager: null,
|
|
56
|
+
}),
|
|
57
|
+
JupyterReactTheme: ({ children }) => children,
|
|
58
|
+
CollaborationProviderBase: class CollaborationProviderBase {
|
|
59
|
+
},
|
|
60
|
+
CollaborationStatus: {
|
|
61
|
+
IDLE: 'idle',
|
|
62
|
+
CONNECTING: 'connecting',
|
|
63
|
+
CONNECTED: 'connected',
|
|
64
|
+
DISCONNECTED: 'disconnected',
|
|
65
|
+
},
|
|
66
|
+
}));
|
|
67
|
+
vi.mock('@jupyter/web-components', () => ({}));
|
|
68
|
+
vi.mock('@jupyter/ydoc', () => ({
|
|
69
|
+
YNotebook: class YNotebook {
|
|
70
|
+
},
|
|
71
|
+
}));
|
|
72
|
+
vi.mock('y-websocket', () => ({
|
|
73
|
+
WebsocketProvider: class WebsocketProvider {
|
|
74
|
+
constructor() { }
|
|
75
|
+
connect() { }
|
|
76
|
+
disconnect() { }
|
|
77
|
+
destroy() { }
|
|
78
|
+
},
|
|
79
|
+
}));
|
|
@@ -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
|
import { theme as primerTheme } from '@primer/react';
|
|
11
6
|
import cloneDeep from 'lodash/cloneDeep.js';
|
|
12
7
|
import merge from 'lodash/merge.js';
|
|
@@ -47,7 +42,7 @@ const datalayerThemeDefs = {
|
|
|
47
42
|
dark: {
|
|
48
43
|
colors: {},
|
|
49
44
|
shadows: {},
|
|
50
|
-
}
|
|
45
|
+
},
|
|
51
46
|
},
|
|
52
47
|
};
|
|
53
48
|
const { colorSchemes: primerSchemes, ...primerOthers } = cloneDeep(primerTheme);
|
|
@@ -3,13 +3,8 @@ 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
6
|
import { useEffect, useState } from 'react';
|
|
12
|
-
import { BaseStyles, ThemeProvider as PrimerThemeProvider } from '@primer/react';
|
|
7
|
+
import { BaseStyles, ThemeProvider as PrimerThemeProvider, } from '@primer/react';
|
|
13
8
|
import { loadJupyterConfig, jupyterLabTheme } from '@datalayer/jupyter-react';
|
|
14
9
|
import { datalayerTheme } from '../theme';
|
|
15
10
|
import { useRuntimesStore } from '../state';
|
|
@@ -33,7 +28,9 @@ export function DatalayerThemeProvider(props) {
|
|
|
33
28
|
setColorMode(matches ? 'dark' : 'light');
|
|
34
29
|
}
|
|
35
30
|
function updateColorMode(themeManager) {
|
|
36
|
-
setColorMode(themeManager.theme && !themeManager.isLight(themeManager.theme)
|
|
31
|
+
setColorMode(themeManager.theme && !themeManager.isLight(themeManager.theme)
|
|
32
|
+
? 'dark'
|
|
33
|
+
: 'light');
|
|
37
34
|
}
|
|
38
35
|
if (inJupyterLab) {
|
|
39
36
|
// TODO remove the try/catch for JupyterLab > 4.1.
|
|
@@ -53,22 +50,23 @@ export function DatalayerThemeProvider(props) {
|
|
|
53
50
|
}
|
|
54
51
|
else {
|
|
55
52
|
colorSchemeFromMedia({
|
|
56
|
-
matches: window.matchMedia('(prefers-color-scheme: dark)').matches
|
|
53
|
+
matches: window.matchMedia('(prefers-color-scheme: dark)').matches,
|
|
57
54
|
});
|
|
58
|
-
window
|
|
55
|
+
window
|
|
56
|
+
.matchMedia('(prefers-color-scheme: dark)')
|
|
57
|
+
.addEventListener('change', colorSchemeFromMedia);
|
|
59
58
|
return () => {
|
|
60
|
-
window
|
|
59
|
+
window
|
|
60
|
+
.matchMedia('(prefers-color-scheme: dark)')
|
|
61
|
+
.removeEventListener('change', colorSchemeFromMedia);
|
|
61
62
|
};
|
|
62
63
|
}
|
|
63
64
|
}
|
|
64
65
|
}, [inJupyterLab, jupyterLabAdapter]);
|
|
65
|
-
return
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
}, children: children }) })
|
|
72
|
-
:
|
|
73
|
-
_jsx(_Fragment, {}));
|
|
66
|
+
return inJupyterLab !== undefined ? (_jsx(PrimerThemeProvider, { colorMode: colorMode, theme: inJupyterLab ? jupyterLabTheme : datalayerTheme, ...rest, children: _jsx(BaseStyles, { style: {
|
|
67
|
+
backgroundColor: 'var(--bgColor-default)',
|
|
68
|
+
color: 'var(--fgColor-default)',
|
|
69
|
+
fontSize: 'var(--text-body-size-medium)',
|
|
70
|
+
...baseStyles,
|
|
71
|
+
}, children: children }) })) : (_jsx(_Fragment, {}));
|
|
74
72
|
}
|
package/lib/theme/Palette.js
CHANGED
|
@@ -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
|
const JUPYTERLAB_COLLABORATORS_COLORS = {
|
|
11
6
|
'--jp-collaborator-color1': '#ffad8e',
|
|
12
7
|
'--jp-collaborator-color2': '#dac83d',
|
|
@@ -14,7 +9,7 @@ const JUPYTERLAB_COLLABORATORS_COLORS = {
|
|
|
14
9
|
'--jp-collaborator-color4': '#00e4d0',
|
|
15
10
|
'--jp-collaborator-color5': '#45d4ff',
|
|
16
11
|
'--jp-collaborator-color6': '#e2b1ff',
|
|
17
|
-
'--jp-collaborator-color7': '#ff9de6'
|
|
12
|
+
'--jp-collaborator-color7': '#ff9de6',
|
|
18
13
|
};
|
|
19
14
|
export const jpCssToColor = (cssVariableName) => {
|
|
20
15
|
return JUPYTERLAB_COLLABORATORS_COLORS[cssVariableName.replaceAll('var(', '').replaceAll(')', '')];
|
package/lib/theme/index.js
CHANGED
|
@@ -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 './DatalayerTheme';
|
|
11
6
|
export * from './DatalayerThemeProvider';
|
|
12
7
|
export * from './Palette';
|
package/lib/utils/Array.js
CHANGED
|
@@ -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 const asArray = (obj) => {
|
|
11
6
|
if (Array.isArray(obj)) {
|
|
12
7
|
return obj;
|
package/lib/utils/Avatar.js
CHANGED
|
@@ -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 const DEFAULT_AVATAR_URL = 'https://avatars.githubusercontent.com/u/70511875?s=200&v=4';
|
|
11
6
|
export const DEFAULT_AVATAR_URL_ENCODED = encodeURIComponent(DEFAULT_AVATAR_URL);
|
|
12
7
|
function stringToColor(string) {
|
|
@@ -31,8 +26,8 @@ export function stringAvatar(name) {
|
|
|
31
26
|
};
|
|
32
27
|
}
|
|
33
28
|
export function getAvatarURL(url) {
|
|
34
|
-
return url
|
|
35
|
-
url.startsWith('https://www.gravatar.com/avatar')
|
|
29
|
+
return url
|
|
30
|
+
? url.startsWith('https://www.gravatar.com/avatar')
|
|
36
31
|
? `${url}?v=4&s=200&d=${DEFAULT_AVATAR_URL_ENCODED}` // Use gravatar syntax - sizing works for Gravatar and GitHub
|
|
37
32
|
: url
|
|
38
33
|
: DEFAULT_AVATAR_URL; // This fallback should barely be used - hence we allow decoding the URI.
|
package/lib/utils/Browser.js
CHANGED
|
@@ -2,33 +2,28 @@
|
|
|
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
|
// https://stackoverflow.com/questions/49328382/browser-detection-in-reactjs
|
|
11
6
|
// https://codepedia.info/detect-browser-in-javascript
|
|
12
7
|
export const detectBrowser = () => {
|
|
13
8
|
const userAgent = navigator.userAgent;
|
|
14
9
|
let browserName;
|
|
15
10
|
if (userAgent.match(/chrome|chromium|crios/i)) {
|
|
16
|
-
browserName =
|
|
11
|
+
browserName = 'chrome';
|
|
17
12
|
}
|
|
18
13
|
else if (userAgent.match(/firefox|fxios/i)) {
|
|
19
|
-
browserName =
|
|
14
|
+
browserName = 'firefox';
|
|
20
15
|
}
|
|
21
16
|
else if (userAgent.match(/safari/i)) {
|
|
22
|
-
browserName =
|
|
17
|
+
browserName = 'safari';
|
|
23
18
|
}
|
|
24
19
|
else if (userAgent.match(/opr\//i)) {
|
|
25
|
-
browserName =
|
|
20
|
+
browserName = 'opera';
|
|
26
21
|
}
|
|
27
22
|
else if (userAgent.match(/edg/i)) {
|
|
28
|
-
browserName =
|
|
23
|
+
browserName = 'edge';
|
|
29
24
|
}
|
|
30
25
|
else {
|
|
31
|
-
browserName =
|
|
26
|
+
browserName = 'Unknow browser.';
|
|
32
27
|
}
|
|
33
28
|
return browserName;
|
|
34
29
|
};
|
package/lib/utils/Cells.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { IDataset } from
|
|
1
|
+
import { IDataset } from '../models';
|
|
2
2
|
export declare const getDatasetCell: (dataset: IDataset) => string;
|
package/lib/utils/Cookie.js
CHANGED
|
@@ -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
|
/**
|
|
11
6
|
* Get a cookie from the document.
|
|
12
7
|
*/
|
|
@@ -21,7 +16,7 @@ export function getCookie(cname) {
|
|
|
21
16
|
return cookie;
|
|
22
17
|
}
|
|
23
18
|
// From https://www.w3schools.com/js/js_cookies.asp
|
|
24
|
-
const name = cname +
|
|
19
|
+
const name = cname + '=';
|
|
25
20
|
const decodedCookie = decodeURIComponent(document.cookie);
|
|
26
21
|
const ca = decodedCookie.split(';');
|
|
27
22
|
for (let i = 0; i < ca.length; i++) {
|
package/lib/utils/Date.js
CHANGED
|
@@ -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
|
//- Taken from https://stackoverflow.com/questions/6108819/javascript-timestamp-to-relative-time
|
|
11
6
|
// in miliseconds
|
|
12
7
|
const units = {
|
|
@@ -15,14 +10,14 @@ const units = {
|
|
|
15
10
|
day: 24 * 60 * 60 * 1000,
|
|
16
11
|
hour: 60 * 60 * 1000,
|
|
17
12
|
minute: 60 * 1000,
|
|
18
|
-
second: 1000
|
|
13
|
+
second: 1000,
|
|
19
14
|
};
|
|
20
15
|
const rtf = new Intl.RelativeTimeFormat(undefined, {
|
|
21
16
|
numeric: 'auto',
|
|
22
|
-
style: 'short'
|
|
17
|
+
style: 'short',
|
|
23
18
|
});
|
|
24
19
|
export const getRelativeTime = (d1, d2 = new Date()) => {
|
|
25
|
-
|
|
20
|
+
const elapsed = d1.getTime() - d2.getTime();
|
|
26
21
|
// "Math.abs" accounts for both "past" & "future" scenarios
|
|
27
22
|
for (const u in units)
|
|
28
23
|
if (Math.abs(elapsed) > units[u] || u === 'second')
|
|
@@ -34,8 +29,8 @@ const p = (i) => {
|
|
|
34
29
|
return i > 1 ? 's' : '';
|
|
35
30
|
};
|
|
36
31
|
export const timeSince = (date) => {
|
|
37
|
-
|
|
38
|
-
|
|
32
|
+
const seconds = Math.floor((new Date().getTime() - date.getTime()) / 1000);
|
|
33
|
+
let interval = seconds / 31536000;
|
|
39
34
|
if (interval > 1) {
|
|
40
35
|
const i = Math.floor(interval);
|
|
41
36
|
return i + ` year${p(i)}`;
|
package/lib/utils/Download.js
CHANGED
|
@@ -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 function jsonToCSVString(json) {
|
|
11
6
|
const headers = Object.keys(json[0]);
|
|
12
7
|
let csvString = '';
|
|
@@ -14,10 +9,10 @@ export function jsonToCSVString(json) {
|
|
|
14
9
|
json.forEach(obj => {
|
|
15
10
|
const rowCells = headers.map(header => {
|
|
16
11
|
const val = obj[header];
|
|
17
|
-
if (typeof val ===
|
|
12
|
+
if (typeof val === 'number') {
|
|
18
13
|
return val;
|
|
19
14
|
}
|
|
20
|
-
if (typeof val ===
|
|
15
|
+
if (typeof val === 'string') {
|
|
21
16
|
return val;
|
|
22
17
|
}
|
|
23
18
|
if (val instanceof Date) {
|
|
@@ -31,7 +26,9 @@ export function jsonToCSVString(json) {
|
|
|
31
26
|
return csvString;
|
|
32
27
|
}
|
|
33
28
|
export const downloadJson = (data, fileName, extension) => {
|
|
34
|
-
const jsonData = new Blob([JSON.stringify(data)], {
|
|
29
|
+
const jsonData = new Blob([JSON.stringify(data)], {
|
|
30
|
+
type: 'application/json',
|
|
31
|
+
});
|
|
35
32
|
const jsonURL = URL.createObjectURL(jsonData);
|
|
36
33
|
const jsonLink = document.createElement('a');
|
|
37
34
|
jsonLink.href = jsonURL;
|
|
@@ -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
|
/**
|
|
11
6
|
* @param data
|
|
12
7
|
* @param filename
|
|
@@ -16,9 +11,11 @@
|
|
|
16
11
|
* .zip ZIP archive application/zip
|
|
17
12
|
*/
|
|
18
13
|
export const downloadFile = (data, filename, mime, bom) => {
|
|
19
|
-
const blobData =
|
|
14
|
+
const blobData = typeof bom !== 'undefined' ? [bom, data] : [data];
|
|
20
15
|
const blob = new Blob(blobData, { type: mime || 'application/octet-stream' });
|
|
21
|
-
const blobURL =
|
|
16
|
+
const blobURL = window.URL && window.URL.createObjectURL
|
|
17
|
+
? window.URL.createObjectURL(blob)
|
|
18
|
+
: window.webkitURL.createObjectURL(blob);
|
|
22
19
|
const tempLink = document.createElement('a');
|
|
23
20
|
tempLink.style.display = 'none';
|
|
24
21
|
tempLink.href = blobURL;
|
package/lib/utils/Env.js
CHANGED
|
@@ -2,11 +2,7 @@
|
|
|
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 const isDevDeployment = () => {
|
|
11
|
-
return location.hostname.startsWith('dev') ||
|
|
6
|
+
return (location.hostname.startsWith('dev') ||
|
|
7
|
+
location.hostname.startsWith('localhost'));
|
|
12
8
|
};
|
package/lib/utils/File.js
CHANGED
package/lib/utils/Ids.js
CHANGED
|
@@ -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
|
import { v4 as uuid_v4 } from 'uuid';
|
|
11
6
|
import { ulid } from 'ulid';
|
|
12
7
|
export const newUuid = () => {
|
package/lib/utils/Jupyter.js
CHANGED
|
@@ -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
|
import { PageConfig } from '@jupyterlab/coreutils';
|
|
11
6
|
let _insideJupyterLab = null;
|
|
12
7
|
export function isInsideJupyterLab() {
|
package/lib/utils/Lazy.d.ts
CHANGED
package/lib/utils/Lazy.js
CHANGED
|
@@ -2,13 +2,7 @@
|
|
|
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
|
-
// Taken from https://github.com/ianschmitz/react-lazy-with-preload with Datalayer License.
|
|
11
|
-
import { createElement, forwardRef, lazy as reactLazy } from "react";
|
|
5
|
+
import { createElement, forwardRef, lazy as reactLazy, } from 'react';
|
|
12
6
|
export function lazyWithPreload(factory) {
|
|
13
7
|
const LazyComponent = reactLazy(factory);
|
|
14
8
|
let factoryPromise;
|
|
@@ -18,7 +12,7 @@ export function lazyWithPreload(factory) {
|
|
|
18
12
|
});
|
|
19
13
|
Component.preload = () => {
|
|
20
14
|
if (!factoryPromise) {
|
|
21
|
-
factoryPromise = factory().then(
|
|
15
|
+
factoryPromise = factory().then(module => {
|
|
22
16
|
LoadedComponent = module.default;
|
|
23
17
|
});
|
|
24
18
|
}
|