@env-hopper/frontend-core 2.0.1-alpha → 2.0.1-alpha.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (991) hide show
  1. package/dist/esm/App.d.ts +1 -1
  2. package/dist/esm/App.js.map +1 -1
  3. package/dist/esm/__tests__/integration/appQuickJumpBar.integration.test.d.ts +1 -0
  4. package/dist/esm/__tests__/integration/factories/BackendMagazine.d.ts +887 -0
  5. package/dist/esm/__tests__/integration/factories/DbMagazine.d.ts +7 -0
  6. package/dist/esm/__tests__/integration/factories/app.d.ts +2 -0
  7. package/dist/esm/__tests__/integration/factories/env.d.ts +2 -0
  8. package/dist/esm/__tests__/integration/factories/mapper.d.ts +39 -0
  9. package/dist/esm/__tests__/integration/factories/resourceJump.d.ts +2 -0
  10. package/dist/esm/__tests__/integration/factories/simpleDSL.d.ts +889 -0
  11. package/dist/esm/__tests__/integration/factories/types.d.ts +12 -0
  12. package/dist/esm/__tests__/integration/helpers/renderWithProviders.d.ts +35 -0
  13. package/dist/esm/__tests__/integration/helpers/testHelpers.d.ts +6 -0
  14. package/dist/esm/__tests__/integration/helpers/uiHelpers.d.ts +30 -0
  15. package/dist/esm/__tests__/integration/quickSlots.integration.test.d.ts +1 -0
  16. package/dist/esm/__tests__/integration/resourceJump.integration.test.d.ts +1 -0
  17. package/dist/esm/__tests__/integration/setup/svgMock.d.ts +3 -0
  18. package/dist/esm/__tests__/integration/setup/testSetup.d.ts +0 -0
  19. package/dist/esm/__tests__/modules/fuzzyMatchLogic/testUtils.d.ts +3 -1
  20. package/dist/esm/__tests__/modules/resouceJump/helpers.test.d.ts +1 -0
  21. package/dist/esm/__tests__/modules/resouceJump/utils/mapToFlagshipResourceJumps.test.d.ts +1 -0
  22. package/dist/esm/__tests__/util/TestMagazine.d.ts +3 -0
  23. package/dist/esm/api/ApiQueryMagazine.d.ts +4 -4
  24. package/dist/esm/api/data/useQueryBootstrapConfig.d.ts +1 -1
  25. package/dist/esm/api/infra/createQueryClient.d.ts +3 -1
  26. package/dist/esm/api/infra/createQueryClient.js +5 -3
  27. package/dist/esm/api/infra/createQueryClient.js.map +1 -1
  28. package/dist/esm/api/infra/trpc.d.ts +1236 -5
  29. package/dist/esm/api/unsorted/appCatalogFetcher.d.ts +10 -0
  30. package/dist/esm/api/unsorted/appCatalogFetcher.js +18 -0
  31. package/dist/esm/api/unsorted/appCatalogFetcher.js.map +1 -0
  32. package/dist/esm/api/unsorted/createCachingFetcher.d.ts +23 -0
  33. package/dist/esm/api/unsorted/createCachingFetcher.js +93 -0
  34. package/dist/esm/api/unsorted/createCachingFetcher.js.map +1 -0
  35. package/dist/esm/api/unsorted/indexDataFetcher.d.ts +3 -6
  36. package/dist/esm/api/unsorted/resourceJumpsExtendedFetcher.d.ts +9 -0
  37. package/dist/esm/api/unsorted/resourceJumpsExtendedFetcher.js +18 -0
  38. package/dist/esm/api/unsorted/resourceJumpsExtendedFetcher.js.map +1 -0
  39. package/dist/esm/api/unsorted/resourceJumpsFetcher.d.ts +10 -0
  40. package/dist/esm/api/unsorted/resourceJumpsFetcher.js +18 -0
  41. package/dist/esm/api/unsorted/resourceJumpsFetcher.js.map +1 -0
  42. package/dist/esm/appPropsFactory.js +8 -6
  43. package/dist/esm/appPropsFactory.js.map +1 -1
  44. package/dist/esm/assets/app-catalog.svg.js +6 -0
  45. package/dist/esm/assets/app-catalog.svg.js.map +1 -0
  46. package/dist/esm/components/IconPickerDialog.d.ts +8 -0
  47. package/dist/esm/components/IconPickerDialog.js +98 -0
  48. package/dist/esm/components/IconPickerDialog.js.map +1 -0
  49. package/dist/esm/components/IconPickerField.d.ts +9 -0
  50. package/dist/esm/components/IconPickerField.js +76 -0
  51. package/dist/esm/components/IconPickerField.js.map +1 -0
  52. package/dist/esm/components/ThemeSwitcher.js +1 -1
  53. package/dist/esm/components/ThemeSwitcher.js.map +1 -1
  54. package/dist/esm/lib/getAppMode.d.ts +2 -0
  55. package/dist/esm/modules/admin-base/components/AdminChat.d.ts +1 -0
  56. package/dist/esm/modules/admin-base/components/AdminChat.js +82 -0
  57. package/dist/esm/modules/admin-base/components/AdminChat.js.map +1 -0
  58. package/dist/esm/modules/admin-base/components/AdminLayout.d.ts +5 -0
  59. package/dist/esm/modules/admin-base/components/AdminLayout.js +78 -0
  60. package/dist/esm/modules/admin-base/components/AdminLayout.js.map +1 -0
  61. package/dist/esm/modules/admin-base/components/AdminWelcome.d.ts +1 -0
  62. package/dist/esm/modules/admin-base/components/AdminWelcome.js +37 -0
  63. package/dist/esm/modules/admin-base/components/AdminWelcome.js.map +1 -0
  64. package/dist/esm/modules/admin-base/context/AdminConfigContext.d.ts +8 -0
  65. package/dist/esm/modules/admin-base/context/AdminConfigContext.js +27 -0
  66. package/dist/esm/modules/admin-base/context/AdminConfigContext.js.map +1 -0
  67. package/dist/esm/modules/admin-base/index.d.ts +5 -0
  68. package/dist/esm/modules/admin-base/types/adminTypes.d.ts +10 -0
  69. package/dist/esm/modules/appCatalog/AppCatalogAdminPage.d.ts +1 -0
  70. package/dist/esm/modules/appCatalog/AppCatalogAdminPage.js +204 -0
  71. package/dist/esm/modules/appCatalog/AppCatalogAdminPage.js.map +1 -0
  72. package/dist/esm/modules/appCatalog/AppCatalogEditDialog.d.ts +17 -0
  73. package/dist/esm/modules/appCatalog/ScreenshotItem.d.ts +7 -0
  74. package/dist/esm/modules/appCatalog/ScreenshotItem.js +65 -0
  75. package/dist/esm/modules/appCatalog/ScreenshotItem.js.map +1 -0
  76. package/dist/esm/modules/appCatalog/ScreenshotManager.d.ts +15 -0
  77. package/dist/esm/modules/appCatalog/ScreenshotManager.js +155 -0
  78. package/dist/esm/modules/appCatalog/ScreenshotManager.js.map +1 -0
  79. package/dist/esm/modules/appCatalog/api/ApiQueryMagazineAppCatalog.d.ts +11 -0
  80. package/dist/esm/modules/appCatalog/api/ApiQueryMagazineAppCatalog.js +14 -0
  81. package/dist/esm/modules/appCatalog/api/ApiQueryMagazineAppCatalog.js.map +1 -0
  82. package/dist/esm/modules/appCatalog/catalogRouteLoader.d.ts +5 -0
  83. package/dist/esm/modules/appCatalog/catalogRouteLoader.js +20 -0
  84. package/dist/esm/modules/appCatalog/catalogRouteLoader.js.map +1 -0
  85. package/dist/esm/modules/appCatalog/context/AppCatalogContext.d.ts +14 -0
  86. package/dist/esm/modules/appCatalog/context/AppCatalogContext.js +34 -0
  87. package/dist/esm/modules/appCatalog/context/AppCatalogContext.js.map +1 -0
  88. package/dist/esm/modules/appCatalog/index.d.ts +10 -0
  89. package/dist/esm/modules/appCatalog/routeLoader.d.ts +3 -0
  90. package/dist/esm/modules/appCatalog/routeLoader.js +7 -0
  91. package/dist/esm/modules/appCatalog/routeLoader.js.map +1 -0
  92. package/dist/esm/modules/appCatalog/ui/components/AppDetailModal.d.ts +7 -0
  93. package/dist/esm/modules/appCatalog/ui/components/AppDetailModal.js +208 -0
  94. package/dist/esm/modules/appCatalog/ui/components/AppDetailModal.js.map +1 -0
  95. package/dist/esm/modules/appCatalog/ui/grid/AppCatalogFiltersCard.d.ts +9 -0
  96. package/dist/esm/modules/appCatalog/ui/grid/AppCatalogGrid.d.ts +6 -0
  97. package/dist/esm/modules/appCatalog/ui/grid/AppCatalogGrid.js +111 -0
  98. package/dist/esm/modules/appCatalog/ui/grid/AppCatalogGrid.js.map +1 -0
  99. package/dist/esm/modules/appCatalog/ui/grid/AppCatalogTable.d.ts +5 -0
  100. package/dist/esm/modules/appCatalog/ui/grid/appCatalogUtils.d.ts +3 -0
  101. package/dist/esm/modules/appCatalog/ui/layout/AppCatalogLayout.d.ts +9 -0
  102. package/dist/esm/modules/appCatalog/ui/layout/AppCatalogLayout.js +28 -0
  103. package/dist/esm/modules/appCatalog/ui/layout/AppCatalogLayout.js.map +1 -0
  104. package/dist/esm/modules/appCatalog/ui/pages/AppCatalogPage.d.ts +1 -0
  105. package/dist/esm/modules/appCatalog/ui/pages/AppCatalogPage.js +68 -0
  106. package/dist/esm/modules/appCatalog/ui/pages/AppCatalogPage.js.map +1 -0
  107. package/dist/esm/modules/auth/AuthContext.d.ts +38 -0
  108. package/dist/esm/modules/auth/AuthContext.js +80 -0
  109. package/dist/esm/modules/auth/AuthContext.js.map +1 -0
  110. package/dist/esm/modules/auth/AuthModalContext.d.ts +19 -0
  111. package/dist/esm/modules/auth/AuthModalContext.js +33 -0
  112. package/dist/esm/modules/auth/AuthModalContext.js.map +1 -0
  113. package/dist/esm/modules/auth/ProtectedContent.d.ts +19 -0
  114. package/dist/esm/modules/auth/authClient.d.ts +704 -0
  115. package/dist/esm/modules/auth/authClient.js +8 -0
  116. package/dist/esm/modules/auth/authClient.js.map +1 -0
  117. package/dist/esm/modules/auth/index.d.ts +5 -0
  118. package/dist/esm/modules/auth/ui/LoginModal.d.ts +6 -0
  119. package/dist/esm/modules/auth/ui/LoginModal.js +22 -0
  120. package/dist/esm/modules/auth/ui/LoginModal.js.map +1 -0
  121. package/dist/esm/modules/auth/ui/LoginPage.d.ts +5 -0
  122. package/dist/esm/modules/auth/ui/LoginPage.js +50 -0
  123. package/dist/esm/modules/auth/ui/LoginPage.js.map +1 -0
  124. package/dist/esm/modules/auth/useAuthActions.d.ts +17 -0
  125. package/dist/esm/modules/auth/useAuthActions.js +62 -0
  126. package/dist/esm/modules/auth/useAuthActions.js.map +1 -0
  127. package/dist/esm/modules/config/BootstrapConfigContext.d.ts +1 -1
  128. package/dist/esm/modules/config/BootstrapConfigContext.js +2 -12
  129. package/dist/esm/modules/config/BootstrapConfigContext.js.map +1 -1
  130. package/dist/esm/modules/config/HealthStateContext.d.ts +16 -0
  131. package/dist/esm/modules/crossCuttingParams/CrossCuttingParamsContext.d.ts +16 -0
  132. package/dist/esm/modules/crossCuttingParams/CrossCuttingParamsContext.js +44 -0
  133. package/dist/esm/modules/crossCuttingParams/CrossCuttingParamsContext.js.map +1 -0
  134. package/dist/esm/modules/crossCuttingParams/types.d.ts +13 -0
  135. package/dist/esm/modules/crossCuttingParams/utils/routeLoaderMapper.d.ts +2 -0
  136. package/dist/esm/modules/environment/{EnvironmentContext.d.ts → context/EnvironmentContext.d.ts} +7 -4
  137. package/dist/esm/modules/environment/context/EnvironmentContext.js +69 -0
  138. package/dist/esm/modules/environment/context/EnvironmentContext.js.map +1 -0
  139. package/dist/esm/modules/environment/context/useEnvironmentHistory.d.ts +5 -0
  140. package/dist/esm/modules/environment/context/useEnvironmentHistory.js +26 -0
  141. package/dist/esm/modules/environment/context/useEnvironmentHistory.js.map +1 -0
  142. package/dist/esm/modules/fuzzyMatchLogic/autoCompleteFilter.js +48 -8
  143. package/dist/esm/modules/fuzzyMatchLogic/autoCompleteFilter.js.map +1 -1
  144. package/dist/esm/modules/fuzzyMatchLogic/features/positionBonus.d.ts +1 -0
  145. package/dist/esm/modules/fuzzyMatchLogic/fixLayout.js +23 -0
  146. package/dist/esm/modules/fuzzyMatchLogic/fixLayout.js.map +1 -0
  147. package/dist/esm/modules/fuzzyMatchLogic/postFiltration.d.ts +16 -0
  148. package/dist/esm/modules/fuzzyMatchLogic/tokenize.js +29 -0
  149. package/dist/esm/modules/fuzzyMatchLogic/tokenize.js.map +1 -0
  150. package/dist/esm/modules/fuzzyMatchLogic/types.d.ts +1 -0
  151. package/dist/esm/modules/icons/IconManagementPage.d.ts +1 -0
  152. package/dist/esm/modules/icons/IconManagementPage.js +178 -0
  153. package/dist/esm/modules/icons/IconManagementPage.js.map +1 -0
  154. package/dist/esm/modules/pluginCore/PluginManagerContext.d.ts +1 -6
  155. package/dist/esm/modules/pluginCore/PluginManagerContext.js +13 -46
  156. package/dist/esm/modules/pluginCore/PluginManagerContext.js.map +1 -1
  157. package/dist/esm/modules/pluginCore/makePluginManagerContext.d.ts +1 -4
  158. package/dist/esm/modules/pluginCore/makePluginManagerContext.js +2 -20
  159. package/dist/esm/modules/pluginCore/makePluginManagerContext.js.map +1 -1
  160. package/dist/esm/modules/pluginCore/types.d.ts +0 -12
  161. package/dist/esm/modules/resourceJump/api/ApiQueryMagazineResourceJump.d.ts +45 -0
  162. package/dist/esm/modules/resourceJump/api/ApiQueryMagazineResourceJump.js +42 -0
  163. package/dist/esm/modules/resourceJump/api/ApiQueryMagazineResourceJump.js.map +1 -0
  164. package/dist/esm/modules/resourceJump/context/ResourceJumpContext.d.ts +34 -0
  165. package/dist/esm/modules/resourceJump/context/ResourceJumpContext.js +280 -0
  166. package/dist/esm/modules/resourceJump/context/ResourceJumpContext.js.map +1 -0
  167. package/dist/esm/modules/resourceJump/context/useResouceJumpHistory.d.ts +8 -0
  168. package/dist/esm/modules/resourceJump/context/useResouceJumpHistory.js +86 -0
  169. package/dist/esm/modules/resourceJump/context/useResouceJumpHistory.js.map +1 -0
  170. package/dist/esm/modules/resourceJump/routeLoader.js +19 -31
  171. package/dist/esm/modules/resourceJump/routeLoader.js.map +1 -1
  172. package/dist/esm/modules/resourceJump/types.d.ts +22 -6
  173. package/dist/esm/modules/resourceJump/ui/AppSwitcher.d.ts +4 -0
  174. package/dist/esm/modules/resourceJump/ui/CredentialsWidget.d.ts +1 -0
  175. package/dist/esm/modules/resourceJump/ui/EnvSwitcher.d.ts +1 -0
  176. package/dist/esm/modules/resourceJump/ui/JumpALink.d.ts +2 -5
  177. package/dist/esm/modules/resourceJump/ui/JumpMainButton.d.ts +3 -0
  178. package/dist/esm/modules/resourceJump/ui/LateResolvableSingleParam.d.ts +3 -0
  179. package/dist/esm/modules/resourceJump/ui/LateResolvableSingleParam.js +42 -0
  180. package/dist/esm/modules/resourceJump/ui/LateResolvableSingleParam.js.map +1 -0
  181. package/dist/esm/modules/resourceJump/ui/LateResolvableTopParam.d.ts +8 -0
  182. package/dist/esm/modules/resourceJump/ui/LateResolvableTopParam.js +26 -0
  183. package/dist/esm/modules/resourceJump/ui/LateResolvableTopParam.js.map +1 -0
  184. package/dist/esm/modules/resourceJump/ui/ResolvableParameterSelector.d.ts +7 -0
  185. package/dist/esm/modules/resourceJump/ui/ResolvableParameters.d.ts +5 -0
  186. package/dist/esm/modules/resourceJump/ui/ResourceJumpBreadcrumbs.d.ts +4 -0
  187. package/dist/esm/modules/resourceJump/ui/ResourceJumpBreadcrumbs.js +59 -0
  188. package/dist/esm/modules/resourceJump/ui/ResourceJumpBreadcrumbs.js.map +1 -0
  189. package/dist/esm/modules/resourceJump/ui/ResourceJumpButton.d.ts +13 -0
  190. package/dist/esm/modules/resourceJump/ui/ResourceJumpButton.js +52 -0
  191. package/dist/esm/modules/resourceJump/ui/ResourceJumpButton.js.map +1 -0
  192. package/dist/esm/modules/resourceJump/ui/ResourceJumpMockTable.d.ts +1 -0
  193. package/dist/esm/modules/resourceJump/ui/ResourceJumpMockTable.js +180 -0
  194. package/dist/esm/modules/resourceJump/ui/ResourceJumpMockTable.js.map +1 -0
  195. package/dist/esm/modules/resourceJump/ui/ShareLinkButton.d.ts +1 -0
  196. package/dist/esm/modules/resourceJump/ui/ShareLinkButton.js +84 -0
  197. package/dist/esm/modules/resourceJump/ui/ShareLinkButton.js.map +1 -0
  198. package/dist/esm/modules/resourceJump/ui/SmoothSwitcher.d.ts +10 -0
  199. package/dist/esm/modules/resourceJump/ui/TopQuickJump.d.ts +1 -0
  200. package/dist/esm/modules/resourceJump/ui/appCatalog/AppCatalogFiltersCard.d.ts +9 -0
  201. package/dist/esm/modules/resourceJump/ui/appCatalog/AppCatalogGrid.d.ts +6 -0
  202. package/dist/esm/modules/resourceJump/ui/appCatalog/AppCatalogTable.d.ts +6 -0
  203. package/dist/esm/modules/resourceJump/ui/appCatalog/appCatalogUtils.d.ts +2 -0
  204. package/dist/esm/modules/resourceJump/ui/cmdk/AppAutocomplete.d.ts +11 -0
  205. package/dist/esm/modules/resourceJump/ui/cmdk/CmdKQuickSearchDialog.d.ts +5 -0
  206. package/dist/esm/modules/resourceJump/ui/cmdk/CommandPalette.d.ts +18 -0
  207. package/dist/esm/modules/resourceJump/ui/cmdk/CommandPalette.js +35 -0
  208. package/dist/esm/modules/resourceJump/ui/cmdk/CommandPalette.js.map +1 -0
  209. package/dist/esm/modules/resourceJump/ui/cmdk/EnvAutocomplete.d.ts +11 -0
  210. package/dist/esm/modules/resourceJump/ui/cmdk/EnvAutocomplete.js +201 -0
  211. package/dist/esm/modules/resourceJump/ui/cmdk/EnvAutocomplete.js.map +1 -0
  212. package/dist/esm/modules/resourceJump/ui/cmdk/QuickSearch.d.ts +3 -0
  213. package/dist/esm/modules/resourceJump/ui/cmdk/QuickSearch.js +101 -0
  214. package/dist/esm/modules/resourceJump/ui/cmdk/QuickSearch.js.map +1 -0
  215. package/dist/esm/modules/resourceJump/ui/cmdk/QuickSearchContext.d.ts +20 -0
  216. package/dist/esm/modules/resourceJump/ui/cmdk/QuickSearchContext.js +40 -0
  217. package/dist/esm/modules/resourceJump/ui/cmdk/QuickSearchContext.js.map +1 -0
  218. package/dist/esm/modules/resourceJump/ui/cmdk/highlightText.d.ts +1 -0
  219. package/dist/esm/modules/resourceJump/ui/cmdk/highlightText.js +13 -0
  220. package/dist/esm/modules/resourceJump/ui/cmdk/highlightText.js.map +1 -0
  221. package/dist/esm/modules/resourceJump/ui/cmdk/types.d.ts +6 -0
  222. package/dist/esm/modules/resourceJump/ui/cmdk/useCmdkDriver.d.ts +8 -0
  223. package/dist/esm/modules/resourceJump/ui/cmdk/useQuickSearchLogic.d.ts +6 -0
  224. package/dist/esm/modules/resourceJump/ui/cmdk/useQuickSearchLogic.js +69 -0
  225. package/dist/esm/modules/resourceJump/ui/cmdk/useQuickSearchLogic.js.map +1 -0
  226. package/dist/esm/modules/resourceJump/ui/layout/CenterColumn.d.ts +3 -0
  227. package/dist/esm/modules/resourceJump/ui/layout/CenterColumn.js +8 -0
  228. package/dist/esm/modules/resourceJump/ui/layout/CenterColumn.js.map +1 -0
  229. package/dist/esm/modules/resourceJump/ui/layout/LeftColumn.d.ts +1 -0
  230. package/dist/esm/modules/resourceJump/ui/layout/ResourceJumpLayout.d.ts +11 -0
  231. package/dist/esm/modules/resourceJump/ui/layout/ResourceJumpLayout.js +39 -0
  232. package/dist/esm/modules/resourceJump/ui/layout/ResourceJumpLayout.js.map +1 -0
  233. package/dist/esm/modules/resourceJump/ui/layout/RightColumn.d.ts +1 -0
  234. package/dist/esm/modules/resourceJump/ui/miniEnvSelector/MiniEnvSelectorPopover.d.ts +7 -0
  235. package/dist/esm/modules/resourceJump/ui/pages/AppCatalog.d.ts +1 -0
  236. package/dist/esm/modules/resourceJump/ui/pages/AppCatalog.js +64 -0
  237. package/dist/esm/modules/resourceJump/ui/pages/AppCatalog.js.map +1 -0
  238. package/dist/esm/modules/resourceJump/ui/pages/AppPage.d.ts +1 -0
  239. package/dist/esm/modules/resourceJump/ui/pages/AppPage.js +17 -0
  240. package/dist/esm/modules/resourceJump/ui/pages/AppPage.js.map +1 -0
  241. package/dist/esm/modules/resourceJump/ui/pages/AppPageFlagship.d.ts +1 -0
  242. package/dist/esm/modules/resourceJump/ui/pages/AppPageFlagship.js +94 -0
  243. package/dist/esm/modules/resourceJump/ui/pages/AppPageFlagship.js.map +1 -0
  244. package/dist/esm/modules/resourceJump/ui/pages/AppPageRegular.d.ts +1 -0
  245. package/dist/esm/modules/resourceJump/ui/pages/AppPageRegular.js +16 -0
  246. package/dist/esm/modules/resourceJump/ui/pages/AppPageRegular.js.map +1 -0
  247. package/dist/esm/modules/resourceJump/ui/pages/DashboardPage.d.ts +1 -0
  248. package/dist/esm/modules/resourceJump/ui/pages/DashboardPage.js +15 -0
  249. package/dist/esm/modules/resourceJump/ui/pages/DashboardPage.js.map +1 -0
  250. package/dist/esm/modules/resourceJump/ui/pages/EnvCatalog.d.ts +1 -0
  251. package/dist/esm/modules/resourceJump/ui/pages/EnvCatalog.js +48 -0
  252. package/dist/esm/modules/resourceJump/ui/pages/EnvCatalog.js.map +1 -0
  253. package/dist/esm/modules/resourceJump/ui/pages/EnvPage.d.ts +10 -0
  254. package/dist/esm/modules/resourceJump/ui/pages/EnvPage.js +83 -0
  255. package/dist/esm/modules/resourceJump/ui/pages/EnvPage.js.map +1 -0
  256. package/dist/esm/modules/resourceJump/ui/pages/HomePage.d.ts +1 -0
  257. package/dist/esm/modules/resourceJump/ui/pages/HomePage.js +36 -0
  258. package/dist/esm/modules/resourceJump/ui/pages/HomePage.js.map +1 -0
  259. package/dist/esm/modules/resourceJump/ui/widgets/VersionWidget.d.ts +5 -0
  260. package/dist/esm/modules/resourceJump/utils/buildJumpUrl.d.ts +2 -0
  261. package/dist/esm/modules/resourceJump/utils/buildJumpUrl.js +28 -0
  262. package/dist/esm/modules/resourceJump/utils/buildJumpUrl.js.map +1 -0
  263. package/dist/esm/modules/resourceJump/{findBestMatchByUrl.d.ts → utils/findBestMatchByUrl.d.ts} +4 -4
  264. package/dist/esm/modules/resourceJump/{helpers.d.ts → utils/helpers.d.ts} +8 -4
  265. package/dist/esm/modules/resourceJump/utils/helpers.js +30 -0
  266. package/dist/esm/modules/resourceJump/utils/helpers.js.map +1 -0
  267. package/dist/esm/modules/resourceJump/utils/mapToFlagshipResourceJumps.d.ts +12 -0
  268. package/dist/esm/modules/resourceJump/utils/mapToFlagshipResourceJumps.js +38 -0
  269. package/dist/esm/modules/resourceJump/utils/mapToFlagshipResourceJumps.js.map +1 -0
  270. package/dist/esm/modules/resourceJump/utils/mapToResouceJumpUis.d.ts +4 -0
  271. package/dist/esm/modules/resourceJump/utils/mapToResouceJumpUis.js +17 -0
  272. package/dist/esm/modules/resourceJump/utils/mapToResouceJumpUis.js.map +1 -0
  273. package/dist/esm/modules/resourceJump/utils/statistics/statisticsHelpers.d.ts +8 -0
  274. package/dist/esm/modules/resourceJump/utils/statistics/useEnvStatistics.d.ts +2 -0
  275. package/dist/esm/modules/resourceJump/utils/statistics/useEnvStatistics.js +25 -0
  276. package/dist/esm/modules/resourceJump/utils/statistics/useEnvStatistics.js.map +1 -0
  277. package/dist/esm/modules/resourceJump/utils/statistics/useMostRelevantLateParamSlug.d.ts +1 -0
  278. package/dist/esm/modules/resourceJump/utils/statistics/useMostRelevantLateParamSlug.js +12 -0
  279. package/dist/esm/modules/resourceJump/utils/statistics/useMostRelevantLateParamSlug.js.map +1 -0
  280. package/dist/esm/modules/resourceJump/utils/statistics/useMostRelevantQuickEnvs.d.ts +2 -0
  281. package/dist/esm/modules/resourceJump/utils/statistics/useMostRelevantQuickFlagships.d.ts +2 -0
  282. package/dist/esm/node_modules/.pnpm/@dnd-kit_accessibility@3.1.1_react@19.1.2/node_modules/@dnd-kit/accessibility/dist/accessibility.esm.js +60 -0
  283. package/dist/esm/node_modules/.pnpm/@dnd-kit_accessibility@3.1.1_react@19.1.2/node_modules/@dnd-kit/accessibility/dist/accessibility.esm.js.map +1 -0
  284. package/dist/esm/node_modules/.pnpm/@dnd-kit_core@6.3.1_react-dom@19.1.2_react@19.1.2__react@19.1.2/node_modules/@dnd-kit/core/dist/core.esm.js +3055 -0
  285. package/dist/esm/node_modules/.pnpm/@dnd-kit_core@6.3.1_react-dom@19.1.2_react@19.1.2__react@19.1.2/node_modules/@dnd-kit/core/dist/core.esm.js.map +1 -0
  286. package/dist/esm/node_modules/.pnpm/@dnd-kit_sortable@10.0.0_@dnd-kit_core@6.3.1_react-dom@19.1.2_react@19.1.2__react@19.1.2__react@19.1.2/node_modules/@dnd-kit/sortable/dist/sortable.esm.js +593 -0
  287. package/dist/esm/node_modules/.pnpm/@dnd-kit_sortable@10.0.0_@dnd-kit_core@6.3.1_react-dom@19.1.2_react@19.1.2__react@19.1.2__react@19.1.2/node_modules/@dnd-kit/sortable/dist/sortable.esm.js.map +1 -0
  288. package/dist/esm/node_modules/.pnpm/@dnd-kit_utilities@3.2.2_react@19.1.2/node_modules/@dnd-kit/utilities/dist/utilities.esm.js +302 -0
  289. package/dist/esm/node_modules/.pnpm/@dnd-kit_utilities@3.2.2_react@19.1.2/node_modules/@dnd-kit/utilities/dist/utilities.esm.js.map +1 -0
  290. package/dist/esm/node_modules/.pnpm/@hookform_resolvers@5.2.2_react-hook-form@7.71.1_react@19.1.2_/node_modules/@hookform/resolvers/dist/resolvers.js +34 -0
  291. package/dist/esm/node_modules/.pnpm/@hookform_resolvers@5.2.2_react-hook-form@7.71.1_react@19.1.2_/node_modules/@hookform/resolvers/dist/resolvers.js.map +1 -0
  292. package/dist/esm/node_modules/.pnpm/@hookform_resolvers@5.2.2_react-hook-form@7.71.1_react@19.1.2_/node_modules/@hookform/resolvers/zod/dist/zod.js +94 -0
  293. package/dist/esm/node_modules/.pnpm/@hookform_resolvers@5.2.2_react-hook-form@7.71.1_react@19.1.2_/node_modules/@hookform/resolvers/zod/dist/zod.js.map +1 -0
  294. package/dist/esm/node_modules/.pnpm/@tanstack_react-router-devtools@1.151.6_@tanstack_react-router@1.151.6_react-dom@19.1.2_20b78d099e847743bc64b4d051c71d30/node_modules/@tanstack/react-router-devtools/dist/esm/TanStackRouterDevtools.js +72 -0
  295. package/dist/esm/node_modules/.pnpm/@tanstack_react-router-devtools@1.151.6_@tanstack_react-router@1.151.6_react-dom@19.1.2_20b78d099e847743bc64b4d051c71d30/node_modules/@tanstack/react-router-devtools/dist/esm/TanStackRouterDevtools.js.map +1 -0
  296. package/dist/esm/node_modules/.pnpm/@tanstack_react-router-devtools@1.151.6_@tanstack_react-router@1.151.6_react-dom@19.1.2_20b78d099e847743bc64b4d051c71d30/node_modules/@tanstack/react-router-devtools/dist/esm/TanStackRouterDevtoolsPanel.js +44 -0
  297. package/dist/esm/node_modules/.pnpm/@tanstack_react-router-devtools@1.151.6_@tanstack_react-router@1.151.6_react-dom@19.1.2_20b78d099e847743bc64b4d051c71d30/node_modules/@tanstack/react-router-devtools/dist/esm/TanStackRouterDevtoolsPanel.js.map +1 -0
  298. package/dist/esm/node_modules/.pnpm/@tanstack_react-router-devtools@1.151.6_@tanstack_react-router@1.151.6_react-dom@19.1.2_20b78d099e847743bc64b4d051c71d30/node_modules/@tanstack/react-router-devtools/dist/esm/index.js +12 -0
  299. package/dist/esm/node_modules/.pnpm/@tanstack_react-router-devtools@1.151.6_@tanstack_react-router@1.151.6_react-dom@19.1.2_20b78d099e847743bc64b4d051c71d30/node_modules/@tanstack/react-router-devtools/dist/esm/index.js.map +1 -0
  300. package/dist/esm/node_modules/.pnpm/@tanstack_router-core@1.151.6/node_modules/@tanstack/router-core/dist/esm/new-process-route-tree.js +95 -0
  301. package/dist/esm/node_modules/.pnpm/@tanstack_router-core@1.151.6/node_modules/@tanstack/router-core/dist/esm/new-process-route-tree.js.map +1 -0
  302. package/dist/esm/node_modules/.pnpm/@tanstack_router-core@1.151.6/node_modules/@tanstack/router-core/dist/esm/path.js +107 -0
  303. package/dist/esm/node_modules/.pnpm/@tanstack_router-core@1.151.6/node_modules/@tanstack/router-core/dist/esm/path.js.map +1 -0
  304. package/dist/esm/node_modules/.pnpm/@tanstack_router-core@1.151.6/node_modules/@tanstack/router-core/dist/esm/root.js +5 -0
  305. package/dist/esm/node_modules/.pnpm/@tanstack_router-core@1.151.6/node_modules/@tanstack/router-core/dist/esm/root.js.map +1 -0
  306. package/dist/esm/node_modules/.pnpm/@tanstack_router-devtools-core@1.151.6_@tanstack_router-core@1.151.6_csstype@3.2.3/node_modules/@tanstack/router-devtools-core/dist/BaseTanStackRouterDevtoolsPanel-DxaCaP75.js +1963 -0
  307. package/dist/esm/node_modules/.pnpm/@tanstack_router-devtools-core@1.151.6_@tanstack_router-core@1.151.6_csstype@3.2.3/node_modules/@tanstack/router-devtools-core/dist/BaseTanStackRouterDevtoolsPanel-DxaCaP75.js.map +1 -0
  308. package/dist/esm/node_modules/.pnpm/@tanstack_router-devtools-core@1.151.6_@tanstack_router-core@1.151.6_csstype@3.2.3/node_modules/@tanstack/router-devtools-core/dist/FloatingTanStackRouterDevtools-CaypUmOS.js +284 -0
  309. package/dist/esm/node_modules/.pnpm/@tanstack_router-devtools-core@1.151.6_@tanstack_router-core@1.151.6_csstype@3.2.3/node_modules/@tanstack/router-devtools-core/dist/FloatingTanStackRouterDevtools-CaypUmOS.js.map +1 -0
  310. package/dist/esm/node_modules/.pnpm/@tanstack_router-devtools-core@1.151.6_@tanstack_router-core@1.151.6_csstype@3.2.3/node_modules/@tanstack/router-devtools-core/dist/index-5jfj03XJ.js +1855 -0
  311. package/dist/esm/node_modules/.pnpm/@tanstack_router-devtools-core@1.151.6_@tanstack_router-core@1.151.6_csstype@3.2.3/node_modules/@tanstack/router-devtools-core/dist/index-5jfj03XJ.js.map +1 -0
  312. package/dist/esm/node_modules/.pnpm/goober@2.1.18_csstype@3.2.3/node_modules/goober/dist/goober.modern.js +56 -0
  313. package/dist/esm/node_modules/.pnpm/goober@2.1.18_csstype@3.2.3/node_modules/goober/dist/goober.modern.js.map +1 -0
  314. package/dist/esm/node_modules/.pnpm/react-hook-form@7.71.1_react@19.1.2/node_modules/react-hook-form/dist/index.esm.js +1894 -0
  315. package/dist/esm/node_modules/.pnpm/react-hook-form@7.71.1_react@19.1.2/node_modules/react-hook-form/dist/index.esm.js.map +1 -0
  316. package/dist/esm/node_modules/.pnpm/tiny-invariant@1.3.3/node_modules/tiny-invariant/dist/esm/tiny-invariant.js +17 -0
  317. package/dist/esm/node_modules/.pnpm/tiny-invariant@1.3.3/node_modules/tiny-invariant/dist/esm/tiny-invariant.js.map +1 -0
  318. package/dist/esm/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/classic/errors.js +45 -0
  319. package/dist/esm/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/classic/errors.js.map +1 -0
  320. package/dist/esm/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/classic/iso.js +44 -0
  321. package/dist/esm/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/classic/iso.js.map +1 -0
  322. package/dist/esm/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/classic/parse.js +30 -0
  323. package/dist/esm/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/classic/parse.js.map +1 -0
  324. package/dist/esm/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/classic/schemas.js +622 -0
  325. package/dist/esm/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/classic/schemas.js.map +1 -0
  326. package/dist/esm/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/core/api.js +492 -0
  327. package/dist/esm/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/core/api.js.map +1 -0
  328. package/dist/esm/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/core/checks.js +244 -0
  329. package/dist/esm/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/core/checks.js.map +1 -0
  330. package/dist/esm/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/core/core.js +75 -0
  331. package/dist/esm/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/core/core.js.map +1 -0
  332. package/dist/esm/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/core/doc.js +38 -0
  333. package/dist/esm/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/core/doc.js.map +1 -0
  334. package/dist/esm/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/core/errors.js +73 -0
  335. package/dist/esm/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/core/errors.js.map +1 -0
  336. package/dist/esm/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/core/json-schema-processors.js +270 -0
  337. package/dist/esm/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/core/json-schema-processors.js.map +1 -0
  338. package/dist/esm/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/core/parse.js +100 -0
  339. package/dist/esm/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/core/parse.js.map +1 -0
  340. package/dist/esm/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/core/regexes.js +78 -0
  341. package/dist/esm/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/core/regexes.js.map +1 -0
  342. package/dist/esm/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/core/registries.js +52 -0
  343. package/dist/esm/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/core/registries.js.map +1 -0
  344. package/dist/esm/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/core/schemas.js +1225 -0
  345. package/dist/esm/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/core/schemas.js.map +1 -0
  346. package/dist/esm/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/core/to-json-schema.js +363 -0
  347. package/dist/esm/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/core/to-json-schema.js.map +1 -0
  348. package/dist/esm/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/core/util.js +407 -0
  349. package/dist/esm/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/core/util.js.map +1 -0
  350. package/dist/esm/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/core/versions.js +9 -0
  351. package/dist/esm/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/core/versions.js.map +1 -0
  352. package/dist/esm/packages/shared-core/dist/esm/defaultWithOverridesAndTemplate.js +35 -0
  353. package/dist/esm/packages/shared-core/dist/esm/defaultWithOverridesAndTemplate.js.map +1 -0
  354. package/dist/esm/plugins/builtin/pageUrl/pageUrlAutoCompletePlugin.d.ts +3 -5
  355. package/dist/esm/routeTree.gen.d.ts +250 -91
  356. package/dist/esm/routeTree.gen.js +122 -50
  357. package/dist/esm/routeTree.gen.js.map +1 -1
  358. package/dist/esm/routes/__root.d.ts +1 -1
  359. package/dist/esm/routes/__root.js +6 -5
  360. package/dist/esm/routes/__root.js.map +1 -1
  361. package/dist/esm/routes/_layout/app.$appSlug.index.d.ts +1 -0
  362. package/dist/esm/routes/_layout/app._appSlug.index.js +13 -0
  363. package/dist/esm/routes/_layout/app._appSlug.index.js.map +1 -0
  364. package/dist/esm/routes/_layout/app._appSlug.index2.js +16 -0
  365. package/dist/esm/routes/_layout/app._appSlug.index2.js.map +1 -0
  366. package/dist/esm/routes/_layout/apps.index.d.ts +1 -0
  367. package/dist/esm/routes/_layout/apps.index.js +13 -0
  368. package/dist/esm/routes/_layout/apps.index.js.map +1 -0
  369. package/dist/esm/routes/_layout/apps.index2.js +16 -0
  370. package/dist/esm/routes/_layout/apps.index2.js.map +1 -0
  371. package/dist/esm/routes/_layout/catalog.apps.index.d.ts +4 -0
  372. package/dist/esm/routes/_layout/catalog.apps.index.js +18 -0
  373. package/dist/esm/routes/_layout/catalog.apps.index.js.map +1 -0
  374. package/dist/esm/routes/_layout/catalog.apps.index2.js +15 -0
  375. package/dist/esm/routes/_layout/catalog.apps.index2.js.map +1 -0
  376. package/dist/esm/routes/_layout/catalog.index.d.ts +1 -0
  377. package/dist/esm/routes/_layout/catalog.index.js +15 -0
  378. package/dist/esm/routes/_layout/catalog.index.js.map +1 -0
  379. package/dist/esm/routes/_layout/catalog.index2.js +16 -0
  380. package/dist/esm/routes/_layout/catalog.index2.js.map +1 -0
  381. package/dist/esm/routes/_layout/dashboard.index.d.ts +1 -0
  382. package/dist/esm/routes/_layout/dashboard.index.js +13 -0
  383. package/dist/esm/routes/_layout/dashboard.index.js.map +1 -0
  384. package/dist/esm/routes/_layout/dashboard.index2.js +16 -0
  385. package/dist/esm/routes/_layout/dashboard.index2.js.map +1 -0
  386. package/dist/esm/routes/_layout/env.$envSlug.app.$appSlug.index.d.ts +1 -0
  387. package/dist/esm/routes/_layout/env.$envSlug.index.d.ts +1 -0
  388. package/dist/esm/routes/_layout/env._envSlug.app._appSlug.index.js +13 -0
  389. package/dist/esm/routes/_layout/env._envSlug.app._appSlug.index.js.map +1 -0
  390. package/dist/esm/routes/_layout/env._envSlug.app._appSlug.index2.js +16 -0
  391. package/dist/esm/routes/_layout/env._envSlug.app._appSlug.index2.js.map +1 -0
  392. package/dist/esm/routes/_layout/env._envSlug.index.js +13 -0
  393. package/dist/esm/routes/_layout/env._envSlug.index.js.map +1 -0
  394. package/dist/esm/routes/_layout/env._envSlug.index2.js +16 -0
  395. package/dist/esm/routes/_layout/env._envSlug.index2.js.map +1 -0
  396. package/dist/esm/routes/_layout/envs.index.d.ts +1 -0
  397. package/dist/esm/routes/_layout/envs.index.js +13 -0
  398. package/dist/esm/routes/_layout/envs.index.js.map +1 -0
  399. package/dist/esm/routes/_layout/envs.index2.js +16 -0
  400. package/dist/esm/routes/_layout/envs.index2.js.map +1 -0
  401. package/dist/esm/routes/_layout/index.d.ts +27 -1
  402. package/dist/esm/routes/_layout/index.js +14 -10
  403. package/dist/esm/routes/_layout/index.js.map +1 -1
  404. package/dist/esm/routes/_layout/index2.js +24 -0
  405. package/dist/esm/routes/_layout/index2.js.map +1 -0
  406. package/dist/esm/routes/_layout/login.d.ts +1 -0
  407. package/dist/esm/routes/_layout/login.js +9 -0
  408. package/dist/esm/routes/_layout/login.js.map +1 -0
  409. package/dist/esm/routes/_layout/login2.js +16 -0
  410. package/dist/esm/routes/_layout/login2.js.map +1 -0
  411. package/dist/esm/routes/_layout.d.ts +1 -1
  412. package/dist/esm/routes/_layout.js +3 -6
  413. package/dist/esm/routes/_layout.js.map +1 -1
  414. package/dist/esm/routes/_layout2.js +9 -0
  415. package/dist/esm/routes/_layout2.js.map +1 -0
  416. package/dist/esm/routes/admin/app-for-catalog/$id.d.ts +5 -0
  417. package/dist/esm/routes/admin/app-for-catalog/_id.js +47 -0
  418. package/dist/esm/routes/admin/app-for-catalog/_id.js.map +1 -0
  419. package/dist/esm/routes/admin/app-for-catalog/_id2.js +269 -0
  420. package/dist/esm/routes/admin/app-for-catalog/_id2.js.map +1 -0
  421. package/dist/esm/routes/admin/app-for-catalog/index.d.ts +1 -0
  422. package/dist/esm/routes/admin/app-for-catalog/index.js +9 -0
  423. package/dist/esm/routes/admin/app-for-catalog/index.js.map +1 -0
  424. package/dist/esm/routes/admin/app-for-catalog/index2.js +12 -0
  425. package/dist/esm/routes/admin/app-for-catalog/index2.js.map +1 -0
  426. package/dist/esm/routes/admin/app-for-catalog.d.ts +1 -0
  427. package/dist/esm/routes/admin/app-for-catalog.js +14 -0
  428. package/dist/esm/routes/admin/app-for-catalog.js.map +1 -0
  429. package/dist/esm/routes/admin/app-for-catalog2.js +9 -0
  430. package/dist/esm/routes/admin/app-for-catalog2.js.map +1 -0
  431. package/dist/esm/routes/admin/chat.d.ts +1 -0
  432. package/dist/esm/routes/admin/chat.js +14 -0
  433. package/dist/esm/routes/admin/chat.js.map +1 -0
  434. package/dist/esm/routes/admin/chat2.js +9 -0
  435. package/dist/esm/routes/admin/chat2.js.map +1 -0
  436. package/dist/esm/routes/admin/icons.d.ts +1 -0
  437. package/dist/esm/routes/admin/icons.js +14 -0
  438. package/dist/esm/routes/admin/icons.js.map +1 -0
  439. package/dist/esm/routes/admin/icons2.js +12 -0
  440. package/dist/esm/routes/admin/icons2.js.map +1 -0
  441. package/dist/esm/routes/admin/index.d.ts +1 -0
  442. package/dist/esm/routes/admin/index.js +9 -0
  443. package/dist/esm/routes/admin/index.js.map +1 -0
  444. package/dist/esm/routes/admin/index2.js +9 -0
  445. package/dist/esm/routes/admin/index2.js.map +1 -0
  446. package/dist/esm/routes/admin.d.ts +1 -0
  447. package/dist/esm/routes/admin.js +14 -0
  448. package/dist/esm/routes/admin.js.map +1 -0
  449. package/dist/esm/routes/admin2.js +18 -0
  450. package/dist/esm/routes/admin2.js.map +1 -0
  451. package/dist/esm/routes/auth.callback.d.ts +4 -0
  452. package/dist/esm/routes/auth.callback.js +13 -0
  453. package/dist/esm/routes/auth.callback.js.map +1 -0
  454. package/dist/esm/routes/auth.callback2.js +49 -0
  455. package/dist/esm/routes/auth.callback2.js.map +1 -0
  456. package/dist/esm/types/ehTypes.d.ts +2 -5
  457. package/dist/esm/types/tanstackQuery.d.ts +2 -0
  458. package/dist/esm/types/types.d.ts +12 -3
  459. package/dist/esm/types/userBehaviourTypes.d.ts +1 -1
  460. package/dist/esm/ui/autocomplete.d.ts +29 -0
  461. package/dist/esm/ui/autocomplete.js +164 -0
  462. package/dist/esm/ui/autocomplete.js.map +1 -0
  463. package/dist/esm/ui/badge.js +27 -0
  464. package/dist/esm/ui/badge.js.map +1 -0
  465. package/dist/esm/ui/breadcrumb.d.ts +11 -0
  466. package/dist/esm/ui/breadcrumb.js +84 -0
  467. package/dist/esm/ui/breadcrumb.js.map +1 -0
  468. package/dist/esm/ui/button-group.d.ts +11 -0
  469. package/dist/esm/ui/button-group.js +40 -0
  470. package/dist/esm/ui/button-group.js.map +1 -0
  471. package/dist/esm/ui/button.d.ts +13 -0
  472. package/dist/esm/ui/button.js +53 -0
  473. package/dist/esm/ui/button.js.map +1 -0
  474. package/dist/esm/ui/card.d.ts +9 -0
  475. package/dist/esm/ui/card.js +66 -0
  476. package/dist/esm/ui/card.js.map +1 -0
  477. package/dist/esm/ui/checkbox.d.ts +4 -0
  478. package/dist/esm/ui/checkbox.js +32 -0
  479. package/dist/esm/ui/checkbox.js.map +1 -0
  480. package/dist/esm/{components/ui → ui}/collapsible.d.ts +1 -1
  481. package/dist/esm/ui/collapsible.js +47 -0
  482. package/dist/esm/ui/collapsible.js.map +1 -0
  483. package/dist/esm/ui/command.d.ts +20 -0
  484. package/dist/esm/ui/command.js +168 -0
  485. package/dist/esm/ui/command.js.map +1 -0
  486. package/dist/esm/ui/components/Breadcrumbs.d.ts +19 -0
  487. package/dist/esm/ui/components/Breadcrumbs.js +36 -0
  488. package/dist/esm/ui/components/Breadcrumbs.js.map +1 -0
  489. package/dist/esm/ui/components/commandInput/EhBaseSelector.d.ts +0 -4
  490. package/dist/esm/ui/components/contextDebug.js +54 -6
  491. package/dist/esm/ui/components/contextDebug.js.map +1 -1
  492. package/dist/esm/ui/components/error/DefaultErrorComponent.d.ts +2 -1
  493. package/dist/esm/ui/components/error/DefaultErrorComponent.js +75 -8
  494. package/dist/esm/ui/components/error/DefaultErrorComponent.js.map +1 -1
  495. package/dist/esm/ui/components/error/RootErrorPage.d.ts +2 -0
  496. package/dist/esm/ui/components/error/RootErrorPage.js +9 -0
  497. package/dist/esm/ui/components/error/RootErrorPage.js.map +1 -0
  498. package/dist/esm/ui/components/footer/Footer.js +33 -30
  499. package/dist/esm/ui/components/footer/Footer.js.map +1 -1
  500. package/dist/esm/ui/components/header/Header.d.ts +5 -0
  501. package/dist/esm/ui/components/header/Header.js +111 -0
  502. package/dist/esm/ui/components/header/Header.js.map +1 -0
  503. package/dist/esm/ui/components/quickBar/AppQuickJumpBar.d.ts +5 -0
  504. package/dist/esm/ui/components/quickBar/QuickJumpButton.d.ts +7 -0
  505. package/dist/esm/ui/components/quickBar/ResourceJumpGroupViewer.d.ts +5 -0
  506. package/dist/esm/ui/components/quickBar/arrangeGridItems.d.ts +16 -0
  507. package/dist/esm/{components/ui → ui}/dialog.d.ts +3 -9
  508. package/dist/esm/ui/dialog.js +137 -0
  509. package/dist/esm/ui/dialog.js.map +1 -0
  510. package/dist/esm/{components/ui → ui}/dropdown-menu.d.ts +2 -2
  511. package/dist/esm/ui/dropdown-menu.js +79 -0
  512. package/dist/esm/ui/dropdown-menu.js.map +1 -0
  513. package/dist/esm/ui/empty.d.ts +11 -0
  514. package/dist/esm/ui/empty.js +103 -0
  515. package/dist/esm/ui/empty.js.map +1 -0
  516. package/dist/esm/ui/error/NotFoundError.js +4 -3
  517. package/dist/esm/ui/error/NotFoundError.js.map +1 -1
  518. package/dist/esm/ui/form.d.ts +56 -0
  519. package/dist/esm/ui/form.js +134 -0
  520. package/dist/esm/ui/form.js.map +1 -0
  521. package/dist/esm/ui/input-group.d.ts +16 -0
  522. package/dist/esm/ui/input-group.js +125 -0
  523. package/dist/esm/ui/input-group.js.map +1 -0
  524. package/dist/esm/ui/input.d.ts +3 -0
  525. package/dist/esm/ui/input.js +22 -0
  526. package/dist/esm/ui/input.js.map +1 -0
  527. package/dist/esm/ui/label.d.ts +4 -0
  528. package/dist/esm/ui/label.js +23 -0
  529. package/dist/esm/ui/label.js.map +1 -0
  530. package/dist/esm/ui/layout/LoadingScreen.d.ts +3 -1
  531. package/dist/esm/ui/layout/LoadingScreen.js +47 -7
  532. package/dist/esm/ui/layout/LoadingScreen.js.map +1 -1
  533. package/dist/esm/ui/layout/MainLayout.d.ts +3 -1
  534. package/dist/esm/ui/layout/MainLayout.js +5 -6
  535. package/dist/esm/ui/layout/MainLayout.js.map +1 -1
  536. package/dist/esm/ui/layout/TopLevelProviders.d.ts +5 -0
  537. package/dist/esm/ui/layout/TopLevelProviders.js +39 -18
  538. package/dist/esm/ui/layout/TopLevelProviders.js.map +1 -1
  539. package/dist/esm/ui/layout/TopLevelProvidersForErrors.d.ts +10 -0
  540. package/dist/esm/ui/layout/TopLevelProvidersForErrors.js +24 -0
  541. package/dist/esm/ui/layout/TopLevelProvidersForErrors.js.map +1 -0
  542. package/dist/esm/ui/link.d.ts +10 -0
  543. package/dist/esm/ui/link.js +28 -0
  544. package/dist/esm/ui/link.js.map +1 -0
  545. package/dist/esm/ui/linkExternal.d.ts +8 -0
  546. package/dist/esm/ui/linkExternal.js +26 -0
  547. package/dist/esm/ui/linkExternal.js.map +1 -0
  548. package/dist/esm/ui/radio-group.d.ts +5 -0
  549. package/dist/esm/ui/scroll-area.js +62 -0
  550. package/dist/esm/ui/scroll-area.js.map +1 -0
  551. package/dist/esm/ui/search-input-with-shortcut.d.ts +25 -0
  552. package/dist/esm/ui/select.d.ts +15 -0
  553. package/dist/esm/ui/select.js +138 -0
  554. package/dist/esm/ui/select.js.map +1 -0
  555. package/dist/esm/{components/ui → ui}/separator.js +1 -1
  556. package/dist/esm/ui/separator.js.map +1 -0
  557. package/dist/esm/ui/shortcut-button.d.ts +24 -0
  558. package/dist/esm/ui/shortcut-button.js +57 -0
  559. package/dist/esm/ui/shortcut-button.js.map +1 -0
  560. package/dist/esm/ui/skeleton.d.ts +2 -0
  561. package/dist/esm/ui/skeleton.js +16 -0
  562. package/dist/esm/ui/skeleton.js.map +1 -0
  563. package/dist/esm/ui/spinner.d.ts +2 -0
  564. package/dist/esm/ui/spinner.js +18 -0
  565. package/dist/esm/ui/spinner.js.map +1 -0
  566. package/dist/esm/ui/table.d.ts +10 -0
  567. package/dist/esm/ui/table.js +87 -0
  568. package/dist/esm/ui/table.js.map +1 -0
  569. package/dist/esm/ui/textarea.d.ts +3 -0
  570. package/dist/esm/ui/textarea.js +19 -0
  571. package/dist/esm/ui/textarea.js.map +1 -0
  572. package/dist/esm/ui/tooltip.d.ts +7 -0
  573. package/dist/esm/userDb/EhDb.d.ts +16 -2
  574. package/dist/esm/userDb/EhDb.js +28 -2
  575. package/dist/esm/userDb/EhDb.js.map +1 -1
  576. package/dist/esm/util/availabilityMatrixUtils.d.ts +2 -2
  577. package/dist/esm/util/createEhRouter.d.ts +1 -1
  578. package/dist/esm/util/createEhRouter.js +4 -1
  579. package/dist/esm/util/createEhRouter.js.map +1 -1
  580. package/dist/esm/util/error-utils.d.ts +6 -0
  581. package/dist/esm/util/error-utils.js +28 -0
  582. package/dist/esm/util/error-utils.js.map +1 -0
  583. package/dist/esm/util/reactQueryUtils.d.ts +4 -0
  584. package/dist/esm/util/reactQueryUtils.js +7 -0
  585. package/dist/esm/util/reactQueryUtils.js.map +1 -1
  586. package/dist/esm/util/route-utils.d.ts +23 -2
  587. package/dist/esm/util/route-utils.js +11 -37
  588. package/dist/esm/util/route-utils.js.map +1 -1
  589. package/dist/esm/util/slug-utils.d.ts +12 -0
  590. package/dist/index.css +225 -0
  591. package/dist/public/app-catalog-16x16.png +0 -0
  592. package/dist/public/app-catalog-192x192.png +0 -0
  593. package/dist/public/app-catalog-32x32.png +0 -0
  594. package/dist/public/app-catalog-48x48.png +0 -0
  595. package/dist/public/app-catalog-512x512.png +0 -0
  596. package/dist/public/app-catalog-square.svg +160 -0
  597. package/dist/public/app-catalog.png +0 -0
  598. package/dist/public/app-catalog.svg +198 -0
  599. package/dist/public/favicon-app-catalog.ico +0 -0
  600. package/package.json +55 -16
  601. package/public/app-catalog-16x16.png +0 -0
  602. package/public/app-catalog-192x192.png +0 -0
  603. package/public/app-catalog-32x32.png +0 -0
  604. package/public/app-catalog-48x48.png +0 -0
  605. package/public/app-catalog-512x512.png +0 -0
  606. package/public/app-catalog-square.svg +160 -0
  607. package/public/app-catalog.png +0 -0
  608. package/public/app-catalog.svg +198 -0
  609. package/public/apple-touch-180x180.png +0 -0
  610. package/public/env-hopper-16x16.png +0 -0
  611. package/public/env-hopper-192x192.png +0 -0
  612. package/public/env-hopper-32x32.png +0 -0
  613. package/public/env-hopper-48x48.png +0 -0
  614. package/public/env-hopper-512x512.png +0 -0
  615. package/public/env-hopper-square.svg +114 -0
  616. package/public/favicon-app-catalog.ico +0 -0
  617. package/public/favicon.ico +0 -0
  618. package/public/robots.txt +2 -0
  619. package/src/App.tsx +1 -1
  620. package/src/__tests__/integration/appQuickJumpBar.integration.test.tsx +25 -0
  621. package/src/__tests__/integration/factories/BackendMagazine.ts +14 -0
  622. package/src/__tests__/integration/factories/DbMagazine.ts +13 -0
  623. package/src/__tests__/integration/factories/app.ts +14 -0
  624. package/src/__tests__/integration/factories/env.ts +14 -0
  625. package/src/__tests__/integration/factories/mapper.ts +253 -0
  626. package/src/__tests__/integration/factories/resourceJump.ts +15 -0
  627. package/src/__tests__/integration/factories/simpleDSL.ts +8 -0
  628. package/src/__tests__/integration/factories/types.ts +18 -0
  629. package/src/__tests__/integration/helpers/renderWithProviders.tsx +182 -0
  630. package/src/__tests__/integration/helpers/testHelpers.ts +24 -0
  631. package/src/__tests__/integration/helpers/uiHelpers.ts +166 -0
  632. package/src/__tests__/integration/quickSlots.integration.test.tsx +17 -0
  633. package/src/__tests__/integration/resourceJump.integration.test.tsx +184 -0
  634. package/src/__tests__/integration/setup/svgMock.tsx +10 -0
  635. package/src/__tests__/integration/setup/testSetup.ts +35 -0
  636. package/src/__tests__/modules/fuzzyMatchLogic/autoCompleteFilter.test.ts +64 -50
  637. package/src/__tests__/modules/fuzzyMatchLogic/testUtils.ts +10 -1
  638. package/src/__tests__/modules/resouceJump/findBestMatchByUrl.test.ts +15 -17
  639. package/src/__tests__/modules/resouceJump/helpers.test.ts +55 -0
  640. package/src/__tests__/modules/resouceJump/utils/mapToFlagshipResourceJumps.test.ts +58 -0
  641. package/src/__tests__/util/TestMagazine.ts +24 -0
  642. package/src/api/ApiQueryMagazine.ts +2 -2
  643. package/src/api/data/useQueryBootstrapConfig.ts +7 -6
  644. package/src/api/infra/createQueryClient.ts +5 -1
  645. package/src/api/unsorted/appCatalogFetcher.ts +32 -0
  646. package/src/api/unsorted/createCachingFetcher.ts +159 -0
  647. package/src/api/unsorted/indexDataFetcher.ts +13 -34
  648. package/src/api/unsorted/resourceJumpsExtendedFetcher.ts +33 -0
  649. package/src/api/unsorted/resourceJumpsFetcher.ts +32 -0
  650. package/src/appPropsFactory.ts +8 -6
  651. package/src/assets/app-catalog.svg +198 -0
  652. package/src/components/IconPickerDialog.tsx +136 -0
  653. package/src/components/IconPickerField.tsx +88 -0
  654. package/src/components/ThemeSwitcher.tsx +1 -1
  655. package/src/index.css +14 -0
  656. package/src/lib/getAppMode.ts +5 -0
  657. package/src/main.tsx +9 -5
  658. package/src/modules/admin-base/components/AdminChat.tsx +122 -0
  659. package/src/modules/admin-base/components/AdminLayout.tsx +105 -0
  660. package/src/modules/admin-base/components/AdminWelcome.tsx +52 -0
  661. package/src/modules/admin-base/context/AdminConfigContext.tsx +36 -0
  662. package/src/modules/admin-base/index.ts +16 -0
  663. package/src/modules/admin-base/types/adminTypes.ts +11 -0
  664. package/src/modules/appCatalog/AppCatalogAdminPage.tsx +281 -0
  665. package/src/modules/appCatalog/AppCatalogEditDialog.tsx +268 -0
  666. package/src/modules/appCatalog/ScreenshotItem.tsx +63 -0
  667. package/src/modules/appCatalog/ScreenshotManager.tsx +193 -0
  668. package/src/modules/appCatalog/api/ApiQueryMagazineAppCatalog.ts +12 -0
  669. package/src/modules/appCatalog/catalogRouteLoader.ts +28 -0
  670. package/src/modules/appCatalog/context/AppCatalogContext.tsx +46 -0
  671. package/src/modules/appCatalog/index.ts +16 -0
  672. package/src/modules/appCatalog/routeLoader.ts +9 -0
  673. package/src/modules/appCatalog/ui/components/AppDetailModal.tsx +283 -0
  674. package/src/modules/appCatalog/ui/grid/AppCatalogFiltersCard.tsx +79 -0
  675. package/src/modules/appCatalog/ui/grid/AppCatalogGrid.tsx +160 -0
  676. package/src/modules/appCatalog/ui/grid/AppCatalogTable.tsx +89 -0
  677. package/src/modules/appCatalog/ui/grid/appCatalogUtils.ts +30 -0
  678. package/src/modules/appCatalog/ui/layout/AppCatalogLayout.tsx +55 -0
  679. package/src/modules/appCatalog/ui/pages/AppCatalogPage.tsx +86 -0
  680. package/src/modules/auth/AuthContext.tsx +117 -0
  681. package/src/modules/auth/AuthModalContext.tsx +49 -0
  682. package/src/modules/auth/ProtectedContent.tsx +55 -0
  683. package/src/modules/auth/authClient.ts +9 -0
  684. package/src/modules/auth/index.ts +6 -0
  685. package/src/modules/auth/ui/LoginModal.tsx +36 -0
  686. package/src/modules/auth/ui/LoginPage.tsx +62 -0
  687. package/src/modules/auth/useAuthActions.ts +85 -0
  688. package/src/modules/config/BootstrapConfigContext.tsx +1 -1
  689. package/src/modules/config/HealthStateContext.tsx +47 -0
  690. package/src/modules/crossCuttingParams/CrossCuttingParamsContext.tsx +75 -0
  691. package/src/modules/crossCuttingParams/types.ts +18 -0
  692. package/src/modules/crossCuttingParams/utils/routeLoaderMapper.ts +7 -0
  693. package/src/modules/environment/{EnvironmentContext.tsx → context/EnvironmentContext.tsx} +37 -30
  694. package/src/modules/environment/context/useEnvironmentHistory.ts +30 -0
  695. package/src/modules/fuzzyMatchLogic/autoCompleteFilter.ts +86 -11
  696. package/src/modules/fuzzyMatchLogic/features/positionBonus.ts +29 -0
  697. package/src/modules/fuzzyMatchLogic/features/prefixFracTokenMiddles.ts +1 -1
  698. package/src/modules/fuzzyMatchLogic/postFiltration.ts +133 -0
  699. package/src/modules/fuzzyMatchLogic/scoring.ts +7 -1
  700. package/src/modules/fuzzyMatchLogic/tokenize.ts +12 -1
  701. package/src/modules/fuzzyMatchLogic/types.ts +1 -0
  702. package/src/modules/icons/IconManagementPage.tsx +237 -0
  703. package/src/modules/pluginCore/PluginManagerContext.tsx +14 -43
  704. package/src/modules/pluginCore/makePluginManagerContext.ts +3 -25
  705. package/src/modules/pluginCore/types.ts +0 -27
  706. package/src/modules/resourceJump/api/ApiQueryMagazineResourceJump.ts +52 -0
  707. package/src/modules/resourceJump/context/ResourceJumpContext.tsx +395 -0
  708. package/src/modules/resourceJump/context/useResouceJumpHistory.ts +117 -0
  709. package/src/modules/resourceJump/routeLoader.ts +28 -36
  710. package/src/modules/resourceJump/types.ts +25 -6
  711. package/src/modules/resourceJump/ui/AppSwitcher.tsx +22 -0
  712. package/src/modules/resourceJump/ui/CredentialsWidget.tsx +15 -0
  713. package/src/modules/resourceJump/ui/EnvSwitcher.tsx +17 -0
  714. package/src/modules/resourceJump/ui/JumpALink.tsx +3 -11
  715. package/src/modules/resourceJump/ui/JumpMainButton.tsx +85 -44
  716. package/src/modules/resourceJump/ui/LateResolvableSingleParam.tsx +47 -0
  717. package/src/modules/resourceJump/ui/LateResolvableTopParam.tsx +46 -0
  718. package/src/modules/resourceJump/ui/ResolvableParameterSelector.tsx +109 -0
  719. package/src/modules/resourceJump/ui/ResolvableParameters.tsx +26 -0
  720. package/src/modules/resourceJump/ui/ResourceJumpBreadcrumbs.tsx +89 -0
  721. package/src/modules/resourceJump/ui/ResourceJumpButton.tsx +75 -0
  722. package/src/modules/resourceJump/ui/ResourceJumpMockTable.tsx +249 -0
  723. package/src/modules/resourceJump/ui/ShareLinkButton.tsx +127 -0
  724. package/src/modules/resourceJump/ui/SmoothSwitcher.tsx +119 -0
  725. package/src/modules/resourceJump/ui/TopQuickJump.tsx +23 -0
  726. package/src/modules/resourceJump/ui/appCatalog/AppCatalogFiltersCard.tsx +79 -0
  727. package/src/modules/resourceJump/ui/appCatalog/AppCatalogGrid.tsx +30 -0
  728. package/src/modules/resourceJump/ui/appCatalog/AppCatalogTable.tsx +86 -0
  729. package/src/modules/resourceJump/ui/appCatalog/appCatalogUtils.ts +12 -0
  730. package/src/modules/resourceJump/ui/cmdk/AppAutocomplete.tsx +231 -0
  731. package/src/modules/resourceJump/ui/cmdk/CmdKQuickSearchDialog.scss +197 -0
  732. package/src/modules/resourceJump/ui/cmdk/CmdKQuickSearchDialog.tsx +297 -0
  733. package/src/modules/resourceJump/ui/cmdk/CommandPalette.tsx +51 -0
  734. package/src/modules/resourceJump/ui/cmdk/EnvAutocomplete.tsx +237 -0
  735. package/src/modules/resourceJump/ui/cmdk/QuickSearch.tsx +107 -0
  736. package/src/modules/resourceJump/ui/cmdk/QuickSearchContext.tsx +58 -0
  737. package/src/modules/resourceJump/ui/cmdk/highlightText.tsx +27 -0
  738. package/src/modules/resourceJump/ui/cmdk/types.ts +7 -0
  739. package/src/modules/resourceJump/ui/cmdk/useCmdkDriver.ts +40 -0
  740. package/src/modules/resourceJump/ui/cmdk/useQuickSearchLogic.ts +74 -0
  741. package/src/modules/resourceJump/ui/layout/CenterColumn.tsx +3 -0
  742. package/src/modules/resourceJump/ui/layout/LeftColumn.tsx +96 -0
  743. package/src/modules/resourceJump/ui/layout/ResourceJumpLayout.tsx +101 -0
  744. package/src/modules/resourceJump/ui/layout/RightColumn.tsx +14 -0
  745. package/src/modules/resourceJump/ui/miniEnvSelector/MiniEnvSelectorPopover.tsx +61 -0
  746. package/src/modules/resourceJump/ui/pages/AppCatalog.tsx +105 -0
  747. package/src/modules/resourceJump/ui/pages/AppPage.tsx +14 -0
  748. package/src/modules/resourceJump/ui/pages/AppPageFlagship.tsx +121 -0
  749. package/src/modules/resourceJump/ui/pages/AppPageRegular.tsx +16 -0
  750. package/src/modules/resourceJump/ui/pages/DashboardPage.tsx +13 -0
  751. package/src/modules/resourceJump/ui/pages/EnvCatalog.tsx +89 -0
  752. package/src/modules/resourceJump/ui/pages/EnvPage.tsx +195 -0
  753. package/src/modules/resourceJump/ui/pages/HomePage.tsx +35 -0
  754. package/src/modules/resourceJump/ui/widgets/VersionWidget.tsx +15 -0
  755. package/src/modules/resourceJump/utils/buildJumpUrl.ts +46 -0
  756. package/src/modules/resourceJump/{findBestMatchByUrl.ts → utils/findBestMatchByUrl.ts} +4 -4
  757. package/src/modules/resourceJump/{helpers.ts → utils/helpers.ts} +42 -9
  758. package/src/modules/resourceJump/utils/mapToFlagshipResourceJumps.ts +88 -0
  759. package/src/modules/resourceJump/utils/mapToResouceJumpUis.ts +20 -0
  760. package/src/modules/resourceJump/utils/statistics/statisticsHelpers.ts +24 -0
  761. package/src/modules/resourceJump/utils/statistics/useEnvStatistics.ts +32 -0
  762. package/src/modules/resourceJump/utils/statistics/useMostRelevantLateParamSlug.ts +10 -0
  763. package/src/modules/resourceJump/utils/statistics/useMostRelevantQuickEnvs.ts +21 -0
  764. package/src/modules/resourceJump/utils/statistics/useMostRelevantQuickFlagships.ts +36 -0
  765. package/src/plugins/builtin/pageUrl/pageUrlAutoCompletePlugin.ts +5 -34
  766. package/src/plugins/builtin/pageUrl/pageUrlTypes.ts +1 -2
  767. package/src/routeTree.gen.ts +353 -143
  768. package/src/routes/__root.tsx +10 -7
  769. package/src/routes/_layout/app.$appSlug.index.tsx +25 -0
  770. package/src/routes/_layout/apps.index.tsx +26 -0
  771. package/src/routes/_layout/catalog.apps.index.tsx +27 -0
  772. package/src/routes/_layout/catalog.index.tsx +29 -0
  773. package/src/routes/_layout/dashboard.index.tsx +26 -0
  774. package/src/routes/_layout/env.$envSlug.app.$appSlug.index.tsx +25 -0
  775. package/src/routes/_layout/env.$envSlug.index.tsx +25 -0
  776. package/src/routes/_layout/envs.index.tsx +26 -0
  777. package/src/routes/_layout/index.tsx +72 -5
  778. package/src/routes/_layout/login.tsx +20 -0
  779. package/src/routes/admin/app-for-catalog/$id.tsx +468 -0
  780. package/src/routes/admin/app-for-catalog/index.tsx +19 -0
  781. package/src/routes/admin/app-for-catalog.tsx +12 -0
  782. package/src/routes/admin/chat.tsx +13 -0
  783. package/src/routes/admin/icons.tsx +22 -0
  784. package/src/routes/admin/index.tsx +9 -0
  785. package/src/routes/admin.tsx +32 -0
  786. package/src/routes/auth.callback.tsx +74 -0
  787. package/src/types/ehTypes.ts +3 -5
  788. package/src/types/tanstackQuery.ts +2 -0
  789. package/src/types/types.ts +13 -3
  790. package/src/types/userBehaviourTypes.ts +1 -1
  791. package/src/types/vite-env.d.ts +1 -0
  792. package/src/ui/autocomplete.tsx +272 -0
  793. package/src/{components/ui → ui}/badge.tsx +2 -1
  794. package/src/ui/breadcrumb.tsx +106 -0
  795. package/src/ui/button-group.tsx +85 -0
  796. package/src/ui/button.tsx +66 -0
  797. package/src/ui/card.tsx +92 -0
  798. package/src/ui/checkbox.tsx +30 -0
  799. package/src/{components/ui → ui}/collapsible.tsx +17 -3
  800. package/src/ui/command.tsx +196 -0
  801. package/src/ui/components/ActionCard.tsx +2 -2
  802. package/src/ui/components/AppIcon.tsx +5 -5
  803. package/src/ui/components/Breadcrumbs.tsx +97 -0
  804. package/src/ui/components/commandInput/EhBaseSelector.tsx +0 -34
  805. package/src/ui/components/contextDebug.tsx +54 -5
  806. package/src/ui/components/error/DefaultErrorComponent.tsx +107 -31
  807. package/src/ui/components/error/{RooutErrorPage.tsx → RootErrorPage.tsx} +2 -2
  808. package/src/ui/components/footer/Footer.tsx +19 -0
  809. package/src/ui/components/header/Header.tsx +172 -0
  810. package/src/ui/components/quickBar/AppQuickJumpBar.tsx +176 -0
  811. package/src/ui/components/quickBar/QuickJumpButton.tsx +21 -0
  812. package/src/ui/components/quickBar/ResourceJumpGroupViewer.tsx +80 -0
  813. package/src/ui/components/quickBar/arrangeGridItems.ts +61 -0
  814. package/src/ui/components/widgets/CredentialsWidget.tsx +3 -3
  815. package/src/ui/components/widgets/VersionWidget.tsx +1 -1
  816. package/src/{components/ui → ui}/dialog.tsx +10 -51
  817. package/src/{components/ui → ui}/dropdown-menu.tsx +13 -15
  818. package/src/ui/empty.tsx +105 -0
  819. package/src/ui/error/NotFoundError.tsx +10 -7
  820. package/src/ui/form.tsx +188 -0
  821. package/src/ui/input-group.tsx +167 -0
  822. package/src/ui/input.tsx +21 -0
  823. package/src/ui/label.tsx +22 -0
  824. package/src/ui/layout/LoadingScreen.tsx +58 -8
  825. package/src/ui/layout/MainLayout.tsx +7 -7
  826. package/src/ui/layout/TopLevelProviders.tsx +51 -25
  827. package/src/ui/layout/TopLevelProvidersForErrors.tsx +34 -0
  828. package/src/ui/link.tsx +31 -0
  829. package/src/ui/linkExternal.tsx +26 -0
  830. package/src/ui/main/JumpTabContent.tsx +1 -1
  831. package/src/ui/radio-group.tsx +43 -0
  832. package/src/ui/search-input-with-shortcut.tsx +54 -0
  833. package/src/ui/select.tsx +185 -0
  834. package/src/ui/shortcut-button.tsx +84 -0
  835. package/src/ui/skeleton.tsx +13 -0
  836. package/src/ui/spinner.tsx +16 -0
  837. package/src/ui/table.tsx +114 -0
  838. package/src/{components/ui → ui}/tabs.tsx +2 -3
  839. package/src/ui/textarea.tsx +18 -0
  840. package/src/ui/tooltip.tsx +60 -0
  841. package/src/userDb/EhDb.ts +48 -5
  842. package/src/util/availabilityMatrixUtils.ts +2 -2
  843. package/src/util/{createEhRouter.ts → createEhRouter.tsx} +2 -0
  844. package/src/util/error-utils.ts +31 -0
  845. package/src/util/reactQueryUtils.ts +8 -0
  846. package/src/util/route-utils.ts +11 -34
  847. package/src/util/slug-utils.ts +17 -0
  848. package/dist/disable.well-known/appspecific/com.chrome.devtools.json +0 -6
  849. package/dist/esm/api/ApiQueryMagazine.js +0 -16
  850. package/dist/esm/api/ApiQueryMagazine.js.map +0 -1
  851. package/dist/esm/api/data/useQueryBootstrapConfig.js +0 -14
  852. package/dist/esm/api/data/useQueryBootstrapConfig.js.map +0 -1
  853. package/dist/esm/api/unsorted/indexDataFetcher.js +0 -35
  854. package/dist/esm/api/unsorted/indexDataFetcher.js.map +0 -1
  855. package/dist/esm/assets/env-hopper-logo.svg.js +0 -16
  856. package/dist/esm/assets/env-hopper-logo.svg.js.map +0 -1
  857. package/dist/esm/components/ui/breadcrumb.d.ts +0 -46
  858. package/dist/esm/components/ui/button.d.ts +0 -16
  859. package/dist/esm/components/ui/button.js +0 -52
  860. package/dist/esm/components/ui/button.js.map +0 -1
  861. package/dist/esm/components/ui/card.d.ts +0 -38
  862. package/dist/esm/components/ui/input.d.ts +0 -10
  863. package/dist/esm/components/ui/popover.js +0 -14
  864. package/dist/esm/components/ui/popover.js.map +0 -1
  865. package/dist/esm/components/ui/separator.js.map +0 -1
  866. package/dist/esm/modules/environment/ApiQueryMagazineEnvironment.js +0 -13
  867. package/dist/esm/modules/environment/ApiQueryMagazineEnvironment.js.map +0 -1
  868. package/dist/esm/modules/environment/EnvironmentContext.js +0 -67
  869. package/dist/esm/modules/environment/EnvironmentContext.js.map +0 -1
  870. package/dist/esm/modules/environment/ui/EhEnvSelector.d.ts +0 -9
  871. package/dist/esm/modules/environment/ui/EhEnvSelector.js +0 -167
  872. package/dist/esm/modules/environment/ui/EhEnvSelector.js.map +0 -1
  873. package/dist/esm/modules/fuzzyMatchLogic/features/prefixFrac.js +0 -12
  874. package/dist/esm/modules/fuzzyMatchLogic/features/prefixFrac.js.map +0 -1
  875. package/dist/esm/modules/fuzzyMatchLogic/scoring.js +0 -23
  876. package/dist/esm/modules/fuzzyMatchLogic/scoring.js.map +0 -1
  877. package/dist/esm/modules/fuzzyMatchLogic/utils.js +0 -12
  878. package/dist/esm/modules/fuzzyMatchLogic/utils.js.map +0 -1
  879. package/dist/esm/modules/pluginCore/types.js +0 -7
  880. package/dist/esm/modules/pluginCore/types.js.map +0 -1
  881. package/dist/esm/modules/resourceJump/ApiQueryMagazineResourceJump.d.ts +0 -27
  882. package/dist/esm/modules/resourceJump/ApiQueryMagazineResourceJump.js +0 -26
  883. package/dist/esm/modules/resourceJump/ApiQueryMagazineResourceJump.js.map +0 -1
  884. package/dist/esm/modules/resourceJump/ResourceJumpContext.d.ts +0 -17
  885. package/dist/esm/modules/resourceJump/ResourceJumpContext.js +0 -88
  886. package/dist/esm/modules/resourceJump/ResourceJumpContext.js.map +0 -1
  887. package/dist/esm/modules/resourceJump/buildJumpUrl.d.ts +0 -2
  888. package/dist/esm/modules/resourceJump/buildJumpUrl.js +0 -32
  889. package/dist/esm/modules/resourceJump/buildJumpUrl.js.map +0 -1
  890. package/dist/esm/modules/resourceJump/findBestMatchByUrl.js +0 -85
  891. package/dist/esm/modules/resourceJump/findBestMatchByUrl.js.map +0 -1
  892. package/dist/esm/modules/resourceJump/helpers.js +0 -19
  893. package/dist/esm/modules/resourceJump/helpers.js.map +0 -1
  894. package/dist/esm/modules/resourceJump/ui/EhJumpResourceSelector.d.ts +0 -20
  895. package/dist/esm/modules/resourceJump/ui/EhJumpResourceSelector.js +0 -209
  896. package/dist/esm/modules/resourceJump/ui/EhJumpResourceSelector.js.map +0 -1
  897. package/dist/esm/modules/resourceJump/ui/JumpALink.js +0 -38
  898. package/dist/esm/modules/resourceJump/ui/JumpALink.js.map +0 -1
  899. package/dist/esm/modules/resourceJump/ui/JumpMainButton.js +0 -66
  900. package/dist/esm/modules/resourceJump/ui/JumpMainButton.js.map +0 -1
  901. package/dist/esm/modules/resourceJump/ui/ResouceJumpLayout.d.ts +0 -5
  902. package/dist/esm/modules/resourceJump/ui/ResouceJumpLayout.js +0 -42
  903. package/dist/esm/modules/resourceJump/ui/ResouceJumpLayout.js.map +0 -1
  904. package/dist/esm/plugins/builtin/pageUrl/PageUrlPluginContext.d.ts +0 -9
  905. package/dist/esm/plugins/builtin/pageUrl/PageUrlPluginContext.js +0 -36
  906. package/dist/esm/plugins/builtin/pageUrl/PageUrlPluginContext.js.map +0 -1
  907. package/dist/esm/plugins/builtin/pageUrl/pageUrlAutoCompletePlugin.js +0 -44
  908. package/dist/esm/plugins/builtin/pageUrl/pageUrlAutoCompletePlugin.js.map +0 -1
  909. package/dist/esm/plugins/builtin/pageUrl/pageUrlJumpPlugin.d.ts +0 -7
  910. package/dist/esm/plugins/builtin/pageUrl/pageUrlJumpPlugin.js +0 -29
  911. package/dist/esm/plugins/builtin/pageUrl/pageUrlJumpPlugin.js.map +0 -1
  912. package/dist/esm/routes/_layout/app/$appSlug/sub/$subValue.d.ts +0 -1
  913. package/dist/esm/routes/_layout/app/$appSlug.d.ts +0 -1
  914. package/dist/esm/routes/_layout/app/_appSlug/sub/_subValue.js +0 -18
  915. package/dist/esm/routes/_layout/app/_appSlug/sub/_subValue.js.map +0 -1
  916. package/dist/esm/routes/_layout/app/_appSlug.js +0 -18
  917. package/dist/esm/routes/_layout/app/_appSlug.js.map +0 -1
  918. package/dist/esm/routes/_layout/env/$envSlug/app/$appSlug/sub/$subValue.d.ts +0 -1
  919. package/dist/esm/routes/_layout/env/$envSlug/app/$appSlug.d.ts +0 -1
  920. package/dist/esm/routes/_layout/env/$envSlug/sub/$subValue.d.ts +0 -1
  921. package/dist/esm/routes/_layout/env/$envSlug.d.ts +0 -1
  922. package/dist/esm/routes/_layout/env/_envSlug/app/_appSlug/sub/_subValue.js +0 -20
  923. package/dist/esm/routes/_layout/env/_envSlug/app/_appSlug/sub/_subValue.js.map +0 -1
  924. package/dist/esm/routes/_layout/env/_envSlug/app/_appSlug.js +0 -18
  925. package/dist/esm/routes/_layout/env/_envSlug/app/_appSlug.js.map +0 -1
  926. package/dist/esm/routes/_layout/env/_envSlug/sub/_subValue.js +0 -18
  927. package/dist/esm/routes/_layout/env/_envSlug/sub/_subValue.js.map +0 -1
  928. package/dist/esm/routes/_layout/env/_envSlug.js +0 -18
  929. package/dist/esm/routes/_layout/env/_envSlug.js.map +0 -1
  930. package/dist/esm/ui/components/commandInput/EhBaseSelector.js +0 -22
  931. package/dist/esm/ui/components/commandInput/EhBaseSelector.js.map +0 -1
  932. package/dist/esm/ui/components/controlPanel/BaseDropdownSelector.d.ts +0 -11
  933. package/dist/esm/ui/components/controlPanel/env/EnvDropdownContent.d.ts +0 -5
  934. package/dist/esm/ui/components/controlPanel/env/EnvDropdownSelector.d.ts +0 -1
  935. package/dist/esm/ui/components/error/RooutErrorPage.d.ts +0 -2
  936. package/dist/esm/ui/components/error/RooutErrorPage.js +0 -12
  937. package/dist/esm/ui/components/error/RooutErrorPage.js.map +0 -1
  938. package/dist/esm/ui/components/header/PlaygroundHeader.d.ts +0 -1
  939. package/dist/esm/ui/components/header/PlaygroundHeader.js +0 -23
  940. package/dist/esm/ui/components/header/PlaygroundHeader.js.map +0 -1
  941. package/dist/esm/ui/components/leftPanel/LeftPanel.d.ts +0 -5
  942. package/dist/esm/ui/components/quickBar/EnvQuickJumpBar.d.ts +0 -5
  943. package/dist/esm/ui/components/quickBar/EnvQuickJumpBar.js +0 -52
  944. package/dist/esm/ui/components/quickBar/EnvQuickJumpBar.js.map +0 -1
  945. package/dist/esm/ui/layout/Header.d.ts +0 -1
  946. package/dist/esm/util/availabilityMatrixUtils.js +0 -57
  947. package/dist/esm/util/availabilityMatrixUtils.js.map +0 -1
  948. package/dist/esm/util/highlightMatches.js +0 -19
  949. package/dist/esm/util/highlightMatches.js.map +0 -1
  950. package/src/components/ui/breadcrumb.tsx +0 -128
  951. package/src/components/ui/button.tsx +0 -60
  952. package/src/components/ui/card.tsx +0 -95
  953. package/src/components/ui/input.tsx +0 -28
  954. package/src/modules/environment/ui/EhEnvSelector.tsx +0 -191
  955. package/src/modules/resourceJump/ApiQueryMagazineResourceJump.ts +0 -31
  956. package/src/modules/resourceJump/ResourceJumpContext.tsx +0 -142
  957. package/src/modules/resourceJump/buildJumpUrl.ts +0 -40
  958. package/src/modules/resourceJump/ui/EhJumpResourceSelector.tsx +0 -259
  959. package/src/modules/resourceJump/ui/ResouceJumpLayout.tsx +0 -73
  960. package/src/plugins/builtin/pageUrl/PageUrlPluginContext.tsx +0 -55
  961. package/src/plugins/builtin/pageUrl/pageUrlJumpPlugin.ts +0 -36
  962. package/src/routes/_layout/app/$appSlug/sub/$subValue.tsx +0 -15
  963. package/src/routes/_layout/app/$appSlug.tsx +0 -15
  964. package/src/routes/_layout/env/$envSlug/app/$appSlug/sub/$subValue.tsx +0 -17
  965. package/src/routes/_layout/env/$envSlug/app/$appSlug.tsx +0 -15
  966. package/src/routes/_layout/env/$envSlug/sub/$subValue.tsx +0 -15
  967. package/src/routes/_layout/env/$envSlug.tsx +0 -15
  968. package/src/ui/components/controlPanel/BaseDropdownSelector.tsx +0 -163
  969. package/src/ui/components/controlPanel/env/EnvDropdownContent.tsx +0 -114
  970. package/src/ui/components/controlPanel/env/EnvDropdownSelector.tsx +0 -21
  971. package/src/ui/components/header/PlaygroundHeader.tsx +0 -26
  972. package/src/ui/components/leftPanel/LeftPanel.tsx +0 -194
  973. package/src/ui/components/quickBar/EnvQuickJumpBar.tsx +0 -65
  974. package/src/ui/layout/Header.tsx +0 -14
  975. /package/dist/esm/{components/ui → ui}/badge.d.ts +0 -0
  976. /package/dist/esm/{components/ui → ui}/popover.d.ts +0 -0
  977. /package/dist/esm/{components/ui → ui}/scroll-area.d.ts +0 -0
  978. /package/dist/esm/{components/ui → ui}/separator.d.ts +0 -0
  979. /package/dist/esm/{components/ui → ui}/tabs.d.ts +0 -0
  980. /package/dist/{apple-touch-180x180.png → public/apple-touch-180x180.png} +0 -0
  981. /package/dist/{env-hopper-16x16.png → public/env-hopper-16x16.png} +0 -0
  982. /package/dist/{env-hopper-192x192.png → public/env-hopper-192x192.png} +0 -0
  983. /package/dist/{env-hopper-32x32.png → public/env-hopper-32x32.png} +0 -0
  984. /package/dist/{env-hopper-48x48.png → public/env-hopper-48x48.png} +0 -0
  985. /package/dist/{env-hopper-512x512.png → public/env-hopper-512x512.png} +0 -0
  986. /package/dist/{env-hopper-square.svg → public/env-hopper-square.svg} +0 -0
  987. /package/dist/{favicon.ico → public/favicon.ico} +0 -0
  988. /package/dist/{robots.txt → public/robots.txt} +0 -0
  989. /package/src/{components/ui → ui}/popover.tsx +0 -0
  990. /package/src/{components/ui → ui}/scroll-area.tsx +0 -0
  991. /package/src/{components/ui → ui}/separator.tsx +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core.esm.js","sources":["../../../../../../../../../../../node_modules/.pnpm/@dnd-kit+core@6.3.1_react-dom@19.1.2_react@19.1.2__react@19.1.2/node_modules/@dnd-kit/core/dist/core.esm.js"],"sourcesContent":["import React, { createContext, useContext, useEffect, useState, useCallback, useMemo, useRef, memo, useReducer, cloneElement, forwardRef } from 'react';\nimport { createPortal, unstable_batchedUpdates } from 'react-dom';\nimport { useUniqueId, getEventCoordinates, getWindow, isDocument, isHTMLElement, isSVGElement, canUseDOM, isWindow, isNode, getOwnerDocument, add, isKeyboardEvent, subtract, useLazyMemo, useInterval, usePrevious, useLatestValue, useEvent, useIsomorphicLayoutEffect, useNodeRef, findFirstFocusableNode, CSS } from '@dnd-kit/utilities';\nimport { useAnnouncement, HiddenText, LiveRegion } from '@dnd-kit/accessibility';\n\nconst DndMonitorContext = /*#__PURE__*/createContext(null);\n\nfunction useDndMonitor(listener) {\n const registerListener = useContext(DndMonitorContext);\n useEffect(() => {\n if (!registerListener) {\n throw new Error('useDndMonitor must be used within a children of <DndContext>');\n }\n\n const unsubscribe = registerListener(listener);\n return unsubscribe;\n }, [listener, registerListener]);\n}\n\nfunction useDndMonitorProvider() {\n const [listeners] = useState(() => new Set());\n const registerListener = useCallback(listener => {\n listeners.add(listener);\n return () => listeners.delete(listener);\n }, [listeners]);\n const dispatch = useCallback(_ref => {\n let {\n type,\n event\n } = _ref;\n listeners.forEach(listener => {\n var _listener$type;\n\n return (_listener$type = listener[type]) == null ? void 0 : _listener$type.call(listener, event);\n });\n }, [listeners]);\n return [dispatch, registerListener];\n}\n\nconst defaultScreenReaderInstructions = {\n draggable: \"\\n To pick up a draggable item, press the space bar.\\n While dragging, use the arrow keys to move the item.\\n Press space again to drop the item in its new position, or press escape to cancel.\\n \"\n};\nconst defaultAnnouncements = {\n onDragStart(_ref) {\n let {\n active\n } = _ref;\n return \"Picked up draggable item \" + active.id + \".\";\n },\n\n onDragOver(_ref2) {\n let {\n active,\n over\n } = _ref2;\n\n if (over) {\n return \"Draggable item \" + active.id + \" was moved over droppable area \" + over.id + \".\";\n }\n\n return \"Draggable item \" + active.id + \" is no longer over a droppable area.\";\n },\n\n onDragEnd(_ref3) {\n let {\n active,\n over\n } = _ref3;\n\n if (over) {\n return \"Draggable item \" + active.id + \" was dropped over droppable area \" + over.id;\n }\n\n return \"Draggable item \" + active.id + \" was dropped.\";\n },\n\n onDragCancel(_ref4) {\n let {\n active\n } = _ref4;\n return \"Dragging was cancelled. Draggable item \" + active.id + \" was dropped.\";\n }\n\n};\n\nfunction Accessibility(_ref) {\n let {\n announcements = defaultAnnouncements,\n container,\n hiddenTextDescribedById,\n screenReaderInstructions = defaultScreenReaderInstructions\n } = _ref;\n const {\n announce,\n announcement\n } = useAnnouncement();\n const liveRegionId = useUniqueId(\"DndLiveRegion\");\n const [mounted, setMounted] = useState(false);\n useEffect(() => {\n setMounted(true);\n }, []);\n useDndMonitor(useMemo(() => ({\n onDragStart(_ref2) {\n let {\n active\n } = _ref2;\n announce(announcements.onDragStart({\n active\n }));\n },\n\n onDragMove(_ref3) {\n let {\n active,\n over\n } = _ref3;\n\n if (announcements.onDragMove) {\n announce(announcements.onDragMove({\n active,\n over\n }));\n }\n },\n\n onDragOver(_ref4) {\n let {\n active,\n over\n } = _ref4;\n announce(announcements.onDragOver({\n active,\n over\n }));\n },\n\n onDragEnd(_ref5) {\n let {\n active,\n over\n } = _ref5;\n announce(announcements.onDragEnd({\n active,\n over\n }));\n },\n\n onDragCancel(_ref6) {\n let {\n active,\n over\n } = _ref6;\n announce(announcements.onDragCancel({\n active,\n over\n }));\n }\n\n }), [announce, announcements]));\n\n if (!mounted) {\n return null;\n }\n\n const markup = React.createElement(React.Fragment, null, React.createElement(HiddenText, {\n id: hiddenTextDescribedById,\n value: screenReaderInstructions.draggable\n }), React.createElement(LiveRegion, {\n id: liveRegionId,\n announcement: announcement\n }));\n return container ? createPortal(markup, container) : markup;\n}\n\nvar Action;\n\n(function (Action) {\n Action[\"DragStart\"] = \"dragStart\";\n Action[\"DragMove\"] = \"dragMove\";\n Action[\"DragEnd\"] = \"dragEnd\";\n Action[\"DragCancel\"] = \"dragCancel\";\n Action[\"DragOver\"] = \"dragOver\";\n Action[\"RegisterDroppable\"] = \"registerDroppable\";\n Action[\"SetDroppableDisabled\"] = \"setDroppableDisabled\";\n Action[\"UnregisterDroppable\"] = \"unregisterDroppable\";\n})(Action || (Action = {}));\n\nfunction noop() {}\n\nfunction useSensor(sensor, options) {\n return useMemo(() => ({\n sensor,\n options: options != null ? options : {}\n }), // eslint-disable-next-line react-hooks/exhaustive-deps\n [sensor, options]);\n}\n\nfunction useSensors() {\n for (var _len = arguments.length, sensors = new Array(_len), _key = 0; _key < _len; _key++) {\n sensors[_key] = arguments[_key];\n }\n\n return useMemo(() => [...sensors].filter(sensor => sensor != null), // eslint-disable-next-line react-hooks/exhaustive-deps\n [...sensors]);\n}\n\nconst defaultCoordinates = /*#__PURE__*/Object.freeze({\n x: 0,\n y: 0\n});\n\n/**\r\n * Returns the distance between two points\r\n */\nfunction distanceBetween(p1, p2) {\n return Math.sqrt(Math.pow(p1.x - p2.x, 2) + Math.pow(p1.y - p2.y, 2));\n}\n\nfunction getRelativeTransformOrigin(event, rect) {\n const eventCoordinates = getEventCoordinates(event);\n\n if (!eventCoordinates) {\n return '0 0';\n }\n\n const transformOrigin = {\n x: (eventCoordinates.x - rect.left) / rect.width * 100,\n y: (eventCoordinates.y - rect.top) / rect.height * 100\n };\n return transformOrigin.x + \"% \" + transformOrigin.y + \"%\";\n}\n\n/**\r\n * Sort collisions from smallest to greatest value\r\n */\nfunction sortCollisionsAsc(_ref, _ref2) {\n let {\n data: {\n value: a\n }\n } = _ref;\n let {\n data: {\n value: b\n }\n } = _ref2;\n return a - b;\n}\n/**\r\n * Sort collisions from greatest to smallest value\r\n */\n\nfunction sortCollisionsDesc(_ref3, _ref4) {\n let {\n data: {\n value: a\n }\n } = _ref3;\n let {\n data: {\n value: b\n }\n } = _ref4;\n return b - a;\n}\n/**\r\n * Returns the coordinates of the corners of a given rectangle:\r\n * [TopLeft {x, y}, TopRight {x, y}, BottomLeft {x, y}, BottomRight {x, y}]\r\n */\n\nfunction cornersOfRectangle(_ref5) {\n let {\n left,\n top,\n height,\n width\n } = _ref5;\n return [{\n x: left,\n y: top\n }, {\n x: left + width,\n y: top\n }, {\n x: left,\n y: top + height\n }, {\n x: left + width,\n y: top + height\n }];\n}\nfunction getFirstCollision(collisions, property) {\n if (!collisions || collisions.length === 0) {\n return null;\n }\n\n const [firstCollision] = collisions;\n return property ? firstCollision[property] : firstCollision;\n}\n\n/**\r\n * Returns the coordinates of the center of a given ClientRect\r\n */\n\nfunction centerOfRectangle(rect, left, top) {\n if (left === void 0) {\n left = rect.left;\n }\n\n if (top === void 0) {\n top = rect.top;\n }\n\n return {\n x: left + rect.width * 0.5,\n y: top + rect.height * 0.5\n };\n}\n/**\r\n * Returns the closest rectangles from an array of rectangles to the center of a given\r\n * rectangle.\r\n */\n\n\nconst closestCenter = _ref => {\n let {\n collisionRect,\n droppableRects,\n droppableContainers\n } = _ref;\n const centerRect = centerOfRectangle(collisionRect, collisionRect.left, collisionRect.top);\n const collisions = [];\n\n for (const droppableContainer of droppableContainers) {\n const {\n id\n } = droppableContainer;\n const rect = droppableRects.get(id);\n\n if (rect) {\n const distBetween = distanceBetween(centerOfRectangle(rect), centerRect);\n collisions.push({\n id,\n data: {\n droppableContainer,\n value: distBetween\n }\n });\n }\n }\n\n return collisions.sort(sortCollisionsAsc);\n};\n\n/**\r\n * Returns the closest rectangles from an array of rectangles to the corners of\r\n * another rectangle.\r\n */\n\nconst closestCorners = _ref => {\n let {\n collisionRect,\n droppableRects,\n droppableContainers\n } = _ref;\n const corners = cornersOfRectangle(collisionRect);\n const collisions = [];\n\n for (const droppableContainer of droppableContainers) {\n const {\n id\n } = droppableContainer;\n const rect = droppableRects.get(id);\n\n if (rect) {\n const rectCorners = cornersOfRectangle(rect);\n const distances = corners.reduce((accumulator, corner, index) => {\n return accumulator + distanceBetween(rectCorners[index], corner);\n }, 0);\n const effectiveDistance = Number((distances / 4).toFixed(4));\n collisions.push({\n id,\n data: {\n droppableContainer,\n value: effectiveDistance\n }\n });\n }\n }\n\n return collisions.sort(sortCollisionsAsc);\n};\n\n/**\r\n * Returns the intersecting rectangle area between two rectangles\r\n */\n\nfunction getIntersectionRatio(entry, target) {\n const top = Math.max(target.top, entry.top);\n const left = Math.max(target.left, entry.left);\n const right = Math.min(target.left + target.width, entry.left + entry.width);\n const bottom = Math.min(target.top + target.height, entry.top + entry.height);\n const width = right - left;\n const height = bottom - top;\n\n if (left < right && top < bottom) {\n const targetArea = target.width * target.height;\n const entryArea = entry.width * entry.height;\n const intersectionArea = width * height;\n const intersectionRatio = intersectionArea / (targetArea + entryArea - intersectionArea);\n return Number(intersectionRatio.toFixed(4));\n } // Rectangles do not overlap, or overlap has an area of zero (edge/corner overlap)\n\n\n return 0;\n}\n/**\r\n * Returns the rectangles that has the greatest intersection area with a given\r\n * rectangle in an array of rectangles.\r\n */\n\nconst rectIntersection = _ref => {\n let {\n collisionRect,\n droppableRects,\n droppableContainers\n } = _ref;\n const collisions = [];\n\n for (const droppableContainer of droppableContainers) {\n const {\n id\n } = droppableContainer;\n const rect = droppableRects.get(id);\n\n if (rect) {\n const intersectionRatio = getIntersectionRatio(rect, collisionRect);\n\n if (intersectionRatio > 0) {\n collisions.push({\n id,\n data: {\n droppableContainer,\n value: intersectionRatio\n }\n });\n }\n }\n }\n\n return collisions.sort(sortCollisionsDesc);\n};\n\n/**\r\n * Check if a given point is contained within a bounding rectangle\r\n */\n\nfunction isPointWithinRect(point, rect) {\n const {\n top,\n left,\n bottom,\n right\n } = rect;\n return top <= point.y && point.y <= bottom && left <= point.x && point.x <= right;\n}\n/**\r\n * Returns the rectangles that the pointer is hovering over\r\n */\n\n\nconst pointerWithin = _ref => {\n let {\n droppableContainers,\n droppableRects,\n pointerCoordinates\n } = _ref;\n\n if (!pointerCoordinates) {\n return [];\n }\n\n const collisions = [];\n\n for (const droppableContainer of droppableContainers) {\n const {\n id\n } = droppableContainer;\n const rect = droppableRects.get(id);\n\n if (rect && isPointWithinRect(pointerCoordinates, rect)) {\n /* There may be more than a single rectangle intersecting\r\n * with the pointer coordinates. In order to sort the\r\n * colliding rectangles, we measure the distance between\r\n * the pointer and the corners of the intersecting rectangle\r\n */\n const corners = cornersOfRectangle(rect);\n const distances = corners.reduce((accumulator, corner) => {\n return accumulator + distanceBetween(pointerCoordinates, corner);\n }, 0);\n const effectiveDistance = Number((distances / 4).toFixed(4));\n collisions.push({\n id,\n data: {\n droppableContainer,\n value: effectiveDistance\n }\n });\n }\n }\n\n return collisions.sort(sortCollisionsAsc);\n};\n\nfunction adjustScale(transform, rect1, rect2) {\n return { ...transform,\n scaleX: rect1 && rect2 ? rect1.width / rect2.width : 1,\n scaleY: rect1 && rect2 ? rect1.height / rect2.height : 1\n };\n}\n\nfunction getRectDelta(rect1, rect2) {\n return rect1 && rect2 ? {\n x: rect1.left - rect2.left,\n y: rect1.top - rect2.top\n } : defaultCoordinates;\n}\n\nfunction createRectAdjustmentFn(modifier) {\n return function adjustClientRect(rect) {\n for (var _len = arguments.length, adjustments = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n adjustments[_key - 1] = arguments[_key];\n }\n\n return adjustments.reduce((acc, adjustment) => ({ ...acc,\n top: acc.top + modifier * adjustment.y,\n bottom: acc.bottom + modifier * adjustment.y,\n left: acc.left + modifier * adjustment.x,\n right: acc.right + modifier * adjustment.x\n }), { ...rect\n });\n };\n}\nconst getAdjustedRect = /*#__PURE__*/createRectAdjustmentFn(1);\n\nfunction parseTransform(transform) {\n if (transform.startsWith('matrix3d(')) {\n const transformArray = transform.slice(9, -1).split(/, /);\n return {\n x: +transformArray[12],\n y: +transformArray[13],\n scaleX: +transformArray[0],\n scaleY: +transformArray[5]\n };\n } else if (transform.startsWith('matrix(')) {\n const transformArray = transform.slice(7, -1).split(/, /);\n return {\n x: +transformArray[4],\n y: +transformArray[5],\n scaleX: +transformArray[0],\n scaleY: +transformArray[3]\n };\n }\n\n return null;\n}\n\nfunction inverseTransform(rect, transform, transformOrigin) {\n const parsedTransform = parseTransform(transform);\n\n if (!parsedTransform) {\n return rect;\n }\n\n const {\n scaleX,\n scaleY,\n x: translateX,\n y: translateY\n } = parsedTransform;\n const x = rect.left - translateX - (1 - scaleX) * parseFloat(transformOrigin);\n const y = rect.top - translateY - (1 - scaleY) * parseFloat(transformOrigin.slice(transformOrigin.indexOf(' ') + 1));\n const w = scaleX ? rect.width / scaleX : rect.width;\n const h = scaleY ? rect.height / scaleY : rect.height;\n return {\n width: w,\n height: h,\n top: y,\n right: x + w,\n bottom: y + h,\n left: x\n };\n}\n\nconst defaultOptions = {\n ignoreTransform: false\n};\n/**\r\n * Returns the bounding client rect of an element relative to the viewport.\r\n */\n\nfunction getClientRect(element, options) {\n if (options === void 0) {\n options = defaultOptions;\n }\n\n let rect = element.getBoundingClientRect();\n\n if (options.ignoreTransform) {\n const {\n transform,\n transformOrigin\n } = getWindow(element).getComputedStyle(element);\n\n if (transform) {\n rect = inverseTransform(rect, transform, transformOrigin);\n }\n }\n\n const {\n top,\n left,\n width,\n height,\n bottom,\n right\n } = rect;\n return {\n top,\n left,\n width,\n height,\n bottom,\n right\n };\n}\n/**\r\n * Returns the bounding client rect of an element relative to the viewport.\r\n *\r\n * @remarks\r\n * The ClientRect returned by this method does not take into account transforms\r\n * applied to the element it measures.\r\n *\r\n */\n\nfunction getTransformAgnosticClientRect(element) {\n return getClientRect(element, {\n ignoreTransform: true\n });\n}\n\nfunction getWindowClientRect(element) {\n const width = element.innerWidth;\n const height = element.innerHeight;\n return {\n top: 0,\n left: 0,\n right: width,\n bottom: height,\n width,\n height\n };\n}\n\nfunction isFixed(node, computedStyle) {\n if (computedStyle === void 0) {\n computedStyle = getWindow(node).getComputedStyle(node);\n }\n\n return computedStyle.position === 'fixed';\n}\n\nfunction isScrollable(element, computedStyle) {\n if (computedStyle === void 0) {\n computedStyle = getWindow(element).getComputedStyle(element);\n }\n\n const overflowRegex = /(auto|scroll|overlay)/;\n const properties = ['overflow', 'overflowX', 'overflowY'];\n return properties.some(property => {\n const value = computedStyle[property];\n return typeof value === 'string' ? overflowRegex.test(value) : false;\n });\n}\n\nfunction getScrollableAncestors(element, limit) {\n const scrollParents = [];\n\n function findScrollableAncestors(node) {\n if (limit != null && scrollParents.length >= limit) {\n return scrollParents;\n }\n\n if (!node) {\n return scrollParents;\n }\n\n if (isDocument(node) && node.scrollingElement != null && !scrollParents.includes(node.scrollingElement)) {\n scrollParents.push(node.scrollingElement);\n return scrollParents;\n }\n\n if (!isHTMLElement(node) || isSVGElement(node)) {\n return scrollParents;\n }\n\n if (scrollParents.includes(node)) {\n return scrollParents;\n }\n\n const computedStyle = getWindow(element).getComputedStyle(node);\n\n if (node !== element) {\n if (isScrollable(node, computedStyle)) {\n scrollParents.push(node);\n }\n }\n\n if (isFixed(node, computedStyle)) {\n return scrollParents;\n }\n\n return findScrollableAncestors(node.parentNode);\n }\n\n if (!element) {\n return scrollParents;\n }\n\n return findScrollableAncestors(element);\n}\nfunction getFirstScrollableAncestor(node) {\n const [firstScrollableAncestor] = getScrollableAncestors(node, 1);\n return firstScrollableAncestor != null ? firstScrollableAncestor : null;\n}\n\nfunction getScrollableElement(element) {\n if (!canUseDOM || !element) {\n return null;\n }\n\n if (isWindow(element)) {\n return element;\n }\n\n if (!isNode(element)) {\n return null;\n }\n\n if (isDocument(element) || element === getOwnerDocument(element).scrollingElement) {\n return window;\n }\n\n if (isHTMLElement(element)) {\n return element;\n }\n\n return null;\n}\n\nfunction getScrollXCoordinate(element) {\n if (isWindow(element)) {\n return element.scrollX;\n }\n\n return element.scrollLeft;\n}\nfunction getScrollYCoordinate(element) {\n if (isWindow(element)) {\n return element.scrollY;\n }\n\n return element.scrollTop;\n}\nfunction getScrollCoordinates(element) {\n return {\n x: getScrollXCoordinate(element),\n y: getScrollYCoordinate(element)\n };\n}\n\nvar Direction;\n\n(function (Direction) {\n Direction[Direction[\"Forward\"] = 1] = \"Forward\";\n Direction[Direction[\"Backward\"] = -1] = \"Backward\";\n})(Direction || (Direction = {}));\n\nfunction isDocumentScrollingElement(element) {\n if (!canUseDOM || !element) {\n return false;\n }\n\n return element === document.scrollingElement;\n}\n\nfunction getScrollPosition(scrollingContainer) {\n const minScroll = {\n x: 0,\n y: 0\n };\n const dimensions = isDocumentScrollingElement(scrollingContainer) ? {\n height: window.innerHeight,\n width: window.innerWidth\n } : {\n height: scrollingContainer.clientHeight,\n width: scrollingContainer.clientWidth\n };\n const maxScroll = {\n x: scrollingContainer.scrollWidth - dimensions.width,\n y: scrollingContainer.scrollHeight - dimensions.height\n };\n const isTop = scrollingContainer.scrollTop <= minScroll.y;\n const isLeft = scrollingContainer.scrollLeft <= minScroll.x;\n const isBottom = scrollingContainer.scrollTop >= maxScroll.y;\n const isRight = scrollingContainer.scrollLeft >= maxScroll.x;\n return {\n isTop,\n isLeft,\n isBottom,\n isRight,\n maxScroll,\n minScroll\n };\n}\n\nconst defaultThreshold = {\n x: 0.2,\n y: 0.2\n};\nfunction getScrollDirectionAndSpeed(scrollContainer, scrollContainerRect, _ref, acceleration, thresholdPercentage) {\n let {\n top,\n left,\n right,\n bottom\n } = _ref;\n\n if (acceleration === void 0) {\n acceleration = 10;\n }\n\n if (thresholdPercentage === void 0) {\n thresholdPercentage = defaultThreshold;\n }\n\n const {\n isTop,\n isBottom,\n isLeft,\n isRight\n } = getScrollPosition(scrollContainer);\n const direction = {\n x: 0,\n y: 0\n };\n const speed = {\n x: 0,\n y: 0\n };\n const threshold = {\n height: scrollContainerRect.height * thresholdPercentage.y,\n width: scrollContainerRect.width * thresholdPercentage.x\n };\n\n if (!isTop && top <= scrollContainerRect.top + threshold.height) {\n // Scroll Up\n direction.y = Direction.Backward;\n speed.y = acceleration * Math.abs((scrollContainerRect.top + threshold.height - top) / threshold.height);\n } else if (!isBottom && bottom >= scrollContainerRect.bottom - threshold.height) {\n // Scroll Down\n direction.y = Direction.Forward;\n speed.y = acceleration * Math.abs((scrollContainerRect.bottom - threshold.height - bottom) / threshold.height);\n }\n\n if (!isRight && right >= scrollContainerRect.right - threshold.width) {\n // Scroll Right\n direction.x = Direction.Forward;\n speed.x = acceleration * Math.abs((scrollContainerRect.right - threshold.width - right) / threshold.width);\n } else if (!isLeft && left <= scrollContainerRect.left + threshold.width) {\n // Scroll Left\n direction.x = Direction.Backward;\n speed.x = acceleration * Math.abs((scrollContainerRect.left + threshold.width - left) / threshold.width);\n }\n\n return {\n direction,\n speed\n };\n}\n\nfunction getScrollElementRect(element) {\n if (element === document.scrollingElement) {\n const {\n innerWidth,\n innerHeight\n } = window;\n return {\n top: 0,\n left: 0,\n right: innerWidth,\n bottom: innerHeight,\n width: innerWidth,\n height: innerHeight\n };\n }\n\n const {\n top,\n left,\n right,\n bottom\n } = element.getBoundingClientRect();\n return {\n top,\n left,\n right,\n bottom,\n width: element.clientWidth,\n height: element.clientHeight\n };\n}\n\nfunction getScrollOffsets(scrollableAncestors) {\n return scrollableAncestors.reduce((acc, node) => {\n return add(acc, getScrollCoordinates(node));\n }, defaultCoordinates);\n}\nfunction getScrollXOffset(scrollableAncestors) {\n return scrollableAncestors.reduce((acc, node) => {\n return acc + getScrollXCoordinate(node);\n }, 0);\n}\nfunction getScrollYOffset(scrollableAncestors) {\n return scrollableAncestors.reduce((acc, node) => {\n return acc + getScrollYCoordinate(node);\n }, 0);\n}\n\nfunction scrollIntoViewIfNeeded(element, measure) {\n if (measure === void 0) {\n measure = getClientRect;\n }\n\n if (!element) {\n return;\n }\n\n const {\n top,\n left,\n bottom,\n right\n } = measure(element);\n const firstScrollableAncestor = getFirstScrollableAncestor(element);\n\n if (!firstScrollableAncestor) {\n return;\n }\n\n if (bottom <= 0 || right <= 0 || top >= window.innerHeight || left >= window.innerWidth) {\n element.scrollIntoView({\n block: 'center',\n inline: 'center'\n });\n }\n}\n\nconst properties = [['x', ['left', 'right'], getScrollXOffset], ['y', ['top', 'bottom'], getScrollYOffset]];\nclass Rect {\n constructor(rect, element) {\n this.rect = void 0;\n this.width = void 0;\n this.height = void 0;\n this.top = void 0;\n this.bottom = void 0;\n this.right = void 0;\n this.left = void 0;\n const scrollableAncestors = getScrollableAncestors(element);\n const scrollOffsets = getScrollOffsets(scrollableAncestors);\n this.rect = { ...rect\n };\n this.width = rect.width;\n this.height = rect.height;\n\n for (const [axis, keys, getScrollOffset] of properties) {\n for (const key of keys) {\n Object.defineProperty(this, key, {\n get: () => {\n const currentOffsets = getScrollOffset(scrollableAncestors);\n const scrollOffsetsDeltla = scrollOffsets[axis] - currentOffsets;\n return this.rect[key] + scrollOffsetsDeltla;\n },\n enumerable: true\n });\n }\n }\n\n Object.defineProperty(this, 'rect', {\n enumerable: false\n });\n }\n\n}\n\nclass Listeners {\n constructor(target) {\n this.target = void 0;\n this.listeners = [];\n\n this.removeAll = () => {\n this.listeners.forEach(listener => {\n var _this$target;\n\n return (_this$target = this.target) == null ? void 0 : _this$target.removeEventListener(...listener);\n });\n };\n\n this.target = target;\n }\n\n add(eventName, handler, options) {\n var _this$target2;\n\n (_this$target2 = this.target) == null ? void 0 : _this$target2.addEventListener(eventName, handler, options);\n this.listeners.push([eventName, handler, options]);\n }\n\n}\n\nfunction getEventListenerTarget(target) {\n // If the `event.target` element is removed from the document events will still be targeted\n // at it, and hence won't always bubble up to the window or document anymore.\n // If there is any risk of an element being removed while it is being dragged,\n // the best practice is to attach the event listeners directly to the target.\n // https://developer.mozilla.org/en-US/docs/Web/API/EventTarget\n const {\n EventTarget\n } = getWindow(target);\n return target instanceof EventTarget ? target : getOwnerDocument(target);\n}\n\nfunction hasExceededDistance(delta, measurement) {\n const dx = Math.abs(delta.x);\n const dy = Math.abs(delta.y);\n\n if (typeof measurement === 'number') {\n return Math.sqrt(dx ** 2 + dy ** 2) > measurement;\n }\n\n if ('x' in measurement && 'y' in measurement) {\n return dx > measurement.x && dy > measurement.y;\n }\n\n if ('x' in measurement) {\n return dx > measurement.x;\n }\n\n if ('y' in measurement) {\n return dy > measurement.y;\n }\n\n return false;\n}\n\nvar EventName;\n\n(function (EventName) {\n EventName[\"Click\"] = \"click\";\n EventName[\"DragStart\"] = \"dragstart\";\n EventName[\"Keydown\"] = \"keydown\";\n EventName[\"ContextMenu\"] = \"contextmenu\";\n EventName[\"Resize\"] = \"resize\";\n EventName[\"SelectionChange\"] = \"selectionchange\";\n EventName[\"VisibilityChange\"] = \"visibilitychange\";\n})(EventName || (EventName = {}));\n\nfunction preventDefault(event) {\n event.preventDefault();\n}\nfunction stopPropagation(event) {\n event.stopPropagation();\n}\n\nvar KeyboardCode;\n\n(function (KeyboardCode) {\n KeyboardCode[\"Space\"] = \"Space\";\n KeyboardCode[\"Down\"] = \"ArrowDown\";\n KeyboardCode[\"Right\"] = \"ArrowRight\";\n KeyboardCode[\"Left\"] = \"ArrowLeft\";\n KeyboardCode[\"Up\"] = \"ArrowUp\";\n KeyboardCode[\"Esc\"] = \"Escape\";\n KeyboardCode[\"Enter\"] = \"Enter\";\n KeyboardCode[\"Tab\"] = \"Tab\";\n})(KeyboardCode || (KeyboardCode = {}));\n\nconst defaultKeyboardCodes = {\n start: [KeyboardCode.Space, KeyboardCode.Enter],\n cancel: [KeyboardCode.Esc],\n end: [KeyboardCode.Space, KeyboardCode.Enter, KeyboardCode.Tab]\n};\nconst defaultKeyboardCoordinateGetter = (event, _ref) => {\n let {\n currentCoordinates\n } = _ref;\n\n switch (event.code) {\n case KeyboardCode.Right:\n return { ...currentCoordinates,\n x: currentCoordinates.x + 25\n };\n\n case KeyboardCode.Left:\n return { ...currentCoordinates,\n x: currentCoordinates.x - 25\n };\n\n case KeyboardCode.Down:\n return { ...currentCoordinates,\n y: currentCoordinates.y + 25\n };\n\n case KeyboardCode.Up:\n return { ...currentCoordinates,\n y: currentCoordinates.y - 25\n };\n }\n\n return undefined;\n};\n\nclass KeyboardSensor {\n constructor(props) {\n this.props = void 0;\n this.autoScrollEnabled = false;\n this.referenceCoordinates = void 0;\n this.listeners = void 0;\n this.windowListeners = void 0;\n this.props = props;\n const {\n event: {\n target\n }\n } = props;\n this.props = props;\n this.listeners = new Listeners(getOwnerDocument(target));\n this.windowListeners = new Listeners(getWindow(target));\n this.handleKeyDown = this.handleKeyDown.bind(this);\n this.handleCancel = this.handleCancel.bind(this);\n this.attach();\n }\n\n attach() {\n this.handleStart();\n this.windowListeners.add(EventName.Resize, this.handleCancel);\n this.windowListeners.add(EventName.VisibilityChange, this.handleCancel);\n setTimeout(() => this.listeners.add(EventName.Keydown, this.handleKeyDown));\n }\n\n handleStart() {\n const {\n activeNode,\n onStart\n } = this.props;\n const node = activeNode.node.current;\n\n if (node) {\n scrollIntoViewIfNeeded(node);\n }\n\n onStart(defaultCoordinates);\n }\n\n handleKeyDown(event) {\n if (isKeyboardEvent(event)) {\n const {\n active,\n context,\n options\n } = this.props;\n const {\n keyboardCodes = defaultKeyboardCodes,\n coordinateGetter = defaultKeyboardCoordinateGetter,\n scrollBehavior = 'smooth'\n } = options;\n const {\n code\n } = event;\n\n if (keyboardCodes.end.includes(code)) {\n this.handleEnd(event);\n return;\n }\n\n if (keyboardCodes.cancel.includes(code)) {\n this.handleCancel(event);\n return;\n }\n\n const {\n collisionRect\n } = context.current;\n const currentCoordinates = collisionRect ? {\n x: collisionRect.left,\n y: collisionRect.top\n } : defaultCoordinates;\n\n if (!this.referenceCoordinates) {\n this.referenceCoordinates = currentCoordinates;\n }\n\n const newCoordinates = coordinateGetter(event, {\n active,\n context: context.current,\n currentCoordinates\n });\n\n if (newCoordinates) {\n const coordinatesDelta = subtract(newCoordinates, currentCoordinates);\n const scrollDelta = {\n x: 0,\n y: 0\n };\n const {\n scrollableAncestors\n } = context.current;\n\n for (const scrollContainer of scrollableAncestors) {\n const direction = event.code;\n const {\n isTop,\n isRight,\n isLeft,\n isBottom,\n maxScroll,\n minScroll\n } = getScrollPosition(scrollContainer);\n const scrollElementRect = getScrollElementRect(scrollContainer);\n const clampedCoordinates = {\n x: Math.min(direction === KeyboardCode.Right ? scrollElementRect.right - scrollElementRect.width / 2 : scrollElementRect.right, Math.max(direction === KeyboardCode.Right ? scrollElementRect.left : scrollElementRect.left + scrollElementRect.width / 2, newCoordinates.x)),\n y: Math.min(direction === KeyboardCode.Down ? scrollElementRect.bottom - scrollElementRect.height / 2 : scrollElementRect.bottom, Math.max(direction === KeyboardCode.Down ? scrollElementRect.top : scrollElementRect.top + scrollElementRect.height / 2, newCoordinates.y))\n };\n const canScrollX = direction === KeyboardCode.Right && !isRight || direction === KeyboardCode.Left && !isLeft;\n const canScrollY = direction === KeyboardCode.Down && !isBottom || direction === KeyboardCode.Up && !isTop;\n\n if (canScrollX && clampedCoordinates.x !== newCoordinates.x) {\n const newScrollCoordinates = scrollContainer.scrollLeft + coordinatesDelta.x;\n const canScrollToNewCoordinates = direction === KeyboardCode.Right && newScrollCoordinates <= maxScroll.x || direction === KeyboardCode.Left && newScrollCoordinates >= minScroll.x;\n\n if (canScrollToNewCoordinates && !coordinatesDelta.y) {\n // We don't need to update coordinates, the scroll adjustment alone will trigger\n // logic to auto-detect the new container we are over\n scrollContainer.scrollTo({\n left: newScrollCoordinates,\n behavior: scrollBehavior\n });\n return;\n }\n\n if (canScrollToNewCoordinates) {\n scrollDelta.x = scrollContainer.scrollLeft - newScrollCoordinates;\n } else {\n scrollDelta.x = direction === KeyboardCode.Right ? scrollContainer.scrollLeft - maxScroll.x : scrollContainer.scrollLeft - minScroll.x;\n }\n\n if (scrollDelta.x) {\n scrollContainer.scrollBy({\n left: -scrollDelta.x,\n behavior: scrollBehavior\n });\n }\n\n break;\n } else if (canScrollY && clampedCoordinates.y !== newCoordinates.y) {\n const newScrollCoordinates = scrollContainer.scrollTop + coordinatesDelta.y;\n const canScrollToNewCoordinates = direction === KeyboardCode.Down && newScrollCoordinates <= maxScroll.y || direction === KeyboardCode.Up && newScrollCoordinates >= minScroll.y;\n\n if (canScrollToNewCoordinates && !coordinatesDelta.x) {\n // We don't need to update coordinates, the scroll adjustment alone will trigger\n // logic to auto-detect the new container we are over\n scrollContainer.scrollTo({\n top: newScrollCoordinates,\n behavior: scrollBehavior\n });\n return;\n }\n\n if (canScrollToNewCoordinates) {\n scrollDelta.y = scrollContainer.scrollTop - newScrollCoordinates;\n } else {\n scrollDelta.y = direction === KeyboardCode.Down ? scrollContainer.scrollTop - maxScroll.y : scrollContainer.scrollTop - minScroll.y;\n }\n\n if (scrollDelta.y) {\n scrollContainer.scrollBy({\n top: -scrollDelta.y,\n behavior: scrollBehavior\n });\n }\n\n break;\n }\n }\n\n this.handleMove(event, add(subtract(newCoordinates, this.referenceCoordinates), scrollDelta));\n }\n }\n }\n\n handleMove(event, coordinates) {\n const {\n onMove\n } = this.props;\n event.preventDefault();\n onMove(coordinates);\n }\n\n handleEnd(event) {\n const {\n onEnd\n } = this.props;\n event.preventDefault();\n this.detach();\n onEnd();\n }\n\n handleCancel(event) {\n const {\n onCancel\n } = this.props;\n event.preventDefault();\n this.detach();\n onCancel();\n }\n\n detach() {\n this.listeners.removeAll();\n this.windowListeners.removeAll();\n }\n\n}\nKeyboardSensor.activators = [{\n eventName: 'onKeyDown',\n handler: (event, _ref, _ref2) => {\n let {\n keyboardCodes = defaultKeyboardCodes,\n onActivation\n } = _ref;\n let {\n active\n } = _ref2;\n const {\n code\n } = event.nativeEvent;\n\n if (keyboardCodes.start.includes(code)) {\n const activator = active.activatorNode.current;\n\n if (activator && event.target !== activator) {\n return false;\n }\n\n event.preventDefault();\n onActivation == null ? void 0 : onActivation({\n event: event.nativeEvent\n });\n return true;\n }\n\n return false;\n }\n}];\n\nfunction isDistanceConstraint(constraint) {\n return Boolean(constraint && 'distance' in constraint);\n}\n\nfunction isDelayConstraint(constraint) {\n return Boolean(constraint && 'delay' in constraint);\n}\n\nclass AbstractPointerSensor {\n constructor(props, events, listenerTarget) {\n var _getEventCoordinates;\n\n if (listenerTarget === void 0) {\n listenerTarget = getEventListenerTarget(props.event.target);\n }\n\n this.props = void 0;\n this.events = void 0;\n this.autoScrollEnabled = true;\n this.document = void 0;\n this.activated = false;\n this.initialCoordinates = void 0;\n this.timeoutId = null;\n this.listeners = void 0;\n this.documentListeners = void 0;\n this.windowListeners = void 0;\n this.props = props;\n this.events = events;\n const {\n event\n } = props;\n const {\n target\n } = event;\n this.props = props;\n this.events = events;\n this.document = getOwnerDocument(target);\n this.documentListeners = new Listeners(this.document);\n this.listeners = new Listeners(listenerTarget);\n this.windowListeners = new Listeners(getWindow(target));\n this.initialCoordinates = (_getEventCoordinates = getEventCoordinates(event)) != null ? _getEventCoordinates : defaultCoordinates;\n this.handleStart = this.handleStart.bind(this);\n this.handleMove = this.handleMove.bind(this);\n this.handleEnd = this.handleEnd.bind(this);\n this.handleCancel = this.handleCancel.bind(this);\n this.handleKeydown = this.handleKeydown.bind(this);\n this.removeTextSelection = this.removeTextSelection.bind(this);\n this.attach();\n }\n\n attach() {\n const {\n events,\n props: {\n options: {\n activationConstraint,\n bypassActivationConstraint\n }\n }\n } = this;\n this.listeners.add(events.move.name, this.handleMove, {\n passive: false\n });\n this.listeners.add(events.end.name, this.handleEnd);\n\n if (events.cancel) {\n this.listeners.add(events.cancel.name, this.handleCancel);\n }\n\n this.windowListeners.add(EventName.Resize, this.handleCancel);\n this.windowListeners.add(EventName.DragStart, preventDefault);\n this.windowListeners.add(EventName.VisibilityChange, this.handleCancel);\n this.windowListeners.add(EventName.ContextMenu, preventDefault);\n this.documentListeners.add(EventName.Keydown, this.handleKeydown);\n\n if (activationConstraint) {\n if (bypassActivationConstraint != null && bypassActivationConstraint({\n event: this.props.event,\n activeNode: this.props.activeNode,\n options: this.props.options\n })) {\n return this.handleStart();\n }\n\n if (isDelayConstraint(activationConstraint)) {\n this.timeoutId = setTimeout(this.handleStart, activationConstraint.delay);\n this.handlePending(activationConstraint);\n return;\n }\n\n if (isDistanceConstraint(activationConstraint)) {\n this.handlePending(activationConstraint);\n return;\n }\n }\n\n this.handleStart();\n }\n\n detach() {\n this.listeners.removeAll();\n this.windowListeners.removeAll(); // Wait until the next event loop before removing document listeners\n // This is necessary because we listen for `click` and `selection` events on the document\n\n setTimeout(this.documentListeners.removeAll, 50);\n\n if (this.timeoutId !== null) {\n clearTimeout(this.timeoutId);\n this.timeoutId = null;\n }\n }\n\n handlePending(constraint, offset) {\n const {\n active,\n onPending\n } = this.props;\n onPending(active, constraint, this.initialCoordinates, offset);\n }\n\n handleStart() {\n const {\n initialCoordinates\n } = this;\n const {\n onStart\n } = this.props;\n\n if (initialCoordinates) {\n this.activated = true; // Stop propagation of click events once activation constraints are met\n\n this.documentListeners.add(EventName.Click, stopPropagation, {\n capture: true\n }); // Remove any text selection from the document\n\n this.removeTextSelection(); // Prevent further text selection while dragging\n\n this.documentListeners.add(EventName.SelectionChange, this.removeTextSelection);\n onStart(initialCoordinates);\n }\n }\n\n handleMove(event) {\n var _getEventCoordinates2;\n\n const {\n activated,\n initialCoordinates,\n props\n } = this;\n const {\n onMove,\n options: {\n activationConstraint\n }\n } = props;\n\n if (!initialCoordinates) {\n return;\n }\n\n const coordinates = (_getEventCoordinates2 = getEventCoordinates(event)) != null ? _getEventCoordinates2 : defaultCoordinates;\n const delta = subtract(initialCoordinates, coordinates); // Constraint validation\n\n if (!activated && activationConstraint) {\n if (isDistanceConstraint(activationConstraint)) {\n if (activationConstraint.tolerance != null && hasExceededDistance(delta, activationConstraint.tolerance)) {\n return this.handleCancel();\n }\n\n if (hasExceededDistance(delta, activationConstraint.distance)) {\n return this.handleStart();\n }\n }\n\n if (isDelayConstraint(activationConstraint)) {\n if (hasExceededDistance(delta, activationConstraint.tolerance)) {\n return this.handleCancel();\n }\n }\n\n this.handlePending(activationConstraint, delta);\n return;\n }\n\n if (event.cancelable) {\n event.preventDefault();\n }\n\n onMove(coordinates);\n }\n\n handleEnd() {\n const {\n onAbort,\n onEnd\n } = this.props;\n this.detach();\n\n if (!this.activated) {\n onAbort(this.props.active);\n }\n\n onEnd();\n }\n\n handleCancel() {\n const {\n onAbort,\n onCancel\n } = this.props;\n this.detach();\n\n if (!this.activated) {\n onAbort(this.props.active);\n }\n\n onCancel();\n }\n\n handleKeydown(event) {\n if (event.code === KeyboardCode.Esc) {\n this.handleCancel();\n }\n }\n\n removeTextSelection() {\n var _this$document$getSel;\n\n (_this$document$getSel = this.document.getSelection()) == null ? void 0 : _this$document$getSel.removeAllRanges();\n }\n\n}\n\nconst events = {\n cancel: {\n name: 'pointercancel'\n },\n move: {\n name: 'pointermove'\n },\n end: {\n name: 'pointerup'\n }\n};\nclass PointerSensor extends AbstractPointerSensor {\n constructor(props) {\n const {\n event\n } = props; // Pointer events stop firing if the target is unmounted while dragging\n // Therefore we attach listeners to the owner document instead\n\n const listenerTarget = getOwnerDocument(event.target);\n super(props, events, listenerTarget);\n }\n\n}\nPointerSensor.activators = [{\n eventName: 'onPointerDown',\n handler: (_ref, _ref2) => {\n let {\n nativeEvent: event\n } = _ref;\n let {\n onActivation\n } = _ref2;\n\n if (!event.isPrimary || event.button !== 0) {\n return false;\n }\n\n onActivation == null ? void 0 : onActivation({\n event\n });\n return true;\n }\n}];\n\nconst events$1 = {\n move: {\n name: 'mousemove'\n },\n end: {\n name: 'mouseup'\n }\n};\nvar MouseButton;\n\n(function (MouseButton) {\n MouseButton[MouseButton[\"RightClick\"] = 2] = \"RightClick\";\n})(MouseButton || (MouseButton = {}));\n\nclass MouseSensor extends AbstractPointerSensor {\n constructor(props) {\n super(props, events$1, getOwnerDocument(props.event.target));\n }\n\n}\nMouseSensor.activators = [{\n eventName: 'onMouseDown',\n handler: (_ref, _ref2) => {\n let {\n nativeEvent: event\n } = _ref;\n let {\n onActivation\n } = _ref2;\n\n if (event.button === MouseButton.RightClick) {\n return false;\n }\n\n onActivation == null ? void 0 : onActivation({\n event\n });\n return true;\n }\n}];\n\nconst events$2 = {\n cancel: {\n name: 'touchcancel'\n },\n move: {\n name: 'touchmove'\n },\n end: {\n name: 'touchend'\n }\n};\nclass TouchSensor extends AbstractPointerSensor {\n constructor(props) {\n super(props, events$2);\n }\n\n static setup() {\n // Adding a non-capture and non-passive `touchmove` listener in order\n // to force `event.preventDefault()` calls to work in dynamically added\n // touchmove event handlers. This is required for iOS Safari.\n window.addEventListener(events$2.move.name, noop, {\n capture: false,\n passive: false\n });\n return function teardown() {\n window.removeEventListener(events$2.move.name, noop);\n }; // We create a new handler because the teardown function of another sensor\n // could remove our event listener if we use a referentially equal listener.\n\n function noop() {}\n }\n\n}\nTouchSensor.activators = [{\n eventName: 'onTouchStart',\n handler: (_ref, _ref2) => {\n let {\n nativeEvent: event\n } = _ref;\n let {\n onActivation\n } = _ref2;\n const {\n touches\n } = event;\n\n if (touches.length > 1) {\n return false;\n }\n\n onActivation == null ? void 0 : onActivation({\n event\n });\n return true;\n }\n}];\n\nvar AutoScrollActivator;\n\n(function (AutoScrollActivator) {\n AutoScrollActivator[AutoScrollActivator[\"Pointer\"] = 0] = \"Pointer\";\n AutoScrollActivator[AutoScrollActivator[\"DraggableRect\"] = 1] = \"DraggableRect\";\n})(AutoScrollActivator || (AutoScrollActivator = {}));\n\nvar TraversalOrder;\n\n(function (TraversalOrder) {\n TraversalOrder[TraversalOrder[\"TreeOrder\"] = 0] = \"TreeOrder\";\n TraversalOrder[TraversalOrder[\"ReversedTreeOrder\"] = 1] = \"ReversedTreeOrder\";\n})(TraversalOrder || (TraversalOrder = {}));\n\nfunction useAutoScroller(_ref) {\n let {\n acceleration,\n activator = AutoScrollActivator.Pointer,\n canScroll,\n draggingRect,\n enabled,\n interval = 5,\n order = TraversalOrder.TreeOrder,\n pointerCoordinates,\n scrollableAncestors,\n scrollableAncestorRects,\n delta,\n threshold\n } = _ref;\n const scrollIntent = useScrollIntent({\n delta,\n disabled: !enabled\n });\n const [setAutoScrollInterval, clearAutoScrollInterval] = useInterval();\n const scrollSpeed = useRef({\n x: 0,\n y: 0\n });\n const scrollDirection = useRef({\n x: 0,\n y: 0\n });\n const rect = useMemo(() => {\n switch (activator) {\n case AutoScrollActivator.Pointer:\n return pointerCoordinates ? {\n top: pointerCoordinates.y,\n bottom: pointerCoordinates.y,\n left: pointerCoordinates.x,\n right: pointerCoordinates.x\n } : null;\n\n case AutoScrollActivator.DraggableRect:\n return draggingRect;\n }\n }, [activator, draggingRect, pointerCoordinates]);\n const scrollContainerRef = useRef(null);\n const autoScroll = useCallback(() => {\n const scrollContainer = scrollContainerRef.current;\n\n if (!scrollContainer) {\n return;\n }\n\n const scrollLeft = scrollSpeed.current.x * scrollDirection.current.x;\n const scrollTop = scrollSpeed.current.y * scrollDirection.current.y;\n scrollContainer.scrollBy(scrollLeft, scrollTop);\n }, []);\n const sortedScrollableAncestors = useMemo(() => order === TraversalOrder.TreeOrder ? [...scrollableAncestors].reverse() : scrollableAncestors, [order, scrollableAncestors]);\n useEffect(() => {\n if (!enabled || !scrollableAncestors.length || !rect) {\n clearAutoScrollInterval();\n return;\n }\n\n for (const scrollContainer of sortedScrollableAncestors) {\n if ((canScroll == null ? void 0 : canScroll(scrollContainer)) === false) {\n continue;\n }\n\n const index = scrollableAncestors.indexOf(scrollContainer);\n const scrollContainerRect = scrollableAncestorRects[index];\n\n if (!scrollContainerRect) {\n continue;\n }\n\n const {\n direction,\n speed\n } = getScrollDirectionAndSpeed(scrollContainer, scrollContainerRect, rect, acceleration, threshold);\n\n for (const axis of ['x', 'y']) {\n if (!scrollIntent[axis][direction[axis]]) {\n speed[axis] = 0;\n direction[axis] = 0;\n }\n }\n\n if (speed.x > 0 || speed.y > 0) {\n clearAutoScrollInterval();\n scrollContainerRef.current = scrollContainer;\n setAutoScrollInterval(autoScroll, interval);\n scrollSpeed.current = speed;\n scrollDirection.current = direction;\n return;\n }\n }\n\n scrollSpeed.current = {\n x: 0,\n y: 0\n };\n scrollDirection.current = {\n x: 0,\n y: 0\n };\n clearAutoScrollInterval();\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [acceleration, autoScroll, canScroll, clearAutoScrollInterval, enabled, interval, // eslint-disable-next-line react-hooks/exhaustive-deps\n JSON.stringify(rect), // eslint-disable-next-line react-hooks/exhaustive-deps\n JSON.stringify(scrollIntent), setAutoScrollInterval, scrollableAncestors, sortedScrollableAncestors, scrollableAncestorRects, // eslint-disable-next-line react-hooks/exhaustive-deps\n JSON.stringify(threshold)]);\n}\nconst defaultScrollIntent = {\n x: {\n [Direction.Backward]: false,\n [Direction.Forward]: false\n },\n y: {\n [Direction.Backward]: false,\n [Direction.Forward]: false\n }\n};\n\nfunction useScrollIntent(_ref2) {\n let {\n delta,\n disabled\n } = _ref2;\n const previousDelta = usePrevious(delta);\n return useLazyMemo(previousIntent => {\n if (disabled || !previousDelta || !previousIntent) {\n // Reset scroll intent tracking when auto-scrolling is disabled\n return defaultScrollIntent;\n }\n\n const direction = {\n x: Math.sign(delta.x - previousDelta.x),\n y: Math.sign(delta.y - previousDelta.y)\n }; // Keep track of the user intent to scroll in each direction for both axis\n\n return {\n x: {\n [Direction.Backward]: previousIntent.x[Direction.Backward] || direction.x === -1,\n [Direction.Forward]: previousIntent.x[Direction.Forward] || direction.x === 1\n },\n y: {\n [Direction.Backward]: previousIntent.y[Direction.Backward] || direction.y === -1,\n [Direction.Forward]: previousIntent.y[Direction.Forward] || direction.y === 1\n }\n };\n }, [disabled, delta, previousDelta]);\n}\n\nfunction useCachedNode(draggableNodes, id) {\n const draggableNode = id != null ? draggableNodes.get(id) : undefined;\n const node = draggableNode ? draggableNode.node.current : null;\n return useLazyMemo(cachedNode => {\n var _ref;\n\n if (id == null) {\n return null;\n } // In some cases, the draggable node can unmount while dragging\n // This is the case for virtualized lists. In those situations,\n // we fall back to the last known value for that node.\n\n\n return (_ref = node != null ? node : cachedNode) != null ? _ref : null;\n }, [node, id]);\n}\n\nfunction useCombineActivators(sensors, getSyntheticHandler) {\n return useMemo(() => sensors.reduce((accumulator, sensor) => {\n const {\n sensor: Sensor\n } = sensor;\n const sensorActivators = Sensor.activators.map(activator => ({\n eventName: activator.eventName,\n handler: getSyntheticHandler(activator.handler, sensor)\n }));\n return [...accumulator, ...sensorActivators];\n }, []), [sensors, getSyntheticHandler]);\n}\n\nvar MeasuringStrategy;\n\n(function (MeasuringStrategy) {\n MeasuringStrategy[MeasuringStrategy[\"Always\"] = 0] = \"Always\";\n MeasuringStrategy[MeasuringStrategy[\"BeforeDragging\"] = 1] = \"BeforeDragging\";\n MeasuringStrategy[MeasuringStrategy[\"WhileDragging\"] = 2] = \"WhileDragging\";\n})(MeasuringStrategy || (MeasuringStrategy = {}));\n\nvar MeasuringFrequency;\n\n(function (MeasuringFrequency) {\n MeasuringFrequency[\"Optimized\"] = \"optimized\";\n})(MeasuringFrequency || (MeasuringFrequency = {}));\n\nconst defaultValue = /*#__PURE__*/new Map();\nfunction useDroppableMeasuring(containers, _ref) {\n let {\n dragging,\n dependencies,\n config\n } = _ref;\n const [queue, setQueue] = useState(null);\n const {\n frequency,\n measure,\n strategy\n } = config;\n const containersRef = useRef(containers);\n const disabled = isDisabled();\n const disabledRef = useLatestValue(disabled);\n const measureDroppableContainers = useCallback(function (ids) {\n if (ids === void 0) {\n ids = [];\n }\n\n if (disabledRef.current) {\n return;\n }\n\n setQueue(value => {\n if (value === null) {\n return ids;\n }\n\n return value.concat(ids.filter(id => !value.includes(id)));\n });\n }, [disabledRef]);\n const timeoutId = useRef(null);\n const droppableRects = useLazyMemo(previousValue => {\n if (disabled && !dragging) {\n return defaultValue;\n }\n\n if (!previousValue || previousValue === defaultValue || containersRef.current !== containers || queue != null) {\n const map = new Map();\n\n for (let container of containers) {\n if (!container) {\n continue;\n }\n\n if (queue && queue.length > 0 && !queue.includes(container.id) && container.rect.current) {\n // This container does not need to be re-measured\n map.set(container.id, container.rect.current);\n continue;\n }\n\n const node = container.node.current;\n const rect = node ? new Rect(measure(node), node) : null;\n container.rect.current = rect;\n\n if (rect) {\n map.set(container.id, rect);\n }\n }\n\n return map;\n }\n\n return previousValue;\n }, [containers, queue, dragging, disabled, measure]);\n useEffect(() => {\n containersRef.current = containers;\n }, [containers]);\n useEffect(() => {\n if (disabled) {\n return;\n }\n\n measureDroppableContainers();\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [dragging, disabled]);\n useEffect(() => {\n if (queue && queue.length > 0) {\n setQueue(null);\n }\n }, //eslint-disable-next-line react-hooks/exhaustive-deps\n [JSON.stringify(queue)]);\n useEffect(() => {\n if (disabled || typeof frequency !== 'number' || timeoutId.current !== null) {\n return;\n }\n\n timeoutId.current = setTimeout(() => {\n measureDroppableContainers();\n timeoutId.current = null;\n }, frequency);\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [frequency, disabled, measureDroppableContainers, ...dependencies]);\n return {\n droppableRects,\n measureDroppableContainers,\n measuringScheduled: queue != null\n };\n\n function isDisabled() {\n switch (strategy) {\n case MeasuringStrategy.Always:\n return false;\n\n case MeasuringStrategy.BeforeDragging:\n return dragging;\n\n default:\n return !dragging;\n }\n }\n}\n\nfunction useInitialValue(value, computeFn) {\n return useLazyMemo(previousValue => {\n if (!value) {\n return null;\n }\n\n if (previousValue) {\n return previousValue;\n }\n\n return typeof computeFn === 'function' ? computeFn(value) : value;\n }, [computeFn, value]);\n}\n\nfunction useInitialRect(node, measure) {\n return useInitialValue(node, measure);\n}\n\n/**\r\n * Returns a new MutationObserver instance.\r\n * If `MutationObserver` is undefined in the execution environment, returns `undefined`.\r\n */\n\nfunction useMutationObserver(_ref) {\n let {\n callback,\n disabled\n } = _ref;\n const handleMutations = useEvent(callback);\n const mutationObserver = useMemo(() => {\n if (disabled || typeof window === 'undefined' || typeof window.MutationObserver === 'undefined') {\n return undefined;\n }\n\n const {\n MutationObserver\n } = window;\n return new MutationObserver(handleMutations);\n }, [handleMutations, disabled]);\n useEffect(() => {\n return () => mutationObserver == null ? void 0 : mutationObserver.disconnect();\n }, [mutationObserver]);\n return mutationObserver;\n}\n\n/**\r\n * Returns a new ResizeObserver instance bound to the `onResize` callback.\r\n * If `ResizeObserver` is undefined in the execution environment, returns `undefined`.\r\n */\n\nfunction useResizeObserver(_ref) {\n let {\n callback,\n disabled\n } = _ref;\n const handleResize = useEvent(callback);\n const resizeObserver = useMemo(() => {\n if (disabled || typeof window === 'undefined' || typeof window.ResizeObserver === 'undefined') {\n return undefined;\n }\n\n const {\n ResizeObserver\n } = window;\n return new ResizeObserver(handleResize);\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [disabled]);\n useEffect(() => {\n return () => resizeObserver == null ? void 0 : resizeObserver.disconnect();\n }, [resizeObserver]);\n return resizeObserver;\n}\n\nfunction defaultMeasure(element) {\n return new Rect(getClientRect(element), element);\n}\n\nfunction useRect(element, measure, fallbackRect) {\n if (measure === void 0) {\n measure = defaultMeasure;\n }\n\n const [rect, setRect] = useState(null);\n\n function measureRect() {\n setRect(currentRect => {\n if (!element) {\n return null;\n }\n\n if (element.isConnected === false) {\n var _ref;\n\n // Fall back to last rect we measured if the element is\n // no longer connected to the DOM.\n return (_ref = currentRect != null ? currentRect : fallbackRect) != null ? _ref : null;\n }\n\n const newRect = measure(element);\n\n if (JSON.stringify(currentRect) === JSON.stringify(newRect)) {\n return currentRect;\n }\n\n return newRect;\n });\n }\n\n const mutationObserver = useMutationObserver({\n callback(records) {\n if (!element) {\n return;\n }\n\n for (const record of records) {\n const {\n type,\n target\n } = record;\n\n if (type === 'childList' && target instanceof HTMLElement && target.contains(element)) {\n measureRect();\n break;\n }\n }\n }\n\n });\n const resizeObserver = useResizeObserver({\n callback: measureRect\n });\n useIsomorphicLayoutEffect(() => {\n measureRect();\n\n if (element) {\n resizeObserver == null ? void 0 : resizeObserver.observe(element);\n mutationObserver == null ? void 0 : mutationObserver.observe(document.body, {\n childList: true,\n subtree: true\n });\n } else {\n resizeObserver == null ? void 0 : resizeObserver.disconnect();\n mutationObserver == null ? void 0 : mutationObserver.disconnect();\n }\n }, [element]);\n return rect;\n}\n\nfunction useRectDelta(rect) {\n const initialRect = useInitialValue(rect);\n return getRectDelta(rect, initialRect);\n}\n\nconst defaultValue$1 = [];\nfunction useScrollableAncestors(node) {\n const previousNode = useRef(node);\n const ancestors = useLazyMemo(previousValue => {\n if (!node) {\n return defaultValue$1;\n }\n\n if (previousValue && previousValue !== defaultValue$1 && node && previousNode.current && node.parentNode === previousNode.current.parentNode) {\n return previousValue;\n }\n\n return getScrollableAncestors(node);\n }, [node]);\n useEffect(() => {\n previousNode.current = node;\n }, [node]);\n return ancestors;\n}\n\nfunction useScrollOffsets(elements) {\n const [scrollCoordinates, setScrollCoordinates] = useState(null);\n const prevElements = useRef(elements); // To-do: Throttle the handleScroll callback\n\n const handleScroll = useCallback(event => {\n const scrollingElement = getScrollableElement(event.target);\n\n if (!scrollingElement) {\n return;\n }\n\n setScrollCoordinates(scrollCoordinates => {\n if (!scrollCoordinates) {\n return null;\n }\n\n scrollCoordinates.set(scrollingElement, getScrollCoordinates(scrollingElement));\n return new Map(scrollCoordinates);\n });\n }, []);\n useEffect(() => {\n const previousElements = prevElements.current;\n\n if (elements !== previousElements) {\n cleanup(previousElements);\n const entries = elements.map(element => {\n const scrollableElement = getScrollableElement(element);\n\n if (scrollableElement) {\n scrollableElement.addEventListener('scroll', handleScroll, {\n passive: true\n });\n return [scrollableElement, getScrollCoordinates(scrollableElement)];\n }\n\n return null;\n }).filter(entry => entry != null);\n setScrollCoordinates(entries.length ? new Map(entries) : null);\n prevElements.current = elements;\n }\n\n return () => {\n cleanup(elements);\n cleanup(previousElements);\n };\n\n function cleanup(elements) {\n elements.forEach(element => {\n const scrollableElement = getScrollableElement(element);\n scrollableElement == null ? void 0 : scrollableElement.removeEventListener('scroll', handleScroll);\n });\n }\n }, [handleScroll, elements]);\n return useMemo(() => {\n if (elements.length) {\n return scrollCoordinates ? Array.from(scrollCoordinates.values()).reduce((acc, coordinates) => add(acc, coordinates), defaultCoordinates) : getScrollOffsets(elements);\n }\n\n return defaultCoordinates;\n }, [elements, scrollCoordinates]);\n}\n\nfunction useScrollOffsetsDelta(scrollOffsets, dependencies) {\n if (dependencies === void 0) {\n dependencies = [];\n }\n\n const initialScrollOffsets = useRef(null);\n useEffect(() => {\n initialScrollOffsets.current = null;\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n dependencies);\n useEffect(() => {\n const hasScrollOffsets = scrollOffsets !== defaultCoordinates;\n\n if (hasScrollOffsets && !initialScrollOffsets.current) {\n initialScrollOffsets.current = scrollOffsets;\n }\n\n if (!hasScrollOffsets && initialScrollOffsets.current) {\n initialScrollOffsets.current = null;\n }\n }, [scrollOffsets]);\n return initialScrollOffsets.current ? subtract(scrollOffsets, initialScrollOffsets.current) : defaultCoordinates;\n}\n\nfunction useSensorSetup(sensors) {\n useEffect(() => {\n if (!canUseDOM) {\n return;\n }\n\n const teardownFns = sensors.map(_ref => {\n let {\n sensor\n } = _ref;\n return sensor.setup == null ? void 0 : sensor.setup();\n });\n return () => {\n for (const teardown of teardownFns) {\n teardown == null ? void 0 : teardown();\n }\n };\n }, // TO-DO: Sensors length could theoretically change which would not be a valid dependency\n // eslint-disable-next-line react-hooks/exhaustive-deps\n sensors.map(_ref2 => {\n let {\n sensor\n } = _ref2;\n return sensor;\n }));\n}\n\nfunction useSyntheticListeners(listeners, id) {\n return useMemo(() => {\n return listeners.reduce((acc, _ref) => {\n let {\n eventName,\n handler\n } = _ref;\n\n acc[eventName] = event => {\n handler(event, id);\n };\n\n return acc;\n }, {});\n }, [listeners, id]);\n}\n\nfunction useWindowRect(element) {\n return useMemo(() => element ? getWindowClientRect(element) : null, [element]);\n}\n\nconst defaultValue$2 = [];\nfunction useRects(elements, measure) {\n if (measure === void 0) {\n measure = getClientRect;\n }\n\n const [firstElement] = elements;\n const windowRect = useWindowRect(firstElement ? getWindow(firstElement) : null);\n const [rects, setRects] = useState(defaultValue$2);\n\n function measureRects() {\n setRects(() => {\n if (!elements.length) {\n return defaultValue$2;\n }\n\n return elements.map(element => isDocumentScrollingElement(element) ? windowRect : new Rect(measure(element), element));\n });\n }\n\n const resizeObserver = useResizeObserver({\n callback: measureRects\n });\n useIsomorphicLayoutEffect(() => {\n resizeObserver == null ? void 0 : resizeObserver.disconnect();\n measureRects();\n elements.forEach(element => resizeObserver == null ? void 0 : resizeObserver.observe(element));\n }, [elements]);\n return rects;\n}\n\nfunction getMeasurableNode(node) {\n if (!node) {\n return null;\n }\n\n if (node.children.length > 1) {\n return node;\n }\n\n const firstChild = node.children[0];\n return isHTMLElement(firstChild) ? firstChild : node;\n}\n\nfunction useDragOverlayMeasuring(_ref) {\n let {\n measure\n } = _ref;\n const [rect, setRect] = useState(null);\n const handleResize = useCallback(entries => {\n for (const {\n target\n } of entries) {\n if (isHTMLElement(target)) {\n setRect(rect => {\n const newRect = measure(target);\n return rect ? { ...rect,\n width: newRect.width,\n height: newRect.height\n } : newRect;\n });\n break;\n }\n }\n }, [measure]);\n const resizeObserver = useResizeObserver({\n callback: handleResize\n });\n const handleNodeChange = useCallback(element => {\n const node = getMeasurableNode(element);\n resizeObserver == null ? void 0 : resizeObserver.disconnect();\n\n if (node) {\n resizeObserver == null ? void 0 : resizeObserver.observe(node);\n }\n\n setRect(node ? measure(node) : null);\n }, [measure, resizeObserver]);\n const [nodeRef, setRef] = useNodeRef(handleNodeChange);\n return useMemo(() => ({\n nodeRef,\n rect,\n setRef\n }), [rect, nodeRef, setRef]);\n}\n\nconst defaultSensors = [{\n sensor: PointerSensor,\n options: {}\n}, {\n sensor: KeyboardSensor,\n options: {}\n}];\nconst defaultData = {\n current: {}\n};\nconst defaultMeasuringConfiguration = {\n draggable: {\n measure: getTransformAgnosticClientRect\n },\n droppable: {\n measure: getTransformAgnosticClientRect,\n strategy: MeasuringStrategy.WhileDragging,\n frequency: MeasuringFrequency.Optimized\n },\n dragOverlay: {\n measure: getClientRect\n }\n};\n\nclass DroppableContainersMap extends Map {\n get(id) {\n var _super$get;\n\n return id != null ? (_super$get = super.get(id)) != null ? _super$get : undefined : undefined;\n }\n\n toArray() {\n return Array.from(this.values());\n }\n\n getEnabled() {\n return this.toArray().filter(_ref => {\n let {\n disabled\n } = _ref;\n return !disabled;\n });\n }\n\n getNodeFor(id) {\n var _this$get$node$curren, _this$get;\n\n return (_this$get$node$curren = (_this$get = this.get(id)) == null ? void 0 : _this$get.node.current) != null ? _this$get$node$curren : undefined;\n }\n\n}\n\nconst defaultPublicContext = {\n activatorEvent: null,\n active: null,\n activeNode: null,\n activeNodeRect: null,\n collisions: null,\n containerNodeRect: null,\n draggableNodes: /*#__PURE__*/new Map(),\n droppableRects: /*#__PURE__*/new Map(),\n droppableContainers: /*#__PURE__*/new DroppableContainersMap(),\n over: null,\n dragOverlay: {\n nodeRef: {\n current: null\n },\n rect: null,\n setRef: noop\n },\n scrollableAncestors: [],\n scrollableAncestorRects: [],\n measuringConfiguration: defaultMeasuringConfiguration,\n measureDroppableContainers: noop,\n windowRect: null,\n measuringScheduled: false\n};\nconst defaultInternalContext = {\n activatorEvent: null,\n activators: [],\n active: null,\n activeNodeRect: null,\n ariaDescribedById: {\n draggable: ''\n },\n dispatch: noop,\n draggableNodes: /*#__PURE__*/new Map(),\n over: null,\n measureDroppableContainers: noop\n};\nconst InternalContext = /*#__PURE__*/createContext(defaultInternalContext);\nconst PublicContext = /*#__PURE__*/createContext(defaultPublicContext);\n\nfunction getInitialState() {\n return {\n draggable: {\n active: null,\n initialCoordinates: {\n x: 0,\n y: 0\n },\n nodes: new Map(),\n translate: {\n x: 0,\n y: 0\n }\n },\n droppable: {\n containers: new DroppableContainersMap()\n }\n };\n}\nfunction reducer(state, action) {\n switch (action.type) {\n case Action.DragStart:\n return { ...state,\n draggable: { ...state.draggable,\n initialCoordinates: action.initialCoordinates,\n active: action.active\n }\n };\n\n case Action.DragMove:\n if (state.draggable.active == null) {\n return state;\n }\n\n return { ...state,\n draggable: { ...state.draggable,\n translate: {\n x: action.coordinates.x - state.draggable.initialCoordinates.x,\n y: action.coordinates.y - state.draggable.initialCoordinates.y\n }\n }\n };\n\n case Action.DragEnd:\n case Action.DragCancel:\n return { ...state,\n draggable: { ...state.draggable,\n active: null,\n initialCoordinates: {\n x: 0,\n y: 0\n },\n translate: {\n x: 0,\n y: 0\n }\n }\n };\n\n case Action.RegisterDroppable:\n {\n const {\n element\n } = action;\n const {\n id\n } = element;\n const containers = new DroppableContainersMap(state.droppable.containers);\n containers.set(id, element);\n return { ...state,\n droppable: { ...state.droppable,\n containers\n }\n };\n }\n\n case Action.SetDroppableDisabled:\n {\n const {\n id,\n key,\n disabled\n } = action;\n const element = state.droppable.containers.get(id);\n\n if (!element || key !== element.key) {\n return state;\n }\n\n const containers = new DroppableContainersMap(state.droppable.containers);\n containers.set(id, { ...element,\n disabled\n });\n return { ...state,\n droppable: { ...state.droppable,\n containers\n }\n };\n }\n\n case Action.UnregisterDroppable:\n {\n const {\n id,\n key\n } = action;\n const element = state.droppable.containers.get(id);\n\n if (!element || key !== element.key) {\n return state;\n }\n\n const containers = new DroppableContainersMap(state.droppable.containers);\n containers.delete(id);\n return { ...state,\n droppable: { ...state.droppable,\n containers\n }\n };\n }\n\n default:\n {\n return state;\n }\n }\n}\n\nfunction RestoreFocus(_ref) {\n let {\n disabled\n } = _ref;\n const {\n active,\n activatorEvent,\n draggableNodes\n } = useContext(InternalContext);\n const previousActivatorEvent = usePrevious(activatorEvent);\n const previousActiveId = usePrevious(active == null ? void 0 : active.id); // Restore keyboard focus on the activator node\n\n useEffect(() => {\n if (disabled) {\n return;\n }\n\n if (!activatorEvent && previousActivatorEvent && previousActiveId != null) {\n if (!isKeyboardEvent(previousActivatorEvent)) {\n return;\n }\n\n if (document.activeElement === previousActivatorEvent.target) {\n // No need to restore focus\n return;\n }\n\n const draggableNode = draggableNodes.get(previousActiveId);\n\n if (!draggableNode) {\n return;\n }\n\n const {\n activatorNode,\n node\n } = draggableNode;\n\n if (!activatorNode.current && !node.current) {\n return;\n }\n\n requestAnimationFrame(() => {\n for (const element of [activatorNode.current, node.current]) {\n if (!element) {\n continue;\n }\n\n const focusableNode = findFirstFocusableNode(element);\n\n if (focusableNode) {\n focusableNode.focus();\n break;\n }\n }\n });\n }\n }, [activatorEvent, disabled, draggableNodes, previousActiveId, previousActivatorEvent]);\n return null;\n}\n\nfunction applyModifiers(modifiers, _ref) {\n let {\n transform,\n ...args\n } = _ref;\n return modifiers != null && modifiers.length ? modifiers.reduce((accumulator, modifier) => {\n return modifier({\n transform: accumulator,\n ...args\n });\n }, transform) : transform;\n}\n\nfunction useMeasuringConfiguration(config) {\n return useMemo(() => ({\n draggable: { ...defaultMeasuringConfiguration.draggable,\n ...(config == null ? void 0 : config.draggable)\n },\n droppable: { ...defaultMeasuringConfiguration.droppable,\n ...(config == null ? void 0 : config.droppable)\n },\n dragOverlay: { ...defaultMeasuringConfiguration.dragOverlay,\n ...(config == null ? void 0 : config.dragOverlay)\n }\n }), // eslint-disable-next-line react-hooks/exhaustive-deps\n [config == null ? void 0 : config.draggable, config == null ? void 0 : config.droppable, config == null ? void 0 : config.dragOverlay]);\n}\n\nfunction useLayoutShiftScrollCompensation(_ref) {\n let {\n activeNode,\n measure,\n initialRect,\n config = true\n } = _ref;\n const initialized = useRef(false);\n const {\n x,\n y\n } = typeof config === 'boolean' ? {\n x: config,\n y: config\n } : config;\n useIsomorphicLayoutEffect(() => {\n const disabled = !x && !y;\n\n if (disabled || !activeNode) {\n initialized.current = false;\n return;\n }\n\n if (initialized.current || !initialRect) {\n // Return early if layout shift scroll compensation was already attempted\n // or if there is no initialRect to compare to.\n return;\n } // Get the most up to date node ref for the active draggable\n\n\n const node = activeNode == null ? void 0 : activeNode.node.current;\n\n if (!node || node.isConnected === false) {\n // Return early if there is no attached node ref or if the node is\n // disconnected from the document.\n return;\n }\n\n const rect = measure(node);\n const rectDelta = getRectDelta(rect, initialRect);\n\n if (!x) {\n rectDelta.x = 0;\n }\n\n if (!y) {\n rectDelta.y = 0;\n } // Only perform layout shift scroll compensation once\n\n\n initialized.current = true;\n\n if (Math.abs(rectDelta.x) > 0 || Math.abs(rectDelta.y) > 0) {\n const firstScrollableAncestor = getFirstScrollableAncestor(node);\n\n if (firstScrollableAncestor) {\n firstScrollableAncestor.scrollBy({\n top: rectDelta.y,\n left: rectDelta.x\n });\n }\n }\n }, [activeNode, x, y, initialRect, measure]);\n}\n\nconst ActiveDraggableContext = /*#__PURE__*/createContext({ ...defaultCoordinates,\n scaleX: 1,\n scaleY: 1\n});\nvar Status;\n\n(function (Status) {\n Status[Status[\"Uninitialized\"] = 0] = \"Uninitialized\";\n Status[Status[\"Initializing\"] = 1] = \"Initializing\";\n Status[Status[\"Initialized\"] = 2] = \"Initialized\";\n})(Status || (Status = {}));\n\nconst DndContext = /*#__PURE__*/memo(function DndContext(_ref) {\n var _sensorContext$curren, _dragOverlay$nodeRef$, _dragOverlay$rect, _over$rect;\n\n let {\n id,\n accessibility,\n autoScroll = true,\n children,\n sensors = defaultSensors,\n collisionDetection = rectIntersection,\n measuring,\n modifiers,\n ...props\n } = _ref;\n const store = useReducer(reducer, undefined, getInitialState);\n const [state, dispatch] = store;\n const [dispatchMonitorEvent, registerMonitorListener] = useDndMonitorProvider();\n const [status, setStatus] = useState(Status.Uninitialized);\n const isInitialized = status === Status.Initialized;\n const {\n draggable: {\n active: activeId,\n nodes: draggableNodes,\n translate\n },\n droppable: {\n containers: droppableContainers\n }\n } = state;\n const node = activeId != null ? draggableNodes.get(activeId) : null;\n const activeRects = useRef({\n initial: null,\n translated: null\n });\n const active = useMemo(() => {\n var _node$data;\n\n return activeId != null ? {\n id: activeId,\n // It's possible for the active node to unmount while dragging\n data: (_node$data = node == null ? void 0 : node.data) != null ? _node$data : defaultData,\n rect: activeRects\n } : null;\n }, [activeId, node]);\n const activeRef = useRef(null);\n const [activeSensor, setActiveSensor] = useState(null);\n const [activatorEvent, setActivatorEvent] = useState(null);\n const latestProps = useLatestValue(props, Object.values(props));\n const draggableDescribedById = useUniqueId(\"DndDescribedBy\", id);\n const enabledDroppableContainers = useMemo(() => droppableContainers.getEnabled(), [droppableContainers]);\n const measuringConfiguration = useMeasuringConfiguration(measuring);\n const {\n droppableRects,\n measureDroppableContainers,\n measuringScheduled\n } = useDroppableMeasuring(enabledDroppableContainers, {\n dragging: isInitialized,\n dependencies: [translate.x, translate.y],\n config: measuringConfiguration.droppable\n });\n const activeNode = useCachedNode(draggableNodes, activeId);\n const activationCoordinates = useMemo(() => activatorEvent ? getEventCoordinates(activatorEvent) : null, [activatorEvent]);\n const autoScrollOptions = getAutoScrollerOptions();\n const initialActiveNodeRect = useInitialRect(activeNode, measuringConfiguration.draggable.measure);\n useLayoutShiftScrollCompensation({\n activeNode: activeId != null ? draggableNodes.get(activeId) : null,\n config: autoScrollOptions.layoutShiftCompensation,\n initialRect: initialActiveNodeRect,\n measure: measuringConfiguration.draggable.measure\n });\n const activeNodeRect = useRect(activeNode, measuringConfiguration.draggable.measure, initialActiveNodeRect);\n const containerNodeRect = useRect(activeNode ? activeNode.parentElement : null);\n const sensorContext = useRef({\n activatorEvent: null,\n active: null,\n activeNode,\n collisionRect: null,\n collisions: null,\n droppableRects,\n draggableNodes,\n draggingNode: null,\n draggingNodeRect: null,\n droppableContainers,\n over: null,\n scrollableAncestors: [],\n scrollAdjustedTranslate: null\n });\n const overNode = droppableContainers.getNodeFor((_sensorContext$curren = sensorContext.current.over) == null ? void 0 : _sensorContext$curren.id);\n const dragOverlay = useDragOverlayMeasuring({\n measure: measuringConfiguration.dragOverlay.measure\n }); // Use the rect of the drag overlay if it is mounted\n\n const draggingNode = (_dragOverlay$nodeRef$ = dragOverlay.nodeRef.current) != null ? _dragOverlay$nodeRef$ : activeNode;\n const draggingNodeRect = isInitialized ? (_dragOverlay$rect = dragOverlay.rect) != null ? _dragOverlay$rect : activeNodeRect : null;\n const usesDragOverlay = Boolean(dragOverlay.nodeRef.current && dragOverlay.rect); // The delta between the previous and new position of the draggable node\n // is only relevant when there is no drag overlay\n\n const nodeRectDelta = useRectDelta(usesDragOverlay ? null : activeNodeRect); // Get the window rect of the dragging node\n\n const windowRect = useWindowRect(draggingNode ? getWindow(draggingNode) : null); // Get scrollable ancestors of the dragging node\n\n const scrollableAncestors = useScrollableAncestors(isInitialized ? overNode != null ? overNode : activeNode : null);\n const scrollableAncestorRects = useRects(scrollableAncestors); // Apply modifiers\n\n const modifiedTranslate = applyModifiers(modifiers, {\n transform: {\n x: translate.x - nodeRectDelta.x,\n y: translate.y - nodeRectDelta.y,\n scaleX: 1,\n scaleY: 1\n },\n activatorEvent,\n active,\n activeNodeRect,\n containerNodeRect,\n draggingNodeRect,\n over: sensorContext.current.over,\n overlayNodeRect: dragOverlay.rect,\n scrollableAncestors,\n scrollableAncestorRects,\n windowRect\n });\n const pointerCoordinates = activationCoordinates ? add(activationCoordinates, translate) : null;\n const scrollOffsets = useScrollOffsets(scrollableAncestors); // Represents the scroll delta since dragging was initiated\n\n const scrollAdjustment = useScrollOffsetsDelta(scrollOffsets); // Represents the scroll delta since the last time the active node rect was measured\n\n const activeNodeScrollDelta = useScrollOffsetsDelta(scrollOffsets, [activeNodeRect]);\n const scrollAdjustedTranslate = add(modifiedTranslate, scrollAdjustment);\n const collisionRect = draggingNodeRect ? getAdjustedRect(draggingNodeRect, modifiedTranslate) : null;\n const collisions = active && collisionRect ? collisionDetection({\n active,\n collisionRect,\n droppableRects,\n droppableContainers: enabledDroppableContainers,\n pointerCoordinates\n }) : null;\n const overId = getFirstCollision(collisions, 'id');\n const [over, setOver] = useState(null); // When there is no drag overlay used, we need to account for the\n // window scroll delta\n\n const appliedTranslate = usesDragOverlay ? modifiedTranslate : add(modifiedTranslate, activeNodeScrollDelta);\n const transform = adjustScale(appliedTranslate, (_over$rect = over == null ? void 0 : over.rect) != null ? _over$rect : null, activeNodeRect);\n const activeSensorRef = useRef(null);\n const instantiateSensor = useCallback((event, _ref2) => {\n let {\n sensor: Sensor,\n options\n } = _ref2;\n\n if (activeRef.current == null) {\n return;\n }\n\n const activeNode = draggableNodes.get(activeRef.current);\n\n if (!activeNode) {\n return;\n }\n\n const activatorEvent = event.nativeEvent;\n const sensorInstance = new Sensor({\n active: activeRef.current,\n activeNode,\n event: activatorEvent,\n options,\n // Sensors need to be instantiated with refs for arguments that change over time\n // otherwise they are frozen in time with the stale arguments\n context: sensorContext,\n\n onAbort(id) {\n const draggableNode = draggableNodes.get(id);\n\n if (!draggableNode) {\n return;\n }\n\n const {\n onDragAbort\n } = latestProps.current;\n const event = {\n id\n };\n onDragAbort == null ? void 0 : onDragAbort(event);\n dispatchMonitorEvent({\n type: 'onDragAbort',\n event\n });\n },\n\n onPending(id, constraint, initialCoordinates, offset) {\n const draggableNode = draggableNodes.get(id);\n\n if (!draggableNode) {\n return;\n }\n\n const {\n onDragPending\n } = latestProps.current;\n const event = {\n id,\n constraint,\n initialCoordinates,\n offset\n };\n onDragPending == null ? void 0 : onDragPending(event);\n dispatchMonitorEvent({\n type: 'onDragPending',\n event\n });\n },\n\n onStart(initialCoordinates) {\n const id = activeRef.current;\n\n if (id == null) {\n return;\n }\n\n const draggableNode = draggableNodes.get(id);\n\n if (!draggableNode) {\n return;\n }\n\n const {\n onDragStart\n } = latestProps.current;\n const event = {\n activatorEvent,\n active: {\n id,\n data: draggableNode.data,\n rect: activeRects\n }\n };\n unstable_batchedUpdates(() => {\n onDragStart == null ? void 0 : onDragStart(event);\n setStatus(Status.Initializing);\n dispatch({\n type: Action.DragStart,\n initialCoordinates,\n active: id\n });\n dispatchMonitorEvent({\n type: 'onDragStart',\n event\n });\n setActiveSensor(activeSensorRef.current);\n setActivatorEvent(activatorEvent);\n });\n },\n\n onMove(coordinates) {\n dispatch({\n type: Action.DragMove,\n coordinates\n });\n },\n\n onEnd: createHandler(Action.DragEnd),\n onCancel: createHandler(Action.DragCancel)\n });\n activeSensorRef.current = sensorInstance;\n\n function createHandler(type) {\n return async function handler() {\n const {\n active,\n collisions,\n over,\n scrollAdjustedTranslate\n } = sensorContext.current;\n let event = null;\n\n if (active && scrollAdjustedTranslate) {\n const {\n cancelDrop\n } = latestProps.current;\n event = {\n activatorEvent,\n active: active,\n collisions,\n delta: scrollAdjustedTranslate,\n over\n };\n\n if (type === Action.DragEnd && typeof cancelDrop === 'function') {\n const shouldCancel = await Promise.resolve(cancelDrop(event));\n\n if (shouldCancel) {\n type = Action.DragCancel;\n }\n }\n }\n\n activeRef.current = null;\n unstable_batchedUpdates(() => {\n dispatch({\n type\n });\n setStatus(Status.Uninitialized);\n setOver(null);\n setActiveSensor(null);\n setActivatorEvent(null);\n activeSensorRef.current = null;\n const eventName = type === Action.DragEnd ? 'onDragEnd' : 'onDragCancel';\n\n if (event) {\n const handler = latestProps.current[eventName];\n handler == null ? void 0 : handler(event);\n dispatchMonitorEvent({\n type: eventName,\n event\n });\n }\n });\n };\n }\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [draggableNodes]);\n const bindActivatorToSensorInstantiator = useCallback((handler, sensor) => {\n return (event, active) => {\n const nativeEvent = event.nativeEvent;\n const activeDraggableNode = draggableNodes.get(active);\n\n if ( // Another sensor is already instantiating\n activeRef.current !== null || // No active draggable\n !activeDraggableNode || // Event has already been captured\n nativeEvent.dndKit || nativeEvent.defaultPrevented) {\n return;\n }\n\n const activationContext = {\n active: activeDraggableNode\n };\n const shouldActivate = handler(event, sensor.options, activationContext);\n\n if (shouldActivate === true) {\n nativeEvent.dndKit = {\n capturedBy: sensor.sensor\n };\n activeRef.current = active;\n instantiateSensor(event, sensor);\n }\n };\n }, [draggableNodes, instantiateSensor]);\n const activators = useCombineActivators(sensors, bindActivatorToSensorInstantiator);\n useSensorSetup(sensors);\n useIsomorphicLayoutEffect(() => {\n if (activeNodeRect && status === Status.Initializing) {\n setStatus(Status.Initialized);\n }\n }, [activeNodeRect, status]);\n useEffect(() => {\n const {\n onDragMove\n } = latestProps.current;\n const {\n active,\n activatorEvent,\n collisions,\n over\n } = sensorContext.current;\n\n if (!active || !activatorEvent) {\n return;\n }\n\n const event = {\n active,\n activatorEvent,\n collisions,\n delta: {\n x: scrollAdjustedTranslate.x,\n y: scrollAdjustedTranslate.y\n },\n over\n };\n unstable_batchedUpdates(() => {\n onDragMove == null ? void 0 : onDragMove(event);\n dispatchMonitorEvent({\n type: 'onDragMove',\n event\n });\n });\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [scrollAdjustedTranslate.x, scrollAdjustedTranslate.y]);\n useEffect(() => {\n const {\n active,\n activatorEvent,\n collisions,\n droppableContainers,\n scrollAdjustedTranslate\n } = sensorContext.current;\n\n if (!active || activeRef.current == null || !activatorEvent || !scrollAdjustedTranslate) {\n return;\n }\n\n const {\n onDragOver\n } = latestProps.current;\n const overContainer = droppableContainers.get(overId);\n const over = overContainer && overContainer.rect.current ? {\n id: overContainer.id,\n rect: overContainer.rect.current,\n data: overContainer.data,\n disabled: overContainer.disabled\n } : null;\n const event = {\n active,\n activatorEvent,\n collisions,\n delta: {\n x: scrollAdjustedTranslate.x,\n y: scrollAdjustedTranslate.y\n },\n over\n };\n unstable_batchedUpdates(() => {\n setOver(over);\n onDragOver == null ? void 0 : onDragOver(event);\n dispatchMonitorEvent({\n type: 'onDragOver',\n event\n });\n });\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [overId]);\n useIsomorphicLayoutEffect(() => {\n sensorContext.current = {\n activatorEvent,\n active,\n activeNode,\n collisionRect,\n collisions,\n droppableRects,\n draggableNodes,\n draggingNode,\n draggingNodeRect,\n droppableContainers,\n over,\n scrollableAncestors,\n scrollAdjustedTranslate\n };\n activeRects.current = {\n initial: draggingNodeRect,\n translated: collisionRect\n };\n }, [active, activeNode, collisions, collisionRect, draggableNodes, draggingNode, draggingNodeRect, droppableRects, droppableContainers, over, scrollableAncestors, scrollAdjustedTranslate]);\n useAutoScroller({ ...autoScrollOptions,\n delta: translate,\n draggingRect: collisionRect,\n pointerCoordinates,\n scrollableAncestors,\n scrollableAncestorRects\n });\n const publicContext = useMemo(() => {\n const context = {\n active,\n activeNode,\n activeNodeRect,\n activatorEvent,\n collisions,\n containerNodeRect,\n dragOverlay,\n draggableNodes,\n droppableContainers,\n droppableRects,\n over,\n measureDroppableContainers,\n scrollableAncestors,\n scrollableAncestorRects,\n measuringConfiguration,\n measuringScheduled,\n windowRect\n };\n return context;\n }, [active, activeNode, activeNodeRect, activatorEvent, collisions, containerNodeRect, dragOverlay, draggableNodes, droppableContainers, droppableRects, over, measureDroppableContainers, scrollableAncestors, scrollableAncestorRects, measuringConfiguration, measuringScheduled, windowRect]);\n const internalContext = useMemo(() => {\n const context = {\n activatorEvent,\n activators,\n active,\n activeNodeRect,\n ariaDescribedById: {\n draggable: draggableDescribedById\n },\n dispatch,\n draggableNodes,\n over,\n measureDroppableContainers\n };\n return context;\n }, [activatorEvent, activators, active, activeNodeRect, dispatch, draggableDescribedById, draggableNodes, over, measureDroppableContainers]);\n return React.createElement(DndMonitorContext.Provider, {\n value: registerMonitorListener\n }, React.createElement(InternalContext.Provider, {\n value: internalContext\n }, React.createElement(PublicContext.Provider, {\n value: publicContext\n }, React.createElement(ActiveDraggableContext.Provider, {\n value: transform\n }, children)), React.createElement(RestoreFocus, {\n disabled: (accessibility == null ? void 0 : accessibility.restoreFocus) === false\n })), React.createElement(Accessibility, { ...accessibility,\n hiddenTextDescribedById: draggableDescribedById\n }));\n\n function getAutoScrollerOptions() {\n const activeSensorDisablesAutoscroll = (activeSensor == null ? void 0 : activeSensor.autoScrollEnabled) === false;\n const autoScrollGloballyDisabled = typeof autoScroll === 'object' ? autoScroll.enabled === false : autoScroll === false;\n const enabled = isInitialized && !activeSensorDisablesAutoscroll && !autoScrollGloballyDisabled;\n\n if (typeof autoScroll === 'object') {\n return { ...autoScroll,\n enabled\n };\n }\n\n return {\n enabled\n };\n }\n});\n\nconst NullContext = /*#__PURE__*/createContext(null);\nconst defaultRole = 'button';\nconst ID_PREFIX = 'Draggable';\nfunction useDraggable(_ref) {\n let {\n id,\n data,\n disabled = false,\n attributes\n } = _ref;\n const key = useUniqueId(ID_PREFIX);\n const {\n activators,\n activatorEvent,\n active,\n activeNodeRect,\n ariaDescribedById,\n draggableNodes,\n over\n } = useContext(InternalContext);\n const {\n role = defaultRole,\n roleDescription = 'draggable',\n tabIndex = 0\n } = attributes != null ? attributes : {};\n const isDragging = (active == null ? void 0 : active.id) === id;\n const transform = useContext(isDragging ? ActiveDraggableContext : NullContext);\n const [node, setNodeRef] = useNodeRef();\n const [activatorNode, setActivatorNodeRef] = useNodeRef();\n const listeners = useSyntheticListeners(activators, id);\n const dataRef = useLatestValue(data);\n useIsomorphicLayoutEffect(() => {\n draggableNodes.set(id, {\n id,\n key,\n node,\n activatorNode,\n data: dataRef\n });\n return () => {\n const node = draggableNodes.get(id);\n\n if (node && node.key === key) {\n draggableNodes.delete(id);\n }\n };\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [draggableNodes, id]);\n const memoizedAttributes = useMemo(() => ({\n role,\n tabIndex,\n 'aria-disabled': disabled,\n 'aria-pressed': isDragging && role === defaultRole ? true : undefined,\n 'aria-roledescription': roleDescription,\n 'aria-describedby': ariaDescribedById.draggable\n }), [disabled, role, tabIndex, isDragging, roleDescription, ariaDescribedById.draggable]);\n return {\n active,\n activatorEvent,\n activeNodeRect,\n attributes: memoizedAttributes,\n isDragging,\n listeners: disabled ? undefined : listeners,\n node,\n over,\n setNodeRef,\n setActivatorNodeRef,\n transform\n };\n}\n\nfunction useDndContext() {\n return useContext(PublicContext);\n}\n\nconst ID_PREFIX$1 = 'Droppable';\nconst defaultResizeObserverConfig = {\n timeout: 25\n};\nfunction useDroppable(_ref) {\n let {\n data,\n disabled = false,\n id,\n resizeObserverConfig\n } = _ref;\n const key = useUniqueId(ID_PREFIX$1);\n const {\n active,\n dispatch,\n over,\n measureDroppableContainers\n } = useContext(InternalContext);\n const previous = useRef({\n disabled\n });\n const resizeObserverConnected = useRef(false);\n const rect = useRef(null);\n const callbackId = useRef(null);\n const {\n disabled: resizeObserverDisabled,\n updateMeasurementsFor,\n timeout: resizeObserverTimeout\n } = { ...defaultResizeObserverConfig,\n ...resizeObserverConfig\n };\n const ids = useLatestValue(updateMeasurementsFor != null ? updateMeasurementsFor : id);\n const handleResize = useCallback(() => {\n if (!resizeObserverConnected.current) {\n // ResizeObserver invokes the `handleResize` callback as soon as `observe` is called,\n // assuming the element is rendered and displayed.\n resizeObserverConnected.current = true;\n return;\n }\n\n if (callbackId.current != null) {\n clearTimeout(callbackId.current);\n }\n\n callbackId.current = setTimeout(() => {\n measureDroppableContainers(Array.isArray(ids.current) ? ids.current : [ids.current]);\n callbackId.current = null;\n }, resizeObserverTimeout);\n }, //eslint-disable-next-line react-hooks/exhaustive-deps\n [resizeObserverTimeout]);\n const resizeObserver = useResizeObserver({\n callback: handleResize,\n disabled: resizeObserverDisabled || !active\n });\n const handleNodeChange = useCallback((newElement, previousElement) => {\n if (!resizeObserver) {\n return;\n }\n\n if (previousElement) {\n resizeObserver.unobserve(previousElement);\n resizeObserverConnected.current = false;\n }\n\n if (newElement) {\n resizeObserver.observe(newElement);\n }\n }, [resizeObserver]);\n const [nodeRef, setNodeRef] = useNodeRef(handleNodeChange);\n const dataRef = useLatestValue(data);\n useEffect(() => {\n if (!resizeObserver || !nodeRef.current) {\n return;\n }\n\n resizeObserver.disconnect();\n resizeObserverConnected.current = false;\n resizeObserver.observe(nodeRef.current);\n }, [nodeRef, resizeObserver]);\n useEffect(() => {\n dispatch({\n type: Action.RegisterDroppable,\n element: {\n id,\n key,\n disabled,\n node: nodeRef,\n rect,\n data: dataRef\n }\n });\n return () => dispatch({\n type: Action.UnregisterDroppable,\n key,\n id\n });\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [id]);\n useEffect(() => {\n if (disabled !== previous.current.disabled) {\n dispatch({\n type: Action.SetDroppableDisabled,\n id,\n key,\n disabled\n });\n previous.current.disabled = disabled;\n }\n }, [id, key, disabled, dispatch]);\n return {\n active,\n rect,\n isOver: (over == null ? void 0 : over.id) === id,\n node: nodeRef,\n over,\n setNodeRef\n };\n}\n\nfunction AnimationManager(_ref) {\n let {\n animation,\n children\n } = _ref;\n const [clonedChildren, setClonedChildren] = useState(null);\n const [element, setElement] = useState(null);\n const previousChildren = usePrevious(children);\n\n if (!children && !clonedChildren && previousChildren) {\n setClonedChildren(previousChildren);\n }\n\n useIsomorphicLayoutEffect(() => {\n if (!element) {\n return;\n }\n\n const key = clonedChildren == null ? void 0 : clonedChildren.key;\n const id = clonedChildren == null ? void 0 : clonedChildren.props.id;\n\n if (key == null || id == null) {\n setClonedChildren(null);\n return;\n }\n\n Promise.resolve(animation(id, element)).then(() => {\n setClonedChildren(null);\n });\n }, [animation, clonedChildren, element]);\n return React.createElement(React.Fragment, null, children, clonedChildren ? cloneElement(clonedChildren, {\n ref: setElement\n }) : null);\n}\n\nconst defaultTransform = {\n x: 0,\n y: 0,\n scaleX: 1,\n scaleY: 1\n};\nfunction NullifiedContextProvider(_ref) {\n let {\n children\n } = _ref;\n return React.createElement(InternalContext.Provider, {\n value: defaultInternalContext\n }, React.createElement(ActiveDraggableContext.Provider, {\n value: defaultTransform\n }, children));\n}\n\nconst baseStyles = {\n position: 'fixed',\n touchAction: 'none'\n};\n\nconst defaultTransition = activatorEvent => {\n const isKeyboardActivator = isKeyboardEvent(activatorEvent);\n return isKeyboardActivator ? 'transform 250ms ease' : undefined;\n};\n\nconst PositionedOverlay = /*#__PURE__*/forwardRef((_ref, ref) => {\n let {\n as,\n activatorEvent,\n adjustScale,\n children,\n className,\n rect,\n style,\n transform,\n transition = defaultTransition\n } = _ref;\n\n if (!rect) {\n return null;\n }\n\n const scaleAdjustedTransform = adjustScale ? transform : { ...transform,\n scaleX: 1,\n scaleY: 1\n };\n const styles = { ...baseStyles,\n width: rect.width,\n height: rect.height,\n top: rect.top,\n left: rect.left,\n transform: CSS.Transform.toString(scaleAdjustedTransform),\n transformOrigin: adjustScale && activatorEvent ? getRelativeTransformOrigin(activatorEvent, rect) : undefined,\n transition: typeof transition === 'function' ? transition(activatorEvent) : transition,\n ...style\n };\n return React.createElement(as, {\n className,\n style: styles,\n ref\n }, children);\n});\n\nconst defaultDropAnimationSideEffects = options => _ref => {\n let {\n active,\n dragOverlay\n } = _ref;\n const originalStyles = {};\n const {\n styles,\n className\n } = options;\n\n if (styles != null && styles.active) {\n for (const [key, value] of Object.entries(styles.active)) {\n if (value === undefined) {\n continue;\n }\n\n originalStyles[key] = active.node.style.getPropertyValue(key);\n active.node.style.setProperty(key, value);\n }\n }\n\n if (styles != null && styles.dragOverlay) {\n for (const [key, value] of Object.entries(styles.dragOverlay)) {\n if (value === undefined) {\n continue;\n }\n\n dragOverlay.node.style.setProperty(key, value);\n }\n }\n\n if (className != null && className.active) {\n active.node.classList.add(className.active);\n }\n\n if (className != null && className.dragOverlay) {\n dragOverlay.node.classList.add(className.dragOverlay);\n }\n\n return function cleanup() {\n for (const [key, value] of Object.entries(originalStyles)) {\n active.node.style.setProperty(key, value);\n }\n\n if (className != null && className.active) {\n active.node.classList.remove(className.active);\n }\n };\n};\n\nconst defaultKeyframeResolver = _ref2 => {\n let {\n transform: {\n initial,\n final\n }\n } = _ref2;\n return [{\n transform: CSS.Transform.toString(initial)\n }, {\n transform: CSS.Transform.toString(final)\n }];\n};\n\nconst defaultDropAnimationConfiguration = {\n duration: 250,\n easing: 'ease',\n keyframes: defaultKeyframeResolver,\n sideEffects: /*#__PURE__*/defaultDropAnimationSideEffects({\n styles: {\n active: {\n opacity: '0'\n }\n }\n })\n};\nfunction useDropAnimation(_ref3) {\n let {\n config,\n draggableNodes,\n droppableContainers,\n measuringConfiguration\n } = _ref3;\n return useEvent((id, node) => {\n if (config === null) {\n return;\n }\n\n const activeDraggable = draggableNodes.get(id);\n\n if (!activeDraggable) {\n return;\n }\n\n const activeNode = activeDraggable.node.current;\n\n if (!activeNode) {\n return;\n }\n\n const measurableNode = getMeasurableNode(node);\n\n if (!measurableNode) {\n return;\n }\n\n const {\n transform\n } = getWindow(node).getComputedStyle(node);\n const parsedTransform = parseTransform(transform);\n\n if (!parsedTransform) {\n return;\n }\n\n const animation = typeof config === 'function' ? config : createDefaultDropAnimation(config);\n scrollIntoViewIfNeeded(activeNode, measuringConfiguration.draggable.measure);\n return animation({\n active: {\n id,\n data: activeDraggable.data,\n node: activeNode,\n rect: measuringConfiguration.draggable.measure(activeNode)\n },\n draggableNodes,\n dragOverlay: {\n node,\n rect: measuringConfiguration.dragOverlay.measure(measurableNode)\n },\n droppableContainers,\n measuringConfiguration,\n transform: parsedTransform\n });\n });\n}\n\nfunction createDefaultDropAnimation(options) {\n const {\n duration,\n easing,\n sideEffects,\n keyframes\n } = { ...defaultDropAnimationConfiguration,\n ...options\n };\n return _ref4 => {\n let {\n active,\n dragOverlay,\n transform,\n ...rest\n } = _ref4;\n\n if (!duration) {\n // Do not animate if animation duration is zero.\n return;\n }\n\n const delta = {\n x: dragOverlay.rect.left - active.rect.left,\n y: dragOverlay.rect.top - active.rect.top\n };\n const scale = {\n scaleX: transform.scaleX !== 1 ? active.rect.width * transform.scaleX / dragOverlay.rect.width : 1,\n scaleY: transform.scaleY !== 1 ? active.rect.height * transform.scaleY / dragOverlay.rect.height : 1\n };\n const finalTransform = {\n x: transform.x - delta.x,\n y: transform.y - delta.y,\n ...scale\n };\n const animationKeyframes = keyframes({ ...rest,\n active,\n dragOverlay,\n transform: {\n initial: transform,\n final: finalTransform\n }\n });\n const [firstKeyframe] = animationKeyframes;\n const lastKeyframe = animationKeyframes[animationKeyframes.length - 1];\n\n if (JSON.stringify(firstKeyframe) === JSON.stringify(lastKeyframe)) {\n // The start and end keyframes are the same, infer that there is no animation needed.\n return;\n }\n\n const cleanup = sideEffects == null ? void 0 : sideEffects({\n active,\n dragOverlay,\n ...rest\n });\n const animation = dragOverlay.node.animate(animationKeyframes, {\n duration,\n easing,\n fill: 'forwards'\n });\n return new Promise(resolve => {\n animation.onfinish = () => {\n cleanup == null ? void 0 : cleanup();\n resolve();\n };\n });\n };\n}\n\nlet key = 0;\nfunction useKey(id) {\n return useMemo(() => {\n if (id == null) {\n return;\n }\n\n key++;\n return key;\n }, [id]);\n}\n\nconst DragOverlay = /*#__PURE__*/React.memo(_ref => {\n let {\n adjustScale = false,\n children,\n dropAnimation: dropAnimationConfig,\n style,\n transition,\n modifiers,\n wrapperElement = 'div',\n className,\n zIndex = 999\n } = _ref;\n const {\n activatorEvent,\n active,\n activeNodeRect,\n containerNodeRect,\n draggableNodes,\n droppableContainers,\n dragOverlay,\n over,\n measuringConfiguration,\n scrollableAncestors,\n scrollableAncestorRects,\n windowRect\n } = useDndContext();\n const transform = useContext(ActiveDraggableContext);\n const key = useKey(active == null ? void 0 : active.id);\n const modifiedTransform = applyModifiers(modifiers, {\n activatorEvent,\n active,\n activeNodeRect,\n containerNodeRect,\n draggingNodeRect: dragOverlay.rect,\n over,\n overlayNodeRect: dragOverlay.rect,\n scrollableAncestors,\n scrollableAncestorRects,\n transform,\n windowRect\n });\n const initialRect = useInitialValue(activeNodeRect);\n const dropAnimation = useDropAnimation({\n config: dropAnimationConfig,\n draggableNodes,\n droppableContainers,\n measuringConfiguration\n }); // We need to wait for the active node to be measured before connecting the drag overlay ref\n // otherwise collisions can be computed against a mispositioned drag overlay\n\n const ref = initialRect ? dragOverlay.setRef : undefined;\n return React.createElement(NullifiedContextProvider, null, React.createElement(AnimationManager, {\n animation: dropAnimation\n }, active && key ? React.createElement(PositionedOverlay, {\n key: key,\n id: active.id,\n ref: ref,\n as: wrapperElement,\n activatorEvent: activatorEvent,\n adjustScale: adjustScale,\n className: className,\n transition: transition,\n rect: initialRect,\n style: {\n zIndex,\n ...style\n },\n transform: modifiedTransform\n }, children) : null));\n});\n\nexport { AutoScrollActivator, DndContext, DragOverlay, KeyboardCode, KeyboardSensor, MeasuringFrequency, MeasuringStrategy, MouseSensor, PointerSensor, TouchSensor, TraversalOrder, applyModifiers, closestCenter, closestCorners, defaultAnnouncements, defaultCoordinates, defaultDropAnimationConfiguration as defaultDropAnimation, defaultDropAnimationSideEffects, defaultKeyboardCoordinateGetter, defaultScreenReaderInstructions, getClientRect, getFirstCollision, getScrollableAncestors, pointerWithin, rectIntersection, useDndContext, useDndMonitor, useDraggable, useDroppable, useSensor, useSensors };\n//# sourceMappingURL=core.esm.js.map\n"],"names":["React","Action","properties","Direction","EventName","KeyboardCode","events","MouseButton","noop","AutoScrollActivator","TraversalOrder","MeasuringStrategy","MeasuringFrequency","scrollCoordinates","elements","rect","Status","DndContext","activeNode","activatorEvent","id","event","active","collisions","over","scrollAdjustedTranslate","handler","droppableContainers","node"],"mappings":"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","x_google_ignoreList":[0]}