feat: Guided Tours Framework (Navigating the Editor)#2299
Draft
camielvs wants to merge 1 commit into
Draft
Conversation
This was referenced May 21, 2026
Collaborator
Author
|
Warning This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
This stack of pull requests is managed by Graphite. Learn more about stacking. |
3 tasks
🎩 PreviewA preview build has been created at: |
08e1624 to
90d5b9d
Compare
0f30f2c to
4cc74f0
Compare
90d5b9d to
d89055f
Compare
4cc74f0 to
fd9690e
Compare
a0e7c17 to
a98fb46
Compare
3 tasks
a98fb46 to
9f459c8
Compare
fd9690e to
8c23f4e
Compare
9f459c8 to
e7770ca
Compare
e7770ca to
e26abd3
Compare
8c23f4e to
b781af4
Compare
d95e8da to
6246686
Compare
b781af4 to
12125e7
Compare
bd097db to
84f39e0
Compare
3 tasks
84f39e0 to
d6d13ae
Compare
b73fea7 to
faca533
Compare
d6d13ae to
e97b036
Compare
3 tasks
e97b036 to
d308ae7
Compare
faca533 to
879e09d
Compare
d308ae7 to
95b9b2a
Compare
879e09d to
4bd1952
Compare
This was referenced Jun 2, 2026
This was referenced Jun 10, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Description
The editor-side tour bridge and the interaction vocabulary it implements. A single component detects tour-step interactions in the editor and reports their completion to the shared tour-progress state; step advancement is gated by the custom navigation (gated "Next" / auto-advance live in #2340). Sufficient to power the first tour, Navigating the Editor (#2306).
The framework foundation (route, provider, popover, hub UI) lives in #2348. This PR replaces the empty
EditorTourBridgestub with its implementation and moves the interaction vocabulary ontoTourStep.Interaction vocabulary (
registry.ts)TourStepdeclares the interaction union and its target fields here (moved down from the foundation so the types live alongside the bridge that implements them):interaction:"select-task" | "undock-window" | "redock-window"targetWindowId— which dock window an undock/redock step targetstargetWindowName— friendly window name used in the checklist labelfallbackContentArchitecture
EditorTourBridge(src/routes/v2/pages/Editor/components/EditorTourBridge.tsx)Reads the current step from
useTour(). When the step declares aninteraction, the bridge wires a listener that — instead of advancing the tour itself — marks the step complete in the sharedTourProgressContext. The popover's gated "Next" then enables and the framework auto-advances after a short beat (#2340). Three interactions:select-task— completes when the user clicks an element under[data-tour-node="task"](a stable selector, not React Flow's CSS class).undock-window— completes when a docked panel matchingtargetWindowIdis dragged out of its dock area.redock-window— completes when a floating window matchingtargetWindowIdis dropped back into a dock.Helpers
followWindowPosition— keeps the spotlight tracking a floating panel as the user drags it (throttled to one resize-event dispatch per animation frame).trackDockStateTransition— baselines windowdockStateat step start and fires when a baselined window crosses the undock/redock transition.Already-satisfied on entry
If the prompted state already holds when the step lands (e.g. the target window is already floating), the step is marked complete immediately — its checklist row shows pre-checked and "Next" is enabled — rather than forcing the user to perform an action they've effectively already done.
Checklist labels
Adds the checklist copy for these interactions (the contextual bold-target support comes from #2340):
select-task→ "Select the highlighted task"undock-window→ "Drag the {targetWindowName} panel out of its dock"redock-window→ "Dock the {targetWindowName} panel back into place"Each falls back to a generic phrasing when the target field isn't set.
Related Issue and Pull requests
Progresses https://github.com/Shopify/oasis-frontend/issues/583
Builds on #2348 (foundation) and #2340 (custom navigation + gating). First consumer is #2306. #2347 adds more interaction types on top.
Type of Change
Checklist
Test Instructions
No visible behavior on its own — test with #2306 on top, walking the Navigating the Editor tour:
select-task(step 7) — clicking the Greet task body completes it; clicking its IO ports does not.undock-window/redock-window(steps 9–10) — dragging Task Properties out / back completes the step; the checklist reads "Drag the Task Properties panel out of its dock".