@env-hopper/frontend-core 2.0.1-alpha
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/LICENSE +21 -0
- package/dist/apple-touch-180x180.png +0 -0
- package/dist/disable.well-known/appspecific/com.chrome.devtools.json +6 -0
- package/dist/env-hopper-16x16.png +0 -0
- package/dist/env-hopper-192x192.png +0 -0
- package/dist/env-hopper-32x32.png +0 -0
- package/dist/env-hopper-48x48.png +0 -0
- package/dist/env-hopper-512x512.png +0 -0
- package/dist/env-hopper-square.svg +114 -0
- package/dist/esm/App.d.ts +12 -0
- package/dist/esm/App.js +12 -0
- package/dist/esm/App.js.map +1 -0
- package/dist/esm/__tests__/modules/fuzzyMatchLogic/autoCompleteFilter.test.d.ts +1 -0
- package/dist/esm/__tests__/modules/fuzzyMatchLogic/features/prefixFracTokenMiddles.test.d.ts +1 -0
- package/dist/esm/__tests__/modules/fuzzyMatchLogic/fixLayout.test.d.ts +1 -0
- package/dist/esm/__tests__/modules/fuzzyMatchLogic/postFiltration.test.d.ts +1 -0
- package/dist/esm/__tests__/modules/fuzzyMatchLogic/testUtils.d.ts +2 -0
- package/dist/esm/__tests__/modules/fuzzyMatchLogic/tokenize.test.d.ts +1 -0
- package/dist/esm/__tests__/modules/resouceJump/findBestMatchByUrl.test.d.ts +1 -0
- package/dist/esm/__tests__/setupTests.d.ts +0 -0
- package/dist/esm/__tests__/util/availabilityMatrixUtils.test.d.ts +1 -0
- package/dist/esm/api/ApiQueryMagazine.d.ts +12 -0
- package/dist/esm/api/ApiQueryMagazine.js +16 -0
- package/dist/esm/api/ApiQueryMagazine.js.map +1 -0
- package/dist/esm/api/data/useQueryBootstrapConfig.d.ts +3 -0
- package/dist/esm/api/data/useQueryBootstrapConfig.js +14 -0
- package/dist/esm/api/data/useQueryBootstrapConfig.js.map +1 -0
- package/dist/esm/api/infra/createQueryClient.d.ts +7 -0
- package/dist/esm/api/infra/createQueryClient.js +23 -0
- package/dist/esm/api/infra/createQueryClient.js.map +1 -0
- package/dist/esm/api/infra/trpc.d.ts +93 -0
- package/dist/esm/api/infra/trpc.js +8 -0
- package/dist/esm/api/infra/trpc.js.map +1 -0
- package/dist/esm/api/unsorted/indexDataFetcher.d.ts +11 -0
- package/dist/esm/api/unsorted/indexDataFetcher.js +35 -0
- package/dist/esm/api/unsorted/indexDataFetcher.js.map +1 -0
- package/dist/esm/appPropsFactory.d.ts +2 -0
- package/dist/esm/appPropsFactory.js +32 -0
- package/dist/esm/appPropsFactory.js.map +1 -0
- package/dist/esm/assets/env-hopper-logo.svg.js +16 -0
- package/dist/esm/assets/env-hopper-logo.svg.js.map +1 -0
- package/dist/esm/components/ThemeSwitcher.d.ts +1 -0
- package/dist/esm/components/ThemeSwitcher.js +25 -0
- package/dist/esm/components/ThemeSwitcher.js.map +1 -0
- package/dist/esm/components/theme-provider.d.ts +2 -0
- package/dist/esm/components/theme-provider.js +10 -0
- package/dist/esm/components/theme-provider.js.map +1 -0
- package/dist/esm/components/ui/badge.d.ts +9 -0
- package/dist/esm/components/ui/breadcrumb.d.ts +46 -0
- package/dist/esm/components/ui/button.d.ts +16 -0
- package/dist/esm/components/ui/button.js +52 -0
- package/dist/esm/components/ui/button.js.map +1 -0
- package/dist/esm/components/ui/card.d.ts +38 -0
- package/dist/esm/components/ui/collapsible.d.ts +5 -0
- package/dist/esm/components/ui/dialog.d.ts +21 -0
- package/dist/esm/components/ui/dropdown-menu.d.ts +25 -0
- package/dist/esm/components/ui/input.d.ts +10 -0
- package/dist/esm/components/ui/popover.d.ts +7 -0
- package/dist/esm/components/ui/popover.js +14 -0
- package/dist/esm/components/ui/popover.js.map +1 -0
- package/dist/esm/components/ui/scroll-area.d.ts +5 -0
- package/dist/esm/components/ui/separator.d.ts +4 -0
- package/dist/esm/components/ui/separator.js +27 -0
- package/dist/esm/components/ui/separator.js.map +1 -0
- package/dist/esm/components/ui/tabs.d.ts +7 -0
- package/dist/esm/index.d.ts +3 -0
- package/dist/esm/index.js +7 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/lib/utils.d.ts +2 -0
- package/dist/esm/lib/utils.js +9 -0
- package/dist/esm/lib/utils.js.map +1 -0
- package/dist/esm/main.d.ts +0 -0
- package/dist/esm/modules/config/BootstrapConfigContext.d.ts +9 -0
- package/dist/esm/modules/config/BootstrapConfigContext.js +25 -0
- package/dist/esm/modules/config/BootstrapConfigContext.js.map +1 -0
- package/dist/esm/modules/config/GlobalConfigContext.d.ts +14 -0
- package/dist/esm/modules/config/GlobalConfigContext.js +21 -0
- package/dist/esm/modules/config/GlobalConfigContext.js.map +1 -0
- package/dist/esm/modules/environment/ApiQueryMagazineEnvironment.d.ts +12 -0
- package/dist/esm/modules/environment/ApiQueryMagazineEnvironment.js +13 -0
- package/dist/esm/modules/environment/ApiQueryMagazineEnvironment.js.map +1 -0
- package/dist/esm/modules/environment/EnvironmentContext.d.ts +15 -0
- package/dist/esm/modules/environment/EnvironmentContext.js +67 -0
- package/dist/esm/modules/environment/EnvironmentContext.js.map +1 -0
- package/dist/esm/modules/environment/types.d.ts +4 -0
- package/dist/esm/modules/environment/ui/EhEnvSelector.d.ts +9 -0
- package/dist/esm/modules/environment/ui/EhEnvSelector.js +167 -0
- package/dist/esm/modules/environment/ui/EhEnvSelector.js.map +1 -0
- package/dist/esm/modules/fuzzyMatchLogic/autoCompleteFilter.d.ts +3 -0
- package/dist/esm/modules/fuzzyMatchLogic/autoCompleteFilter.js +43 -0
- package/dist/esm/modules/fuzzyMatchLogic/autoCompleteFilter.js.map +1 -0
- package/dist/esm/modules/fuzzyMatchLogic/features/prefixFrac.d.ts +1 -0
- package/dist/esm/modules/fuzzyMatchLogic/features/prefixFrac.js +12 -0
- package/dist/esm/modules/fuzzyMatchLogic/features/prefixFrac.js.map +1 -0
- package/dist/esm/modules/fuzzyMatchLogic/features/prefixFracTokenMiddles.d.ts +2 -0
- package/dist/esm/modules/fuzzyMatchLogic/fixLayout.d.ts +2 -0
- package/dist/esm/modules/fuzzyMatchLogic/postFiltration.d.ts +2 -0
- package/dist/esm/modules/fuzzyMatchLogic/scoring.d.ts +2 -0
- package/dist/esm/modules/fuzzyMatchLogic/scoring.js +23 -0
- package/dist/esm/modules/fuzzyMatchLogic/scoring.js.map +1 -0
- package/dist/esm/modules/fuzzyMatchLogic/tokenize.d.ts +3 -0
- package/dist/esm/modules/fuzzyMatchLogic/types.d.ts +25 -0
- package/dist/esm/modules/fuzzyMatchLogic/utils.d.ts +2 -0
- package/dist/esm/modules/fuzzyMatchLogic/utils.js +12 -0
- package/dist/esm/modules/fuzzyMatchLogic/utils.js.map +1 -0
- package/dist/esm/modules/pluginCore/PluginManagerContext.d.ts +24 -0
- package/dist/esm/modules/pluginCore/PluginManagerContext.js +62 -0
- package/dist/esm/modules/pluginCore/PluginManagerContext.js.map +1 -0
- package/dist/esm/modules/pluginCore/makePluginManagerContext.d.ts +7 -0
- package/dist/esm/modules/pluginCore/makePluginManagerContext.js +27 -0
- package/dist/esm/modules/pluginCore/makePluginManagerContext.js.map +1 -0
- package/dist/esm/modules/pluginCore/types.d.ts +36 -0
- package/dist/esm/modules/pluginCore/types.js +7 -0
- package/dist/esm/modules/pluginCore/types.js.map +1 -0
- package/dist/esm/modules/resourceJump/ApiQueryMagazineResourceJump.d.ts +27 -0
- package/dist/esm/modules/resourceJump/ApiQueryMagazineResourceJump.js +26 -0
- package/dist/esm/modules/resourceJump/ApiQueryMagazineResourceJump.js.map +1 -0
- package/dist/esm/modules/resourceJump/ResourceJumpContext.d.ts +17 -0
- package/dist/esm/modules/resourceJump/ResourceJumpContext.js +88 -0
- package/dist/esm/modules/resourceJump/ResourceJumpContext.js.map +1 -0
- package/dist/esm/modules/resourceJump/buildJumpUrl.d.ts +2 -0
- package/dist/esm/modules/resourceJump/buildJumpUrl.js +32 -0
- package/dist/esm/modules/resourceJump/buildJumpUrl.js.map +1 -0
- package/dist/esm/modules/resourceJump/findBestMatchByUrl.d.ts +17 -0
- package/dist/esm/modules/resourceJump/findBestMatchByUrl.js +85 -0
- package/dist/esm/modules/resourceJump/findBestMatchByUrl.js.map +1 -0
- package/dist/esm/modules/resourceJump/helpers.d.ts +28 -0
- package/dist/esm/modules/resourceJump/helpers.js +19 -0
- package/dist/esm/modules/resourceJump/helpers.js.map +1 -0
- package/dist/esm/modules/resourceJump/routeLoader.d.ts +11 -0
- package/dist/esm/modules/resourceJump/routeLoader.js +43 -0
- package/dist/esm/modules/resourceJump/routeLoader.js.map +1 -0
- package/dist/esm/modules/resourceJump/types.d.ts +18 -0
- package/dist/esm/modules/resourceJump/ui/EhJumpResourceSelector.d.ts +20 -0
- package/dist/esm/modules/resourceJump/ui/EhJumpResourceSelector.js +209 -0
- package/dist/esm/modules/resourceJump/ui/EhJumpResourceSelector.js.map +1 -0
- package/dist/esm/modules/resourceJump/ui/JumpALink.d.ts +14 -0
- package/dist/esm/modules/resourceJump/ui/JumpALink.js +38 -0
- package/dist/esm/modules/resourceJump/ui/JumpALink.js.map +1 -0
- package/dist/esm/modules/resourceJump/ui/JumpMainButton.d.ts +5 -0
- package/dist/esm/modules/resourceJump/ui/JumpMainButton.js +66 -0
- package/dist/esm/modules/resourceJump/ui/JumpMainButton.js.map +1 -0
- package/dist/esm/modules/resourceJump/ui/ResouceJumpLayout.d.ts +5 -0
- package/dist/esm/modules/resourceJump/ui/ResouceJumpLayout.js +42 -0
- package/dist/esm/modules/resourceJump/ui/ResouceJumpLayout.js.map +1 -0
- package/dist/esm/plugins/builtin/pageUrl/PageUrlPluginContext.d.ts +9 -0
- package/dist/esm/plugins/builtin/pageUrl/PageUrlPluginContext.js +36 -0
- package/dist/esm/plugins/builtin/pageUrl/PageUrlPluginContext.js.map +1 -0
- package/dist/esm/plugins/builtin/pageUrl/pageUrlAutoCompletePlugin.d.ts +11 -0
- package/dist/esm/plugins/builtin/pageUrl/pageUrlAutoCompletePlugin.js +44 -0
- package/dist/esm/plugins/builtin/pageUrl/pageUrlAutoCompletePlugin.js.map +1 -0
- package/dist/esm/plugins/builtin/pageUrl/pageUrlJumpPlugin.d.ts +7 -0
- package/dist/esm/plugins/builtin/pageUrl/pageUrlJumpPlugin.js +29 -0
- package/dist/esm/plugins/builtin/pageUrl/pageUrlJumpPlugin.js.map +1 -0
- package/dist/esm/plugins/builtin/pageUrl/pageUrlTypes.d.ts +11 -0
- package/dist/esm/routeTree.gen.d.ts +142 -0
- package/dist/esm/routeTree.gen.js +77 -0
- package/dist/esm/routeTree.gen.js.map +1 -0
- package/dist/esm/routes/__root.d.ts +2 -0
- package/dist/esm/routes/__root.js +22 -0
- package/dist/esm/routes/__root.js.map +1 -0
- package/dist/esm/routes/_layout/app/$appSlug/sub/$subValue.d.ts +1 -0
- package/dist/esm/routes/_layout/app/$appSlug.d.ts +1 -0
- package/dist/esm/routes/_layout/app/_appSlug/sub/_subValue.js +18 -0
- package/dist/esm/routes/_layout/app/_appSlug/sub/_subValue.js.map +1 -0
- package/dist/esm/routes/_layout/app/_appSlug.js +18 -0
- package/dist/esm/routes/_layout/app/_appSlug.js.map +1 -0
- package/dist/esm/routes/_layout/env/$envSlug/app/$appSlug/sub/$subValue.d.ts +1 -0
- package/dist/esm/routes/_layout/env/$envSlug/app/$appSlug.d.ts +1 -0
- package/dist/esm/routes/_layout/env/$envSlug/sub/$subValue.d.ts +1 -0
- package/dist/esm/routes/_layout/env/$envSlug.d.ts +1 -0
- package/dist/esm/routes/_layout/env/_envSlug/app/_appSlug/sub/_subValue.js +20 -0
- package/dist/esm/routes/_layout/env/_envSlug/app/_appSlug/sub/_subValue.js.map +1 -0
- package/dist/esm/routes/_layout/env/_envSlug/app/_appSlug.js +18 -0
- package/dist/esm/routes/_layout/env/_envSlug/app/_appSlug.js.map +1 -0
- package/dist/esm/routes/_layout/env/_envSlug/sub/_subValue.js +18 -0
- package/dist/esm/routes/_layout/env/_envSlug/sub/_subValue.js.map +1 -0
- package/dist/esm/routes/_layout/env/_envSlug.js +18 -0
- package/dist/esm/routes/_layout/env/_envSlug.js.map +1 -0
- package/dist/esm/routes/_layout/index.d.ts +1 -0
- package/dist/esm/routes/_layout/index.js +18 -0
- package/dist/esm/routes/_layout/index.js.map +1 -0
- package/dist/esm/routes/_layout.d.ts +1 -0
- package/dist/esm/routes/_layout.js +12 -0
- package/dist/esm/routes/_layout.js.map +1 -0
- package/dist/esm/types/ehTypes.d.ts +31 -0
- package/dist/esm/types/slateTypes.d.ts +28 -0
- package/dist/esm/types/tanstackQuery.d.ts +11 -0
- package/dist/esm/types/types.d.ts +16 -0
- package/dist/esm/types/userBehaviourTypes.d.ts +76 -0
- package/dist/esm/types/utilityTypes.d.ts +1 -0
- package/dist/esm/ui/components/ActionCard.d.ts +9 -0
- package/dist/esm/ui/components/AppIcon.d.ts +7 -0
- package/dist/esm/ui/components/commandInput/EhBaseSelector.d.ts +6 -0
- package/dist/esm/ui/components/commandInput/EhBaseSelector.js +22 -0
- package/dist/esm/ui/components/commandInput/EhBaseSelector.js.map +1 -0
- package/dist/esm/ui/components/commandInput/types.d.ts +13 -0
- package/dist/esm/ui/components/contextDebug.d.ts +2 -0
- package/dist/esm/ui/components/contextDebug.js +12 -0
- package/dist/esm/ui/components/contextDebug.js.map +1 -0
- package/dist/esm/ui/components/controlPanel/BaseDropdownSelector.d.ts +11 -0
- package/dist/esm/ui/components/controlPanel/env/EnvDropdownContent.d.ts +5 -0
- package/dist/esm/ui/components/controlPanel/env/EnvDropdownSelector.d.ts +1 -0
- package/dist/esm/ui/components/error/DefaultErrorComponent.d.ts +2 -0
- package/dist/esm/ui/components/error/DefaultErrorComponent.js +13 -0
- package/dist/esm/ui/components/error/DefaultErrorComponent.js.map +1 -0
- package/dist/esm/ui/components/error/RooutErrorPage.d.ts +2 -0
- package/dist/esm/ui/components/error/RooutErrorPage.js +12 -0
- package/dist/esm/ui/components/error/RooutErrorPage.js.map +1 -0
- package/dist/esm/ui/components/footer/Footer.d.ts +1 -0
- package/dist/esm/ui/components/footer/Footer.js +38 -0
- package/dist/esm/ui/components/footer/Footer.js.map +1 -0
- package/dist/esm/ui/components/header/PlaygroundHeader.d.ts +1 -0
- package/dist/esm/ui/components/header/PlaygroundHeader.js +23 -0
- package/dist/esm/ui/components/header/PlaygroundHeader.js.map +1 -0
- package/dist/esm/ui/components/leftPanel/LeftPanel.d.ts +5 -0
- package/dist/esm/ui/components/quickBar/EnvQuickJumpBar.d.ts +5 -0
- package/dist/esm/ui/components/quickBar/EnvQuickJumpBar.js +52 -0
- package/dist/esm/ui/components/quickBar/EnvQuickJumpBar.js.map +1 -0
- package/dist/esm/ui/components/quickBar/QuickJumpBar.d.ts +5 -0
- package/dist/esm/ui/components/widgetPanel/AddWidgetCard.d.ts +5 -0
- package/dist/esm/ui/components/widgetPanel/WidgetGrid.d.ts +6 -0
- package/dist/esm/ui/components/widgets/CredentialsWidget.d.ts +11 -0
- package/dist/esm/ui/components/widgets/VersionWidget.d.ts +7 -0
- package/dist/esm/ui/error/NotFoundError.d.ts +1 -0
- package/dist/esm/ui/error/NotFoundError.js +16 -0
- package/dist/esm/ui/error/NotFoundError.js.map +1 -0
- package/dist/esm/ui/layout/Footer.d.ts +1 -0
- package/dist/esm/ui/layout/Header.d.ts +1 -0
- package/dist/esm/ui/layout/LoadingScreen.d.ts +4 -0
- package/dist/esm/ui/layout/LoadingScreen.js +14 -0
- package/dist/esm/ui/layout/LoadingScreen.js.map +1 -0
- package/dist/esm/ui/layout/MainLayout.d.ts +5 -0
- package/dist/esm/ui/layout/MainLayout.js +18 -0
- package/dist/esm/ui/layout/MainLayout.js.map +1 -0
- package/dist/esm/ui/layout/SideColumn.d.ts +1 -0
- package/dist/esm/ui/layout/TopLevelProviders.d.ts +5 -0
- package/dist/esm/ui/layout/TopLevelProviders.js +42 -0
- package/dist/esm/ui/layout/TopLevelProviders.js.map +1 -0
- package/dist/esm/ui/main/JumpTabContent.d.ts +1 -0
- package/dist/esm/ui/main/Tabs.d.ts +4 -0
- package/dist/esm/userDb/DbContext.d.ts +9 -0
- package/dist/esm/userDb/DbContext.js +18 -0
- package/dist/esm/userDb/DbContext.js.map +1 -0
- package/dist/esm/userDb/EhDb.d.ts +12 -0
- package/dist/esm/userDb/EhDb.js +20 -0
- package/dist/esm/userDb/EhDb.js.map +1 -0
- package/dist/esm/util/availabilityMatrixUtils.d.ts +12 -0
- package/dist/esm/util/availabilityMatrixUtils.js +57 -0
- package/dist/esm/util/availabilityMatrixUtils.js.map +1 -0
- package/dist/esm/util/createEhRouter.d.ts +7 -0
- package/dist/esm/util/createEhRouter.js +16 -0
- package/dist/esm/util/createEhRouter.js.map +1 -0
- package/dist/esm/util/highlightMatches.d.ts +2 -0
- package/dist/esm/util/highlightMatches.js +19 -0
- package/dist/esm/util/highlightMatches.js.map +1 -0
- package/dist/esm/util/reactQueryUtils.d.ts +6 -0
- package/dist/esm/util/reactQueryUtils.js +10 -0
- package/dist/esm/util/reactQueryUtils.js.map +1 -0
- package/dist/esm/util/route-utils.d.ts +6 -0
- package/dist/esm/util/route-utils.js +72 -0
- package/dist/esm/util/route-utils.js.map +1 -0
- package/dist/favicon.ico +0 -0
- package/dist/robots.txt +2 -0
- package/package.json +110 -0
- package/src/App.tsx +28 -0
- package/src/__tests__/modules/fuzzyMatchLogic/autoCompleteFilter.test.ts +185 -0
- package/src/__tests__/modules/fuzzyMatchLogic/features/prefixFracTokenMiddles.test.ts +23 -0
- package/src/__tests__/modules/fuzzyMatchLogic/fixLayout.test.ts +11 -0
- package/src/__tests__/modules/fuzzyMatchLogic/postFiltration.test.ts +15 -0
- package/src/__tests__/modules/fuzzyMatchLogic/testUtils.ts +8 -0
- package/src/__tests__/modules/fuzzyMatchLogic/tokenize.test.ts +65 -0
- package/src/__tests__/modules/resouceJump/findBestMatchByUrl.test.ts +234 -0
- package/src/__tests__/setupTests.tsx +0 -0
- package/src/__tests__/util/availabilityMatrixUtils.test.ts +61 -0
- package/src/api/ApiQueryMagazine.ts +15 -0
- package/src/api/data/useQueryBootstrapConfig.ts +17 -0
- package/src/api/infra/createQueryClient.ts +25 -0
- package/src/api/infra/trpc.ts +6 -0
- package/src/api/unsorted/indexDataFetcher.ts +46 -0
- package/src/appPropsFactory.ts +35 -0
- package/src/assets/env-hopper-logo.svg +114 -0
- package/src/components/ThemeSwitcher.tsx +22 -0
- package/src/components/theme-provider.tsx +8 -0
- package/src/components/ui/badge.tsx +37 -0
- package/src/components/ui/breadcrumb.tsx +128 -0
- package/src/components/ui/button.tsx +60 -0
- package/src/components/ui/card.tsx +95 -0
- package/src/components/ui/collapsible.tsx +31 -0
- package/src/components/ui/dialog.tsx +182 -0
- package/src/components/ui/dropdown-menu.tsx +257 -0
- package/src/components/ui/input.tsx +28 -0
- package/src/components/ui/popover.tsx +48 -0
- package/src/components/ui/scroll-area.tsx +58 -0
- package/src/components/ui/separator.tsx +26 -0
- package/src/components/ui/tabs.tsx +65 -0
- package/src/index.css +211 -0
- package/src/index.tsx +3 -0
- package/src/lib/utils.ts +7 -0
- package/src/main.tsx +53 -0
- package/src/modules/config/BootstrapConfigContext.tsx +33 -0
- package/src/modules/config/GlobalConfigContext.tsx +42 -0
- package/src/modules/environment/ApiQueryMagazineEnvironment.ts +12 -0
- package/src/modules/environment/EnvironmentContext.tsx +115 -0
- package/src/modules/environment/types.ts +4 -0
- package/src/modules/environment/ui/EhEnvSelector.tsx +191 -0
- package/src/modules/fuzzyMatchLogic/autoCompleteFilter.ts +186 -0
- package/src/modules/fuzzyMatchLogic/features/prefixFrac.ts +13 -0
- package/src/modules/fuzzyMatchLogic/features/prefixFracTokenMiddles.ts +29 -0
- package/src/modules/fuzzyMatchLogic/fixLayout.ts +24 -0
- package/src/modules/fuzzyMatchLogic/postFiltration.ts +35 -0
- package/src/modules/fuzzyMatchLogic/scoring.ts +42 -0
- package/src/modules/fuzzyMatchLogic/tokenize.ts +32 -0
- package/src/modules/fuzzyMatchLogic/types.ts +33 -0
- package/src/modules/fuzzyMatchLogic/utils.ts +18 -0
- package/src/modules/pluginCore/PluginManagerContext.tsx +107 -0
- package/src/modules/pluginCore/makePluginManagerContext.ts +35 -0
- package/src/modules/pluginCore/types.ts +54 -0
- package/src/modules/resourceJump/ApiQueryMagazineResourceJump.ts +31 -0
- package/src/modules/resourceJump/ResourceJumpContext.tsx +142 -0
- package/src/modules/resourceJump/buildJumpUrl.ts +40 -0
- package/src/modules/resourceJump/findBestMatchByUrl.ts +121 -0
- package/src/modules/resourceJump/helpers.ts +117 -0
- package/src/modules/resourceJump/routeLoader.ts +58 -0
- package/src/modules/resourceJump/types.ts +21 -0
- package/src/modules/resourceJump/ui/EhJumpResourceSelector.tsx +259 -0
- package/src/modules/resourceJump/ui/JumpALink.tsx +54 -0
- package/src/modules/resourceJump/ui/JumpMainButton.tsx +97 -0
- package/src/modules/resourceJump/ui/ResouceJumpLayout.tsx +73 -0
- package/src/plugins/builtin/pageUrl/PageUrlPluginContext.tsx +55 -0
- package/src/plugins/builtin/pageUrl/pageUrlAutoCompletePlugin.ts +66 -0
- package/src/plugins/builtin/pageUrl/pageUrlJumpPlugin.ts +36 -0
- package/src/plugins/builtin/pageUrl/pageUrlTypes.ts +17 -0
- package/src/routeTree.gen.ts +249 -0
- package/src/routes/__root.tsx +23 -0
- package/src/routes/_layout/app/$appSlug/sub/$subValue.tsx +15 -0
- package/src/routes/_layout/app/$appSlug.tsx +15 -0
- package/src/routes/_layout/env/$envSlug/app/$appSlug/sub/$subValue.tsx +17 -0
- package/src/routes/_layout/env/$envSlug/app/$appSlug.tsx +15 -0
- package/src/routes/_layout/env/$envSlug/sub/$subValue.tsx +15 -0
- package/src/routes/_layout/env/$envSlug.tsx +15 -0
- package/src/routes/_layout/index.tsx +16 -0
- package/src/routes/_layout.tsx +9 -0
- package/src/types/ehTypes.ts +40 -0
- package/src/types/slateTypes.ts +22 -0
- package/src/types/tanstackQuery.ts +14 -0
- package/src/types/types.ts +20 -0
- package/src/types/userBehaviourTypes.ts +100 -0
- package/src/types/utilityTypes.ts +1 -0
- package/src/types/vite-env.d.ts +1 -0
- package/src/ui/components/ActionCard.tsx +30 -0
- package/src/ui/components/AppIcon.tsx +48 -0
- package/src/ui/components/commandInput/EhBaseSelector.tsx +51 -0
- package/src/ui/components/commandInput/types.ts +22 -0
- package/src/ui/components/contextDebug.tsx +13 -0
- package/src/ui/components/controlPanel/BaseDropdownSelector.tsx +163 -0
- package/src/ui/components/controlPanel/env/EnvDropdownContent.tsx +114 -0
- package/src/ui/components/controlPanel/env/EnvDropdownSelector.tsx +21 -0
- package/src/ui/components/error/DefaultErrorComponent.tsx +38 -0
- package/src/ui/components/error/RooutErrorPage.tsx +10 -0
- package/src/ui/components/footer/Footer.tsx +32 -0
- package/src/ui/components/header/PlaygroundHeader.tsx +26 -0
- package/src/ui/components/leftPanel/LeftPanel.tsx +194 -0
- package/src/ui/components/quickBar/EnvQuickJumpBar.tsx +65 -0
- package/src/ui/components/quickBar/QuickJumpBar.tsx +101 -0
- package/src/ui/components/widgetPanel/AddWidgetCard.tsx +17 -0
- package/src/ui/components/widgetPanel/WidgetGrid.tsx +18 -0
- package/src/ui/components/widgets/CredentialsWidget.tsx +55 -0
- package/src/ui/components/widgets/VersionWidget.tsx +29 -0
- package/src/ui/error/NotFoundError.tsx +13 -0
- package/src/ui/layout/Footer.tsx +16 -0
- package/src/ui/layout/Header.tsx +14 -0
- package/src/ui/layout/LoadingScreen.tsx +17 -0
- package/src/ui/layout/MainLayout.tsx +27 -0
- package/src/ui/layout/SideColumn.tsx +3 -0
- package/src/ui/layout/TopLevelProviders.tsx +52 -0
- package/src/ui/main/JumpTabContent.tsx +12 -0
- package/src/ui/main/Tabs.tsx +29 -0
- package/src/userDb/DbContext.tsx +22 -0
- package/src/userDb/EhDb.ts +22 -0
- package/src/util/availabilityMatrixUtils.ts +80 -0
- package/src/util/createEhRouter.ts +20 -0
- package/src/util/highlightMatches.tsx +29 -0
- package/src/util/reactQueryUtils.ts +12 -0
- package/src/util/route-utils.ts +71 -0
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
import { createFileRoute } from "@tanstack/react-router";
|
|
3
|
+
import { routeLoader } from "../../../../../modules/resourceJump/routeLoader.js";
|
|
4
|
+
import { ResourceJumpLayout } from "../../../../../modules/resourceJump/ui/ResouceJumpLayout.js";
|
|
5
|
+
const Route = createFileRoute("/_layout/env/$envSlug/sub/$subValue")({
|
|
6
|
+
component: RouteComponent,
|
|
7
|
+
loader(ctx) {
|
|
8
|
+
return routeLoader(ctx);
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
function RouteComponent() {
|
|
12
|
+
const urlParams = Route.useLoaderData();
|
|
13
|
+
return /* @__PURE__ */ jsx(ResourceJumpLayout, { loaderData: urlParams });
|
|
14
|
+
}
|
|
15
|
+
export {
|
|
16
|
+
Route
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=_subValue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_subValue.js","sources":["../../../../../../../src/routes/_layout/env/$envSlug/sub/$subValue.tsx"],"sourcesContent":["import { createFileRoute } from '@tanstack/react-router'\nimport { routeLoader } from '~/modules/resourceJump/routeLoader'\nimport { ResourceJumpLayout } from '~/modules/resourceJump/ui/ResouceJumpLayout'\n\nexport const Route = createFileRoute('/_layout/env/$envSlug/sub/$subValue')({\n component: RouteComponent,\n loader(ctx) {\n return routeLoader(ctx)\n },\n})\n\nfunction RouteComponent() {\n const urlParams = Route.useLoaderData()\n return <ResourceJumpLayout loaderData={urlParams} />\n}\n"],"names":[],"mappings":";;;;AAIO,MAAM,QAAQ,gBAAgB,qCAAqC,EAAE;AAAA,EAC1E,WAAW;AAAA,EACX,OAAO,KAAK;AACV,WAAO,YAAY,GAAG;AAAA,EACxB;AACF,CAAC;AAED,SAAS,iBAAiB;AACxB,QAAM,YAAY,MAAM,cAAA;AACxB,SAAO,oBAAC,oBAAA,EAAmB,YAAY,UAAA,CAAW;AACpD;"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
import { createFileRoute } from "@tanstack/react-router";
|
|
3
|
+
import { routeLoader } from "../../../modules/resourceJump/routeLoader.js";
|
|
4
|
+
import { ResourceJumpLayout } from "../../../modules/resourceJump/ui/ResouceJumpLayout.js";
|
|
5
|
+
const Route = createFileRoute("/_layout/env/$envSlug")({
|
|
6
|
+
component: RouteComponent,
|
|
7
|
+
loader(ctx) {
|
|
8
|
+
return routeLoader(ctx);
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
function RouteComponent() {
|
|
12
|
+
const urlParams = Route.useLoaderData();
|
|
13
|
+
return /* @__PURE__ */ jsx(ResourceJumpLayout, { loaderData: urlParams });
|
|
14
|
+
}
|
|
15
|
+
export {
|
|
16
|
+
Route
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=_envSlug.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_envSlug.js","sources":["../../../../../src/routes/_layout/env/$envSlug.tsx"],"sourcesContent":["import { createFileRoute } from '@tanstack/react-router'\nimport { routeLoader } from '~/modules/resourceJump/routeLoader'\nimport { ResourceJumpLayout } from '~/modules/resourceJump/ui/ResouceJumpLayout'\n\nexport const Route = createFileRoute('/_layout/env/$envSlug')({\n component: RouteComponent,\n loader(ctx) {\n return routeLoader(ctx)\n },\n})\n\nfunction RouteComponent() {\n const urlParams = Route.useLoaderData()\n return <ResourceJumpLayout loaderData={urlParams} />\n}\n"],"names":[],"mappings":";;;;AAIO,MAAM,QAAQ,gBAAgB,uBAAuB,EAAE;AAAA,EAC5D,WAAW;AAAA,EACX,OAAO,KAAK;AACV,WAAO,YAAY,GAAG;AAAA,EACxB;AACF,CAAC;AAED,SAAS,iBAAiB;AACxB,QAAM,YAAY,MAAM,cAAA;AACxB,SAAO,oBAAC,oBAAA,EAAmB,YAAY,UAAA,CAAW;AACpD;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const Route: import('@tanstack/router-core').Route<import('@tanstack/router-core').Route<import('@tanstack/react-router').RootRoute<undefined, import('../../types/types.js').EhRouterContext, import('@tanstack/router-core').AnyContext, import('@tanstack/router-core').AnyContext, {}, undefined, unknown, unknown>, "", "", "/_layout", "/_layout", undefined, import('@tanstack/router-core').ResolveParams<"">, import('@tanstack/router-core').AnyContext, import('@tanstack/router-core').AnyContext, import('@tanstack/router-core').AnyContext, {}, undefined, unknown, unknown>, "/", "/", "/_layout/", "/_layout/", undefined, import('@tanstack/router-core').ResolveParams<"/">, import('@tanstack/router-core').AnyContext, import('@tanstack/router-core').AnyContext, import('@tanstack/router-core').AnyContext, {}, (ctx: import('@tanstack/router-core').LoaderFnContext<import('@tanstack/router-core').Route<import('@tanstack/react-router').RootRoute<undefined, import('../../types/types.js').EhRouterContext, import('@tanstack/router-core').AnyContext, import('@tanstack/router-core').AnyContext, {}, undefined, unknown, unknown>, "", "", "/_layout", "/_layout", undefined, import('@tanstack/router-core').ResolveParams<"">, import('@tanstack/router-core').AnyContext, import('@tanstack/router-core').AnyContext, import('@tanstack/router-core').AnyContext, {}, undefined, unknown, unknown>, "/_layout/", import('@tanstack/router-core').ResolveParams<"/">, {}, import('@tanstack/router-core').AnyContext, import('@tanstack/router-core').AnyContext, import('@tanstack/router-core').AnyContext>) => Promise<import('../../modules/resourceJump/types.js').ResourceJumpLoaderReturn>, unknown, unknown>;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
import { createFileRoute } from "@tanstack/react-router";
|
|
3
|
+
import { routeLoader } from "../../modules/resourceJump/routeLoader.js";
|
|
4
|
+
import { ResourceJumpLayout } from "../../modules/resourceJump/ui/ResouceJumpLayout.js";
|
|
5
|
+
const Route = createFileRoute("/_layout/")({
|
|
6
|
+
component: RouteComponent,
|
|
7
|
+
loader(ctx) {
|
|
8
|
+
return routeLoader(ctx);
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
function RouteComponent() {
|
|
12
|
+
const urlParams = Route.useLoaderData();
|
|
13
|
+
return /* @__PURE__ */ jsx(ResourceJumpLayout, { loaderData: urlParams });
|
|
14
|
+
}
|
|
15
|
+
export {
|
|
16
|
+
Route
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/routes/_layout/index.tsx"],"sourcesContent":["import { createFileRoute } from '@tanstack/react-router'\n\nimport { routeLoader } from '~/modules/resourceJump/routeLoader'\nimport { ResourceJumpLayout } from '~/modules/resourceJump/ui/ResouceJumpLayout'\n\nexport const Route = createFileRoute('/_layout/')({\n component: RouteComponent,\n loader(ctx) {\n return routeLoader(ctx)\n },\n})\n\nfunction RouteComponent() {\n const urlParams = Route.useLoaderData()\n return <ResourceJumpLayout loaderData={urlParams} />\n}\n"],"names":[],"mappings":";;;;AAKO,MAAM,QAAQ,gBAAgB,WAAW,EAAE;AAAA,EAChD,WAAW;AAAA,EACX,OAAO,KAAK;AACV,WAAO,YAAY,GAAG;AAAA,EACxB;AACF,CAAC;AAED,SAAS,iBAAiB;AACxB,QAAM,YAAY,MAAM,cAAA;AACxB,SAAO,oBAAC,oBAAA,EAAmB,YAAY,UAAA,CAAW;AACpD;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const Route: import('@tanstack/router-core').Route<import('@tanstack/react-router').RootRoute<undefined, import('../types/types.js').EhRouterContext, import('@tanstack/router-core').AnyContext, import('@tanstack/router-core').AnyContext, {}, undefined, unknown, unknown>, "", "", "/_layout", "/_layout", undefined, import('@tanstack/router-core').ResolveParams<"">, import('@tanstack/router-core').AnyContext, import('@tanstack/router-core').AnyContext, import('@tanstack/router-core').AnyContext, {}, undefined, unknown, unknown>;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
import { createFileRoute, Outlet } from "@tanstack/react-router";
|
|
3
|
+
const Route = createFileRoute("/_layout")({
|
|
4
|
+
component: LayoutComponent
|
|
5
|
+
});
|
|
6
|
+
function LayoutComponent() {
|
|
7
|
+
return /* @__PURE__ */ jsx(Outlet, {});
|
|
8
|
+
}
|
|
9
|
+
export {
|
|
10
|
+
Route
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=_layout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_layout.js","sources":["../../../src/routes/_layout.tsx"],"sourcesContent":["import { Outlet, createFileRoute } from '@tanstack/react-router'\n\nexport const Route = createFileRoute('/_layout')({\n component: LayoutComponent,\n})\n\nfunction LayoutComponent() {\n return <Outlet />\n}\n"],"names":[],"mappings":";;AAEO,MAAM,QAAQ,gBAAgB,UAAU,EAAE;AAAA,EAC/C,WAAW;AACb,CAAC;AAED,SAAS,kBAAkB;AACzB,6BAAQ,QAAA,EAAO;AACjB;"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { TRPCRouter } from '@env-hopper/backend-core';
|
|
2
|
+
import { TRPCClient } from '@trpc/client';
|
|
3
|
+
import { EhDb } from '~/userDb/EhDb';
|
|
4
|
+
export interface EhEnvIndexed {
|
|
5
|
+
slug: string;
|
|
6
|
+
displayName: string;
|
|
7
|
+
}
|
|
8
|
+
export interface EhAppPage {
|
|
9
|
+
slug: string;
|
|
10
|
+
displayName: string;
|
|
11
|
+
}
|
|
12
|
+
export interface BaseDropdownContentProps {
|
|
13
|
+
searchValue?: string;
|
|
14
|
+
onSelect?: (value: string) => void;
|
|
15
|
+
getMenuProps?: () => any;
|
|
16
|
+
getItemProps?: (options: any) => any;
|
|
17
|
+
highlightedIndex?: number;
|
|
18
|
+
isOpen?: boolean;
|
|
19
|
+
isUntouched: boolean;
|
|
20
|
+
}
|
|
21
|
+
export interface EhUrlParams {
|
|
22
|
+
envId?: string;
|
|
23
|
+
appId?: string;
|
|
24
|
+
subValue?: string;
|
|
25
|
+
}
|
|
26
|
+
export interface DbAware {
|
|
27
|
+
db: EhDb;
|
|
28
|
+
}
|
|
29
|
+
export interface TrpcAware {
|
|
30
|
+
trpcClient: TRPCClient<TRPCRouter>;
|
|
31
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { BaseEditor } from 'slate';
|
|
2
|
+
import { ReactEditor } from 'slate-react';
|
|
3
|
+
type TagElement = {
|
|
4
|
+
type: 'tag';
|
|
5
|
+
children: Array<CustomText>;
|
|
6
|
+
selected: boolean;
|
|
7
|
+
};
|
|
8
|
+
type InterTagElement = {
|
|
9
|
+
type: 'inter-tag';
|
|
10
|
+
children: Array<CustomText>;
|
|
11
|
+
};
|
|
12
|
+
type TagContainer = {
|
|
13
|
+
type: 'tag-container';
|
|
14
|
+
children: Array<CustomText>;
|
|
15
|
+
};
|
|
16
|
+
type CustomText = {
|
|
17
|
+
text: string;
|
|
18
|
+
};
|
|
19
|
+
export type CustomElement = TagElement | TagContainer | InterTagElement;
|
|
20
|
+
export type CustomEditor = BaseEditor & ReactEditor;
|
|
21
|
+
declare module 'slate' {
|
|
22
|
+
interface CustomTypes {
|
|
23
|
+
Editor: CustomEditor;
|
|
24
|
+
Element: CustomElement;
|
|
25
|
+
Text: CustomText;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
export {};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { TRPCRouter } from '@env-hopper/backend-core';
|
|
2
|
+
import { TRPCClient } from '@trpc/client';
|
|
3
|
+
export interface EhReactQueryMeta extends Record<string, unknown> {
|
|
4
|
+
trpcClient: TRPCClient<TRPCRouter>;
|
|
5
|
+
}
|
|
6
|
+
declare module '@tanstack/react-query' {
|
|
7
|
+
interface Register {
|
|
8
|
+
queryMeta: EhReactQueryMeta;
|
|
9
|
+
mutationMeta: EhReactQueryMeta;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { RouterHistory } from '@tanstack/react-router';
|
|
2
|
+
import { QueryClient } from '@tanstack/react-query';
|
|
3
|
+
import { TRPCClient } from '@trpc/client';
|
|
4
|
+
import { TRPCRouter } from '@env-hopper/backend-core';
|
|
5
|
+
import { EhDb } from '~/userDb/EhDb';
|
|
6
|
+
import { EhPlugin } from '~/modules/pluginCore/types';
|
|
7
|
+
export interface EhRouterContext {
|
|
8
|
+
queryClient: QueryClient;
|
|
9
|
+
trpcClient: TRPCClient<TRPCRouter>;
|
|
10
|
+
db: EhDb;
|
|
11
|
+
plugins: Array<EhPlugin>;
|
|
12
|
+
}
|
|
13
|
+
export interface EhRouterInitParams {
|
|
14
|
+
history: RouterHistory;
|
|
15
|
+
context: EhRouterContext;
|
|
16
|
+
}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
export interface SearchInteraction {
|
|
2
|
+
dateUtcTimestamp: number;
|
|
3
|
+
query: string;
|
|
4
|
+
selection: SearchSelection;
|
|
5
|
+
}
|
|
6
|
+
export type SearchSelection = {
|
|
7
|
+
type: 'env';
|
|
8
|
+
envSlug: string;
|
|
9
|
+
} | {
|
|
10
|
+
type: 'app';
|
|
11
|
+
appSlug: string;
|
|
12
|
+
} | {
|
|
13
|
+
type: 'appPage';
|
|
14
|
+
appPageSlug: AppPageSlug;
|
|
15
|
+
appPageContext?: AppPageContext;
|
|
16
|
+
} | {
|
|
17
|
+
type: 'envAppPage';
|
|
18
|
+
envSlug: string;
|
|
19
|
+
appPageSlug: AppPageSlug;
|
|
20
|
+
appPageContext?: AppPageContext;
|
|
21
|
+
} | {
|
|
22
|
+
type: 'envAction';
|
|
23
|
+
envSlug: string;
|
|
24
|
+
actionName: string;
|
|
25
|
+
};
|
|
26
|
+
export interface MicroInteraction {
|
|
27
|
+
dateUtcTimestamp: number;
|
|
28
|
+
context: MicroInteractionContext;
|
|
29
|
+
action: Action;
|
|
30
|
+
}
|
|
31
|
+
export interface MicroInteractionContext {
|
|
32
|
+
envSlug?: string;
|
|
33
|
+
appSlug?: string;
|
|
34
|
+
appPageSlug?: AppPageSlug;
|
|
35
|
+
}
|
|
36
|
+
export type Action = PageJumpAction | ConfigSearchAction | EnvSelectionAction | AppSelectionAction | AppPageSelectionAction | EnvAction;
|
|
37
|
+
export interface EnvSelectionAction {
|
|
38
|
+
actionType: 'envSelection';
|
|
39
|
+
envSlug: string | undefined;
|
|
40
|
+
}
|
|
41
|
+
export interface AppSelectionAction {
|
|
42
|
+
actionType: 'appSelection';
|
|
43
|
+
appSlug: string | undefined;
|
|
44
|
+
}
|
|
45
|
+
export interface AppPageSelectionAction {
|
|
46
|
+
actionType: 'appPageSelection';
|
|
47
|
+
appPageSlug: AppPageSlug;
|
|
48
|
+
}
|
|
49
|
+
export interface PageJumpAction {
|
|
50
|
+
actionType: 'pageJump';
|
|
51
|
+
envSlug: string;
|
|
52
|
+
appPageSlug: AppPageSlug;
|
|
53
|
+
appPageContext?: AppPageContext;
|
|
54
|
+
}
|
|
55
|
+
export interface EnvAction {
|
|
56
|
+
actionType: 'envAction';
|
|
57
|
+
envSlug: string;
|
|
58
|
+
actionName: string;
|
|
59
|
+
}
|
|
60
|
+
export interface AppPageSlug {
|
|
61
|
+
app: string;
|
|
62
|
+
page: string;
|
|
63
|
+
}
|
|
64
|
+
export interface AppPageContext {
|
|
65
|
+
params: Array<AppPageContextKeyValue>;
|
|
66
|
+
}
|
|
67
|
+
export interface AppPageContextKeyValue {
|
|
68
|
+
key: string;
|
|
69
|
+
value: string;
|
|
70
|
+
}
|
|
71
|
+
export interface ConfigSearchAction {
|
|
72
|
+
actionType: 'configSearch';
|
|
73
|
+
envSlug: string;
|
|
74
|
+
appSlug: string;
|
|
75
|
+
query: string;
|
|
76
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type PartialRecord<TKey extends keyof any, T> = Partial<Record<TKey, T>>;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { EhAppIndexed } from '@env-hopper/backend-core';
|
|
2
|
+
interface ActionCardProps {
|
|
3
|
+
app: EhAppIndexed;
|
|
4
|
+
actionName: string;
|
|
5
|
+
onClick: () => void;
|
|
6
|
+
className?: string;
|
|
7
|
+
}
|
|
8
|
+
export declare function ActionCard({ app, actionName, onClick, className, }: ActionCardProps): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
export {};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { Popover } from '~/components/ui/popover';
|
|
3
|
+
export declare function EhBaseSelectorRoot({ className, ...props }: React.ComponentPropsWithoutRef<'div'>): import("react/jsx-runtime").JSX.Element;
|
|
4
|
+
export declare function EhBaseSelectorLabel({ className, ...props }: React.ComponentPropsWithoutRef<'div'>): import("react/jsx-runtime").JSX.Element;
|
|
5
|
+
export declare function EhBaseSelectorPopover({ ...props }: React.ComponentPropsWithoutRef<typeof Popover>): import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
export declare function EhBaseSelectorCommand({ className, ...props }: React.ComponentPropsWithoutRef<'div'>): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
import "@radix-ui/react-popover";
|
|
3
|
+
import { cn } from "../../../lib/utils.js";
|
|
4
|
+
function EhBaseSelectorRoot({
|
|
5
|
+
className,
|
|
6
|
+
...props
|
|
7
|
+
}) {
|
|
8
|
+
return /* @__PURE__ */ jsx(
|
|
9
|
+
"div",
|
|
10
|
+
{
|
|
11
|
+
className: cn(
|
|
12
|
+
`flex flex-col gap-1 duration-100 transition-all`,
|
|
13
|
+
className
|
|
14
|
+
),
|
|
15
|
+
...props
|
|
16
|
+
}
|
|
17
|
+
);
|
|
18
|
+
}
|
|
19
|
+
export {
|
|
20
|
+
EhBaseSelectorRoot
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=EhBaseSelector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EhBaseSelector.js","sources":["../../../../../src/ui/components/commandInput/EhBaseSelector.tsx"],"sourcesContent":["import React from 'react'\nimport { Popover } from '~/components/ui/popover'\nimport { cn } from '~/lib/utils'\n\nexport function EhBaseSelectorRoot({\n className,\n ...props\n}: React.ComponentPropsWithoutRef<'div'>) {\n return (\n <div\n className={cn(\n `flex flex-col gap-1 duration-100 transition-all`,\n className,\n )}\n {...props}\n />\n )\n}\n\nexport function EhBaseSelectorLabel({\n className,\n ...props\n}: React.ComponentPropsWithoutRef<'div'>) {\n return (\n <div\n className={cn(`text-secondary-foreground/50 text-sm`, className)}\n {...props}\n />\n )\n}\n\nexport function EhBaseSelectorPopover({\n ...props\n}: React.ComponentPropsWithoutRef<typeof Popover>) {\n return <Popover {...props} />\n}\n\nexport function EhBaseSelectorCommand({\n className,\n ...props\n}: React.ComponentPropsWithoutRef<'div'>) {\n return (\n <div\n className={cn(\n 'hover:cursor-text hover:bg-accent hover:border-neutral-950 rounded-sm border-1 p-3 group',\n className,\n )}\n {...props}\n />\n )\n}\n"],"names":[],"mappings":";;;AAIO,SAAS,mBAAmB;AAAA,EACjC;AAAA,EACA,GAAG;AACL,GAA0C;AACxC,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MAAA;AAAA,MAED,GAAG;AAAA,IAAA;AAAA,EAAA;AAGV;"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { BaseAutoCompletableItem } from '~/modules/pluginCore/types';
|
|
2
|
+
export interface SpecialAutoCompleteItem {
|
|
3
|
+
type: 'special';
|
|
4
|
+
slug: 'specia-all-apps';
|
|
5
|
+
}
|
|
6
|
+
export declare function isSpecialAutoCompleteItem(item: BaseAutoCompletableItem | SpecialAutoCompleteItem | null | undefined): item is SpecialAutoCompleteItem;
|
|
7
|
+
export type AutoCompleteItem = BaseAutoCompletableItem | SpecialAutoCompleteItem;
|
|
8
|
+
export interface AppAutoCompleteAmend {
|
|
9
|
+
isChild?: boolean;
|
|
10
|
+
}
|
|
11
|
+
export interface AutoCompleteContext {
|
|
12
|
+
searchString: string;
|
|
13
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useEnvironmentContext } from "../../modules/environment/EnvironmentContext.js";
|
|
3
|
+
import { useResourceJumpContext } from "../../modules/resourceJump/ResourceJumpContext.js";
|
|
4
|
+
const ContextDebug = () => {
|
|
5
|
+
const { currentResourceJump } = useResourceJumpContext();
|
|
6
|
+
const { currentEnv } = useEnvironmentContext();
|
|
7
|
+
return /* @__PURE__ */ jsx("pre", { children: JSON.stringify({ currentResourceJump, currentEnv }, null, 2) });
|
|
8
|
+
};
|
|
9
|
+
export {
|
|
10
|
+
ContextDebug as default
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=contextDebug.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contextDebug.js","sources":["../../../../src/ui/components/contextDebug.tsx"],"sourcesContent":["import { useEnvironmentContext } from '~/modules/environment/EnvironmentContext'\nimport { useResourceJumpContext } from '~/modules/resourceJump/ResourceJumpContext'\n\nconst ContextDebug: React.FC = () => {\n const { currentResourceJump } = useResourceJumpContext()\n const { currentEnv } = useEnvironmentContext()\n\n return (\n <pre>{JSON.stringify({ currentResourceJump, currentEnv }, null, 2)}</pre>\n )\n}\n\nexport default ContextDebug\n"],"names":[],"mappings":";;;AAGA,MAAM,eAAyB,MAAM;AACnC,QAAM,EAAE,oBAAA,IAAwB,uBAAA;AAChC,QAAM,EAAE,WAAA,IAAe,sBAAA;AAEvB,SACE,oBAAC,OAAA,EAAK,UAAA,KAAK,UAAU,EAAE,qBAAqB,WAAA,GAAc,MAAM,CAAC,EAAA,CAAE;AAEvE;"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { BaseDropdownContentProps } from '~/types/ehTypes';
|
|
3
|
+
interface BaseDropdownSelectorProps {
|
|
4
|
+
value?: string;
|
|
5
|
+
placeholder: string;
|
|
6
|
+
onSelect: (value: string) => void;
|
|
7
|
+
children: (props: BaseDropdownContentProps) => ReactNode;
|
|
8
|
+
className?: string;
|
|
9
|
+
}
|
|
10
|
+
export declare function BaseDropdownSelector({ value, placeholder, onSelect, children, className, }: BaseDropdownSelectorProps): import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { BaseDropdownContentProps } from '~/types/ehTypes';
|
|
2
|
+
interface EnvDropdownContentProps extends BaseDropdownContentProps {
|
|
3
|
+
}
|
|
4
|
+
export declare function EnvDropdownContent({ searchValue, onSelect, getItemProps, highlightedIndex, isUntouched, }: EnvDropdownContentProps): import("react/jsx-runtime").JSX.Element;
|
|
5
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function EnvDropdownSelector(): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { jsx, Fragment, jsxs } from "react/jsx-runtime";
|
|
2
|
+
function DefaultErrorComponent({ error }) {
|
|
3
|
+
return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsxs("div", { className: "mt-8 text-center !max-w-none", role: "alert", children: [
|
|
4
|
+
/* @__PURE__ */ jsx("h1", { children: "Oops!" }),
|
|
5
|
+
/* @__PURE__ */ jsx("p", { children: "Sorry, an unexpected error has occurred. :( " }),
|
|
6
|
+
/* @__PURE__ */ jsx("pre", { className: "text-left mt-8 text-sm", children: /* @__PURE__ */ jsx("i", { children: error.message }) }),
|
|
7
|
+
/* @__PURE__ */ jsx("pre", { className: "text-left mt-8 text-sm", children: /* @__PURE__ */ jsx("i", { children: error.stack }) })
|
|
8
|
+
] }) });
|
|
9
|
+
}
|
|
10
|
+
export {
|
|
11
|
+
DefaultErrorComponent
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=DefaultErrorComponent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DefaultErrorComponent.js","sources":["../../../../../src/ui/components/error/DefaultErrorComponent.tsx"],"sourcesContent":["import type { ErrorComponentProps } from '@tanstack/react-router'\n\nexport function DefaultErrorComponent({ error }: ErrorComponentProps) {\n // const { data: config } = useQuery(ApiQueryMagazine.getConfig());\n // const [localAppVersion] = useLocalStorage(\n // LOCAL_STORAGE_KEY_VERSION,\n // undefined,\n // );\n // const { isDegraded } = useEhServerSync();\n // const configAppVersion = config?.appVersion;\n // const [somethingIsWrong, setSomethingIsWrong] = useState(false);\n // useEffect(() => {\n // const t = setTimeout(() => {\n // setSomethingIsWrong(true);\n // }, 25000);\n // return () => {\n // clearTimeout(t);\n // };\n // }, []);\n\n // const isProbablyWillResolvedAfterUpdate =\n // localAppVersion !== undefined &&\n // configAppVersion !== undefined &&\n // localAppVersion !== configAppVersion &&\n // !somethingIsWrong &&\n // !isDegraded;\n\n return (\n <>\n <div className={'mt-8 text-center !max-w-none'} role=\"alert\">\n <h1>Oops!</h1>\n <p>Sorry, an unexpected error has occurred. :( </p>\n <pre className={'text-left mt-8 text-sm'}>{<i>{error.message}</i>}</pre>\n <pre className={'text-left mt-8 text-sm'}>{<i>{error.stack}</i>}</pre>\n </div>\n </>\n )\n}\n"],"names":[],"mappings":";AAEO,SAAS,sBAAsB,EAAE,SAA8B;AAyBpE,yCAEI,UAAA,qBAAC,OAAA,EAAI,WAAW,gCAAgC,MAAK,SACnD,UAAA;AAAA,IAAA,oBAAC,QAAG,UAAA,QAAA,CAAK;AAAA,IACT,oBAAC,OAAE,UAAA,+CAAA,CAA4C;AAAA,IAC/C,oBAAC,SAAI,WAAW,0BAA2B,8BAAC,KAAA,EAAG,UAAA,MAAM,SAAQ,EAAA,CAAK;AAAA,IAClE,oBAAC,SAAI,WAAW,0BAA2B,8BAAC,KAAA,EAAG,UAAA,MAAM,OAAM,EAAA,CAAK;AAAA,EAAA,EAAA,CAClE,EAAA,CACF;AAEJ;"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { jsxs, jsx } from "react/jsx-runtime";
|
|
2
|
+
import { DefaultErrorComponent } from "./DefaultErrorComponent.js";
|
|
3
|
+
function RooutErrorPage(props) {
|
|
4
|
+
return /* @__PURE__ */ jsxs("div", { className: "p-5", children: [
|
|
5
|
+
/* @__PURE__ */ jsx(DefaultErrorComponent, { ...props }),
|
|
6
|
+
";"
|
|
7
|
+
] });
|
|
8
|
+
}
|
|
9
|
+
export {
|
|
10
|
+
RooutErrorPage
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=RooutErrorPage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RooutErrorPage.js","sources":["../../../../../src/ui/components/error/RooutErrorPage.tsx"],"sourcesContent":["import { DefaultErrorComponent } from './DefaultErrorComponent'\nimport type { ErrorComponentProps } from '@tanstack/react-router'\n\nexport function RooutErrorPage(props: ErrorComponentProps) {\n return (\n <div className=\"p-5\">\n <DefaultErrorComponent {...props} />;\n </div>\n )\n}\n"],"names":[],"mappings":";;AAGO,SAAS,eAAe,OAA4B;AACzD,SACE,qBAAC,OAAA,EAAI,WAAU,OACb,UAAA;AAAA,IAAA,oBAAC,uBAAA,EAAuB,GAAG,OAAO;AAAA,IAAE;AAAA,EAAA,GACtC;AAEJ;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function Footer(): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { ExternalLink } from "lucide-react";
|
|
3
|
+
function Footer() {
|
|
4
|
+
return /* @__PURE__ */ jsx("footer", { className: "mt-auto border-t border-border bg-background/50 backdrop-blur-sm", children: /* @__PURE__ */ jsx("div", { className: "max-w-7xl mx-auto px-6 py-4", children: /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-center text-sm text-muted-foreground", children: [
|
|
5
|
+
/* @__PURE__ */ jsx("span", { children: "Built with" }),
|
|
6
|
+
/* @__PURE__ */ jsxs(
|
|
7
|
+
"a",
|
|
8
|
+
{
|
|
9
|
+
href: "https://ui.shadcn.com/docs/components",
|
|
10
|
+
target: "_blank",
|
|
11
|
+
rel: "noopener noreferrer",
|
|
12
|
+
className: "ml-1 inline-flex items-center gap-1 text-primary hover:text-primary/80 transition-colors font-medium",
|
|
13
|
+
children: [
|
|
14
|
+
"shadcn/ui",
|
|
15
|
+
/* @__PURE__ */ jsx(ExternalLink, { className: "h-3 w-3" })
|
|
16
|
+
]
|
|
17
|
+
}
|
|
18
|
+
),
|
|
19
|
+
/* @__PURE__ */ jsx("span", { className: "mx-2", children: "•" }),
|
|
20
|
+
/* @__PURE__ */ jsxs(
|
|
21
|
+
"a",
|
|
22
|
+
{
|
|
23
|
+
href: "https://lucide.dev/icons/expand",
|
|
24
|
+
target: "_blank",
|
|
25
|
+
rel: "noopener noreferrer",
|
|
26
|
+
className: "inline-flex items-center gap-1 text-primary hover:text-primary/80 transition-colors font-medium",
|
|
27
|
+
children: [
|
|
28
|
+
"Lucide Icons",
|
|
29
|
+
/* @__PURE__ */ jsx(ExternalLink, { className: "h-3 w-3" })
|
|
30
|
+
]
|
|
31
|
+
}
|
|
32
|
+
)
|
|
33
|
+
] }) }) });
|
|
34
|
+
}
|
|
35
|
+
export {
|
|
36
|
+
Footer
|
|
37
|
+
};
|
|
38
|
+
//# sourceMappingURL=Footer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Footer.js","sources":["../../../../../src/ui/components/footer/Footer.tsx"],"sourcesContent":["import { ExternalLink } from 'lucide-react'\n\nexport function Footer() {\n return (\n <footer className=\"mt-auto border-t border-border bg-background/50 backdrop-blur-sm\">\n <div className=\"max-w-7xl mx-auto px-6 py-4\">\n <div className=\"flex items-center justify-center text-sm text-muted-foreground\">\n <span>Built with</span>\n <a\n href=\"https://ui.shadcn.com/docs/components\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"ml-1 inline-flex items-center gap-1 text-primary hover:text-primary/80 transition-colors font-medium\"\n >\n shadcn/ui\n <ExternalLink className=\"h-3 w-3\" />\n </a>\n <span className=\"mx-2\">•</span>\n <a\n href=\"https://lucide.dev/icons/expand\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"inline-flex items-center gap-1 text-primary hover:text-primary/80 transition-colors font-medium\"\n >\n Lucide Icons\n <ExternalLink className=\"h-3 w-3\" />\n </a>\n </div>\n </div>\n </footer>\n )\n}\n"],"names":[],"mappings":";;AAEO,SAAS,SAAS;AACvB,SACE,oBAAC,UAAA,EAAO,WAAU,oEAChB,UAAA,oBAAC,OAAA,EAAI,WAAU,+BACb,UAAA,qBAAC,OAAA,EAAI,WAAU,kEACb,UAAA;AAAA,IAAA,oBAAC,UAAK,UAAA,aAAA,CAAU;AAAA,IAChB;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,QAAO;AAAA,QACP,KAAI;AAAA,QACJ,WAAU;AAAA,QACX,UAAA;AAAA,UAAA;AAAA,UAEC,oBAAC,cAAA,EAAa,WAAU,UAAA,CAAU;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,IAEpC,oBAAC,QAAA,EAAK,WAAU,QAAO,UAAA,KAAC;AAAA,IACxB;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,QAAO;AAAA,QACP,KAAI;AAAA,QACJ,WAAU;AAAA,QACX,UAAA;AAAA,UAAA;AAAA,UAEC,oBAAC,cAAA,EAAa,WAAU,UAAA,CAAU;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EACpC,EAAA,CACF,GACF,GACF;AAEJ;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function PlaygroundHeader(): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { jsxs, jsx } from "react/jsx-runtime";
|
|
2
|
+
import { Button } from "../../../components/ui/button.js";
|
|
3
|
+
import { ThemeSwitcher } from "../../../components/ThemeSwitcher.js";
|
|
4
|
+
import SvgEnvHopperLogo from "../../../assets/env-hopper-logo.svg.js";
|
|
5
|
+
function PlaygroundHeader() {
|
|
6
|
+
return /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between mb-4", children: [
|
|
7
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-4", children: [
|
|
8
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
9
|
+
/* @__PURE__ */ jsx(SvgEnvHopperLogo, { className: "h-16 w-16" }),
|
|
10
|
+
/* @__PURE__ */ jsx("h1", { className: "text-lg font-bold", children: "Env‑Hopper" })
|
|
11
|
+
] }),
|
|
12
|
+
/* @__PURE__ */ jsx("span", { className: "text-xs text-muted-foreground", children: "Jump" })
|
|
13
|
+
] }),
|
|
14
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3", children: [
|
|
15
|
+
/* @__PURE__ */ jsx(ThemeSwitcher, {}),
|
|
16
|
+
/* @__PURE__ */ jsx(Button, { size: "sm", variant: "outline", children: "Login" })
|
|
17
|
+
] })
|
|
18
|
+
] });
|
|
19
|
+
}
|
|
20
|
+
export {
|
|
21
|
+
PlaygroundHeader
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=PlaygroundHeader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PlaygroundHeader.js","sources":["../../../../../src/ui/components/header/PlaygroundHeader.tsx"],"sourcesContent":["import { Button } from '~/components/ui/button'\nimport { ThemeSwitcher } from '~/components/ThemeSwitcher'\nimport EnvHopperLogo from '~/assets/env-hopper-logo.svg?react'\n\nexport function PlaygroundHeader() {\n return (\n <div className=\"flex items-center justify-between mb-4\">\n {/* Left side: Logo + Mode */}\n <div className=\"flex items-center gap-4\">\n <div className=\"flex items-center gap-2\">\n <EnvHopperLogo className=\"h-16 w-16\" />\n <h1 className=\"text-lg font-bold\">Env‑Hopper</h1>\n </div>\n <span className=\"text-xs text-muted-foreground\">Jump</span>\n </div>\n\n {/* Right side: Theme switcher + Login */}\n <div className=\"flex items-center gap-3\">\n <ThemeSwitcher />\n <Button size=\"sm\" variant={'outline'}>\n Login\n </Button>\n </div>\n </div>\n )\n}\n"],"names":["EnvHopperLogo"],"mappings":";;;;AAIO,SAAS,mBAAmB;AACjC,SACE,qBAAC,OAAA,EAAI,WAAU,0CAEb,UAAA;AAAA,IAAA,qBAAC,OAAA,EAAI,WAAU,2BACb,UAAA;AAAA,MAAA,qBAAC,OAAA,EAAI,WAAU,2BACb,UAAA;AAAA,QAAA,oBAACA,kBAAA,EAAc,WAAU,YAAA,CAAY;AAAA,QACrC,oBAAC,MAAA,EAAG,WAAU,qBAAoB,UAAA,aAAA,CAAU;AAAA,MAAA,GAC9C;AAAA,MACA,oBAAC,QAAA,EAAK,WAAU,iCAAgC,UAAA,OAAA,CAAI;AAAA,IAAA,GACtD;AAAA,IAGA,qBAAC,OAAA,EAAI,WAAU,2BACb,UAAA;AAAA,MAAA,oBAAC,eAAA,EAAc;AAAA,0BACd,QAAA,EAAO,MAAK,MAAK,SAAS,WAAW,UAAA,QAAA,CAEtC;AAAA,IAAA,EAAA,CACF;AAAA,EAAA,GACF;AAEJ;"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Package, Globe, Server } from "lucide-react";
|
|
3
|
+
import { Button } from "../../../components/ui/button.js";
|
|
4
|
+
import { useBootstrapConfig } from "../../../modules/config/BootstrapConfigContext.js";
|
|
5
|
+
import { useEnvironmentContext } from "../../../modules/environment/EnvironmentContext.js";
|
|
6
|
+
const getEnvironmentColor = (envSlug) => {
|
|
7
|
+
if (envSlug.includes("cross")) return "text-blue-600";
|
|
8
|
+
if (envSlug.includes("preprod")) return "text-orange-600";
|
|
9
|
+
if (envSlug.includes("g64")) return "text-violet-600";
|
|
10
|
+
return "text-gray-600";
|
|
11
|
+
};
|
|
12
|
+
const getEnvironmentIcon = (envSlug) => {
|
|
13
|
+
if (envSlug.includes("cross")) return Package;
|
|
14
|
+
if (envSlug.includes("prod")) return Globe;
|
|
15
|
+
return Server;
|
|
16
|
+
};
|
|
17
|
+
function EnvQuickJumpBar({ className }) {
|
|
18
|
+
const indexData = useBootstrapConfig();
|
|
19
|
+
const { setCurrentEnv, currentEnv } = useEnvironmentContext();
|
|
20
|
+
const environments = Object.values(indexData.envs).slice(0, 4).map((env) => ({
|
|
21
|
+
slug: env.slug,
|
|
22
|
+
label: env.displayName || env.slug,
|
|
23
|
+
icon: getEnvironmentIcon(env.slug),
|
|
24
|
+
color: getEnvironmentColor(env.slug)
|
|
25
|
+
}));
|
|
26
|
+
const onClick = (environment) => {
|
|
27
|
+
setCurrentEnv(environment);
|
|
28
|
+
};
|
|
29
|
+
return /* @__PURE__ */ jsx("div", { className: `flex flex-col gap-1 ${className}`, children: environments.map((env) => {
|
|
30
|
+
const Icon = env.icon;
|
|
31
|
+
const isActive = env.slug === (currentEnv == null ? void 0 : currentEnv.slug);
|
|
32
|
+
return /* @__PURE__ */ jsxs(
|
|
33
|
+
Button,
|
|
34
|
+
{
|
|
35
|
+
variant: "ghost",
|
|
36
|
+
onClick: () => onClick(env.slug),
|
|
37
|
+
className: `justify-start
|
|
38
|
+
${isActive ? "bg-accent text-accent-foreground font-medium" : ""}
|
|
39
|
+
`,
|
|
40
|
+
children: [
|
|
41
|
+
/* @__PURE__ */ jsx(Icon, { className: `w-4 h-4 ${env.color} flex-shrink-0` }),
|
|
42
|
+
env.label
|
|
43
|
+
]
|
|
44
|
+
},
|
|
45
|
+
env.slug
|
|
46
|
+
);
|
|
47
|
+
}) });
|
|
48
|
+
}
|
|
49
|
+
export {
|
|
50
|
+
EnvQuickJumpBar
|
|
51
|
+
};
|
|
52
|
+
//# sourceMappingURL=EnvQuickJumpBar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EnvQuickJumpBar.js","sources":["../../../../../src/ui/components/quickBar/EnvQuickJumpBar.tsx"],"sourcesContent":["import { Globe, Package, Server } from 'lucide-react'\nimport { Button } from '~/components/ui/button'\nimport { useBootstrapConfig } from '~/modules/config/BootstrapConfigContext'\nimport { useEnvironmentContext } from '~/modules/environment/EnvironmentContext'\n\ninterface EnvQuickJumpBarProps {\n className?: string\n}\n\n// Environment color mapping\nconst getEnvironmentColor = (envSlug: string) => {\n if (envSlug.includes('cross')) return 'text-blue-600'\n if (envSlug.includes('preprod')) return 'text-orange-600'\n if (envSlug.includes('g64')) return 'text-violet-600'\n return 'text-gray-600'\n}\n\n// Environment icon mapping\nconst getEnvironmentIcon = (envSlug: string) => {\n if (envSlug.includes('cross')) return Package\n if (envSlug.includes('prod')) return Globe\n return Server\n}\n\nexport function EnvQuickJumpBar({ className }: EnvQuickJumpBarProps) {\n const indexData = useBootstrapConfig()\n const { setCurrentEnv, currentEnv } = useEnvironmentContext()\n\n // Get first 3-4 real environments from context data\n const environments = Object.values(indexData.envs)\n .slice(0, 4)\n .map((env) => ({\n slug: env.slug,\n label: env.displayName || env.slug,\n icon: getEnvironmentIcon(env.slug),\n color: getEnvironmentColor(env.slug),\n }))\n\n const onClick = (environment: string) => {\n setCurrentEnv(environment)\n }\n\n return (\n <div className={`flex flex-col gap-1 ${className}`}>\n {environments.map((env) => {\n const Icon = env.icon\n const isActive = env.slug === currentEnv?.slug\n\n return (\n <Button\n key={env.slug}\n variant={'ghost'}\n onClick={() => onClick(env.slug)}\n className={`justify-start\n ${isActive ? 'bg-accent text-accent-foreground font-medium' : ''}\n `}\n >\n <Icon className={`w-4 h-4 ${env.color} flex-shrink-0`} />\n {env.label}\n </Button>\n )\n })}\n </div>\n )\n}\n"],"names":[],"mappings":";;;;;AAUA,MAAM,sBAAsB,CAAC,YAAoB;AAC/C,MAAI,QAAQ,SAAS,OAAO,EAAG,QAAO;AACtC,MAAI,QAAQ,SAAS,SAAS,EAAG,QAAO;AACxC,MAAI,QAAQ,SAAS,KAAK,EAAG,QAAO;AACpC,SAAO;AACT;AAGA,MAAM,qBAAqB,CAAC,YAAoB;AAC9C,MAAI,QAAQ,SAAS,OAAO,EAAG,QAAO;AACtC,MAAI,QAAQ,SAAS,MAAM,EAAG,QAAO;AACrC,SAAO;AACT;AAEO,SAAS,gBAAgB,EAAE,aAAmC;AACnE,QAAM,YAAY,mBAAA;AAClB,QAAM,EAAE,eAAe,WAAA,IAAe,sBAAA;AAGtC,QAAM,eAAe,OAAO,OAAO,UAAU,IAAI,EAC9C,MAAM,GAAG,CAAC,EACV,IAAI,CAAC,SAAS;AAAA,IACb,MAAM,IAAI;AAAA,IACV,OAAO,IAAI,eAAe,IAAI;AAAA,IAC9B,MAAM,mBAAmB,IAAI,IAAI;AAAA,IACjC,OAAO,oBAAoB,IAAI,IAAI;AAAA,EAAA,EACnC;AAEJ,QAAM,UAAU,CAAC,gBAAwB;AACvC,kBAAc,WAAW;AAAA,EAC3B;AAEA,SACE,oBAAC,SAAI,WAAW,uBAAuB,SAAS,IAC7C,UAAA,aAAa,IAAI,CAAC,QAAQ;AACzB,UAAM,OAAO,IAAI;AACjB,UAAM,WAAW,IAAI,UAAS,yCAAY;AAE1C,WACE;AAAA,MAAC;AAAA,MAAA;AAAA,QAEC,SAAS;AAAA,QACT,SAAS,MAAM,QAAQ,IAAI,IAAI;AAAA,QAC/B,WAAW;AAAA,kBACL,WAAW,iDAAiD,EAAE;AAAA;AAAA,QAGpE,UAAA;AAAA,UAAA,oBAAC,MAAA,EAAK,WAAW,WAAW,IAAI,KAAK,kBAAkB;AAAA,UACtD,IAAI;AAAA,QAAA;AAAA,MAAA;AAAA,MARA,IAAI;AAAA,IAAA;AAAA,EAWf,CAAC,EAAA,CACH;AAEJ;"}
|