{"version":3,"file":"Tabs.js","names":[],"sources":["esm/layouts/Tabs.js"],"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 { 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, render } = 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 render(\n    /* @__PURE__ */ jsx(TabTriggerMapContext.Provider, { value: triggerMap, children: /* @__PURE__ */ jsx(NavigatorContext.Provider, { value: navigatorContextValue, children: /* @__PURE__ */ jsx(HeadlessTabsView, { customChildren: headlessChildren }) }) })\n  );\n}\nfunction HeadlessTabsView({ customChildren }) {\n  const { screens, focused } = useTabs();\n  const visited = useVisitedScreens(focused.key);\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":";;;;;;;;;;;;;;;;;;AAiBA,SAAS,iBAAiB,EACxB,UACA,kBACA,kBACA,eACA,IACA,GAAG,QACF;CACD,MAAM,EAAE,OAAO,YAAY,aAAa,WAAW,qBAAqB,WAAW;EACjF,GAAG;EACH;EACA;EACA;CACF,CAAC;CACD,MAAM,iBAAiB,OAAO,WAAW;CACzC,eAAe,UAAU;CACzB,MAAM,UAAU,mBAAmB;CACnC,MAAM,wBAAwB,eACrB;EACL,YAAY,MAAM;EAClB;EACA;EACA;EACA,QAAQ;CACV,IACA;EAAC;EAAI;EAAY;CAAK,CACxB;CACA,MAAM,aAAa,cAAc;EAC/B,OAAO,OAAO,YACZ,MAAM,OAAO,KAAK,OAAO,UAAU;GACjC,MAAM,UAAU,YAAY,MAAM,IAAI,EAAE,WAAW,CAAC;GACpD,MAAM,OAAO,OAAO,QAAQ,SAAS,WAAW,QAAQ,QAAQ,SAAS,oBAAoB,iBAAgB,CAC3G;IAAE,GAAG;IAAO;GAAM,GAClB,SAAS,MACX;GACA,OAAO,CACL,MAAM,MACN;IACE,MAAM;IACN,MAAM,MAAM;IACZ;IACA,QAAQ;KACN,MAAM;KACN,SAAS,EAAE,MAAM,MAAM,KAAK;IAC9B;IACA;GACF,CACF;EACF,CAAC,CACH;CACF,GAAG;EAAC;EAAa;EAAS;CAAK,CAAC;CAChC,OAAO,OACW,oBAAI,qBAAqB,UAAU;EAAE,OAAO;EAAY,UAA0B,oBAAI,iBAAiB,UAAU;GAAE,OAAO;GAAuB,UAA0B,oBAAI,kBAAkB,EAAE,gBAAgB,iBAAiB,CAAC;EAAE,CAAC;CAAE,CAAC,CAC7P;AACF;AACA,SAAS,iBAAiB,EAAE,kBAAkB;CAC5C,MAAM,EAAE,SAAS,YAAY,QAAQ;CACrC,MAAM,UAAU,kBAAkB,QAAQ,GAAG;CAC7C,IAAI,gBAAgB,QAAQ;EAC1B,OAAuB,oBAAI,UAAU,EAAE,UAAU,eAAe,CAAC;CACnE;CACA,OAAO,yBAAyB,SAAS,OAAO;AAClD;AACA,MAAM,SAAS,kBAAkB,gBAAgB;AACjD,MAAM,mBAAmB,WAAW,SAAS,kBAAkB,EAAE,UAAU,GAAG,SAAS,KAAK;CAC1F,MAAM,iBAAiB,SAAS,QAAQ,QAAQ,CAAC,CAAC,OAAO,sBAAsB;CAC/E,MAAM,iBAAiB,2BAA2B,QAAQ;CAC1D,OAAuB,oBAAI,QAAQ;EAAE,GAAG;EAAO;EAAK,kBAAkB;EAAgB,UAAU;CAAe,CAAC;AAClH,CAAC;AACD,MAAM,OAAO,OAAO,OAAO,kBAAkB;CAC3C;CACA;AACF,CAAC;AACD,IAAI,mBAAmB"}