import { z } from "zod"; import type { BlockMdxConfig } from "../types.js"; /** * Pure (React-free) part of the standard HTML / Tailwind block: its data schema * and MDX round-trip config. Shared by the React spec (`html.tsx`) and any * server-side / agent registry (e.g. the plan app's `plan-block-registry.ts`), * so importing it into a server module never pulls React in. * * This is the registry form of the plan `custom-html` block. The schema MUST * stay data-compatible with the `custom-html` branch of the plan * `planBlockSchema` (bounded `html`, optional bounded `css`, optional trimmed * `caption`, all rejecting full-document / script markup) so a registered block * still validates through the app's generic `update-block` re-validation. The * MDX `tag` (`HtmlBlock`) + flat `html`/`css`/`caption` attribute shape MUST * match the legacy `` encoding * (`plan-mdx.ts` `serializeBlock`/`parseBlock`) so stored `.mdx` round-trips * byte-compatibly. */ export interface HtmlBlockData { /** Bounded HTML fragment (no html/head/body/script/style document markup). */ html: string; /** Optional bounded CSS, scoped into the sandboxed iframe. */ css?: string; /** Optional short caption rendered under the rendered fragment. */ caption?: string; } export declare const htmlSchema: z.ZodType; /** * MDX config: `html`, `css`, and `caption` are flat attributes (no children) — * exactly the legacy `` self-closing form. * Insertion order of `toAttrs` is the on-disk attribute order, so it stays * `html` → `css` → `caption` to match `plan-mdx.ts:serializeBlock`. `fromAttrs` * mirrors the legacy parse defaults (`html ?? ""`, `css`/`caption` undefined * when absent). */ export declare const htmlMdx: BlockMdxConfig; //# sourceMappingURL=html.config.d.ts.map