refactor: extract shared mixins and helpers, drop dead abstractions

Introduces shared seams for paginated views, D-pad reorder, media control
routing, async singletons and the device method channel, then points the
open-coded copies at them.

Also removes unused models and duplicated provider/server plumbing, folds
the twice-implemented artifact store in the server, and factors the
repeated Flutter toolchain prologue in CI into a composite action.
This commit is contained in:
edde746
2026-07-26 06:09:48 +02:00
parent 61344f7862
commit 352b88109b
217 changed files with 6813 additions and 8773 deletions
+11
View File
@@ -3,6 +3,17 @@ import 'package:flutter/material.dart';
MonoTokens tokens(BuildContext context) => Theme.of(context).extension<MonoTokens>()!;
/// M3E connected-group geometry for item [index] of a [count]-item group:
/// large radii on the group's outer corners, small radii between adjacent
/// items. Pair with `MonoTokens.groupGap` spacing for the hairline gaps.
BorderRadius groupItemRadii(BuildContext context, int index, int count) {
final t = tokens(context);
return BorderRadius.vertical(
top: Radius.circular(index == 0 ? t.radiusLg : t.radiusXs),
bottom: Radius.circular(index == count - 1 ? t.radiusLg : t.radiusXs),
);
}
@immutable
class MonoTokens extends ThemeExtension<MonoTokens> {
/// Effectively-stadium radius for pill shapes; the renderer proportionally