{"version":3,"file":"ssr.mjs","names":[],"sources":["../../src/components/Await.tsx"],"sourcesContent":["import { use } from \"react\";\n\nimport { useDeferred } from \"../hooks/useDeferred\";\n\nimport type { ReactNode } from \"react\";\n\nexport interface AwaitProps<T> {\n  /** Deferred key declared in the loader's `defer({ deferred: { <name>: ... } })`. */\n  readonly name: string;\n  /** Render the resolved value. Suspends while pending; throws inside the\n   * nearest Error Boundary on rejection. */\n  readonly children: (value: T) => ReactNode;\n}\n\n/**\n * Ergonomic wrapper around `useDeferred(name)` + React 19's `use(promise)`.\n *\n * ```tsx\n * <Suspense fallback={<Spinner />}>\n *   <Await<Review[]> name=\"reviews\">\n *     {(reviews) => <ReviewList items={reviews} />}\n *   </Await>\n * </Suspense>\n * ```\n *\n * Equivalent to:\n *\n * ```tsx\n * function Inner() {\n *   const reviews = use(useDeferred<Review[]>(\"reviews\"));\n *   return <ReviewList items={reviews} />;\n * }\n * ```\n *\n * Pick `<Await>` for cross-adapter consistency with the SvelteKit\n * `{#await}` / Solid `<Await/>` shape; pick the inline `use(useDeferred(...))`\n * form if you prefer one fewer abstraction.\n */\nexport function Await<T = unknown>({\n  name,\n  children,\n}: AwaitProps<T>): ReactNode {\n  const value = use(useDeferred<T>(name));\n\n  return children(value);\n}\n"],"mappings":"yHAsCA,SAAgB,EAAmB,CACjC,OACA,YAC2B,CAG3B,OAAO,EAFO,EAAI,EAAe,CAAI,CAEjB,CAAC,CACvB"}