@mui/x-charts 8.14.1 → 8.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (264) hide show
  1. package/BarChart/BarChart.js +8 -0
  2. package/BarChart/BarChart.plugins.d.ts +2 -1
  3. package/BarChart/BarChart.plugins.js +2 -1
  4. package/BarChart/seriesConfig/getSeriesWithDefaultValues.js +3 -3
  5. package/BarChart/seriesConfig/index.js +2 -0
  6. package/BarChart/seriesConfig/tooltipPosition.d.ts +3 -0
  7. package/BarChart/seriesConfig/tooltipPosition.js +67 -0
  8. package/BarChart/useBarChartProps.js +4 -2
  9. package/BarChart/useBarPlotData.d.ts +17 -2
  10. package/BarChart/useBarPlotData.js +59 -34
  11. package/CHANGELOG.md +207 -0
  12. package/ChartContainer/ChartContainer.js +8 -0
  13. package/ChartContainer/useChartContainerProps.js +4 -2
  14. package/ChartsAxisHighlight/ChartsXAxisHighlight.js +2 -1
  15. package/ChartsAxisHighlight/ChartsYAxisHighlight.js +2 -1
  16. package/ChartsBrushOverlay/ChartsBrushOverlay.classes.d.ts +12 -0
  17. package/ChartsBrushOverlay/ChartsBrushOverlay.classes.js +9 -0
  18. package/ChartsBrushOverlay/ChartsBrushOverlay.d.ts +6 -0
  19. package/ChartsBrushOverlay/ChartsBrushOverlay.js +102 -0
  20. package/ChartsBrushOverlay/index.d.ts +4 -0
  21. package/ChartsBrushOverlay/index.js +19 -0
  22. package/ChartsReferenceLine/ChartsReferenceLine.js +1 -1
  23. package/ChartsReferenceLine/ChartsXReferenceLine.js +13 -8
  24. package/ChartsReferenceLine/ChartsYReferenceLine.js +13 -8
  25. package/ChartsReferenceLine/common.d.ts +3 -1
  26. package/ChartsReferenceLine/common.js +3 -1
  27. package/ChartsTooltip/ChartsTooltip.js +9 -0
  28. package/ChartsTooltip/ChartsTooltipContainer.d.ts +9 -0
  29. package/ChartsTooltip/ChartsTooltipContainer.js +67 -23
  30. package/ChartsTooltip/useItemTooltip.js +7 -14
  31. package/ChartsWrapper/ChartsWrapper.js +2 -1
  32. package/ChartsXAxis/getVisibleLabels.js +45 -25
  33. package/ChartsXAxis/useAxisTicksProps.d.ts +81 -81
  34. package/ChartsYAxis/useAxisTicksProps.d.ts +81 -81
  35. package/LineChart/LineChart.js +8 -0
  36. package/LineChart/LineChart.plugins.d.ts +2 -1
  37. package/LineChart/LineChart.plugins.js +2 -1
  38. package/LineChart/seriesConfig/getSeriesWithDefaultValues.js +3 -3
  39. package/LineChart/seriesConfig/index.js +2 -0
  40. package/LineChart/seriesConfig/tooltipPosition.d.ts +3 -0
  41. package/LineChart/seriesConfig/tooltipPosition.js +33 -0
  42. package/LineChart/useLineChartProps.js +4 -2
  43. package/PieChart/seriesConfig/getSeriesWithDefaultValues.js +5 -6
  44. package/PieChart/seriesConfig/index.js +2 -0
  45. package/PieChart/seriesConfig/seriesProcessor.js +2 -1
  46. package/PieChart/seriesConfig/tooltipPosition.d.ts +3 -0
  47. package/PieChart/seriesConfig/tooltipPosition.js +75 -0
  48. package/RadarChart/RadarChart.plugins.d.ts +2 -2
  49. package/RadarChart/RadarChart.plugins.js +1 -1
  50. package/RadarChart/RadarSeriesPlot/useRadarSeriesData.d.ts +1 -1
  51. package/RadarChart/seriesConfig/getSeriesWithDefaultValues.js +3 -3
  52. package/ScatterChart/ScatterChart.js +8 -0
  53. package/ScatterChart/ScatterChart.plugins.d.ts +2 -1
  54. package/ScatterChart/ScatterChart.plugins.js +2 -1
  55. package/ScatterChart/seriesConfig/getSeriesWithDefaultValues.js +3 -3
  56. package/ScatterChart/seriesConfig/index.js +2 -0
  57. package/ScatterChart/seriesConfig/tooltipPosition.d.ts +3 -0
  58. package/ScatterChart/seriesConfig/tooltipPosition.js +33 -0
  59. package/ScatterChart/useScatterChartProps.js +5 -3
  60. package/SparkLineChart/SparkLineChart.js +8 -0
  61. package/context/ChartProvider/ChartProvider.js +1 -1
  62. package/esm/BarChart/BarChart.js +8 -0
  63. package/esm/BarChart/BarChart.plugins.d.ts +2 -1
  64. package/esm/BarChart/BarChart.plugins.js +2 -1
  65. package/esm/BarChart/seriesConfig/getSeriesWithDefaultValues.js +3 -3
  66. package/esm/BarChart/seriesConfig/index.js +2 -0
  67. package/esm/BarChart/seriesConfig/tooltipPosition.d.ts +3 -0
  68. package/esm/BarChart/seriesConfig/tooltipPosition.js +61 -0
  69. package/esm/BarChart/useBarChartProps.js +4 -2
  70. package/esm/BarChart/useBarPlotData.d.ts +17 -2
  71. package/esm/BarChart/useBarPlotData.js +58 -34
  72. package/esm/ChartContainer/ChartContainer.js +8 -0
  73. package/esm/ChartContainer/useChartContainerProps.js +4 -2
  74. package/esm/ChartsAxisHighlight/ChartsXAxisHighlight.js +1 -2
  75. package/esm/ChartsAxisHighlight/ChartsYAxisHighlight.js +1 -2
  76. package/esm/ChartsBrushOverlay/ChartsBrushOverlay.classes.d.ts +12 -0
  77. package/esm/ChartsBrushOverlay/ChartsBrushOverlay.classes.js +2 -0
  78. package/esm/ChartsBrushOverlay/ChartsBrushOverlay.d.ts +6 -0
  79. package/esm/ChartsBrushOverlay/ChartsBrushOverlay.js +95 -0
  80. package/esm/ChartsBrushOverlay/index.d.ts +4 -0
  81. package/esm/ChartsBrushOverlay/index.js +2 -0
  82. package/esm/ChartsReferenceLine/ChartsReferenceLine.js +1 -1
  83. package/esm/ChartsReferenceLine/ChartsXReferenceLine.js +14 -9
  84. package/esm/ChartsReferenceLine/ChartsYReferenceLine.js +14 -9
  85. package/esm/ChartsReferenceLine/common.d.ts +3 -1
  86. package/esm/ChartsReferenceLine/common.js +2 -0
  87. package/esm/ChartsTooltip/ChartsTooltip.js +9 -0
  88. package/esm/ChartsTooltip/ChartsTooltipContainer.d.ts +9 -0
  89. package/esm/ChartsTooltip/ChartsTooltipContainer.js +68 -24
  90. package/esm/ChartsTooltip/useItemTooltip.js +9 -16
  91. package/esm/ChartsWrapper/ChartsWrapper.js +2 -1
  92. package/esm/ChartsXAxis/getVisibleLabels.js +45 -25
  93. package/esm/ChartsXAxis/useAxisTicksProps.d.ts +81 -81
  94. package/esm/ChartsYAxis/useAxisTicksProps.d.ts +81 -81
  95. package/esm/LineChart/LineChart.js +8 -0
  96. package/esm/LineChart/LineChart.plugins.d.ts +2 -1
  97. package/esm/LineChart/LineChart.plugins.js +2 -1
  98. package/esm/LineChart/seriesConfig/getSeriesWithDefaultValues.js +3 -3
  99. package/esm/LineChart/seriesConfig/index.js +2 -0
  100. package/esm/LineChart/seriesConfig/tooltipPosition.d.ts +3 -0
  101. package/esm/LineChart/seriesConfig/tooltipPosition.js +27 -0
  102. package/esm/LineChart/useLineChartProps.js +4 -2
  103. package/esm/PieChart/seriesConfig/getSeriesWithDefaultValues.js +5 -6
  104. package/esm/PieChart/seriesConfig/index.js +2 -0
  105. package/esm/PieChart/seriesConfig/seriesProcessor.js +2 -1
  106. package/esm/PieChart/seriesConfig/tooltipPosition.d.ts +3 -0
  107. package/esm/PieChart/seriesConfig/tooltipPosition.js +69 -0
  108. package/esm/RadarChart/RadarChart.plugins.d.ts +2 -2
  109. package/esm/RadarChart/RadarChart.plugins.js +1 -1
  110. package/esm/RadarChart/RadarSeriesPlot/useRadarSeriesData.d.ts +1 -1
  111. package/esm/RadarChart/seriesConfig/getSeriesWithDefaultValues.js +3 -3
  112. package/esm/ScatterChart/ScatterChart.js +8 -0
  113. package/esm/ScatterChart/ScatterChart.plugins.d.ts +2 -1
  114. package/esm/ScatterChart/ScatterChart.plugins.js +2 -1
  115. package/esm/ScatterChart/seriesConfig/getSeriesWithDefaultValues.js +3 -3
  116. package/esm/ScatterChart/seriesConfig/index.js +2 -0
  117. package/esm/ScatterChart/seriesConfig/tooltipPosition.d.ts +3 -0
  118. package/esm/ScatterChart/seriesConfig/tooltipPosition.js +27 -0
  119. package/esm/ScatterChart/useScatterChartProps.js +5 -3
  120. package/esm/SparkLineChart/SparkLineChart.js +8 -0
  121. package/esm/context/ChartProvider/ChartProvider.js +1 -1
  122. package/esm/hooks/index.d.ts +2 -1
  123. package/esm/hooks/index.js +2 -1
  124. package/esm/hooks/useBrush.d.ts +18 -0
  125. package/esm/hooks/useBrush.js +16 -0
  126. package/esm/hooks/useFocusedItem.d.ts +1 -1
  127. package/esm/hooks/useInteractionItemProps.js +6 -2
  128. package/esm/index.d.ts +2 -1
  129. package/esm/index.js +2 -1
  130. package/esm/internals/configInit.d.ts +1 -1
  131. package/esm/internals/domUtils.d.ts +9 -4
  132. package/esm/internals/domUtils.js +115 -52
  133. package/esm/internals/getScale.js +1 -1
  134. package/esm/internals/index.d.ts +3 -1
  135. package/esm/internals/index.js +3 -1
  136. package/esm/internals/isCartesian.d.ts +3 -2
  137. package/esm/internals/isCartesian.js +3 -0
  138. package/esm/internals/plugins/allPlugins.d.ts +4 -3
  139. package/esm/internals/plugins/allPlugins.js +2 -1
  140. package/esm/internals/plugins/corePlugins/useChartInteractionListener/useChartInteractionListener.js +19 -10
  141. package/esm/internals/plugins/corePlugins/useChartInteractionListener/useChartInteractionListener.types.d.ts +6 -4
  142. package/esm/internals/plugins/featurePlugins/useChartBrush/index.d.ts +3 -0
  143. package/esm/internals/plugins/featurePlugins/useChartBrush/index.js +3 -0
  144. package/esm/internals/plugins/featurePlugins/useChartBrush/useChartBrush.d.ts +3 -0
  145. package/esm/internals/plugins/featurePlugins/useChartBrush/useChartBrush.js +126 -0
  146. package/esm/internals/plugins/featurePlugins/useChartBrush/useChartBrush.selectors.d.ts +82 -0
  147. package/esm/internals/plugins/featurePlugins/useChartBrush/useChartBrush.selectors.js +75 -0
  148. package/esm/internals/plugins/featurePlugins/useChartBrush/useChartBrush.types.d.ts +81 -0
  149. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/createZoomLookup.js +3 -2
  150. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/defaultizeAxis.js +2 -2
  151. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/defaultizeZoom.d.ts +2 -1
  152. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/defaultizeZoom.js +8 -3
  153. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/getAxisScale.js +1 -1
  154. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxis.types.d.ts +3 -1
  155. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianHighlight.selectors.d.ts +4 -4
  156. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianHighlight.selectors.js +13 -6
  157. package/esm/internals/plugins/featurePlugins/useChartClosestPoint/useChartClosestPoint.js +2 -0
  158. package/esm/internals/plugins/featurePlugins/useChartInteraction/index.d.ts +1 -0
  159. package/esm/internals/plugins/featurePlugins/useChartInteraction/index.js +2 -1
  160. package/esm/internals/plugins/featurePlugins/useChartInteraction/useChartInteraction.js +2 -1
  161. package/esm/internals/plugins/featurePlugins/useChartInteraction/useChartInteraction.selectors.d.ts +1 -1
  162. package/esm/internals/plugins/featurePlugins/useChartInteraction/useChartInteraction.types.d.ts +5 -1
  163. package/esm/internals/plugins/featurePlugins/useChartInteraction/useChartTooltip.selectors.d.ts +14 -0
  164. package/esm/internals/plugins/featurePlugins/useChartInteraction/useChartTooltip.selectors.js +40 -0
  165. package/esm/internals/plugins/featurePlugins/useChartKeyboardNavigation/isFocusableSeriesType.d.ts +3 -0
  166. package/esm/internals/plugins/featurePlugins/useChartKeyboardNavigation/isFocusableSeriesType.js +4 -0
  167. package/esm/internals/plugins/featurePlugins/useChartKeyboardNavigation/useChartKeyboardNavigation.helpers.d.ts +5 -4
  168. package/esm/internals/plugins/featurePlugins/useChartKeyboardNavigation/useChartKeyboardNavigation.helpers.js +8 -4
  169. package/esm/internals/plugins/featurePlugins/useChartKeyboardNavigation/useChartKeyboardNavigation.selectors.d.ts +21 -3
  170. package/esm/internals/plugins/featurePlugins/useChartKeyboardNavigation/useChartKeyboardNavigation.selectors.js +13 -6
  171. package/esm/internals/plugins/featurePlugins/useChartKeyboardNavigation/useChartKeyboardNavigation.types.d.ts +4 -3
  172. package/esm/internals/plugins/featurePlugins/useChartPolarAxis/computeAxisValue.js +1 -1
  173. package/esm/internals/plugins/models/seriesConfig/index.d.ts +1 -0
  174. package/esm/internals/plugins/models/seriesConfig/index.js +1 -0
  175. package/esm/internals/plugins/models/seriesConfig/seriesConfig.types.d.ts +2 -0
  176. package/esm/internals/plugins/models/seriesConfig/tooltipItemPositionGetter.types.d.ts +24 -0
  177. package/esm/internals/plugins/utils/selectors.d.ts +1 -1
  178. package/esm/internals/scales/index.d.ts +3 -0
  179. package/esm/internals/scales/index.js +3 -0
  180. package/esm/internals/scales/scaleBand.d.ts +25 -0
  181. package/esm/internals/scales/scaleBand.js +159 -0
  182. package/esm/internals/scales/scalePoint.d.ts +25 -0
  183. package/esm/internals/scales/scalePoint.js +41 -0
  184. package/esm/internals/scales/scaleSymlog.d.ts +38 -0
  185. package/esm/internals/{symlogScale.js → scales/scaleSymlog.js} +40 -2
  186. package/esm/locales/elGR.js +97 -99
  187. package/esm/models/seriesType/common.d.ts +3 -2
  188. package/esm/tests/constants.js +1 -0
  189. package/hooks/index.d.ts +2 -1
  190. package/hooks/index.js +12 -0
  191. package/hooks/useBrush.d.ts +18 -0
  192. package/hooks/useBrush.js +21 -0
  193. package/hooks/useFocusedItem.d.ts +1 -1
  194. package/hooks/useInteractionItemProps.js +6 -2
  195. package/index.d.ts +2 -1
  196. package/index.js +13 -1
  197. package/internals/configInit.d.ts +1 -1
  198. package/internals/domUtils.d.ts +9 -4
  199. package/internals/domUtils.js +119 -54
  200. package/internals/getScale.js +2 -2
  201. package/internals/index.d.ts +3 -1
  202. package/internals/index.js +24 -0
  203. package/internals/isCartesian.d.ts +3 -2
  204. package/internals/isCartesian.js +4 -0
  205. package/internals/plugins/allPlugins.d.ts +4 -3
  206. package/internals/plugins/allPlugins.js +2 -1
  207. package/internals/plugins/corePlugins/useChartInteractionListener/useChartInteractionListener.js +19 -10
  208. package/internals/plugins/corePlugins/useChartInteractionListener/useChartInteractionListener.types.d.ts +6 -4
  209. package/internals/plugins/featurePlugins/useChartBrush/index.d.ts +3 -0
  210. package/internals/plugins/featurePlugins/useChartBrush/index.js +38 -0
  211. package/internals/plugins/featurePlugins/useChartBrush/useChartBrush.d.ts +3 -0
  212. package/internals/plugins/featurePlugins/useChartBrush/useChartBrush.js +134 -0
  213. package/internals/plugins/featurePlugins/useChartBrush/useChartBrush.selectors.d.ts +82 -0
  214. package/internals/plugins/featurePlugins/useChartBrush/useChartBrush.selectors.js +82 -0
  215. package/internals/plugins/featurePlugins/useChartBrush/useChartBrush.types.d.ts +81 -0
  216. package/internals/plugins/featurePlugins/useChartBrush/useChartBrush.types.js +5 -0
  217. package/internals/plugins/featurePlugins/useChartCartesianAxis/createZoomLookup.js +3 -2
  218. package/internals/plugins/featurePlugins/useChartCartesianAxis/defaultizeAxis.js +2 -2
  219. package/internals/plugins/featurePlugins/useChartCartesianAxis/defaultizeZoom.d.ts +2 -1
  220. package/internals/plugins/featurePlugins/useChartCartesianAxis/defaultizeZoom.js +8 -3
  221. package/internals/plugins/featurePlugins/useChartCartesianAxis/getAxisScale.js +3 -3
  222. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxis.types.d.ts +3 -1
  223. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianHighlight.selectors.d.ts +4 -4
  224. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianHighlight.selectors.js +13 -6
  225. package/internals/plugins/featurePlugins/useChartClosestPoint/useChartClosestPoint.js +2 -0
  226. package/internals/plugins/featurePlugins/useChartInteraction/index.d.ts +1 -0
  227. package/internals/plugins/featurePlugins/useChartInteraction/index.js +12 -0
  228. package/internals/plugins/featurePlugins/useChartInteraction/useChartInteraction.js +2 -1
  229. package/internals/plugins/featurePlugins/useChartInteraction/useChartInteraction.selectors.d.ts +1 -1
  230. package/internals/plugins/featurePlugins/useChartInteraction/useChartInteraction.types.d.ts +5 -1
  231. package/internals/plugins/featurePlugins/useChartInteraction/useChartTooltip.selectors.d.ts +14 -0
  232. package/internals/plugins/featurePlugins/useChartInteraction/useChartTooltip.selectors.js +46 -0
  233. package/internals/plugins/featurePlugins/useChartKeyboardNavigation/isFocusableSeriesType.d.ts +3 -0
  234. package/internals/plugins/featurePlugins/useChartKeyboardNavigation/isFocusableSeriesType.js +10 -0
  235. package/internals/plugins/featurePlugins/useChartKeyboardNavigation/useChartKeyboardNavigation.helpers.d.ts +5 -4
  236. package/internals/plugins/featurePlugins/useChartKeyboardNavigation/useChartKeyboardNavigation.helpers.js +7 -4
  237. package/internals/plugins/featurePlugins/useChartKeyboardNavigation/useChartKeyboardNavigation.selectors.d.ts +21 -3
  238. package/internals/plugins/featurePlugins/useChartKeyboardNavigation/useChartKeyboardNavigation.selectors.js +14 -7
  239. package/internals/plugins/featurePlugins/useChartKeyboardNavigation/useChartKeyboardNavigation.types.d.ts +4 -3
  240. package/internals/plugins/featurePlugins/useChartPolarAxis/computeAxisValue.js +3 -3
  241. package/internals/plugins/models/seriesConfig/index.d.ts +1 -0
  242. package/internals/plugins/models/seriesConfig/index.js +11 -0
  243. package/internals/plugins/models/seriesConfig/seriesConfig.types.d.ts +2 -0
  244. package/internals/plugins/models/seriesConfig/tooltipItemPositionGetter.types.d.ts +24 -0
  245. package/internals/plugins/models/seriesConfig/tooltipItemPositionGetter.types.js +5 -0
  246. package/internals/plugins/utils/selectors.d.ts +1 -1
  247. package/internals/scales/index.d.ts +3 -0
  248. package/internals/scales/index.js +38 -0
  249. package/internals/scales/scaleBand.d.ts +25 -0
  250. package/internals/scales/scaleBand.js +167 -0
  251. package/internals/scales/scalePoint.d.ts +25 -0
  252. package/internals/scales/scalePoint.js +46 -0
  253. package/internals/scales/scaleSymlog.d.ts +38 -0
  254. package/internals/{symlogScale.js → scales/scaleSymlog.js} +39 -2
  255. package/locales/elGR.js +97 -99
  256. package/models/seriesType/common.d.ts +3 -2
  257. package/package.json +4 -4
  258. package/tests/constants.js +7 -0
  259. package/esm/internals/Flatbush.bench.js +0 -42
  260. package/esm/internals/symlogScale.d.ts +0 -2
  261. package/internals/Flatbush.bench.js +0 -44
  262. package/internals/symlogScale.d.ts +0 -2
  263. /package/esm/internals/{Flatbush.bench.d.ts → plugins/featurePlugins/useChartBrush/useChartBrush.types.js} +0 -0
  264. /package/{internals/Flatbush.bench.d.ts → esm/internals/plugins/models/seriesConfig/tooltipItemPositionGetter.types.js} +0 -0
@@ -101,6 +101,14 @@ process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
101
101
  * Defines the border radius of the bar element.
102
102
  */
103
103
  borderRadius: _propTypes.default.number,
104
+ /**
105
+ * Configuration for the brush interaction.
106
+ */
107
+ brushConfig: _propTypes.default.shape({
108
+ enabled: _propTypes.default.bool,
109
+ preventHighlight: _propTypes.default.bool,
110
+ preventTooltip: _propTypes.default.bool
111
+ }),
104
112
  children: _propTypes.default.node,
105
113
  className: _propTypes.default.string,
106
114
  /**
@@ -4,5 +4,6 @@ import { UseChartInteractionSignature } from "../internals/plugins/featurePlugin
4
4
  import { UseChartHighlightSignature } from "../internals/plugins/featurePlugins/useChartHighlight/index.js";
5
5
  import { UseChartKeyboardNavigationSignature } from "../internals/plugins/featurePlugins/useChartKeyboardNavigation/index.js";
6
6
  import { ConvertSignaturesIntoPlugins } from "../internals/plugins/models/helpers.js";
7
- export type BarChartPluginSignatures = [UseChartZAxisSignature, UseChartCartesianAxisSignature<'bar'>, UseChartInteractionSignature, UseChartHighlightSignature, UseChartKeyboardNavigationSignature];
7
+ import { UseChartBrushSignature } from "../internals/plugins/featurePlugins/useChartBrush/index.js";
8
+ export type BarChartPluginSignatures = [UseChartZAxisSignature, UseChartBrushSignature, UseChartInteractionSignature, UseChartCartesianAxisSignature<'bar'>, UseChartHighlightSignature, UseChartKeyboardNavigationSignature];
8
9
  export declare const BAR_CHART_PLUGINS: ConvertSignaturesIntoPlugins<BarChartPluginSignatures>;
@@ -9,4 +9,5 @@ var _useChartCartesianAxis = require("../internals/plugins/featurePlugins/useCha
9
9
  var _useChartInteraction = require("../internals/plugins/featurePlugins/useChartInteraction");
10
10
  var _useChartHighlight = require("../internals/plugins/featurePlugins/useChartHighlight");
11
11
  var _useChartKeyboardNavigation = require("../internals/plugins/featurePlugins/useChartKeyboardNavigation");
12
- const BAR_CHART_PLUGINS = exports.BAR_CHART_PLUGINS = [_useChartZAxis.useChartZAxis, _useChartCartesianAxis.useChartCartesianAxis, _useChartInteraction.useChartInteraction, _useChartHighlight.useChartHighlight, _useChartKeyboardNavigation.useChartKeyboardNavigation];
12
+ var _useChartBrush = require("../internals/plugins/featurePlugins/useChartBrush");
13
+ const BAR_CHART_PLUGINS = exports.BAR_CHART_PLUGINS = [_useChartZAxis.useChartZAxis, _useChartBrush.useChartBrush, _useChartInteraction.useChartInteraction, _useChartCartesianAxis.useChartCartesianAxis, _useChartHighlight.useChartHighlight, _useChartKeyboardNavigation.useChartKeyboardNavigation];
@@ -7,9 +7,9 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.default = void 0;
8
8
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
9
  const getSeriesWithDefaultValues = (seriesData, seriesIndex, colors) => {
10
- return (0, _extends2.default)({
10
+ return (0, _extends2.default)({}, seriesData, {
11
11
  id: seriesData.id ?? `auto-generated-id-${seriesIndex}`,
12
- color: colors[seriesIndex % colors.length]
13
- }, seriesData);
12
+ color: seriesData.color ?? colors[seriesIndex % colors.length]
13
+ });
14
14
  };
15
15
  var _default = exports.default = getSeriesWithDefaultValues;
@@ -11,12 +11,14 @@ var _seriesProcessor = _interopRequireDefault(require("./seriesProcessor"));
11
11
  var _legend = _interopRequireDefault(require("./legend"));
12
12
  var _getColor = _interopRequireDefault(require("./getColor"));
13
13
  var _tooltip = _interopRequireWildcard(require("./tooltip"));
14
+ var _tooltipPosition = _interopRequireDefault(require("./tooltipPosition"));
14
15
  var _getSeriesWithDefaultValues = _interopRequireDefault(require("./getSeriesWithDefaultValues"));
15
16
  const seriesConfig = exports.seriesConfig = {
16
17
  seriesProcessor: _seriesProcessor.default,
17
18
  colorProcessor: _getColor.default,
18
19
  legendGetter: _legend.default,
19
20
  tooltipGetter: _tooltip.default,
21
+ tooltipItemPositionGetter: _tooltipPosition.default,
20
22
  axisTooltipGetter: _tooltip.axisTooltipGetter,
21
23
  xExtremumGetter: _extremums.getExtremumX,
22
24
  yExtremumGetter: _extremums.getExtremumY,
@@ -0,0 +1,3 @@
1
+ import type { TooltipItemPositionGetter } from "../../internals/plugins/models/seriesConfig/tooltipItemPositionGetter.types.js";
2
+ declare const tooltipItemPositionGetter: TooltipItemPositionGetter<'bar'>;
3
+ export default tooltipItemPositionGetter;
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _useBarPlotData = require("../useBarPlotData");
8
+ const tooltipItemPositionGetter = params => {
9
+ const {
10
+ series,
11
+ identifier,
12
+ axesConfig,
13
+ placement
14
+ } = params;
15
+ if (!identifier || identifier.dataIndex === undefined) {
16
+ return null;
17
+ }
18
+ const itemSeries = series.bar?.series[identifier.seriesId];
19
+ if (series.bar == null || itemSeries == null) {
20
+ return null;
21
+ }
22
+ if (axesConfig.x === undefined || axesConfig.y === undefined) {
23
+ return null;
24
+ }
25
+ const dimensions = (0, _useBarPlotData.getBarDimensions)({
26
+ verticalLayout: itemSeries.layout === 'vertical',
27
+ xAxisConfig: axesConfig.x,
28
+ yAxisConfig: axesConfig.y,
29
+ series: itemSeries,
30
+ dataIndex: identifier.dataIndex,
31
+ numberOfGroups: series.bar.stackingGroups.length,
32
+ groupIndex: series.bar.stackingGroups.findIndex(group => group.ids.includes(itemSeries.id))
33
+ });
34
+ if (dimensions == null) {
35
+ return null;
36
+ }
37
+ const {
38
+ x,
39
+ y,
40
+ width,
41
+ height
42
+ } = dimensions;
43
+ switch (placement) {
44
+ case 'right':
45
+ return {
46
+ x: x + width,
47
+ y: y + height / 2
48
+ };
49
+ case 'bottom':
50
+ return {
51
+ x: x + width / 2,
52
+ y: y + height
53
+ };
54
+ case 'left':
55
+ return {
56
+ x,
57
+ y: y + height / 2
58
+ };
59
+ case 'top':
60
+ default:
61
+ return {
62
+ x: x + width / 2,
63
+ y
64
+ };
65
+ }
66
+ };
67
+ var _default = exports.default = tooltipItemPositionGetter;
@@ -13,7 +13,7 @@ var React = _interopRequireWildcard(require("react"));
13
13
  var _useId = _interopRequireDefault(require("@mui/utils/useId"));
14
14
  var _constants = require("../constants");
15
15
  var _BarChart = require("./BarChart.plugins");
16
- const _excluded = ["xAxis", "yAxis", "series", "width", "height", "margin", "colors", "dataset", "sx", "axisHighlight", "grid", "children", "slots", "slotProps", "skipAnimation", "loading", "layout", "onItemClick", "highlightedItem", "onHighlightChange", "borderRadius", "barLabel", "className", "hideLegend", "showToolbar"];
16
+ const _excluded = ["xAxis", "yAxis", "series", "width", "height", "margin", "colors", "dataset", "sx", "axisHighlight", "grid", "children", "slots", "slotProps", "skipAnimation", "loading", "layout", "onItemClick", "highlightedItem", "onHighlightChange", "borderRadius", "barLabel", "className", "hideLegend", "showToolbar", "brushConfig"];
17
17
  /**
18
18
  * A helper function that extracts BarChartProps from the input props
19
19
  * and returns an object with props for the children components of BarChart.
@@ -45,7 +45,8 @@ const useBarChartProps = props => {
45
45
  onHighlightChange,
46
46
  borderRadius,
47
47
  barLabel,
48
- className
48
+ className,
49
+ brushConfig
49
50
  } = props,
50
51
  other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
51
52
  const id = (0, _useId.default)();
@@ -102,6 +103,7 @@ const useBarChartProps = props => {
102
103
  disableAxisListener: slotProps?.tooltip?.trigger !== 'axis' && axisHighlight?.x === 'none' && axisHighlight?.y === 'none',
103
104
  className,
104
105
  skipAnimation,
106
+ brushConfig,
105
107
  plugins: _BarChart.BAR_CHART_PLUGINS
106
108
  });
107
109
  const barPlotProps = {
@@ -1,8 +1,23 @@
1
- import { ChartsXAxisProps, ChartsYAxisProps } from "../models/axis.js";
1
+ import { ChartsXAxisProps, ChartsYAxisProps, ComputedAxis, ScaleName } from "../models/axis.js";
2
2
  import { ChartDrawingArea } from "../hooks/index.js";
3
3
  import { MaskData, ProcessedBarSeriesData } from "./types.js";
4
4
  import { ComputedAxisConfig } from "../internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxis.types.js";
5
+ import { ChartSeriesDefaultized } from "../models/seriesType/config.js";
5
6
  export declare function useBarPlotData(drawingArea: ChartDrawingArea, xAxes: ComputedAxisConfig<ChartsXAxisProps>, yAxes: ComputedAxisConfig<ChartsYAxisProps>): {
6
7
  completedData: ProcessedBarSeriesData[];
7
8
  masksData: MaskData[];
8
- };
9
+ };
10
+ export declare function getBarDimensions(params: {
11
+ verticalLayout: boolean;
12
+ xAxisConfig: ComputedAxis<ScaleName, any, ChartsXAxisProps>;
13
+ yAxisConfig: ComputedAxis<ScaleName, any, ChartsYAxisProps>;
14
+ series: ChartSeriesDefaultized<'bar'>;
15
+ dataIndex: number;
16
+ numberOfGroups: number;
17
+ groupIndex: number;
18
+ }): {
19
+ x: number;
20
+ y: number;
21
+ height: number;
22
+ width: number;
23
+ } | null;
@@ -4,7 +4,9 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
+ exports.getBarDimensions = getBarDimensions;
7
8
  exports.useBarPlotData = useBarPlotData;
9
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
8
10
  var _getColor = _interopRequireDefault(require("./seriesConfig/getColor"));
9
11
  var _hooks = require("../hooks");
10
12
  var _checkScaleErrors = require("./checkScaleErrors");
@@ -42,50 +44,32 @@ function useBarPlotData(drawingArea, xAxes, yAxes) {
42
44
  const xScale = xAxisConfig.scale;
43
45
  const yScale = yAxisConfig.scale;
44
46
  const colorGetter = (0, _getColor.default)(series[seriesId], xAxes[xAxisId], yAxes[yAxisId]);
45
- const bandWidth = baseScaleConfig.scale.bandwidth();
46
- const {
47
- barWidth,
48
- offset
49
- } = getBandSize({
50
- bandWidth,
51
- numberOfGroups: stackingGroups.length,
52
- gapRatio: baseScaleConfig.barGapRatio
53
- });
54
- const barOffset = groupIndex * (barWidth + offset);
55
- const {
56
- stackedData,
57
- data: currentSeriesData,
58
- layout,
59
- minBarSize
60
- } = series[seriesId];
61
47
  const seriesDataPoints = [];
62
48
  for (let dataIndex = 0; dataIndex < baseScaleConfig.data.length; dataIndex += 1) {
63
- const baseValue = baseScaleConfig.data[dataIndex];
64
- const seriesValue = currentSeriesData[dataIndex];
65
- if (seriesValue == null) {
49
+ const barDimensions = getBarDimensions({
50
+ verticalLayout,
51
+ xAxisConfig,
52
+ yAxisConfig,
53
+ series: series[seriesId],
54
+ dataIndex,
55
+ numberOfGroups: stackingGroups.length,
56
+ groupIndex
57
+ });
58
+ if (barDimensions == null) {
66
59
  continue;
67
60
  }
68
- const values = stackedData[dataIndex];
69
- const valueCoordinates = values.map(v => verticalLayout ? yScale(v) : xScale(v));
70
- const minValueCoord = Math.round(Math.min(...valueCoordinates));
71
- const maxValueCoord = Math.round(Math.max(...valueCoordinates));
72
61
  const stackId = series[seriesId].stack;
73
- const barSize = seriesValue === 0 ? 0 : Math.max(minBarSize, maxValueCoord - minValueCoord);
74
- const startCoordinate = shouldInvertStartCoordinate(verticalLayout, seriesValue, reverse) ? maxValueCoord - barSize : minValueCoord;
75
- const result = {
62
+ const result = (0, _extends2.default)({
76
63
  seriesId,
77
64
  dataIndex,
78
- layout,
79
- x: verticalLayout ? xScale(baseValue) + barOffset : startCoordinate,
80
- y: verticalLayout ? startCoordinate : yScale(baseValue) + barOffset,
65
+ layout: series[seriesId].layout,
81
66
  xOrigin: xScale(0) ?? 0,
82
- yOrigin: yScale(0) ?? 0,
83
- height: verticalLayout ? barSize : barWidth,
84
- width: verticalLayout ? barWidth : barSize,
67
+ yOrigin: yScale(0) ?? 0
68
+ }, barDimensions, {
85
69
  color: colorGetter(dataIndex),
86
- value: currentSeriesData[dataIndex],
70
+ value: series[seriesId].data[dataIndex],
87
71
  maskId: `${chartId}_${stackId || seriesId}_${groupIndex}_${dataIndex}`
88
- };
72
+ });
89
73
  if (result.x > xMax || result.x + result.width < xMin || result.y > yMax || result.y + result.height < yMin) {
90
74
  continue;
91
75
  }
@@ -157,4 +141,45 @@ function shouldInvertStartCoordinate(verticalLayout, baseValue, reverse) {
157
141
  const isHorizontalAndNegative = !verticalLayout && baseValue < 0;
158
142
  const invertStartCoordinate = isVerticalAndPositive || isHorizontalAndNegative;
159
143
  return reverse ? !invertStartCoordinate : invertStartCoordinate;
144
+ }
145
+ function getBarDimensions(params) {
146
+ const {
147
+ verticalLayout,
148
+ xAxisConfig,
149
+ yAxisConfig,
150
+ series,
151
+ dataIndex,
152
+ numberOfGroups,
153
+ groupIndex
154
+ } = params;
155
+ const baseScaleConfig = verticalLayout ? xAxisConfig : yAxisConfig;
156
+ const reverse = (verticalLayout ? yAxisConfig.reverse : xAxisConfig.reverse) ?? false;
157
+ const {
158
+ barWidth,
159
+ offset
160
+ } = getBandSize({
161
+ bandWidth: baseScaleConfig.scale.bandwidth(),
162
+ numberOfGroups,
163
+ gapRatio: baseScaleConfig.barGapRatio
164
+ });
165
+ const barOffset = groupIndex * (barWidth + offset);
166
+ const xScale = xAxisConfig.scale;
167
+ const yScale = yAxisConfig.scale;
168
+ const baseValue = baseScaleConfig.data[dataIndex];
169
+ const seriesValue = series.data[dataIndex];
170
+ if (seriesValue == null) {
171
+ return null;
172
+ }
173
+ const values = series.stackedData[dataIndex];
174
+ const valueCoordinates = values.map(v => verticalLayout ? yScale(v) : xScale(v));
175
+ const minValueCoord = Math.round(Math.min(...valueCoordinates));
176
+ const maxValueCoord = Math.round(Math.max(...valueCoordinates));
177
+ const barSize = seriesValue === 0 ? 0 : Math.max(series.minBarSize, maxValueCoord - minValueCoord);
178
+ const startCoordinate = shouldInvertStartCoordinate(verticalLayout, seriesValue, reverse) ? maxValueCoord - barSize : minValueCoord;
179
+ return {
180
+ x: verticalLayout ? xScale(baseValue) + barOffset : startCoordinate,
181
+ y: verticalLayout ? startCoordinate : yScale(baseValue) + barOffset,
182
+ height: verticalLayout ? barSize : barWidth,
183
+ width: verticalLayout ? barWidth : barSize
184
+ };
160
185
  }
package/CHANGELOG.md CHANGED
@@ -5,6 +5,213 @@
5
5
  All notable changes to this project will be documented in this file.
6
6
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
7
7
 
8
+ ## 8.16.0
9
+
10
+ _Oct 29, 2025_
11
+
12
+ We'd like to extend a big thank you to the 14 contributors who made this release possible. Here are some highlights ✨:
13
+
14
+ - 🖌️ Add `brush` zoom interaction to charts
15
+ - 🔁 [Server-side update](https://mui.com/x/react-data-grid/server-side-data/#updating-server-side-data) in a grid with tree data/row grouping and aggregation will trigger re-fetch for all parent levels of that row to update aggregated values. See the [demo](https://mui.com/x/react-data-grid/server-side-data/aggregation/#usage-with-tree-data).
16
+
17
+ Special thanks go out to the community members for their valuable contributions:
18
+ @felix-wg, @frncesc, @sai6855
19
+
20
+ The following are all team members who have contributed to this release:
21
+ @alexfauquette, @arminmeh, @bernardobelchior, @brijeshb42, @flaviendelangle, @JCQuintas, @MBilalShafi, @mbrookes, @michelengelen, @noraleonte, @rita-codes
22
+
23
+ ### Data Grid
24
+
25
+ #### `@mui/x-data-grid@8.16.0`
26
+
27
+ - [DataGrid] Ignore `Ctrl+A` key combination for the row selection in the community version (#20110) @felix-wg
28
+ - [DataGrid][l10n] Improve Spanish (es-ES) locale (#20134) @frncesc
29
+
30
+ #### `@mui/x-data-grid-pro@8.16.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
31
+
32
+ Same changes as in `@mui/x-data-grid@8.16.0`, plus:
33
+
34
+ - [DataGridPro] Add explicit return type to `getVisibleRowsLookup()` to fix the build with `tsc` (#20116) @arminmeh
35
+ - [DataGridPro] Retain the expansion state with expansion configuration props (#20126) @MBilalShafi
36
+
37
+ #### `@mui/x-data-grid-premium@8.16.0` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
38
+
39
+ Same changes as in `@mui/x-data-grid-pro@8.16.0`, plus:
40
+
41
+ - [DataGridPremium] Export and restore chart integration state (#20079) @arminmeh
42
+ - [DataGridPremium] Fix grouping column `valueFormatter()` crash (#20070) @sai6855
43
+ - [DataGridPremium] Refetch aggregation data after row update with server-side aggregation (#20039) @arminmeh
44
+
45
+ ### Date and Time Pickers
46
+
47
+ #### `@mui/x-date-pickers@8.16.0`
48
+
49
+ - [pickers] Prevent blur event propagation on individual sections (#19825) @michelengelen
50
+
51
+ #### `@mui/x-date-pickers-pro@8.16.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
52
+
53
+ Same changes as in `@mui/x-date-pickers@8.16.0`.
54
+
55
+ ### Charts
56
+
57
+ #### `@mui/x-charts@8.16.0`
58
+
59
+ - [charts] Allow tooltip to anchor items (#19954) @alexfauquette
60
+ - [charts] Fix behavior of grouped axis (#20118) @JCQuintas
61
+ - [charts] Move scale symlog inside scales (#20137) @JCQuintas
62
+ - [charts] Fix AreaChartConnectNulls demo height not correctly resizing (#20078) @sai6855
63
+ - [charts] Fix charts resizing overflow (#20080) @alexfauquette
64
+ - [charts] Fix tooltip not showing on first render (#20115) @bernardobelchior
65
+ - [charts] Handle `undefined` id and color in series (#20087) @bernardobelchior
66
+ - [charts] Remove `useMemo` from isZoomOn*Enabled and isPanOn*Enabled hooks (#20132) @Copilot
67
+ - [charts] Use static data for perf (#20072) @JCQuintas
68
+ - [charts] Move scale symlog inside scales (#20137) @JCQuintas
69
+
70
+ #### `@mui/x-charts-pro@8.16.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
71
+
72
+ Same changes as in `@mui/x-charts@8.16.0`, plus:
73
+
74
+ - [charts-pro] Add `brush` zoom interaction (#19899) @JCQuintas
75
+ - [charts-pro] Add sankey performance check (#20069) @JCQuintas
76
+
77
+ #### `@mui/x-charts-premium@8.16.0` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
78
+
79
+ Same changes as in `@mui/x-charts-pro@8.16.0`.
80
+
81
+ ### Tree View
82
+
83
+ #### `@mui/x-tree-view@8.16.0`
84
+
85
+ Internal changes.
86
+
87
+ #### `@mui/x-tree-view-pro@8.16.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
88
+
89
+ Same changes as in `@mui/x-tree-view@8.16.0`.
90
+
91
+ ### Codemod
92
+
93
+ #### `@mui/x-codemod@8.16.0`
94
+
95
+ Internal changes.
96
+
97
+ ### Core
98
+
99
+ - [code-infra] Setup eslint compat plugin (#20105) @brijeshb42
100
+ - [code-infra] Improve store types (#20129) @JCQuintas
101
+ - [docs] Update the callout in `rows` prop documentation (#20127) @MBilalShafi
102
+ - [docs-infra] Refine changelog contributor acknowledgment messages (#20123) @mbrookes
103
+
104
+ ### Miscellaneous
105
+
106
+ - [x-telemetry] Skip telemetry tests on browser mode (#20122) @bernardobelchior
107
+
108
+ ## 8.15.0
109
+
110
+ _Oct 23, 2025_
111
+
112
+ We'd like to extend a big thank you to the 14 contributors who made this release possible. Here are some highlights ✨:
113
+
114
+ - 🖌️ Add new [`brush` charts interaction](https://mui.com/x/react-charts/brush/) for building custom behavior.
115
+ ![brush visualization example](https://github.com/user-attachments/assets/60c382a1-e418-4736-8dcb-1567c4e361e3)
116
+ - ⚡️ Performance improvements for large bar charts
117
+ - 🤖 Data Grid AI assistant can now [visualize the query results](https://mui.com/x/react-data-grid/ai-assistant/#data-visualization) by controlling the chart integration settings
118
+ - 📦 DataGrid uses an internal MUI fork of ExcelJS that does not depend on vulnerable versions of NPM packages
119
+ - 🐞 Bugfixes
120
+ - 📚 Documentation improvements
121
+
122
+ Special thanks go out to the community members for their valuable contributions:
123
+ @ZagrebaAlex
124
+
125
+ The following are all team members who have contributed to this release:
126
+ @alexfauquette, @bernardobelchior, @cherniavskii, @flaviendelangle, @Janpot, @JCQuintas, @KenanYusuf, @prakhargupta1, @rita-codes, @siriwatknp, @arminmeh, @brijeshb42, @noraleonte
127
+
128
+ ### Data Grid
129
+
130
+ #### `@mui/x-data-grid@8.15.0`
131
+
132
+ - [DataGrid] Fix `dataSource.fetchRows` API's return type (#20068) @arminmeh
133
+
134
+ #### `@mui/x-data-grid-pro@8.15.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
135
+
136
+ Same changes as in `@mui/x-data-grid@8.15.0`, plus:
137
+
138
+ - [DataGridPro] Keep children in the tree after parent row is re-fetched with the data source (#19934) @arminmeh
139
+ - [DataGridPro] Support scroll shadows customization (#19982) @KenanYusuf
140
+
141
+ #### `@mui/x-data-grid-premium@8.15.0` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
142
+
143
+ Same changes as in `@mui/x-data-grid-pro@8.15.0`, plus:
144
+
145
+ - [DataGridPremium] Use ExcelJS fork (#19796) @cherniavskii
146
+ - [DataGridPremium] Support data visualization in AI Assistant (#19831) @arminmeh
147
+
148
+ ### Date and Time Pickers
149
+
150
+ #### `@mui/x-date-pickers@8.15.0`
151
+
152
+ Internal changes.
153
+
154
+ #### `@mui/x-date-pickers-pro@8.15.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
155
+
156
+ Same changes as in `@mui/x-date-pickers@8.15.0`.
157
+
158
+ ### Charts
159
+
160
+ #### `@mui/x-charts@8.15.0`
161
+
162
+ - [charts] Add `ChartsBrushOverlay` and allow brush configuration (#19956) @JCQuintas
163
+ - [charts] Add `getStringSize` benchmark. Remove benchmarks from built package. (#19995) @bernardobelchior
164
+ - [charts] Batch string size measurement (#19994) @bernardobelchior
165
+ - [charts] Fix console issue (#20025) @JCQuintas
166
+ - [charts] Fix is[ZoomFeature]Enabled type (#20058) @alexfauquette
167
+ - [charts] Fix reference line middle spacing (#20004) @JCQuintas
168
+ - [charts] Improve `getStringSize` and `batchMeasureStrings` performance (#19996) @bernardobelchior
169
+ - [charts] Improve deep export script (#20007) @JCQuintas
170
+ - [charts] Improve string measurement benchmarks (#19999) @bernardobelchior
171
+ - [charts] Measure string sizes using SVG elements (#19981) @bernardobelchior
172
+ - [l10n] Improve Greek (gr-GR) locale (#20060) @ZagrebaAlex
173
+
174
+ #### `@mui/x-charts-pro@8.15.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
175
+
176
+ Same changes as in `@mui/x-charts@8.15.0`, plus:
177
+
178
+ - [charts-pro] Fix pan with `axis.reverse` (#20031) @JCQuintas
179
+
180
+ #### `@mui/x-charts-premium@8.15.0` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
181
+
182
+ Same changes as in `@mui/x-charts-pro@8.15.0`.
183
+
184
+ ### Tree View
185
+
186
+ #### `@mui/x-tree-view@8.15.0`
187
+
188
+ - [tree view] Multi character type-ahead (#19942) @noraleonte
189
+
190
+ #### `@mui/x-tree-view-pro@8.15.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
191
+
192
+ Same changes as in `@mui/x-tree-view@8.15.0`.
193
+
194
+ ### Codemod
195
+
196
+ #### `@mui/x-codemod@8.14.0`
197
+
198
+ Internal changes.
199
+
200
+ ### Docs
201
+
202
+ - [docs] Add overview section for scatter chart and heatmap (#19888) @prakhargupta1
203
+ - [docs] Add charts bell curve example (#20003) @JCQuintas
204
+ - [docs] Add grouped multiple fields for Data Grid row grouping recipe (#19964) @siriwatknp
205
+ - [docs] Add Data Grid loading state recipe (#19958) @siriwatknp
206
+
207
+ ### Core
208
+
209
+ - [code-infra] Remove @mui/monorepo usage for react versioning (#19894) @Janpot
210
+ - [code-infra] Remove invalid `environment: 'browser'` from vitest browser config (#19993) @bernardobelchior
211
+ - [code-infra] Remove unused babel aliases (#19987) @Janpot
212
+ - [code-infra] Turn on all testing-library eslint rules (#19946) @brijeshb42
213
+ - [docs-infra] Fix broken hash link (#20062) @Janpot
214
+
8
215
  ## 8.14.1
9
216
 
10
217
  _Oct 16, 2025_
@@ -61,6 +61,14 @@ process.env.NODE_ENV !== "production" ? ChartContainer.propTypes = {
61
61
  apiRef: _propTypes.default.shape({
62
62
  current: _propTypes.default.object
63
63
  }),
64
+ /**
65
+ * Configuration for the brush interaction.
66
+ */
67
+ brushConfig: _propTypes.default.shape({
68
+ enabled: _propTypes.default.bool,
69
+ preventHighlight: _propTypes.default.bool,
70
+ preventTooltip: _propTypes.default.bool
71
+ }),
64
72
  children: _propTypes.default.node,
65
73
  className: _propTypes.default.string,
66
74
  /**
@@ -9,7 +9,7 @@ exports.useChartContainerProps = void 0;
9
9
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
10
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
11
11
  var _allPlugins = require("../internals/plugins/allPlugins");
12
- const _excluded = ["width", "height", "margin", "children", "series", "colors", "dataset", "desc", "onAxisClick", "highlightedAxis", "onHighlightedAxisChange", "disableVoronoi", "voronoiMaxRadius", "onItemClick", "disableAxisListener", "highlightedItem", "onHighlightChange", "sx", "title", "xAxis", "yAxis", "zAxis", "rotationAxis", "radiusAxis", "skipAnimation", "seriesConfig", "plugins", "localeText", "slots", "slotProps", "experimentalFeatures", "enableKeyboardNavigation"];
12
+ const _excluded = ["width", "height", "margin", "children", "series", "colors", "dataset", "desc", "onAxisClick", "highlightedAxis", "onHighlightedAxisChange", "disableVoronoi", "voronoiMaxRadius", "onItemClick", "disableAxisListener", "highlightedItem", "onHighlightChange", "sx", "title", "xAxis", "yAxis", "zAxis", "rotationAxis", "radiusAxis", "skipAnimation", "seriesConfig", "plugins", "localeText", "slots", "slotProps", "experimentalFeatures", "enableKeyboardNavigation", "brushConfig"];
13
13
  const useChartContainerProps = (props, ref) => {
14
14
  const _ref = props,
15
15
  {
@@ -44,7 +44,8 @@ const useChartContainerProps = (props, ref) => {
44
44
  slots,
45
45
  slotProps,
46
46
  experimentalFeatures,
47
- enableKeyboardNavigation
47
+ enableKeyboardNavigation,
48
+ brushConfig
48
49
  } = _ref,
49
50
  other = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded);
50
51
  const chartsSurfaceProps = (0, _extends2.default)({
@@ -79,6 +80,7 @@ const useChartContainerProps = (props, ref) => {
79
80
  seriesConfig,
80
81
  experimentalFeatures,
81
82
  enableKeyboardNavigation,
83
+ brushConfig,
82
84
  plugins: plugins ?? _allPlugins.DEFAULT_PLUGINS,
83
85
  slots,
84
86
  slotProps
@@ -17,7 +17,8 @@ var _ChartsAxisHighlightPath = require("./ChartsAxisHighlightPath");
17
17
  var _jsxRuntime = require("react/jsx-runtime");
18
18
  /**
19
19
  * @ignore - internal component.
20
- */function ChartsXHighlight(props) {
20
+ */
21
+ function ChartsXHighlight(props) {
21
22
  const {
22
23
  type,
23
24
  classes
@@ -17,7 +17,8 @@ var _ChartsAxisHighlightPath = require("./ChartsAxisHighlightPath");
17
17
  var _jsxRuntime = require("react/jsx-runtime");
18
18
  /**
19
19
  * @ignore - internal component.
20
- */function ChartsYHighlight(props) {
20
+ */
21
+ function ChartsYHighlight(props) {
21
22
  const {
22
23
  type,
23
24
  classes
@@ -0,0 +1,12 @@
1
+ export interface BrushOverlayClasses {
2
+ /** Styles applied to the root element. */
3
+ root: string;
4
+ /** Styles applied to the brush lines. */
5
+ rect: string;
6
+ /** Styles applied when the brush is selecting the x axis. */
7
+ x: string;
8
+ /** Styles applied when the brush is selecting the y axis. */
9
+ y: string;
10
+ }
11
+ export type BrushOverlayClassKey = keyof BrushOverlayClasses;
12
+ export declare const brushOverlayClasses: BrushOverlayClasses;
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.brushOverlayClasses = void 0;
8
+ var _generateUtilityClasses = _interopRequireDefault(require("@mui/utils/generateUtilityClasses"));
9
+ const brushOverlayClasses = exports.brushOverlayClasses = (0, _generateUtilityClasses.default)('MuiChartsBrushOverlay', ['root', 'rect', 'x', 'y']);
@@ -0,0 +1,6 @@
1
+ import * as React from 'react';
2
+ export interface ChartsBrushOverlayProps {}
3
+ /**
4
+ * Component that renders visual feedback during brush interaction
5
+ */
6
+ export declare function ChartsBrushOverlay(props: ChartsBrushOverlayProps): React.JSX.Element | null;