{"version":3,"file":"keepMounted.js","names":[],"sources":["esm/headless/keepMounted.js"],"sourcesContent":["\"use client\";\nimport { Activity, Fragment, useEffect, useState } from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nfunction useVisitedScreens(focusedKey) {\n  const [visited, setVisited] = useState(() => [focusedKey]);\n  useEffect(() => {\n    setVisited((prev) => prev.includes(focusedKey) ? prev : [...prev, focusedKey]);\n  }, [focusedKey]);\n  return visited;\n}\nfunction renderKeptMountedScreens(screens, visited) {\n  return /* @__PURE__ */ jsx(Fragment, { children: screens.map((screen) => {\n    if (screen.isFocused) {\n      return screen.keepMounted ? /* @__PURE__ */ jsx(Activity, { mode: \"visible\", children: screen.element }, screen.key) : /* @__PURE__ */ jsx(Fragment, { children: screen.element }, screen.key);\n    }\n    if (!screen.keepMounted || !visited.includes(screen.key)) return null;\n    return /* @__PURE__ */ jsx(Activity, { mode: \"hidden\", children: screen.element }, screen.key);\n  }) });\n}\nexport {\n  renderKeptMountedScreens,\n  useVisitedScreens\n};\n//# sourceMappingURL=keepMounted.js.map\n"],"mappings":";;;;;;AAGA,SAAS,kBAAkB,YAAY;CACrC,MAAM,CAAC,SAAS,cAAc,eAAe,CAAC,UAAU,CAAC;CACzD,gBAAgB;EACd,YAAY,SAAS,KAAK,SAAS,UAAU,IAAI,OAAO,CAAC,GAAG,MAAM,UAAU,CAAC;CAC/E,GAAG,CAAC,UAAU,CAAC;CACf,OAAO;AACT;AACA,SAAS,yBAAyB,SAAS,SAAS;CAClD,OAAuB,oBAAI,UAAU,EAAE,UAAU,QAAQ,KAAK,WAAW;EACvE,IAAI,OAAO,WAAW;GACpB,OAAO,OAAO,cAA8B,oBAAI,UAAU;IAAE,MAAM;IAAW,UAAU,OAAO;GAAQ,GAAG,OAAO,GAAG,IAAoB,oBAAI,UAAU,EAAE,UAAU,OAAO,QAAQ,GAAG,OAAO,GAAG;EAC/L;EACA,IAAI,CAAC,OAAO,eAAe,CAAC,QAAQ,SAAS,OAAO,GAAG,GAAG,OAAO;EACjE,OAAuB,oBAAI,UAAU;GAAE,MAAM;GAAU,UAAU,OAAO;EAAQ,GAAG,OAAO,GAAG;CAC/F,CAAC,EAAE,CAAC;AACN"}