From 7747506c2edab21ee9c09feeea7836d975311046 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 18 Oct 2026 11:04:35 +0000 Subject: [PATCH 1/4] build(deps): bump the design-system group across 1 directory with 2 updates Bumps the design-system group with 2 updates in the / directory: [@gopherium/godmin](https://github.com/gopherium/godmin) and [@gopherium/react-auth](https://github.com/gopherium/gouncer/tree/HEAD/react-auth). Updates `@gopherium/godmin` from 0.20.0 to 0.22.0 - [Changelog](https://github.com/gopherium/godmin/blob/main/CHANGELOG.md) - [Commits](https://github.com/gopherium/godmin/compare/v0.20.0...v0.22.0) Updates `@gopherium/react-auth` from 0.12.0 to 0.13.0 - [Release notes](https://github.com/gopherium/gouncer/releases) - [Changelog](https://github.com/gopherium/gouncer/blob/main/react-auth/CHANGELOG.md) - [Commits](https://github.com/gopherium/gouncer/commits/authkit/v0.13.0/react-auth) --- updated-dependencies: - dependency-name: "@gopherium/godmin" dependency-version: 0.21.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: design-system - dependency-name: "@gopherium/react-auth" dependency-version: 0.13.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: design-system ... Signed-off-by: dependabot[bot] --- frontend/package.json | 4 ++-- pnpm-lock.yaml | 47 +++++++++++++++++++++------------------ sdk/frontend/package.json | 4 ++-- 3 files changed, 29 insertions(+), 26 deletions(-) diff --git a/frontend/package.json b/frontend/package.json index 054c7a39..c468f204 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -22,9 +22,9 @@ "@alphone/plugin-fields": "workspace:*", "@alphone/plugin-importer": "workspace:*", "@alphone/plugin-whatsapp": "workspace:*", - "@gopherium/godmin": "0.20.0", + "@gopherium/godmin": "0.22.0", "@gopherium/gottext": "0.6.0", - "@gopherium/react-auth": "0.12.0", + "@gopherium/react-auth": "0.13.0", "@tanstack/react-query": "^5.104.3", "@tanstack/react-router": "^1.170.44", "@wordpress/i18n": "6.30.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2e38418b..45346dee 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -156,14 +156,14 @@ importers: specifier: workspace:* version: link:../plugins/whatsapp/frontend '@gopherium/godmin': - specifier: 0.20.0 - version: 0.20.0(03bc14b912dbe0787054e99546eef2a5) + specifier: 0.22.0 + version: 0.22.0(ae7b62fe769256d59dfae560e1915eb3) '@gopherium/gottext': specifier: 0.6.0 version: 0.6.0(@wordpress/i18n@6.30.0)(gettext-extractor@4.0.6)(react@19.3.1) '@gopherium/react-auth': - specifier: 0.12.0 - version: 0.12.0(5aa1bd7160a06326a4ce8b691c9c4a30) + specifier: 0.13.0 + version: 0.13.0(5aa1bd7160a06326a4ce8b691c9c4a30) '@tanstack/react-query': specifier: ^5.104.3 version: 5.104.3(react@19.3.1) @@ -364,14 +364,14 @@ importers: sdk/frontend: dependencies: '@gopherium/godmin': - specifier: 0.20.0 - version: 0.20.0(03bc14b912dbe0787054e99546eef2a5) + specifier: 0.22.0 + version: 0.22.0(ae7b62fe769256d59dfae560e1915eb3) '@gopherium/gottext': specifier: 0.6.0 version: 0.6.0(@wordpress/i18n@6.30.0)(gettext-extractor@4.0.6)(react@19.3.1) '@gopherium/react-auth': - specifier: 0.12.0 - version: 0.12.0(fd95a81f7a4c0511fff33619fd3e8fd1) + specifier: 0.13.0 + version: 0.13.0(fd95a81f7a4c0511fff33619fd3e8fd1) '@tanstack/react-query': specifier: ^5.104.3 version: 5.104.3(react@19.3.1) @@ -1037,12 +1037,14 @@ packages: '@floating-ui/utils@0.2.12': resolution: {integrity: sha512-HpCo8tmWzLVad5s2d19EhAz5zqrrQ6s69qd6moPMQvkOuSwDT1YgRfWSVuc4ennqrgv3OHppiOGMQ7oC13yIww==} - '@gopherium/godmin@0.20.0': - resolution: {integrity: sha512-FAUoO/CDq2ALn+2KYT2Yvacq6HXFGIaR/rQrkpAYTXa2xzMzIuEIlQ0uBpqpe9fEqPqRwx1E1+nWsMy0Q3+y9A==} + '@gopherium/godmin@0.22.0': + resolution: {integrity: sha512-QxLDCZw+T2k139sY0rbFHJTlcXQcnazqLUHeyuf1CSqF4oy4yOGKelsdHNIHvU0ZC3DTMh6LY+kDdIW8dfMzNQ==} peerDependencies: '@tanstack/react-router': ^1.170.0 '@testing-library/react': ^16.3.2 '@wordpress/a11y': '>=4.57.0 <5.0.0' + '@wordpress/components': '>=42.0.0 <43.0.0' + '@wordpress/dataviews': '>=20.0.0 <21.0.0' '@wordpress/date': '>=5.57.0 <6.0.0' '@wordpress/i18n': '>=6.30.0 <7.0.0' '@wordpress/icons': '>=18.0.0 <19.0.0' @@ -1057,6 +1059,10 @@ packages: optional: true '@testing-library/react': optional: true + '@wordpress/components': + optional: true + '@wordpress/dataviews': + optional: true '@wordpress/date': optional: true '@wordpress/i18n': @@ -1079,8 +1085,8 @@ packages: react: optional: true - '@gopherium/react-auth@0.12.0': - resolution: {integrity: sha512-nrxTW09vbl0i8C76Rd33q50PBz9eRQWpnWVaehVSFczzQIoqP9FU4RJOwxgjThulAfGHyuTzaGXkr/MaePQKrw==} + '@gopherium/react-auth@0.13.0': + resolution: {integrity: sha512-Ho1aB6x24NEpHkRmTJ3EywpLrNSJJ8El+tz5wQdTRc6bdxt0JLQEAF9RSripvdMUEXrD2p6zG3rIb8H1srWnpw==} peerDependencies: '@tanstack/react-query': ^5.101.2 '@testing-library/jest-dom': ^6.9.1 || ^7.0.0 @@ -4932,9 +4938,6 @@ packages: resolution: {integrity: sha512-xYqdZFUK/VYazNl/oCDYN+3WloWQwMfZxBoiNt6qNyk+xfOdi598muWE42rNZFp1kNOiqW936q5RhUdnpqElSg==} engines: {node: '>=18'} - zod@4.4.3: - resolution: {integrity: sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ==} - zod@4.6.7: resolution: {integrity: sha512-g8W2D2kU6a8untc053fX1uVBKzM7yqAxW/3zwk83+6RyF2+SKOuV+c0wBDhUwzV1PaGapmZH+rmcUzPf+3CGwg==} @@ -5492,7 +5495,7 @@ snapshots: '@floating-ui/utils@0.2.12': {} - '@gopherium/godmin@0.20.0(03bc14b912dbe0787054e99546eef2a5)': + '@gopherium/godmin@0.22.0(ae7b62fe769256d59dfae560e1915eb3)': dependencies: '@wordpress/a11y': 4.57.0 '@wordpress/icons': 18.0.0(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.1(react@19.3.1))(react@19.3.1) @@ -5503,6 +5506,8 @@ snapshots: optionalDependencies: '@tanstack/react-router': 1.170.44(react-dom@19.3.1(react@19.3.1))(react@19.3.1) '@testing-library/react': 16.3.3(@testing-library/dom@10.4.1)(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.1(react@19.3.1))(react@19.3.1) + '@wordpress/components': 42.0.0(@date-fns/tz@1.5.0)(@emotion/is-prop-valid@1.4.0)(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.29)(react-dom@19.3.1(react@19.3.1))(react@19.3.1)(stylelint@17.16.0(supports-color@10.2.2)(typescript@6.0.3))(supports-color@10.2.2)(vite@8.3.4(@types/node@26.6.5)(esbuild@0.28.1)(jiti@2.7.0)(yaml@2.9.0)) + '@wordpress/dataviews': 20.0.0(@emotion/is-prop-valid@1.4.0)(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(esbuild@0.28.1)(lightningcss@1.33.0)(postcss@8.5.29)(react-dom@19.3.1(react@19.3.1))(react@19.3.1)(stylelint@17.16.0(supports-color@10.2.2)(typescript@6.0.3))(supports-color@10.2.2)(vite@8.3.4(@types/node@26.6.5)(esbuild@0.28.1)(jiti@2.7.0)(yaml@2.9.0)) '@wordpress/date': 5.57.0 '@wordpress/i18n': 6.30.0 stylelint: 17.16.0(supports-color@10.2.2)(typescript@6.0.3) @@ -5516,12 +5521,12 @@ snapshots: gettext-extractor: 4.0.6 react: 19.3.1 - '@gopherium/react-auth@0.12.0(5aa1bd7160a06326a4ce8b691c9c4a30)': + '@gopherium/react-auth@0.13.0(5aa1bd7160a06326a4ce8b691c9c4a30)': dependencies: '@tanstack/react-query': 5.104.3(react@19.3.1) '@wordpress/i18n': 6.30.0 react: 19.3.1 - zod: 4.4.3 + zod: 4.6.7 optionalDependencies: '@testing-library/jest-dom': 6.9.1 '@testing-library/react': 16.3.3(@testing-library/dom@10.4.1)(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.1(react@19.3.1))(react@19.3.1) @@ -5530,12 +5535,12 @@ snapshots: msw: 2.15.0(@types/node@26.6.5)(typescript@6.0.3) vitest: 5.0.5(@types/node@26.6.5)(@vitest/coverage-v8@5.0.5)(jsdom@30.1.3)(msw@2.15.0(@types/node@26.6.5)(typescript@6.0.3))(vite@8.3.4(@types/node@26.6.5)(esbuild@0.28.1)(jiti@2.7.0)(yaml@2.9.0)) - '@gopherium/react-auth@0.12.0(fd95a81f7a4c0511fff33619fd3e8fd1)': + '@gopherium/react-auth@0.13.0(fd95a81f7a4c0511fff33619fd3e8fd1)': dependencies: '@tanstack/react-query': 5.104.3(react@19.3.1) '@wordpress/i18n': 6.30.0 react: 19.3.1 - zod: 4.4.3 + zod: 4.6.7 optionalDependencies: '@testing-library/jest-dom': 7.0.1(@testing-library/dom@10.4.1)(vitest@5.0.5) '@testing-library/react': 16.3.3(@testing-library/dom@10.4.1)(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.1(react@19.3.1))(react@19.3.1) @@ -9462,6 +9467,4 @@ snapshots: yoctocolors@2.2.0: {} - zod@4.4.3: {} - zod@4.6.7: {} diff --git a/sdk/frontend/package.json b/sdk/frontend/package.json index 18a809f1..09720ede 100644 --- a/sdk/frontend/package.json +++ b/sdk/frontend/package.json @@ -9,9 +9,9 @@ "./testing": "./testing.tsx" }, "dependencies": { - "@gopherium/godmin": "0.20.0", + "@gopherium/godmin": "0.22.0", "@gopherium/gottext": "0.6.0", - "@gopherium/react-auth": "0.12.0", + "@gopherium/react-auth": "0.13.0", "@tanstack/react-query": "^5.104.3", "@urql/exchange-graphcache": "9.0.2", "@urql/exchange-retry": "2.0.0", From 397672f34658371446549e9c074fcc9c111fd58a Mon Sep 17 00:00:00 2001 From: SirLouen Date: Sun, 18 Oct 2026 13:22:03 +0200 Subject: [PATCH 2/4] test(frontend): expect the accent Cancel godmin draws in confirm and rename dialogs --- frontend/src/test/contacts-list.test.tsx | 6 ++---- frontend/src/test/tokens-route.test.tsx | 4 +--- frontend/src/test/users-invited.test.tsx | 6 ++---- 3 files changed, 5 insertions(+), 11 deletions(-) diff --git a/frontend/src/test/contacts-list.test.tsx b/frontend/src/test/contacts-list.test.tsx index f2a90f13..61935f8e 100644 --- a/frontend/src/test/contacts-list.test.tsx +++ b/frontend/src/test/contacts-list.test.tsx @@ -686,16 +686,14 @@ test('renames a contact in a modal and confirms it with a toast', async () => { await waitFor(async () => expect(await shownNames()).toEqual(['Ada Lovelace', 'Maria Perez', 'Zoe Lopez'])) }) -test('opens the rename at the default medium width with Cancel as a neutral text button', async () => { +test('opens the rename at the default medium width with Cancel as an accent text button', async () => { renderAt('/contacts') await act('Ana Lopez', 'Rename…') const dialog = await screen.findByRole('dialog', { name: 'Rename' }) expect(dialog).toHaveClass('has-size-medium') - expect([...within(dialog).getByRole('button', { name: 'Cancel' }).classList]).toEqual( - buttonClasses('minimal', undefined, 'neutral'), - ) + expect([...within(dialog).getByRole('button', { name: 'Cancel' }).classList]).toEqual(buttonClasses('minimal')) }) test('puts the cursor in the name when the rename opens, as the WordPress rename does', async () => { diff --git a/frontend/src/test/tokens-route.test.tsx b/frontend/src/test/tokens-route.test.tsx index c0e99fda..afa996b2 100644 --- a/frontend/src/test/tokens-route.test.tsx +++ b/frontend/src/test/tokens-route.test.tsx @@ -427,9 +427,7 @@ test('asks before it revokes in a medium modal with no title or close button, as expect(within(dialog).queryByRole('heading')).not.toBeInTheDocument() expect(within(dialog).queryByRole('button', { name: 'Close' })).not.toBeInTheDocument() expect(within(dialog).getByText('Revoke "n8n production"? This cannot be undone.')).toBeInTheDocument() - expect([...within(dialog).getByRole('button', { name: 'Cancel' }).classList]).toEqual( - buttonClasses('minimal', undefined, 'neutral'), - ) + expect([...within(dialog).getByRole('button', { name: 'Cancel' }).classList]).toEqual(buttonClasses('minimal')) }) test('puts the focus on Cancel when the revoke opens, as a WordPress delete does', async () => { diff --git a/frontend/src/test/users-invited.test.tsx b/frontend/src/test/users-invited.test.tsx index 20c694a0..3dcacaa4 100644 --- a/frontend/src/test/users-invited.test.tsx +++ b/frontend/src/test/users-invited.test.tsx @@ -129,7 +129,7 @@ test('lists the primary one click action first, as a WordPress row menu does', a expect(await actionsOf('ana@example.com')).toEqual(['Enable', 'Change role…']) }) -test('opens the resend at the default medium width under its title, with Cancel as a neutral text button', async () => { +test('opens the resend at the default medium width under its title, with Cancel as an accent text button', async () => { renderAt('/users') const modal = await openResend() @@ -139,9 +139,7 @@ test('opens the resend at the default medium width under its title, with Cancel expect( modal.getByText('Send a new invitation to "Maria Perez" (maria@example.com)? The link sent before stops working.'), ).toBeInTheDocument() - expect([...modal.getByRole('button', { name: 'Cancel' }).classList]).toEqual( - buttonClasses('minimal', undefined, 'neutral'), - ) + expect([...modal.getByRole('button', { name: 'Cancel' }).classList]).toEqual(buttonClasses('minimal')) expect(modal.getByRole('button', { name: 'Resend invitation' })).toBeInTheDocument() }) From c12a51028482f191c2d9879d0e73e30a5aa1b472 Mon Sep 17 00:00:00 2001 From: SirLouen Date: Sun, 18 Oct 2026 13:22:03 +0200 Subject: [PATCH 3/4] test(frontend): find the password reset by its Lost your password label --- frontend/src/test/public-auth.test.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/test/public-auth.test.tsx b/frontend/src/test/public-auth.test.tsx index 742bf192..df5dd369 100644 --- a/frontend/src/test/public-auth.test.tsx +++ b/frontend/src/test/public-auth.test.tsx @@ -84,7 +84,7 @@ test('a link carrying no token still renders its screen', async () => { test('the login slot offers the way to a password reset and back', async () => { renderScreen() - await userEvent.click(await screen.findByRole('button', { name: 'Forgot your password?' })) + await userEvent.click(await screen.findByRole('button', { name: 'Lost your password?' })) expect(await screen.findByRole('button', { name: 'Send reset link' })).toBeInTheDocument() From aa9a9be7f5b6e03ee5a800f59d4d7376eed0e7bb Mon Sep 17 00:00:00 2001 From: SirLouen Date: Sun, 18 Oct 2026 13:22:04 +0200 Subject: [PATCH 4/4] test(e2e): find the password reset by its Lost your password label --- test/e2e/tests/invitation.spec.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/e2e/tests/invitation.spec.ts b/test/e2e/tests/invitation.spec.ts index 2b04630f..8024651c 100644 --- a/test/e2e/tests/invitation.spec.ts +++ b/test/e2e/tests/invitation.spec.ts @@ -91,7 +91,7 @@ test('a forgotten password is reset from the login screen', async ({ page, brows const reset = await forgotten.newPage() await reset.goto('/') - await reset.getByRole('button', { name: 'Forgot your password?' }).click() + await reset.getByRole('button', { name: 'Lost your password?' }).click() await reset.getByLabel('Email').fill('maria@example.com') await reset.getByRole('button', { name: 'Send reset link' }).click() await expect(