@docubook/mdx-content 3.3.0 → 3.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -248,7 +248,7 @@ Components included out of the box:
248
248
  - `Steps` / `Step`
249
249
  - `Tabs` / `Tab`
250
250
  - `Tooltip`
251
- - `Mermaid` — renders Mermaid.js diagrams (flowchart, sequence, class, state, gantt, pie, ER) from ` ```mermaid ` fenced code blocks
251
+ - `Mermaid` — renders Mermaid.js diagrams (flowchart, sequence, class, state, gantt, pie, ER) from ` ```mermaid ` fenced code blocks, with GFM-style pan/zoom/fullscreen controls (button and keyboard driven)
252
252
  - `Youtube`
253
253
  - Table (`table`, `thead`, `tbody`, `tfoot`, `tr`, `th`, `td`)
254
254
 
@@ -1,6 +1,6 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { describe, it, expect, vi, beforeEach } from "vitest";
3
- import { render } from "@testing-library/react";
3
+ import { render, fireEvent } from "@testing-library/react";
4
4
  import { MermaidMdx } from "../components/MermaidMdx";
5
5
  // Mock mermaid module for client-side hydration tests
6
6
  const mockInitialize = vi.fn();
@@ -119,5 +119,89 @@ describe("MermaidMdx", () => {
119
119
  unmount();
120
120
  vi.useRealTimers();
121
121
  });
122
+ describe("pan/zoom controls", () => {
123
+ async function renderWithControls() {
124
+ mockParse.mockResolvedValueOnce(undefined);
125
+ const result = render(_jsx(MermaidMdx, { chart: "graph TD; A-->B;" }));
126
+ await vi.waitFor(() => {
127
+ expect(result.container.querySelector('[aria-label="Pan and zoom controls"]')).not.toBeNull();
128
+ });
129
+ return result;
130
+ }
131
+ it("shows all controls after the diagram renders", async () => {
132
+ const { container } = await renderWithControls();
133
+ const labels = [
134
+ "Pan up",
135
+ "Pan down",
136
+ "Pan left",
137
+ "Pan right",
138
+ "Zoom in",
139
+ "Zoom out",
140
+ "Reset view",
141
+ "Enter full screen",
142
+ ];
143
+ for (const label of labels) {
144
+ expect(container.querySelector(`button[aria-label="${label}"]`)).not.toBeNull();
145
+ }
146
+ });
147
+ it("does not show controls when panZoom is false", async () => {
148
+ mockParse.mockResolvedValueOnce(undefined);
149
+ const { container } = render(_jsx(MermaidMdx, { chart: "graph TD; A-->B;", panZoom: false }));
150
+ await vi.waitFor(() => {
151
+ expect(mockRun).toHaveBeenCalled();
152
+ });
153
+ expect(container.querySelector('[aria-label="Pan and zoom controls"]')).toBeNull();
154
+ });
155
+ it("zoom, pan, and reset buttons update the transform", async () => {
156
+ const { container } = await renderWithControls();
157
+ const layer = container.querySelector("pre.mermaid")?.parentElement;
158
+ fireEvent.click(container.querySelector('button[aria-label="Zoom in"]'));
159
+ expect(layer.style.transform).toBe("translate(0px, 0px) scale(1.2)");
160
+ fireEvent.click(container.querySelector('button[aria-label="Pan right"]'));
161
+ expect(layer.style.transform).toBe("translate(50px, 0px) scale(1.2)");
162
+ fireEvent.click(container.querySelector('button[aria-label="Reset view"]'));
163
+ expect(layer.style.transform).toBe("translate(0px, 0px) scale(1)");
164
+ });
165
+ it("clamps zoom at the maximum scale", async () => {
166
+ const { container } = await renderWithControls();
167
+ const layer = container.querySelector("pre.mermaid")?.parentElement;
168
+ const zoomIn = container.querySelector('button[aria-label="Zoom in"]');
169
+ for (let i = 0; i < 20; i++)
170
+ fireEvent.click(zoomIn);
171
+ expect(layer.style.transform).toBe("translate(0px, 0px) scale(4)");
172
+ });
173
+ it("pans with arrow keys on the focused container", async () => {
174
+ const { container } = await renderWithControls();
175
+ const viewport = container.querySelector('[tabindex="0"]');
176
+ const layer = container.querySelector("pre.mermaid")?.parentElement;
177
+ fireEvent.keyDown(viewport, { key: "ArrowRight" });
178
+ expect(layer.style.transform).toBe("translate(50px, 0px) scale(1)");
179
+ fireEvent.keyDown(viewport, { key: "ArrowUp" });
180
+ expect(layer.style.transform).toBe("translate(50px, -50px) scale(1)");
181
+ fireEvent.keyDown(viewport, { key: "0" });
182
+ expect(layer.style.transform).toBe("translate(0px, 0px) scale(1)");
183
+ });
184
+ it("ignores key presses with modifier keys (browser shortcuts)", async () => {
185
+ const { container } = await renderWithControls();
186
+ const viewport = container.querySelector('[tabindex="0"]');
187
+ const layer = container.querySelector("pre.mermaid")?.parentElement;
188
+ fireEvent.keyDown(viewport, { key: "-", ctrlKey: true });
189
+ fireEvent.keyDown(viewport, { key: "=", metaKey: true });
190
+ fireEvent.keyDown(viewport, { key: "ArrowLeft", altKey: true });
191
+ expect(layer.style.transform).toBe("translate(0px, 0px) scale(1)");
192
+ });
193
+ it("toggles the fullscreen lightbox via button and Escape", async () => {
194
+ const { container } = await renderWithControls();
195
+ const viewport = container.querySelector('[tabindex="0"]');
196
+ fireEvent.click(container.querySelector('button[aria-label="Enter full screen"]'));
197
+ expect(viewport.style.position).toBe("fixed");
198
+ expect(document.body.style.overflow).toBe("hidden");
199
+ expect(container.querySelector('button[aria-label="Exit full screen"]')).not.toBeNull();
200
+ fireEvent.keyDown(viewport, { key: "Escape" });
201
+ expect(viewport.style.position).toBe("relative");
202
+ expect(document.body.style.overflow).toBe("");
203
+ expect(container.querySelector('button[aria-label="Enter full screen"]')).not.toBeNull();
204
+ });
205
+ });
122
206
  });
123
207
  //# sourceMappingURL=MermaidMdx.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MermaidMdx.test.js","sourceRoot":"","sources":["../../src/__test__/MermaidMdx.test.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MermaidMdx.test.js","sourceRoot":"","sources":["../../src/__test__/MermaidMdx.test.tsx"],"names":[],"mappings":"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"}
@@ -5,7 +5,9 @@ interface MermaidMdxProps {
5
5
  id?: string;
6
6
  /** Additional CSS class on container */
7
7
  className?: string;
8
+ /** Show GFM-style pan/zoom controls once the diagram renders (default true) */
9
+ panZoom?: boolean;
8
10
  }
9
- export declare function MermaidMdx({ chart, id, className }: MermaidMdxProps): import("react").JSX.Element | null;
11
+ export declare function MermaidMdx({ chart, id, className, panZoom }: MermaidMdxProps): import("react").JSX.Element | null;
10
12
  export {};
11
13
  //# sourceMappingURL=MermaidMdx.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MermaidMdx.d.ts","sourceRoot":"","sources":["../../src/components/MermaidMdx.tsx"],"names":[],"mappings":"AAQA,UAAU,eAAe;IACvB,sEAAsE;IACtE,KAAK,EAAE,MAAM,CAAC;IACd,gDAAgD;IAChD,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,wCAAwC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAMD,wBAAgB,UAAU,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,eAAe,sCAyInE"}
1
+ {"version":3,"file":"MermaidMdx.d.ts","sourceRoot":"","sources":["../../src/components/MermaidMdx.tsx"],"names":[],"mappings":"AAgBA,UAAU,eAAe;IACvB,sEAAsE;IACtE,KAAK,EAAE,MAAM,CAAC;IACd,gDAAgD;IAChD,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,wCAAwC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+EAA+E;IAC/E,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAgED,wBAAgB,UAAU,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,OAAc,EAAE,EAAE,eAAe,sCA6RnF"}
@@ -1,18 +1,43 @@
1
1
  "use client";
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { useId, useRef, useEffect, useState } from "react";
3
+ import { useId, useRef, useEffect, useState, } from "react";
4
4
  // Module-level singleton — one dynamic import regardless of diagram count
5
5
  let mermaidPromise = null;
6
6
  function getTheme() {
7
7
  return document.documentElement.classList.contains("dark") ? "dark" : "default";
8
8
  }
9
- export function MermaidMdx({ chart, id, className }) {
9
+ // Pan/zoom tuning button-driven like GFM's mermaid viewer (no drag/wheel)
10
+ const PAN_STEP = 50;
11
+ const ZOOM_STEP = 1.2;
12
+ const MIN_SCALE = 0.4;
13
+ const MAX_SCALE = 4;
14
+ const clampScale = (scale) => Math.min(MAX_SCALE, Math.max(MIN_SCALE, scale));
15
+ const controlButtonStyle = {
16
+ display: "flex",
17
+ alignItems: "center",
18
+ justifyContent: "center",
19
+ width: 28,
20
+ height: 28,
21
+ padding: 0,
22
+ border: "1px solid rgba(127,127,127,0.35)",
23
+ borderRadius: 6,
24
+ background: "rgba(127,127,127,0.12)",
25
+ color: "currentcolor",
26
+ cursor: "pointer",
27
+ };
28
+ function ControlButton({ label, onClick, cell, children, }) {
29
+ return (_jsx("button", { type: "button", "aria-label": label, title: label, onClick: onClick, style: { ...controlButtonStyle, gridColumn: cell.col, gridRow: cell.row }, children: _jsx("svg", { width: "14", height: "14", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: children }) }));
30
+ }
31
+ export function MermaidMdx({ chart, id, className, panZoom = true }) {
10
32
  const generatedId = useId();
11
33
  const domId = id ?? `mermaid-${generatedId.replace(/[:.]/g, "-")}`;
12
34
  const ref = useRef(null);
13
35
  const chartRef = useRef(chart);
14
36
  const mermaidRef = useRef(null);
15
37
  const [error, setError] = useState(null);
38
+ const [rendered, setRendered] = useState(false);
39
+ const [view, setView] = useState({ x: 0, y: 0, scale: 1 });
40
+ const [fullscreen, setFullscreen] = useState(false);
16
41
  // Keep chartRef in sync so theme-change re-render (T-005) can restore text
17
42
  chartRef.current = chart;
18
43
  useEffect(() => {
@@ -48,7 +73,15 @@ export function MermaidMdx({ chart, id, className }) {
48
73
  lazyObserver = new IntersectionObserver(([entry]) => {
49
74
  if (!entry.isIntersecting || cancelled || !ref.current)
50
75
  return;
51
- mermaid.run({ nodes: [ref.current] });
76
+ Promise.resolve(mermaid.run({ nodes: [ref.current] }))
77
+ .then(() => {
78
+ if (!cancelled)
79
+ setRendered(true);
80
+ })
81
+ .catch(() => {
82
+ if (!cancelled)
83
+ setError("Failed to render diagram");
84
+ });
52
85
  lazyObserver?.disconnect();
53
86
  }, { rootMargin: "200px" });
54
87
  lazyObserver.observe(ref.current);
@@ -90,9 +123,44 @@ export function MermaidMdx({ chart, id, className }) {
90
123
  };
91
124
  // chart string is static from MDX — this only fires on mount
92
125
  }, []);
126
+ // Lock page scroll while the fullscreen lightbox is open
127
+ useEffect(() => {
128
+ if (!fullscreen)
129
+ return;
130
+ const previous = document.body.style.overflow;
131
+ document.body.style.overflow = "hidden";
132
+ return () => {
133
+ document.body.style.overflow = previous;
134
+ };
135
+ }, [fullscreen]);
93
136
  // Guard: empty chart
94
137
  if (!chart)
95
138
  return null;
139
+ const pan = (dx, dy) => setView((v) => ({ ...v, x: v.x + dx, y: v.y + dy }));
140
+ const zoom = (factor) => setView((v) => ({ ...v, scale: clampScale(v.scale * factor) }));
141
+ const resetView = () => setView({ x: 0, y: 0, scale: 1 });
142
+ const controlsActive = panZoom && rendered;
143
+ const handleKeyDown = (e) => {
144
+ // Leave browser shortcuts (Ctrl/Cmd+0, Ctrl/Cmd+-, Alt+arrows, ...) alone
145
+ if (!controlsActive || e.ctrlKey || e.metaKey || e.altKey)
146
+ return;
147
+ const actions = {
148
+ ArrowUp: () => pan(0, -PAN_STEP),
149
+ ArrowDown: () => pan(0, PAN_STEP),
150
+ ArrowLeft: () => pan(-PAN_STEP, 0),
151
+ ArrowRight: () => pan(PAN_STEP, 0),
152
+ "+": () => zoom(ZOOM_STEP),
153
+ "=": () => zoom(ZOOM_STEP),
154
+ "-": () => zoom(1 / ZOOM_STEP),
155
+ "0": resetView,
156
+ ...(fullscreen ? { Escape: () => setFullscreen(false) } : {}),
157
+ };
158
+ const action = actions[e.key];
159
+ if (!action)
160
+ return;
161
+ e.preventDefault();
162
+ action();
163
+ };
96
164
  if (error) {
97
165
  return (_jsxs("div", { className: className, style: {
98
166
  border: "1px solid hsl(var(--destructive, 0 85% 60%))",
@@ -110,6 +178,34 @@ export function MermaidMdx({ chart, id, className }) {
110
178
  margin: 0,
111
179
  }, children: chart })] }));
112
180
  }
113
- return (_jsx("div", { className: "max-w-full overflow-x-auto", children: _jsx("pre", { ref: ref, id: domId, className: `mermaid not-prose${className ? ` ${className}` : ""}`, style: { margin: "1em 0" }, children: chart }) }));
181
+ return (_jsxs("div", { className: "max-w-full", tabIndex: controlsActive ? 0 : undefined, role: controlsActive ? "group" : undefined, "aria-label": controlsActive
182
+ ? "Mermaid diagram. Use arrow keys to pan, + and - to zoom, 0 to reset."
183
+ : undefined, onKeyDown: handleKeyDown, style: {
184
+ ...(fullscreen
185
+ ? {
186
+ position: "fixed",
187
+ inset: 0,
188
+ zIndex: 50,
189
+ background: "hsl(var(--background, 0 0% 100%))",
190
+ display: "flex",
191
+ alignItems: "center",
192
+ justifyContent: "center",
193
+ }
194
+ : { position: "relative" }),
195
+ ...(controlsActive ? { overflow: "hidden" } : { overflowX: "auto" }),
196
+ }, children: [_jsx("div", { style: controlsActive
197
+ ? {
198
+ transform: `translate(${view.x}px, ${view.y}px) scale(${view.scale})`,
199
+ transformOrigin: "center center",
200
+ transition: "transform 150ms ease",
201
+ }
202
+ : undefined, children: _jsx("pre", { ref: ref, id: domId, className: `mermaid not-prose${className ? ` ${className}` : ""}`, style: { margin: "1em auto", width: "fit-content", maxWidth: "100%" }, children: chart }) }), controlsActive ? (_jsxs("div", { role: "group", "aria-label": "Pan and zoom controls", style: {
203
+ position: "absolute",
204
+ bottom: 8,
205
+ right: 8,
206
+ display: "grid",
207
+ gridTemplateColumns: "repeat(3, 28px)",
208
+ gap: 4,
209
+ }, children: [_jsx(ControlButton, { label: fullscreen ? "Exit full screen" : "Enter full screen", onClick: () => setFullscreen((f) => !f), cell: { col: 1, row: 1 }, children: fullscreen ? (_jsx("path", { d: "M8 3v3a2 2 0 0 1-2 2H3M21 8h-3a2 2 0 0 1-2-2V3M3 16h3a2 2 0 0 1 2 2v3M16 21v-3a2 2 0 0 1 2-2h3" })) : (_jsx("path", { d: "M8 3H5a2 2 0 0 0-2 2v3M21 8V5a2 2 0 0 0-2-2h-3M3 16v3a2 2 0 0 0 2 2h3M16 21h3a2 2 0 0 0 2-2v-3" })) }), _jsx(ControlButton, { label: "Pan up", onClick: () => pan(0, -PAN_STEP), cell: { col: 2, row: 1 }, children: _jsx("path", { d: "m18 15-6-6-6 6" }) }), _jsxs(ControlButton, { label: "Zoom in", onClick: () => zoom(ZOOM_STEP), cell: { col: 3, row: 1 }, children: [_jsx("circle", { cx: "11", cy: "11", r: "7" }), _jsx("path", { d: "m21 21-4-4M8 11h6M11 8v6" })] }), _jsx(ControlButton, { label: "Pan left", onClick: () => pan(-PAN_STEP, 0), cell: { col: 1, row: 2 }, children: _jsx("path", { d: "m15 18-6-6 6-6" }) }), _jsxs(ControlButton, { label: "Reset view", onClick: resetView, cell: { col: 2, row: 2 }, children: [_jsx("path", { d: "M3 12a9 9 0 1 0 2.6-6.3L3 8" }), _jsx("path", { d: "M3 3v5h5" })] }), _jsx(ControlButton, { label: "Pan right", onClick: () => pan(PAN_STEP, 0), cell: { col: 3, row: 2 }, children: _jsx("path", { d: "m9 18 6-6-6-6" }) }), _jsx(ControlButton, { label: "Pan down", onClick: () => pan(0, PAN_STEP), cell: { col: 2, row: 3 }, children: _jsx("path", { d: "m6 9 6 6 6-6" }) }), _jsxs(ControlButton, { label: "Zoom out", onClick: () => zoom(1 / ZOOM_STEP), cell: { col: 3, row: 3 }, children: [_jsx("circle", { cx: "11", cy: "11", r: "7" }), _jsx("path", { d: "m21 21-4-4M8 11h6" })] })] })) : null] }));
114
210
  }
115
211
  //# sourceMappingURL=MermaidMdx.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MermaidMdx.js","sourceRoot":"","sources":["../../src/components/MermaidMdx.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MermaidMdx.js","sourceRoot":"","sources":["../../src/components/MermaidMdx.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@docubook/mdx-content",
3
- "version": "3.3.0",
3
+ "version": "3.4.0",
4
4
  "description": "Portable MDX components and framework adapters for DocuBook",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",