refactor(design): one drawn check for every checkable row that cannot be an input (E28 S3e3b)

ui/MenuCheck: a box filled with the accent for a set (a minus for a group
only partly in), a bare tick for one choice, in the row's leading slot.
Replaces seven hand-drawn marks: three box sizes, a tinted box, a cross
for "on" in the table filter, a trailing tick in the language menu.
This commit is contained in:
2026-09-26 17:34:46 +02:00
parent 9c91eb5d22
commit 2b3094ffc5
10 changed files with 56 additions and 55 deletions
+3 -8
View File
@@ -1,6 +1,7 @@
import { useRef, useState, type ReactNode } from "react";
import { useTranslation } from "react-i18next";
import { ArrowDown, ArrowUp, ListFilter, X } from "lucide-react";
import { ArrowDown, ArrowUp, ListFilter } from "lucide-react";
import { MenuCheck } from "./MenuCheck";
import { PopoverItem, PopoverSurface } from "./AnchoredPopover";
import { useAnchoredPopover } from "./anchoredPopoverHooks";
import { useScrollFade } from "../../lib/useScrollFade";
@@ -158,13 +159,7 @@ function FilterFunnel<T>({
on ? "text-fg" : "text-muted"
}`}
>
<span
className={`w-3.5 h-3.5 rounded border flex items-center justify-center ${
on ? "bg-accent border-accent text-accent-fg" : "border-border"
}`}
>
{on && <X className="w-2.5 h-2.5" />}
</span>
<MenuCheck kind="many" on={on} />
{o.label}
</PopoverItem>
);