// --------------------------------------------------------------------------- // The artifact layout preview — what the gallery shows instead of a schematic. // // An artifact's create-time smoke render already drives a full server render of // the real component with a transport that never settles, so every query stays // pending and the component renders its LOADING state. That render's markup is // the artifact's true composition — its cards, tables, chart frames and // skeletons — with no data in it. This module is the contract for storing it. // // ## Why this is safe to store, and safe to insert // // Two properties do the work, and neither is a matter of trust in the model: // // 1. It carries no live data. The harness's transport is `neverSettles`, so // no tool ran, nothing was fetched, and no row of anybody's reached the // renderer. Everything in the markup came from the artifact's own source. // That is why this is ordinary artifact metadata rather than per-viewer // state, and why it stays correct as the shareable preview when org-tier // sharing lands — see `ArtifactPreviewImage` for the half that does NOT. // // 2. It cannot execute. React's server renderer escapes every text node and // attribute value it writes; it does not emit `