Skip to content

CaptureOptions

Defined in: packages/xray/src/measure.ts:36

Browser-side capture: walk a live rendered subtree into a Plate — one node tree plus one self-contained, scoped CSS string (ADR 0003). The CSS is lifted from the author rules that matched each node, rewritten to plate-local selectors — it carries @media for free and keeps layout live (the bake-off winner; ADR 0005).

optional captureRootIsBoundary?: boolean

Defined in: packages/xray/src/measure.ts:57

Whether the top-level capture roots ARE this plate’s own boundary, so the stitch guard must be SKIPPED for them (ADR 0006/0014). True ONLY for a MANUAL root: there site.el is the consumer’s own element and its data-xr-boundary marks the boundary of THIS plate, so the root must be serialized as a real Entry (its box/classes/padding/border) rather than a stitch-to-itself. Defaults to false — the auto path, where the top-level roots are the wrapper’s CHILDREN and any boundary marker on a direct-child root is a NESTED <Skeleton> that MUST stitch (the capture-leak guard).


optional collect?: CollectLimits

Defined in: packages/xray/src/measure.ts:40

Collect limits (ADR 0022): refuse a capture whose measured tree exceeds any axis.


name: string

Defined in: packages/xray/src/measure.ts:38

Plate name; comes from the virtual-module specifier.


optional walker?: XrayCaptureWalker

Defined in: packages/xray/src/measure.ts:47

Optional programmable capture walker (ADR 0018). The declarative data-xr-* hints cover the 90%; this is the escape hatch for the 10% a markup attribute cannot express. Capture-only: it shapes the resulting PlateNode tree but is never persisted into the Plate, and the production adapter never captures so it ignores this entirely.