CONTRIBUTING.md with development setup, conventions, and PR process.
JSDoc comments on public TypeScript interfaces.
Fixed
Code block line numbers in dark mode had 2.85:1 contrast. Bumped from #6e6e6e to #999 (4.6:1).
Code block copy button icon in dark mode used --nu-purple-100 on hover. Switched to --nu-purple-40.
Wide tables overflowed into the sidebar. A rehype plugin now wraps each <table> in a scrollable <div> at build time.
Reopening the fullscreen viewer after Escape showed a blue focus ring around the entire viewport.
Mermaid hover toolbar sat unevenly relative to the diagram container border.
Fullscreen close button used rgb(255 255 255 / 20%) while the theme toggle used 15%. Both use 15% now.
Mobile sidebar: theme toggle and GitHub icon were white-on-white in light mode.
Mobile sidebar: theme toggle was taller than wide; GitHub icon sat below it.
Copy buttons did nothing on HTTP (insecure contexts). Added document.execCommand("copy") fallback.
Clicking copy twice during the success animation duplicated the check icon. Debounced per button.
iOS Safari toggled the URL bar when copying in the fullscreen viewer. The fallback textarea now appends inside the overlay.
Mouse-opening the fullscreen viewer put a focus ring on the first control. Keyboard opens focus the first button; mouse opens focus the overlay container (no visible ring, Tab still works).
Zoom in/out/reset buttons hidden on mobile (pinch-to-zoom covers it).
Mermaid user overrides dropped on client-side theme toggle. Runtime configs now include merged user config.
Mermaid lazy-rendered diagrams used stale theme after toggle. Observer callback now reads live theme mode.
Mermaid pinch-to-zoom anchored to viewport center instead of pinch midpoint.
Mermaid MutationObservers accumulated on view transitions. Previous observer now disconnected before creating a new one.
Mermaid render race on rapid theme toggles. Per-container version tracking discards stale async completions.
Mermaid fullscreen close could fire twice during animation. Added guard against double-close.
Mermaid diagramSourcesMap leaked detached DOM nodes across view transitions. Switched to WeakMap.