# FocusFlow Flutter Flutter desktop app target for the FocusFlow UI work. ## Current Scope UI Plan 1 implements a compact Today timeline mockup and selected-task modal. The app target already existed before UI Plan 1 Block 1, so this package keeps the existing Flutter desktop scaffolding and local scheduler dependency. The app launches into the compact Today screen. All visible controls are intentionally no-op except selecting a task card and closing the modal. ## Seed Data Static demo data lives in `lib/app/demo_scheduler_composition.dart`. It creates domain `ProjectProfile`, `OwnerSettings`, and `Task` records in an in-memory application store, then reads `TodayState` through `GetTodayStateQuery`. Widgets consume `TodayScreenData` from `lib/models/today_screen_models.dart`. Scheduler core remains the source of truth for task state and Today ordering. ## Package Boundary Allowed app imports include public scheduler APIs such as: ```dart import 'package:scheduler_core/scheduler_core.dart'; ``` The app must not import scheduler `src/` files, SQLite/Drift adapters, desktop notification implementations, backup/export packages, or direct OS APIs for this UI slice. `test/forbidden_imports_test.dart` enforces that boundary. ## Intentionally No-op - Sidebar navigation. - Date navigation and calendar buttons. - Compact/Normal toggle. - Settings button. - Show upcoming. - Timeline card action icons. - Modal Done, Push, Move to Backlog, and Break up buttons. ## Commands ```sh flutter pub get flutter analyze flutter test ``` Run these from `apps/focus_flow_flutter/`. ## Next Plans - Wire functional Done, Push, Move to Backlog, and Break up actions. - Add Backlog and quick-capture UI. - Add persistent SQLite-backed runtime composition. - Add real navigation/settings. - Add Shield/Recovery only in a later scope.