Coach is the centre tab: questions about routines, slips, streak, today, active time and debt, answered on the device from the user's own data, with a target bar chart and buttons that start routines or open the right screen. The palette moves to neutral grey, near-black and one orange accent, and Home's header becomes a light panel. The nav is now overlapping frosted circles whose active disc pops forward, and tabs fade and rise in on switch. Goals leaves the nav for Coach and stays one tap away in Home's category row. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KhQh614DMeYoQEH9SoMRUw
32 lines
732 B
Dart
32 lines
732 B
Dart
/// A small bar chart inside a coach answer: one bar per day against a dashed
|
|
/// target outline.
|
|
class CoachChart {
|
|
/// "Target · 3 a day"
|
|
String title;
|
|
|
|
List<String> labels;
|
|
|
|
List<double> values;
|
|
|
|
/// Per-bar target; the dashed outline is drawn to this height.
|
|
List<double> targets;
|
|
|
|
/// A bar to call out with [callout] above it, or -1.
|
|
int highlight;
|
|
|
|
String callout;
|
|
|
|
/// Bars after this index have not happened yet (today and beyond).
|
|
int lastComplete;
|
|
|
|
CoachChart({
|
|
required this.title,
|
|
required this.labels,
|
|
required this.values,
|
|
required this.targets,
|
|
this.highlight = -1,
|
|
this.callout = "",
|
|
int? lastComplete,
|
|
}) : lastComplete = lastComplete ?? labels.length - 1;
|
|
}
|