/** * Sandboxed generated UI: a catalog component whose props are HTML, CSS and JavaScript the model * writes for a one-off interactive answer (a calculator, a small simulation, a bespoke chart) when * no catalog component fits. Opt-in — add {@link Sandbox} (or {@link defineSandbox}`({ … })`) to a * catalog, or pass `sandbox: true` to `genui({ … })`. * * Everything here is framework-free and isomorphic: the server uses the definition (description, * schema, text fallback, streaming trim), the browser renderer uses the same policy to build the * iframe document and to check what the frame sends back. */ import { type ComponentDefinition } from './catalog.js'; import { type SandboxKitDocs } from './sandbox-kit.js'; /** The component name the builtin {@link Sandbox} registers under. */ export declare const SANDBOX_COMPONENT = "Sandbox"; /** The props a model writes, in the order it writes them (see {@link SANDBOX_FIELD_ORDER}). */ export interface SandboxProps { /** Height in CSS pixels to reserve while the code streams. The frame then sizes to its content. */ initialHeight?: number; /** Short lines shown in the placeholder while the code streams ("Setting up the calculator…"). */ placeholderMessages?: string[]; /** A short title, for the frame's accessible name and for text-only clients. */ title?: string; /** One or two sentences on what the view shows — what a client that cannot run it prints. */ summary?: string; /** Styles, injected in a `