feat(studio): Welcome page — Phase A scaffolding (v0.37.0)
First slice of the new sidebar destination outlined in
docs/landing-page-design.md. Static content only — embedded
docs (Phase B) and the live getting-started checklist
(Phase C) follow.
Phase A:
- New `WelcomePage` at `lib/pages/welcome.dart`, registered
as sidebar slot 0 above Doctor. Default selectedIndex stays
0, so a fresh launch lands on Welcome.
- Hero card: gradient backdrop matching the Today-Hero in the
store, F∆I Platform headline, subtitle taken from CLAUDE.md
("deterministic workflow engine for AI-assisted document
processing in regulated environments").
- Three-pillar row "Hub / Module / Flow" — operator-readable
prose, not architecture-doc dense. Stacks to a column under
640 dp window width so card text never gets cropped.
- Trust-posture deck — "Sandbox by default", "Tamper-evident
audit log", "Air-gap ready". Same content that used to
rotate as carousel slides in the store; reading them as a
single deck with full prose works better than rotating
through fragments.
- AppBar follows the same `titleSpacing: FaiSpace.xl`
alignment as the Store so the title sits flush with the
body padding.
- 13 new ARB keys for the page content (EN + DE).
Smoke test now expects "Welcome" in the navigation rail; the
existing `Doctor / Store / Flows / Audit / Approvals`
expectations stay unchanged.
Signed-off-by: flemming-it <stefan.a.flemming@googlemail.com>
This commit is contained in:
parent
711436b71d
commit
3a7d0e74ad
9 changed files with 617 additions and 2 deletions
|
|
@ -17,6 +17,7 @@ import 'pages/audit.dart';
|
|||
import 'pages/doctor.dart';
|
||||
import 'pages/flows.dart';
|
||||
import 'pages/store.dart';
|
||||
import 'pages/welcome.dart';
|
||||
import 'theme/theme.dart';
|
||||
import 'theme/tokens.dart';
|
||||
import 'widgets/fai_search_palette.dart';
|
||||
|
|
@ -25,7 +26,7 @@ import 'widgets/widgets.dart';
|
|||
/// Studio's own build version. Bump on every UI commit so the
|
||||
/// running app self-identifies — visible in the sidebar header
|
||||
/// and quick-glance proof that you're seeing the current build.
|
||||
const String kStudioVersion = '0.36.0';
|
||||
const String kStudioVersion = '0.37.0';
|
||||
|
||||
Future<void> main() async {
|
||||
WidgetsFlutterBinding.ensureInitialized();
|
||||
|
|
@ -139,6 +140,12 @@ class _StudioShellState extends State<StudioShell> {
|
|||
Timer? _healthPoll;
|
||||
|
||||
static const _pages = <_NavPage>[
|
||||
_NavPage(
|
||||
id: 'welcome',
|
||||
icon: Icons.waving_hand_outlined,
|
||||
selectedIcon: Icons.waving_hand,
|
||||
page: WelcomePage(),
|
||||
),
|
||||
_NavPage(
|
||||
id: 'doctor',
|
||||
icon: Icons.health_and_safety_outlined,
|
||||
|
|
@ -752,6 +759,8 @@ class _NavPage {
|
|||
final l = AppLocalizations.of(context);
|
||||
if (l == null) return id;
|
||||
switch (id) {
|
||||
case 'welcome':
|
||||
return l.navWelcome;
|
||||
case 'doctor':
|
||||
return l.navDoctor;
|
||||
case 'modules':
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue