Issue #3586219: Update context listing page per new design

Implements the Context Control Center listing redesign from the new design comp.

Delivered as reviewable chunks (one commit each):

  • A — Restructure columns: Type | Label | Tokens | Use cases | Scope | Status | Operations. Type renders "Text" (single content source today); Target → minimized Scope; Updated column removed.
  • B — Status column: content-moderation-aware tag (Draft / Published / Unpublished / Archived), boolean fallback. New ai_context_status_tag theme.
  • C — Tokens column: new ai_context.token_estimator service (single source of truth, AiContextRenderer delegates to it). Tier badges low/mid/high, warning icon on high only, [low, high] ranges for parents with subcontext.
  • D — Toolbar: Use case + Scope filter selects combined with the search box (hierarchy-aware client-side JS).
  • F — Subcontext-type icons re-rendered as inline SVG with an accessible color (WCAG non-text contrast, point 2).

Maps to work item points 1–10. Point 11 (sortable columns / scope text search, overlaps #3574924) is split to a follow-up — see comment below.

Deferred (not data-available without other issues): File/Connector content-source type icons (#3586170 / #3586161 (closed)).

phpcs (Drupal,DrupalPractice) and phpstan clean on all changed files. AiContextItemListTest extended (new columns, status, tokens, toolbar) and passing.

🤖 Generated with Claude Code

Merge request reports

Loading