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_tagtheme. - C — Tokens column: new
ai_context.token_estimatorservice (single source of truth,AiContextRendererdelegates 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.