Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion apps/web/src/components/ui/menu.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,14 @@ import { describe, expect, it } from "vite-plus/test";
import { Menu, MenuRadioGroup, MenuRadioItem } from "./menu";

describe("menu radio item geometry", () => {
it("keeps radio-item icons on the same text grid as menu items", () => {
it("keeps SVG and image icons on the same text grid", () => {
const html = renderToStaticMarkup(
<Menu>
<MenuRadioGroup value="merge">
<MenuRadioItem value="merge">
<span className="flex items-center gap-2">
<svg aria-hidden className="size-3.5" />
<img alt="" className="size-3.5" src="/project-icon.png" />
<span>Merge</span>
</span>
</MenuRadioItem>
Expand All @@ -19,5 +20,6 @@ describe("menu radio item geometry", () => {
);

expect(html).toContain("-mx-0.5");
expect(html).toContain("img]:-mx-0.5");
});
});
2 changes: 1 addition & 1 deletion apps/web/src/components/ui/menu.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -166,7 +166,7 @@ function MenuRadioItem({
return (
<MenuPrimitive.RadioItem
className={cn(
"[&_svg]:-mx-0.5 flex min-h-8 in-data-[side=none]:min-w-[calc(var(--anchor-width)+1.25rem)] cursor-pointer items-center rounded-sm px-2 py-1 text-base text-foreground outline-none data-checked:bg-foreground/[0.08] data-disabled:pointer-events-none data-disabled:cursor-not-allowed data-highlighted:bg-accent data-highlighted:text-accent-foreground data-disabled:opacity-64 sm:min-h-7 sm:text-sm [&_svg:not([class*='size-'])]:size-4.5 sm:[&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0",
"[&_img]:-mx-0.5 [&_svg]:-mx-0.5 flex min-h-8 in-data-[side=none]:min-w-[calc(var(--anchor-width)+1.25rem)] cursor-pointer items-center rounded-sm px-2 py-1 text-base text-foreground outline-none data-checked:bg-foreground/[0.08] data-disabled:pointer-events-none data-disabled:cursor-not-allowed data-highlighted:bg-accent data-highlighted:text-accent-foreground data-disabled:opacity-64 sm:min-h-7 sm:text-sm [&_svg:not([class*='size-'])]:size-4.5 sm:[&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0",
className,
)}
data-slot="menu-radio-item"
Expand Down
Loading