Skip to content

feat(editor): stage overlay slot + pro capture overlay for studio#465

Merged
wass08 merged 3 commits into
mainfrom
feat/studio-stage-capture
Jul 6, 2026
Merged

feat(editor): stage overlay slot + pro capture overlay for studio#465
wass08 merged 3 commits into
mainfrom
feat/studio-stage-capture

Conversation

@wass08

@wass08 wass08 commented Jul 6, 2026

Copy link
Copy Markdown
Collaborator

Adds the editor-side primitives the private studio workspace builds on:

  • stageOverlay Editor prop — a slot rendered over the stage (used by the studio Scene/Gallery switch and stage gallery)
  • CaptureMode.crop preselect + standardAspect — capture can open directly in a chosen crop/aspect (studio capbar presets)
  • capture overlay restyle (scrim, caption fix) matching the pro capture flow

Consumed by pascalorg/private-editor feat/studio-pro, which pins this branch's SHA.

🤖 Generated with Claude Code


Note

Low Risk
Mostly additive UI slots and capture options with sensible defaults; thumbnail pipeline behavior changes only when hosts pass new standardSize / aspect fields.

Overview
Adds editor v2 host hooks for the private studio workspace: a stageOverlay prop on Editor / EditorLayoutV2 that paints a full-bleed surface over the viewer (gallery, scene switch) while the 3D canvas stays mounted and the viewer toolbar stays above the overlay. When a stage overlay is shown, the floating level selector is hidden so it does not clash with the alternate stage.

Snapshot capture is extended so hosts can open capture with a preselected crop and standard aspect via CaptureMode (crop, standardAspect). The overlay UI is restyled (letterboxed frame, rule-of-thirds, aspect picker, HUD, shutter control) and passes standardSize through the event bus; ThumbnailGenerator center-crops to that size instead of always 1920×1080. New types SnapshotCropMode and SnapshotStandardAspect are exported from the package.

Reviewed by Cursor Bugbot for commit 73fffe3. Bugbot is set up for automated code reviews on this repo. Configure here.

wass08 and others added 3 commits July 3, 2026 09:21
…pture overlay

- Editor/EditorLayoutV2 gain a stageOverlay slot rendered over the canvas
  but under the viewer toolbar (z-10 < z-20), so hosts can swap in a
  full-stage surface (e.g. studio gallery) without unmounting the WebGL
  canvas; FloatingLevelSelector hides while a stage overlay is active
- CaptureMode 'standard' accepts an optional crop preselection
  (SnapshotCropMode, exported) so hosts can enter capture with
  standard/viewport/area already chosen
- SnapshotCaptureOverlay restyle: letterboxed 16:9 frame with corner
  accents + rule-of-thirds for standard mode, thirds grid in viewport
  and area modes, top-center crop/format HUD chips, shutter button with
  capture/saved states — all existing crop, drag, resize and preset
  behaviors preserved

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… fix

- Standard crop gains aspect presets (16:9, 9:16, 4:3, 3:4, 1:1) — clicking
  the active Standard chip opens the picker; the letterbox frame, HUD and
  output resolution follow the choice
- ThumbnailGenerateEvent carries standardSize; ThumbnailGenerator
  center-crops to it (default stays 1920×1080)
- Subtle bottom scrim keeps shutter/caption readable on bright scenes
- Fix missing space in the snapshot caption

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Hosts (the studio capbar) can now pass standardAspect alongside crop when
entering capture mode; the overlay initializes its aspect picker from it.
SnapshotStandardAspect exported.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using high effort and found 2 potential issues.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Want reviews to match your repository better? Bugbot Learning can learn team-specific rules from PR activity. A team admin can enable Learning in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 73fffe3. Configure here.

setDrag(null)
}
}, [isCaptureMode, isPreset])
}, [isCaptureMode, isPreset, requestedCrop, requestedAspect])

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Capture reset reruns mid-session

Medium Severity

The useEffect responsible for resetting the capture overlay state now includes requestedCrop and requestedAspect in its dependencies. This causes the overlay to prematurely reset its crop mode, aspect, area selection, and captureState whenever the host updates these values, potentially losing user work, re-enabling the shutter during an active capture, or dismissing "Saved" feedback too early.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 73fffe3. Configure here.

viewerToolbarRight,
viewerContent,
overlays,
stageOverlay,

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mobile v2 drops stageOverlay

Medium Severity

When EditorLayoutV2 renders for mobile, it calls EditorLayoutMobile without passing the stageOverlay prop. This prevents the stage overlay from appearing and also inadvertently hides the FloatingLevelSelector, leaving mobile users without either.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 73fffe3. Configure here.

@wass08 wass08 merged commit 9b5e229 into main Jul 6, 2026
4 checks passed
@mintlify

mintlify Bot commented Jul 6, 2026

Copy link
Copy Markdown

Preview deployment for your docs. Learn more about Mintlify Previews.

Project Status Preview Updated (UTC)
pascal 🔴 Failed Jul 6, 2026, 5:22 PM

💡 Tip: Enable Workflows to automatically generate PRs for you.

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