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

@ -21,6 +21,14 @@ const FieldDescription = Text.withProps({
c: "dimmed",
});
// Indented column for a nested object's sub-fields.
const IndentedStack = Stack.withProps({ gap: "sm", pl: "md" });
const SchemaJsonInput = JsonInput.withProps({
formatOnBlur: true,
autosize: true,
});
function serializeJson(value: unknown): string {
return JSON.stringify(value, null, 2);
}
@ -227,7 +235,7 @@ export function SchemaForm({
<Stack key={fieldName} gap="sm">
<FieldLabel>{label}</FieldLabel>
{description && <FieldDescription>{description}</FieldDescription>}
<Stack gap="sm" pl="md">
<IndentedStack>
<SchemaForm
schema={fieldSchema}
values={(rawValue as Record<string, unknown>) ?? {}}
@ -236,21 +244,19 @@ export function SchemaForm({
}
disabled={disabled}
/>
</Stack>
</IndentedStack>
</Stack>
);
}
// fallback: JsonInput for complex schemas
return (
<JsonInput
<SchemaJsonInput
key={fieldName}
label={label}
description={description}
withAsterisk={isRequired}
disabled={disabled}
formatOnBlur
autosize
value={rawValue !== undefined ? serializeJson(rawValue) : ""}
onChange={(val) => {
try {