diff --git a/docs/design-system-adoption.md b/docs/design-system-adoption.md index 144b778925..b97c52e377 100644 --- a/docs/design-system-adoption.md +++ b/docs/design-system-adoption.md @@ -11,7 +11,7 @@ Use this map to find the shared owner before changing a product surface. | Area | Shared owner | App uses | | --- | --- | --- | | Colors and type | Surface, text, border, affordance, and complete type roles | Host aliases forward to shared roles. Feature CSS uses role names; inline links pair text and hover roles. | -| Actions | Button and IconButton | Retry, refresh, delete, recovery, composer send, and picker triggers. Standard sizes are 32/40/52px minimums. Labels stay on one line; surrounding layouts reflow whole controls or scroll. | +| Actions | Button and IconButton | Retry, refresh, delete, recovery, composer send, and picker triggers. Standard sizes are 32/40/52px; IconButton defaults to small and labelled Button defaults to medium. Text-button heights are minimums. Labels stay on one line; surrounding layouts reflow whole controls or scroll. | | Forms and choices | Field, Input, Textarea, RadioGroup, Checkbox | Profile, community setup, appearance, plugin import, and workflow editing. | | Search | SearchField | Channels, pages, members, and GIFs retain their query, refs, and keyboard handlers. | | Navigation | NavigationItem | Settings, channel rows, shell destinations, Home, and community choices. Route destinations use button semantics; the wide shell topbar is the documented chrome-tab exception. | diff --git a/src/bundled/channels/ChannelMembersDialog.test.tsx b/src/bundled/channels/ChannelMembersDialog.test.tsx index e3c072e0be..ce3623460a 100644 --- a/src/bundled/channels/ChannelMembersDialog.test.tsx +++ b/src/bundled/channels/ChannelMembersDialog.test.tsx @@ -1195,9 +1195,10 @@ it("pages combined local and relay invitations without losing matches", async ({ }) => { return ownedTask(signal, async (step) => { const { t, idle, more, rows, pages } = await pagedInvitations(step, 65); - expect(rows()).toHaveLength(30); + const firstPage = rows(); + expect(firstPage).toHaveLength(30); expect( - rows().every((row) => + firstPage.every((row) => row.getAttribute("aria-label")?.startsWith("Add Helper remote"), ), ).toBe(true); @@ -1209,7 +1210,9 @@ it("pages combined local and relay invitations without losing matches", async ({ } await more(); await idle(); - screen.getByRole("button", { name: /^Add Helper final/ }); + expect( + screen.getByRole("button", { name: /^Add Helper final/ }), + ).toBeVisible(); expect(rows()).toHaveLength(96); expect(pages()).toEqual([1, 2]); expect( @@ -1228,7 +1231,9 @@ it("resets combined invitation paging on refresh or query change", async ({ await pagedInvitations(step, 31); for (let i = 0; i < 3; i++) await more(); await idle(); - screen.getByRole("button", { name: /^Add Helper final/ }); + expect( + screen.getByRole("button", { name: /^Add Helper final/ }), + ).toBeVisible(); expect(rows()).toHaveLength(62); expect(pages()).toEqual([1, 2]); await click(refresh); diff --git a/src/features/communities/CommunityRail.tsx b/src/features/communities/CommunityRail.tsx index c8b4c1331a..ed8073b117 100644 --- a/src/features/communities/CommunityRail.tsx +++ b/src/features/communities/CommunityRail.tsx @@ -193,6 +193,7 @@ export function CommunityRail({