From d23318cfa695edb0ea06cb4db17c50bf65a41997 Mon Sep 17 00:00:00 2001
From: EthanHealy01 <80844253+EthanHealy01@users.noreply.github.com>
Date: Sat, 11 Jul 2026 12:41:48 +0100
Subject: [PATCH] Feature/onboarding updates for policies and portal (#6926)
---
.../public/locales/en-US/translation.toml | 31 +-
.../onboarding/SaasOnboardingModal.tsx | 171 ++------
.../components/onboarding/saasFlowResolver.ts | 37 +-
.../onboarding/saasOnboardingFlowConfig.ts | 44 +-
.../onboarding/useSaasOnboardingState.ts | 5 +-
.../src/core/components/FileManager.tsx | 1 +
.../InitialOnboardingModal.module.css | 187 ++++++++-
.../InitialOnboardingModal/renderButtons.tsx | 32 +-
.../core/components/onboarding/Onboarding.tsx | 201 +++------
.../OnboardingModalSlide.stories.tsx | 208 ++++++++++
.../onboarding/OnboardingModalSlide.tsx | 231 +++--------
.../onboarding/OnboardingSlideShell.tsx | 226 ++++++++++
.../components/onboarding/OnboardingTour.tsx | 32 +-
.../onboarding/StaticOnboardingSlide.tsx | 67 +++
.../components/onboarding/adminStepsConfig.ts | 389 ++++++++++--------
.../onboarding/onboardingFlowConfig.ts | 80 ++--
.../onboarding/onboardingSlideTypes.ts | 65 +++
.../orchestrator/onboardingConfig.ts | 23 +-
.../orchestrator/onboardingStorage.ts | 79 ++++
.../orchestrator/useOnboardingOrchestrator.ts | 29 +-
.../onboarding/slides/DesktopInstallTitle.tsx | 49 ++-
.../onboarding/slides/ProcessorIntroSlide.tsx | 30 ++
.../components/onboarding/tourRegistry.ts | 105 +++++
.../components/onboarding/userStepsConfig.ts | 20 +-
.../core/components/shared/AppConfigModal.tsx | 2 +-
.../core/components/shared/FileSidebar.tsx | 4 +
.../core/components/shared/LandingPage.css | 2 +-
.../core/components/shared/LandingPage.tsx | 7 -
.../components/shared/LoadingFallback.tsx | 4 +-
.../shared/SidebarChecklistSlot.tsx | 13 +
frontend/editor/src/core/constants/events.ts | 5 +-
frontend/editor/src/core/pages/HomePage.tsx | 17 +-
.../core/tests/stubbed/main-dashboard.spec.ts | 37 --
.../src/core/utils/settingsNavigation.ts | 7 +
.../DesktopSaasOnboardingBootstrap.tsx | 73 +---
.../src/portal/components/LoginScreen.tsx | 30 +-
.../saas/components/OnboardingBootstrap.tsx | 33 +-
.../onboarding/OnboardingChecklist.module.css | 168 ++++++++
.../onboarding/OnboardingChecklist.tsx | 293 +++++++++++++
.../components/onboarding/OnboardingTour.tsx | 117 +++++-
.../saas/components/shared/AppConfigModal.tsx | 18 +-
.../shared/SidebarChecklistSlot.tsx | 13 +
.../shared/config/saasConfigNavSections.tsx | 42 +-
frontend/editor/src/saas/utils/appSettings.ts | 13 +-
44 files changed, 2308 insertions(+), 932 deletions(-)
create mode 100644 frontend/editor/src/core/components/onboarding/OnboardingModalSlide.stories.tsx
create mode 100644 frontend/editor/src/core/components/onboarding/OnboardingSlideShell.tsx
create mode 100644 frontend/editor/src/core/components/onboarding/StaticOnboardingSlide.tsx
create mode 100644 frontend/editor/src/core/components/onboarding/onboardingSlideTypes.ts
create mode 100644 frontend/editor/src/core/components/onboarding/slides/ProcessorIntroSlide.tsx
create mode 100644 frontend/editor/src/core/components/onboarding/tourRegistry.ts
create mode 100644 frontend/editor/src/core/components/shared/SidebarChecklistSlot.tsx
create mode 100644 frontend/editor/src/saas/components/onboarding/OnboardingChecklist.module.css
create mode 100644 frontend/editor/src/saas/components/onboarding/OnboardingChecklist.tsx
create mode 100644 frontend/editor/src/saas/components/shared/SidebarChecklistSlot.tsx
diff --git a/frontend/editor/public/locales/en-US/translation.toml b/frontend/editor/public/locales/en-US/translation.toml
index d9ed967d62..d323a5a5f9 100644
--- a/frontend/editor/public/locales/en-US/translation.toml
+++ b/frontend/editor/public/locales/en-US/translation.toml
@@ -4647,7 +4647,6 @@ welcomeTitle = "You've been invited!"
[landing]
addFiles = "Add Files"
-heroSubtitle = "Drop in or add an existing PDF to get started."
mobileUpload = "Upload from Mobile"
openFromComputer = "Open from computer"
uploadFromComputer = "Upload from computer"
@@ -4962,11 +4961,11 @@ text = "Decide how you want the text output formatted:"
title = "Output"
[onboarding]
-activeFiles = "The Active Files view shows all of the PDFs you have loaded into the tool, and allows you to select which ones to process."
+activeFiles = "The Active Files view shows all of the PDFs you have loaded into the tool."
allTools = "This is the Tools panel, where you can browse and select from all available PDF tools."
close = "Close"
cropSettings = "Now that we've selected the file we want crop, we can configure the Crop tool to choose the area that we want to crop the PDF to."
-fileCheckbox = "Clicking one of the files selects it for processing. You can select multiple files for batch operations."
+fileCheckbox = "Files on the workbench are selected for processing. You can select multiple files for batch operations using the left files sidebar."
fileReplacement = "The modified file will replace the original file in the Workbench automatically, allowing you to easily run it through more tools."
filesButton = "The Files button on the Quick Access bar allows you to upload PDFs to use the tools on."
fileSources = "You can upload new files or access recent files from here. For the tour, we'll just use a sample file."
@@ -4976,6 +4975,7 @@ pinButton = "You can use the Pin button if you'd rather your fi
results = "After the tool has finished running, the Review step will show a preview of the results in this panel, and allow you to undo the operation or download the file. "
runButton = "Once the tool has been configured, this button allows you to run the tool on all the selected PDFs."
selectCropTool = "Let's select the Crop tool to demonstrate how to use one of the tools."
+stepOf = "Step {{current}} of {{total}}"
toolInterface = "This is the Crop tool interface. As you can see, there's not much there because we haven't added any PDF files to work with yet."
workbench = "This is the Workbench - the main area where you view and edit your PDFs."
wrapUp = "You're all set! You can replay this tour anytime - just open Settings and find it here in the Tours section under Help."
@@ -4988,6 +4988,26 @@ showMeAround = "Show me around"
skipForNow = "Skip for now"
skipTheTour = "Skip the tour"
+[onboarding.checklist]
+dismiss = "Dismiss"
+title = "Set up Stirling PDF"
+
+[onboarding.checklist.downloadDesktop]
+description = "Run Stirling natively on your machine"
+title = "Download Stirling for Desktop"
+
+[onboarding.checklist.inviteTeam]
+description = "Collaborate with your team"
+title = "Invite team members"
+
+[onboarding.checklist.shareAnalytics]
+description = "Help improve Stirling"
+title = "Share anonymous usage data"
+
+[onboarding.checklist.takeTour]
+description = "See how Stirling works in a quick walkthrough"
+title = "Take the tour"
+
[onboarding.desktopInstall]
body = "Stirling works best as a desktop app. You can use it offline, access documents faster, and make edits locally on your computer."
selectOs = "Select operating system"
@@ -5005,6 +5025,11 @@ adminTitle = "Admin Overview"
userBody = "Invite teammates, assign roles, and keep your documents organized in one secure workspace. Enable login mode whenever you're ready to grow beyond solo use."
userTitle = "Plan Overview"
+[onboarding.processorIntro]
+body = "Stirling now runs Policies — automated rules that classify, secure, and process every document as it arrives. Set them up and monitor runs in the Processor."
+cta = "Check out the Processor"
+title = "Check out the Stirling Processor"
+
[onboarding.saas.freeEditor]
freeLine = "The editor is now
-
- );
- }
-
- return (
-
-