Miler rider app: surface system, visible design language, backend lifecycle
Design system - MilerSurface ladder (canvas → working → raised → floating) with MilerPanel as layer 1; canvas moved to #DEE3EA so white separates at 1.290:1. - Visible vocabulary applied across Home, Deliveries, Activity, Account and the sheets: hero heads (tabular numeral + small caption, clamped at 1.3x), canvas wells for anything that opens, small filled tags for shelf labels, demoted placeholders. Recorded in DESIGN_SYSTEM.md §6. - One icon family: 222 Material glyphs migrated to Lucide; none left outside lib/xpress. - Colour semantics corrected: amber only for what is genuinely owed, brand red reserved for the live stop, disabled primaries go neutral rather than pale. Data and lifecycle - lib/data/lifecycle.dart reads mutations for what they prove; route_order.dart makes admin sequence the single ordering authority; service_day.dart, and stop_area.dart rewritten against live Coimbatore addresses (digit-token stripping, city stoplist, street suffixes, stammer collapse). - countLabel states the load once, in bags. Testing - 1440 tests passing; golden shot harnesses for Home, Deliveries, Activity, sheets and verify, with test/failures/ now gitignored (diff debris). - New pins: home_gutter_test, stop_area_test, plus updated structural bounds. Note: this commit also carries pre-existing working-tree deletions that were present before this work (API_SPEC.md, README.md, demo test fixtures). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -257,7 +257,22 @@ Future<T?> showAppDialog<T>({
|
||||
barrierColor: barrierColor,
|
||||
useRootNavigator: useRootNavigator,
|
||||
transitionDuration: const Duration(milliseconds: 260),
|
||||
pageBuilder: (context, _, _) => Builder(builder: builder),
|
||||
// ── Every dialog gets a Material, whether its caller remembered one ──
|
||||
//
|
||||
// `showGeneralDialog` hands the builder a bare route with no Material in
|
||||
// scope, unlike `showDialog`, which wraps its child in one. A caller that
|
||||
// returns a `Container` with a `Text` in it — which several do — therefore
|
||||
// painted Flutter's **missing-Material debug marker**: the yellow double
|
||||
// underline under every word. It looked like a styling bug in the dialog
|
||||
// and was actually the framework saying "there is no Material here".
|
||||
//
|
||||
// `MaterialType.transparency` adds the ancestor and paints nothing, so a
|
||||
// dialog that draws its own surface is unchanged and one that forgot stops
|
||||
// being underlined.
|
||||
pageBuilder: (context, _, _) => Material(
|
||||
type: MaterialType.transparency,
|
||||
child: Builder(builder: builder),
|
||||
),
|
||||
transitionBuilder: (context, animation, _, child) {
|
||||
// `drive` rather than a `CurvedAnimation`: this builder runs every frame
|
||||
// of the transition, and a CurvedAnimation built here would be a new
|
||||
|
||||
Reference in New Issue
Block a user