feat(fleet): redesign Fleet Action cards to the System Sheet recipe (#1137)

Lift <FleetActionCard> primitive from audit §20 / DESIGN §9.12. Migrate
the three v1 cards (stop-by-label, bulk-label-assign, prune-fleet-wide)
to consume it: cyan rail on every card, action class as a chip, blast
radius as a live readout in the toolbar, preview section replaces the
warning banner, footer carries reversibility plus freshness. Drop the
per-card tone rail, the icon prop, and cards/tone.ts.

Add /fleet/labels/match-preview and /fleet/prune/estimate for the live
blast readouts (chrome falls back to "preview unavailable" if either
404s). Add dryRun: true to the existing fleet-stop and fleet-prune
endpoints so the Dry run button rehearses the full code path (locks,
per-node fan-out, remote propagation) without firing the destructive
leaf call. Result flows into the existing ResultsList.

Extend <SheetSection> with optional meta. Add --action-transformative
semantic token.
This commit is contained in:
Anso
2026-05-21 11:45:52 -04:00
committed by GitHub
parent d0e140444a
commit 6f301e005a
13 changed files with 1471 additions and 423 deletions
+10
View File
@@ -122,6 +122,12 @@
--label-custom: var(--label-amber);
--label-custom-bg: var(--label-amber-bg);
/* Fleet Action card action-class chip / blast-dot colors.
Closed set per audit §18.3: destructive (rose) / transformative (purple) / maintenance (amber).
Two of the three reuse existing semantic tokens; transformative gets its own
alias so component code does not reach for --label-purple directly. */
--action-transformative: var(--label-purple);
/* Chart grid & axis */
--chart-grid: oklch(0 0 0 / 0.06);
--chart-tick: oklch(0 0 0 / 0.45);
@@ -299,6 +305,9 @@
--label-custom: var(--label-amber);
--label-custom-bg: var(--label-amber-bg);
/* Fleet Action card action-class chip / blast-dot colors (dark theme). */
--action-transformative: var(--label-purple);
/* Chart grid & axis */
--chart-grid: oklch(1 0 0 / 0.05);
--chart-tick: oklch(1 0 0 / 0.40);
@@ -407,6 +416,7 @@
--color-update-foreground: var(--update-foreground);
--color-update-muted: var(--update-muted);
--color-destructive-muted: var(--destructive-muted);
--color-action-transformative: var(--action-transformative);
--font-sans: var(--font-sans);
--font-mono: var(--font-mono);