Skip to content

feat: Guided Tours Framework (First Pipeline)#2347

Open
camielvs wants to merge 1 commit into
05-22-feat_guided_tour_-_navigating_the_editorfrom
06-02-feat_guided_tours_framework_2
Open

feat: Guided Tours Framework (First Pipeline)#2347
camielvs wants to merge 1 commit into
05-22-feat_guided_tour_-_navigating_the_editorfrom
06-02-feat_guided_tours_framework_2

Conversation

@camielvs

@camielvs camielvs commented Jun 2, 2026

Copy link
Copy Markdown
Collaborator

Description

The interaction primitives, popover positioning, and CSS utilities needed to power the second guided tour (#2312Build Your First Pipeline). No visible behavior on its own; all testing happens in #2312.

Builds directly on #2299 (the first three interactions). This PR introduces the remaining interactions a build-from-scratch tour needs, plus a handful of cross-cutting tour-step features.

What's new

New interaction types (EditorTourBridge.tsx)

Each is declared on a tour step via interaction: "<name>". Following the model established in #2299, a detected interaction marks the step complete in the shared tour-progress state — it does not advance the tour itself; the gated "Next" / auto-advance in #2340 handle progression.

  • expand-folder — completes when the named folder in the component library is expanded (matches [data-folder-name=...] [aria-expanded="true"]).
  • library-search — completes when the search box value contains a target substring; debounced so the user finishes typing first.
  • add-task — completes when a task whose name matches a target substring is added to the canvas. Baseline counted at step start so pre-existing tasks don't false-trigger.
  • add-input / add-output — count-based: complete when spec.inputs.length / spec.outputs.length increases.
  • connect-edge — completes when a specific edge is drawn, matched by (sourceTaskName, sourcePortName, targetTaskName, targetPortName). The target task/port pair is optional.
  • set-argument — completes when a specific argument on any task is set to a non-empty string.

Existing select-task (from #2299) gets a targetTaskName narrowing — only the named task counts, not any task.

Contextual checklist labels

Adds the checklist copy for the interactions this PR introduces (using the contextual bold-target support from #2340):

  • add-task → "Add {targetTaskName} to the canvas"
  • expand-folder → "Open the {targetFolderName} folder"
  • library-search → "Search the library for {targetSearchTerm}"
  • set-argument → "Set the {targetArgumentName} value"
  • add-input / add-output / connect-edge → generic phrasings

Each falls back to a generic label when its target field isn't set.

Cross-cutting step features

  • ringSelectors — paint per-element rings via the new .tour-ring CSS class (reactour merges highlightedSelectors into one bounding box; per-handle rings need a separate mechanism).
  • requiresTaskSelected — auto-rewind to a previous select-task step if the required task is no longer selected.
  • ensureWindowRestored — auto-restore a minimized/hidden dock window at step start.
  • resetLibrarySearch — clear the component-library search box before the step's selector is queried.
  • libraryDragAllow — block drags of library items that don't match the step's target.

Popover positioning

  • computeDefaultPopoverPosition gets a symmetric left-anchored tall-strip branch (mirrors the right-anchored branch from feat: Guided Tours Foundation #2348) for steps that highlight the component library.
  • POPOVER_STYLES.clickArea set to pointer-events: none so the spotlight click-area doesn't intercept drags onto the canvas.

Misc

  • TourStep registry types extended with the new interaction fields (targetFolderName, targetSearchTerm, targetTaskName, targetComponentName, targetEdge, targetArgumentName, plus the cross-cutting flags above).
  • .tour-ring CSS utility in editor.css, with a React Flow handle override (position: absolute).
  • defaultPipelineYamlWithName now JSON.stringifys the name (pipelines named with YAML-special characters were breaking the YAML).

Related Issue and Pull requests

Progresses https://github.com/Shopify/oasis-frontend/issues/583

Builds on #2299. Consumed by #2312 (First Pipeline tour content).

Type of Change

  • New feature

Checklist

  • I have tested this does not break current pipelines / runs functionality
  • I have tested the changes on staging

Test Instructions

No visible behavior on its own — every new utility is unused until #2312 lands. Regression-only checks in isolation:

  • Navigating the Editor tour (feat: Guided Tour - Navigating the Editor #2306) still works end-to-end; none of the new interactions or cross-cutting features affect tours that don't use them.
  • select-task without targetTaskName still completes on click of any task (the narrowing is opt-in).
  • Editor opens normally, no console errors from the new CSS utility or popover-style additions.

Additional Comments

Originally bundled into #2312 alongside the tour content; split out so reviewers can read the mechanics and the tour JSON separately.

@github-actions

github-actions Bot commented Jun 2, 2026

Copy link
Copy Markdown

🎩 Preview

A preview build has been created at: 06-02-feat_guided_tours_framework_2/67e149f

camielvs commented Jun 2, 2026

Copy link
Copy Markdown
Collaborator Author

@camielvs camielvs added the #gsd:50583 Learning Hub label Jun 2, 2026 — with Graphite App
@camielvs camielvs changed the title feat: Guided Tours Framework 2 feat: Guided Tours Framework (First Pipeline) Jun 2, 2026
@camielvs camielvs changed the title feat: Guided Tours Framework (First Pipeline) feat: Guided Tours Expanded Interactions (First Pipeline) Jun 2, 2026
@camielvs camielvs changed the title feat: Guided Tours Expanded Interactions (First Pipeline) feat: Guided Tours Expanded Framework (First Pipeline) Jun 2, 2026
@camielvs camielvs changed the title feat: Guided Tours Expanded Framework (First Pipeline) feat: Guided Tours Additional Framework (First Pipeline) Jun 2, 2026
@camielvs camielvs force-pushed the 06-02-feat_guided_tours_framework_2 branch 2 times, most recently from f262b2f to 42a8c86 Compare June 2, 2026 23:32
@camielvs camielvs force-pushed the 05-22-feat_guided_tour_-_navigating_the_editor branch from 64f6366 to da1c54e Compare June 2, 2026 23:50
@camielvs camielvs force-pushed the 06-02-feat_guided_tours_framework_2 branch 2 times, most recently from ebfb573 to 3fa9ad5 Compare June 2, 2026 23:54
@camielvs camielvs force-pushed the 05-22-feat_guided_tour_-_navigating_the_editor branch from da1c54e to 019a78f Compare June 2, 2026 23:54
@camielvs camielvs mentioned this pull request Jun 2, 2026
3 tasks
@camielvs camielvs force-pushed the 05-22-feat_guided_tour_-_navigating_the_editor branch from 019a78f to fe394fe Compare June 3, 2026 00:12
@camielvs camielvs force-pushed the 06-02-feat_guided_tours_framework_2 branch from 3fa9ad5 to fd171b1 Compare June 3, 2026 00:12
@camielvs camielvs force-pushed the 05-22-feat_guided_tour_-_navigating_the_editor branch 2 times, most recently from 25b9c6f to f879945 Compare June 9, 2026 20:32
@camielvs camielvs force-pushed the 06-02-feat_guided_tours_framework_2 branch from 598d4be to 3e48035 Compare June 9, 2026 20:32
@camielvs camielvs force-pushed the 06-02-feat_guided_tours_framework_2 branch from 3e48035 to 0dd9520 Compare June 11, 2026 20:32
Comment thread src/routes/v2/pages/Editor/components/EditorTourBridge.tsx
Comment thread src/routes/v2/pages/Editor/components/EditorTourBridge.tsx
Comment thread src/routes/v2/pages/Editor/components/EditorTourBridge.tsx
@camielvs camielvs mentioned this pull request Jun 15, 2026
8 tasks
@camielvs camielvs force-pushed the 06-02-feat_guided_tours_framework_2 branch from 0dd9520 to 7a95d8f Compare June 15, 2026 18:47
@camielvs camielvs force-pushed the 05-22-feat_guided_tour_-_navigating_the_editor branch from 16488a0 to a7d61b9 Compare June 15, 2026 18:59
@camielvs camielvs force-pushed the 06-02-feat_guided_tours_framework_2 branch 2 times, most recently from 603e882 to 12e6005 Compare June 15, 2026 19:21
@camielvs camielvs force-pushed the 05-22-feat_guided_tour_-_navigating_the_editor branch from a7d61b9 to 0ec274f Compare June 15, 2026 19:21
@camielvs camielvs force-pushed the 06-02-feat_guided_tours_framework_2 branch from 12e6005 to e77d84f Compare June 15, 2026 19:32
@camielvs camielvs force-pushed the 05-22-feat_guided_tour_-_navigating_the_editor branch 2 times, most recently from ce72fb2 to c02f37b Compare June 15, 2026 19:49
@camielvs camielvs force-pushed the 06-02-feat_guided_tours_framework_2 branch 2 times, most recently from 95114fe to c6fff29 Compare June 15, 2026 20:13
@camielvs camielvs force-pushed the 05-22-feat_guided_tour_-_navigating_the_editor branch 2 times, most recently from 4cbc7a2 to 49a9026 Compare June 15, 2026 22:34
@camielvs camielvs force-pushed the 06-02-feat_guided_tours_framework_2 branch from c6fff29 to 1faf568 Compare June 15, 2026 22:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

#gsd:50583 Learning Hub

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant