{"version":3,"names":["useNavigationBuilder","TabRouter","Children","Fragment","forwardRef","useMemo","useRef","getPathFromState","getCustomNavigatorChildren","isNavigatorConfigChild","devHeadlessNote","renderKeptMountedScreens","useVisitedScreens","useTabs","getResolvedLinking","TabTriggerMapContext","NavigatorContext","Protected","Screen","withLayoutContext","jsx","WebTabsNavigator","children","headlessChildren","initialRouteName","screenOptions","id","rest","state","navigation","descriptors","NavigationContent","descriptorsRef","current","linking","navigatorContextValue","contextKey","router","triggerMap","Object","fromEntries","routes","map","route","index","options","key","href","config","name","type","action","payload","Provider","value","HeadlessTabsView","customChildren","screens","focused","visited","length","RNTabs","TabsWithChildren","TabsWithChildren2","props","ref","configChildren","toArray","filter","Tabs","assign","Tabs_web_default","default"],"sources":["Tabs.mjs"],"sourcesContent":["\"use client\";\nimport { useNavigationBuilder } from \"@react-navigation/core\";\nimport {\n  TabRouter\n} from \"@react-navigation/routers\";\nimport { Children, Fragment, forwardRef, useMemo, useRef } from \"react\";\nimport { getPathFromState } from \"../fork/getPathFromState\";\nimport { getCustomNavigatorChildren, isNavigatorConfigChild } from \"../headless/children\";\nimport { devHeadlessNote } from \"../headless/devHeadlessNote\";\nimport { renderKeptMountedScreens, useVisitedScreens } from \"../headless/keepMounted\";\nimport { useTabs } from \"../headless/useTabs\";\nimport { getResolvedLinking } from \"../router/linkingConfig\";\nimport { TabTriggerMapContext } from \"../ui/TabContext\";\nimport { NavigatorContext } from \"../views/Navigator\";\nimport { Protected } from \"../views/Protected\";\nimport { Screen } from \"../views/Screen\";\nimport { withLayoutContext } from \"./withLayoutContext\";\nimport { jsx } from \"react/jsx-runtime\";\nfunction WebTabsNavigator({\n  children,\n  headlessChildren,\n  initialRouteName,\n  screenOptions,\n  id,\n  ...rest\n}) {\n  const { state, navigation, descriptors, NavigationContent } = useNavigationBuilder(TabRouter, {\n    ...rest,\n    children,\n    initialRouteName,\n    screenOptions\n  });\n  const descriptorsRef = useRef(descriptors);\n  descriptorsRef.current = descriptors;\n  const linking = getResolvedLinking();\n  const navigatorContextValue = useMemo(\n    () => ({\n      contextKey: id ?? \"\",\n      state,\n      navigation,\n      descriptorsRef,\n      router: TabRouter\n    }),\n    [id, navigation, state]\n  );\n  const triggerMap = useMemo(() => {\n    return Object.fromEntries(\n      state.routes.map((route, index) => {\n        const options = descriptors[route.key]?.options ?? {};\n        const href = typeof options.href === \"string\" ? options.href : (linking?.getPathFromState ?? getPathFromState)(\n          { ...state, index },\n          linking?.config\n        );\n        return [\n          route.name,\n          {\n            type: \"internal\",\n            name: route.name,\n            href,\n            action: {\n              type: \"JUMP_TO\",\n              payload: { name: route.name }\n            },\n            index\n          }\n        ];\n      })\n    );\n  }, [descriptors, linking, state]);\n  return /* @__PURE__ */ jsx(NavigationContent, { children: /* @__PURE__ */ jsx(TabTriggerMapContext.Provider, { value: triggerMap, children: /* @__PURE__ */ jsx(NavigatorContext.Provider, { value: navigatorContextValue, children: /* @__PURE__ */ jsx(HeadlessTabsView, { customChildren: headlessChildren }) }) }) });\n}\nfunction HeadlessTabsView({ customChildren }) {\n  const { screens, focused } = useTabs();\n  const visited = useVisitedScreens(focused.key);\n  devHeadlessNote(\"Tabs\");\n  if (customChildren?.length) {\n    return /* @__PURE__ */ jsx(Fragment, { children: customChildren });\n  }\n  return renderKeptMountedScreens(screens, visited);\n}\nconst RNTabs = withLayoutContext(WebTabsNavigator);\nconst TabsWithChildren = forwardRef(function TabsWithChildren2({ children, ...props }, ref) {\n  const configChildren = Children.toArray(children).filter(isNavigatorConfigChild);\n  const customChildren = getCustomNavigatorChildren(children);\n  return /* @__PURE__ */ jsx(RNTabs, { ...props, ref, headlessChildren: customChildren, children: configChildren });\n});\nconst Tabs = Object.assign(TabsWithChildren, {\n  Protected,\n  Screen\n});\nvar Tabs_web_default = Tabs;\nexport {\n  Tabs,\n  Tabs_web_default as default\n};\n//# sourceMappingURL=Tabs.web.js.map\n"],"mappings":"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","ignoreList":[]}