dependabot[bot] opened a new pull request, #76619:
URL: https://github.com/apache/airflow/pull/76619

   Bumps the core-ui-package-updates group with 13 updates in the 
/airflow-core/src/airflow/ui directory:
   
   | Package | From | To |
   | --- | --- | --- |
   | 
[@tanstack/react-query](https://github.com/TanStack/query/tree/HEAD/packages/react-query)
 | `5.105.0` | `5.105.2` |
   | 
[@tanstack/react-virtual](https://github.com/TanStack/virtual/tree/HEAD/packages/react-virtual)
 | `3.14.24` | `3.14.25` |
   | [@xyflow/react](https://github.com/xyflow/xyflow/tree/HEAD/packages/react) 
| `12.12.0` | `12.12.1` |
   | [i18next](https://github.com/i18next/i18next) | `26.5.12` | `26.7.1` |
   | 
[i18next-browser-languagedetector](https://github.com/i18next/i18next-browser-languageDetector)
 | `8.2.4` | `8.3.0` |
   | [i18next-http-backend](https://github.com/i18next/i18next-http-backend) | 
`4.0.7` | `4.0.9` |
   | [react-i18next](https://github.com/i18next/react-i18next) | `17.1.9` | 
`17.1.11` |
   | 
[react-resizable-panels](https://github.com/bvaughn/react-resizable-panels) | 
`4.15.3` | `4.16.1` |
   | 
[@tanstack/eslint-plugin-query](https://github.com/TanStack/query/tree/HEAD/packages/eslint-plugin-query)
 | `5.105.0` | `5.105.2` |
   | 
[@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react)
 | `6.1.2` | `6.2.1` |
   | 
[@vitest/coverage-v8](https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8)
 | `5.0.5` | `5.1.0` |
   | [globals](https://github.com/sindresorhus/globals) | `17.13.0` | `17.14.0` 
|
   | [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) | 
`5.0.5` | `5.1.0` |
   
   
   Updates `@tanstack/react-query` from 5.105.0 to 5.105.2
   <details>
   <summary>Release notes</summary>
   <p><em>Sourced from <a 
href="https://github.com/TanStack/query/releases";>@​tanstack/react-query's 
releases</a>.</em></p>
   <blockquote>
   <h2><code>@​tanstack/react-query-devtools</code><a 
href="https://github.com/5";><code>@​5</code></a>.105.2</h2>
   <h3>Patch Changes</h3>
   <ul>
   <li>Updated dependencies [<a 
href="https://github.com/TanStack/query/commit/1e1caa5a32847969f7157627cd805bd8103cd873";><code>1e1caa5</code></a>,
 <a 
href="https://github.com/TanStack/query/commit/8d0dc278a728a97eb677b6f2baf37d1677c2edc1";><code>8d0dc27</code></a>]:
   <ul>
   <li><code>@​tanstack/react-query</code><a 
href="https://github.com/5";><code>@​5</code></a>.105.2</li>
   <li><code>@​tanstack/query-devtools</code><a 
href="https://github.com/5";><code>@​5</code></a>.105.2</li>
   </ul>
   </li>
   </ul>
   <h2><code>@​tanstack/react-query-next-experimental</code><a 
href="https://github.com/5";><code>@​5</code></a>.105.2</h2>
   <h3>Patch Changes</h3>
   <ul>
   <li>Updated dependencies [<a 
href="https://github.com/TanStack/query/commit/1e1caa5a32847969f7157627cd805bd8103cd873";><code>1e1caa5</code></a>,
 <a 
href="https://github.com/TanStack/query/commit/8d0dc278a728a97eb677b6f2baf37d1677c2edc1";><code>8d0dc27</code></a>]:
   <ul>
   <li><code>@​tanstack/react-query</code><a 
href="https://github.com/5";><code>@​5</code></a>.105.2</li>
   </ul>
   </li>
   </ul>
   <h2><code>@​tanstack/react-query-persist-client</code><a 
href="https://github.com/5";><code>@​5</code></a>.105.2</h2>
   <h3>Patch Changes</h3>
   <ul>
   <li>Updated dependencies [<a 
href="https://github.com/TanStack/query/commit/1e1caa5a32847969f7157627cd805bd8103cd873";><code>1e1caa5</code></a>,
 <a 
href="https://github.com/TanStack/query/commit/8d0dc278a728a97eb677b6f2baf37d1677c2edc1";><code>8d0dc27</code></a>]:
   <ul>
   <li><code>@​tanstack/react-query</code><a 
href="https://github.com/5";><code>@​5</code></a>.105.2</li>
   <li><code>@​tanstack/query-persist-client-core</code><a 
href="https://github.com/5";><code>@​5</code></a>.105.2</li>
   </ul>
   </li>
   </ul>
   <h2><code>@​tanstack/react-query</code><a 
href="https://github.com/5";><code>@​5</code></a>.105.2</h2>
   <h3>Patch Changes</h3>
   <ul>
   <li>
   <p><a 
href="https://redirect.github.com/TanStack/query/pull/12230";>#12230</a> <a 
href="https://github.com/TanStack/query/commit/1e1caa5a32847969f7157627cd805bd8103cd873";><code>1e1caa5</code></a>
 - Update the observer options before subscribing so revealing an 
<code>&lt;Activity&gt;</code> tree whose query key changed while hidden no 
longer fetches the previous key.</p>
   </li>
   <li>
   <p><a 
href="https://redirect.github.com/TanStack/query/pull/12480";>#12480</a> <a 
href="https://github.com/TanStack/query/commit/8d0dc278a728a97eb677b6f2baf37d1677c2edc1";><code>8d0dc27</code></a>
 - Exclude <code>status</code> from the filters accepted by 
<code>QueryClient.isMutating</code>, <code>useIsMutating</code>, and 
<code>injectIsMutating</code>. These APIs always count mutations with 
<code>status: 'pending'</code>.</p>
   </li>
   <li>
   <p>Updated dependencies [<a 
href="https://github.com/TanStack/query/commit/2ee2fd935acd88532255947c4b5e29baffd21ce8";><code>2ee2fd9</code></a>,
 <a 
href="https://github.com/TanStack/query/commit/8d0dc278a728a97eb677b6f2baf37d1677c2edc1";><code>8d0dc27</code></a>,
 <a 
href="https://github.com/TanStack/query/commit/e69cac69d99cc3c4f6f32b2ad8aad53da83b4a72";><code>e69cac6</code></a>,
 <a 
href="https://github.com/TanStack/query/commit/f2215d25945e6461252b7c32bf822f31239e507e";><code>f2215d2</code></a>,
 <a 
href="https://github.com/TanStack/query/commit/86e79571fd45f29ab7d172102fdd718d3b8bde69";><code>86e7957</code></a>,
 <a 
href="https://github.com/TanStack/query/commit/b6576b388f2784839081358fa82744b0aacdeecd";><code>b6576b3</code></a>,
 <a 
href="https://github.com/TanStack/query/commit/af0e0ef5fc04e9d232fdc3aebd24ffe528b256d7";><code>af0e0ef</code></a>,
 <a 
href="https://github.com/TanStack/query/commit/05d9b6a40b9d4ac49943e9d881789e098db5bdfa";><code>05d9b6a</code></a>]:</p>
   <ul>
   <li><code>@​tanstack/query-core</code><a 
href="https://github.com/5";><code>@​5</code></a>.105.2</li>
   </ul>
   </li>
   </ul>
   </blockquote>
   </details>
   <details>
   <summary>Changelog</summary>
   <p><em>Sourced from <a 
href="https://github.com/TanStack/query/blob/main/packages/react-query/CHANGELOG.md";>@​tanstack/react-query's
 changelog</a>.</em></p>
   <blockquote>
   <h2>5.105.2</h2>
   <h3>Patch Changes</h3>
   <ul>
   <li>
   <p><a 
href="https://redirect.github.com/TanStack/query/pull/12230";>#12230</a> <a 
href="https://github.com/TanStack/query/commit/1e1caa5a32847969f7157627cd805bd8103cd873";><code>1e1caa5</code></a>
 - Update the observer options before subscribing so revealing an 
<code>&lt;Activity&gt;</code> tree whose query key changed while hidden no 
longer fetches the previous key.</p>
   </li>
   <li>
   <p><a 
href="https://redirect.github.com/TanStack/query/pull/12480";>#12480</a> <a 
href="https://github.com/TanStack/query/commit/8d0dc278a728a97eb677b6f2baf37d1677c2edc1";><code>8d0dc27</code></a>
 - Exclude <code>status</code> from the filters accepted by 
<code>QueryClient.isMutating</code>, <code>useIsMutating</code>, and 
<code>injectIsMutating</code>. These APIs always count mutations with 
<code>status: 'pending'</code>.</p>
   </li>
   <li>
   <p>Updated dependencies [<a 
href="https://github.com/TanStack/query/commit/2ee2fd935acd88532255947c4b5e29baffd21ce8";><code>2ee2fd9</code></a>,
 <a 
href="https://github.com/TanStack/query/commit/8d0dc278a728a97eb677b6f2baf37d1677c2edc1";><code>8d0dc27</code></a>,
 <a 
href="https://github.com/TanStack/query/commit/e69cac69d99cc3c4f6f32b2ad8aad53da83b4a72";><code>e69cac6</code></a>,
 <a 
href="https://github.com/TanStack/query/commit/f2215d25945e6461252b7c32bf822f31239e507e";><code>f2215d2</code></a>,
 <a 
href="https://github.com/TanStack/query/commit/86e79571fd45f29ab7d172102fdd718d3b8bde69";><code>86e7957</code></a>,
 <a 
href="https://github.com/TanStack/query/commit/b6576b388f2784839081358fa82744b0aacdeecd";><code>b6576b3</code></a>,
 <a 
href="https://github.com/TanStack/query/commit/af0e0ef5fc04e9d232fdc3aebd24ffe528b256d7";><code>af0e0ef</code></a>,
 <a 
href="https://github.com/TanStack/query/commit/05d9b6a40b9d4ac49943e9d881789e098db5bdfa";><code>05d9b6a</code></a>]:</p>
   <ul>
   <li><code>@​tanstack/query-core</code><a 
href="https://github.com/5";><code>@​5</code></a>.105.2</li>
   </ul>
   </li>
   </ul>
   <h2>5.105.1</h2>
   <h3>Patch Changes</h3>
   <ul>
   <li>
   <p><a 
href="https://redirect.github.com/TanStack/query/pull/11373";>#11373</a> <a 
href="https://github.com/TanStack/query/commit/7ccba6e959fcb9c51e691db9e2b09ff41d21e0b6";><code>7ccba6e</code></a>
 - fix({react,preact,angular,solid,vue}-query/infiniteQueryOptions): correct 
the overload selected for a possibly-undefined 'initialData'</p>
   </li>
   <li>
   <p><a 
href="https://redirect.github.com/TanStack/query/pull/12390";>#12390</a> <a 
href="https://github.com/TanStack/query/commit/18e54bfac3dc3756afdb8840418d831c61bc15bf";><code>18e54bf</code></a>
 - Exclude <code>fetchStatus</code> from the filters accepted by 
<code>QueryClient.isFetching</code>, <code>useIsFetching</code>, and 
<code>injectIsFetching</code>. These APIs always count queries with 
<code>fetchStatus: 'fetching'</code>.</p>
   </li>
   <li>
   <p>Updated dependencies [<a 
href="https://github.com/TanStack/query/commit/6f8a48d543b499b6d9b0e95050c28183c8c18ae0";><code>6f8a48d</code></a>,
 <a 
href="https://github.com/TanStack/query/commit/18e54bfac3dc3756afdb8840418d831c61bc15bf";><code>18e54bf</code></a>]:</p>
   <ul>
   <li><code>@​tanstack/query-core</code><a 
href="https://github.com/5";><code>@​5</code></a>.105.1</li>
   </ul>
   </li>
   </ul>
   </blockquote>
   </details>
   <details>
   <summary>Commits</summary>
   <ul>
   <li><a 
href="https://github.com/TanStack/query/commit/d6b2b643f64cf29d18563d326700b61cc09fd432";><code>d6b2b64</code></a>
 ci: Version Packages (<a 
href="https://github.com/TanStack/query/tree/HEAD/packages/react-query/issues/12476";>#12476</a>)</li>
   <li><a 
href="https://github.com/TanStack/query/commit/8d0dc278a728a97eb677b6f2baf37d1677c2edc1";><code>8d0dc27</code></a>
 fix(query-core): exclude status from mutation count filters (<a 
href="https://github.com/TanStack/query/tree/HEAD/packages/react-query/issues/12480";>#12480</a>)</li>
   <li><a 
href="https://github.com/TanStack/query/commit/1e1caa5a32847969f7157627cd805bd8103cd873";><code>1e1caa5</code></a>
 fix({react,preact}-query): set the observer options before subscribing (<a 
href="https://github.com/TanStack/query/tree/HEAD/packages/react-query/issues/12230";>#12230</a>)</li>
   <li><a 
href="https://github.com/TanStack/query/commit/a6be1cede9b69b56ee0bd6c84641dd3899c86ed2";><code>a6be1ce</code></a>
 ci: Version Packages (<a 
href="https://github.com/TanStack/query/tree/HEAD/packages/react-query/issues/12391";>#12391</a>)</li>
   <li><a 
href="https://github.com/TanStack/query/commit/979695d0a2daa8662bdfcbf9f4ae9c9805d97dec";><code>979695d</code></a>
 docs({react,preact,angular,solid,svelte,vue}-query): describe when the 
'Defin...</li>
   <li><a 
href="https://github.com/TanStack/query/commit/7ccba6e959fcb9c51e691db9e2b09ff41d21e0b6";><code>7ccba6e</code></a>
 fix({react,preact,angular,solid,vue}-query/infiniteQueryOptions): correct 
the...</li>
   <li><a 
href="https://github.com/TanStack/query/commit/18e54bfac3dc3756afdb8840418d831c61bc15bf";><code>18e54bf</code></a>
 fix(query-core): exclude fetchStatus from fetching filters (<a 
href="https://github.com/TanStack/query/tree/HEAD/packages/react-query/issues/12390";>#12390</a>)</li>
   <li>See full diff in <a 
href="https://github.com/TanStack/query/commits/@tanstack/[email protected]/packages/react-query";>compare
 view</a></li>
   </ul>
   </details>
   <br />
   
   Updates `@tanstack/react-virtual` from 3.14.24 to 3.14.25
   <details>
   <summary>Release notes</summary>
   <p><em>Sourced from <a 
href="https://github.com/TanStack/virtual/releases";>@​tanstack/react-virtual's 
releases</a>.</em></p>
   <blockquote>
   <h2><code>@​tanstack/react-virtual</code><a 
href="https://github.com/3";><code>@​3</code></a>.14.25</h2>
   <h3>Patch Changes</h3>
   <ul>
   <li>Updated dependencies [<a 
href="https://github.com/TanStack/virtual/commit/9d7ff6781767f1b9ea30ef69f42d72d8524ab75d";><code>9d7ff67</code></a>]:
   <ul>
   <li><code>@​tanstack/virtual-core</code><a 
href="https://github.com/3";><code>@​3</code></a>.19.10</li>
   </ul>
   </li>
   </ul>
   </blockquote>
   </details>
   <details>
   <summary>Changelog</summary>
   <p><em>Sourced from <a 
href="https://github.com/TanStack/virtual/blob/main/packages/react-virtual/CHANGELOG.md";>@​tanstack/react-virtual's
 changelog</a>.</em></p>
   <blockquote>
   <h2>3.14.25</h2>
   <h3>Patch Changes</h3>
   <ul>
   <li>Updated dependencies [<a 
href="https://github.com/TanStack/virtual/commit/9d7ff6781767f1b9ea30ef69f42d72d8524ab75d";><code>9d7ff67</code></a>]:
   <ul>
   <li><code>@​tanstack/virtual-core</code><a 
href="https://github.com/3";><code>@​3</code></a>.19.10</li>
   </ul>
   </li>
   </ul>
   </blockquote>
   </details>
   <details>
   <summary>Commits</summary>
   <ul>
   <li><a 
href="https://github.com/TanStack/virtual/commit/0a368c76950610227af7a5d3695e53877f9ad914";><code>0a368c7</code></a>
 ci: Version Packages (<a 
href="https://github.com/TanStack/virtual/tree/HEAD/packages/react-virtual/issues/1358";>#1358</a>)</li>
   <li>See full diff in <a 
href="https://github.com/TanStack/virtual/commits/@tanstack/[email protected]/packages/react-virtual";>compare
 view</a></li>
   </ul>
   </details>
   <br />
   
   Updates `@xyflow/react` from 12.12.0 to 12.12.1
   <details>
   <summary>Release notes</summary>
   <p><em>Sourced from <a 
href="https://github.com/xyflow/xyflow/releases";>@​xyflow/react's 
releases</a>.</em></p>
   <blockquote>
   <h2><code>@​xyflow/react</code><a 
href="https://github.com/12";><code>@​12</code></a>.12.1</h2>
   <h3>Patch Changes</h3>
   <ul>
   <li>
   <p><a href="https://redirect.github.com/xyflow/xyflow/pull/6068";>#6068</a> 
<a 
href="https://github.com/xyflow/xyflow/commit/7813eebf06ca22dadbeb7bb919ff8cd8388adcab";><code>7813eeb</code></a>
 - Cancel a pending click connection when clicking the pane and call 
<code>onClickConnectEnd</code> / <code>onclickconnectend</code></p>
   </li>
   <li>
   <p><a href="https://redirect.github.com/xyflow/xyflow/pull/6097";>#6097</a> 
<a 
href="https://github.com/xyflow/xyflow/commit/d150c38a46c4e6ded900676f4eafbbae60e37a4c";><code>d150c38</code></a>
 - Don't mutate the internal selection state</p>
   </li>
   <li>
   <p><a href="https://redirect.github.com/xyflow/xyflow/pull/5650";>#5650</a> 
<a 
href="https://github.com/xyflow/xyflow/commit/f7cddb9552be66bdd03d82f8387fba2e3ee7b6f9";><code>f7cddb9</code></a>
 - Infer the type of <code>pathOptions</code> in <code>EdgeProps</code> from 
the edge type instead of using <code>any</code>.</p>
   </li>
   <li>
   <p><a href="https://redirect.github.com/xyflow/xyflow/pull/6090";>#6090</a> 
<a 
href="https://github.com/xyflow/xyflow/commit/b235ea03677fa500b9474aedf0bdd35abaf76b78";><code>b235ea0</code></a>
 - Respect <code>nodeOrigin</code> in <code>isNodeIntersecting</code> and 
<code>getIntersectingNodes</code> when you pass a node object instead of 
<code>{ id }</code></p>
   </li>
   <li>
   <p><a href="https://redirect.github.com/xyflow/xyflow/pull/6054";>#6054</a> 
<a 
href="https://github.com/xyflow/xyflow/commit/c7d0fcb3372e234c33d2c87bec8d4c8394abab74";><code>c7d0fcb</code></a>
 - Disconnect the <code>ResizeObserver</code>s when a flow unmounts</p>
   </li>
   <li>
   <p>Updated dependencies [<a 
href="https://github.com/xyflow/xyflow/commit/d150c38a46c4e6ded900676f4eafbbae60e37a4c";><code>d150c38</code></a>,
 <a 
href="https://github.com/xyflow/xyflow/commit/8483a2f27d6f856ff595be4239cf736b118318c0";><code>8483a2f</code></a>,
 <a 
href="https://github.com/xyflow/xyflow/commit/c7d0fcb3372e234c33d2c87bec8d4c8394abab74";><code>c7d0fcb</code></a>,
 <a 
href="https://github.com/xyflow/xyflow/commit/9dcbd29a8e597b6f4cd26ebf64f755d2fb96332b";><code>9dcbd29</code></a>,
 <a 
href="https://github.com/xyflow/xyflow/commit/cba335d7cdb809fe274591985bfa377ca2e21bcf";><code>cba335d</code></a>]:</p>
   <ul>
   <li><code>@​xyflow/system</code><a 
href="https://github.com/0";><code>@​0</code></a>.0.84</li>
   </ul>
   </li>
   </ul>
   </blockquote>
   </details>
   <details>
   <summary>Changelog</summary>
   <p><em>Sourced from <a 
href="https://github.com/xyflow/xyflow/blob/main/packages/react/CHANGELOG.md";>@​xyflow/react's
 changelog</a>.</em></p>
   <blockquote>
   <h2>12.12.1</h2>
   <h3>Patch Changes</h3>
   <ul>
   <li>
   <p><a href="https://redirect.github.com/xyflow/xyflow/pull/6068";>#6068</a> 
<a 
href="https://github.com/xyflow/xyflow/commit/7813eebf06ca22dadbeb7bb919ff8cd8388adcab";><code>7813eeb</code></a>
 - Cancel a pending click connection when clicking the pane and call 
<code>onClickConnectEnd</code> / <code>onclickconnectend</code></p>
   </li>
   <li>
   <p><a href="https://redirect.github.com/xyflow/xyflow/pull/6097";>#6097</a> 
<a 
href="https://github.com/xyflow/xyflow/commit/d150c38a46c4e6ded900676f4eafbbae60e37a4c";><code>d150c38</code></a>
 - Don't mutate the internal selection state</p>
   </li>
   <li>
   <p><a href="https://redirect.github.com/xyflow/xyflow/pull/5650";>#5650</a> 
<a 
href="https://github.com/xyflow/xyflow/commit/f7cddb9552be66bdd03d82f8387fba2e3ee7b6f9";><code>f7cddb9</code></a>
 - Infer the type of <code>pathOptions</code> in <code>EdgeProps</code> from 
the edge type instead of using <code>any</code>.</p>
   </li>
   <li>
   <p><a href="https://redirect.github.com/xyflow/xyflow/pull/6090";>#6090</a> 
<a 
href="https://github.com/xyflow/xyflow/commit/b235ea03677fa500b9474aedf0bdd35abaf76b78";><code>b235ea0</code></a>
 - Respect <code>nodeOrigin</code> in <code>isNodeIntersecting</code> and 
<code>getIntersectingNodes</code> when you pass a node object instead of 
<code>{ id }</code></p>
   </li>
   <li>
   <p><a href="https://redirect.github.com/xyflow/xyflow/pull/6054";>#6054</a> 
<a 
href="https://github.com/xyflow/xyflow/commit/c7d0fcb3372e234c33d2c87bec8d4c8394abab74";><code>c7d0fcb</code></a>
 - Disconnect the <code>ResizeObserver</code>s when a flow unmounts</p>
   </li>
   <li>
   <p>Updated dependencies [<a 
href="https://github.com/xyflow/xyflow/commit/d150c38a46c4e6ded900676f4eafbbae60e37a4c";><code>d150c38</code></a>,
 <a 
href="https://github.com/xyflow/xyflow/commit/8483a2f27d6f856ff595be4239cf736b118318c0";><code>8483a2f</code></a>,
 <a 
href="https://github.com/xyflow/xyflow/commit/c7d0fcb3372e234c33d2c87bec8d4c8394abab74";><code>c7d0fcb</code></a>,
 <a 
href="https://github.com/xyflow/xyflow/commit/9dcbd29a8e597b6f4cd26ebf64f755d2fb96332b";><code>9dcbd29</code></a>,
 <a 
href="https://github.com/xyflow/xyflow/commit/cba335d7cdb809fe274591985bfa377ca2e21bcf";><code>cba335d</code></a>]:</p>
   <ul>
   <li><code>@​xyflow/system</code><a 
href="https://github.com/0";><code>@​0</code></a>.0.84</li>
   </ul>
   </li>
   </ul>
   </blockquote>
   </details>
   <details>
   <summary>Commits</summary>
   <ul>
   <li><a 
href="https://github.com/xyflow/xyflow/commit/7599c7f12e061d8befef36f3f3ced86f75938b8a";><code>7599c7f</code></a>
 chore(packages): bump</li>
   <li><a 
href="https://github.com/xyflow/xyflow/commit/d4bc936edad07aba995dbdb8e2c63af8cdd631c9";><code>d4bc936</code></a>
 Merge pull request <a 
href="https://github.com/xyflow/xyflow/tree/HEAD/packages/react/issues/5650";>#5650</a>
 from keepmhwn/fix/path-options-type</li>
   <li><a 
href="https://github.com/xyflow/xyflow/commit/c4fdcb1150e247b715545fc1b045a213daed37ce";><code>c4fdcb1</code></a>
 Merge pull request <a 
href="https://github.com/xyflow/xyflow/tree/HEAD/packages/react/issues/6097";>#6097</a>
 from xyflow/fix/internal-selection</li>
   <li><a 
href="https://github.com/xyflow/xyflow/commit/5c90af484a4eece91fb09aaae6cb6937e1b9da23";><code>5c90af4</code></a>
 fix(react): cleanup internal selection handling <a 
href="https://github.com/xyflow/xyflow/tree/HEAD/packages/react/issues/6096";>#6096</a></li>
   <li><a 
href="https://github.com/xyflow/xyflow/commit/93b7a917ff588906ceb88ab6cf13c3e89be2ca14";><code>93b7a91</code></a>
 chore(pane): cleanup</li>
   <li><a 
href="https://github.com/xyflow/xyflow/commit/7abb6f0683c42f4ff30d0013ad88afb537ee042d";><code>7abb6f0</code></a>
 Add Svelte pane cancellation and merge latest main</li>
   <li><a 
href="https://github.com/xyflow/xyflow/commit/b235ea03677fa500b9474aedf0bdd35abaf76b78";><code>b235ea0</code></a>
 fix: respect flow nodeOrigin in root node intersections</li>
   <li><a 
href="https://github.com/xyflow/xyflow/commit/22388dfee0b27c76faaeecbe09937ee1563cd1b1";><code>22388df</code></a>
 chore(useResizeHandler): cleanup</li>
   <li><a 
href="https://github.com/xyflow/xyflow/commit/7813eebf06ca22dadbeb7bb919ff8cd8388adcab";><code>7813eeb</code></a>
 fix(react): cancel click connections on pane click</li>
   <li><a 
href="https://github.com/xyflow/xyflow/commit/c7d0fcb3372e234c33d2c87bec8d4c8394abab74";><code>c7d0fcb</code></a>
 fix: disconnect ResizeObservers when a flow unmounts</li>
   <li>See full diff in <a 
href="https://github.com/xyflow/xyflow/commits/@xyflow/[email protected]/packages/react";>compare
 view</a></li>
   </ul>
   </details>
   <br />
   
   Updates `i18next` from 26.5.12 to 26.7.1
   <details>
   <summary>Release notes</summary>
   <p><em>Sourced from <a 
href="https://github.com/i18next/i18next/releases";>i18next's 
releases</a>.</em></p>
   <blockquote>
   <h2>v26.7.1</h2>
   <ul>
   <li>fix: <code>reloadResources()</code> retries the bundles that failed to 
load. The load queue skipped them also when reloading, so a language whose 
first load failed (a backend or network outage at startup) stayed missing. 
i18next-http-backend 4.0.8, i18next-chained-backend 5.0.7 and 
i18next-locize-backend 10.0.5 reload through <code>reloadResources()</code> 
with i18next 26.7, so their <code>reloadInterval</code> no longer recovered 
from such a failure, as their own reload did before.</li>
   <li>fix: <code>reloadResources()</code> without languages reloads the 
current languages and every language the backend loaded or tried to load, for 
the instance and its clones, as the API docs describe (&quot;pass languages and 
namespaces if you don't want to reload all&quot;). It reloaded only the current 
languages, so on a server (one clone per request with i18next-http-middleware) 
a backend's <code>reloadInterval</code> never refreshed the languages loaded 
for requests. It never requests <code>cimode</code>. With languages given, 
nothing changes.</li>
   </ul>
   <h2>v26.7.0</h2>
   <p>The last 26.x minor before v27, which follows in about a week. It adds 
the APIs v27 builds on, and with <code>debug: true</code> it warns wherever a 
setup relies on something v27 changes. Most of the v27 defaults are existing 
options, so you can try them now:</p>
   <pre lang="js"><code>i18next.init({
     debug: true, // prints the warnings below
     fallbackLng: 'en', // v27: fallbackLng defaults to false, set your source 
language (no implicit 'dev')
     returnEmptyString: false, // v27 default: an empty string falls back like 
a missing key
     cleanCode: true, // close to v27, which canonicalizes codes without a 
region ('EN' becomes 'en')
   });
   </code></pre>
   <pre lang="ts"><code>declare module 'i18next' {
     interface CustomTypeOptions {
       strictInterpolationChecks: true; // v27 default
       returnEmptyString: false; // v27 default
     }
   }
   </code></pre>
   <p>The other v27 changes (<code>/</code> no longer escaped in values, a 
logger and post-processors per instance, the key instead of a sentence for an 
object hit, the dotted-language store calls and <code>*Escaped</code> options 
removed) have no switch; the debug warnings below show where they apply.</p>
   <ul>
   <li>feat: with the default <code>skipOnVariables: true</code>, a missing 
interpolation variable is now logged in debug mode, once per string and 
variable: <code>missed to pass in variable name for interpolating Hello 
{{name}}</code>. The raw <code>{{name}}</code> reached the UI without any log 
line, even with <code>debug: true</code>, because the warning only ran with 
<code>skipOnVariables: false</code>. A variable passed as 
<code>undefined</code> and a <code>missingInterpolationHandler</code> still log 
nothing.</li>
   <li>feat: <code>i18next.hydrate(resources, lng)</code> puts resources 
rendered on the server into the store and changes to the server's language, 
each only the first time. It does what react-i18next's <code>useSSR</code> did 
by writing <code>resourceStore.data</code>, <code>options.ns</code>, 
<code>isInitialized</code>, <code>initializedStoreOnce</code> and 
<code>initializedLanguageOnce</code> directly, and sets the same flags, so 
integrations can switch to it and stay compatible with code that still reads or 
writes them. On a clone it does nothing, as <code>useSSR</code> does: a clone 
shares its parent's store (one clone per request with i18next-http-middleware). 
Called before <code>init()</code>, it logs a warning and changes nothing.</li>
   <li>feat: <code>services.utils.reloadResources()</code> lets a backend 
reload its bundles through i18next (as <code>i18next.reloadResources()</code>, 
with retries and the <code>loaded</code> event), instead of calling 
<code>backendConnector.read()</code> and <code>loaded()</code> itself as the 
<code>reloadInterval</code> of i18next-http-backend and i18next-chained-backend 
does. Without languages (no <code>lng</code>, no detector, the default 
<code>fallbackLng</code>), <code>reloadResources()</code> reloads nothing 
instead of throwing <code>Cannot read properties of undefined (reading 
'forEach')</code>; a backend that also reloads <code>preload</code> passes its 
languages.</li>
   <li>feat: backends and async language detectors can declare their calling 
convention with <code>callbackApi</code> (an instance or static property). 
<code>true</code>: <code>read(language, namespace, callback)</code>, 
<code>create(languages, namespace, key, fallbackValue, callback, 
options)</code> and <code>detect(callback)</code>; <code>false</code>: they 
return a promise or a value, and <code>create</code> gets the options as its 
fifth argument. Without it, i18next keeps guessing from the number of 
parameters (<code>Function.length</code>), which default and rest parameters 
change: i18next-chained-backend's <code>create(..., clb = () =&gt; {}, opts = 
{})</code> has length 4 and never got its options (<code>isUpdate</code>), and 
i18next-http-backend's callback form of <code>create</code> has length 5, the 
length reserved for the callback-less form. Guessing is deprecated: in debug 
mode an unmarked backend or async detector logs a deprecation warning, once per 
<code>init()</code>.
 </li>
   <li>feat: <code>isSafeLanguageCode(code)</code> is exported for plugins that 
take a language from a request, a URL or storage: letters, digits, 
<code>-</code>, <code>_</code>, <code>@</code> and <code>.</code> (no 
<code>..</code>), at most 128 characters, not a prototype key. It is not a BCP 
47 check, so <code>en_US</code>, <code>zh_Hant_TW</code>, <code>sr@latin</code> 
and <code>de_DE.UTF-8</code> pass; markup, slashes and spaces do not. The 
language detector, i18next-http-middleware and i18next-http-backend each have 
their own rule today.</li>
   <li>feat: <code>use()</code> logs a warning in debug mode when a second 
backend, language detector, <code>i18nFormat</code> or formatter replaces the 
first one; only one of each is used per instance, and losing an ICU setup this 
way was silent. As <code>use()</code> usually runs before <code>init()</code>, 
the warning is printed once <code>init()</code> has set up the logger.</li>
   <li>feat(types): <code>ParseKeysWithoutVariables&lt;Ns, KPrefix&gt;</code>, 
the keys <code>t()</code> takes without options: their string has no variables, 
and a plural key is left out when its forms take <code>count</code>. A wrapper 
typed with it, like <code>(key: ParseKeysWithoutVariables&lt;'common'&gt;) 
=&gt; t(key)</code>, compiles with <code>strictInterpolationChecks</code> 
without a cast.</li>
   <li>feat(types): <code>defaultVariables</code> in 
<code>CustomTypeOptions</code> declares the variables 
<code>interpolation.defaultVariables</code> fills in at runtime 
(<code>defaultVariables: { appName: string }</code>). They become optional in 
the <code>t()</code> options, also with <code>strictInterpolationChecks</code>; 
passed, they keep their type.</li>
   <li>feat(types): <code>interpolationFormatSeparator</code> in 
<code>CustomTypeOptions</code> for a custom 
<code>interpolation.formatSeparator</code>: the types split <code>{{price, 
currency}}</code> at a hard-coded <code>,</code>, so with 
<code>formatSeparator: ';'</code> the format was not recognized. The per-call 
<code>skipInterpolation</code> option is typed, and 
<code>returnedObjectHandler</code> may return a value (what it returns is what 
<code>t()</code> returns; it was typed as returning <code>void</code>).</li>
   <li>feat(types): <code>SelectorFn</code>, <code>ApplyTarget</code>, 
<code>ConstrainTarget</code> and <code>GetSource</code> are exported on 
purpose, under their current names. react-i18next imports them for 
<code>Trans</code>; they were importable only because every declaration in the 
type files counts as exported.</li>
   <li>fix(types): with <code>nsSeparator: false</code> in 
<code>CustomTypeOptions</code>, the key union no longer contains 
<code>nsfalsekey</code>-style keys for the other namespaces, and a key that 
contains the text <code>false</code> (<code>isfalsey</code>) is no longer split 
at it, which typed its <code>t()</code> result as <code>never</code>.</li>
   <li>fix: with clones (i18next-http-middleware makes one per request), 
<code>saveMissing</code> now checks that the namespace is loaded for the 
instance that misses the key. Each <code>cloneInstance()</code> pointed the 
parent's <code>services.utils.hasLoadedNamespace</code> at the new clone, and 
the backend connector, which all clones share, used that one: a key missing in 
one request was not saved (<code>did not save key ... as the namespace ... was 
not yet loaded</code>) while a newer request was still loading its language, 
and the parent's <code>services.utils</code> answered for the newest clone. A 
clone's <code>services.utils</code> is now bound to the clone, and the parent 
keeps its own. A direct <code>services.backendConnector.saveMissing()</code> 
call, like the missing keys route of i18next-http-middleware, still checks the 
newest clone (follow-up to <a 
href="https://redirect.github.com/i18next/i18next/issues/1413";>#1413</a>).</li>
   <li>fix: <code>dir()</code> without a language (before <code>init()</code>, 
or with no language resolved) returns <code>'ltr'</code> instead of 
<code>'rtl'</code> ([discussion <a 
href="https://redirect.github.com/i18next/i18next/issues/2135";>#2135</a>](<a 
href="https://github.com/i18next/i18next/discussions/2135";>https://github.com/i18next/i18next/discussions/2135</a>)).</li>
   <li>fix: <code>t()</code> before <code>init()</code> returns an empty 
string, as typed (with a warning when debug logging is already on); it returned 
<code>undefined</code>.</li>
   <li>fix: <code>off('a b', listener)</code> removes the listener from both 
events, as <code>on('a b', listener)</code> adds it to both. It looked for an 
event named <code>'a b'</code>, so <code>once('a b', listener)</code> never 
removed its listener and ran it on every event.</li>
   <li>deprecate: dotted languages in the resource store calls 
(<code>getResource('en.translation.key')</code>, 
<code>addResource('en.translation.key', value)</code>, 
<code>addResourceBundle('en.translation', resources)</code>) log a deprecation 
warning in debug mode; they are removed in v27. Pass language, namespace and 
key as separate arguments.</li>
   <li>deprecate: <code>interpolation.prefixEscaped</code>, 
<code>suffixEscaped</code>, <code>nestingPrefixEscaped</code> and 
<code>nestingSuffixEscaped</code> (inserted into the RegExp unescaped) log a 
deprecation warning in debug mode and are marked <code>@deprecated</code>; they 
are removed in v27. Pass the literal delimiters as <code>prefix</code>, 
<code>suffix</code>, <code>nestingPrefix</code> and 
<code>nestingSuffix</code>.</li>
   <li>deprecate: <code>compatibilityJSON</code> is marked 
<code>@deprecated</code> (it has no effect since v24) and removed from the 
types in v27.</li>
   <li>deprecate: a language code without a region that v27 canonicalizes 
differently logs a deprecation warning in debug mode: <code>'EN'</code> stays 
<code>'EN'</code> today and becomes <code>'en'</code> in v27, <code>'iw'</code> 
becomes <code>'he'</code>. <code>cleanCode: true</code> already lower-cases 
them.</li>
   <li>deprecate: when <code>fallbackLng</code> is not set, the first request 
for the default fallback language <code>dev</code> (loading it, or saving 
missing keys to it) logs a notice in debug mode: v27 defaults to 
<code>fallbackLng: false</code> and no longer requests <code>dev</code>. Set 
<code>fallbackLng</code> to your source language, or to <code>'dev'</code> to 
keep the current behavior.</li>
   <li>deprecate: in debug mode, a language code that comes from 
<code>lng</code>, <code>changeLanguage()</code> or the language detector, is 
not configured (<code>supportedLngs</code>, <code>fallbackLng</code>, 
<code>preload</code> or the resources) and fails 
<code>isSafeLanguageCode</code> logs a deprecation warning, once per code: 
without <code>supportedLngs</code>, a detector that returns 
<code>&quot;&gt;&lt;img src=x onerror=alert(1)&gt;</code> makes that string 
<code>i18next.language</code>, and apps put it into <code>&lt;html 
lang&gt;</code>. Nothing changes in 26.7; v27 is planned to refuse such codes 
and continue as with an unsupported code. Language codes are still not bound to 
a format.</li>
   <li>deprecate: the logger and post-processors are shared by all instances in 
v26 and per instance from v27 (clones keep their parent's). In debug mode, an 
instance that runs a post-processor only another instance registered with 
<code>use()</code> logs a deprecation warning (call <code>use()</code> on this 
instance too), and a non-clone <code>init()</code> that replaces the logger 
another instance set with <code>use()</code> logs one through that logger.</li>
   <li>deprecate: in debug mode, a value with a <code>/</code> under the 
default escape logs that v27 no longer escapes <code>/</code> 
(<code>$10/month</code> renders as <code>$10&amp;#x2F;month</code> today; not 
with <code>escapeValue: false</code>, where react-i18next's <code>Trans</code> 
escapes one call itself and decodes the entities afterwards), and an object or 
array hit without <code>returnObjects</code> logs that v27 returns the key 
instead of the sentence <code>key '... (en)' returned an object instead of 
string.</code>.</li>
   </ul>
   <!-- raw HTML omitted -->
   </blockquote>
   <p>... (truncated)</p>
   </details>
   <details>
   <summary>Changelog</summary>
   <p><em>Sourced from <a 
href="https://github.com/i18next/i18next/blob/master/CHANGELOG.md";>i18next's 
changelog</a>.</em></p>
   <blockquote>
   <h2>26.7.1</h2>
   <ul>
   <li>fix: <code>reloadResources()</code> retries the bundles that failed to 
load. The load queue skipped them also when reloading, so a language whose 
first load failed (a backend or network outage at startup) stayed missing. 
i18next-http-backend 4.0.8, i18next-chained-backend 5.0.7 and 
i18next-locize-backend 10.0.5 reload through <code>reloadResources()</code> 
with i18next 26.7, so their <code>reloadInterval</code> no longer recovered 
from such a failure, as their own reload did before.</li>
   <li>fix: <code>reloadResources()</code> without languages reloads the 
current languages and every language the backend loaded or tried to load, for 
the instance and its clones, as the API docs describe (&quot;pass languages and 
namespaces if you don't want to reload all&quot;). It reloaded only the current 
languages, so on a server (one clone per request with i18next-http-middleware) 
a backend's <code>reloadInterval</code> never refreshed the languages loaded 
for requests. It never requests <code>cimode</code>. With languages given, 
nothing changes.</li>
   </ul>
   <h2>26.7.0</h2>
   <p>The last 26.x minor before v27, which follows in about a week. It adds 
the APIs v27 builds on, and with <code>debug: true</code> it warns wherever a 
setup relies on something v27 changes. Most of the v27 defaults are existing 
options, so you can try them now:</p>
   <pre lang="js"><code>i18next.init({
     debug: true, // prints the warnings below
     fallbackLng: 'en', // v27: fallbackLng defaults to false, set your source 
language (no implicit 'dev')
     returnEmptyString: false, // v27 default: an empty string falls back like 
a missing key
     cleanCode: true, // close to v27, which canonicalizes codes without a 
region ('EN' becomes 'en')
   });
   </code></pre>
   <pre lang="ts"><code>declare module 'i18next' {
     interface CustomTypeOptions {
       strictInterpolationChecks: true; // v27 default
       returnEmptyString: false; // v27 default
     }
   }
   </code></pre>
   <p>The other v27 changes (<code>/</code> no longer escaped in values, a 
logger and post-processors per instance, the key instead of a sentence for an 
object hit, the dotted-language store calls and <code>*Escaped</code> options 
removed) have no switch; the debug warnings below show where they apply.</p>
   <ul>
   <li>feat: with the default <code>skipOnVariables: true</code>, a missing 
interpolation variable is now logged in debug mode, once per string and 
variable: <code>missed to pass in variable name for interpolating Hello 
{{name}}</code>. The raw <code>{{name}}</code> reached the UI without any log 
line, even with <code>debug: true</code>, because the warning only ran with 
<code>skipOnVariables: false</code>. A variable passed as 
<code>undefined</code> and a <code>missingInterpolationHandler</code> still log 
nothing.</li>
   <li>feat: <code>i18next.hydrate(resources, lng)</code> puts resources 
rendered on the server into the store and changes to the server's language, 
each only the first time. It does what react-i18next's <code>useSSR</code> did 
by writing <code>resourceStore.data</code>, <code>options.ns</code>, 
<code>isInitialized</code>, <code>initializedStoreOnce</code> and 
<code>initializedLanguageOnce</code> directly, and sets the same flags, so 
integrations can switch to it and stay compatible with code that still reads or 
writes them. On a clone it does nothing, as <code>useSSR</code> does: a clone 
shares its parent's store (one clone per request with i18next-http-middleware). 
Called before <code>init()</code>, it logs a warning and changes nothing.</li>
   <li>feat: <code>services.utils.reloadResources()</code> lets a backend 
reload its bundles through i18next (as <code>i18next.reloadResources()</code>, 
with retries and the <code>loaded</code> event), instead of calling 
<code>backendConnector.read()</code> and <code>loaded()</code> itself as the 
<code>reloadInterval</code> of i18next-http-backend and i18next-chained-backend 
does. Without languages (no <code>lng</code>, no detector, the default 
<code>fallbackLng</code>), <code>reloadResources()</code> reloads nothing 
instead of throwing <code>Cannot read properties of undefined (reading 
'forEach')</code>; a backend that also reloads <code>preload</code> passes its 
languages.</li>
   <li>feat: backends and async language detectors can declare their calling 
convention with <code>callbackApi</code> (an instance or static property). 
<code>true</code>: <code>read(language, namespace, callback)</code>, 
<code>create(languages, namespace, key, fallbackValue, callback, 
options)</code> and <code>detect(callback)</code>; <code>false</code>: they 
return a promise or a value, and <code>create</code> gets the options as its 
fifth argument. Without it, i18next keeps guessing from the number of 
parameters (<code>Function.length</code>), which default and rest parameters 
change: i18next-chained-backend's <code>create(..., clb = () =&gt; {}, opts = 
{})</code> has length 4 and never got its options (<code>isUpdate</code>), and 
i18next-http-backend's callback form of <code>create</code> has length 5, the 
length reserved for the callback-less form. Guessing is deprecated: in debug 
mode an unmarked backend or async detector logs a deprecation warning, once per 
<code>init()</code>.
 </li>
   <li>feat: <code>isSafeLanguageCode(code)</code> is exported for plugins that 
take a language from a request, a URL or storage: letters, digits, 
<code>-</code>, <code>_</code>, <code>@</code> and <code>.</code> (no 
<code>..</code>), at most 128 characters, not a prototype key. It is not a BCP 
47 check, so <code>en_US</code>, <code>zh_Hant_TW</code>, <code>sr@latin</code> 
and <code>de_DE.UTF-8</code> pass; markup, slashes and spaces do not. The 
language detector, i18next-http-middleware and i18next-http-backend each have 
their own rule today.</li>
   <li>feat: <code>use()</code> logs a warning in debug mode when a second 
backend, language detector, <code>i18nFormat</code> or formatter replaces the 
first one; only one of each is used per instance, and losing an ICU setup this 
way was silent. As <code>use()</code> usually runs before <code>init()</code>, 
the warning is printed once <code>init()</code> has set up the logger.</li>
   <li>feat(types): <code>ParseKeysWithoutVariables&lt;Ns, KPrefix&gt;</code>, 
the keys <code>t()</code> takes without options: their string has no variables, 
and a plural key is left out when its forms take <code>count</code>. A wrapper 
typed with it, like <code>(key: ParseKeysWithoutVariables&lt;'common'&gt;) 
=&gt; t(key)</code>, compiles with <code>strictInterpolationChecks</code> 
without a cast.</li>
   <li>feat(types): <code>defaultVariables</code> in 
<code>CustomTypeOptions</code> declares the variables 
<code>interpolation.defaultVariables</code> fills in at runtime 
(<code>defaultVariables: { appName: string }</code>). They become optional in 
the <code>t()</code> options, also with <code>strictInterpolationChecks</code>; 
passed, they keep their type.</li>
   <li>feat(types): <code>interpolationFormatSeparator</code> in 
<code>CustomTypeOptions</code> for a custom 
<code>interpolation.formatSeparator</code>: the types split <code>{{price, 
currency}}</code> at a hard-coded <code>,</code>, so with 
<code>formatSeparator: ';'</code> the format was not recognized. The per-call 
<code>skipInterpolation</code> option is typed, and 
<code>returnedObjectHandler</code> may return a value (what it returns is what 
<code>t()</code> returns; it was typed as returning <code>void</code>).</li>
   <li>feat(types): <code>SelectorFn</code>, <code>ApplyTarget</code>, 
<code>ConstrainTarget</code> and <code>GetSource</code> are exported on 
purpose, under their current names. react-i18next imports them for 
<code>Trans</code>; they were importable only because every declaration in the 
type files counts as exported.</li>
   <li>fix(types): with <code>nsSeparator: false</code> in 
<code>CustomTypeOptions</code>, the key union no longer contains 
<code>nsfalsekey</code>-style keys for the other namespaces, and a key that 
contains the text <code>false</code> (<code>isfalsey</code>) is no longer split 
at it, which typed its <code>t()</code> result as <code>never</code>.</li>
   <li>fix: with clones (i18next-http-middleware makes one per request), 
<code>saveMissing</code> now checks that the namespace is loaded for the 
instance that misses the key. Each <code>cloneInstance()</code> pointed the 
parent's <code>services.utils.hasLoadedNamespace</code> at the new clone, and 
the backend connector, which all clones share, used that one: a key missing in 
one request was not saved (<code>did not save key ... as the namespace ... was 
not yet loaded</code>) while a newer request was still loading its language, 
and the parent's <code>services.utils</code> answered for the newest clone. A 
clone's <code>services.utils</code> is now bound to the clone, and the parent 
keeps its own. A direct <code>services.backendConnector.saveMissing()</code> 
call, like the missing keys route of i18next-http-middleware, still checks the 
newest clone (follow-up to <a 
href="https://redirect.github.com/i18next/i18next/issues/1413";>#1413</a>).</li>
   <li>fix: <code>dir()</code> without a language (before <code>init()</code>, 
or with no language resolved) returns <code>'ltr'</code> instead of 
<code>'rtl'</code> ([discussion <a 
href="https://redirect.github.com/i18next/i18next/issues/2135";>#2135</a>](<a 
href="https://github.com/i18next/i18next/discussions/2135";>https://github.com/i18next/i18next/discussions/2135</a>)).</li>
   <li>fix: <code>t()</code> before <code>init()</code> returns an empty 
string, as typed (with a warning when debug logging is already on); it returned 
<code>undefined</code>.</li>
   <li>fix: <code>off('a b', listener)</code> removes the listener from both 
events, as <code>on('a b', listener)</code> adds it to both. It looked for an 
event named <code>'a b'</code>, so <code>once('a b', listener)</code> never 
removed its listener and ran it on every event.</li>
   <li>deprecate: dotted languages in the resource store calls 
(<code>getResource('en.translation.key')</code>, 
<code>addResource('en.translation.key', value)</code>, 
<code>addResourceBundle('en.translation', resources)</code>) log a deprecation 
warning in debug mode; they are removed in v27. Pass language, namespace and 
key as separate arguments.</li>
   <li>deprecate: <code>interpolation.prefixEscaped</code>, 
<code>suffixEscaped</code>, <code>nestingPrefixEscaped</code> and 
<code>nestingSuffixEscaped</code> (inserted into the RegExp unescaped) log a 
deprecation warning in debug mode and are marked <code>@deprecated</code>; they 
are removed in v27. Pass the literal delimiters as <code>prefix</code>, 
<code>suffix</code>, <code>nestingPrefix</code> and 
<code>nestingSuffix</code>.</li>
   <li>deprecate: <code>compatibilityJSON</code> is marked 
<code>@deprecated</code> (it has no effect since v24) and removed from the 
types in v27.</li>
   <li>deprecate: a language code without a region that v27 canonicalizes 
differently logs a deprecation warning in debug mode: <code>'EN'</code> stays 
<code>'EN'</code> today and becomes <code>'en'</code> in v27, <code>'iw'</code> 
becomes <code>'he'</code>. <code>cleanCode: true</code> already lower-cases 
them.</li>
   <li>deprecate: when <code>fallbackLng</code> is not set, the first request 
for the default fallback language <code>dev</code> (loading it, or saving 
missing keys to it) logs a notice in debug mode: v27 defaults to 
<code>fallbackLng: false</code> and no longer requests <code>dev</code>. Set 
<code>fallbackLng</code> to your source language, or to <code>'dev'</code> to 
keep the current behavior.</li>
   <li>deprecate: in debug mode, a language code that comes from 
<code>lng</code>, <code>changeLanguage()</code> or the language detector, is 
not configured (<code>supportedLngs</code>, <code>fallbackLng</code>, 
<code>preload</code> or the resources) and fails 
<code>isSafeLanguageCode</code> logs a deprecation warning, once per code: 
without <code>supportedLngs</code>, a detector that returns 
<code>&quot;&gt;&lt;img src=x onerror=alert(1)&gt;</code> makes that string 
<code>i18next.language</code>, and apps put it into <code>&lt;html 
lang&gt;</code>. Nothing changes in 26.7; v27 is planned to refuse such codes 
and continue as with an unsupported code. Language codes are still not bound to 
a format.</li>
   </ul>
   <!-- raw HTML omitted -->
   </blockquote>
   <p>... (truncated)</p>
   </details>
   <details>
   <summary>Commits</summary>
   <ul>
   <li><a 
href="https://github.com/i18next/i18next/commit/b84e4180d71d271b9ae1f19ebb668224069b435e";><code>b84e418</code></a>
 26.7.1</li>
   <li><a 
href="https://github.com/i18next/i18next/commit/0a9fc2e4275f570efc251d85df4daf426e02d34c";><code>0a9fc2e</code></a>
 changelog for 26.7.1</li>
   <li><a 
href="https://github.com/i18next/i18next/commit/61fae7e68f14ef055482ef1d4f1a7b48eef28445";><code>61fae7e</code></a>
 fix: reloadResources() retries bundles that failed and, without languages, 
re...</li>
   <li><a 
href="https://github.com/i18next/i18next/commit/70b64a28bf6477a70f7c4c1c5e9e6be421dd6653";><code>70b64a2</code></a>
 26.7.0</li>
   <li><a 
href="https://github.com/i18next/i18next/commit/f98d0c6ebb5d49e44da93da6d72bc76831a81b22";><code>f98d0c6</code></a>
 changelog for 26.7.0</li>
   <li><a 
href="https://github.com/i18next/i18next/commit/8e37fb24ae19e9c415daf3198a579480757bb16e";><code>8e37fb2</code></a>
 ci: type check the public types on TypeScript 5.0, the lowest of the peer 
range</li>
   <li><a 
href="https://github.com/i18next/i18next/commit/c976112c98ac4f85f4ecfdbeea00f235c512a0a8";><code>c976112</code></a>
 feat: hydrate() and services.utils.reloadResources for SSR integrations and 
b...</li>
   <li><a 
href="https://github.com/i18next/i18next/commit/9f426b2f9f480c416c517e8506668949a86e048f";><code>9f426b2</code></a>
 feat: debug warnings for a missing interpolation variable, a module replaced 
...</li>
   <li><a 
href="https://github.com/i18next/i18next/commit/1dbb93acc5eb594c7681dbed98e7553fc08f9bca";><code>1dbb93a</code></a>
 fix: with clones, saveMissing checks the namespaces of the instance that 
miss...</li>
   <li><a 
href="https://github.com/i18next/i18next/commit/3bfbe2e624f58299fc8d97a8772692a133af9247";><code>3bfbe2e</code></a>
 feat(types): ParseKeysWithoutVariables and defaultVariables for 
strictInterpo...</li>
   <li>Additional commits viewable in <a 
href="https://github.com/i18next/i18next/compare/v26.5.12...v26.7.1";>compare 
view</a></li>
   </ul>
   </details>
   <br />
   
   Updates `i18next-browser-languagedetector` from 8.2.4 to 8.3.0
   <details>
   <summary>Changelog</summary>
   <p><em>Sourced from <a 
href="https://github.com/i18next/i18next-browser-languageDetector/blob/master/CHANGELOG.md";>i18next-browser-languagedetector's
 changelog</a>.</em></p>
   <blockquote>
   <h3>8.3.0</h3>
   <ul>
   <li>security: a detected language must now have the shape i18next 26.7 
accepts for a language code from outside (its <code>isSafeLanguageCode</code>): 
letters, digits, <code>-</code>, <code>_</code>, <code>@</code> and 
<code>.</code> (no <code>..</code>), at most 128 characters. It replaces the 
list of XSS patterns, which missed values like 
<code>&lt;b&gt;x&lt;/b&gt;</code> or <code>&quot; onmouseover=&quot;x()</code> 
from the query string, a cookie or storage, which then became the language; 
apps put it into <code>&lt;html lang=&quot;...&quot;&gt;</code>. Compatibility 
note: a value with other characters (spaces, slashes, quotes) is now skipped 
and the next detector is used; codes like <code>en_US</code>, 
<code>zh_Hant_TW</code> or <code>sr@latin</code> still pass, and i18next 27 
refuses such codes from outside as well.</li>
   </ul>
   </blockquote>
   </details>
   <details>
   <summary>Commits</summary>
   <ul>
   <li><a 
href="https://github.com/i18next/i18next-browser-languageDetector/commit/8c4b09e4addf534d158f16b6446a9b9df184ae8c";><code>8c4b09e</code></a>
 8.3.0</li>
   <li><a 
href="https://github.com/i18next/i18next-browser-languageDetector/commit/3fbc31392b65bc8841a84c6998a0fbf0f73fa89e";><code>3fbc313</code></a>
 release</li>
   <li><a 
href="https://github.com/i18next/i18next-browser-languageDetector/commit/b85511fe71abf2e5b0dca60904d89c1a99bb1d4d";><code>b85511f</code></a>
 changelog for 8.3.0</li>
   <li><a 
href="https://github.com/i18next/i18next-browser-languageDetector/commit/979dcc32495ccc1794837fa3e6e6f44a11595596";><code>979dcc3</code></a>
 security: check the shape of a detected language instead of a list of XSS 
pat...</li>
   <li>See full diff in <a 
href="https://github.com/i18next/i18next-browser-languageDetector/compare/v8.2.4...v8.3.0";>compare
 view</a></li>
   </ul>
   </details>
   <br />
   
   Updates `i18next-http-backend` from 4.0.7 to 4.0.9
   <details>
   <summary>Changelog</summary>
   <p><em>Sourced from <a 
href="https://github.com/i18next/i18next-http-backend/blob/master/CHANGELOG.md";>i18next-http-backend's
 changelog</a>.</em></p>
   <blockquote>
   <h3>4.0.9</h3>
   <ul>
   <li>fix: with i18next 26.7.1 or later, <code>reloadInterval</code> reloads 
everything i18next loaded or tried to load through the backend: the current 
languages and the languages loaded for clones (one per request on a server), 
and it retries the bundles that failed. 4.0.8 passed the fallback and 
<code>preload</code> languages to i18next's <code>reloadResources()</code>, 
which skipped a bundle that had failed to load, so a language missing after an 
outage at startup stayed missing (the backend's own reload before 4.0.8 read it 
again). With older i18next nothing changes.</li>
   </ul>
   <h3>4.0.8</h3>
   <ul>
   <li>fix: with i18next 26.7.0 or later, <code>create</code> gets its 
callback. i18next 26.7.0 deprecates guessing the calling convention of a 
backend from the number of parameters of its methods; the backend now declares 
it with <code>callbackApi</code>, so i18next calls <code>read</code> and 
<code>create</code> with a callback (and passes <code>create</code> its 
options), and debug mode no longer logs the deprecation notice. Older i18next 
versions ignore it. <code>create(languages, namespace, key, fallbackValue, 
callback)</code> has five parameters, the number i18next reserved for the form 
without a callback, so i18next passed its options object as 
<code>callback</code>, and with a refused <code>lng</code> or <code>ns</code> 
value <code>create</code> called that object (a <code>TypeError</code> that 
i18next swallowed).</li>
   <li><code>reloadInterval</code> reloads through 
<code>services.utils.reloadResources</code> with i18next 26.7.0 or later (with 
i18next's retries and the <code>loaded</code> event) instead of calling 
i18next's internal backend connector. It reloads the same languages as before: 
the fallback and <code>preload</code> languages. With older i18next nothing 
changes.</li>
   </ul>
   </blockquote>
   </details>
   <details>
   <summary>Commits</summary>
   <ul>
   <li><a 
href="https://github.com/i18next/i18next-http-backend/commit/645ad0cce2685f74489eb3edcd99023d33fdead4";><code>645ad0c</code></a>
 4.0.9</li>
   <li><a 
href="https://github.com/i18next/i18next-http-backend/commit/a6085ce8555842ee29350e22cadeea4abf7905f5";><code>a6085ce</code></a>
 build</li>
   <li><a 
href="https://github.com/i18next/i18next-http-backend/commit/f615d3e6536692cfa64cdf179e309ca2c2cef6b6";><code>f615d3e</code></a>
 changelog for 4.0.9</li>
   <li><a 
href="https://github.com/i18next/i18next-http-backend/commit/8784f1246655ffce7047b43c0ef2e7c79287a898";><code>8784f12</code></a>
 fix: hand the reload to i18next 26.7.1 or later, which retries bundles that 
f...</li>
   <li><a 
href="https://github.com/i18next/i18next-http-backend/commit/b67479412f11a004eacd44e8ff21b8a883b48794";><code>b674794</code></a>
 4.0.8</li>
   <li><a 
href="https://github.com/i18next/i18next-http-backend/commit/03366f98e5ea5948353a35f8aed9f8dc4b53a513";><code>03366f9</code></a>
 build</li>
   <li><a 
href="https://github.com/i18next/i18next-http-backend/commit/31d62d8de29f7c547abfbaf800689d4c9b3d4a75";><code>31d62d8</code></a>
 changelog for 4.0.8</li>
   <li><a 
href="https://github.com/i18next/i18next-http-backend/commit/334dc53b15d520a43ea6505fca5c5d8b5417d361";><code>334dc53</code></a>
 fix: declare callbackApi, so i18next 26.7 calls create with its callback; 
rel...</li>
   <li><a 
href="https://github.com/i18next/i18next-http-backend/commit/9aec4e2a163cfb4617b19842baf944d62303333d";><code>9aec4e2</code></a>
 Bump i18next-http-backend from 4.0.2 to 4.0.4 in /example/vue (<a 
href="https://redirect.github.com/i18next/i18next-http-backend/issues/205";>#205</a>)</li>
   <li>See full diff in <a 
href="https://github.com/i18next/i18next-http-backend/compare/v4.0.7...v4.0.9";>compare
 view</a></li>
   </ul>
   </details>
   <br />
   
   Updates `react-i18next` from 17.1.9 to 17.1.11
   <details>
   <summary>Changelog</summary>
   <p><em>Sourced from <a 
href="https://github.com/i18next/react-i18next/blob/master/CHANGELOG.md";>react-i18next's
 changelog</a>.</em></p>
   <blockquote>
   <h2>17.1.11</h2>
   <ul>
   <li>fix(Trans): with i18next 26.7.0 or later and <code>debug: true</code>, 
the variables of object children are no longer logged as missing. When 
<code>Trans</code> interpolates before parsing (with <code>count</code>, 
<code>values</code>, <code>tOptions</code> or 
<code>interpolation.defaultVariables</code>), its <code>t()</code> call leaves 
the placeholders of object children like <code>{{ name }}</code> for after 
parsing, and i18next 26.7 logs each of them as <code>missed to pass in variable 
name</code>, although the output is right: <code>&lt;Trans count={n}&gt;Hello 
&lt;b&gt;{{ name }}&lt;/b&gt;, you have {{ count }} 
messages.&lt;/Trans&gt;</code> logged it for <code>name</code>. 
<code>Trans</code> now passes a <code>missingInterpolationHandler</code> to 
that call that does what i18next does without one (it keeps the placeholder, 
and a variable passed as <code>undefined</code> becomes empty), so the output 
is unchanged. It does not with <code>skipOnVariables: false</code>, a <
 code>missingInterpolationHandler</code> of your own, an i18nFormat plugin, or 
an escape function that would change the placeholders of the children.</li>
   </ul>
   <h2>17.1.10</h2>
   <ul>
   <li>fix(Trans): markup inside an interpolated value is no longer parsed as 
translation markup. <code>Trans</code> interpolates <code>values</code> (and 
<code>count</code>, values in <code>tOptions</code>, or the whole string when 
there are no children) before it parses the string. With 
<code>interpolation.escapeValue: false</code>, or with an i18nFormat plugin 
(i18next-icu, i18next-mf2, i18next-fluent), which inserts values without 
escaping whatever <code>escapeValue</code> says, a value like <code>&lt;0 
href=&quot;https://example.com&quot;&gt;x&lt;/0&gt;</code> was rendered as 
component 0 with that <code>href</code>, overriding the props of the component, 
and <code>&lt;strong&gt;x&lt;/strong&gt;</code> in a value became a real 
<code>&lt;strong&gt;</code>. <code>Trans</code> now escapes the values for this 
<code>t()</code> call (with a plugin, the string values in <code>values</code>) 
and decodes the entities after parsing, so such a value renders as text, and a 
<code>&quot;</code
 > in a value no longer closes an attribute like <code>&lt;Item 
 > title=&quot;{{name}}&quot; /&gt;</code>. <code>{{- var}}</code> stays the 
 > explicit way for a translator to insert a value unescaped. As with 
 > <code>shouldUnescape</code>, entities written in these translations (for 
 > example <code>&amp;amp;</code>) are now decoded instead of shown literally. 
 > Output with <code>escapeValue: true</code> and no plugin, with i18next-icu 
 > <code>escapeVariables: true</code>, and with children and no 
 > <code>values</code> or <code>count</code> is unchanged.</li>
   <li>fix(IcuTrans): the same for <code>IcuTrans</code> with 
<code>escapeValue: false</code> or an i18nFormat plugin: a value like 
<code>&lt;0&gt;x&lt;/0&gt;</code> no longer becomes the first component, and a 
value containing an entity like <code>&amp;amp;</code> is no longer decoded a 
second time.</li>
   </ul>
   </blockquote>
   </details>
   <details>
   <summary>Commits</summary>
   <ul>
   <li><a 
href="https://github.com/i18next/react-i18next/commit/541e2485cb1e6116a3c77c8062950bf242f16555";><code>541e248</code></a>
 17.1.11</li>
   <li><a 
href="https://github.com/i18next/react-i18next/commit/31325a146b8d3ba8cb86d6284e8823c06e4a3056";><code>31325a1</code></a>
 build</li>
   <li><a 
href="https://github.com/i18next/react-i18next/commit/5de4de11222b8bd3c383e3167d1edefd1c9b52a9";><code>5de4de1</code></a>
 changelog for 17.1.11</li>
   <li><a 
href="https://github.com/i18next/react-i18next/commit/5e78c78d884b3fdce3f5a38752a492a58b48dc94";><code>5e78c78</code></a>
 fix(Trans): no missing-variable debug warning from i18next 26.7 for the 
varia...</li>
   <li><a 
href="https://github.com/i18next/react-i18next/commit/983f5863786c5424b2aed6c49b440c1b9b4094e5";><code>983f586</code></a>
 17.1.10</li>
   <li><a 
href="https://github.com/i18next/react-i18next/commit/7c86836af5c94b7988b2864b400a4b64845e21af";><code>7c86836</code></a>
 build</li>
   <li><a 
href="https://github.com/i18next/react-i18next/commit/26c5467649facc0d52274c1bf6ffb0ece1670b7c";><code>26c5467</code></a>
 fix(Trans, IcuTrans): don't parse markup that comes from interpolated 
values</li>
   <li><a 
href="https://github.com/i18next/react-i18next/commit/16a017eeb6822d7bef3bdfb53493c74df38e71a1";><code>16a017e</code></a>
 docs: add Socket badge to README</li>
   <li>See full diff in <a 
href="https://github.com/i18next/react-i18next/compare/v17.1.9...v17.1.11";>compare
 view</a></li>
   </ul>
   </details>
   <br />
   
   Updates `react-resizable-panels` from 4.15.3 to 4.16.1
   <details>
   <summary>Release notes</summary>
   <p><em>Sourced from <a 
href="https://github.com/bvaughn/react-resizable-panels/releases";>react-resizable-panels's
 releases</a>.</em></p>
   <blockquote>
   <h2>4.16.1</h2>
   <ul>
   <li>Add a <code>split</code> entry to the <code>Workspace</code> 
<code>classNames</code> and <code>styles</code> props, for each split's 
<code>Group</code> (which now also has <code>data-split</code> and 
<code>data-split-id</code> attributes). Its CSS <code>gap</code> adds space 
between tabsets, and counts toward their minimum sizes like separators do. - <a 
href="https://redirect.github.com/bvaughn/react-resizable-panels/pull/783";>#783</a></li>
   <li>Fix dragging a <code>Workspace</code> separator ending after moving a 
few pixels (most often when resizing tabsets stacked vertically, or tabsets 
with tabs on the left or right). The size of each tabset's header, which counts 
toward its minimum size, could change by a pixel as the tabset was resized, 
because it was measured as the difference of two rounded sizes; that 
re-registered the tabset's panel, which interrupted the drag. It is now 
measured from exact sizes. - <a 
href="https://redirect.github.com/bvaughn/react-resizable-panels/pull/782";>#782</a></li>
   <li>Fix <code>Workspace</code> tabsets and splits rendering their model node 
ids as element ids, which could match other elements on the page (e.g. a tabset 
with the id <code>&quot;root&quot;</code> matched an application's 
<code>&lt;div id=&quot;root&quot;&gt;</code>, and its styles) or the elements 
of another workspace with the same model. Their elements' ids are now unique 
within the page. - <a 
href="https://redirect.github.com/bvaughn/react-resizable-panels/pull/784";>#784</a></li>
   <li>Fix pressing a tab at the edge of a tabset, in a <code>Workspace</code> 
without separators, both resizing the tabset and dragging the tab. Resizing 
takes priority, as it does for other elements at the edges of panels. - <a 
href="https://redirect.github.com/bvaughn/react-resizable-panels/pull/784";>#784</a></li>
   </ul>
   <h2>4.16.0</h2>
   <ul>
   <li>Add <code>Workspace</code> component, for layouts of tabsets that users 
can rearrange by dragging tabs: between tabsets, within a tabset's list of 
tabs, or onto the edge of a tabset to split it. Tabsets can also be resized and 
maximized. The layout is described by a serializable model, and tab content is 
not remounted when a tab is moved. - <a 
href="https://redirect.github.com/bvaughn/react-resizable-panels/pull/780";>#780</a>
   <ul>
   <li>Tabsets can be customized with the <code>renderTab</code>, 
<code>renderTabsetToolbar</code>, and <code>renderEmptyTabset</code> props (and 
the <code>TabCloseButton</code> component), and styled with the 
<code>classNames</code> and <code>styles</code> props.</li>
   <li>Workspaces are uncontrolled (like <code>Group</code>); the 
<code>useWorkspaceRef</code> and <code>useWorkspaceCallbackRef</code> hooks 
return its imperative API.</li>
   <li>Content within a workspace can use the <code>useParentWorkspace</code>, 
<code>useParentTabset</code>, <code>useParentTabsetState</code>, 
<code>useParentTab</code>, and <code>useParentTabState</code> hooks.</li>
   <li>The content of tabs that aren't selected can stay mounted (default), be 
unmounted, or be rendered within a hidden React <code>&lt;Activity&gt;</code> 
(<code>hiddenTabBehavior</code>), and selected tabs' content can opt into 
server rendering (<code>serverRenderTabContent</code>).</li>
   <li>Supports mouse, touch, and keyboard interaction.</li>
   </ul>
   </li>
   <li>Fix separators (and grid gridlines) moving farther or less far than the 
pointer when an ancestor has CSS <code>zoom</code> or a scale transform (e.g. 
twice as far within <code>zoom: 2</code>). Pointer movements are now converted 
from screen pixels to layout pixels before resizing. - <a 
href="https://redirect.github.com/bvaughn/react-resizable-panels/pull/780";>#780</a></li>
   <li>Fix separators staying in their &quot;hover&quot; state when the pointer 
moves onto an iframe within a <code>Group</code> rendered into another window 
(e.g. a popup). The iframe check no longer uses <code>instanceof 
HTMLIFrameElement</code>, which is false for iframes from another window. - <a 
href="https://redirect.github.com/bvaughn/react-resizable-panels/pull/778";>#778</a></li>
   <li>Fix the separator resize preview 
(<code>resizePreviewMode=&quot;separator&quot;</code>) missing the separator's 
styles when its element was created by another window's document (e.g. by a 
popup's opener). - <a 
href="https://redirect.github.com/bvaughn/react-resizable-panels/pull/781";>#781</a></li>
   </ul>
   </blockquote>
   </details>
   <details>
   <summary>Changelog</summary>
   <p><em>Sourced from <a 
href="https://github.com/bvaughn/react-resizable-panels/blob/main/CHANGELOG.md";>react-resizable-panels's
 changelog</a>.</em></p>
   <blockquote>
   <h2>4.16.1</h2>
   <ul>
   <li>Add a <code>split</code> entry to the <code>Workspace</code> 
<code>classNames</code> and <code>styles</code> props, for each split's 
<code>Group</code> (which now also has <code>data-split</code> and 
<code>data-split-id</code> attributes). Its CSS <code>gap</code> adds space 
between tabsets, and counts toward their minimum sizes like separators do. - <a 
href="https://redirect.github.com/bvaughn/react-resizable-panels/pull/783";>#783</a></li>
   <li>Fix dragging a <code>Workspace</code> separator ending after moving a 
few pixels (most often when resizing tabsets stacked vertically, or tabsets 
with tabs on the left or right). The size of each tabset's header, which counts 
toward its minimum size, could change by a pixel as the tabset was resized, 
because it was measured as the difference of two rounded sizes; that 
re-registered the tabset's panel, which interrupted the drag. It is now 
measured from exact sizes. - <a 
href="https://redirect.github.com/bvaughn/react-resizable-panels/pull/782";>#782</a></li>
   <li>Fix <code>Workspace</code> tabsets and splits rendering their model node 
ids as element ids, which could match other elements on the page (e.g. a tabset 
with the id <code>&quot;root&quot;</code> matched an application's 
<code>&lt;div id=&quot;root&quot;&gt;</code>, and its styles) or the elements 
of another workspace with the same model. Their elements' ids are now unique 
within the page. - <a href="https://redirect...
   
   _Description has been truncated_


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to