Skip to content

[charts] Control the item tooltip#20617

Merged
alexfauquette merged 12 commits intomui:masterfrom
alexfauquette:controll-tooltip-item
Jan 9, 2026
Merged

[charts] Control the item tooltip#20617
alexfauquette merged 12 commits intomui:masterfrom
alexfauquette:controll-tooltip-item

Conversation

@alexfauquette
Copy link
Copy Markdown
Member

@alexfauquette alexfauquette commented Dec 10, 2025

Fix #20187

Changelog

  • 📊 The chart item tooltip can now be controlled

@alexfauquette alexfauquette added 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 10, 2025
@alexfauquette alexfauquette changed the title [draft][charts] Controll the item tooltip [WIP][charts] Controll the item tooltip Dec 10, 2025
@mui-bot
Copy link
Copy Markdown

mui-bot commented Dec 10, 2025

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

Updated pages:

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 🔺+430B(+0.12%) 🔺+120B(+0.11%)
@mui/x-charts-pro 🔺+431B(+0.09%) 🔺+106B(+0.08%)
@mui/x-charts-premium 🔺+430B(+0.09%) 🔺+106B(+0.08%)
@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 fa67534

@alexfauquette alexfauquette changed the title [WIP][charts] Controll the item tooltip [charts] Control the item tooltip Dec 11, 2025
@codspeed-hq
Copy link
Copy Markdown

codspeed-hq bot commented Dec 11, 2025

Merging this PR will not alter performance

✅ 14 untouched benchmarks


Comparing alexfauquette:controll-tooltip-item (fa67534) with master (a7ff801)1

Open in CodSpeed

Footnotes

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

@bernardobelchior
Copy link
Copy Markdown
Member

The tooltip doesn't seem to anchor to its item on scroll:

Screen.Recording.2025-12-16.at.11.25.00.mov

@alexfauquette
Copy link
Copy Markdown
Member Author

alexfauquette commented Dec 16, 2025

The tooltip doesn't seem to anchor to its item on scroll:

I propose an hybrid approach between a <rect /> used as an anchor and the a fake anchor element

  • When tracking pointer position: event already return screen coordinate. Then I use a fake getBoundingClientRect to avoid mapping screen coordinate to SVG corrdinate
  • When tracking nodes, I add a rect at correct position and use it as an anchor

06453a4

@bernardobelchior If you want I can extract this commit in a dedicated PR. It's just that with controlled tooltip it's much easier to reproduce the issue due to scrolling

Comment on lines +173 to +174
anchorRef.current = document.createElementNS('http://www.w3.org/2000/svg', 'rect');
svgRef.current.appendChild(anchorRef.current);
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Should we create this using a portal? I'm worried this will cause issues because we're never removing this rect.

Also, it seems we're creating this rect even if it isn't needed:

Screen.Recording.2025-12-16.at.17.20.44.mov

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Why use a portal?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Because it follows React's rendering lifecycle. If this component is mounted, the rect is created as well; if this component is unmounted, the rect is removed.

@bernardobelchior
Copy link
Copy Markdown
Member

I propose an hybrid approach between a <rect /> used as an anchor and the a fake anchor element

  • When tracking pointer position: event already return screen coordinate. Then I use a fake getBoundingClientRect to avoid mapping screen coordinate to SVG corrdinate
  • When tracking nodes, I add a rect at correct position and use it as an anchor

Yeah, I think that's a good solution 👍

@bernardobelchior If you want I can extract this commit in a dedicated PR. It's just that with controlled tooltip it's much easier to reproduce the issue due to scrolling

Maybe it wouldn't be a bad idea because I'm seeing some weird behavior and maybe it's easier to iterate on a smaller PR:

Not sure why, but this doesn't seem to be properly positioned in mobile:

Screen.Recording.2025-12-16.at.17.18.08.mov

Also, the synchronized demo doesn't work very well in mobile because the tooltip item disappears on touch end. I wonder if we should try to keep showing it after touch end to ensure touch users can see it:

Screen.Recording.2025-12-16.at.17.18.49.mov

@alexfauquette
Copy link
Copy Markdown
Member Author

Not sure why, but this doesn't seem to be properly positioned in mobile:

That' because we add extra space on mobile to avoid having the tooltip hidden under the user thumb

Also, the synchronized demo doesn't work very well in mobile because the tooltip item disappears on touch end. I wonder if we should try to keep showing it after touch end to ensure touch users can see it:

I don't see how to do that. When user don't touch the chart it should disapear. We could add extra parameter or demos to either add a pending time where the tooltip is still visible, or a tooltip that wait for a click outside to close.

@bernardobelchior
Copy link
Copy Markdown
Member

That' because we add extra space on mobile to avoid having the tooltip hidden under the user thumb

Makes sense 👍

I don't see how to do that. When user don't touch the chart it should disapear. We could add extra parameter or demos to either add a pending time where the tooltip is still visible, or a tooltip that wait for a click outside to close.

Yeah, I thought we could do something with the demo just so it's visible; but then it would be weird because it wouldn't show the correct behavior

);
}}
/>
<pre>Tooltip Item: {JSON.stringify(barTooltipItem, null, 2)}</pre>
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Suggested change
<pre>Tooltip Item: {JSON.stringify(barTooltipItem, null, 2)}</pre>

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Instead of removing it, I've set a minHeight

IMO irt's important to show the content of the controlled value to let user understand what happen

);
}}
/>
<pre>Tooltip Item: {JSON.stringify(pieTooltipItem, null, 2)}</pre>
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Suggested change
<pre>Tooltip Item: {JSON.stringify(pieTooltipItem, null, 2)}</pre>

@github-actions github-actions bot added the PR: out-of-date The pull request has merge conflicts and can't be merged. label Dec 17, 2025
@github-actions
Copy link
Copy Markdown
Contributor

This pull request has conflicts, please resolve those before we can evaluate the pull request.

@github-actions github-actions bot removed the PR: out-of-date The pull request has merge conflicts and can't be merged. label Dec 31, 2025
@alexfauquette
Copy link
Copy Markdown
Member Author

I've reorganized the PR to get meaning-full commits

@bernardobelchior
Copy link
Copy Markdown
Member

I'm still seeing the tooltip being incorrectly positioned. I'm just long pressing a slice (without moving my finger):

ScreenRecording_01-06-2026.15-46-35_1.MP4

As soon as I move my finger the tooltip becomes correctly positioned

@github-actions github-actions bot added the PR: out-of-date The pull request has merge conflicts and can't be merged. label Jan 8, 2026
@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Jan 8, 2026

This pull request has conflicts, please resolve those before we can evaluate the pull request.

@github-actions github-actions bot removed the PR: out-of-date The pull request has merge conflicts and can't be merged. label Jan 9, 2026
Copy link
Copy Markdown
Member

@bernardobelchior bernardobelchior left a comment

Choose a reason for hiding this comment

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

Code looks good 👍 minor comments


## Controlling item tooltip

You can control the item tooltip with `tooltipItem` and `onTooltipItemChange`.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

We're using "item tooltip", but shouldn't it be "tooltip item" like the prop, or do you mean "item tooltip" as opposed to axis tooltip?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Yes, I mean item tooltip as opposed to axis tooltip

The issue with "tooltip item" is it could be interpreted as "the tooltip component" instead of "the tooltip associated to a given item"

When the item tooltip is controlled, the `anchor` is set to `'node'` if the pointer is outside of the chart.

:::warning
Make sure the tooltip `trigger` is set to `"item"`.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Shouldn't we just ignore trigger=axis if the tooltip is controlled? Or do we want to add a onTooltipAxisChange eventually?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

onTooltipAxisChange is planned to come as a follow up

@alexfauquette alexfauquette merged commit 610ba2d into mui:master Jan 9, 2026
22 checks passed
736-c41-2c1-e464fc974 pushed a commit to Swiss-Armed-Forces/Loom that referenced this pull request Jan 18, 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.24.0` → `8.25.0`](https://renovatebot.com/diffs/npm/@mui%2fx-charts/8.24.0/8.25.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.24.0` → `8.25.0`](https://renovatebot.com/diffs/npm/@mui%2fx-tree-view/8.24.0/8.25.0) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/mui/mui-x/badge)](https://securityscorecards.dev/viewer/?uri=github.com/mui/mui-x) |
| [prettier](https://prettier.io) ([source](https://github.com/prettier/prettier)) | devDependencies | minor | [`3.7.4` → `3.8.0`](https://renovatebot.com/diffs/npm/prettier/3.7.4/3.8.0) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/prettier/prettier/badge)](https://securityscorecards.dev/viewer/?uri=github.com/prettier/prettier) |

---

### Release Notes

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

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

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

<!-- generated comparing v8.24.0..master -->

*Jan 14, 2026*

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

- 📊 The Chart legend now has an option that enables [click to toggle visibility](https://mui.com/x/react-charts/legend/#toggle-visibility) of series.

  ![Image](https://github.com/user-attachments/assets/c8250287-1318-4581-ac5d-07e7ee01341c)

- 🐞 Bugfixes

- 📚 Documentation improvements

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

##### Data Grid

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

Internal changes.

##### `@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]`.

##### `@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]`

Internal changes.

##### `@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 Legend actions ([#&#8203;20404](mui/mui-x#20404)) [@&#8203;JCQuintas](https://github.com/JCQuintas)
- \[charts] Add `initialHiddenItems` prop to set initial state ([#&#8203;20894](mui/mui-x#20894)) [@&#8203;JCQuintas](https://github.com/JCQuintas)
- \[charts] Control the item tooltip ([#&#8203;20617](mui/mui-x#20617)) [@&#8203;alexfauquette](https://github.com/alexfauquette)
- \[charts] Export plugins from premium ([#&#8203;20866](mui/mui-x#20866)) [@&#8203;JCQuintas](https://github.com/JCQuintas)
- \[charts] Fix node anchor on iOS ([#&#8203;20848](mui/mui-x#20848)) [@&#8203;alexfauquette](https://github.com/alexfauquette)
- \[charts] Fix test inconsistency in charts ([#&#8203;20907](mui/mui-x#20907)) [@&#8203;JCQuintas](https://github.com/JCQuintas)
- \[charts] Revert `touch-action: pan-y` removal when zoom is disabled ([#&#8203;20852](mui/mui-x#20852)) [@&#8203;bernardobelchior](https://github.com/bernardobelchior)
- \[charts] Use React event handler to detect pointer type ([#&#8203;20849](mui/mui-x#20849)) [@&#8203;alexfauquette](https://github.com/alexfauquette)
- \[charts] Enable keyboard navigation in radar chart ([#&#8203;20765](mui/mui-x#20765)) [@&#8203;alexfauquette](https://github.com/alexfauquette)
- \[charts] Fix tooltip position for stacked line series ([#&#8203;20901](mui/mui-x#20901)) [@&#8203;alexfauquette](https://github.com/alexfauquette)

##### `@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] Add keyboard navigation to funnel ([#&#8203;20766](mui/mui-x#20766)) [@&#8203;alexfauquette](https://github.com/alexfauquette)
- \[charts-pro] Add keyboard navigation to heatmap ([#&#8203;20786](mui/mui-x#20786)) [@&#8203;alexfauquette](https://github.com/alexfauquette)
- \[charts-pro] Add keyboard navigation to sankey ([#&#8203;20777](mui/mui-x#20777)) [@&#8203;alexfauquette](https://github.com/alexfauquette)
- \[charts-pro] Prefer global pointer interaction tracker in Heatmap ([#&#8203;20697](mui/mui-x#20697)) [@&#8203;bernardobelchior](https://github.com/bernardobelchior)
- \[charts-pro] Support composition for Sankey ([#&#8203;20604](mui/mui-x#20604)) [@&#8203;alexfauquette](https://github.com/alexfauquette)
- \[charts-pro] Fix crash when two same-direction axes have a zoom preview ([#&#8203;20916](mui/mui-x#20916)) [@&#8203;bernardobelchior](https://github.com/bernardobelchior)

##### `@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 `ChartContainerPremium` ([#&#8203;20910](mui/mui-x#20910)) [@&#8203;bernardobelchior](https://github.com/bernardobelchior)
- \[charts-premium] Fix `ChartDataProviderPremium` tests ([#&#8203;20868](mui/mui-x#20868)) [@&#8203;bernardobelchior](https://github.com/bernardobelchior)

##### Tree View

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

Internal changes.

##### `@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 Waterfall Chart documentation badge from Pro to Premium ([#&#8203;20888](mui/mui-x#20888)) [@&#8203;Copilot](https://github.com/Copilot)
- \[docs] Fix broken links on Data Grid Editing sub-pages ([#&#8203;20911](mui/mui-x#20911)) [@&#8203;arminmeh](https://github.com/arminmeh)
- \[docs] Increase chart axis size in docs to fit in Ubuntu Firefox ([#&#8203;20844](mui/mui-x#20844)) [@&#8203;bernardobelchior](https://github.com/bernardobelchior)
- \[docs] Simplify heatmap zoom demo ([#&#8203;20851](mui/mui-x#20851)) [@&#8203;bernardobelchior](https://github.com/bernardobelchior)
- \[docs] Revise the Charts Composition doc ([#&#8203;20032](mui/mui-x#20032)) [@&#8203;mapache-salvaje](https://github.com/mapache-salvaje)
- \[docs] Revise the Charts Localization doc ([#&#8203;20800](mui/mui-x#20800)) [@&#8203;mapache-salvaje](https://github.com/mapache-salvaje)
- \[docs] Revise the Charts Stacking doc ([#&#8203;20830](mui/mui-x#20830)) [@&#8203;mapache-salvaje](https://github.com/mapache-salvaje)
- \[docs] Fix broken links ([#&#8203;20914](mui/mui-x#20914)) [@&#8203;Janpot](https://github.com/Janpot)

##### Core

- \[code-infra] Fix `material-ui/disallow-react-api-in-server-components` ([#&#8203;20909](mui/mui-x#20909)) [@&#8203;JCQuintas](https://github.com/JCQuintas)
- \[code-infra] Prepare for v9 ([#&#8203;20860](mui/mui-x#20860)) [@&#8203;JCQuintas](https://github.com/JCQuintas)
- \[code-infra] Update codeowners ([#&#8203;20886](mui/mui-x#20886)) [@&#8203;JCQuintas](https://github.com/JCQuintas)
- \[internal] Remove local Claude settings from the repo ([#&#8203;20853](mui/mui-x#20853)) [@&#8203;cherniavskii](https://github.com/cherniavskii)

</details>

<details>
<summary>prettier/prettier (prettier)</summary>

### [`v3.8.0`](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#380)

[Compare Source](prettier/prettier@3.7.4...3.8.0)

[diff](prettier/prettier@3.7.4...3.8.0)

🔗 [Release Notes](https://prettier.io/blog/2026/01/14/3.8.0)

</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:eyJjcmVhdGVkSW5WZXIiOiI0Mi44NC4yIiwidXBkYXRlZEluVmVyIjoiNDIuODQuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIiwicmVub3ZhdGUiXX0=-->

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

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 18, 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.24.0` → `8.25.0`](https://renovatebot.com/diffs/npm/@mui%2fx-charts/8.24.0/8.25.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.24.0` → `8.25.0`](https://renovatebot.com/diffs/npm/@mui%2fx-tree-view/8.24.0/8.25.0) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/mui/mui-x/badge)](https://securityscorecards.dev/viewer/?uri=github.com/mui/mui-x) |
| [prettier](https://prettier.io) ([source](https://github.com/prettier/prettier)) | devDependencies | minor | [`3.7.4` → `3.8.0`](https://renovatebot.com/diffs/npm/prettier/3.7.4/3.8.0) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/prettier/prettier/badge)](https://securityscorecards.dev/viewer/?uri=github.com/prettier/prettier) |

---

### Release Notes

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

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

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

<!-- generated comparing v8.24.0..master -->

*Jan 14, 2026*

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

- 📊 The Chart legend now has an option that enables [click to toggle visibility](https://mui.com/x/react-charts/legend/#toggle-visibility) of series.

  ![Image](https://github.com/user-attachments/assets/c8250287-1318-4581-ac5d-07e7ee01341c)

- 🐞 Bugfixes

- 📚 Documentation improvements

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

##### Data Grid

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

Internal changes.

##### `@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]`.

##### `@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]`

Internal changes.

##### `@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 Legend actions ([#&#8203;20404](mui/mui-x#20404)) [@&#8203;JCQuintas](https://github.com/JCQuintas)
- \[charts] Add `initialHiddenItems` prop to set initial state ([#&#8203;20894](mui/mui-x#20894)) [@&#8203;JCQuintas](https://github.com/JCQuintas)
- \[charts] Control the item tooltip ([#&#8203;20617](mui/mui-x#20617)) [@&#8203;alexfauquette](https://github.com/alexfauquette)
- \[charts] Export plugins from premium ([#&#8203;20866](mui/mui-x#20866)) [@&#8203;JCQuintas](https://github.com/JCQuintas)
- \[charts] Fix node anchor on iOS ([#&#8203;20848](mui/mui-x#20848)) [@&#8203;alexfauquette](https://github.com/alexfauquette)
- \[charts] Fix test inconsistency in charts ([#&#8203;20907](mui/mui-x#20907)) [@&#8203;JCQuintas](https://github.com/JCQuintas)
- \[charts] Revert `touch-action: pan-y` removal when zoom is disabled ([#&#8203;20852](mui/mui-x#20852)) [@&#8203;bernardobelchior](https://github.com/bernardobelchior)
- \[charts] Use React event handler to detect pointer type ([#&#8203;20849](mui/mui-x#20849)) [@&#8203;alexfauquette](https://github.com/alexfauquette)
- \[charts] Enable keyboard navigation in radar chart ([#&#8203;20765](mui/mui-x#20765)) [@&#8203;alexfauquette](https://github.com/alexfauquette)
- \[charts] Fix tooltip position for stacked line series ([#&#8203;20901](mui/mui-x#20901)) [@&#8203;alexfauquette](https://github.com/alexfauquette)

##### `@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] Add keyboard navigation to funnel ([#&#8203;20766](mui/mui-x#20766)) [@&#8203;alexfauquette](https://github.com/alexfauquette)
- \[charts-pro] Add keyboard navigation to heatmap ([#&#8203;20786](mui/mui-x#20786)) [@&#8203;alexfauquette](https://github.com/alexfauquette)
- \[charts-pro] Add keyboard navigation to sankey ([#&#8203;20777](mui/mui-x#20777)) [@&#8203;alexfauquette](https://github.com/alexfauquette)
- \[charts-pro] Prefer global pointer interaction tracker in Heatmap ([#&#8203;20697](mui/mui-x#20697)) [@&#8203;bernardobelchior](https://github.com/bernardobelchior)
- \[charts-pro] Support composition for Sankey ([#&#8203;20604](mui/mui-x#20604)) [@&#8203;alexfauquette](https://github.com/alexfauquette)
- \[charts-pro] Fix crash when two same-direction axes have a zoom preview ([#&#8203;20916](mui/mui-x#20916)) [@&#8203;bernardobelchior](https://github.com/bernardobelchior)

##### `@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 `ChartContainerPremium` ([#&#8203;20910](mui/mui-x#20910)) [@&#8203;bernardobelchior](https://github.com/bernardobelchior)
- \[charts-premium] Fix `ChartDataProviderPremium` tests ([#&#8203;20868](mui/mui-x#20868)) [@&#8203;bernardobelchior](https://github.com/bernardobelchior)

##### Tree View

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

Internal changes.

##### `@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 Waterfall Chart documentation badge from Pro to Premium ([#&#8203;20888](mui/mui-x#20888)) [@&#8203;Copilot](https://github.com/Copilot)
- \[docs] Fix broken links on Data Grid Editing sub-pages ([#&#8203;20911](mui/mui-x#20911)) [@&#8203;arminmeh](https://github.com/arminmeh)
- \[docs] Increase chart axis size in docs to fit in Ubuntu Firefox ([#&#8203;20844](mui/mui-x#20844)) [@&#8203;bernardobelchior](https://github.com/bernardobelchior)
- \[docs] Simplify heatmap zoom demo ([#&#8203;20851](mui/mui-x#20851)) [@&#8203;bernardobelchior](https://github.com/bernardobelchior)
- \[docs] Revise the Charts Composition doc ([#&#8203;20032](mui/mui-x#20032)) [@&#8203;mapache-salvaje](https://github.com/mapache-salvaje)
- \[docs] Revise the Charts Localization doc ([#&#8203;20800](mui/mui-x#20800)) [@&#8203;mapache-salvaje](https://github.com/mapache-salvaje)
- \[docs] Revise the Charts Stacking doc ([#&#8203;20830](mui/mui-x#20830)) [@&#8203;mapache-salvaje](https://github.com/mapache-salvaje)
- \[docs] Fix broken links ([#&#8203;20914](mui/mui-x#20914)) [@&#8203;Janpot](https://github.com/Janpot)

##### Core

- \[code-infra] Fix `material-ui/disallow-react-api-in-server-components` ([#&#8203;20909](mui/mui-x#20909)) [@&#8203;JCQuintas](https://github.com/JCQuintas)
- \[code-infra] Prepare for v9 ([#&#8203;20860](mui/mui-x#20860)) [@&#8203;JCQuintas](https://github.com/JCQuintas)
- \[code-infra] Update codeowners ([#&#8203;20886](mui/mui-x#20886)) [@&#8203;JCQuintas](https://github.com/JCQuintas)
- \[internal] Remove local Claude settings from the repo ([#&#8203;20853](mui/mui-x#20853)) [@&#8203;cherniavskii](https://github.com/cherniavskii)

</details>

<details>
<summary>prettier/prettier (prettier)</summary>

### [`v3.8.0`](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#380)

[Compare Source](prettier/prettier@3.7.4...3.8.0)

[diff](prettier/prettier@3.7.4...3.8.0)

🔗 [Release Notes](https://prettier.io/blog/2026/01/14/3.8.0)

</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:eyJjcmVhdGVkSW5WZXIiOiI0Mi44NC4yIiwidXBkYXRlZEluVmVyIjoiNDIuODQuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIiwicmVub3ZhdGUiXX0=-->

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

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

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] Add support for click-triggered and controlled tooltips in charts

4 participants