feat(studio): brand-agnostic onboarding hints + clickable checklist + theme-picker clarity
Some checks failed
Security / Security check (push) Failing after 2s

Three changes:

1. Onboarding checklist hints no longer mention DeepWiki,
   Semgrep, text.extract, or extract-summarize.yaml by
   name. Brand- and file-specific copy moved to neutral
   feature pointers ('add an MCP source', 'install a
   module'). Brand names belong on the welcome page only
   if they're load-bearing for understanding, which they
   aren't.

2. Checklist rows are now clickable. Tapping a row navigates
   to the page where the operator can complete it — MCP +
   AI open Settings, Module opens Store, Flow opens Flows.
   StudioShellState gains a public navigateTo(pageId) helper
   so descendants can drive sidebar selection without
   plumbing a controller through props.

3. Theme picker hint copy rewritten. Old hint suggested
   'Custom' was a single-colour tweak; new copy spells out
   that Material 3 derives a full palette (primary,
   secondary, tertiary, surface, …) from one seed colour.
   The Custom tile shows a small tune icon so its
   open-the-picker semantics is visually distinct from the
   apply-immediately plugin tiles.

Editor bumped to 0.12.0 (panel toggle + LabVIEW-style port
colours).

Signed-off-by: flemming-it <stefan.a.flemming@googlemail.com>
This commit is contained in:
flemming-it 2026-06-02 11:13:38 +02:00
parent c1c60d5434
commit 3db875c903
10 changed files with 105 additions and 31 deletions

View file

@ -41,11 +41,11 @@
"welcomeChecklistAi": "System-AI konfigurieren",
"welcomeChecklistAiHint": "Einstellungen → System-AI. Wird für die KI-Suche und Fehlererklärungen gebraucht.",
"welcomeChecklistMcp": "Öffentliche Capability-Quelle hinzufügen",
"welcomeChecklistMcpHint": "Store → Today-Hero, oder Einstellungen → MCP-Clients. DeepWiki und Semgrep sind je ein Klick.",
"welcomeChecklistMcpHint": "Im Store eine MCP-Quelle hinzufügen oder unter Einstellungen → MCP-Clients konfigurieren.",
"welcomeChecklistModule": "Ein Text-Modul installieren",
"welcomeChecklistModuleHint": "Store → nach „text\" suchen → Installieren. text.extract für PDFs und DOCX ist ein guter Start.",
"welcomeChecklistModuleHint": "Im Store ein Modul aus der Kategorie deiner Wahl installieren. Module sind sandboxed F∆I-Komponenten.",
"welcomeChecklistFlow": "Einen gespeicherten Flow starten",
"welcomeChecklistFlowHint": "Flows → einen wählen → Starten. Der mitgelieferte extract-summarize.yaml ist ein guter erster Lauf.",
"welcomeChecklistFlowHint": "Flows → einen wählen → Starten. Studio bringt einige Demo-Flows mit; auch ein eigener tut's.",
"welcomeChecklistAllDone": "Alle vier Schritte erledigt.",
"welcomeChecklistDismiss": "Checkliste ausblenden",
"welcomeChecklistRefresh": "Aktualisieren",
@ -106,7 +106,7 @@
"mcpServerEnLanguageBadge": "Server-Text in Englisch — Studio zeigt ihn wie geliefert.",
"themePluginHeader": "Theme-Plugin",
"themePluginNone": "Standard (kein Plugin)",
"themePluginHint": "Installiertes studio.theme.*-Plugin auswählen, um das ganze Studio umzustylen. Erst eines aus dem Store installieren.",
"themePluginHint": "Built-in- und Plugin-Kacheln bringen handkuratierte Paletten mit. Die Kachel „Eigene Farbe\" leitet aus einer gewählten Seedfarbe eine vollständige Material-3-Palette ab (primary, secondary, tertiary, surface, …) — das ist ein vollwertiges Theme, kein Einzelfarb-Tweak.",
"themePluginEmpty": "Kein Theme-Plugin installiert. Im Store eines aus der Kategorie studio-plugin auswählen.",
"themePluginCustom": "Eigene Farbe",
"themePluginCustomDialogTitle": "Eigenes Theme — Seedfarbe wählen",

View file

@ -44,11 +44,11 @@
"welcomeChecklistAi": "Configure System AI",
"welcomeChecklistAiHint": "Settings → System AI. Required for the AI search and inline failure explanations.",
"welcomeChecklistMcp": "Add a public capability source",
"welcomeChecklistMcpHint": "Store → Today hero, or Settings → MCP Clients. DeepWiki and Semgrep are one click each.",
"welcomeChecklistMcpHint": "Add an MCP source from the Store, or configure one under Settings → MCP Clients.",
"welcomeChecklistModule": "Install a text module",
"welcomeChecklistModuleHint": "Store → search \"text\" → Install. Try text.extract for PDFs and DOCX.",
"welcomeChecklistModuleHint": "Install a module from the Store — pick whichever category fits your work. Modules are sandboxed F∆I components.",
"welcomeChecklistFlow": "Run a saved flow",
"welcomeChecklistFlowHint": "Flows → pick one → Run. The bundled extract-summarize.yaml is a good first run.",
"welcomeChecklistFlowHint": "Flows → pick one → Run. Studio ships a few demo flows; one of your own works too.",
"welcomeChecklistAllDone": "All four steps complete.",
"welcomeChecklistDismiss": "Hide checklist",
"welcomeChecklistRefresh": "Refresh",
@ -109,7 +109,7 @@
"mcpServerEnLanguageBadge": "Server text in English — Studio shows it as supplied.",
"themePluginHeader": "Theme plugin",
"themePluginNone": "Built-in (no plugin)",
"themePluginHint": "Pick an installed studio.theme.* plugin to re-skin the whole app. Install one from the Store first.",
"themePluginHint": "Built-in and plugin tiles ship hand-curated palettes. The Custom tile derives a full Material 3 palette (primary, secondary, tertiary, surface, …) from one seed colour you pick — it's a complete theme, not a single-colour tweak.",
"themePluginEmpty": "No theme plugins installed. Open the Store and pick one in the studio-plugin category.",
"themePluginCustom": "Custom colour",
"themePluginCustomDialogTitle": "Custom theme — pick a seed colour",

View file

@ -305,7 +305,7 @@ abstract class AppLocalizations {
/// No description provided for @welcomeChecklistMcpHint.
///
/// In en, this message translates to:
/// **'Store → Today hero, or Settings → MCP Clients. DeepWiki and Semgrep are one click each.'**
/// **'Add an MCP source from the Store, or configure one under Settings → MCP Clients.'**
String get welcomeChecklistMcpHint;
/// No description provided for @welcomeChecklistModule.
@ -317,7 +317,7 @@ abstract class AppLocalizations {
/// No description provided for @welcomeChecklistModuleHint.
///
/// In en, this message translates to:
/// **'Store → search \"text\" → Install. Try text.extract for PDFs and DOCX.'**
/// **'Install a module from the Store — pick whichever category fits your work. Modules are sandboxed F∆I components.'**
String get welcomeChecklistModuleHint;
/// No description provided for @welcomeChecklistFlow.
@ -329,7 +329,7 @@ abstract class AppLocalizations {
/// No description provided for @welcomeChecklistFlowHint.
///
/// In en, this message translates to:
/// **'Flows → pick one → Run. The bundled extract-summarize.yaml is a good first run.'**
/// **'Flows → pick one → Run. Studio ships a few demo flows; one of your own works too.'**
String get welcomeChecklistFlowHint;
/// No description provided for @welcomeChecklistAllDone.
@ -653,7 +653,7 @@ abstract class AppLocalizations {
/// No description provided for @themePluginHint.
///
/// In en, this message translates to:
/// **'Pick an installed studio.theme.* plugin to re-skin the whole app. Install one from the Store first.'**
/// **'Built-in and plugin tiles ship hand-curated palettes. The Custom tile derives a full Material 3 palette (primary, secondary, tertiary, surface, …) from one seed colour you pick — it\'s a complete theme, not a single-colour tweak.'**
String get themePluginHint;
/// No description provided for @themePluginEmpty.

View file

@ -128,21 +128,21 @@ class AppLocalizationsDe extends AppLocalizations {
@override
String get welcomeChecklistMcpHint =>
'Store → Today-Hero, oder Einstellungen → MCP-Clients. DeepWiki und Semgrep sind je ein Klick.';
'Im Store eine MCP-Quelle hinzufügen oder unter Einstellungen → MCP-Clients konfigurieren.';
@override
String get welcomeChecklistModule => 'Ein Text-Modul installieren';
@override
String get welcomeChecklistModuleHint =>
'Store → nach „text\" suchen → Installieren. text.extract für PDFs und DOCX ist ein guter Start.';
'Im Store ein Modul aus der Kategorie deiner Wahl installieren. Module sind sandboxed F∆I-Komponenten.';
@override
String get welcomeChecklistFlow => 'Einen gespeicherten Flow starten';
@override
String get welcomeChecklistFlowHint =>
'Flows → einen wählen → Starten. Der mitgelieferte extract-summarize.yaml ist ein guter erster Lauf.';
'Flows → einen wählen → Starten. Studio bringt einige Demo-Flows mit; auch ein eigener tut\'s.';
@override
String get welcomeChecklistAllDone => 'Alle vier Schritte erledigt.';
@ -320,7 +320,7 @@ class AppLocalizationsDe extends AppLocalizations {
@override
String get themePluginHint =>
'Installiertes studio.theme.*-Plugin auswählen, um das ganze Studio umzustylen. Erst eines aus dem Store installieren.';
'Built-in- und Plugin-Kacheln bringen handkuratierte Paletten mit. Die Kachel „Eigene Farbe\" leitet aus einer gewählten Seedfarbe eine vollständige Material-3-Palette ab (primary, secondary, tertiary, surface, …) — das ist ein vollwertiges Theme, kein Einzelfarb-Tweak.';
@override
String get themePluginEmpty =>

View file

@ -128,21 +128,21 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String get welcomeChecklistMcpHint =>
'Store → Today hero, or Settings → MCP Clients. DeepWiki and Semgrep are one click each.';
'Add an MCP source from the Store, or configure one under Settings → MCP Clients.';
@override
String get welcomeChecklistModule => 'Install a text module';
@override
String get welcomeChecklistModuleHint =>
'Store → search \"text\" → Install. Try text.extract for PDFs and DOCX.';
'Install a module from the Store — pick whichever category fits your work. Modules are sandboxed F∆I components.';
@override
String get welcomeChecklistFlow => 'Run a saved flow';
@override
String get welcomeChecklistFlowHint =>
'Flows → pick one → Run. The bundled extract-summarize.yaml is a good first run.';
'Flows → pick one → Run. Studio ships a few demo flows; one of your own works too.';
@override
String get welcomeChecklistAllDone => 'All four steps complete.';
@ -320,7 +320,7 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String get themePluginHint =>
'Pick an installed studio.theme.* plugin to re-skin the whole app. Install one from the Store first.';
'Built-in and plugin tiles ship hand-curated palettes. The Custom tile derives a full Material 3 palette (primary, secondary, tertiary, surface, …) from one seed colour you pick — it\'s a complete theme, not a single-colour tweak.';
@override
String get themePluginEmpty =>