{"version":3,"file":"ServerContextScript.js","names":[],"sources":["esm/server/ServerContextScript.js"],"sourcesContent":["import { SERVER_CONTEXT_KEY } from \"../constants\";\nimport { safeJsonStringify } from \"../utils/htmlEscape\";\nimport { SERVER_CONTEXT_POST_RENDER_STRING } from \"../vite/constants\";\nimport { useServerContext } from \"../vite/one-server-only\";\nimport { jsx } from \"react/jsx-runtime\";\nfunction ServerContextScript() {\n  if (process.env.VITE_ENVIRONMENT === \"client\") {\n    return /* @__PURE__ */ jsx(\n      \"script\",\n      {\n        async: true,\n        href: SERVER_CONTEXT_KEY,\n        suppressHydrationWarning: true,\n        dangerouslySetInnerHTML: {\n          __html: ``\n        }\n      }\n    );\n  }\n  if (process.env.VITE_ENVIRONMENT === \"ssr\") {\n    const context = useServerContext();\n    const cssUrls = context?.css || [];\n    const { cssContents, ...restContext } = context || {};\n    const hasLeafLoaderData = restContext.loaderData !== void 0;\n    const lastMatchIndex = (restContext.matches?.length ?? 0) - 1;\n    const compactMatches = restContext.matches?.map((m, i) => ({\n      routeId: m.routeId,\n      pathname: m.pathname,\n      params: m.params,\n      ...hasLeafLoaderData && i === lastMatchIndex ? {} : { loaderData: m.loaderData }\n    }));\n    const clientContext = {\n      ...restContext,\n      matches: compactMatches,\n      cssInlineCount: cssContents?.length || 0,\n      // use placeholder — postRenderData is set during render (after this component)\n      // and replaced in the HTML string after rendering completes\n      postRenderData: SERVER_CONTEXT_POST_RENDER_STRING\n    };\n    return /* @__PURE__ */ jsx(\n      \"script\",\n      {\n        async: true,\n        href: SERVER_CONTEXT_KEY,\n        suppressHydrationWarning: true,\n        dangerouslySetInnerHTML: {\n          __html: `\n              globalThis[\"${SERVER_CONTEXT_KEY}\"] = ${safeJsonStringify(clientContext)};\n              globalThis.__oneLoadedCSS = new Set(${safeJsonStringify(cssUrls)});\n          `\n        }\n      }\n    );\n  }\n  return null;\n}\nexport {\n  ServerContextScript\n};\n//# sourceMappingURL=ServerContextScript.js.map\n"],"mappings":";;;;;;;AAKA,SAAS,sBAAsB;CAC7B,IAAI,QAAQ,IAAI,qBAAqB,UAAU;EAC7C,OAAuB,oBACrB,UACA;GACE,OAAO;GACP,MAAM;GACN,0BAA0B;GAC1B,yBAAyB,EACvB,QAAQ,GACV;EACF,CACF;CACF;CACA,IAAI,QAAQ,IAAI,qBAAqB,OAAO;EAC1C,MAAM,UAAU,iBAAiB;EACjC,MAAM,UAAU,SAAS,OAAO,CAAC;EACjC,MAAM,EAAE,aAAa,GAAG,gBAAgB,WAAW,CAAC;EACpD,MAAM,oBAAoB,YAAY,eAAe,KAAK;EAC1D,MAAM,kBAAkB,YAAY,SAAS,UAAU,KAAK;EAC5D,MAAM,iBAAiB,YAAY,SAAS,KAAK,GAAG,OAAO;GACzD,SAAS,EAAE;GACX,UAAU,EAAE;GACZ,QAAQ,EAAE;GACV,GAAG,qBAAqB,MAAM,iBAAiB,CAAC,IAAI,EAAE,YAAY,EAAE,WAAW;EACjF,EAAE;EACF,MAAM,gBAAgB;GACpB,GAAG;GACH,SAAS;GACT,gBAAgB,aAAa,UAAU;GAGvC,gBAAgB;EAClB;EACA,OAAuB,oBACrB,UACA;GACE,OAAO;GACP,MAAM;GACN,0BAA0B;GAC1B,yBAAyB,EACvB,QAAQ;4BACU,mBAAmB,OAAO,kBAAkB,aAAa,EAAE;oDACnC,kBAAkB,OAAO,EAAE;YAEvE;EACF,CACF;CACF;CACA,OAAO;AACT"}