refactor(web): sweep AGENTS.md TypeScript + Mantine rule violations (#1771)

Codebase-wide sweep bringing the web client into strict compliance with the AGENTS.md TypeScript and Mantine/React conventions: ~170 inline 2+-static-prop elements extracted to named .withProps() constants across ~77 files, the AGENTS.md rule wording tightened to match (static-prop boundary + Accordion/Transition/data-*/Box exemptions), a real ScreenStage Box->Flex layout regression fixed (direction: column) with a Storybook regression guard, and an App.tsx double-cast tightened. Closes #1762.
This commit is contained in:
Cliff Hall 2026-07-25 11:38:49 -04:00 • committed by GitHub
commit da37692485
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -7,6 +7,19 @@ export interface ListToggleProps {
variant?: "default" | "subtle";
}
const SubtleActionIcon = ActionIcon.withProps({
variant: "subtle",
color: "gray",
size: "md",
});
// `size={36}` matches the header's theme / client-settings ActionIcons so the
// toolbar's toggle reads as the same size icon button.
const ToolbarActionIcon = ActionIcon.withProps({
variant: "subtle",
size: 36,
});
export function ListToggle({
compact,
onToggle,
@ -18,31 +31,18 @@ export function ListToggle({
if (variant === "subtle") {
return (
<Tooltip label={label}>
<ActionIcon
variant="subtle"
color="gray"
size="md"
aria-label={label}
onClick={onToggle}
>
<SubtleActionIcon aria-label={label} onClick={onToggle}>
<Icon size={16} />
</ActionIcon>
</SubtleActionIcon>
</Tooltip>
);
}
// `size={36}` matches the header's theme / client-settings ActionIcons so the
// toolbar's toggle reads as the same size icon button.
return (
<Tooltip label={label}>
<ActionIcon
variant="subtle"
size={36}
aria-label={label}
onClick={onToggle}
>
<ToolbarActionIcon aria-label={label} onClick={onToggle}>
<Icon size={20} />
</ActionIcon>
</ToolbarActionIcon>
</Tooltip>
);
}