···148export default serve;
149```
150151-It's recommended to tag XRPC return values as cacheable; see [`@inlay/cache`](packages/@inlay/cache) for how to do this. In the calling code, it's recommended to wrap XRPC components into `<at.inlay.Placeholder fallback=...>` so that they don't block the entire page.
152153### Pack record
154
···148export default serve;
149```
150151+It's recommended to tag XRPC return values as cacheable; see [`@inlay/cache`](packages/@inlay/cache) for how to do this. In the calling code, it's recommended to wrap XRPC components into `<at.inlay.Loading fallback=...>` so that they don't block the entire page.
152153### Pack record
154
+1-1
generated/at/inlay.ts
···7export * as Fragment from "./inlay/Fragment";
8export * as Maybe from "./inlay/Maybe";
9export * as Missing from "./inlay/Missing";
10-export * as Placeholder from "./inlay/Placeholder";
11export * as Slot from "./inlay/Slot";
12export * as Throw from "./inlay/Throw";
13export * as component from "./inlay/component";
···7export * as Fragment from "./inlay/Fragment";
8export * as Maybe from "./inlay/Maybe";
9export * as Missing from "./inlay/Missing";
10+export * as Loading from "./inlay/Loading";
11export * as Slot from "./inlay/Slot";
12export * as Throw from "./inlay/Throw";
13export * as component from "./inlay/component";
+6
generated/at/inlay/Loading.ts
···000000
···1+/*
2+ * THIS FILE WAS GENERATED BY "@atproto/lex". DO NOT EDIT.
3+ */
4+5+export * from "./Loading.defs";
6+export * as $defs from "./Loading.defs";
···5import { l } from "@atproto/lex";
6import * as InlayDefs from "./defs.defs";
78-const $nsid = "at.inlay.Placeholder";
910export { $nsid };
11
···5import { l } from "@atproto/lex";
6import * as InlayDefs from "./defs.defs";
78+const $nsid = "at.inlay.Loading";
910export { $nsid };
11
-6
generated/at/inlay/Placeholder.ts
···1-/*
2- * THIS FILE WAS GENERATED BY "@atproto/lex". DO NOT EDIT.
3- */
4-5-export * from "./Placeholder.defs";
6-export * as $defs from "./Placeholder.defs";
···1718The main route is `/at/:did/:collection/:rkey?componentUri=...`. It fetches the component record, creates an element (`$(componentType, { uri })`), and calls [`@inlay/render`](../packages/@inlay/render) in a loop until everything bottoms out in primitives. Each primitive maps to a custom HTML element (`org-atsui-stack`, `org-atsui-text`, etc.) styled by two CSS files.
1920-The response is streamed with Hono's `renderToReadableStream`. Slow XRPC calls don't block the whole page — `at.inlay.Placeholder` components use `<Suspense>` to show a fallback while the rest of the page streams.
2122## Primitives
23
···1718The main route is `/at/:did/:collection/:rkey?componentUri=...`. It fetches the component record, creates an element (`$(componentType, { uri })`), and calls [`@inlay/render`](../packages/@inlay/render) in a loop until everything bottoms out in primitives. Each primitive maps to a custom HTML element (`org-atsui-stack`, `org-atsui-text`, etc.) styled by two CSS files.
1920+The response is streamed with Hono's `renderToReadableStream`. Slow XRPC calls don't block the whole page — `at.inlay.Loading` components use `<Suspense>` to show a fallback while the rest of the page streams.
2122## Primitives
23