---
// PreviewPane — the dark code/markdown preview block in the review panel.
//
// The pane has three body modes (source / rendered Markdown / diff / lens)
// plus the file-tab strip. The lens view is rendered by ChangeLens instead,
// so this component only owns the source and rendered-markdown bodies. The
// toggle between them is task 16's job; this component ships zero JS.
//
// CSS hooks asserted by scripts/verify.mjs that live in the legacy
// stylesheet and must survive in the new architecture:
// .preview — the section wrapper
// .preview-title — the upper-left title cluster
// .preview-markdown— the "Preview Markdown" / "View source" toggle
// .markdown-preview— the rendered-HTML container
// max-height:540px — the bounded reading surface
// .markdown-table-wrap, .markdown-frontmatter, .markdown-toc
// — sub-blocks inside the rendered Markdown
interface Props {
/** Label rendered above the file name. Source: "FILE PREVIEW". */
title: string;
/** Smaller subtitle that names the version. Source: e.g.
* "ORIGINAL / SAFETY-REDACTED WHERE NEEDED". */
subtitle: string;
/** True when the "Preview Markdown" toggle is active — the body should
* render the slot as HTML, otherwise the slot is treated as plain
* source. */
rendered: boolean;
}
const { title, subtitle, rendered } = Astro.props;
---