diff --git a/src/components/preview-pane.test.tsx b/src/components/preview-pane.test.tsx
new file mode 100644
index 0000000..44bd494
--- /dev/null
+++ b/src/components/preview-pane.test.tsx
@@ -0,0 +1,32 @@
+import { render, screen } from "@testing-library/react"
+import { describe, expect, it } from "vitest"
+
+import { PreviewPane } from "@/components/preview-pane"
+import { TooltipProvider } from "@/components/ui/tooltip"
+
+describe("PreviewPane", () => {
+ it("keeps an oversized diagram reachable inside a keyboard-scrollable preview", () => {
+ render(
+
+ '}
+ />
+ ,
+ )
+
+ const preview = screen.getByRole("region", { name: "Rendered diagram preview" })
+ const trigger = screen.getByRole("button", { name: "Expand rendered diagram" })
+ const image = screen.getByAltText("Rendered Stack architecture diagram")
+
+ expect(preview).toHaveClass("overflow-auto")
+ expect(trigger).toHaveAttribute("type", "button")
+ expect(trigger).toHaveClass("m-auto", "shrink-0")
+ expect(trigger).not.toHaveClass("max-h-full")
+ expect(image).toHaveClass("h-auto", "max-w-full")
+ expect(image).not.toHaveClass("max-h-full")
+ })
+})
diff --git a/src/components/preview-pane.tsx b/src/components/preview-pane.tsx
index 0922775..add8f76 100644
--- a/src/components/preview-pane.tsx
+++ b/src/components/preview-pane.tsx
@@ -77,11 +77,14 @@ export function PreviewPane({
-
+
{svg ? (
) : (
-
+
{isLoading
? "Loading the Stack engine…"
: status === "Analyzing source…"
@@ -89,7 +92,7 @@ export function PreviewPane({
: "Run the source to generate an SVG."}
)}
-
+
{status}
@@ -105,12 +108,12 @@ function SvgImage({ svg }: { svg: string }) {