Commit Graph
1976 Commits
Author SHA1 Message Date
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]andGitHub 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]andGitHub 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 GliechandGitHub c8609fbce5 build(deps-dev): bump the graphql-codegen group with 2 updates (#5900) 2026-08-05 13:48:20 +02:00
Quentin GliechandGitHub ee0db1548a build(deps): bump the i18next group with 3 updates (#5899) 2026-08-05 13:37:14 +02:00
dependabot[bot]andGitHub 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]andGitHub 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]andGitHub 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 GliechandGitHub 2a2741ee00 Read javascript entrypoints configuration from data attributes (#5886) 2026-08-05 13:05:37 +02:00
github-actions[bot]andGitHub 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]andGitHub 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]andGitHub 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]andGitHub 77a79d8227 Translations updates 2026-07-10 11:33:47 +00:00
matrixbotandGitHub 55f9c87605 Automatic merge back to main (#5857) 2026-07-09 12:54:50 +02:00
github-actions[bot]andGitHub 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]andGitHub 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]andGitHub 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 GliechandGitHub 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]andGitHub 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]andGitHub 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 GliechandGitHub 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]andGitHub 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]andGitHub 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]andGitHub 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 GliechandGitHub 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 GliechandGitHub 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]andGitHub 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 GliechandGitHub 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]andGitHub 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 GliechandGitHub a2d5d051e6 build(deps-dev): bump knip from 6.14.2 to 6.17.1 (#5797) 2026-07-02 19:49:17 +02:00
Quentin GliechandGitHub b744382004 build(deps): bump valibot from 1.4.0 to 1.4.1 (#5793) 2026-07-02 19:48:43 +02:00
dependabot[bot]andGitHub 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]andGitHub 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]andGitHub 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