Skip to content

[charts] Let keyboard navigation avoid overflow and handle nullish values#20757

Merged
alexfauquette merged 5 commits intomui:masterfrom
alexfauquette:handle-null-values
Jan 6, 2026
Merged

[charts] Let keyboard navigation avoid overflow and handle nullish values#20757
alexfauquette merged 5 commits intomui:masterfrom
alexfauquette:handle-null-values

Conversation

@alexfauquette
Copy link
Copy Markdown
Member

@alexfauquette alexfauquette commented Dec 23, 2025

Fix #20746

There are some edge-cases into handling undefined values due to arrays with different sizes.

To test this, I played with the https://deploy-preview-20757--material-ui-x.netlify.app/x/react-charts/lines/#skip-missing-points demo by adding enableKeyboardNavigation props

@alexfauquette alexfauquette requested a review from a team as a code owner December 23, 2025 12:39
@alexfauquette alexfauquette added accessibility a11y type: enhancement It’s an improvement, but we can’t make up our mind whether it's a bug fix or a new feature. scope: charts Changes related to the charts. labels Dec 23, 2025
@mui-bot
Copy link
Copy Markdown

mui-bot commented Dec 23, 2025

Deploy preview: https://deploy-preview-20757--material-ui-x.netlify.app/

Bundle size report

Bundle Parsed size Gzip size
@mui/x-data-grid 0B(0.00%) 0B(0.00%)
@mui/x-data-grid-pro 0B(0.00%) 0B(0.00%)
@mui/x-data-grid-premium 0B(0.00%) 0B(0.00%)
@mui/x-charts ▼-238B(-0.07%) ▼-53B(-0.05%)
@mui/x-charts-pro ▼-238B(-0.05%) ▼-39B(-0.03%)
@mui/x-charts-premium ▼-238B(-0.05%) ▼-74B(-0.05%)
@mui/x-date-pickers 0B(0.00%) 0B(0.00%)
@mui/x-date-pickers-pro 0B(0.00%) 0B(0.00%)
@mui/x-tree-view 0B(0.00%) 0B(0.00%)
@mui/x-tree-view-pro 0B(0.00%) 0B(0.00%)

Details of bundle changes

Generated by 🚫 dangerJS against 71921d9

@codspeed-hq
Copy link
Copy Markdown

codspeed-hq bot commented Dec 23, 2025

CodSpeed Performance Report

Merging #20757 will not alter performance

Comparing alexfauquette:handle-null-values (71921d9) with master (ac33a80)1

Summary

✅ 14 untouched

Footnotes

  1. No successful run was found on master (e817dd6) during the generation of this report, so ac33a80 was used instead as the comparison base. There might be some changes unrelated to this pull request in this report.

@bernardobelchior bernardobelchior dismissed their stale review December 24, 2025 10:07

Didn't mean to approve

@bernardobelchior
Copy link
Copy Markdown
Member

Screen.Recording.2025-12-24.at.10.07.13.mov

@alexfauquette
Copy link
Copy Markdown
Member Author

alexfauquette commented Dec 29, 2025

@bernardobelchior If I resume your question, it's:

When the next series does not have a value for the given index, should we move to the the next series with a value.

Examples

For example with the data in the following table, If I focus on series A at x=1, Arrow Down should the focus goes to :

  • series C with x=1 : We skip the series that don'ts have values at a given index
  • series B with x = 3 : We go to the next series but skip missing values
  • series B with x = 5 : We go to the next series but skip missing values. Since it's arrow down we search for values with a negative step
x 1 2 3 4 5
series A 3 4 null null null
series B null null 10 11 12
series C 8 null null null 8

The current implementation is the last one. I find it easier to navigate, because (IMO) it's the best way to split navigation between series and indexes.

Impact of the different solutions

With the current solution arrow up/down moves the focus from one series to the other. It can impact the item index, but it never skip series.

The proposed solution skip series when no data is available. So as long as you do not manage to find an index in common, you can not move to the next series. In the table bellow it's would not be possible to move from series A to B. Because focus on series A is trapped in x<=2 and series B can only be reached with x>=3 😈

@JCQuintas
Copy link
Copy Markdown
Member

@alexfauquette the current solution is dependant on the current position, so it feels a bit non-deterministic.

In the video below, I just press "down" and it initially goes to red (same index), then to the end of yellow (last index), then to blue (last non-null index), then to red (i suppose it goes to the last non-null index before the blue index?)

Screen.Recording.2025-12-29.at.12.45.52.mov

This is confusing, and it happens in many variations. If I go down I should always pass through the same three(in this case) values, if I go up, I should pass through the same 3 values in the reverse order.

@JCQuintas
Copy link
Copy Markdown
Member

I've also noticed we are using up as next series, shouldn't it be down for next series?

right/down next
left/top previous

we might need to adapt based on rtl eventually too 😅

@alexfauquette
Copy link
Copy Markdown
Member Author

Resume of the issues

If you press arrow down, you end up in a loop, but after few steps.

image

If I go down I should always pass through the same three(in this case) values, if I go up, I should pass through the same 3 values in the reverse order.

That's not feasible, except if we keep in memory the history of last focused items. And not sure it's something we want.

Behavior if we respect the "loop consistency"

Here are two scenarios where you start from different points and only press arrow down. At some point both ends up on the same yellow item.

To always loop on the same 3 items, we need to have different behavior on this yellow item according to the item previously focused.

image

Why it's impossible

To respect this rule, we need to link each item of a series with a unique item of the next series. Which is not feasible if series don't have the same number of items. The simpler case being the following two series.

We can have a consistent loop for the second blue item. But for the first one?

  • first solution: we keep in memory the previous item and consistently loop on them. But when yellow is focused, you've now way to know where you will go since it depends from where you come from
  • second solution: we accept to have inconsistency, goes to yellow and from it loop with the last blue item
image

Conclusion

So the 3 solutions are

  • keep an history of focused item: sounds like over engineered and the behavior is trading some weird behavior for other weird behaviors
  • keep the current solution. Maybe with some improvement. Like not going from first to last item.
  • Allow focus to land on null values. but to do that we will need to find a way to visualize empty values. Since those are for bar/line we could display the axis highlight without focus item

@alexfauquette alexfauquette changed the title [charts] Let keyboard navigation skip nullable value [charts] Let keyboard navigation avoid overflow and handle nullish values Dec 30, 2025
@bernardobelchior
Copy link
Copy Markdown
Member

image

I think the biggest issue with this behavior is that it requires users to have a mental representation of the series order so they can predict what the data point of the previous series will be.

I was searching through the ARIA APG, but couldn't find a good example to use in this case.

However, having memory also creates weird use cases where a user also needs to have a mental representation of where they come from to be able to predict where they're going next.

As such, I think the current behavior is acceptable since the alternatives aren't that much better.

The only change we might want to do is using the closest point instead of always the previous/next? Might be a bit more intuitive, but up for discussion.

Copy link
Copy Markdown
Member

@JCQuintas JCQuintas left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The current solution to use the axis highlight to display the current series even on null values looks good to me.

The behaviour is predictable and it is clear where the user currently is at.

nice work 👍

@alexfauquette alexfauquette merged commit 0fb2b7b into mui:master Jan 6, 2026
22 checks passed
736-c41-2c1-e464fc974 added a commit to Swiss-Armed-Forces/Loom that referenced this pull request Jan 14, 2026
This MR contains the following updates:

| Package | Type | Update | Change | OpenSSF |
|---|---|---|---|---|
| [@mui/x-charts](https://mui.com/x/react-charts/) ([source](https://github.com/mui/mui-x/tree/HEAD/packages/x-charts)) | dependencies | minor | [`8.23.0` → `8.24.0`](https://renovatebot.com/diffs/npm/@mui%2fx-charts/8.23.0/8.24.0) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/mui/mui-x/badge)](https://securityscorecards.dev/viewer/?uri=github.com/mui/mui-x) |
| [@mui/x-tree-view](https://mui.com/x/react-tree-view/) ([source](https://github.com/mui/mui-x/tree/HEAD/packages/x-tree-view)) | dependencies | minor | [`8.23.0` → `8.24.0`](https://renovatebot.com/diffs/npm/@mui%2fx-tree-view/8.23.0/8.24.0) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/mui/mui-x/badge)](https://securityscorecards.dev/viewer/?uri=github.com/mui/mui-x) |
| [@openapitools/openapi-generator-cli](https://github.com/OpenAPITools/openapi-generator-cli) | devDependencies | minor | [`2.26.0` → `2.27.0`](https://renovatebot.com/diffs/npm/@openapitools%2fopenapi-generator-cli/2.26.0/2.27.0) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/OpenAPITools/openapi-generator-cli/badge)](https://securityscorecards.dev/viewer/?uri=github.com/OpenAPITools/openapi-generator-cli) |
| [@typescript-eslint/eslint-plugin](https://typescript-eslint.io/packages/eslint-plugin) ([source](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin)) | devDependencies | minor | [`8.51.0` → `8.53.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2feslint-plugin/8.51.0/8.53.0) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/typescript-eslint/typescript-eslint/badge)](https://securityscorecards.dev/viewer/?uri=github.com/typescript-eslint/typescript-eslint) |
| [@typescript-eslint/parser](https://typescript-eslint.io/packages/parser) ([source](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser)) | devDependencies | minor | [`8.51.0` → `8.53.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2fparser/8.51.0/8.53.0) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/typescript-eslint/typescript-eslint/badge)](https://securityscorecards.dev/viewer/?uri=github.com/typescript-eslint/typescript-eslint) |
| [react-router-dom](https://github.com/remix-run/react-router) ([source](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom)) | dependencies | minor | [`7.11.0` → `7.12.0`](https://renovatebot.com/diffs/npm/react-router-dom/7.11.0/7.12.0) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/remix-run/react-router/badge)](https://securityscorecards.dev/viewer/?uri=github.com/remix-run/react-router) |

---

### Release Notes

<details>
<summary>mui/mui-x (@&#8203;mui/x-charts)</summary>

### [`v8.24.0`](https://github.com/mui/mui-x/blob/HEAD/CHANGELOG.md#8240)

[Compare Source](mui/mui-x@v8.23.0...v8.24.0)

*Jan 8, 2026*

We'd like to extend a big thank you to the 12 contributors who made this release possible. Here are some highlights ✨:

- ⚡️Add bar [batch renderer](https://mui.com/x/react-charts/bars/#performance), result in a significant performance improvement when rendering thousands of bars
- 📊 Add [range bar chart](https://mui.com/x/react-charts/range-bar/) to render
  ![image](https://github.com/user-attachments/assets/4112c09b-d841-42f7-a0c8-d23b61c23ca0)
- 🌎 Improved Danish (da-DK) and Japanese (ja-JP) locales on the Data Grid

Special thanks go out to these community members for their valuable contributions:
[@&#8203;anders-noerrelykke](https://github.com/anders-noerrelykke), [@&#8203;auloin](https://github.com/auloin), [@&#8203;sai6855](https://github.com/sai6855), [@&#8203;yuito-it](https://github.com/yuito-it)

The following team members contributed to this release:
[@&#8203;alelthomas](https://github.com/alelthomas), [@&#8203;alexfauquette](https://github.com/alexfauquette), [@&#8203;arminmeh](https://github.com/arminmeh), [@&#8203;bernardobelchior](https://github.com/bernardobelchior), [@&#8203;flaviendelangle](https://github.com/flaviendelangle), [@&#8203;JCQuintas](https://github.com/JCQuintas), [@&#8203;mapache-salvaje](https://github.com/mapache-salvaje), [@&#8203;siriwatknp](https://github.com/siriwatknp)

##### Data Grid

##### `@mui/[email protected]`

- \[l10n] Improve Danish (da-DK) locale ([#&#8203;20828](mui/mui-x#20828)) [@&#8203;anders-noerrelykke](https://github.com/anders-noerrelykke)
- \[l10n] Improve Japanese (ja-JP) locale ([#&#8203;20251](mui/mui-x#20251)) [@&#8203;yuito-it](https://github.com/yuito-it)

##### `@mui/[email protected]` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link "Pro plan")

Same changes as in `@mui/[email protected]`, plus:

- \[DataGridPro] Fix header filter height for `density="compact"` ([#&#8203;20834](mui/mui-x#20834)) [@&#8203;arminmeh](https://github.com/arminmeh)

##### `@mui/[email protected]` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link "Premium plan")

Same changes as in `@mui/[email protected]`.

##### Date and Time Pickers

##### `@mui/[email protected]`

- \[pickers] Fix Styles applied to PickersDay when MuiPickersDay-dayOutsideMonth is used ([#&#8203;20719](mui/mui-x#20719)) [@&#8203;sai6855](https://github.com/sai6855)

##### `@mui/[email protected]` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link "Pro plan")

Same changes as in `@mui/[email protected]`.

##### Charts

##### `@mui/[email protected]`

- \[charts] Add `VisibilityManager` logic to allow managing series/items ([#&#8203;20571](mui/mui-x#20571)) [@&#8203;JCQuintas](https://github.com/JCQuintas)
- \[charts] Add `identifierSerializer` configuration ([#&#8203;20775](mui/mui-x#20775)) [@&#8203;JCQuintas](https://github.com/JCQuintas)
- \[charts] Add `serializeIdentifier` instance function ([#&#8203;20791](mui/mui-x#20791)) [@&#8203;JCQuintas](https://github.com/JCQuintas)
- \[charts] Add bar batch renderer ([#&#8203;20457](mui/mui-x#20457)) [@&#8203;bernardobelchior](https://github.com/bernardobelchior)
- \[charts] Allow animating bar, line, and pie elements to hidden state ([#&#8203;20798](mui/mui-x#20798)) [@&#8203;JCQuintas](https://github.com/JCQuintas)
- \[charts] Fix failing lint step ([#&#8203;20813](mui/mui-x#20813)) [@&#8203;bernardobelchior](https://github.com/bernardobelchior)
- \[charts] Fix tooltip anchored to item ([#&#8203;20783](mui/mui-x#20783)) [@&#8203;alexfauquette](https://github.com/alexfauquette)
- \[charts] Fix type casting in getCategoryAxisConfig and applySeriesLayout functions ([#&#8203;20797](mui/mui-x#20797)) [@&#8203;sai6855](https://github.com/sai6855)
- \[charts] Let keyboard navigation avoid overflow and handle nullish values ([#&#8203;20757](mui/mui-x#20757)) [@&#8203;alexfauquette](https://github.com/alexfauquette)
- \[charts] Refactor `PieChart` and `PieChartPro` to use `slots` and `slotProps` directly ([#&#8203;20795](mui/mui-x#20795)) [@&#8203;sai6855](https://github.com/sai6855)
- \[charts] Refactor `useRegisterPointerEventHandlers` ([#&#8203;20824](mui/mui-x#20824)) [@&#8203;bernardobelchior](https://github.com/bernardobelchior)
- \[charts] Update legend types to allow hiding/showing items ([#&#8203;20784](mui/mui-x#20784)) [@&#8203;JCQuintas](https://github.com/JCQuintas)

##### `@mui/[email protected]` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link "Pro plan")

Same changes as in `@mui/[email protected]`, plus:

- \[charts-pro] Pass `slotProps.toolbar` to `Toolbar` in `PieChartPro` ([#&#8203;20796](mui/mui-x#20796)) [@&#8203;sai6855](https://github.com/sai6855)

##### `@mui/[email protected]` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link "Premium plan")

Same changes as in `@mui/[email protected]`, plus:

- \[charts-premium] Add range bar chart ([#&#8203;20275](mui/mui-x#20275)) [@&#8203;bernardobelchior](https://github.com/bernardobelchior)

##### Tree View

##### `@mui/[email protected]`

- \[tree view] Introduce a Tree View Store to clean the internals ([#&#8203;20051](mui/mui-x#20051)) [@&#8203;flaviendelangle](https://github.com/flaviendelangle)

##### `@mui/[email protected]` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link "Pro plan")

Same changes as in `@mui/[email protected]`.

##### Codemod

##### `@mui/[email protected]`

Internal changes.

##### Docs

- \[docs] Fix axis size default values ([#&#8203;20799](mui/mui-x#20799)) [@&#8203;bernardobelchior](https://github.com/bernardobelchior)
- \[docs] Update What's New in MUI X page with post v8 features (DX-118) ([#&#8203;20787](mui/mui-x#20787)) [@&#8203;alelthomas](https://github.com/alelthomas)
- \[docs] Fix `onAccept`'s `context.source` documentation to use 'view' instead of 'picker' ([#&#8203;20465](mui/mui-x#20465)) [@&#8203;auloin](https://github.com/auloin)
- \[docs] Revise the Charts Brush doc ([#&#8203;20792](mui/mui-x#20792)) [@&#8203;mapache-salvaje](https://github.com/mapache-salvaje)
- \[docs] Revise the Charts Highlighting doc ([#&#8203;20788](mui/mui-x#20788)) [@&#8203;mapache-salvaje](https://github.com/mapache-salvaje)
- \[docs] Revise the Charts Label doc ([#&#8203;20794](mui/mui-x#20794)) [@&#8203;mapache-salvaje](https://github.com/mapache-salvaje)
- \[docs] Revise the Charts Export doc ([#&#8203;20779](mui/mui-x#20779)) [@&#8203;mapache-salvaje](https://github.com/mapache-salvaje)

##### Core

- \[code-infra] Fix v8.23.0 release date ([#&#8203;20767](mui/mui-x#20767)) [@&#8203;bernardobelchior](https://github.com/bernardobelchior)
- \[code-infra] Remove `glob-gitignore` ([#&#8203;20801](mui/mui-x#20801)) [@&#8203;bernardobelchior](https://github.com/bernardobelchior)
- \[code-infra] Remove `nyc` ([#&#8203;20804](mui/mui-x#20804)) [@&#8203;bernardobelchior](https://github.com/bernardobelchior)
- \[code-infra] Remove `stream-browserify` and `null-loader` ([#&#8203;20805](mui/mui-x#20805)) [@&#8203;bernardobelchior](https://github.com/bernardobelchior)
- \[code-infra] Remove `stylelint-config-tailwindcss` ([#&#8203;20807](mui/mui-x#20807)) [@&#8203;bernardobelchior](https://github.com/bernardobelchior)
- \[code-infra] Remove unused `path` package ([#&#8203;20802](mui/mui-x#20802)) [@&#8203;bernardobelchior](https://github.com/bernardobelchior)
- \[code-infra] Retry flaky e2e test on webkit ([#&#8203;20806](mui/mui-x#20806)) [@&#8203;JCQuintas](https://github.com/JCQuintas)
- \[internal] Add `internal` slot to properly generate components CSS layer ([#&#8203;20763](mui/mui-x#20763)) [@&#8203;siriwatknp](https://github.com/siriwatknp)

</details>

<details>
<summary>OpenAPITools/openapi-generator-cli (@&#8203;openapitools/openapi-generator-cli)</summary>

### [`v2.27.0`](https://github.com/OpenAPITools/openapi-generator-cli/releases/tag/v2.27.0)

[Compare Source](OpenAPITools/openapi-generator-cli@v2.26.0...v2.27.0)

##### Features

- **config:** add support for environment variable placeholders in config ([#&#8203;1031](OpenAPITools/openapi-generator-cli#1031)) ([1cd2614](OpenAPITools/openapi-generator-cli@1cd2614))

</details>

<details>
<summary>typescript-eslint/typescript-eslint (@&#8203;typescript-eslint/eslint-plugin)</summary>

### [`v8.53.0`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#8530-2026-01-12)

[Compare Source](typescript-eslint/typescript-eslint@v8.52.0...v8.53.0)

##### 🚀 Features

- **eslint-plugin:** add rule \[strict-void-return] ([#&#8203;9707](typescript-eslint/typescript-eslint#9707))
- **eslint-plugin:** \[no-unused-vars] add a fixer to remove unused imports ([#&#8203;11922](typescript-eslint/typescript-eslint#11922))

##### 🩹 Fixes

- **eslint-plugin:** \[no-useless-default-assignment] fix false positive for parameters corresponding to a rest parameter ([#&#8203;11916](typescript-eslint/typescript-eslint#11916))
- **eslint-plugin:** replace unclear "`error` typed" with more helpful description ([#&#8203;11704](typescript-eslint/typescript-eslint#11704))
- **typescript-estree:** forbid invalid `extends` and `implements` in interface declaration ([#&#8203;11935](typescript-eslint/typescript-eslint#11935))
- **typescript-estree:** forbid invalid class implements ([#&#8203;11934](typescript-eslint/typescript-eslint#11934))
- **typescript-estree:** forbid type-only import with both default and named specifiers ([#&#8203;11930](typescript-eslint/typescript-eslint#11930))

##### ❤️ Thank You

- Brad Zacher [@&#8203;bradzacher](https://github.com/bradzacher)
- fisker Cheung [@&#8203;fisker](https://github.com/fisker)
- Josh Goldberg
- Josh Goldberg ✨
- Kirk Waiblinger
- Niki [@&#8203;phaux](https://github.com/phaux)
- Nikita
- SungHyun627 [@&#8203;SungHyun627](https://github.com/SungHyun627)
- Will Harney [@&#8203;wjhsf](https://github.com/wjhsf)

You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website.

### [`v8.52.0`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#8520-2026-01-05)

[Compare Source](typescript-eslint/typescript-eslint@v8.51.0...v8.52.0)

##### 🚀 Features

- **eslint-plugin-internal:** \[no-multiple-lines-of-errors] add rule ([#&#8203;11899](typescript-eslint/typescript-eslint#11899))

##### 🩹 Fixes

- **eslint-plugin:** \[no-base-to-string] detect @&#8203;[@&#8203;toPrimitive](https://github.com/toPrimitive) and valueOf ([#&#8203;11901](typescript-eslint/typescript-eslint#11901))
- **eslint-plugin:** \[no-useless-default-assignment] handle conditional initializer ([#&#8203;11908](typescript-eslint/typescript-eslint#11908))

##### ❤️ Thank You

- Josh Goldberg ✨
- Ulrich Stark

You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website.

</details>

<details>
<summary>typescript-eslint/typescript-eslint (@&#8203;typescript-eslint/parser)</summary>

### [`v8.53.0`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#8530-2026-01-12)

[Compare Source](typescript-eslint/typescript-eslint@v8.52.0...v8.53.0)

This was a version bump only for parser to align it with other projects, there were no code changes.

You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website.

### [`v8.52.0`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#8520-2026-01-05)

[Compare Source](typescript-eslint/typescript-eslint@v8.51.0...v8.52.0)

This was a version bump only for parser to align it with other projects, there were no code changes.

You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website.

</details>

<details>
<summary>remix-run/react-router (react-router-dom)</summary>

### [`v7.12.0`](https://github.com/remix-run/react-router/blob/HEAD/packages/react-router-dom/CHANGELOG.md#7120)

[Compare Source](https://github.com/remix-run/react-router/compare/[email protected]@7.12.0)

##### Patch Changes

- Updated dependencies:
  - `[email protected]`

</details>

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box

---

This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi43MS4wIiwidXBkYXRlZEluVmVyIjoiNDIuODEuMyIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIiwicmVub3ZhdGUiXX0=-->

See merge request swiss-armed-forces/cyber-command/cea/loom!243

Co-authored-by: shrewd-laidback palace <shrewd-laidback-palace-736-c41-2c1-e464fc974@swiss-armed-forces-open-source.ch>
Co-authored-by: Loom MR Pipeline Trigger <group_103951964_bot_9504bb8dead6d4e406ad817a607f24be@noreply.gitlab.com>
736-c41-2c1-e464fc974 added a commit to Swiss-Armed-Forces/Loom that referenced this pull request Jan 14, 2026
chore(deps): update frontend dependencies (minor) (minor)

This MR contains the following updates:

| Package | Type | Update | Change | OpenSSF |
|---|---|---|---|---|
| [@mui/x-charts](https://mui.com/x/react-charts/) ([source](https://github.com/mui/mui-x/tree/HEAD/packages/x-charts)) | dependencies | minor | [`8.23.0` → `8.24.0`](https://renovatebot.com/diffs/npm/@mui%2fx-charts/8.23.0/8.24.0) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/mui/mui-x/badge)](https://securityscorecards.dev/viewer/?uri=github.com/mui/mui-x) |
| [@mui/x-tree-view](https://mui.com/x/react-tree-view/) ([source](https://github.com/mui/mui-x/tree/HEAD/packages/x-tree-view)) | dependencies | minor | [`8.23.0` → `8.24.0`](https://renovatebot.com/diffs/npm/@mui%2fx-tree-view/8.23.0/8.24.0) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/mui/mui-x/badge)](https://securityscorecards.dev/viewer/?uri=github.com/mui/mui-x) |
| [@openapitools/openapi-generator-cli](https://github.com/OpenAPITools/openapi-generator-cli) | devDependencies | minor | [`2.26.0` → `2.27.0`](https://renovatebot.com/diffs/npm/@openapitools%2fopenapi-generator-cli/2.26.0/2.27.0) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/OpenAPITools/openapi-generator-cli/badge)](https://securityscorecards.dev/viewer/?uri=github.com/OpenAPITools/openapi-generator-cli) |
| [@typescript-eslint/eslint-plugin](https://typescript-eslint.io/packages/eslint-plugin) ([source](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin)) | devDependencies | minor | [`8.51.0` → `8.53.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2feslint-plugin/8.51.0/8.53.0) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/typescript-eslint/typescript-eslint/badge)](https://securityscorecards.dev/viewer/?uri=github.com/typescript-eslint/typescript-eslint) |
| [@typescript-eslint/parser](https://typescript-eslint.io/packages/parser) ([source](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser)) | devDependencies | minor | [`8.51.0` → `8.53.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2fparser/8.51.0/8.53.0) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/typescript-eslint/typescript-eslint/badge)](https://securityscorecards.dev/viewer/?uri=github.com/typescript-eslint/typescript-eslint) |
| [react-router-dom](https://github.com/remix-run/react-router) ([source](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom)) | dependencies | minor | [`7.11.0` → `7.12.0`](https://renovatebot.com/diffs/npm/react-router-dom/7.11.0/7.12.0) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/remix-run/react-router/badge)](https://securityscorecards.dev/viewer/?uri=github.com/remix-run/react-router) |

---

### Release Notes

<details>
<summary>mui/mui-x (@&#8203;mui/x-charts)</summary>

### [`v8.24.0`](https://github.com/mui/mui-x/blob/HEAD/CHANGELOG.md#8240)

[Compare Source](mui/mui-x@v8.23.0...v8.24.0)

*Jan 8, 2026*

We'd like to extend a big thank you to the 12 contributors who made this release possible. Here are some highlights ✨:

- ⚡️Add bar [batch renderer](https://mui.com/x/react-charts/bars/#performance), result in a significant performance improvement when rendering thousands of bars
- 📊 Add [range bar chart](https://mui.com/x/react-charts/range-bar/) to render
  ![image](https://github.com/user-attachments/assets/4112c09b-d841-42f7-a0c8-d23b61c23ca0)
- 🌎 Improved Danish (da-DK) and Japanese (ja-JP) locales on the Data Grid

Special thanks go out to these community members for their valuable contributions:
[@&#8203;anders-noerrelykke](https://github.com/anders-noerrelykke), [@&#8203;auloin](https://github.com/auloin), [@&#8203;sai6855](https://github.com/sai6855), [@&#8203;yuito-it](https://github.com/yuito-it)

The following team members contributed to this release:
[@&#8203;alelthomas](https://github.com/alelthomas), [@&#8203;alexfauquette](https://github.com/alexfauquette), [@&#8203;arminmeh](https://github.com/arminmeh), [@&#8203;bernardobelchior](https://github.com/bernardobelchior), [@&#8203;flaviendelangle](https://github.com/flaviendelangle), [@&#8203;JCQuintas](https://github.com/JCQuintas), [@&#8203;mapache-salvaje](https://github.com/mapache-salvaje), [@&#8203;siriwatknp](https://github.com/siriwatknp)

##### Data Grid

##### `@mui/[email protected]`

- \[l10n] Improve Danish (da-DK) locale ([#&#8203;20828](mui/mui-x#20828)) [@&#8203;anders-noerrelykke](https://github.com/anders-noerrelykke)
- \[l10n] Improve Japanese (ja-JP) locale ([#&#8203;20251](mui/mui-x#20251)) [@&#8203;yuito-it](https://github.com/yuito-it)

##### `@mui/[email protected]` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link "Pro plan")

Same changes as in `@mui/[email protected]`, plus:

- \[DataGridPro] Fix header filter height for `density="compact"` ([#&#8203;20834](mui/mui-x#20834)) [@&#8203;arminmeh](https://github.com/arminmeh)

##### `@mui/[email protected]` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link "Premium plan")

Same changes as in `@mui/[email protected]`.

##### Date and Time Pickers

##### `@mui/[email protected]`

- \[pickers] Fix Styles applied to PickersDay when MuiPickersDay-dayOutsideMonth is used ([#&#8203;20719](mui/mui-x#20719)) [@&#8203;sai6855](https://github.com/sai6855)

##### `@mui/[email protected]` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link "Pro plan")

Same changes as in `@mui/[email protected]`.

##### Charts

##### `@mui/[email protected]`

- \[charts] Add `VisibilityManager` logic to allow managing series/items ([#&#8203;20571](mui/mui-x#20571)) [@&#8203;JCQuintas](https://github.com/JCQuintas)
- \[charts] Add `identifierSerializer` configuration ([#&#8203;20775](mui/mui-x#20775)) [@&#8203;JCQuintas](https://github.com/JCQuintas)
- \[charts] Add `serializeIdentifier` instance function ([#&#8203;20791](mui/mui-x#20791)) [@&#8203;JCQuintas](https://github.com/JCQuintas)
- \[charts] Add bar batch renderer ([#&#8203;20457](mui/mui-x#20457)) [@&#8203;bernardobelchior](https://github.com/bernardobelchior)
- \[charts] Allow animating bar, line, and pie elements to hidden state ([#&#8203;20798](mui/mui-x#20798)) [@&#8203;JCQuintas](https://github.com/JCQuintas)
- \[charts] Fix failing lint step ([#&#8203;20813](mui/mui-x#20813)) [@&#8203;bernardobelchior](https://github.com/bernardobelchior)
- \[charts] Fix tooltip anchored to item ([#&#8203;20783](mui/mui-x#20783)) [@&#8203;alexfauquette](https://github.com/alexfauquette)
- \[charts] Fix type casting in getCategoryAxisConfig and applySeriesLayout functions ([#&#8203;20797](mui/mui-x#20797)) [@&#8203;sai6855](https://github.com/sai6855)
- \[charts] Let keyboard navigation avoid overflow and handle nullish values ([#&#8203;20757](mui/mui-x#20757)) [@&#8203;alexfauquette](https://github.com/alexfauquette)
- \[charts] Refactor `PieChart` and `PieChartPro` to use `slots` and `slotProps` directly ([#&#8203;20795](mui/mui-x#20795)) [@&#8203;sai6855](https://github.com/sai6855)
- \[charts] Refactor `useRegisterPointerEventHandlers` ([#&#8203;20824](mui/mui-x#20824)) [@&#8203;bernardobelchior](https://github.com/bernardobelchior)
- \[charts] Update legend types to allow hiding/showing items ([#&#8203;20784](mui/mui-x#20784)) [@&#8203;JCQuintas](https://github.com/JCQuintas)

##### `@mui/[email protected]` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link "Pro plan")

Same changes as in `@mui/[email protected]`, plus:

- \[charts-pro] Pass `slotProps.toolbar` to `Toolbar` in `PieChartPro` ([#&#8203;20796](mui/mui-x#20796)) [@&#8203;sai6855](https://github.com/sai6855)

##### `@mui/[email protected]` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link "Premium plan")

Same changes as in `@mui/[email protected]`, plus:

- \[charts-premium] Add range bar chart ([#&#8203;20275](mui/mui-x#20275)) [@&#8203;bernardobelchior](https://github.com/bernardobelchior)

##### Tree View

##### `@mui/[email protected]`

- \[tree view] Introduce a Tree View Store to clean the internals ([#&#8203;20051](mui/mui-x#20051)) [@&#8203;flaviendelangle](https://github.com/flaviendelangle)

##### `@mui/[email protected]` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link "Pro plan")

Same changes as in `@mui/[email protected]`.

##### Codemod

##### `@mui/[email protected]`

Internal changes.

##### Docs

- \[docs] Fix axis size default values ([#&#8203;20799](mui/mui-x#20799)) [@&#8203;bernardobelchior](https://github.com/bernardobelchior)
- \[docs] Update What's New in MUI X page with post v8 features (DX-118) ([#&#8203;20787](mui/mui-x#20787)) [@&#8203;alelthomas](https://github.com/alelthomas)
- \[docs] Fix `onAccept`'s `context.source` documentation to use 'view' instead of 'picker' ([#&#8203;20465](mui/mui-x#20465)) [@&#8203;auloin](https://github.com/auloin)
- \[docs] Revise the Charts Brush doc ([#&#8203;20792](mui/mui-x#20792)) [@&#8203;mapache-salvaje](https://github.com/mapache-salvaje)
- \[docs] Revise the Charts Highlighting doc ([#&#8203;20788](mui/mui-x#20788)) [@&#8203;mapache-salvaje](https://github.com/mapache-salvaje)
- \[docs] Revise the Charts Label doc ([#&#8203;20794](mui/mui-x#20794)) [@&#8203;mapache-salvaje](https://github.com/mapache-salvaje)
- \[docs] Revise the Charts Export doc ([#&#8203;20779](mui/mui-x#20779)) [@&#8203;mapache-salvaje](https://github.com/mapache-salvaje)

##### Core

- \[code-infra] Fix v8.23.0 release date ([#&#8203;20767](mui/mui-x#20767)) [@&#8203;bernardobelchior](https://github.com/bernardobelchior)
- \[code-infra] Remove `glob-gitignore` ([#&#8203;20801](mui/mui-x#20801)) [@&#8203;bernardobelchior](https://github.com/bernardobelchior)
- \[code-infra] Remove `nyc` ([#&#8203;20804](mui/mui-x#20804)) [@&#8203;bernardobelchior](https://github.com/bernardobelchior)
- \[code-infra] Remove `stream-browserify` and `null-loader` ([#&#8203;20805](mui/mui-x#20805)) [@&#8203;bernardobelchior](https://github.com/bernardobelchior)
- \[code-infra] Remove `stylelint-config-tailwindcss` ([#&#8203;20807](mui/mui-x#20807)) [@&#8203;bernardobelchior](https://github.com/bernardobelchior)
- \[code-infra] Remove unused `path` package ([#&#8203;20802](mui/mui-x#20802)) [@&#8203;bernardobelchior](https://github.com/bernardobelchior)
- \[code-infra] Retry flaky e2e test on webkit ([#&#8203;20806](mui/mui-x#20806)) [@&#8203;JCQuintas](https://github.com/JCQuintas)
- \[internal] Add `internal` slot to properly generate components CSS layer ([#&#8203;20763](mui/mui-x#20763)) [@&#8203;siriwatknp](https://github.com/siriwatknp)

</details>

<details>
<summary>OpenAPITools/openapi-generator-cli (@&#8203;openapitools/openapi-generator-cli)</summary>

### [`v2.27.0`](https://github.com/OpenAPITools/openapi-generator-cli/releases/tag/v2.27.0)

[Compare Source](OpenAPITools/openapi-generator-cli@v2.26.0...v2.27.0)

##### Features

- **config:** add support for environment variable placeholders in config ([#&#8203;1031](OpenAPITools/openapi-generator-cli#1031)) ([1cd2614](OpenAPITools/openapi-generator-cli@1cd2614))

</details>

<details>
<summary>typescript-eslint/typescript-eslint (@&#8203;typescript-eslint/eslint-plugin)</summary>

### [`v8.53.0`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#8530-2026-01-12)

[Compare Source](typescript-eslint/typescript-eslint@v8.52.0...v8.53.0)

##### 🚀 Features

- **eslint-plugin:** add rule \[strict-void-return] ([#&#8203;9707](typescript-eslint/typescript-eslint#9707))
- **eslint-plugin:** \[no-unused-vars] add a fixer to remove unused imports ([#&#8203;11922](typescript-eslint/typescript-eslint#11922))

##### 🩹 Fixes

- **eslint-plugin:** \[no-useless-default-assignment] fix false positive for parameters corresponding to a rest parameter ([#&#8203;11916](typescript-eslint/typescript-eslint#11916))
- **eslint-plugin:** replace unclear "`error` typed" with more helpful description ([#&#8203;11704](typescript-eslint/typescript-eslint#11704))
- **typescript-estree:** forbid invalid `extends` and `implements` in interface declaration ([#&#8203;11935](typescript-eslint/typescript-eslint#11935))
- **typescript-estree:** forbid invalid class implements ([#&#8203;11934](typescript-eslint/typescript-eslint#11934))
- **typescript-estree:** forbid type-only import with both default and named specifiers ([#&#8203;11930](typescript-eslint/typescript-eslint#11930))

##### ❤️ Thank You

- Brad Zacher [@&#8203;bradzacher](https://github.com/bradzacher)
- fisker Cheung [@&#8203;fisker](https://github.com/fisker)
- Josh Goldberg
- Josh Goldberg ✨
- Kirk Waiblinger
- Niki [@&#8203;phaux](https://github.com/phaux)
- Nikita
- SungHyun627 [@&#8203;SungHyun627](https://github.com/SungHyun627)
- Will Harney [@&#8203;wjhsf](https://github.com/wjhsf)

You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website.

### [`v8.52.0`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#8520-2026-01-05)

[Compare Source](typescript-eslint/typescript-eslint@v8.51.0...v8.52.0)

##### 🚀 Features

- **eslint-plugin-internal:** \[no-multiple-lines-of-errors] add rule ([#&#8203;11899](typescript-eslint/typescript-eslint#11899))

##### 🩹 Fixes

- **eslint-plugin:** \[no-base-to-string] detect @&#8203;[@&#8203;toPrimitive](https://github.com/toPrimitive) and valueOf ([#&#8203;11901](typescript-eslint/typescript-eslint#11901))
- **eslint-plugin:** \[no-useless-default-assignment] handle conditional initializer ([#&#8203;11908](typescript-eslint/typescript-eslint#11908))

##### ❤️ Thank You

- Josh Goldberg ✨
- Ulrich Stark

You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website.

</details>

<details>
<summary>typescript-eslint/typescript-eslint (@&#8203;typescript-eslint/parser)</summary>

### [`v8.53.0`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#8530-2026-01-12)

[Compare Source](typescript-eslint/typescript-eslint@v8.52.0...v8.53.0)

This was a version bump only for parser to align it with other projects, there were no code changes.

You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website.

### [`v8.52.0`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#8520-2026-01-05)

[Compare Source](typescript-eslint/typescript-eslint@v8.51.0...v8.52.0)

This was a version bump only for parser to align it with other projects, there were no code changes.

You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website.

</details>

<details>
<summary>remix-run/react-router (react-router-dom)</summary>

### [`v7.12.0`](https://github.com/remix-run/react-router/blob/HEAD/packages/react-router-dom/CHANGELOG.md#7120)

[Compare Source](https://github.com/remix-run/react-router/compare/[email protected]@7.12.0)

##### Patch Changes

- Updated dependencies:
  - `[email protected]`

</details>

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box

---

This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi43MS4wIiwidXBkYXRlZEluVmVyIjoiNDIuODEuMyIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIiwicmVub3ZhdGUiXX0=-->

See merge request swiss-armed-forces/cyber-command/cea/loom!243

Co-authored-by: Loom MR Pipeline Trigger <group_103951964_bot_9504bb8dead6d4e406ad817a607f24be@noreply.gitlab.com>
Co-authored-by: open-source Pipeline <group_90701827_bot_ed04ae348bc5f40af9966fb8b6867e99@noreply.gitlab.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

accessibility a11y scope: charts Changes related to the charts. type: enhancement It’s an improvement, but we can’t make up our mind whether it's a bug fix or a new feature.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[charts] Keyboard navigation does not support null values

4 participants