one 1.21.13 → 1.23.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/Root.cjs +2 -2
- package/dist/cjs/Root.native.js +2 -2
- package/dist/cjs/Root.native.js.map +1 -1
- package/dist/cjs/cli/build.cjs +9 -17
- package/dist/cjs/cli/build.native.js +8 -16
- package/dist/cjs/cli/build.native.js.map +1 -1
- package/dist/cjs/cli.native.js.map +1 -1
- package/dist/cjs/clientLoaderResolver.native.js.map +1 -1
- package/dist/cjs/config.native.js.map +1 -1
- package/dist/cjs/constants.native.js.map +1 -1
- package/dist/cjs/constants.test.native.js.map +1 -1
- package/dist/cjs/createAPIRoute.native.js.map +1 -1
- package/dist/cjs/createApp.cjs +12 -35
- package/dist/cjs/createHandleRequest.cjs +4 -2
- package/dist/cjs/createHandleRequest.native.js +4 -2
- package/dist/cjs/createHandleRequest.native.js.map +1 -1
- package/dist/cjs/fallbackViews/Sitemap.cjs +123 -55
- package/dist/cjs/fallbackViews/Sitemap.native.js.map +1 -1
- package/dist/cjs/fallbackViews/Unmatched.cjs +92 -37
- package/dist/cjs/fallbackViews/Unmatched.native.js.map +1 -1
- package/dist/cjs/fork/NavigationContainer.cjs +6 -28
- package/dist/cjs/fork/NavigationContainer.native.js +5 -27
- package/dist/cjs/fork/NavigationContainer.native.js.map +1 -1
- package/dist/cjs/{router/renderingRegistry.cjs → fork/localeDirection.cjs} +6 -29
- package/dist/cjs/{router/web/ScreenRenderContext.cjs → fork/localeDirection.native.js} +10 -12
- package/dist/cjs/fork/localeDirection.native.js.map +1 -0
- package/dist/cjs/fork/theme.cjs +71 -0
- package/dist/cjs/{router/renderingRegistry.native.js → fork/theme.native.js} +7 -31
- package/dist/cjs/fork/theme.native.js.map +1 -0
- package/dist/cjs/headless/Presentations.cjs +51 -0
- package/dist/cjs/headless/Presentations.native.js +56 -0
- package/dist/cjs/headless/Presentations.native.js.map +1 -0
- package/dist/cjs/headless/children.cjs +43 -0
- package/dist/cjs/headless/children.native.js +46 -0
- package/dist/cjs/headless/children.native.js.map +1 -0
- package/dist/cjs/headless/devHeadlessNote.cjs +34 -0
- package/dist/cjs/{router/web/ScreenRenderContext.native.js → headless/devHeadlessNote.native.js} +11 -12
- package/dist/cjs/headless/devHeadlessNote.native.js.map +1 -0
- package/dist/cjs/headless/keepMounted.cjs +58 -0
- package/dist/cjs/headless/keepMounted.native.js +64 -0
- package/dist/cjs/headless/keepMounted.native.js.map +1 -0
- package/dist/cjs/headless/types.cjs +18 -0
- package/dist/cjs/headless/types.native.js +21 -0
- package/dist/cjs/headless/types.native.js.map +1 -0
- package/dist/cjs/headless/useDrawer.cjs +83 -0
- package/dist/cjs/headless/useDrawer.native.js +95 -0
- package/dist/cjs/headless/useDrawer.native.js.map +1 -0
- package/dist/cjs/headless/useStack.cjs +75 -0
- package/dist/cjs/headless/useStack.native.js +79 -0
- package/dist/cjs/headless/useStack.native.js.map +1 -0
- package/dist/cjs/headless/useTabs.cjs +62 -0
- package/dist/cjs/headless/useTabs.native.js +65 -0
- package/dist/cjs/headless/useTabs.native.js.map +1 -0
- package/dist/cjs/index.cjs +8 -3
- package/dist/cjs/index.native.js +8 -3
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/layouts/Drawer.cjs +71 -42
- package/dist/cjs/layouts/Drawer.native.js +1 -25
- package/dist/cjs/layouts/Drawer.native.js.map +1 -1
- package/dist/cjs/layouts/Stack.cjs +9 -13
- package/dist/cjs/layouts/Stack.native.js +11 -13
- package/dist/cjs/layouts/Stack.native.js.map +1 -1
- package/dist/cjs/layouts/Tabs.cjs +104 -88
- package/dist/cjs/layouts/Tabs.native.js +1 -13
- package/dist/cjs/layouts/Tabs.native.js.map +1 -1
- package/dist/cjs/layouts/stack-navigator.cjs +10 -2
- package/dist/cjs/layouts/stack-navigator.native.js +5 -1
- package/dist/cjs/layouts/stack-navigator.native.js.map +1 -1
- package/dist/cjs/layouts/stack-utils/StackHeaderBackButton.cjs +4 -0
- package/dist/cjs/layouts/stack-utils/StackHeaderBackButton.native.js +4 -0
- package/dist/cjs/layouts/stack-utils/StackHeaderBackButton.native.js.map +1 -1
- package/dist/cjs/layouts/stack-utils/StackHeaderComponent.cjs +13 -9
- package/dist/cjs/layouts/stack-utils/StackHeaderComponent.native.js +13 -9
- package/dist/cjs/layouts/stack-utils/StackHeaderComponent.native.js.map +1 -1
- package/dist/cjs/layouts/stack-utils/StackHeaderLeft.cjs +4 -0
- package/dist/cjs/layouts/stack-utils/StackHeaderLeft.native.js +4 -0
- package/dist/cjs/layouts/stack-utils/StackHeaderLeft.native.js.map +1 -1
- package/dist/cjs/layouts/stack-utils/StackHeaderRight.cjs +4 -0
- package/dist/cjs/layouts/stack-utils/StackHeaderRight.native.js +4 -0
- package/dist/cjs/layouts/stack-utils/StackHeaderRight.native.js.map +1 -1
- package/dist/cjs/layouts/stack-utils/StackHeaderSearchBar.cjs +4 -0
- package/dist/cjs/layouts/stack-utils/StackHeaderSearchBar.native.js +4 -0
- package/dist/cjs/layouts/stack-utils/StackHeaderSearchBar.native.js.map +1 -1
- package/dist/cjs/layouts/stack-utils/StackHeaderTitle.cjs +8 -4
- package/dist/cjs/layouts/stack-utils/StackHeaderTitle.native.js +8 -4
- package/dist/cjs/layouts/stack-utils/StackHeaderTitle.native.js.map +1 -1
- package/dist/cjs/layouts/stack-utils/StackScreen.cjs +10 -23
- package/dist/cjs/layouts/stack-utils/StackScreen.native.js +21 -27
- package/dist/cjs/layouts/stack-utils/StackScreen.native.js.map +1 -1
- package/dist/cjs/layouts/stack-utils/__tests__/composition.test.cjs +11 -6
- package/dist/cjs/layouts/stack-utils/__tests__/composition.test.native.js +15 -6
- package/dist/cjs/layouts/stack-utils/__tests__/composition.test.native.js.map +1 -1
- package/dist/cjs/layouts/stack-utils/index.cjs +2 -0
- package/dist/cjs/layouts/stack-utils/index.native.js +2 -0
- package/dist/cjs/layouts/stack-utils/index.native.js.map +1 -1
- package/dist/cjs/layouts/withLayoutContext.cjs +2 -2
- package/dist/cjs/layouts/withLayoutContext.native.js +2 -2
- package/dist/cjs/layouts/withLayoutContext.native.js.map +1 -1
- package/dist/cjs/link/Link.cjs +55 -69
- package/dist/cjs/link/Link.native.js.map +1 -1
- package/dist/cjs/link/useLinkTo.cjs +3 -17
- package/dist/cjs/link/useLinkTo.native.js +1 -23
- package/dist/cjs/link/useLinkTo.native.js.map +1 -1
- package/dist/cjs/metro-config/withOne.test.cjs +2 -2
- package/dist/cjs/metro-config/withOne.test.native.js +2 -2
- package/dist/cjs/metro-config/withOne.test.native.js.map +1 -1
- package/dist/cjs/router/getRouteArtifactPath.test.native.js.map +1 -1
- package/dist/cjs/router/router.cjs +2 -2
- package/dist/cjs/router/router.native.js +2 -2
- package/dist/cjs/router/router.native.js.map +1 -1
- package/dist/cjs/router/useScreens.cjs +31 -72
- package/dist/cjs/router/useScreens.native.js +15 -71
- package/dist/cjs/router/useScreens.native.js.map +1 -1
- package/dist/cjs/router/web/WebStackNavigator.cjs +8 -7
- package/dist/cjs/router/web/WebStackNavigator.native.js +8 -7
- package/dist/cjs/router/web/WebStackNavigator.native.js.map +1 -1
- package/dist/cjs/router/web/WebStackView.cjs +108 -131
- package/dist/cjs/router/web/WebStackView.native.js +117 -176
- package/dist/cjs/router/web/WebStackView.native.js.map +1 -1
- package/dist/cjs/router/web/stackStateUtils.native.js.map +1 -1
- package/dist/cjs/screensFeatureFlags.cjs +1 -16
- package/dist/cjs/screensFeatureFlags.native.js +3 -3
- package/dist/cjs/screensFeatureFlags.native.js.map +1 -1
- package/dist/cjs/typed-routes/generateRouteTypes.cjs +3 -10
- package/dist/cjs/typed-routes/generateRouteTypes.native.js +3 -10
- package/dist/cjs/typed-routes/generateRouteTypes.native.js.map +1 -1
- package/dist/cjs/ui/Slot.cjs +4 -25
- package/dist/cjs/ui/Slot.native.js.map +1 -1
- package/dist/cjs/ui/TabList.cjs +7 -19
- package/dist/cjs/ui/TabList.native.js.map +1 -1
- package/dist/cjs/ui/TabSlot.cjs +15 -47
- package/dist/cjs/ui/TabSlot.native.js.map +1 -1
- package/dist/cjs/ui/TabTrigger.cjs +30 -134
- package/dist/cjs/ui/TabTrigger.native.js +14 -115
- package/dist/cjs/ui/TabTrigger.native.js.map +1 -1
- package/dist/cjs/ui/Tabs.cjs +15 -155
- package/dist/cjs/ui/Tabs.native.js +4 -144
- package/dist/cjs/ui/Tabs.native.js.map +1 -1
- package/dist/cjs/ui/Tabs.shared.cjs +160 -0
- package/dist/cjs/ui/Tabs.shared.native.js +174 -0
- package/dist/cjs/ui/Tabs.shared.native.js.map +1 -0
- package/dist/cjs/ui/useTabTrigger.cjs +122 -0
- package/dist/cjs/ui/useTabTrigger.native.js +125 -0
- package/dist/cjs/ui/useTabTrigger.native.js.map +1 -0
- package/dist/cjs/useBlocker.cjs +55 -93
- package/dist/cjs/useLoader.native.js +0 -18
- package/dist/cjs/useLoader.native.js.map +1 -1
- package/dist/cjs/utils/platform.cjs +28 -0
- package/dist/cjs/utils/platform.native.js +32 -0
- package/dist/cjs/utils/platform.native.js.map +1 -0
- package/dist/cjs/utils/routeIndex.cjs +80 -0
- package/dist/cjs/utils/routeIndex.native.js +86 -0
- package/dist/cjs/utils/routeIndex.native.js.map +1 -0
- package/dist/cjs/utils/routeIndex.test.cjs +51 -0
- package/dist/cjs/utils/routeIndex.test.native.js +54 -0
- package/dist/cjs/utils/routeIndex.test.native.js.map +1 -0
- package/dist/cjs/utils/style.cjs +21 -1
- package/dist/cjs/utils/style.native.js +40 -1
- package/dist/cjs/utils/style.native.js.map +1 -1
- package/dist/cjs/views/LoadProgressBar.cjs +59 -23
- package/dist/cjs/views/LoadProgressBar.native.js.map +1 -1
- package/dist/cjs/views/Protected.cjs +4 -0
- package/dist/cjs/views/Protected.native.js +4 -0
- package/dist/cjs/views/Protected.native.js.map +1 -1
- package/dist/cjs/views/RootErrorBoundary.cjs +107 -148
- package/dist/cjs/views/RootErrorBoundary.native.js +30 -140
- package/dist/cjs/views/RootErrorBoundary.native.js.map +1 -1
- package/dist/cjs/views/RouteErrorView.cjs +108 -0
- package/dist/cjs/views/RouteErrorView.native.js +110 -0
- package/dist/cjs/views/RouteErrorView.native.js.map +1 -0
- package/dist/cjs/views/Screen.cjs +5 -1
- package/dist/cjs/views/Screen.native.js +4 -0
- package/dist/cjs/views/Screen.native.js.map +1 -1
- package/dist/cjs/vite/getManifest.cjs +4 -20
- package/dist/cjs/vite/getManifest.native.js +4 -20
- package/dist/cjs/vite/getManifest.native.js.map +1 -1
- package/dist/cjs/vite/one.cjs +12 -46
- package/dist/cjs/vite/one.native.js +23 -59
- package/dist/cjs/vite/one.native.js.map +1 -1
- package/dist/cjs/vite/plugins/bundledDevPlugin.cjs +130 -0
- package/dist/cjs/vite/plugins/bundledDevPlugin.native.js +154 -0
- package/dist/cjs/vite/plugins/bundledDevPlugin.native.js.map +1 -0
- package/dist/cjs/vite/plugins/devtoolsPlugin.cjs +4 -0
- package/dist/cjs/vite/plugins/devtoolsPlugin.native.js +5 -0
- package/dist/cjs/vite/plugins/devtoolsPlugin.native.js.map +1 -1
- package/dist/cjs/vite/plugins/fileSystemRouterPlugin.cjs +15 -6
- package/dist/cjs/vite/plugins/fileSystemRouterPlugin.native.js +15 -5
- package/dist/cjs/vite/plugins/fileSystemRouterPlugin.native.js.map +1 -1
- package/dist/cjs/vite/plugins/fileSystemRouterPlugin.test.cjs +12 -2
- package/dist/cjs/vite/plugins/fileSystemRouterPlugin.test.native.js +12 -2
- package/dist/cjs/vite/plugins/fileSystemRouterPlugin.test.native.js.map +1 -1
- package/dist/cjs/vite/plugins/generateFileSystemRouteTypesPlugin.cjs +10 -6
- package/dist/cjs/vite/plugins/generateFileSystemRouteTypesPlugin.native.js +11 -7
- package/dist/cjs/vite/plugins/generateFileSystemRouteTypesPlugin.native.js.map +1 -1
- package/dist/cjs/vite/plugins/routeModuleHmrPlugin.cjs +79 -0
- package/dist/cjs/vite/plugins/routeModuleHmrPlugin.native.js +84 -0
- package/dist/cjs/vite/plugins/routeModuleHmrPlugin.native.js.map +1 -0
- package/dist/cjs/vite/plugins/routeModuleHmrPlugin.test.cjs +74 -0
- package/dist/cjs/vite/plugins/routeModuleHmrPlugin.test.native.js +83 -0
- package/dist/cjs/vite/plugins/routeModuleHmrPlugin.test.native.js.map +1 -0
- package/dist/cjs/vite/plugins/virtualEntryPlugin.cjs +11 -5
- package/dist/cjs/vite/plugins/virtualEntryPlugin.native.js +20 -10
- package/dist/cjs/vite/plugins/virtualEntryPlugin.native.js.map +1 -1
- package/dist/cjs/vite/plugins/virtualEntryPlugin.test.cjs +10 -2
- package/dist/cjs/vite/plugins/virtualEntryPlugin.test.native.js +14 -2
- package/dist/cjs/vite/plugins/virtualEntryPlugin.test.native.js.map +1 -1
- package/dist/esm/Root.mjs +1 -1
- package/dist/esm/Root.mjs.map +1 -1
- package/dist/esm/Root.native.js +1 -1
- package/dist/esm/Root.native.js.map +1 -1
- package/dist/esm/cli/build.mjs +9 -17
- package/dist/esm/cli/build.mjs.map +1 -1
- package/dist/esm/cli/build.native.js +8 -16
- package/dist/esm/cli/build.native.js.map +1 -1
- package/dist/esm/createApp.mjs +12 -35
- package/dist/esm/createApp.mjs.map +1 -1
- package/dist/esm/createHandleRequest.mjs +4 -2
- package/dist/esm/createHandleRequest.mjs.map +1 -1
- package/dist/esm/createHandleRequest.native.js +4 -2
- package/dist/esm/createHandleRequest.native.js.map +1 -1
- package/dist/esm/fallbackViews/Sitemap.mjs +110 -53
- package/dist/esm/fallbackViews/Sitemap.mjs.map +1 -1
- package/dist/esm/fallbackViews/Sitemap.native.js.map +1 -1
- package/dist/esm/fallbackViews/Unmatched.mjs +89 -34
- package/dist/esm/fallbackViews/Unmatched.mjs.map +1 -1
- package/dist/esm/fallbackViews/Unmatched.native.js.map +1 -1
- package/dist/esm/fork/NavigationContainer.mjs +6 -28
- package/dist/esm/fork/NavigationContainer.mjs.map +1 -1
- package/dist/esm/fork/NavigationContainer.native.js +5 -27
- package/dist/esm/fork/NavigationContainer.native.js.map +1 -1
- package/dist/esm/fork/localeDirection.mjs +5 -0
- package/dist/esm/fork/localeDirection.mjs.map +1 -0
- package/dist/esm/fork/localeDirection.native.js +6 -0
- package/dist/esm/fork/localeDirection.native.js.map +1 -0
- package/dist/esm/fork/theme.mjs +45 -0
- package/dist/esm/fork/theme.mjs.map +1 -0
- package/dist/esm/fork/theme.native.js +3 -0
- package/dist/esm/fork/theme.native.js.map +1 -0
- package/dist/esm/headless/Presentations.mjs +25 -0
- package/dist/esm/headless/Presentations.mjs.map +1 -0
- package/dist/esm/headless/Presentations.native.js +28 -0
- package/dist/esm/headless/Presentations.native.js.map +1 -0
- package/dist/esm/headless/children.mjs +16 -0
- package/dist/esm/headless/children.mjs.map +1 -0
- package/dist/esm/headless/children.native.js +16 -0
- package/dist/esm/headless/children.native.js.map +1 -0
- package/dist/esm/headless/devHeadlessNote.mjs +9 -0
- package/dist/esm/headless/devHeadlessNote.mjs.map +1 -0
- package/dist/esm/headless/devHeadlessNote.native.js +9 -0
- package/dist/esm/headless/devHeadlessNote.native.js.map +1 -0
- package/dist/esm/headless/keepMounted.mjs +32 -0
- package/dist/esm/headless/keepMounted.mjs.map +1 -0
- package/dist/esm/headless/keepMounted.native.js +36 -0
- package/dist/esm/headless/keepMounted.native.js.map +1 -0
- package/dist/esm/headless/types.mjs +2 -0
- package/dist/esm/headless/types.mjs.map +1 -0
- package/dist/esm/headless/types.native.js +2 -0
- package/dist/esm/headless/types.native.js.map +1 -0
- package/dist/esm/headless/useDrawer.mjs +57 -0
- package/dist/esm/headless/useDrawer.mjs.map +1 -0
- package/dist/esm/headless/useDrawer.native.js +67 -0
- package/dist/esm/headless/useDrawer.native.js.map +1 -0
- package/dist/esm/headless/useStack.mjs +49 -0
- package/dist/esm/headless/useStack.mjs.map +1 -0
- package/dist/esm/headless/useStack.native.js +51 -0
- package/dist/esm/headless/useStack.native.js.map +1 -0
- package/dist/esm/headless/useTabs.mjs +37 -0
- package/dist/esm/headless/useTabs.mjs.map +1 -0
- package/dist/esm/headless/useTabs.native.js +38 -0
- package/dist/esm/headless/useTabs.native.js.map +1 -0
- package/dist/esm/index.js +5 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/index.mjs +5 -2
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/index.native.js +5 -2
- package/dist/esm/index.native.js.map +1 -1
- package/dist/esm/layouts/Drawer.mjs +69 -29
- package/dist/esm/layouts/Drawer.mjs.map +1 -1
- package/dist/esm/layouts/Drawer.native.js +2 -26
- package/dist/esm/layouts/Drawer.native.js.map +1 -1
- package/dist/esm/layouts/Stack.mjs +10 -14
- package/dist/esm/layouts/Stack.mjs.map +1 -1
- package/dist/esm/layouts/Stack.native.js +12 -14
- package/dist/esm/layouts/Stack.native.js.map +1 -1
- package/dist/esm/layouts/Tabs.mjs +101 -74
- package/dist/esm/layouts/Tabs.mjs.map +1 -1
- package/dist/esm/layouts/Tabs.native.js +2 -14
- package/dist/esm/layouts/Tabs.native.js.map +1 -1
- package/dist/esm/layouts/stack-navigator.mjs +8 -1
- package/dist/esm/layouts/stack-navigator.mjs.map +1 -1
- package/dist/esm/layouts/stack-navigator.native.js +4 -1
- package/dist/esm/layouts/stack-navigator.native.js.map +1 -1
- package/dist/esm/layouts/stack-utils/StackHeaderBackButton.mjs +4 -0
- package/dist/esm/layouts/stack-utils/StackHeaderBackButton.mjs.map +1 -1
- package/dist/esm/layouts/stack-utils/StackHeaderBackButton.native.js +4 -0
- package/dist/esm/layouts/stack-utils/StackHeaderBackButton.native.js.map +1 -1
- package/dist/esm/layouts/stack-utils/StackHeaderComponent.mjs +7 -3
- package/dist/esm/layouts/stack-utils/StackHeaderComponent.mjs.map +1 -1
- package/dist/esm/layouts/stack-utils/StackHeaderComponent.native.js +7 -3
- package/dist/esm/layouts/stack-utils/StackHeaderComponent.native.js.map +1 -1
- package/dist/esm/layouts/stack-utils/StackHeaderLeft.mjs +4 -0
- package/dist/esm/layouts/stack-utils/StackHeaderLeft.mjs.map +1 -1
- package/dist/esm/layouts/stack-utils/StackHeaderLeft.native.js +4 -0
- package/dist/esm/layouts/stack-utils/StackHeaderLeft.native.js.map +1 -1
- package/dist/esm/layouts/stack-utils/StackHeaderRight.mjs +4 -0
- package/dist/esm/layouts/stack-utils/StackHeaderRight.mjs.map +1 -1
- package/dist/esm/layouts/stack-utils/StackHeaderRight.native.js +4 -0
- package/dist/esm/layouts/stack-utils/StackHeaderRight.native.js.map +1 -1
- package/dist/esm/layouts/stack-utils/StackHeaderSearchBar.mjs +4 -0
- package/dist/esm/layouts/stack-utils/StackHeaderSearchBar.mjs.map +1 -1
- package/dist/esm/layouts/stack-utils/StackHeaderSearchBar.native.js +4 -0
- package/dist/esm/layouts/stack-utils/StackHeaderSearchBar.native.js.map +1 -1
- package/dist/esm/layouts/stack-utils/StackHeaderTitle.mjs +9 -5
- package/dist/esm/layouts/stack-utils/StackHeaderTitle.mjs.map +1 -1
- package/dist/esm/layouts/stack-utils/StackHeaderTitle.native.js +9 -5
- package/dist/esm/layouts/stack-utils/StackHeaderTitle.native.js.map +1 -1
- package/dist/esm/layouts/stack-utils/StackScreen.mjs +10 -23
- package/dist/esm/layouts/stack-utils/StackScreen.mjs.map +1 -1
- package/dist/esm/layouts/stack-utils/StackScreen.native.js +23 -29
- package/dist/esm/layouts/stack-utils/StackScreen.native.js.map +1 -1
- package/dist/esm/layouts/stack-utils/__tests__/composition.test.mjs +12 -7
- package/dist/esm/layouts/stack-utils/__tests__/composition.test.mjs.map +1 -1
- package/dist/esm/layouts/stack-utils/__tests__/composition.test.native.js +16 -7
- package/dist/esm/layouts/stack-utils/__tests__/composition.test.native.js.map +1 -1
- package/dist/esm/layouts/stack-utils/index.mjs +2 -0
- package/dist/esm/layouts/stack-utils/index.mjs.map +1 -1
- package/dist/esm/layouts/stack-utils/index.native.js +2 -0
- package/dist/esm/layouts/stack-utils/index.native.js.map +1 -1
- package/dist/esm/layouts/withLayoutContext.mjs +2 -2
- package/dist/esm/layouts/withLayoutContext.mjs.map +1 -1
- package/dist/esm/layouts/withLayoutContext.native.js +2 -2
- package/dist/esm/layouts/withLayoutContext.native.js.map +1 -1
- package/dist/esm/link/Link.mjs +57 -68
- package/dist/esm/link/Link.mjs.map +1 -1
- package/dist/esm/link/useLinkTo.mjs +4 -19
- package/dist/esm/link/useLinkTo.mjs.map +1 -1
- package/dist/esm/link/useLinkTo.native.js +2 -25
- package/dist/esm/link/useLinkTo.native.js.map +1 -1
- package/dist/esm/metro-config/withOne.test.mjs +2 -2
- package/dist/esm/metro-config/withOne.test.mjs.map +1 -1
- package/dist/esm/metro-config/withOne.test.native.js +2 -2
- package/dist/esm/metro-config/withOne.test.native.js.map +1 -1
- package/dist/esm/router/getRouteArtifactPath.test.mjs.map +1 -1
- package/dist/esm/router/getRouteArtifactPath.test.native.js.map +1 -1
- package/dist/esm/router/router.mjs +2 -2
- package/dist/esm/router/router.mjs.map +1 -1
- package/dist/esm/router/router.native.js +2 -2
- package/dist/esm/router/router.native.js.map +1 -1
- package/dist/esm/router/useScreens.mjs +30 -71
- package/dist/esm/router/useScreens.mjs.map +1 -1
- package/dist/esm/router/useScreens.native.js +13 -69
- package/dist/esm/router/useScreens.native.js.map +1 -1
- package/dist/esm/router/useScreens.test.mjs +1 -1
- package/dist/esm/router/useScreens.test.mjs.map +1 -1
- package/dist/esm/router/web/WebStackNavigator.mjs +5 -4
- package/dist/esm/router/web/WebStackNavigator.mjs.map +1 -1
- package/dist/esm/router/web/WebStackNavigator.native.js +5 -4
- package/dist/esm/router/web/WebStackNavigator.native.js.map +1 -1
- package/dist/esm/router/web/WebStackView.mjs +99 -131
- package/dist/esm/router/web/WebStackView.mjs.map +1 -1
- package/dist/esm/router/web/WebStackView.native.js +107 -175
- package/dist/esm/router/web/WebStackView.native.js.map +1 -1
- package/dist/esm/router/web/stackStateUtils.mjs.map +1 -1
- package/dist/esm/router/web/stackStateUtils.native.js.map +1 -1
- package/dist/esm/screensFeatureFlags.mjs +1 -16
- package/dist/esm/screensFeatureFlags.mjs.map +1 -1
- package/dist/esm/screensFeatureFlags.native.js.map +1 -1
- package/dist/esm/typed-routes/generateRouteTypes.mjs +3 -10
- package/dist/esm/typed-routes/generateRouteTypes.mjs.map +1 -1
- package/dist/esm/typed-routes/generateRouteTypes.native.js +3 -10
- package/dist/esm/typed-routes/generateRouteTypes.native.js.map +1 -1
- package/dist/esm/ui/Slot.mjs +1 -22
- package/dist/esm/ui/Slot.mjs.map +1 -1
- package/dist/esm/ui/Slot.native.js.map +1 -1
- package/dist/esm/ui/TabList.mjs +3 -15
- package/dist/esm/ui/TabList.mjs.map +1 -1
- package/dist/esm/ui/TabList.native.js.map +1 -1
- package/dist/esm/ui/TabSlot.mjs +12 -44
- package/dist/esm/ui/TabSlot.mjs.map +1 -1
- package/dist/esm/ui/TabSlot.native.js.map +1 -1
- package/dist/esm/ui/TabTrigger.mjs +25 -129
- package/dist/esm/ui/TabTrigger.mjs.map +1 -1
- package/dist/esm/ui/TabTrigger.native.js +13 -114
- package/dist/esm/ui/TabTrigger.native.js.map +1 -1
- package/dist/esm/ui/Tabs.mjs +7 -145
- package/dist/esm/ui/Tabs.mjs.map +1 -1
- package/dist/esm/ui/Tabs.native.js +5 -143
- package/dist/esm/ui/Tabs.native.js.map +1 -1
- package/dist/esm/ui/Tabs.shared.mjs +134 -0
- package/dist/esm/ui/Tabs.shared.mjs.map +1 -0
- package/dist/esm/ui/Tabs.shared.native.js +145 -0
- package/dist/esm/ui/Tabs.shared.native.js.map +1 -0
- package/dist/esm/ui/useTabTrigger.mjs +96 -0
- package/dist/esm/ui/useTabTrigger.mjs.map +1 -0
- package/dist/esm/ui/useTabTrigger.native.js +96 -0
- package/dist/esm/ui/useTabTrigger.native.js.map +1 -0
- package/dist/esm/useBlocker.mjs +55 -93
- package/dist/esm/useBlocker.mjs.map +1 -1
- package/dist/esm/useLoader.native.js +0 -18
- package/dist/esm/useLoader.native.js.map +1 -1
- package/dist/esm/utils/platform.mjs +3 -0
- package/dist/esm/utils/platform.mjs.map +1 -0
- package/dist/esm/utils/platform.native.js +4 -0
- package/dist/esm/utils/platform.native.js.map +1 -0
- package/dist/esm/utils/routeIndex.mjs +43 -0
- package/dist/esm/utils/routeIndex.mjs.map +1 -0
- package/dist/esm/utils/routeIndex.native.js +46 -0
- package/dist/esm/utils/routeIndex.native.js.map +1 -0
- package/dist/esm/utils/routeIndex.test.mjs +52 -0
- package/dist/esm/utils/routeIndex.test.mjs.map +1 -0
- package/dist/esm/utils/routeIndex.test.native.js +52 -0
- package/dist/esm/utils/routeIndex.test.native.js.map +1 -0
- package/dist/esm/utils/style.mjs +20 -1
- package/dist/esm/utils/style.mjs.map +1 -1
- package/dist/esm/utils/style.native.js +39 -1
- package/dist/esm/utils/style.native.js.map +1 -1
- package/dist/esm/views/LoadProgressBar.mjs +45 -20
- package/dist/esm/views/LoadProgressBar.mjs.map +1 -1
- package/dist/esm/views/LoadProgressBar.native.js.map +1 -1
- package/dist/esm/views/Protected.mjs +4 -0
- package/dist/esm/views/Protected.mjs.map +1 -1
- package/dist/esm/views/Protected.native.js +4 -0
- package/dist/esm/views/Protected.native.js.map +1 -1
- package/dist/esm/views/RootErrorBoundary.mjs +106 -147
- package/dist/esm/views/RootErrorBoundary.mjs.map +1 -1
- package/dist/esm/views/RootErrorBoundary.native.js +37 -145
- package/dist/esm/views/RootErrorBoundary.native.js.map +1 -1
- package/dist/esm/views/RouteErrorView.mjs +83 -0
- package/dist/esm/views/RouteErrorView.mjs.map +1 -0
- package/dist/esm/views/RouteErrorView.native.js +82 -0
- package/dist/esm/views/RouteErrorView.native.js.map +1 -0
- package/dist/esm/views/Screen.mjs +4 -0
- package/dist/esm/views/Screen.mjs.map +1 -1
- package/dist/esm/views/Screen.native.js +4 -0
- package/dist/esm/views/Screen.native.js.map +1 -1
- package/dist/esm/vite/getManifest.mjs +4 -9
- package/dist/esm/vite/getManifest.mjs.map +1 -1
- package/dist/esm/vite/getManifest.native.js +4 -9
- package/dist/esm/vite/getManifest.native.js.map +1 -1
- package/dist/esm/vite/one.mjs +12 -46
- package/dist/esm/vite/one.mjs.map +1 -1
- package/dist/esm/vite/one.native.js +23 -59
- package/dist/esm/vite/one.native.js.map +1 -1
- package/dist/esm/vite/plugins/bundledDevPlugin.mjs +94 -0
- package/dist/esm/vite/plugins/bundledDevPlugin.mjs.map +1 -0
- package/dist/esm/vite/plugins/bundledDevPlugin.native.js +115 -0
- package/dist/esm/vite/plugins/bundledDevPlugin.native.js.map +1 -0
- package/dist/esm/vite/plugins/devtoolsPlugin.mjs +4 -0
- package/dist/esm/vite/plugins/devtoolsPlugin.mjs.map +1 -1
- package/dist/esm/vite/plugins/devtoolsPlugin.native.js +5 -0
- package/dist/esm/vite/plugins/devtoolsPlugin.native.js.map +1 -1
- package/dist/esm/vite/plugins/fileSystemRouterPlugin.mjs +15 -6
- package/dist/esm/vite/plugins/fileSystemRouterPlugin.mjs.map +1 -1
- package/dist/esm/vite/plugins/fileSystemRouterPlugin.native.js +15 -5
- package/dist/esm/vite/plugins/fileSystemRouterPlugin.native.js.map +1 -1
- package/dist/esm/vite/plugins/fileSystemRouterPlugin.test.mjs +12 -2
- package/dist/esm/vite/plugins/fileSystemRouterPlugin.test.mjs.map +1 -1
- package/dist/esm/vite/plugins/fileSystemRouterPlugin.test.native.js +12 -2
- package/dist/esm/vite/plugins/fileSystemRouterPlugin.test.native.js.map +1 -1
- package/dist/esm/vite/plugins/generateFileSystemRouteTypesPlugin.mjs +10 -6
- package/dist/esm/vite/plugins/generateFileSystemRouteTypesPlugin.mjs.map +1 -1
- package/dist/esm/vite/plugins/generateFileSystemRouteTypesPlugin.native.js +11 -7
- package/dist/esm/vite/plugins/generateFileSystemRouteTypesPlugin.native.js.map +1 -1
- package/dist/esm/vite/plugins/routeModuleHmrPlugin.mjs +43 -0
- package/dist/esm/vite/plugins/routeModuleHmrPlugin.mjs.map +1 -0
- package/dist/esm/vite/plugins/routeModuleHmrPlugin.native.js +45 -0
- package/dist/esm/vite/plugins/routeModuleHmrPlugin.native.js.map +1 -0
- package/dist/esm/vite/plugins/routeModuleHmrPlugin.test.mjs +75 -0
- package/dist/esm/vite/plugins/routeModuleHmrPlugin.test.mjs.map +1 -0
- package/dist/esm/vite/plugins/routeModuleHmrPlugin.test.native.js +81 -0
- package/dist/esm/vite/plugins/routeModuleHmrPlugin.test.native.js.map +1 -0
- package/dist/esm/vite/plugins/virtualEntryPlugin.mjs +11 -5
- package/dist/esm/vite/plugins/virtualEntryPlugin.mjs.map +1 -1
- package/dist/esm/vite/plugins/virtualEntryPlugin.native.js +20 -10
- package/dist/esm/vite/plugins/virtualEntryPlugin.native.js.map +1 -1
- package/dist/esm/vite/plugins/virtualEntryPlugin.test.mjs +10 -2
- package/dist/esm/vite/plugins/virtualEntryPlugin.test.mjs.map +1 -1
- package/dist/esm/vite/plugins/virtualEntryPlugin.test.native.js +14 -2
- package/dist/esm/vite/plugins/virtualEntryPlugin.test.native.js.map +1 -1
- package/package.json +27 -28
- package/src/Root.tsx +2 -6
- package/src/cli/build.ts +25 -37
- package/src/createApp.tsx +15 -42
- package/src/createHandleRequest.ts +6 -2
- package/src/fallbackViews/Sitemap.web.tsx +149 -0
- package/src/fallbackViews/Unmatched.web.tsx +91 -0
- package/src/fork/NavigationContainer.tsx +12 -39
- package/src/fork/localeDirection.native.ts +6 -0
- package/src/fork/localeDirection.ts +11 -0
- package/src/fork/theme.native.ts +1 -0
- package/src/fork/theme.ts +41 -0
- package/src/headless/Presentations.tsx +37 -0
- package/src/headless/children.ts +25 -0
- package/src/headless/devHeadlessNote.ts +13 -0
- package/src/headless/keepMounted.tsx +46 -0
- package/src/headless/types.ts +72 -0
- package/src/headless/useDrawer.tsx +88 -0
- package/src/headless/useStack.ts +74 -0
- package/src/headless/useTabs.ts +40 -0
- package/src/index.ts +14 -18
- package/src/layouts/Drawer.tsx +4 -35
- package/src/layouts/Drawer.web.tsx +117 -0
- package/src/layouts/Stack.tsx +54 -62
- package/src/layouts/Tabs.tsx +6 -32
- package/src/layouts/Tabs.web.tsx +151 -0
- package/src/layouts/stack-navigator.ts +6 -2
- package/src/layouts/stack-navigator.web.ts +8 -0
- package/src/layouts/stack-utils/StackHeaderBackButton.tsx +4 -0
- package/src/layouts/stack-utils/StackHeaderComponent.tsx +7 -3
- package/src/layouts/stack-utils/StackHeaderLeft.tsx +4 -0
- package/src/layouts/stack-utils/StackHeaderRight.tsx +4 -0
- package/src/layouts/stack-utils/StackHeaderSearchBar.tsx +4 -0
- package/src/layouts/stack-utils/StackHeaderTitle.tsx +9 -5
- package/src/layouts/stack-utils/StackScreen.tsx +31 -36
- package/src/layouts/stack-utils/__tests__/composition.test.tsx +12 -11
- package/src/layouts/stack-utils/index.tsx +2 -0
- package/src/layouts/withLayoutContext.tsx +5 -2
- package/src/link/Link.web.tsx +84 -0
- package/src/link/useLinkTo.tsx +2 -2
- package/src/metro-config/withOne.test.ts +5 -4
- package/src/router/getRouteArtifactPath.test.ts +1 -6
- package/src/router/router.ts +2 -2
- package/src/router/useScreens.tsx +31 -71
- package/src/router/web/WebStackNavigator.tsx +22 -20
- package/src/router/web/WebStackView.tsx +148 -188
- package/src/router/web/stackStateUtils.ts +2 -1
- package/src/screensFeatureFlags.native.ts +23 -0
- package/src/screensFeatureFlags.ts +3 -23
- package/src/typed-routes/generateRouteTypes.ts +4 -10
- package/src/ui/Slot.web.tsx +9 -0
- package/src/ui/TabList.web.tsx +27 -0
- package/src/ui/TabSlot.web.tsx +90 -0
- package/src/ui/TabTrigger.tsx +33 -249
- package/src/ui/TabTrigger.web.tsx +71 -0
- package/src/ui/Tabs.shared.tsx +230 -0
- package/src/ui/Tabs.tsx +5 -295
- package/src/ui/Tabs.web.tsx +40 -0
- package/src/ui/useTabTrigger.ts +182 -0
- package/src/useBlocker.ts +2 -3
- package/src/useLoader.ts +6 -2
- package/src/utils/platform.ts +7 -0
- package/src/utils/platform.web.ts +1 -0
- package/src/utils/routeIndex.test.ts +55 -0
- package/src/utils/routeIndex.ts +59 -0
- package/src/utils/style.ts +22 -1
- package/src/views/LoadProgressBar.web.tsx +135 -0
- package/src/views/Protected.tsx +4 -1
- package/src/views/RootErrorBoundary.tsx +2 -158
- package/src/views/RootErrorBoundary.web.tsx +163 -0
- package/src/views/RouteErrorView.tsx +66 -0
- package/src/views/RouteErrorView.web.tsx +62 -0
- package/src/views/Screen.tsx +3 -0
- package/src/vite/getManifest.ts +4 -6
- package/src/vite/one.ts +13 -59
- package/src/vite/plugins/bundledDevPlugin.ts +119 -0
- package/src/vite/plugins/devtoolsPlugin.ts +19 -0
- package/src/vite/plugins/fileSystemRouterPlugin.test.ts +19 -11
- package/src/vite/plugins/fileSystemRouterPlugin.tsx +31 -6
- package/src/vite/plugins/generateFileSystemRouteTypesPlugin.tsx +22 -11
- package/src/vite/plugins/routeModuleHmrPlugin.test.ts +73 -0
- package/src/vite/plugins/routeModuleHmrPlugin.ts +54 -0
- package/src/vite/plugins/virtualEntryPlugin.test.ts +10 -1
- package/src/vite/plugins/virtualEntryPlugin.ts +37 -9
- package/src/vite/types.ts +11 -0
- package/types/Root.d.ts +1 -1
- package/types/Root.d.ts.map +1 -1
- package/types/cli/build.d.ts.map +1 -1
- package/types/createApp.d.ts.map +1 -1
- package/types/createHandleRequest.d.ts +2 -1
- package/types/createHandleRequest.d.ts.map +1 -1
- package/types/fallbackViews/Sitemap.web.d.ts +4 -0
- package/types/fallbackViews/Sitemap.web.d.ts.map +1 -0
- package/types/fallbackViews/Unmatched.web.d.ts +2 -0
- package/types/fallbackViews/Unmatched.web.d.ts.map +1 -0
- package/types/fork/NavigationContainer.d.ts.map +1 -1
- package/types/fork/localeDirection.d.ts +9 -0
- package/types/fork/localeDirection.d.ts.map +1 -0
- package/types/fork/localeDirection.native.d.ts +3 -0
- package/types/fork/localeDirection.native.d.ts.map +1 -0
- package/types/fork/theme.d.ts +4 -0
- package/types/fork/theme.d.ts.map +1 -0
- package/types/fork/theme.native.d.ts +2 -0
- package/types/fork/theme.native.d.ts.map +1 -0
- package/types/fork/useLinking.native.d.ts +4 -4
- package/types/headless/Presentations.d.ts +13 -0
- package/types/headless/Presentations.d.ts.map +1 -0
- package/types/headless/children.d.ts +5 -0
- package/types/headless/children.d.ts.map +1 -0
- package/types/headless/devHeadlessNote.d.ts +2 -0
- package/types/headless/devHeadlessNote.d.ts.map +1 -0
- package/types/headless/keepMounted.d.ts +9 -0
- package/types/headless/keepMounted.d.ts.map +1 -0
- package/types/headless/types.d.ts +59 -0
- package/types/headless/types.d.ts.map +1 -0
- package/types/headless/useDrawer.d.ts +19 -0
- package/types/headless/useDrawer.d.ts.map +1 -0
- package/types/headless/useStack.d.ts +16 -0
- package/types/headless/useStack.d.ts.map +1 -0
- package/types/headless/useTabs.d.ts +3 -0
- package/types/headless/useTabs.d.ts.map +1 -0
- package/types/index.d.ts +6 -2
- package/types/index.d.ts.map +1 -1
- package/types/layouts/Drawer.d.ts +5 -15
- package/types/layouts/Drawer.d.ts.map +1 -1
- package/types/layouts/Drawer.web.d.ts +5 -0
- package/types/layouts/Drawer.web.d.ts.map +1 -0
- package/types/layouts/Stack.d.ts +8 -17
- package/types/layouts/Stack.d.ts.map +1 -1
- package/types/layouts/Tabs.d.ts +5 -15
- package/types/layouts/Tabs.d.ts.map +1 -1
- package/types/layouts/Tabs.web.d.ts +20 -0
- package/types/layouts/Tabs.web.d.ts.map +1 -0
- package/types/layouts/stack-navigator.d.ts +3 -2
- package/types/layouts/stack-navigator.d.ts.map +1 -1
- package/types/layouts/stack-navigator.web.d.ts +6 -0
- package/types/layouts/stack-navigator.web.d.ts.map +1 -1
- package/types/layouts/stack-utils/StackHeaderBackButton.d.ts.map +1 -1
- package/types/layouts/stack-utils/StackHeaderComponent.d.ts +1 -1
- package/types/layouts/stack-utils/StackHeaderComponent.d.ts.map +1 -1
- package/types/layouts/stack-utils/StackHeaderLeft.d.ts.map +1 -1
- package/types/layouts/stack-utils/StackHeaderRight.d.ts.map +1 -1
- package/types/layouts/stack-utils/StackHeaderSearchBar.d.ts.map +1 -1
- package/types/layouts/stack-utils/StackHeaderTitle.d.ts +1 -1
- package/types/layouts/stack-utils/StackHeaderTitle.d.ts.map +1 -1
- package/types/layouts/stack-utils/StackScreen.d.ts +5 -12
- package/types/layouts/stack-utils/StackScreen.d.ts.map +1 -1
- package/types/layouts/stack-utils/index.d.ts +1 -0
- package/types/layouts/stack-utils/index.d.ts.map +1 -1
- package/types/layouts/withLayoutContext.d.ts.map +1 -1
- package/types/link/Link.web.d.ts +3 -0
- package/types/link/Link.web.d.ts.map +1 -0
- package/types/link/useLinkTo.d.ts +1 -1
- package/types/link/useLinkTo.d.ts.map +1 -1
- package/types/router/router.d.ts.map +1 -1
- package/types/router/useScreens.d.ts.map +1 -1
- package/types/router/web/WebStackNavigator.d.ts.map +1 -1
- package/types/router/web/WebStackView.d.ts +9 -25
- package/types/router/web/WebStackView.d.ts.map +1 -1
- package/types/router/web/stackStateUtils.d.ts +1 -1
- package/types/router/web/stackStateUtils.d.ts.map +1 -1
- package/types/screensFeatureFlags.d.ts.map +1 -1
- package/types/screensFeatureFlags.native.d.ts +2 -0
- package/types/screensFeatureFlags.native.d.ts.map +1 -0
- package/types/typed-routes/generateRouteTypes.d.ts +1 -1
- package/types/typed-routes/generateRouteTypes.d.ts.map +1 -1
- package/types/ui/Slot.web.d.ts +5 -0
- package/types/ui/Slot.web.d.ts.map +1 -0
- package/types/ui/TabContext.d.ts +7 -7
- package/types/ui/TabList.web.d.ts +11 -0
- package/types/ui/TabList.web.d.ts.map +1 -0
- package/types/ui/TabRouter.d.ts +5 -5
- package/types/ui/TabRouter.d.ts.map +1 -1
- package/types/ui/TabSlot.web.d.ts +24 -0
- package/types/ui/TabSlot.web.d.ts.map +1 -0
- package/types/ui/TabTrigger.d.ts +4 -75
- package/types/ui/TabTrigger.d.ts.map +1 -1
- package/types/ui/TabTrigger.web.d.ts +11 -0
- package/types/ui/TabTrigger.web.d.ts.map +1 -0
- package/types/ui/Tabs.d.ts +2 -249
- package/types/ui/Tabs.d.ts.map +1 -1
- package/types/ui/Tabs.shared.d.ts +201 -0
- package/types/ui/Tabs.shared.d.ts.map +1 -0
- package/types/ui/Tabs.web.d.ts +10 -0
- package/types/ui/Tabs.web.d.ts.map +1 -0
- package/types/ui/useTabTrigger.d.ts +49 -0
- package/types/ui/useTabTrigger.d.ts.map +1 -0
- package/types/useBlocker.d.ts.map +1 -1
- package/types/useLoader.d.ts.map +1 -1
- package/types/utils/platform.d.ts +6 -0
- package/types/utils/platform.d.ts.map +1 -0
- package/types/utils/platform.web.d.ts +2 -0
- package/types/utils/platform.web.d.ts.map +1 -0
- package/types/utils/routeIndex.d.ts +10 -0
- package/types/utils/routeIndex.d.ts.map +1 -0
- package/types/utils/routeIndex.test.d.ts +2 -0
- package/types/utils/routeIndex.test.d.ts.map +1 -0
- package/types/utils/style.d.ts +6 -1
- package/types/utils/style.d.ts.map +1 -1
- package/types/views/LoadProgressBar.web.d.ts +21 -0
- package/types/views/LoadProgressBar.web.d.ts.map +1 -0
- package/types/views/Protected.d.ts.map +1 -1
- package/types/views/RootErrorBoundary.d.ts.map +1 -1
- package/types/views/RootErrorBoundary.web.d.ts +20 -0
- package/types/views/RootErrorBoundary.web.d.ts.map +1 -0
- package/types/views/RouteErrorView.d.ts +9 -0
- package/types/views/RouteErrorView.d.ts.map +1 -0
- package/types/views/RouteErrorView.web.d.ts +3 -0
- package/types/views/RouteErrorView.web.d.ts.map +1 -0
- package/types/views/Screen.d.ts.map +1 -1
- package/types/vite/getManifest.d.ts +2 -1
- package/types/vite/getManifest.d.ts.map +1 -1
- package/types/vite/one.d.ts.map +1 -1
- package/types/vite/plugins/bundledDevPlugin.d.ts +3 -0
- package/types/vite/plugins/bundledDevPlugin.d.ts.map +1 -0
- package/types/vite/plugins/devtoolsPlugin.d.ts.map +1 -1
- package/types/vite/plugins/fileSystemRouterPlugin.d.ts +2 -1
- package/types/vite/plugins/fileSystemRouterPlugin.d.ts.map +1 -1
- package/types/vite/plugins/generateFileSystemRouteTypesPlugin.d.ts +2 -1
- package/types/vite/plugins/generateFileSystemRouteTypesPlugin.d.ts.map +1 -1
- package/types/vite/plugins/routeModuleHmrPlugin.d.ts +3 -0
- package/types/vite/plugins/routeModuleHmrPlugin.d.ts.map +1 -0
- package/types/vite/plugins/routeModuleHmrPlugin.test.d.ts +2 -0
- package/types/vite/plugins/routeModuleHmrPlugin.test.d.ts.map +1 -0
- package/types/vite/plugins/virtualEntryPlugin.d.ts +2 -0
- package/types/vite/plugins/virtualEntryPlugin.d.ts.map +1 -1
- package/types/vite/types.d.ts +10 -0
- package/types/vite/types.d.ts.map +1 -1
- package/vendor/react-dom/package.json +1 -1
- package/dist/cjs/fork/SSRNavigationContainer.cjs +0 -149
- package/dist/cjs/fork/SSRNavigationContainer.native.js +0 -199
- package/dist/cjs/fork/SSRNavigationContainer.native.js.map +0 -1
- package/dist/cjs/router/renderingRegistry.native.js.map +0 -1
- package/dist/cjs/router/web/ScreenRenderContext.native.js.map +0 -1
- package/dist/cjs/router/web/__tests__/WebStackView.runtime.test.cjs +0 -295
- package/dist/cjs/router/web/__tests__/WebStackView.runtime.test.native.js +0 -335
- package/dist/cjs/router/web/__tests__/WebStackView.runtime.test.native.js.map +0 -1
- package/dist/cjs/router/web/__tests__/WebStackView.test.cjs +0 -464
- package/dist/cjs/router/web/__tests__/WebStackView.test.native.js +0 -515
- package/dist/cjs/router/web/__tests__/WebStackView.test.native.js.map +0 -1
- package/dist/esm/fork/SSRNavigationContainer.mjs +0 -124
- package/dist/esm/fork/SSRNavigationContainer.mjs.map +0 -1
- package/dist/esm/fork/SSRNavigationContainer.native.js +0 -160
- package/dist/esm/fork/SSRNavigationContainer.native.js.map +0 -1
- package/dist/esm/router/renderingRegistry.mjs +0 -26
- package/dist/esm/router/renderingRegistry.mjs.map +0 -1
- package/dist/esm/router/renderingRegistry.native.js +0 -26
- package/dist/esm/router/renderingRegistry.native.js.map +0 -1
- package/dist/esm/router/web/ScreenRenderContext.mjs +0 -10
- package/dist/esm/router/web/ScreenRenderContext.mjs.map +0 -1
- package/dist/esm/router/web/ScreenRenderContext.native.js +0 -10
- package/dist/esm/router/web/ScreenRenderContext.native.js.map +0 -1
- package/dist/esm/router/web/__tests__/WebStackView.runtime.test.mjs +0 -272
- package/dist/esm/router/web/__tests__/WebStackView.runtime.test.mjs.map +0 -1
- package/dist/esm/router/web/__tests__/WebStackView.runtime.test.native.js +0 -309
- package/dist/esm/router/web/__tests__/WebStackView.runtime.test.native.js.map +0 -1
- package/dist/esm/router/web/__tests__/WebStackView.test.mjs +0 -465
- package/dist/esm/router/web/__tests__/WebStackView.test.mjs.map +0 -1
- package/dist/esm/router/web/__tests__/WebStackView.test.native.js +0 -513
- package/dist/esm/router/web/__tests__/WebStackView.test.native.js.map +0 -1
- package/src/fork/SSRNavigationContainer.tsx +0 -148
- package/src/router/renderingRegistry.ts +0 -109
- package/src/router/web/ScreenRenderContext.tsx +0 -61
- package/src/router/web/__tests__/WebStackView.runtime.test.tsx +0 -309
- package/src/router/web/__tests__/WebStackView.test.tsx +0 -444
- package/types/fork/SSRNavigationContainer.d.ts +0 -16
- package/types/fork/SSRNavigationContainer.d.ts.map +0 -1
- package/types/router/renderingRegistry.d.ts +0 -90
- package/types/router/renderingRegistry.d.ts.map +0 -1
- package/types/router/web/ScreenRenderContext.d.ts +0 -46
- package/types/router/web/ScreenRenderContext.d.ts.map +0 -1
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { LinkingContext, useNavigationBuilder } from "@react-navigation/native";
|
|
3
|
+
import { Children, Fragment, isValidElement, use, useMemo, useRef } from "react";
|
|
4
|
+
import { useRouteInfo } from "../hooks.native.js";
|
|
5
|
+
import { resolveHref } from "../link/href.native.js";
|
|
6
|
+
import { useContextKey, useRouteNode } from "../router/Route.native.js";
|
|
7
|
+
import { shouldLinkExternally } from "../utils/url.native.js";
|
|
8
|
+
import { NavigatorContext } from "../views/Navigator.native.js";
|
|
9
|
+
import { triggersToScreens } from "./common.native.js";
|
|
10
|
+
import { TabTriggerMapContext } from "./TabContext.native.js";
|
|
11
|
+
import { isTabList } from "./TabList.native.js";
|
|
12
|
+
import { ExpoTabRouter } from "./TabRouter.native.js";
|
|
13
|
+
import { isTabSlot } from "./TabSlot.native.js";
|
|
14
|
+
import { isTabTrigger } from "./TabTrigger.native.js";
|
|
15
|
+
import { useComponent } from "./useComponent.native.js";
|
|
16
|
+
function _type_of(obj) {
|
|
17
|
+
"@swc/helpers - typeof";
|
|
18
|
+
|
|
19
|
+
return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
|
|
20
|
+
}
|
|
21
|
+
function useTabsWithChildren(options) {
|
|
22
|
+
var {
|
|
23
|
+
children,
|
|
24
|
+
...rest
|
|
25
|
+
} = options;
|
|
26
|
+
return useTabsWithTriggers({
|
|
27
|
+
triggers: parseTriggersFromChildren(children),
|
|
28
|
+
...rest
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
function useTabsWithTriggers(options) {
|
|
32
|
+
var {
|
|
33
|
+
triggers,
|
|
34
|
+
...rest
|
|
35
|
+
} = options;
|
|
36
|
+
var parentTriggerMap = use(TabTriggerMapContext);
|
|
37
|
+
var routeNode = useRouteNode();
|
|
38
|
+
var contextKey = useContextKey();
|
|
39
|
+
var linking = use(LinkingContext).options;
|
|
40
|
+
var routeInfo = useRouteInfo();
|
|
41
|
+
if (!routeNode || !linking) {
|
|
42
|
+
throw new Error("No RouteNode. This is likely a bug in one router.");
|
|
43
|
+
}
|
|
44
|
+
var {
|
|
45
|
+
children,
|
|
46
|
+
triggerMap
|
|
47
|
+
} = triggersToScreens(triggers, routeNode, linking, routeNode.initialRouteName, parentTriggerMap, routeInfo, contextKey);
|
|
48
|
+
var navigatorContext = useNavigationBuilder(ExpoTabRouter, {
|
|
49
|
+
children,
|
|
50
|
+
...rest,
|
|
51
|
+
triggerMap,
|
|
52
|
+
id: contextKey,
|
|
53
|
+
initialRouteName: routeNode.initialRouteName
|
|
54
|
+
});
|
|
55
|
+
var {
|
|
56
|
+
state,
|
|
57
|
+
descriptors,
|
|
58
|
+
navigation,
|
|
59
|
+
describe,
|
|
60
|
+
NavigationContent: RNNavigationContent
|
|
61
|
+
} = navigatorContext;
|
|
62
|
+
var descriptorsRef = useRef(descriptors);
|
|
63
|
+
descriptorsRef.current = descriptors;
|
|
64
|
+
var navigatorContextValue = useMemo(function () {
|
|
65
|
+
return {
|
|
66
|
+
state,
|
|
67
|
+
navigation,
|
|
68
|
+
contextKey,
|
|
69
|
+
router: ExpoTabRouter,
|
|
70
|
+
descriptorsRef
|
|
71
|
+
};
|
|
72
|
+
}, [state, navigation, contextKey]);
|
|
73
|
+
var NavigationContent = useComponent(function (children2) {
|
|
74
|
+
return /* @__PURE__ */_jsx(TabTriggerMapContext.Provider, {
|
|
75
|
+
value: triggerMap,
|
|
76
|
+
children: /* @__PURE__ */_jsx(NavigatorContext.Provider, {
|
|
77
|
+
value: navigatorContextValue,
|
|
78
|
+
children: /* @__PURE__ */_jsx(RNNavigationContent, {
|
|
79
|
+
children: children2
|
|
80
|
+
})
|
|
81
|
+
})
|
|
82
|
+
});
|
|
83
|
+
});
|
|
84
|
+
return {
|
|
85
|
+
state,
|
|
86
|
+
descriptors,
|
|
87
|
+
navigation,
|
|
88
|
+
NavigationContent,
|
|
89
|
+
describe
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
function parseTriggersFromChildren(children) {
|
|
93
|
+
var screenTriggers = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : [],
|
|
94
|
+
isInTabList = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : false;
|
|
95
|
+
Children.forEach(children, function (child) {
|
|
96
|
+
if (!child || ! /* @__PURE__ */isValidElement(child) || isTabSlot(child)) return;
|
|
97
|
+
if (isFragment(child) && typeof child.props.children !== "function") {
|
|
98
|
+
return parseTriggersFromChildren(child.props.children, screenTriggers, isInTabList || isTabList(child));
|
|
99
|
+
}
|
|
100
|
+
if (isTabList(child) && typeof child.props.children !== "function") {
|
|
101
|
+
var _$children = child.props.children;
|
|
102
|
+
if (child.props.asChild && /* @__PURE__ */isValidElement(_$children) && _$children.props && _type_of(_$children.props) === "object" && "children" in _$children.props) {
|
|
103
|
+
_$children = _$children.props.children;
|
|
104
|
+
}
|
|
105
|
+
return parseTriggersFromChildren(_$children, screenTriggers, isInTabList || isTabList(child));
|
|
106
|
+
}
|
|
107
|
+
if (!isInTabList || !isTabTrigger(child)) return;
|
|
108
|
+
var {
|
|
109
|
+
href,
|
|
110
|
+
name
|
|
111
|
+
} = child.props;
|
|
112
|
+
if (!href) {
|
|
113
|
+
if (process.env.NODE_ENV === "development") {
|
|
114
|
+
console.warn(`<TabTrigger name={${name}}> does not have a 'href' prop. TabTriggers within a <TabList /> are required to have an href.`);
|
|
115
|
+
}
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
118
|
+
var resolvedHref = resolveHref(href);
|
|
119
|
+
if (shouldLinkExternally(resolvedHref)) {
|
|
120
|
+
screenTriggers.push({
|
|
121
|
+
type: "external",
|
|
122
|
+
name,
|
|
123
|
+
href: resolvedHref
|
|
124
|
+
});
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
127
|
+
if (!name) {
|
|
128
|
+
if (process.env.NODE_ENV === "development") {
|
|
129
|
+
console.warn(`<TabTrigger> does not have a 'name' prop. TabTriggers within a <TabList /> are required to have a name.`);
|
|
130
|
+
}
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
133
|
+
screenTriggers.push({
|
|
134
|
+
type: "internal",
|
|
135
|
+
href: resolvedHref,
|
|
136
|
+
name
|
|
137
|
+
});
|
|
138
|
+
});
|
|
139
|
+
return screenTriggers;
|
|
140
|
+
}
|
|
141
|
+
function isFragment(child) {
|
|
142
|
+
return child.type === Fragment;
|
|
143
|
+
}
|
|
144
|
+
export { useTabsWithChildren, useTabsWithTriggers };
|
|
145
|
+
//# sourceMappingURL=Tabs.shared.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["jsx","_jsx","LinkingContext","useNavigationBuilder","Children","Fragment","isValidElement","use","useMemo","useRef","useRouteInfo","resolveHref","useContextKey","useRouteNode","shouldLinkExternally","NavigatorContext","triggersToScreens","TabTriggerMapContext","isTabList","ExpoTabRouter","isTabSlot","isTabTrigger","useComponent","_type_of","obj","Symbol","constructor","useTabsWithChildren","options","children","rest","useTabsWithTriggers","triggers","parseTriggersFromChildren","parentTriggerMap","routeNode","contextKey","linking","routeInfo","Error","triggerMap","initialRouteName","navigatorContext","id","state","descriptors","navigation","describe","NavigationContent","RNNavigationContent","descriptorsRef","current","navigatorContextValue","router","children2","Provider","value","screenTriggers","arguments","length","isInTabList","forEach","child","isFragment","props","_$children","asChild","href","name","process","env","NODE_ENV","console","warn","resolvedHref","push","type"],"sources":["../../../src/ui/Tabs.shared.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { use, useCallback } from "react";
|
|
2
|
+
import { appendBaseUrl } from "../fork/getPathFromState-mods.mjs";
|
|
3
|
+
import { router } from "../router/imperative-api.mjs";
|
|
4
|
+
import { stripGroupSegmentsFromPath } from "../router/matchers.mjs";
|
|
5
|
+
import { useNavigatorContext } from "../views/Navigator.mjs";
|
|
6
|
+
import { TabTriggerMapContext } from "./TabContext.mjs";
|
|
7
|
+
function shouldHandleMouseEvent(event) {
|
|
8
|
+
if (!event) return true;
|
|
9
|
+
if ("button" in event) {
|
|
10
|
+
return !event.metaKey && !event.altKey && !event.ctrlKey && !event.shiftKey && (event.button == null || event.button === 0) && [void 0, null, "", "self"].includes(event.currentTarget.target);
|
|
11
|
+
}
|
|
12
|
+
return true;
|
|
13
|
+
}
|
|
14
|
+
function useTabTrigger(options) {
|
|
15
|
+
const {
|
|
16
|
+
state,
|
|
17
|
+
navigation
|
|
18
|
+
} = useNavigatorContext();
|
|
19
|
+
const {
|
|
20
|
+
name,
|
|
21
|
+
resetOnFocus,
|
|
22
|
+
onPress,
|
|
23
|
+
onLongPress
|
|
24
|
+
} = options;
|
|
25
|
+
const triggerMap = use(TabTriggerMapContext);
|
|
26
|
+
const getTrigger = useCallback(name2 => {
|
|
27
|
+
const config = triggerMap[name2];
|
|
28
|
+
if (!config) return;
|
|
29
|
+
return {
|
|
30
|
+
isFocused: state.index === config.index,
|
|
31
|
+
route: state.routes[config.index],
|
|
32
|
+
resolvedHref: stripGroupSegmentsFromPath(appendBaseUrl(config.href)),
|
|
33
|
+
...config
|
|
34
|
+
};
|
|
35
|
+
}, [triggerMap, state]);
|
|
36
|
+
const trigger = name !== void 0 ? getTrigger(name) : void 0;
|
|
37
|
+
const switchTab = useCallback((name2, options2) => {
|
|
38
|
+
const config = triggerMap[name2];
|
|
39
|
+
if (config) {
|
|
40
|
+
if (config.type === "external") {
|
|
41
|
+
return router.navigate(config.href);
|
|
42
|
+
}
|
|
43
|
+
return navigation?.dispatch({
|
|
44
|
+
...config.action,
|
|
45
|
+
type: "JUMP_TO",
|
|
46
|
+
payload: {
|
|
47
|
+
...config.action.payload,
|
|
48
|
+
...options2
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
return navigation?.dispatch({
|
|
53
|
+
type: "JUMP_TO",
|
|
54
|
+
payload: {
|
|
55
|
+
name: name2
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
}, [navigation, triggerMap]);
|
|
59
|
+
const handleOnPress = useCallback(event => {
|
|
60
|
+
onPress?.(event);
|
|
61
|
+
if (!trigger || event?.isDefaultPrevented()) return;
|
|
62
|
+
navigation?.emit({
|
|
63
|
+
type: "tabPress",
|
|
64
|
+
target: trigger.type === "internal" ? trigger.route.key : trigger.href,
|
|
65
|
+
canPreventDefault: true
|
|
66
|
+
});
|
|
67
|
+
if (!shouldHandleMouseEvent(event) || trigger.isFocused) return;
|
|
68
|
+
switchTab(name, {
|
|
69
|
+
resetOnFocus
|
|
70
|
+
});
|
|
71
|
+
}, [onPress, name, resetOnFocus, trigger, navigation, switchTab]);
|
|
72
|
+
const handleOnLongPress = useCallback(event => {
|
|
73
|
+
onLongPress?.(event);
|
|
74
|
+
if (!trigger || event?.isDefaultPrevented()) return;
|
|
75
|
+
navigation?.emit({
|
|
76
|
+
type: "tabLongPress",
|
|
77
|
+
target: trigger.type === "internal" ? trigger.route.key : trigger.href
|
|
78
|
+
});
|
|
79
|
+
if (!shouldHandleMouseEvent(event)) return;
|
|
80
|
+
switchTab(name, {
|
|
81
|
+
resetOnFocus
|
|
82
|
+
});
|
|
83
|
+
}, [onLongPress, name, resetOnFocus, trigger, navigation, switchTab]);
|
|
84
|
+
return {
|
|
85
|
+
switchTab,
|
|
86
|
+
getTrigger,
|
|
87
|
+
trigger,
|
|
88
|
+
triggerProps: {
|
|
89
|
+
isFocused: Boolean(trigger?.isFocused),
|
|
90
|
+
onPress: handleOnPress,
|
|
91
|
+
onLongPress: handleOnLongPress
|
|
92
|
+
}
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
export { shouldHandleMouseEvent, useTabTrigger };
|
|
96
|
+
//# sourceMappingURL=useTabTrigger.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["use","useCallback","appendBaseUrl","router","stripGroupSegmentsFromPath","useNavigatorContext","TabTriggerMapContext","shouldHandleMouseEvent","event","metaKey","altKey","ctrlKey","shiftKey","button","includes","currentTarget","target","useTabTrigger","options","state","navigation","name","resetOnFocus","onPress","onLongPress","triggerMap","getTrigger","config","isFocused","index","route","routes","resolvedHref","href","trigger","switchTab","options2","type","navigate","dispatch","action","payload","name2","handleOnPress","isDefaultPrevented","emit","key","canPreventDefault","handleOnLongPress","triggerProps","Boolean"],"sources":["../../../src/ui/useTabTrigger.ts"],"sourcesContent":[null],"mappings":"AACA,SACEA,GAAA,EACAC,WAAA,QAIK;AAGP,SAASC,aAAA,QAAqB;AAE9B,SAASC,MAAA,QAAc;AACvB,SAASC,0BAAA,QAAkC;AAC3C,SAASC,mBAAA,QAA2B;AAEpC,SAASC,oBAAA,QAA4B;AAmD9B,SAASC,uBACdC,KAAA,EACS;EACT,IAAI,CAACA,KAAA,EAAO,OAAO;EAEnB,IAAI,YAAYA,KAAA,EAAO;IACrB,OACE,CAACA,KAAA,CAAMC,OAAA,IACP,CAACD,KAAA,CAAME,MAAA,IACP,CAACF,KAAA,CAAMG,OAAA,IACP,CAACH,KAAA,CAAMI,QAAA,KACNJ,KAAA,CAAMK,MAAA,IAAU,QAAQL,KAAA,CAAMK,MAAA,KAAW,MAC1C,CAAC,QAAW,MAAM,IAAI,MAAM,EAAEC,QAAA,CAAUN,KAAA,CAAMO,aAAA,CAAsBC,MAAM;EAE9E;EAEA,OAAO;AACT;AAEO,SAASC,cAAcC,OAAA,EAA+C;EAC3E,MAAM;IAAEC,KAAA;IAAOC;EAAW,IAAIf,mBAAA,CAAoB;EAClD,MAAM;IAAEgB,IAAA;IAAMC,YAAA;IAAcC,OAAA;IAASC;EAAY,IAAIN,OAAA;EACrD,MAAMO,UAAA,GAAazB,GAAA,CAAIM,oBAAoB;EAE3C,MAAMoB,UAAA,GAAazB,WAAA,CAChBoB,KAAA,IAAiB;IAChB,MAAMM,MAAA,GAASF,UAAA,CAAWJ,KAAI;IAE9B,IAAI,CAACM,MAAA,EAAQ;IAEb,OAAO;MACLC,SAAA,EAAWT,KAAA,CAAMU,KAAA,KAAUF,MAAA,CAAOE,KAAA;MAClCC,KAAA,EAAOX,KAAA,CAAMY,MAAA,CAAOJ,MAAA,CAAOE,KAAK;MAChCG,YAAA,EAAc5B,0BAAA,CAA2BF,aAAA,CAAcyB,MAAA,CAAOM,IAAI,CAAC;MACnE,GAAGN;IACL;EACF,GACA,CAACF,UAAA,EAAYN,KAAK,CACpB;EAEA,MAAMe,OAAA,GAAUb,IAAA,KAAS,SAAYK,UAAA,CAAWL,IAAI,IAAI;EAExD,MAAMc,SAAA,GAAYlC,WAAA,CAChB,CAACoB,KAAA,EAAce,QAAA,KAA8B;IAC3C,MAAMT,MAAA,GAASF,UAAA,CAAWJ,KAAI;IAE9B,IAAIM,MAAA,EAAQ;MACV,IAAIA,MAAA,CAAOU,IAAA,KAAS,YAAY;QAC9B,OAAOlC,MAAA,CAAOmC,QAAA,CAASX,MAAA,CAAOM,IAAI;MACpC;MAEA,OAAOb,UAAA,EAAYmB,QAAA,CAAS;QAC1B,GAAGZ,MAAA,CAAOa,MAAA;QACVH,IAAA,EAAM;QACNI,OAAA,EAAS;UACP,GAAGd,MAAA,CAAOa,MAAA,CAAOC,OAAA;UACjB,GAAGvB;QACL;MACF,CAAC;IACH;IAEA,OAAOE,UAAA,EAAYmB,QAAA,CAAS;MAC1BF,IAAA,EAAM;MACNI,OAAA,EAAS;QAAEpB,IAAA,EAAAqB;MAAK;IAClB,CAAC;EACH,GACA,CAACtB,UAAA,EAAYK,UAAU,CACzB;EAEA,MAAMkB,aAAA,GAAgB1C,WAAA,CACnBO,KAAA,IAAU;IACTe,OAAA,GAAUf,KAAK;IACf,IAAI,CAAC0B,OAAA,IAAW1B,KAAA,EAAOoC,kBAAA,CAAmB,GAAG;IAE7CxB,UAAA,EAAYyB,IAAA,CAAK;MACfR,IAAA,EAAM;MACNrB,MAAA,EAAQkB,OAAA,CAAQG,IAAA,KAAS,aAAaH,OAAA,CAAQJ,KAAA,CAAMgB,GAAA,GAAMZ,OAAA,CAAQD,IAAA;MAClEc,iBAAA,EAAmB;IACrB,CAAC;IAED,IAAI,CAACxC,sBAAA,CAAuBC,KAAK,KAAK0B,OAAA,CAAQN,SAAA,EAAW;IAEzDO,SAAA,CAAUd,IAAA,EAAM;MAAEC;IAAa,CAAC;EAClC,GACA,CAACC,OAAA,EAASF,IAAA,EAAMC,YAAA,EAAcY,OAAA,EAASd,UAAA,EAAYe,SAAS,CAC9D;EAEA,MAAMa,iBAAA,GAAoB/C,WAAA,CACvBO,KAAA,IAAU;IACTgB,WAAA,GAAchB,KAAK;IACnB,IAAI,CAAC0B,OAAA,IAAW1B,KAAA,EAAOoC,kBAAA,CAAmB,GAAG;IAE7CxB,UAAA,EAAYyB,IAAA,CAAK;MACfR,IAAA,EAAM;MACNrB,MAAA,EAAQkB,OAAA,CAAQG,IAAA,KAAS,aAAaH,OAAA,CAAQJ,KAAA,CAAMgB,GAAA,GAAMZ,OAAA,CAAQD;IACpE,CAAC;IAED,IAAI,CAAC1B,sBAAA,CAAuBC,KAAK,GAAG;IAEpC2B,SAAA,CAAUd,IAAA,EAAM;MAAEC;IAAa,CAAC;EAClC,GACA,CAACE,WAAA,EAAaH,IAAA,EAAMC,YAAA,EAAcY,OAAA,EAASd,UAAA,EAAYe,SAAS,CAClE;EAEA,OAAO;IACLA,SAAA;IACAT,UAAA;IACAQ,OAAA;IACAe,YAAA,EAAc;MACZrB,SAAA,EAAWsB,OAAA,CAAQhB,OAAA,EAASN,SAAS;MACrCL,OAAA,EAASoB,aAAA;MACTnB,WAAA,EAAawB;IACf;EACF;AACF","ignoreList":[]}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { use, useCallback } from "react";
|
|
2
|
+
import { appendBaseUrl } from "../fork/getPathFromState-mods.native.js";
|
|
3
|
+
import { router } from "../router/imperative-api.native.js";
|
|
4
|
+
import { stripGroupSegmentsFromPath } from "../router/matchers.native.js";
|
|
5
|
+
import { useNavigatorContext } from "../views/Navigator.native.js";
|
|
6
|
+
import { TabTriggerMapContext } from "./TabContext.native.js";
|
|
7
|
+
function shouldHandleMouseEvent(event) {
|
|
8
|
+
if (!event) return true;
|
|
9
|
+
if ("button" in event) {
|
|
10
|
+
return !event.metaKey && !event.altKey && !event.ctrlKey && !event.shiftKey && (event.button == null || event.button === 0) && [void 0, null, "", "self"].includes(event.currentTarget.target);
|
|
11
|
+
}
|
|
12
|
+
return true;
|
|
13
|
+
}
|
|
14
|
+
function useTabTrigger(options) {
|
|
15
|
+
var {
|
|
16
|
+
state,
|
|
17
|
+
navigation
|
|
18
|
+
} = useNavigatorContext();
|
|
19
|
+
var {
|
|
20
|
+
name,
|
|
21
|
+
resetOnFocus,
|
|
22
|
+
onPress,
|
|
23
|
+
onLongPress
|
|
24
|
+
} = options;
|
|
25
|
+
var triggerMap = use(TabTriggerMapContext);
|
|
26
|
+
var getTrigger = useCallback(function (name2) {
|
|
27
|
+
var config = triggerMap[name2];
|
|
28
|
+
if (!config) return;
|
|
29
|
+
return {
|
|
30
|
+
isFocused: state.index === config.index,
|
|
31
|
+
route: state.routes[config.index],
|
|
32
|
+
resolvedHref: stripGroupSegmentsFromPath(appendBaseUrl(config.href)),
|
|
33
|
+
...config
|
|
34
|
+
};
|
|
35
|
+
}, [triggerMap, state]);
|
|
36
|
+
var trigger = name !== void 0 ? getTrigger(name) : void 0;
|
|
37
|
+
var switchTab = useCallback(function (name2, options2) {
|
|
38
|
+
var config = triggerMap[name2];
|
|
39
|
+
if (config) {
|
|
40
|
+
if (config.type === "external") {
|
|
41
|
+
return router.navigate(config.href);
|
|
42
|
+
}
|
|
43
|
+
return navigation === null || navigation === void 0 ? void 0 : navigation.dispatch({
|
|
44
|
+
...config.action,
|
|
45
|
+
type: "JUMP_TO",
|
|
46
|
+
payload: {
|
|
47
|
+
...config.action.payload,
|
|
48
|
+
...options2
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
return navigation === null || navigation === void 0 ? void 0 : navigation.dispatch({
|
|
53
|
+
type: "JUMP_TO",
|
|
54
|
+
payload: {
|
|
55
|
+
name: name2
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
}, [navigation, triggerMap]);
|
|
59
|
+
var handleOnPress = useCallback(function (event) {
|
|
60
|
+
onPress === null || onPress === void 0 ? void 0 : onPress(event);
|
|
61
|
+
if (!trigger || (event === null || event === void 0 ? void 0 : event.isDefaultPrevented())) return;
|
|
62
|
+
navigation === null || navigation === void 0 ? void 0 : navigation.emit({
|
|
63
|
+
type: "tabPress",
|
|
64
|
+
target: trigger.type === "internal" ? trigger.route.key : trigger.href,
|
|
65
|
+
canPreventDefault: true
|
|
66
|
+
});
|
|
67
|
+
if (!shouldHandleMouseEvent(event) || trigger.isFocused) return;
|
|
68
|
+
switchTab(name, {
|
|
69
|
+
resetOnFocus
|
|
70
|
+
});
|
|
71
|
+
}, [onPress, name, resetOnFocus, trigger, navigation, switchTab]);
|
|
72
|
+
var handleOnLongPress = useCallback(function (event) {
|
|
73
|
+
onLongPress === null || onLongPress === void 0 ? void 0 : onLongPress(event);
|
|
74
|
+
if (!trigger || (event === null || event === void 0 ? void 0 : event.isDefaultPrevented())) return;
|
|
75
|
+
navigation === null || navigation === void 0 ? void 0 : navigation.emit({
|
|
76
|
+
type: "tabLongPress",
|
|
77
|
+
target: trigger.type === "internal" ? trigger.route.key : trigger.href
|
|
78
|
+
});
|
|
79
|
+
if (!shouldHandleMouseEvent(event)) return;
|
|
80
|
+
switchTab(name, {
|
|
81
|
+
resetOnFocus
|
|
82
|
+
});
|
|
83
|
+
}, [onLongPress, name, resetOnFocus, trigger, navigation, switchTab]);
|
|
84
|
+
return {
|
|
85
|
+
switchTab,
|
|
86
|
+
getTrigger,
|
|
87
|
+
trigger,
|
|
88
|
+
triggerProps: {
|
|
89
|
+
isFocused: Boolean(trigger === null || trigger === void 0 ? void 0 : trigger.isFocused),
|
|
90
|
+
onPress: handleOnPress,
|
|
91
|
+
onLongPress: handleOnLongPress
|
|
92
|
+
}
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
export { shouldHandleMouseEvent, useTabTrigger };
|
|
96
|
+
//# sourceMappingURL=useTabTrigger.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["use","useCallback","appendBaseUrl","router","stripGroupSegmentsFromPath","useNavigatorContext","TabTriggerMapContext","shouldHandleMouseEvent","event","metaKey","altKey","ctrlKey","shiftKey","button","includes","currentTarget","target","useTabTrigger","options","state","navigation","name","resetOnFocus","onPress","onLongPress","triggerMap","getTrigger","name2","config","isFocused","index","route","routes","resolvedHref","href","trigger","switchTab","options2","type","navigate","dispatch","action","payload","handleOnPress","isDefaultPrevented","emit","key","canPreventDefault","handleOnLongPress"],"sources":["../../../src/ui/useTabTrigger.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/dist/esm/useBlocker.mjs
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
|
-
import { Platform } from "react-native-web";
|
|
3
2
|
let currentLocation = typeof window !== "undefined" ? window.location.pathname + window.location.search : "";
|
|
4
|
-
let isBlocking = false;
|
|
5
3
|
let isProceeding = false;
|
|
6
4
|
let pendingNavigation = null;
|
|
7
5
|
const blockerCallbacks = /* @__PURE__ */new Map();
|
|
@@ -13,70 +11,55 @@ function setupListeners() {
|
|
|
13
11
|
window.addEventListener("popstate", () => {
|
|
14
12
|
if (isProceeding) return;
|
|
15
13
|
const nextLocation = window.location.pathname + window.location.search;
|
|
16
|
-
for (const [, callbacks] of blockerCallbacks) {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
callbacks.onBlock(pendingNavigation);
|
|
26
|
-
return;
|
|
27
|
-
}
|
|
14
|
+
for (const [, callbacks] of blockerCallbacks) if (callbacks.shouldBlock()) {
|
|
15
|
+
pendingNavigation = {
|
|
16
|
+
previousLocation: currentLocation,
|
|
17
|
+
nextLocation,
|
|
18
|
+
historyAction: "pop"
|
|
19
|
+
};
|
|
20
|
+
window.history.go(1);
|
|
21
|
+
callbacks.onBlock(pendingNavigation);
|
|
22
|
+
return;
|
|
28
23
|
}
|
|
29
24
|
currentLocation = nextLocation;
|
|
30
25
|
});
|
|
31
26
|
const originalPushState = window.history.pushState.bind(window.history);
|
|
32
27
|
const originalReplaceState = window.history.replaceState.bind(window.history);
|
|
33
28
|
window.history.pushState = function (state, title, url) {
|
|
34
|
-
if (isProceeding || !url)
|
|
35
|
-
return originalPushState(state, title, url);
|
|
36
|
-
}
|
|
29
|
+
if (isProceeding || !url) return originalPushState(state, title, url);
|
|
37
30
|
const nextLocation = typeof url === "string" ? url : url.toString();
|
|
38
|
-
for (const [, callbacks] of blockerCallbacks) {
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
callbacks.onBlock(pendingNavigation);
|
|
47
|
-
return;
|
|
48
|
-
}
|
|
31
|
+
for (const [, callbacks] of blockerCallbacks) if (callbacks.shouldBlock()) {
|
|
32
|
+
pendingNavigation = {
|
|
33
|
+
previousLocation: currentLocation,
|
|
34
|
+
nextLocation,
|
|
35
|
+
historyAction: "push"
|
|
36
|
+
};
|
|
37
|
+
callbacks.onBlock(pendingNavigation);
|
|
38
|
+
return;
|
|
49
39
|
}
|
|
50
40
|
currentLocation = nextLocation;
|
|
51
41
|
return originalPushState(state, title, url);
|
|
52
42
|
};
|
|
53
43
|
window.history.replaceState = function (state, title, url) {
|
|
54
|
-
if (isProceeding || !url)
|
|
55
|
-
return originalReplaceState(state, title, url);
|
|
56
|
-
}
|
|
44
|
+
if (isProceeding || !url) return originalReplaceState(state, title, url);
|
|
57
45
|
const nextLocation = typeof url === "string" ? url : url.toString();
|
|
58
|
-
for (const [, callbacks] of blockerCallbacks) {
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
callbacks.onBlock(pendingNavigation);
|
|
67
|
-
return;
|
|
68
|
-
}
|
|
46
|
+
for (const [, callbacks] of blockerCallbacks) if (callbacks.shouldBlock()) {
|
|
47
|
+
pendingNavigation = {
|
|
48
|
+
previousLocation: currentLocation,
|
|
49
|
+
nextLocation,
|
|
50
|
+
historyAction: "replace"
|
|
51
|
+
};
|
|
52
|
+
callbacks.onBlock(pendingNavigation);
|
|
53
|
+
return;
|
|
69
54
|
}
|
|
70
55
|
currentLocation = nextLocation;
|
|
71
56
|
return originalReplaceState(state, title, url);
|
|
72
57
|
};
|
|
73
58
|
window.addEventListener("beforeunload", event => {
|
|
74
|
-
for (const [, callbacks] of blockerCallbacks) {
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
return;
|
|
79
|
-
}
|
|
59
|
+
for (const [, callbacks] of blockerCallbacks) if (callbacks.shouldBlock()) {
|
|
60
|
+
event.preventDefault();
|
|
61
|
+
event.returnValue = "";
|
|
62
|
+
return;
|
|
80
63
|
}
|
|
81
64
|
});
|
|
82
65
|
}
|
|
@@ -87,20 +70,18 @@ function useBlocker(shouldBlock) {
|
|
|
87
70
|
const shouldBlockRef = React.useRef(shouldBlock);
|
|
88
71
|
shouldBlockRef.current = shouldBlock;
|
|
89
72
|
React.useEffect(() => {
|
|
90
|
-
if (
|
|
73
|
+
if (typeof window === "undefined") return;
|
|
91
74
|
setupListeners();
|
|
92
75
|
const id = /* @__PURE__ */Symbol("blocker");
|
|
93
76
|
idRef.current = id;
|
|
94
77
|
blockerCallbacks.set(id, {
|
|
95
78
|
shouldBlock: () => {
|
|
96
79
|
const block = shouldBlockRef.current;
|
|
97
|
-
if (typeof block === "function") {
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
});
|
|
103
|
-
}
|
|
80
|
+
if (typeof block === "function") return block({
|
|
81
|
+
currentLocation,
|
|
82
|
+
nextLocation: pendingNavigation?.nextLocation || "",
|
|
83
|
+
historyAction: pendingNavigation?.historyAction || "push"
|
|
84
|
+
});
|
|
104
85
|
return block;
|
|
105
86
|
},
|
|
106
87
|
onBlock: pending => {
|
|
@@ -120,7 +101,6 @@ function useBlocker(shouldBlock) {
|
|
|
120
101
|
};
|
|
121
102
|
}, []);
|
|
122
103
|
const reset = React.useCallback(() => {
|
|
123
|
-
isBlocking = false;
|
|
124
104
|
pendingNavigation = null;
|
|
125
105
|
setBlockedLocation(null);
|
|
126
106
|
setState("unblocked");
|
|
@@ -131,15 +111,8 @@ function useBlocker(shouldBlock) {
|
|
|
131
111
|
isProceeding = true;
|
|
132
112
|
const pending = pendingNavigation;
|
|
133
113
|
pendingNavigation = null;
|
|
134
|
-
isBlocking = false;
|
|
135
114
|
requestAnimationFrame(() => {
|
|
136
|
-
if (pending.historyAction === "pop")
|
|
137
|
-
window.history.back();
|
|
138
|
-
} else if (pending.historyAction === "push") {
|
|
139
|
-
window.history.pushState(null, "", pending.nextLocation);
|
|
140
|
-
} else {
|
|
141
|
-
window.history.replaceState(null, "", pending.nextLocation);
|
|
142
|
-
}
|
|
115
|
+
if (pending.historyAction === "pop") window.history.back();else if (pending.historyAction === "push") window.history.pushState(null, "", pending.nextLocation);else window.history.replaceState(null, "", pending.nextLocation);
|
|
143
116
|
currentLocation = pending.nextLocation;
|
|
144
117
|
requestAnimationFrame(() => {
|
|
145
118
|
isProceeding = false;
|
|
@@ -148,17 +121,13 @@ function useBlocker(shouldBlock) {
|
|
|
148
121
|
});
|
|
149
122
|
});
|
|
150
123
|
}, []);
|
|
151
|
-
if (state === "unblocked") {
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
state: "proceeding",
|
|
159
|
-
location: blockedLocation
|
|
160
|
-
};
|
|
161
|
-
}
|
|
124
|
+
if (state === "unblocked") return {
|
|
125
|
+
state: "unblocked"
|
|
126
|
+
};
|
|
127
|
+
if (state === "proceeding") return {
|
|
128
|
+
state: "proceeding",
|
|
129
|
+
location: blockedLocation
|
|
130
|
+
};
|
|
162
131
|
return {
|
|
163
132
|
state: "blocked",
|
|
164
133
|
reset,
|
|
@@ -167,23 +136,16 @@ function useBlocker(shouldBlock) {
|
|
|
167
136
|
};
|
|
168
137
|
}
|
|
169
138
|
function checkBlocker(nextLocation, historyAction = "push") {
|
|
170
|
-
if (
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
previousLocation: currentLocation,
|
|
181
|
-
nextLocation,
|
|
182
|
-
historyAction
|
|
183
|
-
};
|
|
184
|
-
callbacks.onBlock(pendingNavigation);
|
|
185
|
-
return true;
|
|
186
|
-
}
|
|
139
|
+
if (typeof window === "undefined") return false;
|
|
140
|
+
if (isProceeding) return false;
|
|
141
|
+
for (const [, callbacks] of blockerCallbacks) if (callbacks.shouldBlock()) {
|
|
142
|
+
pendingNavigation = {
|
|
143
|
+
previousLocation: currentLocation,
|
|
144
|
+
nextLocation,
|
|
145
|
+
historyAction
|
|
146
|
+
};
|
|
147
|
+
callbacks.onBlock(pendingNavigation);
|
|
148
|
+
return true;
|
|
187
149
|
}
|
|
188
150
|
return false;
|
|
189
151
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Platform","currentLocation","window","location","pathname","search","isBlocking","isProceeding","pendingNavigation","blockerCallbacks","Map","listenersSetup","setupListeners","addEventListener","nextLocation","callbacks","shouldBlock","previousLocation","historyAction","history","go","onBlock","originalPushState","pushState","bind","originalReplaceState","replaceState","state","title","url","toString","event","preventDefault","returnValue","useBlocker","setState","useState","blockedLocation","setBlockedLocation","idRef","useRef","shouldBlockRef","current","useEffect","OS","id","Symbol","set","block","pending","onProceed","onReset","delete","reset","useCallback","proceed","requestAnimationFrame","back","checkBlocker"],"sources":["../../src/useBlocker.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","currentLocation","window","location","pathname","search","isProceeding","pendingNavigation","blockerCallbacks","Map","listenersSetup","setupListeners","addEventListener","nextLocation","callbacks","shouldBlock","previousLocation","historyAction","history","go","onBlock","originalPushState","pushState","bind","originalReplaceState","replaceState","state","title","url","toString","event","preventDefault","returnValue","useBlocker","setState","useState","blockedLocation","setBlockedLocation","idRef","useRef","shouldBlockRef","current","useEffect","id","Symbol","set","block","pending","onProceed","onReset","delete","reset","useCallback","proceed","requestAnimationFrame","back","checkBlocker"],"sources":["useBlocker.mjs"],"sourcesContent":["import * as React from \"react\";\n\nlet currentLocation = typeof window !== \"undefined\" ? window.location.pathname + window.location.search : \"\";\nlet isProceeding = false;\nlet pendingNavigation = null;\nconst blockerCallbacks = /* @__PURE__ */ new Map();\nlet listenersSetup = false;\nfunction setupListeners() {\n\tif (listenersSetup || typeof window === \"undefined\") return;\n\tlistenersSetup = true;\n\tcurrentLocation = window.location.pathname + window.location.search;\n\twindow.addEventListener(\"popstate\", () => {\n\t\tif (isProceeding) return;\n\t\tconst nextLocation = window.location.pathname + window.location.search;\n\t\tfor (const [, callbacks] of blockerCallbacks) if (callbacks.shouldBlock()) {\n\t\t\tpendingNavigation = {\n\t\t\t\tpreviousLocation: currentLocation,\n\t\t\t\tnextLocation,\n\t\t\t\thistoryAction: \"pop\"\n\t\t\t};\n\t\t\twindow.history.go(1);\n\t\t\tcallbacks.onBlock(pendingNavigation);\n\t\t\treturn;\n\t\t}\n\t\tcurrentLocation = nextLocation;\n\t});\n\tconst originalPushState = window.history.pushState.bind(window.history);\n\tconst originalReplaceState = window.history.replaceState.bind(window.history);\n\twindow.history.pushState = function(state, title, url) {\n\t\tif (isProceeding || !url) return originalPushState(state, title, url);\n\t\tconst nextLocation = typeof url === \"string\" ? url : url.toString();\n\t\tfor (const [, callbacks] of blockerCallbacks) if (callbacks.shouldBlock()) {\n\t\t\tpendingNavigation = {\n\t\t\t\tpreviousLocation: currentLocation,\n\t\t\t\tnextLocation,\n\t\t\t\thistoryAction: \"push\"\n\t\t\t};\n\t\t\tcallbacks.onBlock(pendingNavigation);\n\t\t\treturn;\n\t\t}\n\t\tcurrentLocation = nextLocation;\n\t\treturn originalPushState(state, title, url);\n\t};\n\twindow.history.replaceState = function(state, title, url) {\n\t\tif (isProceeding || !url) return originalReplaceState(state, title, url);\n\t\tconst nextLocation = typeof url === \"string\" ? url : url.toString();\n\t\tfor (const [, callbacks] of blockerCallbacks) if (callbacks.shouldBlock()) {\n\t\t\tpendingNavigation = {\n\t\t\t\tpreviousLocation: currentLocation,\n\t\t\t\tnextLocation,\n\t\t\t\thistoryAction: \"replace\"\n\t\t\t};\n\t\t\tcallbacks.onBlock(pendingNavigation);\n\t\t\treturn;\n\t\t}\n\t\tcurrentLocation = nextLocation;\n\t\treturn originalReplaceState(state, title, url);\n\t};\n\twindow.addEventListener(\"beforeunload\", (event) => {\n\t\tfor (const [, callbacks] of blockerCallbacks) if (callbacks.shouldBlock()) {\n\t\t\tevent.preventDefault();\n\t\t\tevent.returnValue = \"\";\n\t\t\treturn;\n\t\t}\n\t});\n}\nfunction useBlocker(shouldBlock) {\n\tconst [state, setState] = React.useState(\"unblocked\");\n\tconst [blockedLocation, setBlockedLocation] = React.useState(null);\n\tconst idRef = React.useRef(null);\n\tconst shouldBlockRef = React.useRef(shouldBlock);\n\tshouldBlockRef.current = shouldBlock;\n\tReact.useEffect(() => {\n\t\tif (typeof window === \"undefined\") return;\n\t\tsetupListeners();\n\t\tconst id = /* @__PURE__ */ Symbol(\"blocker\");\n\t\tidRef.current = id;\n\t\tblockerCallbacks.set(id, {\n\t\t\tshouldBlock: () => {\n\t\t\t\tconst block = shouldBlockRef.current;\n\t\t\t\tif (typeof block === \"function\") return block({\n\t\t\t\t\tcurrentLocation,\n\t\t\t\t\tnextLocation: pendingNavigation?.nextLocation || \"\",\n\t\t\t\t\thistoryAction: pendingNavigation?.historyAction || \"push\"\n\t\t\t\t});\n\t\t\t\treturn block;\n\t\t\t},\n\t\t\tonBlock: (pending) => {\n\t\t\t\tsetBlockedLocation(pending.nextLocation);\n\t\t\t\tsetState(\"blocked\");\n\t\t\t},\n\t\t\tonProceed: () => {\n\t\t\t\tsetState(\"proceeding\");\n\t\t\t},\n\t\t\tonReset: () => {\n\t\t\t\tsetState(\"unblocked\");\n\t\t\t\tsetBlockedLocation(null);\n\t\t\t}\n\t\t});\n\t\treturn () => {\n\t\t\tblockerCallbacks.delete(id);\n\t\t};\n\t}, []);\n\tconst reset = React.useCallback(() => {\n\t\tpendingNavigation = null;\n\t\tsetBlockedLocation(null);\n\t\tsetState(\"unblocked\");\n\t}, []);\n\tconst proceed = React.useCallback(() => {\n\t\tif (!pendingNavigation) return;\n\t\tsetState(\"proceeding\");\n\t\tisProceeding = true;\n\t\tconst pending = pendingNavigation;\n\t\tpendingNavigation = null;\n\t\trequestAnimationFrame(() => {\n\t\t\tif (pending.historyAction === \"pop\") window.history.back();\n\t\t\telse if (pending.historyAction === \"push\") window.history.pushState(null, \"\", pending.nextLocation);\n\t\t\telse window.history.replaceState(null, \"\", pending.nextLocation);\n\t\t\tcurrentLocation = pending.nextLocation;\n\t\t\trequestAnimationFrame(() => {\n\t\t\t\tisProceeding = false;\n\t\t\t\tsetBlockedLocation(null);\n\t\t\t\tsetState(\"unblocked\");\n\t\t\t});\n\t\t});\n\t}, []);\n\tif (state === \"unblocked\") return { state: \"unblocked\" };\n\tif (state === \"proceeding\") return {\n\t\tstate: \"proceeding\",\n\t\tlocation: blockedLocation\n\t};\n\treturn {\n\t\tstate: \"blocked\",\n\t\treset,\n\t\tproceed,\n\t\tlocation: blockedLocation\n\t};\n}\nfunction checkBlocker(nextLocation, historyAction = \"push\") {\n\tif (typeof window === \"undefined\") return false;\n\tif (isProceeding) return false;\n\tfor (const [, callbacks] of blockerCallbacks) if (callbacks.shouldBlock()) {\n\t\tpendingNavigation = {\n\t\t\tpreviousLocation: currentLocation,\n\t\t\tnextLocation,\n\t\t\thistoryAction\n\t\t};\n\t\tcallbacks.onBlock(pendingNavigation);\n\t\treturn true;\n\t}\n\treturn false;\n}\n\nexport { checkBlocker, useBlocker };"],"mappings":"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","ignoreList":[]}
|
|
@@ -23,24 +23,6 @@ var MAX_TIMING_HISTORY = 50;
|
|
|
23
23
|
var recordLoaderTiming = process.env.NODE_ENV === "development" ? function (entry) {
|
|
24
24
|
loaderTimingHistory.unshift(entry);
|
|
25
25
|
if (loaderTimingHistory.length > MAX_TIMING_HISTORY) loaderTimingHistory.pop();
|
|
26
|
-
if (typeof window !== "undefined" && typeof CustomEvent !== "undefined") {
|
|
27
|
-
window.dispatchEvent(new CustomEvent("one-loader-timing", {
|
|
28
|
-
detail: entry
|
|
29
|
-
}));
|
|
30
|
-
if (entry.error) window.dispatchEvent(new CustomEvent("one-error", {
|
|
31
|
-
detail: {
|
|
32
|
-
error: {
|
|
33
|
-
message: entry.error,
|
|
34
|
-
name: "LoaderError"
|
|
35
|
-
},
|
|
36
|
-
route: {
|
|
37
|
-
pathname: entry.path
|
|
38
|
-
},
|
|
39
|
-
timestamp: Date.now(),
|
|
40
|
-
type: "loader"
|
|
41
|
-
}
|
|
42
|
-
}));
|
|
43
|
-
}
|
|
44
26
|
} : void 0;
|
|
45
27
|
function getLoaderTimingHistory() {
|
|
46
28
|
return loaderTimingHistory;
|