Issue #3610909: Replace bare cloud/local glyphs with inline SVG icons
What this does
- Replaces the bare Unicode glyphs (
☁️ U+2601, ⬡ U+2B21) used for the cloud/local provider-type icons with inline SVG icons drawn via a CSS mask (background-color: currentColor), so they no longer depend on font coverage. Affects the dashboard KPI card and the by-role dashboard (KPI card, per-role rows, totals row). - Icons are
aria-hidden="true"; the text label stays the accessible name. - The
cloud/localcount labels are now wrapped in|t()with an@countplaceholder instead of being concatenated as bare text, so they can be translated.
How to test
- Log some AI usage (cloud and local providers) and visit
/admin/reports/ai-meteringand/admin/reports/ai-metering/by-role. - The cloud/local counts show a small icon instead of a missing-glyph box, regardless of the system font.
DashboardTest::testDashboardProviderTypeIconsAreNotRawGlyphsandByRoleDashboardTest::testByRoleProviderTypeIconsAreNotRawGlyphsassert the raw glyphs never reach the response and the icon markup is present.
AI assistance
Yes.
Edited by Jérôme Tchania