feat(studio): brand-agnostic onboarding hints + clickable checklist + theme-picker clarity
Some checks failed
Security / Security check (push) Failing after 2s
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:
parent
c1c60d5434
commit
3db875c903
10 changed files with 105 additions and 31 deletions
|
|
@ -227,15 +227,31 @@ class StudioShell extends StatefulWidget {
|
|||
const StudioShell({super.key});
|
||||
|
||||
@override
|
||||
State<StudioShell> createState() => _StudioShellState();
|
||||
State<StudioShell> createState() => StudioShellState();
|
||||
}
|
||||
|
||||
class _StudioShellState extends State<StudioShell> {
|
||||
class StudioShellState extends State<StudioShell> {
|
||||
int _selectedIndex = 0;
|
||||
bool? _connected; // null = unknown, polled on a timer
|
||||
String? _activeChannel; // local / dev / beta / production
|
||||
Timer? _healthPoll;
|
||||
|
||||
/// Switch the sidebar's selected page by its registered id
|
||||
/// (`store`, `flows`, `audit`, etc.). Used by the welcome
|
||||
/// page's onboarding checklist to make each item a real
|
||||
/// navigation hop instead of a static hint. Silently
|
||||
/// ignores unknown ids.
|
||||
void navigateTo(String pageId) {
|
||||
final idx = _pages.indexWhere((p) => p.id == pageId);
|
||||
if (idx < 0) return;
|
||||
setState(() => _selectedIndex = idx);
|
||||
}
|
||||
|
||||
/// Lookup helper — descendants call this to drive nav
|
||||
/// without holding a controller reference.
|
||||
static StudioShellState? of(BuildContext context) =>
|
||||
context.findAncestorStateOfType<StudioShellState>();
|
||||
|
||||
static const _pages = <_NavPage>[
|
||||
_NavPage(
|
||||
id: 'welcome',
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue