import 'package:flutter/material.dart'; import '../data/repository.dart'; import '../theme/lawheatmap_theme.dart'; import '../theme/lawheatmap_tokens.dart'; import '../widgets/delta_mark.dart'; import 'shell_page.dart'; /// First-run landing: brand mark, one-line claim, "enter app" CTA. /// Mock-mode bypasses Hub connect; the live wire lands in week 1. class LandingPage extends StatelessWidget { const LandingPage({super.key, required this.repository}); final EvaluationRepository repository; @override Widget build(BuildContext context) { final t = Theme.of(context).textTheme; return Scaffold( body: SafeArea( child: Center( child: ConstrainedBox( constraints: const BoxConstraints(maxWidth: 720), child: Padding( padding: const EdgeInsets.symmetric( horizontal: LawHeatmapSpace.xxl, vertical: LawHeatmapSpace.xxxl, ), child: Column( mainAxisAlignment: MainAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.start, children: [ const DeltaMark(size: 96), const SizedBox(height: LawHeatmapSpace.xxl), Text('F∆I Law-Heatmap', style: t.displaySmall), const SizedBox(height: LawHeatmapSpace.sm), Text( 'Pflicht-basierte Wirkungsanalyse von Rechtsnormen — ' 'auf Ch∆In, mit Quellen-Audit by construction.', style: t.bodyLarge ?.copyWith(color: LawHeatmapColors.mute), ), const SizedBox(height: LawHeatmapSpace.xxl), Wrap( crossAxisAlignment: WrapCrossAlignment.center, spacing: LawHeatmapSpace.md, runSpacing: LawHeatmapSpace.sm, children: [ FilledButton.icon( onPressed: () { Navigator.of(context).pushReplacement( MaterialPageRoute( builder: (_) => ShellPage(repository: repository), ), ); }, icon: const Icon(Icons.east), label: const Text('App öffnen (Demo-Modus)'), ), Text( 'Demo: 5 Pilot-Normen, ohne Hub-Verbindung', style: t.labelSmall?.copyWith( color: LawHeatmapColors.mute, ), ), ], ), const SizedBox(height: LawHeatmapSpace.xl), Text( 'v0.1.0 · Phase 0 · Mock-Modus · ' 'Live-Hub-Anbindung folgt in Woche 1', style: LawHeatmapTheme.mono( t.labelSmall ?? const TextStyle(), ).copyWith(color: LawHeatmapColors.mute), ), ], ), ), ), ), ), ); } }