@datalayer/core 0.0.1 → 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +187 -7
- package/lib/App.css +47 -0
- package/lib/App.d.ts +3 -0
- package/lib/App.js +21 -5
- package/lib/__tests__/App.test.d.ts +1 -0
- package/lib/__tests__/App.test.js +17 -0
- package/lib/__tests__/hooks.test.d.ts +1 -0
- package/lib/__tests__/hooks.test.js +19 -0
- package/lib/__tests__/index.test.d.ts +1 -0
- package/lib/__tests__/index.test.js +27 -0
- package/lib/__tests__/integration.test.d.ts +1 -0
- package/lib/__tests__/integration.test.js +57 -0
- package/lib/__tests__/utils.test.d.ts +1 -0
- package/lib/__tests__/utils.test.js +59 -0
- package/lib/api/DatalayerApi.d.ts +75 -0
- package/lib/api/DatalayerApi.js +145 -0
- package/lib/api/index.d.ts +3 -0
- package/lib/api/index.js +7 -0
- package/lib/api/jupyter/exec/Python.d.ts +5 -0
- package/lib/api/jupyter/exec/Python.js +100 -0
- package/lib/api/jupyter/exec/Snippets.d.ts +145 -0
- package/lib/api/jupyter/exec/Snippets.js +120 -0
- package/lib/api/jupyter/exec/index.d.ts +2 -0
- package/lib/api/jupyter/exec/index.js +6 -0
- package/lib/api/jupyter/index.d.ts +2 -0
- package/lib/api/jupyter/index.js +6 -0
- package/lib/api/jupyter/kernelsHandler.d.ts +8 -0
- package/lib/api/jupyter/kernelsHandler.js +39 -0
- package/lib/api/runtimes/actions.d.ts +102 -0
- package/lib/api/runtimes/actions.js +264 -0
- package/lib/api/runtimes/apis.d.ts +273 -0
- package/lib/api/runtimes/apis.js +5 -0
- package/lib/api/runtimes/index.d.ts +5 -0
- package/lib/api/runtimes/index.js +9 -0
- package/lib/api/runtimes/settings.d.ts +15 -0
- package/lib/api/runtimes/settings.js +31 -0
- package/lib/api/runtimes/snapshots.d.ts +25 -0
- package/lib/api/runtimes/snapshots.js +150 -0
- package/lib/api/runtimes/utils.d.ts +7 -0
- package/lib/api/runtimes/utils.js +17 -0
- package/lib/assets/react.svg +1 -0
- package/lib/components/avatars/BoringAvatar.d.ts +19 -0
- package/lib/components/avatars/BoringAvatar.js +44 -0
- package/lib/components/avatars/BoringAvatar.stories.d.ts +27 -0
- package/lib/components/avatars/BoringAvatar.stories.js +23 -0
- package/lib/components/avatars/UserProfileAvatar.d.ts +13 -0
- package/lib/components/avatars/UserProfileAvatar.js +32 -0
- package/lib/components/avatars/index.d.ts +2 -0
- package/lib/components/avatars/index.js +6 -0
- package/lib/components/banners/NoAutomationBanner.d.ts +2 -0
- package/lib/components/banners/NoAutomationBanner.js +13 -0
- package/lib/components/banners/index.d.ts +1 -0
- package/lib/components/banners/index.js +5 -0
- package/lib/components/buttons/DownloadCSVButton.d.ts +13 -0
- package/lib/components/buttons/DownloadCSVButton.js +16 -0
- package/lib/components/buttons/DownloadJsonButton.d.ts +16 -0
- package/lib/components/buttons/DownloadJsonButton.js +18 -0
- package/lib/components/buttons/LongActionButton.d.ts +28 -0
- package/lib/components/buttons/LongActionButton.js +24 -0
- package/lib/components/buttons/UploadButton.d.ts +37 -0
- package/lib/components/buttons/UploadButton.js +43 -0
- package/lib/components/buttons/VariantType.d.ts +1 -0
- package/lib/components/buttons/VariantType.js +5 -0
- package/lib/components/buttons/index.d.ts +5 -0
- package/lib/components/buttons/index.js +9 -0
- package/lib/components/checkout/StripeCheckout.d.ts +32 -0
- package/lib/components/checkout/StripeCheckout.js +95 -0
- package/lib/components/checkout/index.d.ts +1 -0
- package/lib/components/checkout/index.js +5 -0
- package/lib/components/confetti/ConfettiSuccess.d.ts +2 -0
- package/lib/components/confetti/ConfettiSuccess.js +12 -0
- package/lib/components/confetti/index.d.ts +1 -0
- package/lib/components/confetti/index.js +5 -0
- package/lib/components/context/OrganizationSelect.d.ts +2 -0
- package/lib/components/context/OrganizationSelect.js +35 -0
- package/lib/components/context/SpaceSelect.d.ts +2 -0
- package/lib/components/context/SpaceSelect.js +43 -0
- package/lib/components/context/index.d.ts +2 -0
- package/lib/components/context/index.js +6 -0
- package/lib/components/display/AvatarSkeleton.d.ts +5 -0
- package/lib/components/display/AvatarSkeleton.js +11 -0
- package/lib/components/display/CenteredSpinner.d.ts +14 -0
- package/lib/components/display/CenteredSpinner.js +20 -0
- package/lib/components/display/CodePreview.d.ts +4 -0
- package/lib/components/display/CodePreview.js +15 -0
- package/lib/components/display/DatalayerBox.d.ts +8 -0
- package/lib/components/display/DatalayerBox.js +28 -0
- package/lib/components/display/HorizontalCenter.d.ts +9 -0
- package/lib/components/display/HorizontalCenter.js +14 -0
- package/lib/components/display/JupyterDialog.d.ts +69 -0
- package/lib/components/display/JupyterDialog.js +115 -0
- package/lib/components/display/Markdown.d.ts +23 -0
- package/lib/components/display/Markdown.js +20 -0
- package/lib/components/display/NavLink.d.ts +9 -0
- package/lib/components/display/NavLink.js +17 -0
- package/lib/components/display/NotebookSkeleton.d.ts +2 -0
- package/lib/components/display/NotebookSkeleton.js +11 -0
- package/lib/components/display/Placeholder.d.ts +2 -0
- package/lib/components/display/Placeholder.js +9 -0
- package/lib/components/display/ToTopBranded.d.ts +2 -0
- package/lib/components/display/ToTopBranded.js +11 -0
- package/lib/components/display/VisuallyHidden.d.ts +5 -0
- package/lib/components/display/VisuallyHidden.js +24 -0
- package/lib/components/display/index.d.ts +12 -0
- package/lib/components/display/index.js +16 -0
- package/lib/components/echarts/EChartsReact.d.ts +11 -0
- package/lib/components/echarts/EChartsReact.js +53 -0
- package/lib/components/echarts/index.d.ts +1 -0
- package/lib/components/echarts/index.js +5 -0
- package/lib/components/flashes/FlashClosable.d.ts +22 -0
- package/lib/components/flashes/FlashClosable.js +64 -0
- package/lib/components/flashes/FlashDisclaimer.d.ts +2 -0
- package/lib/components/flashes/FlashDisclaimer.js +18 -0
- package/lib/components/flashes/FlashGuest.d.ts +2 -0
- package/lib/components/flashes/FlashGuest.js +30 -0
- package/lib/components/flashes/FlashSurveys.d.ts +6 -0
- package/lib/components/flashes/FlashSurveys.js +36 -0
- package/lib/components/flashes/FlashUnauthorized.d.ts +2 -0
- package/lib/components/flashes/FlashUnauthorized.js +18 -0
- package/lib/components/flashes/index.d.ts +6 -0
- package/lib/components/flashes/index.js +10 -0
- package/lib/components/flashes/surveys/Survey2025_1.d.ts +3 -0
- package/lib/components/flashes/surveys/Survey2025_1.js +129 -0
- package/lib/components/flashes/surveys/SurveyProps.d.ts +6 -0
- package/lib/components/flashes/surveys/SurveyProps.js +5 -0
- package/lib/components/flashes/surveys/index.d.ts +2 -0
- package/lib/components/flashes/surveys/index.js +6 -0
- package/lib/components/iam/ExternalTokenSilentLogin.d.ts +5 -0
- package/lib/components/iam/ExternalTokenSilentLogin.js +33 -0
- package/lib/components/iam/index.d.ts +1 -0
- package/lib/components/iam/index.js +5 -0
- package/lib/components/icons/ArtifactIcon.d.ts +10 -0
- package/lib/components/icons/ArtifactIcon.js +58 -0
- package/lib/components/icons/index.d.ts +1 -0
- package/lib/components/icons/index.js +5 -0
- package/lib/components/index.d.ts +1 -0
- package/lib/components/index.js +5 -0
- package/lib/components/labels/VisibilityLabel.d.ts +4 -0
- package/lib/components/labels/VisibilityLabel.js +17 -0
- package/lib/components/labels/index.d.ts +1 -0
- package/lib/components/labels/index.js +5 -0
- package/lib/components/landings/StepBlock.d.ts +11 -0
- package/lib/components/landings/StepBlock.js +12 -0
- package/lib/components/landings/index.d.ts +1 -0
- package/lib/components/landings/index.js +5 -0
- package/lib/components/navbar/NavigationVisbilityObserver.d.ts +5 -0
- package/lib/components/navbar/NavigationVisbilityObserver.js +58 -0
- package/lib/components/navbar/SubdomainNavBar.d.ts +81 -0
- package/lib/components/navbar/SubdomainNavBar.js +235 -0
- package/lib/components/navbar/SubdomainNavBar.module.css +718 -0
- package/lib/components/navbar/index.d.ts +2 -0
- package/lib/components/navbar/index.js +6 -0
- package/lib/components/nbgrader/NbGradesDetails.d.ts +5 -0
- package/lib/components/nbgrader/NbGradesDetails.js +17 -0
- package/lib/components/nbgrader/index.d.ts +1 -0
- package/lib/components/nbgrader/index.js +5 -0
- package/lib/components/notebooks/JupyterNotebook.d.ts +12 -0
- package/lib/components/notebooks/JupyterNotebook.js +36 -0
- package/lib/components/notebooks/JupyterNotebookToolbar.d.ts +2 -0
- package/lib/components/notebooks/JupyterNotebookToolbar.js +39 -0
- package/lib/components/notebooks/index.d.ts +2 -0
- package/lib/components/notebooks/index.js +6 -0
- package/lib/components/primer/Helper.d.ts +32 -0
- package/lib/components/primer/Helper.js +19 -0
- package/lib/components/primer/Portals.d.ts +9 -0
- package/lib/components/primer/Portals.js +26 -0
- package/lib/components/primer/Styles.d.ts +2 -0
- package/lib/components/primer/Styles.js +11 -0
- package/lib/components/primer/index.d.ts +2 -0
- package/lib/components/primer/index.js +6 -0
- package/lib/components/progress/ConsumptionBar.d.ts +40 -0
- package/lib/components/progress/ConsumptionBar.js +49 -0
- package/lib/components/progress/CreditsIndicator.d.ts +27 -0
- package/lib/components/progress/CreditsIndicator.js +24 -0
- package/lib/components/progress/ProgressBar.d.ts +2 -0
- package/lib/components/progress/ProgressBar.js +21 -0
- package/lib/components/progress/ProgressRing.d.ts +36 -0
- package/lib/components/progress/ProgressRing.js +31 -0
- package/lib/components/progress/Timer.d.ts +9 -0
- package/lib/components/progress/Timer.js +28 -0
- package/lib/components/progress/index.d.ts +5 -0
- package/lib/components/progress/index.js +9 -0
- package/lib/components/runtimes/RuntimeCellVariables.d.ts +39 -0
- package/lib/components/runtimes/RuntimeCellVariables.js +172 -0
- package/lib/components/runtimes/RuntimeCellVariablesDialog.d.ts +37 -0
- package/lib/components/runtimes/RuntimeCellVariablesDialog.js +101 -0
- package/lib/components/runtimes/RuntimeLauncherDialog.d.ts +53 -0
- package/lib/components/runtimes/RuntimeLauncherDialog.js +250 -0
- package/lib/components/runtimes/RuntimePickerBase.d.ts +69 -0
- package/lib/components/runtimes/RuntimePickerBase.js +109 -0
- package/lib/components/runtimes/RuntimePickerCell.d.ts +34 -0
- package/lib/components/runtimes/RuntimePickerCell.js +106 -0
- package/lib/components/runtimes/RuntimePickerNotebook.d.ts +42 -0
- package/lib/components/runtimes/RuntimePickerNotebook.js +168 -0
- package/lib/components/runtimes/RuntimeReservationControl.d.ts +47 -0
- package/lib/components/runtimes/RuntimeReservationControl.js +38 -0
- package/lib/components/runtimes/RuntimeSimplePicker.d.ts +34 -0
- package/lib/components/runtimes/RuntimeSimplePicker.js +156 -0
- package/lib/components/runtimes/RuntimeTransfer.d.ts +16 -0
- package/lib/components/runtimes/RuntimeTransfer.js +5 -0
- package/lib/components/runtimes/RuntimeUtils.d.ts +17 -0
- package/lib/components/runtimes/RuntimeUtils.js +168 -0
- package/lib/components/runtimes/RuntimeVariables.d.ts +38 -0
- package/lib/components/runtimes/RuntimeVariables.js +75 -0
- package/lib/components/runtimes/index.d.ts +11 -0
- package/lib/components/runtimes/index.js +15 -0
- package/lib/components/screenshot/ScreenCapture.d.ts +38 -0
- package/lib/components/screenshot/ScreenCapture.js +174 -0
- package/lib/components/screenshot/ScreenCaptureButton.d.ts +3 -0
- package/lib/components/screenshot/ScreenCaptureButton.js +21 -0
- package/lib/components/screenshot/index.d.ts +2 -0
- package/lib/components/screenshot/index.js +6 -0
- package/lib/components/snapshots/RuntimeSnapshotMenu.d.ts +36 -0
- package/lib/components/snapshots/RuntimeSnapshotMenu.js +164 -0
- package/lib/components/snapshots/index.d.ts +1 -0
- package/lib/components/snapshots/index.js +5 -0
- package/lib/components/snippets/SnippetDialog.d.ts +42 -0
- package/lib/components/snippets/SnippetDialog.js +42 -0
- package/lib/components/snippets/index.d.ts +1 -0
- package/lib/components/snippets/index.js +5 -0
- package/lib/components/storage/ContentsBrowser.d.ts +32 -0
- package/lib/components/storage/ContentsBrowser.js +255 -0
- package/lib/components/storage/ContentsItems.d.ts +58 -0
- package/lib/components/storage/ContentsItems.js +78 -0
- package/lib/components/storage/index.d.ts +2 -0
- package/lib/components/storage/index.js +6 -0
- package/lib/components/students/StudentItemStatus.d.ts +7 -0
- package/lib/components/students/StudentItemStatus.js +47 -0
- package/lib/components/students/index.d.ts +1 -0
- package/lib/components/students/index.js +5 -0
- package/lib/components/subnav/SubNav.d.ts +84 -0
- package/lib/components/subnav/SubNav.js +265 -0
- package/lib/components/subnav/SubNav.module.css +683 -0
- package/lib/components/subnav/index.d.ts +1 -0
- package/lib/components/subnav/index.js +5 -0
- package/lib/components/tables/DataTable.d.ts +5 -0
- package/lib/components/tables/DataTable.js +19 -0
- package/lib/components/tables/index.d.ts +1 -0
- package/lib/components/tables/index.js +5 -0
- package/lib/components/text-reveal/TextRevealAnimation.d.ts +6 -0
- package/lib/components/text-reveal/TextRevealAnimation.js +49 -0
- package/lib/components/text-reveal/TextRevealAnimation.module.css +43 -0
- package/lib/components/text-reveal/index.d.ts +1 -0
- package/lib/components/text-reveal/index.js +5 -0
- package/lib/components/text-reveal/useTextRevealAnimationLines.d.ts +4 -0
- package/lib/components/text-reveal/useTextRevealAnimationLines.js +47 -0
- package/lib/components/tokens/SpaceVariantToken.d.ts +5 -0
- package/lib/components/tokens/SpaceVariantToken.js +20 -0
- package/lib/components/tokens/index.d.ts +1 -0
- package/lib/components/tokens/index.js +5 -0
- package/lib/components/toolbars/AssignmentEditorToolbar.d.ts +4 -0
- package/lib/components/toolbars/AssignmentEditorToolbar.js +18 -0
- package/lib/components/toolbars/DocumentEditorToolbar.d.ts +2 -0
- package/lib/components/toolbars/DocumentEditorToolbar.js +12 -0
- package/lib/components/toolbars/NotebookEditorToolbar.d.ts +29 -0
- package/lib/components/toolbars/NotebookEditorToolbar.js +30 -0
- package/lib/components/toolbars/index.d.ts +3 -0
- package/lib/components/toolbars/index.js +7 -0
- package/lib/components/users/PeerIndicator.d.ts +18 -0
- package/lib/components/users/PeerIndicator.js +100 -0
- package/lib/components/users/index.d.ts +1 -0
- package/lib/components/users/index.js +5 -0
- package/lib/config/Configuration.d.ts +111 -0
- package/lib/config/Configuration.js +25 -0
- package/lib/config/index.d.ts +2 -0
- package/lib/config/index.js +6 -0
- package/lib/config/integrations/Loom.d.ts +1 -0
- package/lib/config/integrations/Loom.js +16 -0
- package/lib/config/integrations/index.d.ts +1 -0
- package/lib/config/integrations/index.js +5 -0
- package/lib/examples/CellExample.d.ts +6 -0
- package/lib/examples/CellExample.js +24 -0
- package/lib/examples/NotebookExample.d.ts +8 -0
- package/lib/examples/NotebookExample.js +22 -0
- package/lib/examples/NotebookExample1.ipynb.json +136 -0
- package/lib/hooks/assets/OutputshotPlaceholders.d.ts +19 -0
- package/lib/hooks/assets/OutputshotPlaceholders.js +23 -0
- package/lib/hooks/assets/index.d.ts +1 -0
- package/lib/hooks/assets/index.js +5 -0
- package/lib/hooks/index.d.ts +28 -0
- package/lib/hooks/index.js +33 -0
- package/lib/hooks/layouts/LayoutBackdrop.d.ts +2 -0
- package/lib/hooks/layouts/LayoutBackdrop.js +30 -0
- package/lib/hooks/layouts/LayoutScreenshot.css +58 -0
- package/lib/hooks/layouts/LayoutScreenshot.d.ts +3 -0
- package/lib/hooks/layouts/LayoutScreenshot.js +44 -0
- package/lib/hooks/layouts/index.d.ts +2 -0
- package/lib/hooks/layouts/index.js +6 -0
- package/lib/hooks/useAIAgents.d.ts +13 -0
- package/lib/hooks/useAIAgents.js +72 -0
- package/lib/hooks/useAuthorization.d.ts +19 -0
- package/lib/hooks/useAuthorization.js +124 -0
- package/lib/hooks/useBackdrop.d.ts +28 -0
- package/lib/hooks/useBackdrop.js +100 -0
- package/lib/hooks/useBackdropJupyterLab.d.ts +15 -0
- package/lib/hooks/useBackdropJupyterLab.js +51 -0
- package/lib/hooks/useCache.d.ts +306 -0
- package/lib/hooks/useCache.js +3098 -0
- package/lib/hooks/useCellOutputshot.d.ts +4 -0
- package/lib/hooks/useCellOutputshot.js +28 -0
- package/lib/hooks/useContainsFocus.d.ts +9 -0
- package/lib/hooks/useContainsFocus.js +43 -0
- package/lib/hooks/useDatalayer.d.ts +21 -0
- package/lib/hooks/useDatalayer.js +81 -0
- package/lib/hooks/useError.d.ts +9 -0
- package/lib/hooks/useError.js +26 -0
- package/lib/hooks/useExternalScript.d.ts +2 -0
- package/lib/hooks/useExternalScript.js +17 -0
- package/lib/hooks/useFocusTrap.d.ts +30 -0
- package/lib/hooks/useFocusTrap.js +48 -0
- package/lib/hooks/useIAM.d.ts +14 -0
- package/lib/hooks/useIAM.js +93 -0
- package/lib/hooks/useId.d.ts +19 -0
- package/lib/hooks/useId.js +100 -0
- package/lib/hooks/useIsomorphicLayoutEffect.d.ts +3 -0
- package/lib/hooks/useIsomorphicLayoutEffect.js +11 -0
- package/lib/hooks/useJupyterLabTheme.d.ts +6 -0
- package/lib/hooks/useJupyterLabTheme.js +24 -0
- package/lib/hooks/useKeyboardEscape.d.ts +1 -0
- package/lib/hooks/useKeyboardEscape.js +18 -0
- package/lib/hooks/useLocationHandles.d.ts +10 -0
- package/lib/hooks/useLocationHandles.js +22 -0
- package/lib/hooks/useNavigate.d.ts +2 -0
- package/lib/hooks/useNavigate.js +24 -0
- package/lib/hooks/useNotebookAIAgent.d.ts +8 -0
- package/lib/hooks/useNotebookAIAgent.js +54 -0
- package/lib/hooks/useOnClickOutside.d.ts +1 -0
- package/lib/hooks/useOnClickOutside.js +29 -0
- package/lib/hooks/useRef.d.ts +10 -0
- package/lib/hooks/useRef.js +17 -0
- package/lib/hooks/useRuntimes.d.ts +5 -0
- package/lib/hooks/useRuntimes.js +34 -0
- package/lib/hooks/useScreenshot.d.ts +21 -0
- package/lib/hooks/useScreenshot.js +60 -0
- package/lib/hooks/useToast.d.ts +42 -0
- package/lib/hooks/useToast.js +141 -0
- package/lib/hooks/useUpload.d.ts +7 -0
- package/lib/hooks/useUpload.js +46 -0
- package/lib/hooks/useUser.d.ts +3 -0
- package/lib/hooks/useUser.js +22 -0
- package/lib/hooks/useVisibilityObserver.d.ts +5 -0
- package/lib/hooks/useVisibilityObserver.js +42 -0
- package/lib/hooks/useWindowSize.d.ts +21 -0
- package/lib/hooks/useWindowSize.js +74 -0
- package/lib/i18n/Labels.d.ts +1 -0
- package/lib/i18n/Labels.js +5 -0
- package/lib/i18n/index.d.ts +1 -0
- package/lib/i18n/index.js +5 -0
- package/lib/index.css +73 -0
- package/lib/index.d.ts +3 -0
- package/lib/index.js +6 -0
- package/lib/main.d.ts +1 -0
- package/lib/main.js +5 -2
- package/lib/mocks/components/FlashMock.d.ts +2 -0
- package/lib/mocks/components/FlashMock.js +13 -0
- package/lib/mocks/components/index.d.ts +1 -0
- package/lib/mocks/components/index.js +5 -0
- package/lib/mocks/hooks/index.d.ts +1 -0
- package/lib/mocks/hooks/index.js +5 -0
- package/lib/mocks/hooks/rests/index.d.ts +1 -0
- package/lib/mocks/hooks/rests/index.js +5 -0
- package/lib/mocks/hooks/rests/rests.d.ts +22 -0
- package/lib/mocks/hooks/rests/rests.js +32 -0
- package/lib/mocks/hooks/useDatalayerMock.d.ts +6 -0
- package/lib/mocks/hooks/useDatalayerMock.js +78 -0
- package/lib/mocks/index.d.ts +4 -0
- package/lib/mocks/index.js +9 -0
- package/lib/mocks/jupyter/index.d.ts +1 -0
- package/lib/mocks/jupyter/index.js +5 -0
- package/lib/mocks/models/CodeBlockMock.d.ts +1 -0
- package/lib/mocks/models/CodeBlockMock.js +5 -0
- package/lib/mocks/models/CodelineMock.d.ts +1 -0
- package/lib/mocks/models/CodelineMock.js +5 -0
- package/lib/mocks/models/CourseMock.d.ts +6 -0
- package/lib/mocks/models/CourseMock.js +29 -0
- package/lib/mocks/models/InviteMock.d.ts +6 -0
- package/lib/mocks/models/InviteMock.js +22 -0
- package/lib/mocks/models/JupyterLabUserMock.d.ts +2 -0
- package/lib/mocks/models/JupyterLabUserMock.js +17 -0
- package/lib/mocks/models/OrganisationMock.d.ts +5 -0
- package/lib/mocks/models/OrganisationMock.js +24 -0
- package/lib/mocks/models/SchoolMock.d.ts +6 -0
- package/lib/mocks/models/SchoolMock.js +25 -0
- package/lib/mocks/models/SpaceMock.d.ts +6 -0
- package/lib/mocks/models/SpaceMock.js +25 -0
- package/lib/mocks/models/TeamMock.d.ts +5 -0
- package/lib/mocks/models/TeamMock.js +26 -0
- package/lib/mocks/models/UserMock.d.ts +2 -0
- package/lib/mocks/models/UserMock.js +29 -0
- package/lib/mocks/models/index.d.ts +9 -0
- package/lib/mocks/models/index.js +13 -0
- package/lib/mocks/views/ActionMenuMock.d.ts +5 -0
- package/lib/mocks/views/ActionMenuMock.js +12 -0
- package/lib/mocks/views/ChartMock.d.ts +5 -0
- package/lib/mocks/views/ChartMock.js +15 -0
- package/lib/mocks/views/ChartMockOptions.d.ts +92 -0
- package/lib/mocks/views/ChartMockOptions.js +102 -0
- package/lib/mocks/views/DashboardMock.d.ts +2 -0
- package/lib/mocks/views/DashboardMock.js +118 -0
- package/lib/mocks/views/FormMock.d.ts +5 -0
- package/lib/mocks/views/FormMock.js +28 -0
- package/lib/mocks/views/TableMock.d.ts +5 -0
- package/lib/mocks/views/TableMock.js +155 -0
- package/lib/mocks/views/WipMock.d.ts +5 -0
- package/lib/mocks/views/WipMock.js +12 -0
- package/lib/mocks/views/index.d.ts +7 -0
- package/lib/mocks/views/index.js +11 -0
- package/lib/models/AIAgent.d.ts +17 -0
- package/lib/models/AIAgent.js +5 -0
- package/lib/models/Account.d.ts +4 -0
- package/lib/models/Account.js +5 -0
- package/lib/models/Assignment.d.ts +7 -0
- package/lib/models/Assignment.js +5 -0
- package/lib/models/Base.d.ts +16 -0
- package/lib/models/Base.js +5 -0
- package/lib/models/Cell.d.ts +8 -0
- package/lib/models/Cell.js +5 -0
- package/lib/models/CodeBlock.d.ts +10 -0
- package/lib/models/CodeBlock.js +5 -0
- package/lib/models/CodefeedBlocks.d.ts +7 -0
- package/lib/models/CodefeedBlocks.js +5 -0
- package/lib/models/Contact.d.ts +73 -0
- package/lib/models/Contact.js +90 -0
- package/lib/models/ContactEvent.d.ts +10 -0
- package/lib/models/ContactEvent.js +14 -0
- package/lib/models/ContactIAMProvider.d.ts +12 -0
- package/lib/models/ContactIAMProvider.js +20 -0
- package/lib/models/ContactTags.d.ts +23 -0
- package/lib/models/ContactTags.js +73 -0
- package/lib/models/Content.d.ts +5 -0
- package/lib/models/Content.js +5 -0
- package/lib/models/Course.d.ts +17 -0
- package/lib/models/Course.js +5 -0
- package/lib/models/Credits.d.ts +76 -0
- package/lib/models/Credits.js +11 -0
- package/lib/models/Dataset.d.ts +16 -0
- package/lib/models/Dataset.js +5 -0
- package/lib/models/Datasource.d.ts +11 -0
- package/lib/models/Datasource.js +14 -0
- package/lib/models/Dean.d.ts +3 -0
- package/lib/models/Dean.js +5 -0
- package/lib/models/Document.d.ts +8 -0
- package/lib/models/Document.js +5 -0
- package/lib/models/Environment.d.ts +82 -0
- package/lib/models/Environment.js +5 -0
- package/lib/models/Errors.d.ts +6 -0
- package/lib/models/Errors.js +13 -0
- package/lib/models/Exercise.d.ts +16 -0
- package/lib/models/Exercise.js +5 -0
- package/lib/models/GrowthKPI.d.ts +5 -0
- package/lib/models/GrowthKPI.js +9 -0
- package/lib/models/IAMProviderLinked.d.ts +9 -0
- package/lib/models/IAMProviderLinked.js +13 -0
- package/lib/models/IAMProviderPost.d.ts +8 -0
- package/lib/models/IAMProviderPost.js +22 -0
- package/lib/models/IAMProviderUsers.d.ts +49 -0
- package/lib/models/IAMProviderUsers.js +29 -0
- package/lib/models/IAMProvidersSpecs.d.ts +22 -0
- package/lib/models/IAMProvidersSpecs.js +72 -0
- package/lib/models/IAMToken.d.ts +11 -0
- package/lib/models/IAMToken.js +14 -0
- package/lib/models/Inbound.d.ts +25 -0
- package/lib/models/Inbound.js +29 -0
- package/lib/models/Instructor.d.ts +3 -0
- package/lib/models/Instructor.js +5 -0
- package/lib/models/Invite.d.ts +14 -0
- package/lib/models/Invite.js +24 -0
- package/lib/models/Item.d.ts +20 -0
- package/lib/models/Item.js +5 -0
- package/lib/models/ItemType.d.ts +2 -0
- package/lib/models/ItemType.js +5 -0
- package/lib/models/LandingRoles.d.ts +3 -0
- package/lib/models/LandingRoles.js +27 -0
- package/lib/models/Lesson.d.ts +5 -0
- package/lib/models/Lesson.js +5 -0
- package/lib/models/Library.d.ts +10 -0
- package/lib/models/Library.js +5 -0
- package/lib/models/Member.d.ts +3 -0
- package/lib/models/Member.js +5 -0
- package/lib/models/Notebook.d.ts +11 -0
- package/lib/models/Notebook.js +5 -0
- package/lib/models/Organization.d.ts +27 -0
- package/lib/models/Organization.js +36 -0
- package/lib/models/OrganizationMember.d.ts +6 -0
- package/lib/models/OrganizationMember.js +5 -0
- package/lib/models/Outbound.d.ts +41 -0
- package/lib/models/Outbound.js +45 -0
- package/lib/models/Page.d.ts +36 -0
- package/lib/models/Page.js +23 -0
- package/lib/models/PageTag.d.ts +19 -0
- package/lib/models/PageTag.js +26 -0
- package/lib/models/Profile.d.ts +1 -0
- package/lib/models/Profile.js +5 -0
- package/lib/models/Role.d.ts +9 -0
- package/lib/models/Role.js +5 -0
- package/lib/models/RolesOrganization.d.ts +9 -0
- package/lib/models/RolesOrganization.js +58 -0
- package/lib/models/RolesPlatform.d.ts +16 -0
- package/lib/models/RolesPlatform.js +142 -0
- package/lib/models/RolesTeam.d.ts +7 -0
- package/lib/models/RolesTeam.js +34 -0
- package/lib/models/Runtime.d.ts +123 -0
- package/lib/models/Runtime.js +18 -0
- package/lib/models/RuntimeSnapshot.d.ts +92 -0
- package/lib/models/RuntimeSnapshot.js +13 -0
- package/lib/models/School.d.ts +11 -0
- package/lib/models/School.js +5 -0
- package/lib/models/Secret.d.ts +10 -0
- package/lib/models/Secret.js +13 -0
- package/lib/models/Space.d.ts +34 -0
- package/lib/models/Space.js +39 -0
- package/lib/models/SpaceItem.d.ts +10 -0
- package/lib/models/SpaceItem.js +5 -0
- package/lib/models/SpaceMember.d.ts +6 -0
- package/lib/models/SpaceMember.js +5 -0
- package/lib/models/Student.d.ts +6 -0
- package/lib/models/Student.js +5 -0
- package/lib/models/StudentItem.d.ts +21 -0
- package/lib/models/StudentItem.js +5 -0
- package/lib/models/Survey.d.ts +20 -0
- package/lib/models/Survey.js +14 -0
- package/lib/models/Team.d.ts +22 -0
- package/lib/models/Team.js +32 -0
- package/lib/models/TeamMember.d.ts +6 -0
- package/lib/models/TeamMember.js +5 -0
- package/lib/models/URN.d.ts +63 -0
- package/lib/models/URN.js +40 -0
- package/lib/models/Usage.d.ts +46 -0
- package/lib/models/Usage.js +21 -0
- package/lib/models/User.d.ts +71 -0
- package/lib/models/User.js +98 -0
- package/lib/models/UserEvent.d.ts +10 -0
- package/lib/models/UserEvent.js +14 -0
- package/lib/models/UserOnboarding.d.ts +14 -0
- package/lib/models/UserOnboarding.js +19 -0
- package/lib/models/UserSettings.d.ts +16 -0
- package/lib/models/UserSettings.js +27 -0
- package/lib/models/WaitingListFormData.d.ts +6 -0
- package/lib/models/WaitingListFormData.js +5 -0
- package/lib/models/index.d.ts +65 -0
- package/lib/models/index.js +69 -0
- package/lib/routes/Routes.d.ts +3 -0
- package/lib/routes/Routes.js +7 -0
- package/lib/routes/index.d.ts +1 -0
- package/lib/routes/index.js +5 -0
- package/lib/state/State.d.ts +33 -0
- package/lib/state/State.js +44 -0
- package/lib/state/index.d.ts +3 -0
- package/lib/state/index.js +7 -0
- package/lib/state/storage/IAMStorage.d.ts +33 -0
- package/lib/state/storage/IAMStorage.js +76 -0
- package/lib/state/storage/index.d.ts +1 -0
- package/lib/state/storage/index.js +5 -0
- package/lib/state/substates/AIAgentState.d.ts +11 -0
- package/lib/state/substates/AIAgentState.js +40 -0
- package/lib/state/substates/CellState.d.ts +12 -0
- package/lib/state/substates/CellState.js +21 -0
- package/lib/state/substates/CoreState.d.ts +25 -0
- package/lib/state/substates/CoreState.js +88 -0
- package/lib/state/substates/DatasourceState.d.ts +11 -0
- package/lib/state/substates/DatasourceState.js +16 -0
- package/lib/state/substates/DocumentState.d.ts +10 -0
- package/lib/state/substates/DocumentState.js +14 -0
- package/lib/state/substates/GradeState.d.ts +10 -0
- package/lib/state/substates/GradeState.js +14 -0
- package/lib/state/substates/IAMState.d.ts +75 -0
- package/lib/state/substates/IAMState.js +291 -0
- package/lib/state/substates/JupyterLabState.d.ts +16 -0
- package/lib/state/substates/JupyterLabState.js +17 -0
- package/lib/state/substates/LayoutState.d.ts +62 -0
- package/lib/state/substates/LayoutState.js +74 -0
- package/lib/state/substates/NbformatState.d.ts +13 -0
- package/lib/state/substates/NbformatState.js +16 -0
- package/lib/state/substates/OrganizationState.d.ts +11 -0
- package/lib/state/substates/OrganizationState.js +16 -0
- package/lib/state/substates/RuntimesState.d.ts +88 -0
- package/lib/state/substates/RuntimesState.js +178 -0
- package/lib/state/substates/SpaceState.d.ts +11 -0
- package/lib/state/substates/SpaceState.js +16 -0
- package/lib/state/substates/SurveysState.d.ts +14 -0
- package/lib/state/substates/SurveysState.js +98 -0
- package/lib/state/substates/TeamState.d.ts +11 -0
- package/lib/state/substates/TeamState.js +17 -0
- package/lib/state/substates/index.d.ts +15 -0
- package/lib/state/substates/index.js +19 -0
- 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.d.ts +1 -0
- package/lib/test-setup.js +57 -0
- package/lib/theme/DatalayerTheme.d.ts +37 -0
- package/lib/theme/DatalayerTheme.js +62 -0
- package/lib/theme/DatalayerThemeProvider.d.ts +17 -0
- package/lib/theme/DatalayerThemeProvider.js +69 -0
- package/lib/theme/Palette.d.ts +5 -0
- package/lib/theme/Palette.js +22 -0
- package/lib/theme/index.d.ts +3 -0
- package/lib/theme/index.js +7 -0
- package/lib/utils/Array.d.ts +2 -0
- package/lib/utils/Array.js +16 -0
- package/lib/utils/Avatar.d.ts +9 -0
- package/lib/utils/Avatar.js +34 -0
- package/lib/utils/Browser.d.ts +3 -0
- package/lib/utils/Browser.js +63 -0
- package/lib/utils/Cells.d.ts +2 -0
- package/lib/utils/Cells.js +28 -0
- package/lib/utils/Cookie.d.ts +12 -0
- package/lib/utils/Cookie.js +48 -0
- package/lib/utils/Date.d.ts +2 -0
- package/lib/utils/Date.js +60 -0
- package/lib/utils/Download.d.ts +3 -0
- package/lib/utils/Download.js +48 -0
- package/lib/utils/DownloadFile.d.ts +10 -0
- package/lib/utils/DownloadFile.js +36 -0
- package/lib/utils/Env.d.ts +1 -0
- package/lib/utils/Env.js +7 -0
- package/lib/utils/File.d.ts +7 -0
- package/lib/utils/File.js +16 -0
- package/lib/utils/Format.d.ts +17 -0
- package/lib/utils/Format.js +54 -0
- package/lib/utils/Ids.d.ts +2 -0
- package/lib/utils/Ids.js +12 -0
- package/lib/utils/Jupyter.d.ts +1 -0
- package/lib/utils/Jupyter.js +12 -0
- package/lib/utils/Lazy.d.ts +8 -0
- package/lib/utils/Lazy.js +23 -0
- package/lib/utils/Msc.d.ts +16 -0
- package/lib/utils/Msc.js +28 -0
- package/lib/utils/Name.d.ts +7 -0
- package/lib/utils/Name.js +34 -0
- package/lib/utils/Notebook.d.ts +19 -0
- package/lib/utils/Notebook.js +37 -0
- package/lib/utils/Number.d.ts +1 -0
- package/lib/utils/Number.js +21 -0
- package/lib/utils/Plots.d.ts +16 -0
- package/lib/utils/Plots.js +56 -0
- package/lib/utils/Random.d.ts +1 -0
- package/lib/utils/Random.js +7 -0
- package/lib/utils/Screenshot.d.ts +1 -0
- package/lib/utils/Screenshot.js +27 -0
- package/lib/utils/Scroll.d.ts +2 -0
- package/lib/utils/Scroll.js +32 -0
- package/lib/utils/Sleep.d.ts +2 -0
- package/lib/utils/Sleep.js +8 -0
- package/lib/utils/Snapshot.d.ts +7 -0
- package/lib/utils/Snapshot.js +21 -0
- package/lib/utils/String.d.ts +1 -0
- package/lib/utils/String.js +13 -0
- package/lib/utils/Uri.d.ts +2 -0
- package/lib/utils/Uri.js +26 -0
- package/lib/utils/Validator.d.ts +12 -0
- package/lib/utils/Validator.js +44 -0
- package/lib/utils/WithSuspense.d.ts +2 -0
- package/lib/utils/WithSuspense.js +21 -0
- package/lib/utils/index.d.ts +26 -0
- package/lib/utils/index.js +31 -0
- package/package.json +86 -17
- package/style/animation/Animation.module.css +174 -0
- package/style/base.css +62 -3
- package/style/index.css +2 -3
- package/style/index.js +0 -7
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2023-2025 Datalayer, Inc.
|
|
3
|
+
* Distributed under the terms of the Modified BSD License.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* creates name of file.
|
|
7
|
+
*
|
|
8
|
+
* @param {string} extension
|
|
9
|
+
* @param {string[]} parts of file name
|
|
10
|
+
*/
|
|
11
|
+
export const createFileName = (extension = '', ...names) => {
|
|
12
|
+
if (!extension) {
|
|
13
|
+
return '';
|
|
14
|
+
}
|
|
15
|
+
return `${names.join('')}.${extension}`;
|
|
16
|
+
};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The type of unit used for reporting memory usage.
|
|
3
|
+
*/
|
|
4
|
+
export type MemoryUnit = 'B' | 'KB' | 'MB' | 'GB' | 'TB' | 'PB';
|
|
5
|
+
/**
|
|
6
|
+
* The number of bytes in each memory unit.
|
|
7
|
+
*/
|
|
8
|
+
export declare const MEMORY_UNIT_LIMITS: {
|
|
9
|
+
readonly [U in MemoryUnit]: number;
|
|
10
|
+
};
|
|
11
|
+
export declare function formatForDisplay(numBytes: number | undefined, units?: MemoryUnit | undefined): string;
|
|
12
|
+
/**
|
|
13
|
+
* Given a number of bytes, convert to the most human-readable
|
|
14
|
+
* format, (GB, TB, etc).
|
|
15
|
+
* If "units" is given, convert to that scale
|
|
16
|
+
*/
|
|
17
|
+
export declare function convertToLargestUnit(numBytes: number | undefined, units?: MemoryUnit): [number, MemoryUnit];
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2023-2025 Datalayer, Inc.
|
|
3
|
+
* Distributed under the terms of the Modified BSD License.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* The number of bytes in each memory unit.
|
|
7
|
+
*/
|
|
8
|
+
export const MEMORY_UNIT_LIMITS = {
|
|
9
|
+
B: 1,
|
|
10
|
+
KB: 1024,
|
|
11
|
+
MB: 1048576,
|
|
12
|
+
GB: 1073741824,
|
|
13
|
+
TB: 1099511627776,
|
|
14
|
+
PB: 1125899906842624,
|
|
15
|
+
};
|
|
16
|
+
export function formatForDisplay(numBytes, units) {
|
|
17
|
+
const lu = convertToLargestUnit(numBytes, units);
|
|
18
|
+
return lu[0].toFixed(2) + ' ' + lu[1];
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Given a number of bytes, convert to the most human-readable
|
|
22
|
+
* format, (GB, TB, etc).
|
|
23
|
+
* If "units" is given, convert to that scale
|
|
24
|
+
*/
|
|
25
|
+
export function convertToLargestUnit(numBytes, units) {
|
|
26
|
+
if (!numBytes) {
|
|
27
|
+
return [0, 'B'];
|
|
28
|
+
}
|
|
29
|
+
if (units && units in MEMORY_UNIT_LIMITS) {
|
|
30
|
+
return [numBytes / MEMORY_UNIT_LIMITS[units], units];
|
|
31
|
+
}
|
|
32
|
+
else if (numBytes < MEMORY_UNIT_LIMITS.KB) {
|
|
33
|
+
return [numBytes, 'B'];
|
|
34
|
+
}
|
|
35
|
+
else if (MEMORY_UNIT_LIMITS.KB === numBytes ||
|
|
36
|
+
numBytes < MEMORY_UNIT_LIMITS.MB) {
|
|
37
|
+
return [numBytes / MEMORY_UNIT_LIMITS.KB, 'KB'];
|
|
38
|
+
}
|
|
39
|
+
else if (MEMORY_UNIT_LIMITS.MB === numBytes ||
|
|
40
|
+
numBytes < MEMORY_UNIT_LIMITS.GB) {
|
|
41
|
+
return [numBytes / MEMORY_UNIT_LIMITS.MB, 'MB'];
|
|
42
|
+
}
|
|
43
|
+
else if (MEMORY_UNIT_LIMITS.GB === numBytes ||
|
|
44
|
+
numBytes < MEMORY_UNIT_LIMITS.TB) {
|
|
45
|
+
return [numBytes / MEMORY_UNIT_LIMITS.GB, 'GB'];
|
|
46
|
+
}
|
|
47
|
+
else if (MEMORY_UNIT_LIMITS.TB === numBytes ||
|
|
48
|
+
numBytes < MEMORY_UNIT_LIMITS.PB) {
|
|
49
|
+
return [numBytes / MEMORY_UNIT_LIMITS.TB, 'TB'];
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
return [numBytes / MEMORY_UNIT_LIMITS.PB, 'PB'];
|
|
53
|
+
}
|
|
54
|
+
}
|
package/lib/utils/Ids.js
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2023-2025 Datalayer, Inc.
|
|
3
|
+
* Distributed under the terms of the Modified BSD License.
|
|
4
|
+
*/
|
|
5
|
+
import { v4 as uuid_v4 } from 'uuid';
|
|
6
|
+
import { ulid } from 'ulid';
|
|
7
|
+
export const newUuid = () => {
|
|
8
|
+
return uuid_v4();
|
|
9
|
+
};
|
|
10
|
+
export const newUlid = () => {
|
|
11
|
+
return ulid();
|
|
12
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function isInsideJupyterLab(): boolean;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2023-2025 Datalayer, Inc.
|
|
3
|
+
* Distributed under the terms of the Modified BSD License.
|
|
4
|
+
*/
|
|
5
|
+
import { PageConfig } from '@jupyterlab/coreutils';
|
|
6
|
+
let _insideJupyterLab = null;
|
|
7
|
+
export function isInsideJupyterLab() {
|
|
8
|
+
if (_insideJupyterLab === null) {
|
|
9
|
+
_insideJupyterLab = PageConfig.getOption('appName') === 'JupyterLab';
|
|
10
|
+
}
|
|
11
|
+
return _insideJupyterLab;
|
|
12
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ComponentType } from "react";
|
|
2
|
+
export type PreloadableComponent<T extends ComponentType<any>> = T & {
|
|
3
|
+
preload: () => Promise<void>;
|
|
4
|
+
};
|
|
5
|
+
export declare function lazyWithPreload<T extends ComponentType<any>>(factory: () => Promise<{
|
|
6
|
+
default: T;
|
|
7
|
+
}>): PreloadableComponent<T>;
|
|
8
|
+
export default lazyWithPreload;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2023-2025 Datalayer, Inc.
|
|
3
|
+
* Distributed under the terms of the Modified BSD License.
|
|
4
|
+
*/
|
|
5
|
+
import { createElement, forwardRef, lazy as reactLazy } from "react";
|
|
6
|
+
export function lazyWithPreload(factory) {
|
|
7
|
+
const LazyComponent = reactLazy(factory);
|
|
8
|
+
let factoryPromise;
|
|
9
|
+
let LoadedComponent;
|
|
10
|
+
const Component = forwardRef(function LazyWithPreload(props, ref) {
|
|
11
|
+
return createElement(LoadedComponent ?? LazyComponent, Object.assign(ref ? { ref } : {}, props));
|
|
12
|
+
});
|
|
13
|
+
Component.preload = () => {
|
|
14
|
+
if (!factoryPromise) {
|
|
15
|
+
factoryPromise = factory().then((module) => {
|
|
16
|
+
LoadedComponent = module.default;
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
return factoryPromise;
|
|
20
|
+
};
|
|
21
|
+
return Component;
|
|
22
|
+
}
|
|
23
|
+
export default lazyWithPreload;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Utility function to format strings
|
|
3
|
+
*/
|
|
4
|
+
export declare const formatString: (input: string) => string;
|
|
5
|
+
/**
|
|
6
|
+
* Utility function to add numbers
|
|
7
|
+
*/
|
|
8
|
+
export declare const addNumbers: (a: number, b: number) => number;
|
|
9
|
+
/**
|
|
10
|
+
* Utility function to check if a value is defined
|
|
11
|
+
*/
|
|
12
|
+
export declare const isDefined: <T>(value: T | undefined | null) => value is T;
|
|
13
|
+
/**
|
|
14
|
+
* Utility function to delay execution
|
|
15
|
+
*/
|
|
16
|
+
export declare const delay: (ms: number) => Promise<void>;
|
package/lib/utils/Msc.js
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2023-2025 Datalayer, Inc.
|
|
3
|
+
* Distributed under the terms of the Modified BSD License.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Utility function to format strings
|
|
7
|
+
*/
|
|
8
|
+
export const formatString = (input) => {
|
|
9
|
+
return input.trim().toLowerCase();
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* Utility function to add numbers
|
|
13
|
+
*/
|
|
14
|
+
export const addNumbers = (a, b) => {
|
|
15
|
+
return a + b;
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* Utility function to check if a value is defined
|
|
19
|
+
*/
|
|
20
|
+
export const isDefined = (value) => {
|
|
21
|
+
return value !== undefined && value !== null;
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* Utility function to delay execution
|
|
25
|
+
*/
|
|
26
|
+
export const delay = (ms) => {
|
|
27
|
+
return new Promise(resolve => setTimeout(resolve, ms));
|
|
28
|
+
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export declare const asDisplayName: (givenName: string, familyName: string) => string;
|
|
2
|
+
export declare const nameAsInitials: (name: string) => string;
|
|
3
|
+
export declare const namesAsInitials: (firstName: string, lastName: string) => string;
|
|
4
|
+
/**
|
|
5
|
+
* Convert first and last names to a friendly name.
|
|
6
|
+
*/
|
|
7
|
+
export declare const toFriendlyName: (firstName?: string, lastName?: string) => string;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2023-2025 Datalayer, Inc.
|
|
3
|
+
* Distributed under the terms of the Modified BSD License.
|
|
4
|
+
*/
|
|
5
|
+
export const asDisplayName = (givenName, familyName) => {
|
|
6
|
+
return givenName ?
|
|
7
|
+
familyName ?
|
|
8
|
+
(givenName + ' ' + familyName) : givenName
|
|
9
|
+
:
|
|
10
|
+
familyName ?? '';
|
|
11
|
+
};
|
|
12
|
+
export const nameAsInitials = (name) => {
|
|
13
|
+
return name
|
|
14
|
+
.replace(/\s+/, ' ')
|
|
15
|
+
.split(' ')
|
|
16
|
+
.slice(0, 2)
|
|
17
|
+
.map((v) => v && v[0].toUpperCase())
|
|
18
|
+
.join('');
|
|
19
|
+
};
|
|
20
|
+
export const namesAsInitials = (firstName, lastName) => {
|
|
21
|
+
return ((firstName || ' ').charAt(0) + (lastName || ' ').charAt(0)).toLocaleUpperCase().trim();
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* Convert first and last names to a friendly name.
|
|
25
|
+
*/
|
|
26
|
+
export const toFriendlyName = (firstName, lastName) => {
|
|
27
|
+
if (firstName) {
|
|
28
|
+
return firstName;
|
|
29
|
+
}
|
|
30
|
+
if (lastName) {
|
|
31
|
+
return lastName;
|
|
32
|
+
}
|
|
33
|
+
return "";
|
|
34
|
+
};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { JupyterLab } from '@jupyterlab/application';
|
|
2
|
+
/**
|
|
3
|
+
* Create a notebook
|
|
4
|
+
*
|
|
5
|
+
* @param app JupyterLab application
|
|
6
|
+
* @param name Notebook name
|
|
7
|
+
* @param url Notebook content URL
|
|
8
|
+
*/
|
|
9
|
+
export declare const createNotebook: ({ app, name, url, options }: {
|
|
10
|
+
app: JupyterLab;
|
|
11
|
+
name?: string;
|
|
12
|
+
url?: string;
|
|
13
|
+
options?: {
|
|
14
|
+
cwd?: string;
|
|
15
|
+
kernelId?: string;
|
|
16
|
+
kernelName?: string;
|
|
17
|
+
};
|
|
18
|
+
}) => Promise<void>;
|
|
19
|
+
export declare const createNotebookVariant: (app: JupyterLab, name: string, url: string) => Promise<void>;
|
|
@@ -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
|
+
* Create a notebook
|
|
7
|
+
*
|
|
8
|
+
* @param app JupyterLab application
|
|
9
|
+
* @param name Notebook name
|
|
10
|
+
* @param url Notebook content URL
|
|
11
|
+
*/
|
|
12
|
+
export const createNotebook = async ({ app, name, url, options }) => {
|
|
13
|
+
const notebook = await app.commands.execute('notebook:create-new', options);
|
|
14
|
+
/*
|
|
15
|
+
if (name) {
|
|
16
|
+
notebook.context.rename(name + '.ipynb');
|
|
17
|
+
}
|
|
18
|
+
*/
|
|
19
|
+
if (url) {
|
|
20
|
+
const nbmodel = await fetch(url);
|
|
21
|
+
const nbmodelText = await nbmodel.text();
|
|
22
|
+
const text = nbmodelText.replaceAll('\n', `
|
|
23
|
+
`);
|
|
24
|
+
notebook.context.model.fromJSON({
|
|
25
|
+
...JSON.parse(text)
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
export const createNotebookVariant = async (app, name, url) => {
|
|
30
|
+
const notebook = await app.commands.execute('notebook:create-new', { cwd: '/' });
|
|
31
|
+
notebook.context.rename(name + '.ipynb');
|
|
32
|
+
const nbmodel = await fetch(url);
|
|
33
|
+
const text = (await nbmodel.text()).replaceAll('\\n', '');
|
|
34
|
+
notebook.context.model.fromJSON({
|
|
35
|
+
...JSON.parse(text)
|
|
36
|
+
});
|
|
37
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function numberFormatter(num: number, digits?: number): string;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2023-2025 Datalayer, Inc.
|
|
3
|
+
* Distributed under the terms of the Modified BSD License.
|
|
4
|
+
*/
|
|
5
|
+
const LOOKUP_VALUE_SYMBOL = [
|
|
6
|
+
{ value: 1, symbol: "" },
|
|
7
|
+
{ value: 1e3, symbol: "K" },
|
|
8
|
+
{ value: 1e6, symbol: "M" },
|
|
9
|
+
{ value: 1e9, symbol: "G" },
|
|
10
|
+
{ value: 1e12, symbol: "T" },
|
|
11
|
+
{ value: 1e15, symbol: "P" },
|
|
12
|
+
{ value: 1e18, symbol: "E" },
|
|
13
|
+
];
|
|
14
|
+
// https://stackoverflow.com/questions/9461621/format-a-number-as-2-5k-if-a-thousand-or-more-otherwise-900
|
|
15
|
+
export function numberFormatter(num, digits = 1) {
|
|
16
|
+
const rx = /\.0+$|(\.[0-9]*[1-9])0+$/;
|
|
17
|
+
const item = LOOKUP_VALUE_SYMBOL.slice().reverse().find(function (item) {
|
|
18
|
+
return num >= item.value;
|
|
19
|
+
});
|
|
20
|
+
return item ? (num / item.value).toFixed(digits).replace(rx, "$1") + item.symbol : "0";
|
|
21
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { IUsage } from '../models';
|
|
2
|
+
/**
|
|
3
|
+
* Compute the data for plotting the usage histogram.
|
|
4
|
+
*
|
|
5
|
+
* @param usages Usages
|
|
6
|
+
* @param interval Histogram interval
|
|
7
|
+
* @param range Range with month in 1-based scale
|
|
8
|
+
* @returns Histogram data {x: [], y: []}
|
|
9
|
+
*/
|
|
10
|
+
export declare function createHistogram(usages: IUsage[], interval: number, range: {
|
|
11
|
+
month: number;
|
|
12
|
+
year: number;
|
|
13
|
+
}): {
|
|
14
|
+
x: string[];
|
|
15
|
+
y: number[];
|
|
16
|
+
};
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2023-2025 Datalayer, Inc.
|
|
3
|
+
* Distributed under the terms of the Modified BSD License.
|
|
4
|
+
*/
|
|
5
|
+
import { getDate, getDaysInMonth, getMonth, isSameMonth, isSameYear } from 'date-fns';
|
|
6
|
+
/**
|
|
7
|
+
* Compute the data for plotting the usage histogram.
|
|
8
|
+
*
|
|
9
|
+
* @param usages Usages
|
|
10
|
+
* @param interval Histogram interval
|
|
11
|
+
* @param range Range with month in 1-based scale
|
|
12
|
+
* @returns Histogram data {x: [], y: []}
|
|
13
|
+
*/
|
|
14
|
+
export function createHistogram(usages, interval, range) {
|
|
15
|
+
const referenceDate = new Date(range.year, range.month - 1);
|
|
16
|
+
const now = Date.now();
|
|
17
|
+
const credits = usages
|
|
18
|
+
.filter(c => interval === 0
|
|
19
|
+
? isSameMonth(c.startDate, referenceDate)
|
|
20
|
+
: isSameYear(c.startDate, referenceDate))
|
|
21
|
+
.map(c => {
|
|
22
|
+
const start = c.startDate;
|
|
23
|
+
const end = c.endDate?.getTime() ?? now;
|
|
24
|
+
return {
|
|
25
|
+
credits: typeof c.credits === 'number'
|
|
26
|
+
? c.credits
|
|
27
|
+
: ((end - start.getTime()) * c.burningRate) / 1000,
|
|
28
|
+
// getDate is 1-based but getMonth is 0-based
|
|
29
|
+
category: interval === 0 ? getDate(start) - 1 : getMonth(start)
|
|
30
|
+
};
|
|
31
|
+
})
|
|
32
|
+
.reduce((agg, d) => {
|
|
33
|
+
agg[d.category] += d.credits;
|
|
34
|
+
return agg;
|
|
35
|
+
}, new Array(interval === 0 ? getDaysInMonth(referenceDate) : 12).fill(0))
|
|
36
|
+
.map(c => Math.round(c));
|
|
37
|
+
return {
|
|
38
|
+
x: interval === 0
|
|
39
|
+
? credits.map((_, i) => `${i + 1}`)
|
|
40
|
+
: [
|
|
41
|
+
'Jan',
|
|
42
|
+
'Feb',
|
|
43
|
+
'Mar',
|
|
44
|
+
'Apr',
|
|
45
|
+
'May',
|
|
46
|
+
'Jun',
|
|
47
|
+
'Jul',
|
|
48
|
+
'Aug',
|
|
49
|
+
'Sep',
|
|
50
|
+
'Oct',
|
|
51
|
+
'Nov',
|
|
52
|
+
'Dec'
|
|
53
|
+
],
|
|
54
|
+
y: credits
|
|
55
|
+
};
|
|
56
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function getRandomInt(max: number): number;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const takeHTMLNodeScreenshot: (node: HTMLDivElement) => Promise<string>;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2023-2025 Datalayer, Inc.
|
|
3
|
+
* Distributed under the terms of the Modified BSD License.
|
|
4
|
+
*/
|
|
5
|
+
import html2canvas from 'html2canvas';
|
|
6
|
+
export const takeHTMLNodeScreenshot = async (node) => {
|
|
7
|
+
const sc = html2canvas(node, {
|
|
8
|
+
width: node.getBoundingClientRect().width,
|
|
9
|
+
height: node.getBoundingClientRect().height,
|
|
10
|
+
});
|
|
11
|
+
return sc.then((canvas) => {
|
|
12
|
+
const croppedCanvas = document.createElement('canvas');
|
|
13
|
+
const croppedCanvasContext = croppedCanvas.getContext('2d');
|
|
14
|
+
const top = 0;
|
|
15
|
+
const left = 0;
|
|
16
|
+
const width = canvas.width;
|
|
17
|
+
const height = canvas.height;
|
|
18
|
+
croppedCanvas.width = width;
|
|
19
|
+
croppedCanvas.height = height;
|
|
20
|
+
croppedCanvasContext?.drawImage(canvas, left, top, width, height, left, top, width, height);
|
|
21
|
+
// const type = 'image/jpeg';
|
|
22
|
+
const type = 'image/png';
|
|
23
|
+
const quality = 1;
|
|
24
|
+
const outputshotData = croppedCanvas.toDataURL(type, quality);
|
|
25
|
+
return outputshotData;
|
|
26
|
+
});
|
|
27
|
+
};
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2023-2025 Datalayer, Inc.
|
|
3
|
+
* Distributed under the terms of the Modified BSD License.
|
|
4
|
+
*/
|
|
5
|
+
const easeInOutQuad = (t, b, c, d) => {
|
|
6
|
+
t /= d / 2;
|
|
7
|
+
if (t < 1)
|
|
8
|
+
return (c / 2) * t * t + b;
|
|
9
|
+
t--;
|
|
10
|
+
return (-c / 2) * (t * (t - 2) - 1) + b;
|
|
11
|
+
};
|
|
12
|
+
const scrollGo = (element, target, to, duration) => {
|
|
13
|
+
const start = element.scrollTop, change = to - start, increment = 20;
|
|
14
|
+
let currentTime = 0;
|
|
15
|
+
const animateScroll = () => {
|
|
16
|
+
currentTime += increment;
|
|
17
|
+
const scrollTop = easeInOutQuad(currentTime, start, change, duration);
|
|
18
|
+
element.scrollTop = scrollTop;
|
|
19
|
+
if (currentTime < duration) {
|
|
20
|
+
setTimeout(animateScroll, increment);
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
window.location.hash = target;
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
animateScroll();
|
|
27
|
+
};
|
|
28
|
+
const smoothScroll = (target) => {
|
|
29
|
+
const targetScroll = document.getElementById(target);
|
|
30
|
+
scrollGo(document.body, target, targetScroll?.offsetTop, 1250);
|
|
31
|
+
};
|
|
32
|
+
export default smoothScroll;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2023-2025 Datalayer, Inc.
|
|
3
|
+
* Distributed under the terms of the Modified BSD License.
|
|
4
|
+
*/
|
|
5
|
+
import { adjectives, animals, uniqueNamesGenerator } from 'unique-names-generator';
|
|
6
|
+
/**
|
|
7
|
+
* Kernel snapshot description configuration.
|
|
8
|
+
*/
|
|
9
|
+
const KERNEL_SNAPSHOT_DESCRIPTION_CONFIGURATION = {
|
|
10
|
+
dictionaries: [adjectives, animals],
|
|
11
|
+
separator: '-'
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Create an unique human readable kernel snapshot name.
|
|
15
|
+
*
|
|
16
|
+
* @param suffix Name prefix
|
|
17
|
+
* @returns The kernel snapshot name
|
|
18
|
+
*/
|
|
19
|
+
export function createRuntimeSnapshotName(suffix) {
|
|
20
|
+
return `${uniqueNamesGenerator(KERNEL_SNAPSHOT_DESCRIPTION_CONFIGURATION)}-${suffix}`;
|
|
21
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const strip: (s: string | undefined, max?: number) => string;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2023-2025 Datalayer, Inc.
|
|
3
|
+
* Distributed under the terms of the Modified BSD License.
|
|
4
|
+
*/
|
|
5
|
+
export const strip = (s, max = 50) => {
|
|
6
|
+
if (!s) {
|
|
7
|
+
return "";
|
|
8
|
+
}
|
|
9
|
+
if (s.length > max) {
|
|
10
|
+
return s.substring(0, max) + "…";
|
|
11
|
+
}
|
|
12
|
+
return s;
|
|
13
|
+
};
|
package/lib/utils/Uri.js
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2023-2025 Datalayer, Inc.
|
|
3
|
+
* Distributed under the terms of the Modified BSD License.
|
|
4
|
+
*/
|
|
5
|
+
export const currentUri = () => {
|
|
6
|
+
return window.location.protocol + "//" + window.location.host;
|
|
7
|
+
};
|
|
8
|
+
// https://stackoverflow.com/questions/12168909/blob-from-dataurl
|
|
9
|
+
export const dataURItoBlob = (dataURI) => {
|
|
10
|
+
// Convert base64 to raw binary data held in a string.
|
|
11
|
+
// Doesn't handle URLEncoded DataURIs - see SO answer #6850276 for code that does this.
|
|
12
|
+
const byteString = atob(dataURI.split(',')[1]);
|
|
13
|
+
// Separate out the mime component.
|
|
14
|
+
const mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0];
|
|
15
|
+
// Write the bytes of the string to an ArrayBuffer.
|
|
16
|
+
const ab = new ArrayBuffer(byteString.length);
|
|
17
|
+
// Create a view into the buffer.
|
|
18
|
+
const ia = new Uint8Array(ab);
|
|
19
|
+
// Set the bytes of the buffer to the correct values.
|
|
20
|
+
for (let i = 0; i < byteString.length; i++) {
|
|
21
|
+
ia[i] = byteString.charCodeAt(i);
|
|
22
|
+
}
|
|
23
|
+
// Write the ArrayBuffer to a blob, and you're done.
|
|
24
|
+
const blob = new Blob([ab], { type: mimeString });
|
|
25
|
+
return blob;
|
|
26
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export declare const isValidEmail: (value?: string) => boolean;
|
|
2
|
+
/**
|
|
3
|
+
* Verify if a string has a given length or not.
|
|
4
|
+
*/
|
|
5
|
+
export declare const validateLength: (value: string | undefined, minLength: number) => boolean;
|
|
6
|
+
/**
|
|
7
|
+
* Check the password complexity
|
|
8
|
+
* @param password Password to validate
|
|
9
|
+
* @returns Whether the password various criteria
|
|
10
|
+
*/
|
|
11
|
+
export declare function isValidPassword(password: string): boolean;
|
|
12
|
+
export declare function isValidUrl(url: string): boolean;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2023-2025 Datalayer, Inc.
|
|
3
|
+
* Distributed under the terms of the Modified BSD License.
|
|
4
|
+
*/
|
|
5
|
+
const EMAIL_REGEX = /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
|
|
6
|
+
export const isValidEmail = (value) => {
|
|
7
|
+
if (!value) {
|
|
8
|
+
return false;
|
|
9
|
+
}
|
|
10
|
+
if (EMAIL_REGEX.test(value)) {
|
|
11
|
+
return true;
|
|
12
|
+
}
|
|
13
|
+
return false;
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* Verify if a string has a given length or not.
|
|
17
|
+
*/
|
|
18
|
+
export const validateLength = (value, minLength) => {
|
|
19
|
+
if (!value) {
|
|
20
|
+
return false;
|
|
21
|
+
}
|
|
22
|
+
if (value.length >= minLength) {
|
|
23
|
+
return true;
|
|
24
|
+
}
|
|
25
|
+
return false;
|
|
26
|
+
};
|
|
27
|
+
const PASSWORD_REGEX = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[[\]!"$%&/()=?@~`\\.';:+=^*#_-])[A-Za-z\d[\]!"$%&/()=?@~`\\.';:+=^*#_-]{8,64}$/;
|
|
28
|
+
/**
|
|
29
|
+
* Check the password complexity
|
|
30
|
+
* @param password Password to validate
|
|
31
|
+
* @returns Whether the password various criteria
|
|
32
|
+
*/
|
|
33
|
+
export function isValidPassword(password) {
|
|
34
|
+
return PASSWORD_REGEX.test(password);
|
|
35
|
+
}
|
|
36
|
+
export function isValidUrl(url) {
|
|
37
|
+
try {
|
|
38
|
+
new URL(url);
|
|
39
|
+
return true;
|
|
40
|
+
}
|
|
41
|
+
catch (err) {
|
|
42
|
+
return false;
|
|
43
|
+
}
|
|
44
|
+
}
|