--- // 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; ---
{title} {subtitle}
{ rendered ? (
) : (
        
          
        
      
) }