Update onboarding to V1 browser and desktop flows (#6714)

* Remove unused `telemetryLoader`

* Remove onboarding redirect behavior

* Allow subRoute to be passed to navigateToProject

* Replace warning dialog routes with toasts

* Wire up new utilities and toasts to UI components

* Add home sidebar buttons for tutorial flow

* Rename menu item

* Add flex-1 so home-layout fills available space

* Remove onboarding avatar tests, they are becoming irrelevant

* Consolidate onboarding tests to one longer one

and update it to not use pixel color checks, and use fixtures.

* Shorten warning toast button text

* tsc, lint, and circular deps

* Update circular dep file

* Fix mistakes made in circular update tweaking

* One more dumb created circular dep

* Update src/routes/Onboarding/utils.tsx

Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com>

* Fix narrow screen home layout breaking

* fix: kevin, navigation routes fixed

* fix: filename parsing is correct now for onboarding with the last file sep

* Fix e2e test state checks that are diff on Linux

* Create onboarding project entirely through systemIOMachine

* Fix Windows path construction

* Make utility to verify a string is an onboarding value

* Little biome formatting suggestion fix

* Units onboarding step was not using OnboardingButtons

* Add type checking of next and previous status, fix useNextClick

* Update `OnboardingStatus` type on WASM side

* Make onboarding different on browser and web, placeholder component

* Show proof of concept with custom content per route

* Make text type args not insta dismiss when you click anywhere

* Make some utility hooks for the onboarding

* Update requestedProjectName along with requestedProjectName

* Build out a rough draft of desktop onboarding

* Remove unused onboarding route files

* Build out rough draft of browser onboarding content

* @jgomez720 browser flow feedback

* @jgomez420 desktop feedback

* tsc and lints

* Tweaks

* Import is dead, long live Add files

* What's up with my inability to type "highlight"?

* Codespell and String casting

* Update browser sample to be axial fan

* lint and tsc

* codespell again

* Remove unused nightmare function `useDemoCode`

* Add a few unit tests

* Update desktop to use bulk file creation from #6747

* Oops overwrote main.kcl on the modify with text-to-cad step

* Undo the dumb use of `sep` that I introduced

* Fix up project test

which was fragile to the number of steps in the onboarding smh

* Fix up onboarding flow test

* typo

---------

Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com>
Co-authored-by: Kevin Nadro <kevin@zoo.dev>
This commit is contained in:
Frank Noirot
2025-05-08 20:37:21 -04:00
committed by GitHub
parent 9853353512
commit 3b7b4f85a1
42 changed files with 2366 additions and 1164 deletions

View File

@ -496,43 +496,84 @@ pub enum OnboardingStatus {
/// The user has dismissed onboarding.
Dismissed,
// Routes
#[serde(rename = "/")]
#[display("/")]
Index,
#[serde(rename = "/camera")]
#[display("/camera")]
Camera,
#[serde(rename = "/streaming")]
#[display("/streaming")]
Streaming,
#[serde(rename = "/editor")]
#[display("/editor")]
Editor,
#[serde(rename = "/parametric-modeling")]
#[display("/parametric-modeling")]
ParametricModeling,
#[serde(rename = "/interactive-numbers")]
#[display("/interactive-numbers")]
InteractiveNumbers,
#[serde(rename = "/command-k")]
#[display("/command-k")]
CommandK,
#[serde(rename = "/user-menu")]
#[display("/user-menu")]
UserMenu,
#[serde(rename = "/project-menu")]
#[display("/project-menu")]
ProjectMenu,
#[serde(rename = "/export")]
#[display("/export")]
Export,
#[serde(rename = "/sketching")]
#[display("/sketching")]
Sketching,
#[serde(rename = "/future-work")]
#[display("/future-work")]
FutureWork,
// Desktop Routes
#[serde(rename = "/desktop")]
#[display("/desktop")]
DesktopWelcome,
#[serde(rename = "/desktop/scene")]
#[display("/desktop/scene")]
DesktopScene,
#[serde(rename = "/desktop/toolbar")]
#[display("/desktop/toolbar")]
DesktopToolbar,
#[serde(rename = "/desktop/text-to-cad")]
#[display("/desktop/text-to-cad")]
DesktopTextToCadWelcome,
#[serde(rename = "/desktop/text-to-cad-prompt")]
#[display("/desktop/text-to-cad-prompt")]
DesktopTextToCadPrompt,
#[serde(rename = "/desktop/feature-tree-pane")]
#[display("/desktop/feature-tree-pane")]
DesktopFeatureTreePane,
#[serde(rename = "/desktop/code-pane")]
#[display("/desktop/code-pane")]
DesktopCodePane,
#[serde(rename = "/desktop/project-pane")]
#[display("/desktop/project-pane")]
DesktopProjectFilesPane,
#[serde(rename = "/desktop/other-panes")]
#[display("/desktop/other-panes")]
DesktopOtherPanes,
#[serde(rename = "/desktop/prompt-to-edit")]
#[display("/desktop/prompt-to-edit")]
DesktopPromptToEditWelcome,
#[serde(rename = "/desktop/prompt-to-edit-prompt")]
#[display("/desktop/prompt-to-edit-prompt")]
DesktopPromptToEditPrompt,
#[serde(rename = "/desktop/prompt-to-edit-result")]
#[display("/desktop/prompt-to-edit-result")]
DesktopPromptToEditResult,
#[serde(rename = "/desktop/imports")]
#[display("/desktop/imports")]
DesktopImports,
#[serde(rename = "/desktop/exports")]
#[display("/desktop/exports")]
DesktopExports,
#[serde(rename = "/desktop/conclusion")]
#[display("/desktop/conclusion")]
DesktopConclusion,
// Browser Routes
#[serde(rename = "/browser")]
#[display("/browser")]
BrowserWelcome,
#[serde(rename = "/browser/scene")]
#[display("/browser/scene")]
BrowserScene,
#[serde(rename = "/browser/toolbar")]
#[display("/browser/toolbar")]
BrowserToolbar,
#[serde(rename = "/browser/text-to-cad")]
#[display("/browser/text-to-cad")]
BrowserTextToCadWelcome,
#[serde(rename = "/browser/text-to-cad-prompt")]
#[display("/browser/text-to-cad-prompt")]
BrowserTextToCadPrompt,
#[serde(rename = "/browser/feature-tree-pane")]
#[display("/browser/feature-tree-pane")]
BrowserFeatureTreePane,
#[serde(rename = "/browser/prompt-to-edit")]
#[display("/browser/prompt-to-edit")]
BrowserPromptToEditWelcome,
#[serde(rename = "/browser/prompt-to-edit-prompt")]
#[display("/browser/prompt-to-edit-prompt")]
BrowserPromptToEditPrompt,
#[serde(rename = "/browser/prompt-to-edit-result")]
#[display("/browser/prompt-to-edit-result")]
BrowserPromptToEditResult,
#[serde(rename = "/browser/conclusion")]
#[display("/browser/conclusion")]
BrowserConclusion,
}
fn is_default<T: Default + PartialEq>(t: &T) -> bool {