{"version":3,"file":"WebStackNavigator.js","names":[],"sources":["esm/router/web/WebStackNavigator.js"],"sourcesContent":["\"use client\";\nimport {\n  createNavigatorFactory,\n  useNavigationBuilder\n} from \"@react-navigation/core\";\nimport {\n  CommonActions,\n  StackActions,\n  StackRouter\n} from \"@react-navigation/routers\";\nimport { useEffect } from \"react\";\nimport { findLastNonOverlayIndex } from \"./stackStateUtils\";\nimport { WebStackView } from \"./WebStackView\";\nimport { jsx } from \"react/jsx-runtime\";\nfunction WebStackNavigator({\n  initialRouteName,\n  children,\n  screenOptions,\n  headlessChildren,\n  ...rest\n}) {\n  const { state, navigation, descriptors, render } = useNavigationBuilder(StackRouter, {\n    ...rest,\n    children,\n    screenOptions,\n    initialRouteName\n  });\n  useEffect(() => {\n    if (!initialRouteName) return;\n    if (!state.routeNames.includes(initialRouteName)) return;\n    if (findLastNonOverlayIndex(state, descriptors) !== -1) return;\n    const timer = setTimeout(() => {\n      const current = navigation.getState();\n      if (findLastNonOverlayIndex(current, descriptors) !== -1) return;\n      navigation.dispatch({\n        ...CommonActions.reset({\n          stale: true,\n          routes: [\n            { name: initialRouteName, params: void 0 },\n            ...current.routes.map(({ key, name, params, path }) => ({\n              key,\n              name,\n              params,\n              path\n            }))\n          ],\n          index: current.routes.length\n        }),\n        target: current.key\n      });\n    }, 0);\n    return () => clearTimeout(timer);\n  }, [initialRouteName, state, descriptors, navigation]);\n  useEffect(() => {\n    return navigation?.addListener?.(\"tabPress\", (e) => {\n      const isFocused = navigation.isFocused();\n      requestAnimationFrame(() => {\n        if (state.index > 0 && isFocused && !e.defaultPrevented) {\n          navigation.dispatch({\n            ...StackActions.popToTop(),\n            target: state.key\n          });\n        }\n      });\n    });\n  }, [navigation, state.index, state.key]);\n  return render(\n    /* @__PURE__ */ jsx(\n      WebStackView,\n      {\n        state,\n        navigation,\n        descriptors,\n        customChildren: headlessChildren\n      }\n    )\n  );\n}\nconst createWebStackNavigator = createNavigatorFactory(WebStackNavigator);\nexport {\n  createWebStackNavigator\n};\n//# sourceMappingURL=WebStackNavigator.js.map\n"],"mappings":";;;;;;;;;;AAcA,SAAS,kBAAkB,EACzB,kBACA,UACA,eACA,kBACA,GAAG,QACF;CACD,MAAM,EAAE,OAAO,YAAY,aAAa,WAAW,qBAAqB,aAAa;EACnF,GAAG;EACH;EACA;EACA;CACF,CAAC;CACD,gBAAgB;EACd,IAAI,CAAC,kBAAkB;EACvB,IAAI,CAAC,MAAM,WAAW,SAAS,gBAAgB,GAAG;EAClD,IAAI,wBAAwB,OAAO,WAAW,MAAM,CAAC,GAAG;EACxD,MAAM,QAAQ,iBAAiB;GAC7B,MAAM,UAAU,WAAW,SAAS;GACpC,IAAI,wBAAwB,SAAS,WAAW,MAAM,CAAC,GAAG;GAC1D,WAAW,SAAS;IAClB,GAAG,cAAc,MAAM;KACrB,OAAO;KACP,QAAQ,CACN;MAAE,MAAM;MAAkB,QAAQ,KAAK;KAAE,GACzC,GAAG,QAAQ,OAAO,KAAK,EAAE,KAAK,MAAM,QAAQ,YAAY;MACtD;MACA;MACA;MACA;KACF,EAAE,CACJ;KACA,OAAO,QAAQ,OAAO;IACxB,CAAC;IACD,QAAQ,QAAQ;GAClB,CAAC;EACH,GAAG,CAAC;EACJ,aAAa,aAAa,KAAK;CACjC,GAAG;EAAC;EAAkB;EAAO;EAAa;CAAU,CAAC;CACrD,gBAAgB;EACd,OAAO,YAAY,cAAc,aAAa,MAAM;GAClD,MAAM,YAAY,WAAW,UAAU;GACvC,4BAA4B;IAC1B,IAAI,MAAM,QAAQ,KAAK,aAAa,CAAC,EAAE,kBAAkB;KACvD,WAAW,SAAS;MAClB,GAAG,aAAa,SAAS;MACzB,QAAQ,MAAM;KAChB,CAAC;IACH;GACF,CAAC;EACH,CAAC;CACH,GAAG;EAAC;EAAY,MAAM;EAAO,MAAM;CAAG,CAAC;CACvC,OAAO,OACW,oBACd,cACA;EACE;EACA;EACA;EACA,gBAAgB;CAClB,CACF,CACF;AACF;AACA,MAAM,0BAA0B,uBAAuB,iBAAiB"}