Skip to content

Add canvas presentation mode - #16

Open
Fuzzdkk wants to merge 1 commit into
SagaLabs:mainfrom
Fuzzdkk:agent/canvas-presentation-mode
Open

Add canvas presentation mode#16
Fuzzdkk wants to merge 1 commit into
SagaLabs:mainfrom
Fuzzdkk:agent/canvas-presentation-mode

Conversation

@Fuzzdkk

@Fuzzdkk Fuzzdkk commented Jul 28, 2026

Copy link
Copy Markdown
Contributor

What changed

I needed a cleaner way to walk through a finished canvas without all of the editing UI around it, especially when sharing my screen or taking screenshots. This adds a presentation mode from the header.

While presenting, editing is disabled but the canvas can still be panned and zoomed. Assets and routes can be opened temporarily to show their full details, and there is also a button to show or hide every detail card at once. None of those presentation-only changes are saved back to the canvas.

I also added an optional attack playback view based on route timestamps. It steps through the attack in order, dims anything that has not been reached yet, and points out the specific routes that are missing a valid timestamp. Opening playback refits the diagram so the timeline does not cover the lower assets, then restores the previous presentation view when it closes.

The controls fade when the pointer is still, while a subtle SagaLabs watermark remains visible. Exiting with the button or Escape restores the editor selection and exact viewport. Pending autosave changes are flushed before presentation starts, and the temporary presentation viewport is never written over the saved editor viewport.

Testing

  • Presentation mode Playwright suite: 7/7
  • Presentation playback unit tests: 3/3
  • TypeScript check
  • Production build

The full Playwright suite is 37/39. The two remaining failures are the existing macOS Ctrl-click route-selection tests and are unrelated to this branch.

@Fuzzdkk
Fuzzdkk marked this pull request as ready for review July 28, 2026 17:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant