Give builder fields persistent labels, treat description as optional, and validate save-progress email with a real form.

Name stays required; description is a labelled optional textarea. Email uses native validity and form submit. Drop the dead workshop link and fix a few copy errors.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
adilallo
2026-09-10 11:37:41 -06:00
co-authored by Cursor
parent 130663f930
commit 42d83c8b62
33 changed files with 437 additions and 125 deletions
+10
View File
@@ -43,6 +43,16 @@ describe("TextArea appearance", () => {
expect(textarea).toHaveClass("border-0");
});
it("keeps a programmatic label when the visible header is off", () => {
const { container } = renderWithProviders(
<TextArea label="Community description" formHeader={false} value="" />,
);
expect(
screen.getByRole("textbox", { name: "Community description" }),
).toBeInTheDocument();
expect(container.querySelector("label")).toHaveClass("sr-only");
});
it("uses tertiary text in the embedded default state and primary on focus", () => {
renderWithProviders(
<TextArea label="Notes" value="Some text" appearance="embedded" />,