@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.
Files changed (385) hide show
  1. package/LICENSE +21 -0
  2. package/dist/apple-touch-180x180.png +0 -0
  3. package/dist/disable.well-known/appspecific/com.chrome.devtools.json +6 -0
  4. package/dist/env-hopper-16x16.png +0 -0
  5. package/dist/env-hopper-192x192.png +0 -0
  6. package/dist/env-hopper-32x32.png +0 -0
  7. package/dist/env-hopper-48x48.png +0 -0
  8. package/dist/env-hopper-512x512.png +0 -0
  9. package/dist/env-hopper-square.svg +114 -0
  10. package/dist/esm/App.d.ts +12 -0
  11. package/dist/esm/App.js +12 -0
  12. package/dist/esm/App.js.map +1 -0
  13. package/dist/esm/__tests__/modules/fuzzyMatchLogic/autoCompleteFilter.test.d.ts +1 -0
  14. package/dist/esm/__tests__/modules/fuzzyMatchLogic/features/prefixFracTokenMiddles.test.d.ts +1 -0
  15. package/dist/esm/__tests__/modules/fuzzyMatchLogic/fixLayout.test.d.ts +1 -0
  16. package/dist/esm/__tests__/modules/fuzzyMatchLogic/postFiltration.test.d.ts +1 -0
  17. package/dist/esm/__tests__/modules/fuzzyMatchLogic/testUtils.d.ts +2 -0
  18. package/dist/esm/__tests__/modules/fuzzyMatchLogic/tokenize.test.d.ts +1 -0
  19. package/dist/esm/__tests__/modules/resouceJump/findBestMatchByUrl.test.d.ts +1 -0
  20. package/dist/esm/__tests__/setupTests.d.ts +0 -0
  21. package/dist/esm/__tests__/util/availabilityMatrixUtils.test.d.ts +1 -0
  22. package/dist/esm/api/ApiQueryMagazine.d.ts +12 -0
  23. package/dist/esm/api/ApiQueryMagazine.js +16 -0
  24. package/dist/esm/api/ApiQueryMagazine.js.map +1 -0
  25. package/dist/esm/api/data/useQueryBootstrapConfig.d.ts +3 -0
  26. package/dist/esm/api/data/useQueryBootstrapConfig.js +14 -0
  27. package/dist/esm/api/data/useQueryBootstrapConfig.js.map +1 -0
  28. package/dist/esm/api/infra/createQueryClient.d.ts +7 -0
  29. package/dist/esm/api/infra/createQueryClient.js +23 -0
  30. package/dist/esm/api/infra/createQueryClient.js.map +1 -0
  31. package/dist/esm/api/infra/trpc.d.ts +93 -0
  32. package/dist/esm/api/infra/trpc.js +8 -0
  33. package/dist/esm/api/infra/trpc.js.map +1 -0
  34. package/dist/esm/api/unsorted/indexDataFetcher.d.ts +11 -0
  35. package/dist/esm/api/unsorted/indexDataFetcher.js +35 -0
  36. package/dist/esm/api/unsorted/indexDataFetcher.js.map +1 -0
  37. package/dist/esm/appPropsFactory.d.ts +2 -0
  38. package/dist/esm/appPropsFactory.js +32 -0
  39. package/dist/esm/appPropsFactory.js.map +1 -0
  40. package/dist/esm/assets/env-hopper-logo.svg.js +16 -0
  41. package/dist/esm/assets/env-hopper-logo.svg.js.map +1 -0
  42. package/dist/esm/components/ThemeSwitcher.d.ts +1 -0
  43. package/dist/esm/components/ThemeSwitcher.js +25 -0
  44. package/dist/esm/components/ThemeSwitcher.js.map +1 -0
  45. package/dist/esm/components/theme-provider.d.ts +2 -0
  46. package/dist/esm/components/theme-provider.js +10 -0
  47. package/dist/esm/components/theme-provider.js.map +1 -0
  48. package/dist/esm/components/ui/badge.d.ts +9 -0
  49. package/dist/esm/components/ui/breadcrumb.d.ts +46 -0
  50. package/dist/esm/components/ui/button.d.ts +16 -0
  51. package/dist/esm/components/ui/button.js +52 -0
  52. package/dist/esm/components/ui/button.js.map +1 -0
  53. package/dist/esm/components/ui/card.d.ts +38 -0
  54. package/dist/esm/components/ui/collapsible.d.ts +5 -0
  55. package/dist/esm/components/ui/dialog.d.ts +21 -0
  56. package/dist/esm/components/ui/dropdown-menu.d.ts +25 -0
  57. package/dist/esm/components/ui/input.d.ts +10 -0
  58. package/dist/esm/components/ui/popover.d.ts +7 -0
  59. package/dist/esm/components/ui/popover.js +14 -0
  60. package/dist/esm/components/ui/popover.js.map +1 -0
  61. package/dist/esm/components/ui/scroll-area.d.ts +5 -0
  62. package/dist/esm/components/ui/separator.d.ts +4 -0
  63. package/dist/esm/components/ui/separator.js +27 -0
  64. package/dist/esm/components/ui/separator.js.map +1 -0
  65. package/dist/esm/components/ui/tabs.d.ts +7 -0
  66. package/dist/esm/index.d.ts +3 -0
  67. package/dist/esm/index.js +7 -0
  68. package/dist/esm/index.js.map +1 -0
  69. package/dist/esm/lib/utils.d.ts +2 -0
  70. package/dist/esm/lib/utils.js +9 -0
  71. package/dist/esm/lib/utils.js.map +1 -0
  72. package/dist/esm/main.d.ts +0 -0
  73. package/dist/esm/modules/config/BootstrapConfigContext.d.ts +9 -0
  74. package/dist/esm/modules/config/BootstrapConfigContext.js +25 -0
  75. package/dist/esm/modules/config/BootstrapConfigContext.js.map +1 -0
  76. package/dist/esm/modules/config/GlobalConfigContext.d.ts +14 -0
  77. package/dist/esm/modules/config/GlobalConfigContext.js +21 -0
  78. package/dist/esm/modules/config/GlobalConfigContext.js.map +1 -0
  79. package/dist/esm/modules/environment/ApiQueryMagazineEnvironment.d.ts +12 -0
  80. package/dist/esm/modules/environment/ApiQueryMagazineEnvironment.js +13 -0
  81. package/dist/esm/modules/environment/ApiQueryMagazineEnvironment.js.map +1 -0
  82. package/dist/esm/modules/environment/EnvironmentContext.d.ts +15 -0
  83. package/dist/esm/modules/environment/EnvironmentContext.js +67 -0
  84. package/dist/esm/modules/environment/EnvironmentContext.js.map +1 -0
  85. package/dist/esm/modules/environment/types.d.ts +4 -0
  86. package/dist/esm/modules/environment/ui/EhEnvSelector.d.ts +9 -0
  87. package/dist/esm/modules/environment/ui/EhEnvSelector.js +167 -0
  88. package/dist/esm/modules/environment/ui/EhEnvSelector.js.map +1 -0
  89. package/dist/esm/modules/fuzzyMatchLogic/autoCompleteFilter.d.ts +3 -0
  90. package/dist/esm/modules/fuzzyMatchLogic/autoCompleteFilter.js +43 -0
  91. package/dist/esm/modules/fuzzyMatchLogic/autoCompleteFilter.js.map +1 -0
  92. package/dist/esm/modules/fuzzyMatchLogic/features/prefixFrac.d.ts +1 -0
  93. package/dist/esm/modules/fuzzyMatchLogic/features/prefixFrac.js +12 -0
  94. package/dist/esm/modules/fuzzyMatchLogic/features/prefixFrac.js.map +1 -0
  95. package/dist/esm/modules/fuzzyMatchLogic/features/prefixFracTokenMiddles.d.ts +2 -0
  96. package/dist/esm/modules/fuzzyMatchLogic/fixLayout.d.ts +2 -0
  97. package/dist/esm/modules/fuzzyMatchLogic/postFiltration.d.ts +2 -0
  98. package/dist/esm/modules/fuzzyMatchLogic/scoring.d.ts +2 -0
  99. package/dist/esm/modules/fuzzyMatchLogic/scoring.js +23 -0
  100. package/dist/esm/modules/fuzzyMatchLogic/scoring.js.map +1 -0
  101. package/dist/esm/modules/fuzzyMatchLogic/tokenize.d.ts +3 -0
  102. package/dist/esm/modules/fuzzyMatchLogic/types.d.ts +25 -0
  103. package/dist/esm/modules/fuzzyMatchLogic/utils.d.ts +2 -0
  104. package/dist/esm/modules/fuzzyMatchLogic/utils.js +12 -0
  105. package/dist/esm/modules/fuzzyMatchLogic/utils.js.map +1 -0
  106. package/dist/esm/modules/pluginCore/PluginManagerContext.d.ts +24 -0
  107. package/dist/esm/modules/pluginCore/PluginManagerContext.js +62 -0
  108. package/dist/esm/modules/pluginCore/PluginManagerContext.js.map +1 -0
  109. package/dist/esm/modules/pluginCore/makePluginManagerContext.d.ts +7 -0
  110. package/dist/esm/modules/pluginCore/makePluginManagerContext.js +27 -0
  111. package/dist/esm/modules/pluginCore/makePluginManagerContext.js.map +1 -0
  112. package/dist/esm/modules/pluginCore/types.d.ts +36 -0
  113. package/dist/esm/modules/pluginCore/types.js +7 -0
  114. package/dist/esm/modules/pluginCore/types.js.map +1 -0
  115. package/dist/esm/modules/resourceJump/ApiQueryMagazineResourceJump.d.ts +27 -0
  116. package/dist/esm/modules/resourceJump/ApiQueryMagazineResourceJump.js +26 -0
  117. package/dist/esm/modules/resourceJump/ApiQueryMagazineResourceJump.js.map +1 -0
  118. package/dist/esm/modules/resourceJump/ResourceJumpContext.d.ts +17 -0
  119. package/dist/esm/modules/resourceJump/ResourceJumpContext.js +88 -0
  120. package/dist/esm/modules/resourceJump/ResourceJumpContext.js.map +1 -0
  121. package/dist/esm/modules/resourceJump/buildJumpUrl.d.ts +2 -0
  122. package/dist/esm/modules/resourceJump/buildJumpUrl.js +32 -0
  123. package/dist/esm/modules/resourceJump/buildJumpUrl.js.map +1 -0
  124. package/dist/esm/modules/resourceJump/findBestMatchByUrl.d.ts +17 -0
  125. package/dist/esm/modules/resourceJump/findBestMatchByUrl.js +85 -0
  126. package/dist/esm/modules/resourceJump/findBestMatchByUrl.js.map +1 -0
  127. package/dist/esm/modules/resourceJump/helpers.d.ts +28 -0
  128. package/dist/esm/modules/resourceJump/helpers.js +19 -0
  129. package/dist/esm/modules/resourceJump/helpers.js.map +1 -0
  130. package/dist/esm/modules/resourceJump/routeLoader.d.ts +11 -0
  131. package/dist/esm/modules/resourceJump/routeLoader.js +43 -0
  132. package/dist/esm/modules/resourceJump/routeLoader.js.map +1 -0
  133. package/dist/esm/modules/resourceJump/types.d.ts +18 -0
  134. package/dist/esm/modules/resourceJump/ui/EhJumpResourceSelector.d.ts +20 -0
  135. package/dist/esm/modules/resourceJump/ui/EhJumpResourceSelector.js +209 -0
  136. package/dist/esm/modules/resourceJump/ui/EhJumpResourceSelector.js.map +1 -0
  137. package/dist/esm/modules/resourceJump/ui/JumpALink.d.ts +14 -0
  138. package/dist/esm/modules/resourceJump/ui/JumpALink.js +38 -0
  139. package/dist/esm/modules/resourceJump/ui/JumpALink.js.map +1 -0
  140. package/dist/esm/modules/resourceJump/ui/JumpMainButton.d.ts +5 -0
  141. package/dist/esm/modules/resourceJump/ui/JumpMainButton.js +66 -0
  142. package/dist/esm/modules/resourceJump/ui/JumpMainButton.js.map +1 -0
  143. package/dist/esm/modules/resourceJump/ui/ResouceJumpLayout.d.ts +5 -0
  144. package/dist/esm/modules/resourceJump/ui/ResouceJumpLayout.js +42 -0
  145. package/dist/esm/modules/resourceJump/ui/ResouceJumpLayout.js.map +1 -0
  146. package/dist/esm/plugins/builtin/pageUrl/PageUrlPluginContext.d.ts +9 -0
  147. package/dist/esm/plugins/builtin/pageUrl/PageUrlPluginContext.js +36 -0
  148. package/dist/esm/plugins/builtin/pageUrl/PageUrlPluginContext.js.map +1 -0
  149. package/dist/esm/plugins/builtin/pageUrl/pageUrlAutoCompletePlugin.d.ts +11 -0
  150. package/dist/esm/plugins/builtin/pageUrl/pageUrlAutoCompletePlugin.js +44 -0
  151. package/dist/esm/plugins/builtin/pageUrl/pageUrlAutoCompletePlugin.js.map +1 -0
  152. package/dist/esm/plugins/builtin/pageUrl/pageUrlJumpPlugin.d.ts +7 -0
  153. package/dist/esm/plugins/builtin/pageUrl/pageUrlJumpPlugin.js +29 -0
  154. package/dist/esm/plugins/builtin/pageUrl/pageUrlJumpPlugin.js.map +1 -0
  155. package/dist/esm/plugins/builtin/pageUrl/pageUrlTypes.d.ts +11 -0
  156. package/dist/esm/routeTree.gen.d.ts +142 -0
  157. package/dist/esm/routeTree.gen.js +77 -0
  158. package/dist/esm/routeTree.gen.js.map +1 -0
  159. package/dist/esm/routes/__root.d.ts +2 -0
  160. package/dist/esm/routes/__root.js +22 -0
  161. package/dist/esm/routes/__root.js.map +1 -0
  162. package/dist/esm/routes/_layout/app/$appSlug/sub/$subValue.d.ts +1 -0
  163. package/dist/esm/routes/_layout/app/$appSlug.d.ts +1 -0
  164. package/dist/esm/routes/_layout/app/_appSlug/sub/_subValue.js +18 -0
  165. package/dist/esm/routes/_layout/app/_appSlug/sub/_subValue.js.map +1 -0
  166. package/dist/esm/routes/_layout/app/_appSlug.js +18 -0
  167. package/dist/esm/routes/_layout/app/_appSlug.js.map +1 -0
  168. package/dist/esm/routes/_layout/env/$envSlug/app/$appSlug/sub/$subValue.d.ts +1 -0
  169. package/dist/esm/routes/_layout/env/$envSlug/app/$appSlug.d.ts +1 -0
  170. package/dist/esm/routes/_layout/env/$envSlug/sub/$subValue.d.ts +1 -0
  171. package/dist/esm/routes/_layout/env/$envSlug.d.ts +1 -0
  172. package/dist/esm/routes/_layout/env/_envSlug/app/_appSlug/sub/_subValue.js +20 -0
  173. package/dist/esm/routes/_layout/env/_envSlug/app/_appSlug/sub/_subValue.js.map +1 -0
  174. package/dist/esm/routes/_layout/env/_envSlug/app/_appSlug.js +18 -0
  175. package/dist/esm/routes/_layout/env/_envSlug/app/_appSlug.js.map +1 -0
  176. package/dist/esm/routes/_layout/env/_envSlug/sub/_subValue.js +18 -0
  177. package/dist/esm/routes/_layout/env/_envSlug/sub/_subValue.js.map +1 -0
  178. package/dist/esm/routes/_layout/env/_envSlug.js +18 -0
  179. package/dist/esm/routes/_layout/env/_envSlug.js.map +1 -0
  180. package/dist/esm/routes/_layout/index.d.ts +1 -0
  181. package/dist/esm/routes/_layout/index.js +18 -0
  182. package/dist/esm/routes/_layout/index.js.map +1 -0
  183. package/dist/esm/routes/_layout.d.ts +1 -0
  184. package/dist/esm/routes/_layout.js +12 -0
  185. package/dist/esm/routes/_layout.js.map +1 -0
  186. package/dist/esm/types/ehTypes.d.ts +31 -0
  187. package/dist/esm/types/slateTypes.d.ts +28 -0
  188. package/dist/esm/types/tanstackQuery.d.ts +11 -0
  189. package/dist/esm/types/types.d.ts +16 -0
  190. package/dist/esm/types/userBehaviourTypes.d.ts +76 -0
  191. package/dist/esm/types/utilityTypes.d.ts +1 -0
  192. package/dist/esm/ui/components/ActionCard.d.ts +9 -0
  193. package/dist/esm/ui/components/AppIcon.d.ts +7 -0
  194. package/dist/esm/ui/components/commandInput/EhBaseSelector.d.ts +6 -0
  195. package/dist/esm/ui/components/commandInput/EhBaseSelector.js +22 -0
  196. package/dist/esm/ui/components/commandInput/EhBaseSelector.js.map +1 -0
  197. package/dist/esm/ui/components/commandInput/types.d.ts +13 -0
  198. package/dist/esm/ui/components/contextDebug.d.ts +2 -0
  199. package/dist/esm/ui/components/contextDebug.js +12 -0
  200. package/dist/esm/ui/components/contextDebug.js.map +1 -0
  201. package/dist/esm/ui/components/controlPanel/BaseDropdownSelector.d.ts +11 -0
  202. package/dist/esm/ui/components/controlPanel/env/EnvDropdownContent.d.ts +5 -0
  203. package/dist/esm/ui/components/controlPanel/env/EnvDropdownSelector.d.ts +1 -0
  204. package/dist/esm/ui/components/error/DefaultErrorComponent.d.ts +2 -0
  205. package/dist/esm/ui/components/error/DefaultErrorComponent.js +13 -0
  206. package/dist/esm/ui/components/error/DefaultErrorComponent.js.map +1 -0
  207. package/dist/esm/ui/components/error/RooutErrorPage.d.ts +2 -0
  208. package/dist/esm/ui/components/error/RooutErrorPage.js +12 -0
  209. package/dist/esm/ui/components/error/RooutErrorPage.js.map +1 -0
  210. package/dist/esm/ui/components/footer/Footer.d.ts +1 -0
  211. package/dist/esm/ui/components/footer/Footer.js +38 -0
  212. package/dist/esm/ui/components/footer/Footer.js.map +1 -0
  213. package/dist/esm/ui/components/header/PlaygroundHeader.d.ts +1 -0
  214. package/dist/esm/ui/components/header/PlaygroundHeader.js +23 -0
  215. package/dist/esm/ui/components/header/PlaygroundHeader.js.map +1 -0
  216. package/dist/esm/ui/components/leftPanel/LeftPanel.d.ts +5 -0
  217. package/dist/esm/ui/components/quickBar/EnvQuickJumpBar.d.ts +5 -0
  218. package/dist/esm/ui/components/quickBar/EnvQuickJumpBar.js +52 -0
  219. package/dist/esm/ui/components/quickBar/EnvQuickJumpBar.js.map +1 -0
  220. package/dist/esm/ui/components/quickBar/QuickJumpBar.d.ts +5 -0
  221. package/dist/esm/ui/components/widgetPanel/AddWidgetCard.d.ts +5 -0
  222. package/dist/esm/ui/components/widgetPanel/WidgetGrid.d.ts +6 -0
  223. package/dist/esm/ui/components/widgets/CredentialsWidget.d.ts +11 -0
  224. package/dist/esm/ui/components/widgets/VersionWidget.d.ts +7 -0
  225. package/dist/esm/ui/error/NotFoundError.d.ts +1 -0
  226. package/dist/esm/ui/error/NotFoundError.js +16 -0
  227. package/dist/esm/ui/error/NotFoundError.js.map +1 -0
  228. package/dist/esm/ui/layout/Footer.d.ts +1 -0
  229. package/dist/esm/ui/layout/Header.d.ts +1 -0
  230. package/dist/esm/ui/layout/LoadingScreen.d.ts +4 -0
  231. package/dist/esm/ui/layout/LoadingScreen.js +14 -0
  232. package/dist/esm/ui/layout/LoadingScreen.js.map +1 -0
  233. package/dist/esm/ui/layout/MainLayout.d.ts +5 -0
  234. package/dist/esm/ui/layout/MainLayout.js +18 -0
  235. package/dist/esm/ui/layout/MainLayout.js.map +1 -0
  236. package/dist/esm/ui/layout/SideColumn.d.ts +1 -0
  237. package/dist/esm/ui/layout/TopLevelProviders.d.ts +5 -0
  238. package/dist/esm/ui/layout/TopLevelProviders.js +42 -0
  239. package/dist/esm/ui/layout/TopLevelProviders.js.map +1 -0
  240. package/dist/esm/ui/main/JumpTabContent.d.ts +1 -0
  241. package/dist/esm/ui/main/Tabs.d.ts +4 -0
  242. package/dist/esm/userDb/DbContext.d.ts +9 -0
  243. package/dist/esm/userDb/DbContext.js +18 -0
  244. package/dist/esm/userDb/DbContext.js.map +1 -0
  245. package/dist/esm/userDb/EhDb.d.ts +12 -0
  246. package/dist/esm/userDb/EhDb.js +20 -0
  247. package/dist/esm/userDb/EhDb.js.map +1 -0
  248. package/dist/esm/util/availabilityMatrixUtils.d.ts +12 -0
  249. package/dist/esm/util/availabilityMatrixUtils.js +57 -0
  250. package/dist/esm/util/availabilityMatrixUtils.js.map +1 -0
  251. package/dist/esm/util/createEhRouter.d.ts +7 -0
  252. package/dist/esm/util/createEhRouter.js +16 -0
  253. package/dist/esm/util/createEhRouter.js.map +1 -0
  254. package/dist/esm/util/highlightMatches.d.ts +2 -0
  255. package/dist/esm/util/highlightMatches.js +19 -0
  256. package/dist/esm/util/highlightMatches.js.map +1 -0
  257. package/dist/esm/util/reactQueryUtils.d.ts +6 -0
  258. package/dist/esm/util/reactQueryUtils.js +10 -0
  259. package/dist/esm/util/reactQueryUtils.js.map +1 -0
  260. package/dist/esm/util/route-utils.d.ts +6 -0
  261. package/dist/esm/util/route-utils.js +72 -0
  262. package/dist/esm/util/route-utils.js.map +1 -0
  263. package/dist/favicon.ico +0 -0
  264. package/dist/robots.txt +2 -0
  265. package/package.json +110 -0
  266. package/src/App.tsx +28 -0
  267. package/src/__tests__/modules/fuzzyMatchLogic/autoCompleteFilter.test.ts +185 -0
  268. package/src/__tests__/modules/fuzzyMatchLogic/features/prefixFracTokenMiddles.test.ts +23 -0
  269. package/src/__tests__/modules/fuzzyMatchLogic/fixLayout.test.ts +11 -0
  270. package/src/__tests__/modules/fuzzyMatchLogic/postFiltration.test.ts +15 -0
  271. package/src/__tests__/modules/fuzzyMatchLogic/testUtils.ts +8 -0
  272. package/src/__tests__/modules/fuzzyMatchLogic/tokenize.test.ts +65 -0
  273. package/src/__tests__/modules/resouceJump/findBestMatchByUrl.test.ts +234 -0
  274. package/src/__tests__/setupTests.tsx +0 -0
  275. package/src/__tests__/util/availabilityMatrixUtils.test.ts +61 -0
  276. package/src/api/ApiQueryMagazine.ts +15 -0
  277. package/src/api/data/useQueryBootstrapConfig.ts +17 -0
  278. package/src/api/infra/createQueryClient.ts +25 -0
  279. package/src/api/infra/trpc.ts +6 -0
  280. package/src/api/unsorted/indexDataFetcher.ts +46 -0
  281. package/src/appPropsFactory.ts +35 -0
  282. package/src/assets/env-hopper-logo.svg +114 -0
  283. package/src/components/ThemeSwitcher.tsx +22 -0
  284. package/src/components/theme-provider.tsx +8 -0
  285. package/src/components/ui/badge.tsx +37 -0
  286. package/src/components/ui/breadcrumb.tsx +128 -0
  287. package/src/components/ui/button.tsx +60 -0
  288. package/src/components/ui/card.tsx +95 -0
  289. package/src/components/ui/collapsible.tsx +31 -0
  290. package/src/components/ui/dialog.tsx +182 -0
  291. package/src/components/ui/dropdown-menu.tsx +257 -0
  292. package/src/components/ui/input.tsx +28 -0
  293. package/src/components/ui/popover.tsx +48 -0
  294. package/src/components/ui/scroll-area.tsx +58 -0
  295. package/src/components/ui/separator.tsx +26 -0
  296. package/src/components/ui/tabs.tsx +65 -0
  297. package/src/index.css +211 -0
  298. package/src/index.tsx +3 -0
  299. package/src/lib/utils.ts +7 -0
  300. package/src/main.tsx +53 -0
  301. package/src/modules/config/BootstrapConfigContext.tsx +33 -0
  302. package/src/modules/config/GlobalConfigContext.tsx +42 -0
  303. package/src/modules/environment/ApiQueryMagazineEnvironment.ts +12 -0
  304. package/src/modules/environment/EnvironmentContext.tsx +115 -0
  305. package/src/modules/environment/types.ts +4 -0
  306. package/src/modules/environment/ui/EhEnvSelector.tsx +191 -0
  307. package/src/modules/fuzzyMatchLogic/autoCompleteFilter.ts +186 -0
  308. package/src/modules/fuzzyMatchLogic/features/prefixFrac.ts +13 -0
  309. package/src/modules/fuzzyMatchLogic/features/prefixFracTokenMiddles.ts +29 -0
  310. package/src/modules/fuzzyMatchLogic/fixLayout.ts +24 -0
  311. package/src/modules/fuzzyMatchLogic/postFiltration.ts +35 -0
  312. package/src/modules/fuzzyMatchLogic/scoring.ts +42 -0
  313. package/src/modules/fuzzyMatchLogic/tokenize.ts +32 -0
  314. package/src/modules/fuzzyMatchLogic/types.ts +33 -0
  315. package/src/modules/fuzzyMatchLogic/utils.ts +18 -0
  316. package/src/modules/pluginCore/PluginManagerContext.tsx +107 -0
  317. package/src/modules/pluginCore/makePluginManagerContext.ts +35 -0
  318. package/src/modules/pluginCore/types.ts +54 -0
  319. package/src/modules/resourceJump/ApiQueryMagazineResourceJump.ts +31 -0
  320. package/src/modules/resourceJump/ResourceJumpContext.tsx +142 -0
  321. package/src/modules/resourceJump/buildJumpUrl.ts +40 -0
  322. package/src/modules/resourceJump/findBestMatchByUrl.ts +121 -0
  323. package/src/modules/resourceJump/helpers.ts +117 -0
  324. package/src/modules/resourceJump/routeLoader.ts +58 -0
  325. package/src/modules/resourceJump/types.ts +21 -0
  326. package/src/modules/resourceJump/ui/EhJumpResourceSelector.tsx +259 -0
  327. package/src/modules/resourceJump/ui/JumpALink.tsx +54 -0
  328. package/src/modules/resourceJump/ui/JumpMainButton.tsx +97 -0
  329. package/src/modules/resourceJump/ui/ResouceJumpLayout.tsx +73 -0
  330. package/src/plugins/builtin/pageUrl/PageUrlPluginContext.tsx +55 -0
  331. package/src/plugins/builtin/pageUrl/pageUrlAutoCompletePlugin.ts +66 -0
  332. package/src/plugins/builtin/pageUrl/pageUrlJumpPlugin.ts +36 -0
  333. package/src/plugins/builtin/pageUrl/pageUrlTypes.ts +17 -0
  334. package/src/routeTree.gen.ts +249 -0
  335. package/src/routes/__root.tsx +23 -0
  336. package/src/routes/_layout/app/$appSlug/sub/$subValue.tsx +15 -0
  337. package/src/routes/_layout/app/$appSlug.tsx +15 -0
  338. package/src/routes/_layout/env/$envSlug/app/$appSlug/sub/$subValue.tsx +17 -0
  339. package/src/routes/_layout/env/$envSlug/app/$appSlug.tsx +15 -0
  340. package/src/routes/_layout/env/$envSlug/sub/$subValue.tsx +15 -0
  341. package/src/routes/_layout/env/$envSlug.tsx +15 -0
  342. package/src/routes/_layout/index.tsx +16 -0
  343. package/src/routes/_layout.tsx +9 -0
  344. package/src/types/ehTypes.ts +40 -0
  345. package/src/types/slateTypes.ts +22 -0
  346. package/src/types/tanstackQuery.ts +14 -0
  347. package/src/types/types.ts +20 -0
  348. package/src/types/userBehaviourTypes.ts +100 -0
  349. package/src/types/utilityTypes.ts +1 -0
  350. package/src/types/vite-env.d.ts +1 -0
  351. package/src/ui/components/ActionCard.tsx +30 -0
  352. package/src/ui/components/AppIcon.tsx +48 -0
  353. package/src/ui/components/commandInput/EhBaseSelector.tsx +51 -0
  354. package/src/ui/components/commandInput/types.ts +22 -0
  355. package/src/ui/components/contextDebug.tsx +13 -0
  356. package/src/ui/components/controlPanel/BaseDropdownSelector.tsx +163 -0
  357. package/src/ui/components/controlPanel/env/EnvDropdownContent.tsx +114 -0
  358. package/src/ui/components/controlPanel/env/EnvDropdownSelector.tsx +21 -0
  359. package/src/ui/components/error/DefaultErrorComponent.tsx +38 -0
  360. package/src/ui/components/error/RooutErrorPage.tsx +10 -0
  361. package/src/ui/components/footer/Footer.tsx +32 -0
  362. package/src/ui/components/header/PlaygroundHeader.tsx +26 -0
  363. package/src/ui/components/leftPanel/LeftPanel.tsx +194 -0
  364. package/src/ui/components/quickBar/EnvQuickJumpBar.tsx +65 -0
  365. package/src/ui/components/quickBar/QuickJumpBar.tsx +101 -0
  366. package/src/ui/components/widgetPanel/AddWidgetCard.tsx +17 -0
  367. package/src/ui/components/widgetPanel/WidgetGrid.tsx +18 -0
  368. package/src/ui/components/widgets/CredentialsWidget.tsx +55 -0
  369. package/src/ui/components/widgets/VersionWidget.tsx +29 -0
  370. package/src/ui/error/NotFoundError.tsx +13 -0
  371. package/src/ui/layout/Footer.tsx +16 -0
  372. package/src/ui/layout/Header.tsx +14 -0
  373. package/src/ui/layout/LoadingScreen.tsx +17 -0
  374. package/src/ui/layout/MainLayout.tsx +27 -0
  375. package/src/ui/layout/SideColumn.tsx +3 -0
  376. package/src/ui/layout/TopLevelProviders.tsx +52 -0
  377. package/src/ui/main/JumpTabContent.tsx +12 -0
  378. package/src/ui/main/Tabs.tsx +29 -0
  379. package/src/userDb/DbContext.tsx +22 -0
  380. package/src/userDb/EhDb.ts +22 -0
  381. package/src/util/availabilityMatrixUtils.ts +80 -0
  382. package/src/util/createEhRouter.ts +20 -0
  383. package/src/util/highlightMatches.tsx +29 -0
  384. package/src/util/reactQueryUtils.ts +12 -0
  385. 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,7 @@
1
+ import { EhAppIndexed } from '@env-hopper/backend-core';
2
+ interface AppIconProps {
3
+ app: EhAppIndexed;
4
+ className?: string;
5
+ }
6
+ export declare function AppIcon({ app, className }: AppIconProps): import("react/jsx-runtime").JSX.Element;
7
+ 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,2 @@
1
+ declare const ContextDebug: React.FC;
2
+ export default ContextDebug;
@@ -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,2 @@
1
+ import { ErrorComponentProps } from '@tanstack/react-router';
2
+ export declare function DefaultErrorComponent({ error }: ErrorComponentProps): 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,2 @@
1
+ import { ErrorComponentProps } from '@tanstack/react-router';
2
+ export declare function RooutErrorPage(props: ErrorComponentProps): import("react/jsx-runtime").JSX.Element;
@@ -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,5 @@
1
+ interface LeftPanelProps {
2
+ className?: string;
3
+ }
4
+ export declare function LeftPanel({ className }: LeftPanelProps): import("react/jsx-runtime").JSX.Element;
5
+ export {};
@@ -0,0 +1,5 @@
1
+ interface EnvQuickJumpBarProps {
2
+ className?: string;
3
+ }
4
+ export declare function EnvQuickJumpBar({ className }: EnvQuickJumpBarProps): import("react/jsx-runtime").JSX.Element;
5
+ export {};
@@ -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;"}
@@ -0,0 +1,5 @@
1
+ interface QuickJumpBarProps {
2
+ className?: string;
3
+ }
4
+ export declare function QuickJumpBar(_: QuickJumpBarProps): null;
5
+ export {};
@@ -0,0 +1,5 @@
1
+ interface AddWidgetCardProps {
2
+ onClick?: () => void;
3
+ }
4
+ export declare function AddWidgetCard({ onClick }: AddWidgetCardProps): import("react/jsx-runtime").JSX.Element;
5
+ export {};
@@ -0,0 +1,6 @@
1
+ interface WidgetGridProps {
2
+ widgets: ReadonlyArray<string>;
3
+ onAddWidget?: () => void;
4
+ }
5
+ export declare function WidgetGrid({ widgets, onAddWidget }: WidgetGridProps): import("react/jsx-runtime").JSX.Element;
6
+ export {};