feat(studio): canvas glue swap — overlay, gestures, selection to final form#2211
Conversation
106e823 to
8f38050
Compare
a9ac3bd to
d9e9715
Compare
8f38050 to
c87f8d5
Compare
miga-heygen
left a comment
There was a problem hiding this comment.
Reviewed as part of the 25-PR NLE overhaul stack. Full stack review on #2205 (the keystone). This is one of the critical swap PRs — reviewed with extra scrutiny. No blockers. — Miga
49a3faf to
c50d69d
Compare
3e255a1 to
84523e1
Compare
436fb8c to
3888f93
Compare
0dcdd15 to
2508687
Compare
miguel-heygen
left a comment
There was a problem hiding this comment.
Final rebase review: current head inspected, latest required checks pass, no unresolved blocking findings. Approving; stack order/invariants remain as specified.
3888f93 to
f6d6992
Compare
5b7aa8c to
5032b2d
Compare
f6d6992 to
7456861
Compare
5032b2d to
2b47ce6
Compare
7456861 to
5b35c76
Compare
miguel-heygen
left a comment
There was a problem hiding this comment.
Re-audit current head 5b35c76: required checks pass; no new actionable threads. Approving current head.
miguel-heygen
left a comment
There was a problem hiding this comment.
Re-reviewed current head and verified the addressed feedback and required behavior. Approval is for this exact head; Graphite mergeability may still be pending.
What: AssetCard — the sidebar asset tile (thumbnail, hover preview, click policy, context menu incl. add-at-playhead), unwired. Why: standalone sidebar concept; AssetsTab adopts it in the app-shell swap. How: new file against the coexistence layer (assetHelpers, AssetContextMenu, assetClickBehavior, assetPreviewStore); one TEMP(studio-dnd) entry until AssetsTab wires it. Test plan: tsc --noEmit; fallow audit clean.
…l form What: flips the canvas editing glue to its final NLE form (25 files): DomEditOverlay renders DomEditSelectionChrome/CanvasContextMenu, the gesture pipeline gains center-anchored corner resize (CapCut model) + z-order commit, dom selection/wiring/geometry-commit hooks move to the multi-select store API. Adds the anchored-resize characterization test. Why: first of three swap steps; the coexistence layer makes it compile-green without touching timeline or App glue. How: modified files to final content; no deletions (nothing is orphaned by this step — verified). Both characterization suites from the earlier PR stay green. Test plan: tsc --noEmit; bunx vitest run (full suite; anchored-resize suite passes from this PR on); fallow audit clean.
2b47ce6 to
e474a3b
Compare
5b35c76 to
9f3e9ac
Compare
0680c80
into
studio-dnd/pr18-nle-shell-assembly

What
flips the canvas editing glue to its final NLE form (25 files): DomEditOverlay renders DomEditSelectionChrome/CanvasContextMenu, the gesture pipeline gains center-anchored corner resize (CapCut model) + z-order commit, dom selection/wiring/geometry-commit hooks move to the multi-select store API. Adds the anchored-resize characterization test.
Why
first of three swap steps; the coexistence layer makes it compile-green without touching timeline or App glue.
How
modified files to final content; no deletions (nothing is orphaned by this step — verified). Both characterization suites from the earlier PR stay green.
Test plan
tsc --noEmit; bunx vitest run (full suite; anchored-resize suite passes from this PR on); fallow audit clean.
Stack position 20/25 — studio NLE overhaul (CapCut-parity timeline + canvas). Graphite manages bases; merge from #2192 upward. Temporary
TEMP(studio-dnd)fallow entries (unwired-component windows) are all removed by #2213 (app-shell swap), whose tree is byte-identical to the fully-verified integration branch.