Quentin Gliech
ee1a104705
Render the CAPTCHA widgets with React on server-rendered pages
...
Instead of provider-specific markup and script tags in the head, the
captcha.form() template macro now emits a placeholder element carrying
the CAPTCHA configuration in data attributes, on which a new entrypoint
mounts the React Captcha component. The widget still injects its hidden
response field inside the form, so the server-side verification flow is
unchanged.
This is the first use of inline React components to progressively
enhance server-rendered pages.
2026-08-14 15:47:19 +02:00
Quentin Gliech
d0370a6b3f
Simplify the Captcha component back down
...
The previous commit grew a load timeout, script-tag eviction, an error
boundary and a retry button, and swapped the imperative `CaptchaHandle`
ref for an `onValidChange` callback. None of that is needed to mount a
widget on a server-rendered page, and some of it does not work: removing
the `<script>` tag does not stop a load the browser has already started,
and the timeout deletes the global onload callback, so an SDK which is
merely slow ends up calling into nothing.
Go back to exposing validity through a ref, and keep only the
per-provider placeholder heights, which are what stops the page jumping
once the widget renders. Whatever a React form needs to react to the
captcha being solved belongs with that form.
2026-08-14 15:47:19 +02:00
Quentin Gliech
182e08d0cb
Add a React component to render CAPTCHA widgets
...
Adds a reusable Captcha React component along with the type
definitions for the supported providers (hCaptcha, Cloudflare
Turnstile, Google reCAPTCHA). The provider SDKs are lazy-loaded by the
component itself, suspending the tree while they load, and evicted on
failure so a retry can re-attempt the load. The widgets report
solved/expired state through an `onValidChange` callback.
2026-08-10 16:51:37 +02:00
Quentin Gliech
5d7a66557a
Load frontend translations with dynamic imports instead of fetch
...
`import.meta.glob` now generates lazy loaders for the locale JSON modules
rather than hashed asset URLs, so `Backend.read` awaits an `import()` instead
of doing a `fetch`. This puts translation loading under the `script-src` CSP
directive instead of `connect-src`, and lets the browser preload them as
modules, which the `<link rel="preload" as="fetch">` hint never really did
because of the credentials-mode mismatch.
Dynamic imports are cached for the lifetime of the page, so locale
hot-reloading now triggers a full page reload in dev instead of asking i18next
to re-read its resources.
2026-08-07 17:59:26 +02:00
dependabot[bot] and GitHub
bc2587bd2e
build(deps-dev): bump storybook
...
Bumps the storybook group with 1 update in the / directory: [storybook](https://github.com/storybookjs/storybook/tree/HEAD/code/core ).
Updates `storybook` from 10.4.6 to 10.5.3
- [Release notes](https://github.com/storybookjs/storybook/releases )
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md )
- [Commits](https://github.com/storybookjs/storybook/commits/v10.5.3/code/core )
---
updated-dependencies:
- dependency-name: storybook
dependency-version: 10.5.2
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: storybook
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-08-07 07:59:31 +00:00
Quentin Gliech
300ede9fe8
Regenerate src/routeTree.gen.ts
2026-08-07 09:39:09 +02:00
dependabot[bot] and GitHub
6ed06dde73
build(deps): bump the tanstack-router group across 1 directory with 2 updates
...
Bumps the tanstack-router group with 2 updates in the / directory: [@tanstack/react-router](https://github.com/TanStack/router/tree/HEAD/packages/react-router ) and [@tanstack/router-plugin](https://github.com/TanStack/router/tree/HEAD/packages/router-plugin ).
Updates `@tanstack/react-router` from 1.170.17 to 1.170.18
- [Release notes](https://github.com/TanStack/router/releases )
- [Changelog](https://github.com/TanStack/router/blob/main/packages/react-router/CHANGELOG.md )
- [Commits](https://github.com/TanStack/router/commits/@tanstack/react-router@1.170.18/packages/react-router )
Updates `@tanstack/router-plugin` from 1.168.19 to 1.168.23
- [Release notes](https://github.com/TanStack/router/releases )
- [Changelog](https://github.com/TanStack/router/blob/main/packages/router-plugin/CHANGELOG.md )
- [Commits](https://github.com/TanStack/router/commits/@tanstack/router-plugin@1.168.23/packages/router-plugin )
---
updated-dependencies:
- dependency-name: "@tanstack/react-router"
dependency-version: 1.170.18
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: tanstack-router
- dependency-name: "@tanstack/router-plugin"
dependency-version: 1.168.22
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: tanstack-router
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-08-06 19:51:31 +00:00
Quentin Gliech
e58527d807
Revert "build(deps-dev): bump the graphql-codegen group across 1 directory with 2 updates"
...
This reverts commit dca32d3871 .
2026-08-06 17:03:04 +02:00
Quentin Gliech and GitHub
c8609fbce5
build(deps-dev): bump the graphql-codegen group with 2 updates ( #5900 )
2026-08-05 13:48:20 +02:00
Quentin Gliech and GitHub
ee0db1548a
build(deps): bump the i18next group with 3 updates ( #5899 )
2026-08-05 13:37:14 +02:00
dependabot[bot] and GitHub
dca32d3871
build(deps-dev): bump the graphql-codegen group across 1 directory with 2 updates
...
Bumps the graphql-codegen group with 2 updates in the / directory: [@graphql-codegen/cli](https://github.com/dotansimha/graphql-code-generator/tree/HEAD/packages/graphql-codegen-cli ) and [@graphql-codegen/client-preset](https://github.com/dotansimha/graphql-code-generator/tree/HEAD/packages/presets/client ).
Updates `@graphql-codegen/cli` from 7.1.3 to 7.2.0
- [Release notes](https://github.com/dotansimha/graphql-code-generator/releases )
- [Changelog](https://github.com/dotansimha/graphql-code-generator/blob/master/packages/graphql-codegen-cli/CHANGELOG.md )
- [Commits](https://github.com/dotansimha/graphql-code-generator/commits/@graphql-codegen/cli@7.2.0/packages/graphql-codegen-cli )
Updates `@graphql-codegen/client-preset` from 6.0.1 to 6.1.0
- [Release notes](https://github.com/dotansimha/graphql-code-generator/releases )
- [Changelog](https://github.com/dotansimha/graphql-code-generator/blob/master/packages/presets/client/CHANGELOG.md )
- [Commits](https://github.com/dotansimha/graphql-code-generator/commits/@graphql-codegen/client-preset@6.1.0/packages/presets/client )
---
updated-dependencies:
- dependency-name: "@graphql-codegen/cli"
dependency-version: 7.2.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: graphql-codegen
- dependency-name: "@graphql-codegen/client-preset"
dependency-version: 6.1.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: graphql-codegen
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-08-05 11:34:26 +00:00
dependabot[bot] and GitHub
c9e44c8bb8
build(deps): bump the i18next group across 1 directory with 3 updates
...
Bumps the i18next group with 3 updates in the / directory: [i18next](https://github.com/i18next/i18next ), [react-i18next](https://github.com/i18next/react-i18next ) and [i18next-cli](https://github.com/i18next/i18next-cli ).
Updates `i18next` from 26.3.4 to 26.3.6
- [Release notes](https://github.com/i18next/i18next/releases )
- [Changelog](https://github.com/i18next/i18next/blob/master/CHANGELOG.md )
- [Commits](https://github.com/i18next/i18next/compare/v26.3.4...v26.3.6 )
Updates `react-i18next` from 17.0.8 to 17.0.10
- [Changelog](https://github.com/i18next/react-i18next/blob/master/CHANGELOG.md )
- [Commits](https://github.com/i18next/react-i18next/compare/v17.0.8...v17.0.10 )
Updates `i18next-cli` from 1.65.0 to 1.66.2
- [Changelog](https://github.com/i18next/i18next-cli/blob/main/CHANGELOG.md )
- [Commits](https://github.com/i18next/i18next-cli/compare/v1.65.0...v1.66.2 )
---
updated-dependencies:
- dependency-name: i18next
dependency-version: 26.3.6
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: i18next
- dependency-name: i18next-cli
dependency-version: 1.66.2
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: i18next
- dependency-name: react-i18next
dependency-version: 17.0.10
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: i18next
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-08-05 11:12:26 +00:00
dependabot[bot] and GitHub
3c1c0705b8
build(deps-dev): bump the vite group across 1 directory with 2 updates
...
Bumps the vite group with 2 updates in the / directory: [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react ) and [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite ).
Updates `@vitejs/plugin-react` from 6.0.3 to 6.0.4
- [Release notes](https://github.com/vitejs/vite-plugin-react/releases )
- [Changelog](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/CHANGELOG.md )
- [Commits](https://github.com/vitejs/vite-plugin-react/commits/plugin-react@6.0.4/packages/plugin-react )
Updates `vite` from 8.1.3 to 8.1.5
- [Release notes](https://github.com/vitejs/vite/releases )
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md )
- [Commits](https://github.com/vitejs/vite/commits/v8.1.5/packages/vite )
---
updated-dependencies:
- dependency-name: "@vitejs/plugin-react"
dependency-version: 6.0.4
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: vite
- dependency-name: vite
dependency-version: 8.1.5
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: vite
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-08-05 11:11:26 +00:00
Quentin Gliech and GitHub
2a2741ee00
Read javascript entrypoints configuration from data attributes ( #5886 )
2026-08-05 13:05:37 +02:00
github-actions[bot] and GitHub
24b2bc3c57
Translations updates
2026-08-04 18:03:18 +00:00
Quentin Gliech
a1bfbb6cdd
Read the entrypoint configuration from data attributes
...
Instead of injecting configuration through inline <script> tags setting
window globals, server-rendered templates now carry the configuration
as data attributes on the entrypoint mount node, validated client-side
with a valibot schema over element.dataset. This removes all inline
scripts from the templates, which is friendlier to CSP, and gives the
frontend runtime-validated, typed configuration.
The DOM read and the wiring now happen in the entrypoints themselves:
main.tsx parses the mount node dataset, owns the QueryClient, and
injects the basepath and GraphQL endpoint into the router and request
layer instead of those being module-scope singletons.
2026-07-30 20:51:01 +02:00
github-actions[bot] and GitHub
813f20437d
Translations updates
2026-07-30 16:26:40 +00:00
Quentin Gliech
856dfe000b
Fix time-dependent snapshot test in account sessions page
...
The mocked sessions have a hardcoded lastActiveAt of 2026-04-23, which
crossed the 90-day inactivity threshold on 2026-07-22, flipping the
rendered label from "Active <date>" to "Inactive for 90+ days" and
breaking the committed snapshot. Freeze the clock in the test file so
the fixture stays within the active window.
2026-07-27 10:42:16 +02:00
github-actions[bot] and GitHub
fc9f3ab3e2
Translations updates
2026-07-16 16:06:00 +00:00
Quentin Gliech
4933d4cf2c
Upgrade @zxcvbn-ts/language-common to 4.1.3
...
This includes this fix: https://github.com/zxcvbn-ts/zxcvbn/pull/330
2026-07-16 17:14:01 +02:00
Quentin Gliech
8f1db5b7b0
Revert "Fix the password complexity refusing to calculate in the frontend"
...
This reverts commit 6121def51e .
2026-07-16 17:14:00 +02:00
Quentin Gliech
6121def51e
Fix the password complexity refusing to calculate in the frontend
2026-07-16 15:07:15 +02:00
Quentin Gliech
47e5f266a1
Regression test for password complexity calculation
2026-07-16 15:07:14 +02:00
github-actions[bot] and GitHub
77a79d8227
Translations updates
2026-07-10 11:33:47 +00:00
matrixbot and GitHub
55f9c87605
Automatic merge back to main ( #5857 )
2026-07-09 12:54:50 +02:00
github-actions[bot] and GitHub
4d621624ac
Translations updates
2026-07-09 09:53:24 +00:00
Quentin Gliech
da042e9404
Bump all frontend dependencies
2026-07-06 10:49:27 +02:00
dependabot[bot] and GitHub
bf93ed1bb8
build(deps-dev): bump @tailwindcss/vite from 4.3.0 to 4.3.1
...
Bumps [@tailwindcss/vite](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-vite ) from 4.3.0 to 4.3.1.
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases )
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md )
- [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.3.1/packages/@tailwindcss-vite )
---
updated-dependencies:
- dependency-name: "@tailwindcss/vite"
dependency-version: 4.3.1
dependency-type: direct:development
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-07-03 10:25:45 +00:00
dependabot[bot] and GitHub
2363120b35
build(deps-dev): bump @types/node in the types group
...
Bumps the types group with 1 update: [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node ).
Updates `@types/node` from 25.9.3 to 26.0.0
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases )
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node )
---
updated-dependencies:
- dependency-name: "@types/node"
dependency-version: 26.0.0
dependency-type: direct:development
update-type: version-update:semver-major
dependency-group: types
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-07-03 10:02:55 +00:00
Quentin Gliech
d272b96b02
Merge main to resolve lockfile conflicts
...
Keeps compound-web ^9.7.1 from this branch and picks up
compound-design-tokens 10.2.2 from main.
2026-07-03 11:20:30 +02:00
Quentin Gliech and GitHub
db59f136ae
build(deps): bump @vector-im/compound-design-tokens from 10.2.0 to 10.2.2 ( #5812 )
2026-07-03 11:16:31 +02:00
Quentin Gliech
8e66532e08
Update test snapshots
2026-07-03 10:55:51 +02:00
Quentin Gliech
20839b0f38
Update radix-ui depdendencies as well
2026-07-03 10:55:45 +02:00
dependabot[bot] and GitHub
06c52d68e9
build(deps-dev): bump @biomejs/biome from 2.4.15 to 2.5.0
...
Bumps [@biomejs/biome](https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome ) from 2.4.15 to 2.5.0.
- [Release notes](https://github.com/biomejs/biome/releases )
- [Changelog](https://github.com/biomejs/biome/blob/main/packages/@biomejs/biome/CHANGELOG.md )
- [Commits](https://github.com/biomejs/biome/commits/@biomejs/biome@2.5.0/packages/@biomejs/biome )
---
updated-dependencies:
- dependency-name: "@biomejs/biome"
dependency-version: 2.5.0
dependency-type: direct:development
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-07-02 22:26:02 +00:00
dependabot[bot] and GitHub
d2d4c44a4a
build(deps): bump @vector-im/compound-design-tokens
...
Bumps [@vector-im/compound-design-tokens](https://github.com/element-hq/compound-design-tokens ) from 10.2.0 to 10.2.2.
- [Release notes](https://github.com/element-hq/compound-design-tokens/releases )
- [Changelog](https://github.com/element-hq/compound-design-tokens/blob/main/docs/release.md )
- [Commits](https://github.com/element-hq/compound-design-tokens/compare/v10.2.0...v10.2.2 )
---
updated-dependencies:
- dependency-name: "@vector-im/compound-design-tokens"
dependency-version: 10.2.2
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-07-02 22:25:36 +00:00
Quentin Gliech and GitHub
47a0ea1dbf
build(deps-dev): bump happy-dom from 20.9.0 to 20.10.6 ( #5809 )
2026-07-02 23:36:32 +02:00
dependabot[bot] and GitHub
801609a797
build(deps-dev): bump happy-dom from 20.9.0 to 20.10.6
...
Bumps [happy-dom](https://github.com/capricorn86/happy-dom ) from 20.9.0 to 20.10.6.
- [Release notes](https://github.com/capricorn86/happy-dom/releases )
- [Commits](https://github.com/capricorn86/happy-dom/compare/v20.9.0...v20.10.6 )
---
updated-dependencies:
- dependency-name: happy-dom
dependency-version: 20.10.6
dependency-type: direct:development
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-07-02 21:08:28 +00:00
dependabot[bot] and GitHub
a7dd9ceae8
build(deps): bump @vector-im/compound-web from 9.3.0 to 9.4.1
...
Bumps [@vector-im/compound-web](https://github.com/element-hq/compound-web ) from 9.3.0 to 9.4.1.
- [Release notes](https://github.com/element-hq/compound-web/releases )
- [Commits](https://github.com/element-hq/compound-web/compare/v9.3.0...v9.4.1 )
---
updated-dependencies:
- dependency-name: "@vector-im/compound-web"
dependency-version: 9.4.1
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-07-02 21:08:02 +00:00
dependabot[bot] and GitHub
7664f87e80
build(deps-dev): bump tinyglobby from 0.2.16 to 0.2.17
...
Bumps [tinyglobby](https://github.com/SuperchupuDev/tinyglobby ) from 0.2.16 to 0.2.17.
- [Release notes](https://github.com/SuperchupuDev/tinyglobby/releases )
- [Changelog](https://github.com/SuperchupuDev/tinyglobby/blob/main/CHANGELOG.md )
- [Commits](https://github.com/SuperchupuDev/tinyglobby/compare/0.2.16...0.2.17 )
---
updated-dependencies:
- dependency-name: tinyglobby
dependency-version: 0.2.17
dependency-type: direct:development
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-07-02 21:07:35 +00:00
Quentin Gliech and GitHub
ea2bbb8854
build(deps): bump @zxcvbn-ts/core from 3.0.4 to 4.1.2 ( #5802 )
2026-07-02 22:49:18 +02:00
Quentin Gliech
239dec3ee0
Adapt to the zxcvbn-ts v4 API, bump @zxcvbn-ts/language-common to match
...
v4 replaced the global `zxcvbnOptions`/`zxcvbnAsync` singleton with the
`ZxcvbnFactory` class. The warning/suggestion codes and options shape
are unchanged.
2026-07-02 22:22:33 +02:00
Quentin Gliech and GitHub
f38eedafc1
build(deps-dev): bump tailwindcss from 4.3.0 to 4.3.1 ( #5798 )
2026-07-02 22:09:17 +02:00
dependabot[bot] and GitHub
720e55565a
build(deps): bump @zxcvbn-ts/core from 3.0.4 to 4.1.2
...
Bumps [@zxcvbn-ts/core](https://github.com/zxcvbn-ts/zxcvbn ) from 3.0.4 to 4.1.2.
- [Changelog](https://github.com/zxcvbn-ts/zxcvbn/blob/master/CHANGELOG.md )
- [Commits](https://github.com/zxcvbn-ts/zxcvbn/compare/@zxcvbn-ts/core@3.0.4...@zxcvbn-ts/core@4.1.2 )
---
updated-dependencies:
- dependency-name: "@zxcvbn-ts/core"
dependency-version: 4.1.2
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-07-02 18:19:38 +00:00
Quentin Gliech and GitHub
bd188d002b
build(deps): bump date-fns from 4.3.0 to 4.4.0 ( #5795 )
2026-07-02 20:16:27 +02:00
dependabot[bot] and GitHub
7680f61582
build(deps-dev): bump tailwindcss from 4.3.0 to 4.3.1
...
Bumps [tailwindcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss ) from 4.3.0 to 4.3.1.
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases )
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md )
- [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.3.1/packages/tailwindcss )
---
updated-dependencies:
- dependency-name: tailwindcss
dependency-version: 4.3.1
dependency-type: direct:development
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-07-02 17:58:10 +00:00
Quentin Gliech and GitHub
a2d5d051e6
build(deps-dev): bump knip from 6.14.2 to 6.17.1 ( #5797 )
2026-07-02 19:49:17 +02:00
Quentin Gliech and GitHub
b744382004
build(deps): bump valibot from 1.4.0 to 1.4.1 ( #5793 )
2026-07-02 19:48:43 +02:00
dependabot[bot] and GitHub
5c8d7398a9
build(deps-dev): bump knip from 6.14.2 to 6.17.1
...
Bumps [knip](https://github.com/webpro-nl/knip/tree/HEAD/packages/knip ) from 6.14.2 to 6.17.1.
- [Release notes](https://github.com/webpro-nl/knip/releases )
- [Commits](https://github.com/webpro-nl/knip/commits/knip@6.17.1/packages/knip )
---
updated-dependencies:
- dependency-name: knip
dependency-version: 6.17.1
dependency-type: direct:development
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-07-02 17:19:44 +00:00
dependabot[bot] and GitHub
c011238790
build(deps): bump date-fns from 4.3.0 to 4.4.0
...
Bumps [date-fns](https://github.com/date-fns/date-fns ) from 4.3.0 to 4.4.0.
- [Release notes](https://github.com/date-fns/date-fns/releases )
- [Commits](https://github.com/date-fns/date-fns/compare/v4.3.0...v4.4.0 )
---
updated-dependencies:
- dependency-name: date-fns
dependency-version: 4.4.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-07-02 17:19:18 +00:00
dependabot[bot] and GitHub
95a97bf270
build(deps): bump valibot from 1.4.0 to 1.4.1
...
Bumps [valibot](https://github.com/open-circle/valibot ) from 1.4.0 to 1.4.1.
- [Release notes](https://github.com/open-circle/valibot/releases )
- [Commits](https://github.com/open-circle/valibot/compare/v1.4.0...v1.4.1 )
---
updated-dependencies:
- dependency-name: valibot
dependency-version: 1.4.1
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-07-02 17:18:51 +00:00