diff --git a/ui/src/components/BreadcrumbBar.tsx b/ui/src/components/BreadcrumbBar.tsx
index 98319075f6..a82acdd458 100644
--- a/ui/src/components/BreadcrumbBar.tsx
+++ b/ui/src/components/BreadcrumbBar.tsx
@@ -79,9 +79,16 @@ export function BreadcrumbBar() {
{menuButton}
-
- {breadcrumbs[0].label}
-
+ {breadcrumbs[0].leading ? (
+
+ {breadcrumbs[0].leading}
+ {breadcrumbs[0].label}
+
+ ) : (
+
+ {breadcrumbs[0].label}
+
+ )}
{globalToolbarSlots}
@@ -102,10 +109,24 @@ export function BreadcrumbBar() {
{i > 0 && }
{isLast || !crumb.href ? (
- {crumb.label}
+ crumb.leading ? (
+
+ {crumb.leading}
+ {crumb.label}
+
+ ) : (
+ {crumb.label}
+ )
) : (
- {crumb.label}
+ {crumb.leading ? (
+
+ {crumb.leading}
+ {crumb.label}
+
+ ) : (
+ {crumb.label}
+ )}
)}
diff --git a/ui/src/components/IssueProperties.tsx b/ui/src/components/IssueProperties.tsx
index 3d6da72fa7..c67014bd18 100644
--- a/ui/src/components/IssueProperties.tsx
+++ b/ui/src/components/IssueProperties.tsx
@@ -2303,6 +2303,7 @@ export function IssueProperties({
onUpdate({ status })}
showLabel
diff --git a/ui/src/components/IssueRow.test.tsx b/ui/src/components/IssueRow.test.tsx
index 28f0c14fa5..7b80cd145d 100644
--- a/ui/src/components/IssueRow.test.tsx
+++ b/ui/src/components/IssueRow.test.tsx
@@ -84,6 +84,25 @@ describe("IssueRow", () => {
container.remove();
});
+ it("renders the list status glyph at lg (20px)", () => {
+ const root = createRoot(container);
+
+ act(() => {
+ root.render();
+ });
+
+ const glyphs = container.querySelectorAll('svg[viewBox="0 0 24 24"]');
+ expect(glyphs.length).toBeGreaterThan(0);
+ glyphs.forEach((glyph) => {
+ expect(glyph.getAttribute("width")).toBe("20");
+ expect(glyph.getAttribute("height")).toBe("20");
+ });
+
+ act(() => {
+ root.unmount();
+ });
+ });
+
it("suppresses accent hover styling when the row is selected", () => {
const root = createRoot(container);
const issue = createIssue();
@@ -111,7 +130,10 @@ describe("IssueRow", () => {
const markReadButton = container.querySelector('button[aria-label="Mark as read"]');
const unreadDot = markReadButton?.querySelector("span");
- const statusIcon = container.querySelector('span[class*="border-muted-foreground"]');
+ // Selected rows neutralize the status glyph to muted via `!`-important
+ // utilities, which override the glyph's inline colour var. The glyph is an
+ //