@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,249 @@
1
+ /* eslint-disable */
2
+
3
+ // @ts-nocheck
4
+
5
+ // noinspection JSUnusedGlobalSymbols
6
+
7
+ // This file was automatically generated by TanStack Router.
8
+ // You should NOT make any changes in this file as it will be overwritten.
9
+ // Additionally, you should also exclude this file from your linter and/or formatter to prevent it from being checked or modified.
10
+
11
+ import { Route as rootRouteImport } from './routes/__root'
12
+ import { Route as LayoutRouteImport } from './routes/_layout'
13
+ import { Route as LayoutIndexRouteImport } from './routes/_layout/index'
14
+ import { Route as LayoutEnvEnvSlugRouteImport } from './routes/_layout/env/$envSlug'
15
+ import { Route as LayoutAppAppSlugRouteImport } from './routes/_layout/app/$appSlug'
16
+ import { Route as LayoutEnvEnvSlugSubSubValueRouteImport } from './routes/_layout/env/$envSlug/sub/$subValue'
17
+ import { Route as LayoutEnvEnvSlugAppAppSlugRouteImport } from './routes/_layout/env/$envSlug/app/$appSlug'
18
+ import { Route as LayoutAppAppSlugSubSubValueRouteImport } from './routes/_layout/app/$appSlug/sub/$subValue'
19
+ import { Route as LayoutEnvEnvSlugAppAppSlugSubSubValueRouteImport } from './routes/_layout/env/$envSlug/app/$appSlug/sub/$subValue'
20
+
21
+ const LayoutRoute = LayoutRouteImport.update({
22
+ id: '/_layout',
23
+ getParentRoute: () => rootRouteImport,
24
+ } as any)
25
+ const LayoutIndexRoute = LayoutIndexRouteImport.update({
26
+ id: '/',
27
+ path: '/',
28
+ getParentRoute: () => LayoutRoute,
29
+ } as any)
30
+ const LayoutEnvEnvSlugRoute = LayoutEnvEnvSlugRouteImport.update({
31
+ id: '/env/$envSlug',
32
+ path: '/env/$envSlug',
33
+ getParentRoute: () => LayoutRoute,
34
+ } as any)
35
+ const LayoutAppAppSlugRoute = LayoutAppAppSlugRouteImport.update({
36
+ id: '/app/$appSlug',
37
+ path: '/app/$appSlug',
38
+ getParentRoute: () => LayoutRoute,
39
+ } as any)
40
+ const LayoutEnvEnvSlugSubSubValueRoute =
41
+ LayoutEnvEnvSlugSubSubValueRouteImport.update({
42
+ id: '/sub/$subValue',
43
+ path: '/sub/$subValue',
44
+ getParentRoute: () => LayoutEnvEnvSlugRoute,
45
+ } as any)
46
+ const LayoutEnvEnvSlugAppAppSlugRoute =
47
+ LayoutEnvEnvSlugAppAppSlugRouteImport.update({
48
+ id: '/app/$appSlug',
49
+ path: '/app/$appSlug',
50
+ getParentRoute: () => LayoutEnvEnvSlugRoute,
51
+ } as any)
52
+ const LayoutAppAppSlugSubSubValueRoute =
53
+ LayoutAppAppSlugSubSubValueRouteImport.update({
54
+ id: '/sub/$subValue',
55
+ path: '/sub/$subValue',
56
+ getParentRoute: () => LayoutAppAppSlugRoute,
57
+ } as any)
58
+ const LayoutEnvEnvSlugAppAppSlugSubSubValueRoute =
59
+ LayoutEnvEnvSlugAppAppSlugSubSubValueRouteImport.update({
60
+ id: '/sub/$subValue',
61
+ path: '/sub/$subValue',
62
+ getParentRoute: () => LayoutEnvEnvSlugAppAppSlugRoute,
63
+ } as any)
64
+
65
+ export interface FileRoutesByFullPath {
66
+ '/': typeof LayoutIndexRoute
67
+ '/app/$appSlug': typeof LayoutAppAppSlugRouteWithChildren
68
+ '/env/$envSlug': typeof LayoutEnvEnvSlugRouteWithChildren
69
+ '/app/$appSlug/sub/$subValue': typeof LayoutAppAppSlugSubSubValueRoute
70
+ '/env/$envSlug/app/$appSlug': typeof LayoutEnvEnvSlugAppAppSlugRouteWithChildren
71
+ '/env/$envSlug/sub/$subValue': typeof LayoutEnvEnvSlugSubSubValueRoute
72
+ '/env/$envSlug/app/$appSlug/sub/$subValue': typeof LayoutEnvEnvSlugAppAppSlugSubSubValueRoute
73
+ }
74
+ export interface FileRoutesByTo {
75
+ '/': typeof LayoutIndexRoute
76
+ '/app/$appSlug': typeof LayoutAppAppSlugRouteWithChildren
77
+ '/env/$envSlug': typeof LayoutEnvEnvSlugRouteWithChildren
78
+ '/app/$appSlug/sub/$subValue': typeof LayoutAppAppSlugSubSubValueRoute
79
+ '/env/$envSlug/app/$appSlug': typeof LayoutEnvEnvSlugAppAppSlugRouteWithChildren
80
+ '/env/$envSlug/sub/$subValue': typeof LayoutEnvEnvSlugSubSubValueRoute
81
+ '/env/$envSlug/app/$appSlug/sub/$subValue': typeof LayoutEnvEnvSlugAppAppSlugSubSubValueRoute
82
+ }
83
+ export interface FileRoutesById {
84
+ __root__: typeof rootRouteImport
85
+ '/_layout': typeof LayoutRouteWithChildren
86
+ '/_layout/': typeof LayoutIndexRoute
87
+ '/_layout/app/$appSlug': typeof LayoutAppAppSlugRouteWithChildren
88
+ '/_layout/env/$envSlug': typeof LayoutEnvEnvSlugRouteWithChildren
89
+ '/_layout/app/$appSlug/sub/$subValue': typeof LayoutAppAppSlugSubSubValueRoute
90
+ '/_layout/env/$envSlug/app/$appSlug': typeof LayoutEnvEnvSlugAppAppSlugRouteWithChildren
91
+ '/_layout/env/$envSlug/sub/$subValue': typeof LayoutEnvEnvSlugSubSubValueRoute
92
+ '/_layout/env/$envSlug/app/$appSlug/sub/$subValue': typeof LayoutEnvEnvSlugAppAppSlugSubSubValueRoute
93
+ }
94
+ export interface FileRouteTypes {
95
+ fileRoutesByFullPath: FileRoutesByFullPath
96
+ fullPaths:
97
+ | '/'
98
+ | '/app/$appSlug'
99
+ | '/env/$envSlug'
100
+ | '/app/$appSlug/sub/$subValue'
101
+ | '/env/$envSlug/app/$appSlug'
102
+ | '/env/$envSlug/sub/$subValue'
103
+ | '/env/$envSlug/app/$appSlug/sub/$subValue'
104
+ fileRoutesByTo: FileRoutesByTo
105
+ to:
106
+ | '/'
107
+ | '/app/$appSlug'
108
+ | '/env/$envSlug'
109
+ | '/app/$appSlug/sub/$subValue'
110
+ | '/env/$envSlug/app/$appSlug'
111
+ | '/env/$envSlug/sub/$subValue'
112
+ | '/env/$envSlug/app/$appSlug/sub/$subValue'
113
+ id:
114
+ | '__root__'
115
+ | '/_layout'
116
+ | '/_layout/'
117
+ | '/_layout/app/$appSlug'
118
+ | '/_layout/env/$envSlug'
119
+ | '/_layout/app/$appSlug/sub/$subValue'
120
+ | '/_layout/env/$envSlug/app/$appSlug'
121
+ | '/_layout/env/$envSlug/sub/$subValue'
122
+ | '/_layout/env/$envSlug/app/$appSlug/sub/$subValue'
123
+ fileRoutesById: FileRoutesById
124
+ }
125
+ export interface RootRouteChildren {
126
+ LayoutRoute: typeof LayoutRouteWithChildren
127
+ }
128
+
129
+ declare module '@tanstack/react-router' {
130
+ interface FileRoutesByPath {
131
+ '/_layout': {
132
+ id: '/_layout'
133
+ path: ''
134
+ fullPath: ''
135
+ preLoaderRoute: typeof LayoutRouteImport
136
+ parentRoute: typeof rootRouteImport
137
+ }
138
+ '/_layout/': {
139
+ id: '/_layout/'
140
+ path: '/'
141
+ fullPath: '/'
142
+ preLoaderRoute: typeof LayoutIndexRouteImport
143
+ parentRoute: typeof LayoutRoute
144
+ }
145
+ '/_layout/env/$envSlug': {
146
+ id: '/_layout/env/$envSlug'
147
+ path: '/env/$envSlug'
148
+ fullPath: '/env/$envSlug'
149
+ preLoaderRoute: typeof LayoutEnvEnvSlugRouteImport
150
+ parentRoute: typeof LayoutRoute
151
+ }
152
+ '/_layout/app/$appSlug': {
153
+ id: '/_layout/app/$appSlug'
154
+ path: '/app/$appSlug'
155
+ fullPath: '/app/$appSlug'
156
+ preLoaderRoute: typeof LayoutAppAppSlugRouteImport
157
+ parentRoute: typeof LayoutRoute
158
+ }
159
+ '/_layout/env/$envSlug/sub/$subValue': {
160
+ id: '/_layout/env/$envSlug/sub/$subValue'
161
+ path: '/sub/$subValue'
162
+ fullPath: '/env/$envSlug/sub/$subValue'
163
+ preLoaderRoute: typeof LayoutEnvEnvSlugSubSubValueRouteImport
164
+ parentRoute: typeof LayoutEnvEnvSlugRoute
165
+ }
166
+ '/_layout/env/$envSlug/app/$appSlug': {
167
+ id: '/_layout/env/$envSlug/app/$appSlug'
168
+ path: '/app/$appSlug'
169
+ fullPath: '/env/$envSlug/app/$appSlug'
170
+ preLoaderRoute: typeof LayoutEnvEnvSlugAppAppSlugRouteImport
171
+ parentRoute: typeof LayoutEnvEnvSlugRoute
172
+ }
173
+ '/_layout/app/$appSlug/sub/$subValue': {
174
+ id: '/_layout/app/$appSlug/sub/$subValue'
175
+ path: '/sub/$subValue'
176
+ fullPath: '/app/$appSlug/sub/$subValue'
177
+ preLoaderRoute: typeof LayoutAppAppSlugSubSubValueRouteImport
178
+ parentRoute: typeof LayoutAppAppSlugRoute
179
+ }
180
+ '/_layout/env/$envSlug/app/$appSlug/sub/$subValue': {
181
+ id: '/_layout/env/$envSlug/app/$appSlug/sub/$subValue'
182
+ path: '/sub/$subValue'
183
+ fullPath: '/env/$envSlug/app/$appSlug/sub/$subValue'
184
+ preLoaderRoute: typeof LayoutEnvEnvSlugAppAppSlugSubSubValueRouteImport
185
+ parentRoute: typeof LayoutEnvEnvSlugAppAppSlugRoute
186
+ }
187
+ }
188
+ }
189
+
190
+ interface LayoutAppAppSlugRouteChildren {
191
+ LayoutAppAppSlugSubSubValueRoute: typeof LayoutAppAppSlugSubSubValueRoute
192
+ }
193
+
194
+ const LayoutAppAppSlugRouteChildren: LayoutAppAppSlugRouteChildren = {
195
+ LayoutAppAppSlugSubSubValueRoute: LayoutAppAppSlugSubSubValueRoute,
196
+ }
197
+
198
+ const LayoutAppAppSlugRouteWithChildren =
199
+ LayoutAppAppSlugRoute._addFileChildren(LayoutAppAppSlugRouteChildren)
200
+
201
+ interface LayoutEnvEnvSlugAppAppSlugRouteChildren {
202
+ LayoutEnvEnvSlugAppAppSlugSubSubValueRoute: typeof LayoutEnvEnvSlugAppAppSlugSubSubValueRoute
203
+ }
204
+
205
+ const LayoutEnvEnvSlugAppAppSlugRouteChildren: LayoutEnvEnvSlugAppAppSlugRouteChildren =
206
+ {
207
+ LayoutEnvEnvSlugAppAppSlugSubSubValueRoute:
208
+ LayoutEnvEnvSlugAppAppSlugSubSubValueRoute,
209
+ }
210
+
211
+ const LayoutEnvEnvSlugAppAppSlugRouteWithChildren =
212
+ LayoutEnvEnvSlugAppAppSlugRoute._addFileChildren(
213
+ LayoutEnvEnvSlugAppAppSlugRouteChildren,
214
+ )
215
+
216
+ interface LayoutEnvEnvSlugRouteChildren {
217
+ LayoutEnvEnvSlugAppAppSlugRoute: typeof LayoutEnvEnvSlugAppAppSlugRouteWithChildren
218
+ LayoutEnvEnvSlugSubSubValueRoute: typeof LayoutEnvEnvSlugSubSubValueRoute
219
+ }
220
+
221
+ const LayoutEnvEnvSlugRouteChildren: LayoutEnvEnvSlugRouteChildren = {
222
+ LayoutEnvEnvSlugAppAppSlugRoute: LayoutEnvEnvSlugAppAppSlugRouteWithChildren,
223
+ LayoutEnvEnvSlugSubSubValueRoute: LayoutEnvEnvSlugSubSubValueRoute,
224
+ }
225
+
226
+ const LayoutEnvEnvSlugRouteWithChildren =
227
+ LayoutEnvEnvSlugRoute._addFileChildren(LayoutEnvEnvSlugRouteChildren)
228
+
229
+ interface LayoutRouteChildren {
230
+ LayoutIndexRoute: typeof LayoutIndexRoute
231
+ LayoutAppAppSlugRoute: typeof LayoutAppAppSlugRouteWithChildren
232
+ LayoutEnvEnvSlugRoute: typeof LayoutEnvEnvSlugRouteWithChildren
233
+ }
234
+
235
+ const LayoutRouteChildren: LayoutRouteChildren = {
236
+ LayoutIndexRoute: LayoutIndexRoute,
237
+ LayoutAppAppSlugRoute: LayoutAppAppSlugRouteWithChildren,
238
+ LayoutEnvEnvSlugRoute: LayoutEnvEnvSlugRouteWithChildren,
239
+ }
240
+
241
+ const LayoutRouteWithChildren =
242
+ LayoutRoute._addFileChildren(LayoutRouteChildren)
243
+
244
+ const rootRouteChildren: RootRouteChildren = {
245
+ LayoutRoute: LayoutRouteWithChildren,
246
+ }
247
+ export const routeTree = rootRouteImport
248
+ ._addFileChildren(rootRouteChildren)
249
+ ._addFileTypes<FileRouteTypes>()
@@ -0,0 +1,23 @@
1
+ import { Outlet, createRootRouteWithContext } from '@tanstack/react-router'
2
+ import { TanStackRouterDevtools } from '@tanstack/react-router-devtools'
3
+ import type { EhRouterContext } from '~/types/types'
4
+ import { RooutErrorPage } from '~/ui/components/error/RooutErrorPage'
5
+ import { NotFoundError } from '~/ui/error/NotFoundError'
6
+ import { LoadingScreen } from '~/ui/layout/LoadingScreen'
7
+
8
+ export const Route = createRootRouteWithContext<EhRouterContext>()({
9
+ component: RootRoute,
10
+ errorComponent: RooutErrorPage,
11
+ pendingComponent: () => <LoadingScreen />,
12
+ notFoundComponent: () => <NotFoundError />,
13
+ wrapInSuspense: true,
14
+ })
15
+
16
+ function RootRoute() {
17
+ return (
18
+ <div className="min-h-screen bg-base-200">
19
+ <Outlet />
20
+ {import.meta.env.MODE === 'dev' ? <TanStackRouterDevtools /> : null}
21
+ </div>
22
+ )
23
+ }
@@ -0,0 +1,15 @@
1
+ import { createFileRoute } from '@tanstack/react-router'
2
+ import { routeLoader } from '~/modules/resourceJump/routeLoader'
3
+ import { ResourceJumpLayout } from '~/modules/resourceJump/ui/ResouceJumpLayout'
4
+
5
+ export const Route = createFileRoute('/_layout/app/$appSlug/sub/$subValue')({
6
+ component: RouteComponent,
7
+ loader(ctx) {
8
+ return routeLoader(ctx)
9
+ },
10
+ })
11
+
12
+ function RouteComponent() {
13
+ const urlParams = Route.useLoaderData()
14
+ return <ResourceJumpLayout loaderData={urlParams} />
15
+ }
@@ -0,0 +1,15 @@
1
+ import { createFileRoute } from '@tanstack/react-router'
2
+ import { routeLoader } from '~/modules/resourceJump/routeLoader'
3
+ import { ResourceJumpLayout } from '~/modules/resourceJump/ui/ResouceJumpLayout'
4
+
5
+ export const Route = createFileRoute('/_layout/app/$appSlug')({
6
+ component: RouteComponent,
7
+ loader(ctx) {
8
+ return routeLoader(ctx)
9
+ },
10
+ })
11
+
12
+ function RouteComponent() {
13
+ const urlParams = Route.useLoaderData()
14
+ return <ResourceJumpLayout loaderData={urlParams} />
15
+ }
@@ -0,0 +1,17 @@
1
+ import { createFileRoute } from '@tanstack/react-router'
2
+ import { routeLoader } from '~/modules/resourceJump/routeLoader'
3
+ import { ResourceJumpLayout } from '~/modules/resourceJump/ui/ResouceJumpLayout'
4
+
5
+ export const Route = createFileRoute(
6
+ '/_layout/env/$envSlug/app/$appSlug/sub/$subValue',
7
+ )({
8
+ component: RouteComponent,
9
+ loader(ctx) {
10
+ return routeLoader(ctx)
11
+ },
12
+ })
13
+
14
+ function RouteComponent() {
15
+ const urlParams = Route.useLoaderData()
16
+ return <ResourceJumpLayout loaderData={urlParams} />
17
+ }
@@ -0,0 +1,15 @@
1
+ import { createFileRoute } from '@tanstack/react-router'
2
+ import { routeLoader } from '~/modules/resourceJump/routeLoader'
3
+ import { ResourceJumpLayout } from '~/modules/resourceJump/ui/ResouceJumpLayout'
4
+
5
+ export const Route = createFileRoute('/_layout/env/$envSlug/app/$appSlug')({
6
+ component: RouteComponent,
7
+ loader(ctx) {
8
+ return routeLoader(ctx)
9
+ },
10
+ })
11
+
12
+ function RouteComponent() {
13
+ const urlParams = Route.useLoaderData()
14
+ return <ResourceJumpLayout loaderData={urlParams} />
15
+ }
@@ -0,0 +1,15 @@
1
+ import { createFileRoute } from '@tanstack/react-router'
2
+ import { routeLoader } from '~/modules/resourceJump/routeLoader'
3
+ import { ResourceJumpLayout } from '~/modules/resourceJump/ui/ResouceJumpLayout'
4
+
5
+ export const Route = createFileRoute('/_layout/env/$envSlug/sub/$subValue')({
6
+ component: RouteComponent,
7
+ loader(ctx) {
8
+ return routeLoader(ctx)
9
+ },
10
+ })
11
+
12
+ function RouteComponent() {
13
+ const urlParams = Route.useLoaderData()
14
+ return <ResourceJumpLayout loaderData={urlParams} />
15
+ }
@@ -0,0 +1,15 @@
1
+ import { createFileRoute } from '@tanstack/react-router'
2
+ import { routeLoader } from '~/modules/resourceJump/routeLoader'
3
+ import { ResourceJumpLayout } from '~/modules/resourceJump/ui/ResouceJumpLayout'
4
+
5
+ export const Route = createFileRoute('/_layout/env/$envSlug')({
6
+ component: RouteComponent,
7
+ loader(ctx) {
8
+ return routeLoader(ctx)
9
+ },
10
+ })
11
+
12
+ function RouteComponent() {
13
+ const urlParams = Route.useLoaderData()
14
+ return <ResourceJumpLayout loaderData={urlParams} />
15
+ }
@@ -0,0 +1,16 @@
1
+ import { createFileRoute } from '@tanstack/react-router'
2
+
3
+ import { routeLoader } from '~/modules/resourceJump/routeLoader'
4
+ import { ResourceJumpLayout } from '~/modules/resourceJump/ui/ResouceJumpLayout'
5
+
6
+ export const Route = createFileRoute('/_layout/')({
7
+ component: RouteComponent,
8
+ loader(ctx) {
9
+ return routeLoader(ctx)
10
+ },
11
+ })
12
+
13
+ function RouteComponent() {
14
+ const urlParams = Route.useLoaderData()
15
+ return <ResourceJumpLayout loaderData={urlParams} />
16
+ }
@@ -0,0 +1,9 @@
1
+ import { Outlet, createFileRoute } from '@tanstack/react-router'
2
+
3
+ export const Route = createFileRoute('/_layout')({
4
+ component: LayoutComponent,
5
+ })
6
+
7
+ function LayoutComponent() {
8
+ return <Outlet />
9
+ }
@@ -0,0 +1,40 @@
1
+ import type { TRPCRouter } from '@env-hopper/backend-core'
2
+ import type { TRPCClient } from '@trpc/client'
3
+ import type { EhDb } from '~/userDb/EhDb'
4
+
5
+ export interface EhEnvIndexed {
6
+ slug: string
7
+ displayName: string
8
+ }
9
+
10
+ // EhAppIndexed is now imported from @env-hopper/backend-core
11
+
12
+ export interface EhAppPage {
13
+ slug: string
14
+ displayName: string
15
+ }
16
+
17
+ // Base interface for dropdown content components
18
+ export interface BaseDropdownContentProps {
19
+ searchValue?: string
20
+ onSelect?: (value: string) => void
21
+ getMenuProps?: () => any
22
+ getItemProps?: (options: any) => any
23
+ highlightedIndex?: number
24
+ isOpen?: boolean
25
+ isUntouched: boolean
26
+ }
27
+
28
+ export interface EhUrlParams {
29
+ envId?: string
30
+ appId?: string
31
+ subValue?: string
32
+ }
33
+
34
+ export interface DbAware {
35
+ db: EhDb
36
+ }
37
+
38
+ export interface TrpcAware {
39
+ trpcClient: TRPCClient<TRPCRouter>
40
+ }
@@ -0,0 +1,22 @@
1
+ import type { BaseEditor } from 'slate'
2
+ import type { ReactEditor } from 'slate-react'
3
+
4
+ type TagElement = {
5
+ type: 'tag'
6
+ children: Array<CustomText>
7
+ selected: boolean
8
+ }
9
+ type InterTagElement = { type: 'inter-tag'; children: Array<CustomText> }
10
+ type TagContainer = { type: 'tag-container'; children: Array<CustomText> }
11
+ type CustomText = { text: string }
12
+
13
+ export type CustomElement = TagElement | TagContainer | InterTagElement
14
+ export type CustomEditor = BaseEditor & ReactEditor
15
+
16
+ declare module 'slate' {
17
+ interface CustomTypes {
18
+ Editor: CustomEditor
19
+ Element: CustomElement
20
+ Text: CustomText
21
+ }
22
+ }
@@ -0,0 +1,14 @@
1
+ import type { TRPCRouter } from '@env-hopper/backend-core'
2
+ import '@tanstack/react-query'
3
+ import type { TRPCClient } from '@trpc/client'
4
+
5
+ export interface EhReactQueryMeta extends Record<string, unknown> {
6
+ trpcClient: TRPCClient<TRPCRouter>
7
+ }
8
+
9
+ declare module '@tanstack/react-query' {
10
+ interface Register {
11
+ queryMeta: EhReactQueryMeta
12
+ mutationMeta: EhReactQueryMeta
13
+ }
14
+ }
@@ -0,0 +1,20 @@
1
+ /// <reference types="vite-plugin-pwa/client" />
2
+
3
+ import type { RouterHistory } from '@tanstack/react-router'
4
+ import type { QueryClient } from '@tanstack/react-query'
5
+ import type { TRPCClient } from '@trpc/client'
6
+ import type { TRPCRouter } from '@env-hopper/backend-core'
7
+ import type { EhDb } from '~/userDb/EhDb'
8
+ import type { EhPlugin } from '~/modules/pluginCore/types'
9
+
10
+ export interface EhRouterContext {
11
+ queryClient: QueryClient
12
+ trpcClient: TRPCClient<TRPCRouter>
13
+ db: EhDb
14
+ plugins: Array<EhPlugin>
15
+ }
16
+
17
+ export interface EhRouterInitParams {
18
+ history: RouterHistory
19
+ context: EhRouterContext
20
+ }
@@ -0,0 +1,100 @@
1
+ export interface SearchInteraction {
2
+ dateUtcTimestamp: number
3
+ query: string
4
+ selection: SearchSelection
5
+ }
6
+
7
+ export type SearchSelection =
8
+ | {
9
+ type: 'env'
10
+ envSlug: string
11
+ }
12
+ | {
13
+ type: 'app'
14
+ appSlug: string
15
+ }
16
+ | {
17
+ type: 'appPage'
18
+ appPageSlug: AppPageSlug
19
+ appPageContext?: AppPageContext
20
+ }
21
+ | {
22
+ type: 'envAppPage'
23
+ envSlug: string
24
+ appPageSlug: AppPageSlug
25
+ appPageContext?: AppPageContext
26
+ }
27
+ | {
28
+ type: 'envAction'
29
+ envSlug: string
30
+ actionName: string
31
+ }
32
+
33
+ export interface MicroInteraction {
34
+ dateUtcTimestamp: number
35
+ context: MicroInteractionContext
36
+ action: Action
37
+ }
38
+
39
+ export interface MicroInteractionContext {
40
+ envSlug?: string
41
+ appSlug?: string
42
+ appPageSlug?: AppPageSlug
43
+ }
44
+
45
+ export type Action =
46
+ | PageJumpAction
47
+ | ConfigSearchAction
48
+ | EnvSelectionAction
49
+ | AppSelectionAction
50
+ | AppPageSelectionAction
51
+ | EnvAction
52
+
53
+ export interface EnvSelectionAction {
54
+ actionType: 'envSelection'
55
+ envSlug: string | undefined
56
+ }
57
+
58
+ export interface AppSelectionAction {
59
+ actionType: 'appSelection'
60
+ appSlug: string | undefined
61
+ }
62
+
63
+ export interface AppPageSelectionAction {
64
+ actionType: 'appPageSelection'
65
+ appPageSlug: AppPageSlug
66
+ }
67
+
68
+ export interface PageJumpAction {
69
+ actionType: 'pageJump'
70
+ envSlug: string
71
+ appPageSlug: AppPageSlug
72
+ appPageContext?: AppPageContext
73
+ }
74
+
75
+ export interface EnvAction {
76
+ actionType: 'envAction'
77
+ envSlug: string
78
+ actionName: string
79
+ }
80
+
81
+ export interface AppPageSlug {
82
+ app: string
83
+ page: string
84
+ }
85
+
86
+ export interface AppPageContext {
87
+ params: Array<AppPageContextKeyValue>
88
+ }
89
+
90
+ export interface AppPageContextKeyValue {
91
+ key: string
92
+ value: string
93
+ }
94
+
95
+ export interface ConfigSearchAction {
96
+ actionType: 'configSearch'
97
+ envSlug: string
98
+ appSlug: string
99
+ query: string
100
+ }
@@ -0,0 +1 @@
1
+ export type PartialRecord<TKey extends keyof any, T> = Partial<Record<TKey, T>>
@@ -0,0 +1 @@
1
+ /// <reference types="vite-plugin-svgr/client" />
@@ -0,0 +1,30 @@
1
+ import { AppIcon } from './AppIcon'
2
+ import type { EhAppIndexed } from '@env-hopper/backend-core'
3
+ import { Button } from '~/components/ui/button'
4
+
5
+ interface ActionCardProps {
6
+ app: EhAppIndexed
7
+ actionName: string
8
+ onClick: () => void
9
+ className?: string
10
+ }
11
+
12
+ export function ActionCard({
13
+ app,
14
+ actionName,
15
+ onClick,
16
+ className,
17
+ }: ActionCardProps) {
18
+ return (
19
+ <Button
20
+ variant="outline"
21
+ className={`h-16 justify-start p-3 hover:bg-accent/50 transition-colors border-border/30 ${className}`}
22
+ onClick={onClick}
23
+ >
24
+ <div className="flex items-center gap-2 text-left">
25
+ <AppIcon app={app} className="w-4 h-4 flex-shrink-0" />
26
+ <span className="text-xs font-medium leading-tight">{actionName}</span>
27
+ </div>
28
+ </Button>
29
+ )
30
+ }