{"version":3,"names":["Activity","Fragment","useState","useNavigatorContext","TabContext","jsx","useTabSlot","detachInactiveScreens","renderFn","defaultTabsSlotRender","state","descriptorsRef","descriptors","current","focusedRouteKey","routes","index","key","loaded","setLoaded","children","map","route","descriptor","Provider","value","options","isFocused","TabSlot","props","lazy","unmountOnBlur","mode","render","isTabSlot","child","type"],"sources":["TabSlot.mjs"],"sourcesContent":["import {\n  Activity,\n  Fragment,\n  useState\n} from \"react\";\nimport { useNavigatorContext } from \"../views/Navigator\";\nimport { TabContext } from \"./TabContext\";\nimport { jsx } from \"react/jsx-runtime\";\nfunction useTabSlot({\n  detachInactiveScreens = true,\n  renderFn = defaultTabsSlotRender\n} = {}) {\n  const { state, descriptorsRef } = useNavigatorContext();\n  const descriptors = descriptorsRef.current;\n  const focusedRouteKey = state.routes[state.index].key;\n  const [loaded, setLoaded] = useState({ [focusedRouteKey]: true });\n  if (!loaded[focusedRouteKey]) {\n    setLoaded({ ...loaded, [focusedRouteKey]: true });\n  }\n  return /* @__PURE__ */ jsx(Fragment, { children: state.routes.map((route, index) => {\n    const descriptor = descriptors[route.key];\n    return /* @__PURE__ */ jsx(TabContext.Provider, { value: descriptor.options, children: renderFn(descriptor, {\n      index,\n      isFocused: state.index === index,\n      loaded: loaded[route.key],\n      detachInactiveScreens\n    }) }, descriptor.route.key);\n  }) });\n}\nfunction TabSlot(props) {\n  return useTabSlot(props);\n}\nfunction defaultTabsSlotRender(descriptor, { isFocused, loaded, detachInactiveScreens }) {\n  const { lazy = true, unmountOnBlur } = descriptor.options;\n  if ((unmountOnBlur || detachInactiveScreens) && !isFocused) return null;\n  if (lazy && !loaded && !isFocused) return null;\n  if (!isFocused) {\n    return /* @__PURE__ */ jsx(Activity, { mode: \"hidden\", children: descriptor.render() }, descriptor.route.key);\n  }\n  return /* @__PURE__ */ jsx(Fragment, { children: descriptor.render() }, descriptor.route.key);\n}\nfunction isTabSlot(child) {\n  return child.type === TabSlot;\n}\nexport {\n  TabSlot,\n  defaultTabsSlotRender,\n  isTabSlot,\n  useTabSlot\n};\n//# sourceMappingURL=TabSlot.web.js.map\n"],"mappings":"AAAA,SACEA,QAAQ,EACRC,QAAQ,EACRC,QAAQ,QACH,OAAO;AACd,SAASC,mBAAmB,QAAQ,wBAAoB;AACxD,SAASC,UAAU,QAAQ,kBAAc;AACzC,SAASC,GAAG,QAAQ,mBAAmB;AACvC,SAASC,UAAUA,CAAC;EAClBC,qBAAqB,GAAG,IAAI;EAC5BC,QAAQ,GAAGC;AACb,CAAC,GAAG,CAAC,CAAC,EAAE;EACN,MAAM;IAAEC,KAAK;IAAEC;EAAe,CAAC,GAAGR,mBAAmB,CAAC,CAAC;EACvD,MAAMS,WAAW,GAAGD,cAAc,CAACE,OAAO;EAC1C,MAAMC,eAAe,GAAGJ,KAAK,CAACK,MAAM,CAACL,KAAK,CAACM,KAAK,CAAC,CAACC,GAAG;EACrD,MAAM,CAACC,MAAM,EAAEC,SAAS,CAAC,GAAGjB,QAAQ,CAAC;IAAE,CAACY,eAAe,GAAG;EAAK,CAAC,CAAC;EACjE,IAAI,CAACI,MAAM,CAACJ,eAAe,CAAC,EAAE;IAC5BK,SAAS,CAAC;MAAE,GAAGD,MAAM;MAAE,CAACJ,eAAe,GAAG;IAAK,CAAC,CAAC;EACnD;EACA,OAAO,eAAgBT,GAAG,CAACJ,QAAQ,EAAE;IAAEmB,QAAQ,EAAEV,KAAK,CAACK,MAAM,CAACM,GAAG,CAAC,CAACC,KAAK,EAAEN,KAAK,KAAK;MAClF,MAAMO,UAAU,GAAGX,WAAW,CAACU,KAAK,CAACL,GAAG,CAAC;MACzC,OAAO,eAAgBZ,GAAG,CAACD,UAAU,CAACoB,QAAQ,EAAE;QAAEC,KAAK,EAAEF,UAAU,CAACG,OAAO;QAAEN,QAAQ,EAAEZ,QAAQ,CAACe,UAAU,EAAE;UAC1GP,KAAK;UACLW,SAAS,EAAEjB,KAAK,CAACM,KAAK,KAAKA,KAAK;UAChCE,MAAM,EAAEA,MAAM,CAACI,KAAK,CAACL,GAAG,CAAC;UACzBV;QACF,CAAC;MAAE,CAAC,EAAEgB,UAAU,CAACD,KAAK,CAACL,GAAG,CAAC;IAC7B,CAAC;EAAE,CAAC,CAAC;AACP;AACA,SAASW,OAAOA,CAACC,KAAK,EAAE;EACtB,OAAOvB,UAAU,CAACuB,KAAK,CAAC;AAC1B;AACA,SAASpB,qBAAqBA,CAACc,UAAU,EAAE;EAAEI,SAAS;EAAET,MAAM;EAAEX;AAAsB,CAAC,EAAE;EACvF,MAAM;IAAEuB,IAAI,GAAG,IAAI;IAAEC;EAAc,CAAC,GAAGR,UAAU,CAACG,OAAO;EACzD,IAAI,CAACK,aAAa,IAAIxB,qBAAqB,KAAK,CAACoB,SAAS,EAAE,OAAO,IAAI;EACvE,IAAIG,IAAI,IAAI,CAACZ,MAAM,IAAI,CAACS,SAAS,EAAE,OAAO,IAAI;EAC9C,IAAI,CAACA,SAAS,EAAE;IACd,OAAO,eAAgBtB,GAAG,CAACL,QAAQ,EAAE;MAAEgC,IAAI,EAAE,QAAQ;MAAEZ,QAAQ,EAAEG,UAAU,CAACU,MAAM,CAAC;IAAE,CAAC,EAAEV,UAAU,CAACD,KAAK,CAACL,GAAG,CAAC;EAC/G;EACA,OAAO,eAAgBZ,GAAG,CAACJ,QAAQ,EAAE;IAAEmB,QAAQ,EAAEG,UAAU,CAACU,MAAM,CAAC;EAAE,CAAC,EAAEV,UAAU,CAACD,KAAK,CAACL,GAAG,CAAC;AAC/F;AACA,SAASiB,SAASA,CAACC,KAAK,EAAE;EACxB,OAAOA,KAAK,CAACC,IAAI,KAAKR,OAAO;AAC/B;AACA,SACEA,OAAO,EACPnB,qBAAqB,EACrByB,SAAS,EACT5B,UAAU","ignoreList":[]}