@mui/x-charts 8.13.1 → 8.14.1

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 (134) hide show
  1. package/BarChart/BarChart.js +44 -36
  2. package/BarChart/useBarPlotData.js +20 -33
  3. package/CHANGELOG.md +204 -1
  4. package/ChartContainer/ChartContainer.js +68 -56
  5. package/ChartsTooltip/ChartsTooltipContainer.js +2 -0
  6. package/ChartsXAxis/useAxisTicksProps.d.ts +197 -355
  7. package/ChartsYAxis/useAxisTicksProps.d.ts +197 -355
  8. package/Gauge/Gauge.js +2 -9
  9. package/Gauge/GaugeReferenceArc.d.ts +4 -1
  10. package/Gauge/GaugeReferenceArc.js +12 -3
  11. package/Gauge/GaugeValueArc.d.ts +4 -1
  12. package/Gauge/GaugeValueArc.js +16 -8
  13. package/Gauge/GaugeValueText.js +3 -1
  14. package/LineChart/LineChart.js +44 -36
  15. package/PieChart/PieArc.d.ts +18 -4
  16. package/PieChart/PieArc.js +11 -5
  17. package/PieChart/PieArcPlot.js +3 -1
  18. package/ScatterChart/ScatterChart.js +44 -36
  19. package/ScatterChart/seriesConfig/seriesProcessor.js +1 -1
  20. package/SparkLineChart/SparkLineChart.js +44 -36
  21. package/esm/BarChart/BarChart.js +44 -36
  22. package/esm/BarChart/useBarPlotData.js +20 -33
  23. package/esm/ChartContainer/ChartContainer.js +68 -56
  24. package/esm/ChartsTooltip/ChartsTooltipContainer.js +2 -0
  25. package/esm/ChartsXAxis/useAxisTicksProps.d.ts +197 -355
  26. package/esm/ChartsYAxis/useAxisTicksProps.d.ts +197 -355
  27. package/esm/Gauge/Gauge.js +2 -9
  28. package/esm/Gauge/GaugeReferenceArc.d.ts +4 -1
  29. package/esm/Gauge/GaugeReferenceArc.js +11 -2
  30. package/esm/Gauge/GaugeValueArc.d.ts +4 -1
  31. package/esm/Gauge/GaugeValueArc.js +16 -8
  32. package/esm/Gauge/GaugeValueText.js +3 -1
  33. package/esm/LineChart/LineChart.js +44 -36
  34. package/esm/PieChart/PieArc.d.ts +18 -4
  35. package/esm/PieChart/PieArc.js +11 -5
  36. package/esm/PieChart/PieArcPlot.js +3 -1
  37. package/esm/ScatterChart/ScatterChart.js +44 -36
  38. package/esm/ScatterChart/seriesConfig/seriesProcessor.js +1 -1
  39. package/esm/SparkLineChart/SparkLineChart.js +44 -36
  40. package/esm/hooks/animation/useAnimate.js +5 -3
  41. package/esm/hooks/useScale.d.ts +5 -1
  42. package/esm/index.js +1 -1
  43. package/esm/internals/Flatbush.bench.d.ts +1 -0
  44. package/esm/internals/Flatbush.bench.js +42 -0
  45. package/esm/internals/Flatbush.d.ts +63 -0
  46. package/esm/internals/Flatbush.js +468 -0
  47. package/esm/internals/animation/useAnimateInternal.d.ts +1 -1
  48. package/esm/internals/animation/useAnimateInternal.js +1 -1
  49. package/esm/internals/plugins/corePlugins/useChartInteractionListener/useChartInteractionListener.js +8 -8
  50. package/esm/internals/plugins/corePlugins/useChartInteractionListener/useChartInteractionListener.types.d.ts +4 -2
  51. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/computeAxisValue.d.ts +9 -11
  52. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/computeAxisValue.js +4 -28
  53. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/createAxisFilterMapper.d.ts +4 -5
  54. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/createAxisFilterMapper.js +3 -24
  55. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/domain.d.ts +20 -0
  56. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/domain.js +77 -0
  57. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/getAxisScale.d.ts +4 -65
  58. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/getAxisScale.js +7 -104
  59. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/getAxisValue.d.ts +6 -2
  60. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/getAxisValue.js +3 -6
  61. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisPreview.selectors.d.ts +3 -3
  62. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisPreview.selectors.js +31 -39
  63. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisRendering.selectors.d.ts +185 -6
  64. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisRendering.selectors.js +199 -47
  65. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianInteraction.selectors.js +4 -1
  66. package/esm/internals/plugins/featurePlugins/useChartClosestPoint/findClosestPoints.d.ts +5 -0
  67. package/esm/internals/plugins/featurePlugins/useChartClosestPoint/findClosestPoints.js +33 -0
  68. package/esm/internals/plugins/featurePlugins/useChartClosestPoint/useChartClosestPoint.js +40 -81
  69. package/esm/internals/plugins/featurePlugins/useChartHighlight/useChartHighlight.js +10 -3
  70. package/esm/internals/plugins/featurePlugins/useChartHighlight/useChartHighlight.selectors.d.ts +4 -4
  71. package/esm/internals/plugins/featurePlugins/useChartHighlight/useChartHighlight.selectors.js +3 -2
  72. package/esm/internals/plugins/featurePlugins/useChartHighlight/useChartHighlight.types.d.ts +6 -0
  73. package/esm/internals/plugins/featurePlugins/useChartKeyboardNavigation/useChartKeyboardNavigation.js +5 -1
  74. package/esm/internals/plugins/featurePlugins/useChartKeyboardNavigation/useChartKeyboardNavigation.selectors.d.ts +9 -1
  75. package/esm/internals/plugins/featurePlugins/useChartKeyboardNavigation/useChartKeyboardNavigation.selectors.js +10 -1
  76. package/esm/internals/plugins/featurePlugins/useChartKeyboardNavigation/useChartKeyboardNavigation.types.d.ts +2 -1
  77. package/esm/internals/plugins/featurePlugins/useChartPolarAxis/computeAxisValue.js +2 -2
  78. package/esm/internals/scaleGuards.d.ts +12 -6
  79. package/esm/internals/symlogScale.js +5 -0
  80. package/esm/locales/enUS.js +4 -4
  81. package/esm/locales/ptBR.js +97 -99
  82. package/esm/models/axis.d.ts +39 -17
  83. package/esm/models/axis.js +3 -0
  84. package/esm/models/seriesType/scatter.d.ts +2 -0
  85. package/esm/themeAugmentation/components.d.ts +3 -0
  86. package/esm/themeAugmentation/overrides.d.ts +2 -0
  87. package/hooks/animation/useAnimate.js +4 -3
  88. package/hooks/useScale.d.ts +5 -1
  89. package/index.js +1 -1
  90. package/internals/Flatbush.bench.d.ts +1 -0
  91. package/internals/Flatbush.bench.js +44 -0
  92. package/internals/Flatbush.d.ts +63 -0
  93. package/internals/Flatbush.js +477 -0
  94. package/internals/animation/useAnimateInternal.d.ts +1 -1
  95. package/internals/animation/useAnimateInternal.js +1 -1
  96. package/internals/plugins/corePlugins/useChartInteractionListener/useChartInteractionListener.js +7 -7
  97. package/internals/plugins/corePlugins/useChartInteractionListener/useChartInteractionListener.types.d.ts +4 -2
  98. package/internals/plugins/featurePlugins/useChartCartesianAxis/computeAxisValue.d.ts +9 -11
  99. package/internals/plugins/featurePlugins/useChartCartesianAxis/computeAxisValue.js +4 -28
  100. package/internals/plugins/featurePlugins/useChartCartesianAxis/createAxisFilterMapper.d.ts +4 -5
  101. package/internals/plugins/featurePlugins/useChartCartesianAxis/createAxisFilterMapper.js +3 -25
  102. package/internals/plugins/featurePlugins/useChartCartesianAxis/domain.d.ts +20 -0
  103. package/internals/plugins/featurePlugins/useChartCartesianAxis/domain.js +84 -0
  104. package/internals/plugins/featurePlugins/useChartCartesianAxis/getAxisScale.d.ts +4 -65
  105. package/internals/plugins/featurePlugins/useChartCartesianAxis/getAxisScale.js +8 -108
  106. package/internals/plugins/featurePlugins/useChartCartesianAxis/getAxisValue.d.ts +6 -2
  107. package/internals/plugins/featurePlugins/useChartCartesianAxis/getAxisValue.js +3 -6
  108. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisPreview.selectors.d.ts +3 -3
  109. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisPreview.selectors.js +29 -37
  110. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisRendering.selectors.d.ts +185 -6
  111. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisRendering.selectors.js +200 -47
  112. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianInteraction.selectors.js +4 -1
  113. package/internals/plugins/featurePlugins/useChartClosestPoint/findClosestPoints.d.ts +5 -0
  114. package/internals/plugins/featurePlugins/useChartClosestPoint/findClosestPoints.js +39 -0
  115. package/internals/plugins/featurePlugins/useChartClosestPoint/useChartClosestPoint.js +39 -80
  116. package/internals/plugins/featurePlugins/useChartHighlight/useChartHighlight.js +10 -3
  117. package/internals/plugins/featurePlugins/useChartHighlight/useChartHighlight.selectors.d.ts +4 -4
  118. package/internals/plugins/featurePlugins/useChartHighlight/useChartHighlight.selectors.js +3 -2
  119. package/internals/plugins/featurePlugins/useChartHighlight/useChartHighlight.types.d.ts +6 -0
  120. package/internals/plugins/featurePlugins/useChartKeyboardNavigation/useChartKeyboardNavigation.js +5 -1
  121. package/internals/plugins/featurePlugins/useChartKeyboardNavigation/useChartKeyboardNavigation.selectors.d.ts +9 -1
  122. package/internals/plugins/featurePlugins/useChartKeyboardNavigation/useChartKeyboardNavigation.selectors.js +11 -2
  123. package/internals/plugins/featurePlugins/useChartKeyboardNavigation/useChartKeyboardNavigation.types.d.ts +2 -1
  124. package/internals/plugins/featurePlugins/useChartPolarAxis/computeAxisValue.js +1 -1
  125. package/internals/scaleGuards.d.ts +12 -6
  126. package/internals/symlogScale.js +5 -0
  127. package/locales/enUS.js +4 -4
  128. package/locales/ptBR.js +97 -99
  129. package/models/axis.d.ts +39 -17
  130. package/models/axis.js +4 -0
  131. package/models/seriesType/scatter.d.ts +2 -0
  132. package/package.json +7 -6
  133. package/themeAugmentation/components.d.ts +3 -0
  134. package/themeAugmentation/overrides.d.ts +2 -0
@@ -282,8 +282,6 @@ process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
282
282
  ignoreTooltip: _propTypes.default.bool,
283
283
  label: _propTypes.default.string,
284
284
  labelStyle: _propTypes.default.object,
285
- max: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
286
- min: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
287
285
  offset: _propTypes.default.number,
288
286
  position: _propTypes.default.oneOf(['bottom', 'none', 'top']),
289
287
  reverse: _propTypes.default.bool,
@@ -336,8 +334,6 @@ process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
336
334
  ignoreTooltip: _propTypes.default.bool,
337
335
  label: _propTypes.default.string,
338
336
  labelStyle: _propTypes.default.object,
339
- max: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
340
- min: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
341
337
  offset: _propTypes.default.number,
342
338
  position: _propTypes.default.oneOf(['bottom', 'none', 'top']),
343
339
  reverse: _propTypes.default.bool,
@@ -380,8 +376,8 @@ process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
380
376
  ignoreTooltip: _propTypes.default.bool,
381
377
  label: _propTypes.default.string,
382
378
  labelStyle: _propTypes.default.object,
383
- max: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
384
- min: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
379
+ max: _propTypes.default.number,
380
+ min: _propTypes.default.number,
385
381
  offset: _propTypes.default.number,
386
382
  position: _propTypes.default.oneOf(['bottom', 'none', 'top']),
387
383
  reverse: _propTypes.default.bool,
@@ -425,8 +421,8 @@ process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
425
421
  ignoreTooltip: _propTypes.default.bool,
426
422
  label: _propTypes.default.string,
427
423
  labelStyle: _propTypes.default.object,
428
- max: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
429
- min: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
424
+ max: _propTypes.default.number,
425
+ min: _propTypes.default.number,
430
426
  offset: _propTypes.default.number,
431
427
  position: _propTypes.default.oneOf(['bottom', 'none', 'top']),
432
428
  reverse: _propTypes.default.bool,
@@ -469,8 +465,8 @@ process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
469
465
  ignoreTooltip: _propTypes.default.bool,
470
466
  label: _propTypes.default.string,
471
467
  labelStyle: _propTypes.default.object,
472
- max: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
473
- min: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
468
+ max: _propTypes.default.number,
469
+ min: _propTypes.default.number,
474
470
  offset: _propTypes.default.number,
475
471
  position: _propTypes.default.oneOf(['bottom', 'none', 'top']),
476
472
  reverse: _propTypes.default.bool,
@@ -513,8 +509,8 @@ process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
513
509
  ignoreTooltip: _propTypes.default.bool,
514
510
  label: _propTypes.default.string,
515
511
  labelStyle: _propTypes.default.object,
516
- max: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
517
- min: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
512
+ max: _propTypes.default.number,
513
+ min: _propTypes.default.number,
518
514
  offset: _propTypes.default.number,
519
515
  position: _propTypes.default.oneOf(['bottom', 'none', 'top']),
520
516
  reverse: _propTypes.default.bool,
@@ -557,8 +553,12 @@ process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
557
553
  ignoreTooltip: _propTypes.default.bool,
558
554
  label: _propTypes.default.string,
559
555
  labelStyle: _propTypes.default.object,
560
- max: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
561
- min: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
556
+ max: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.shape({
557
+ valueOf: _propTypes.default.func.isRequired
558
+ })]),
559
+ min: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.shape({
560
+ valueOf: _propTypes.default.func.isRequired
561
+ })]),
562
562
  offset: _propTypes.default.number,
563
563
  position: _propTypes.default.oneOf(['bottom', 'none', 'top']),
564
564
  reverse: _propTypes.default.bool,
@@ -601,8 +601,12 @@ process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
601
601
  ignoreTooltip: _propTypes.default.bool,
602
602
  label: _propTypes.default.string,
603
603
  labelStyle: _propTypes.default.object,
604
- max: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
605
- min: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
604
+ max: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.shape({
605
+ valueOf: _propTypes.default.func.isRequired
606
+ })]),
607
+ min: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.shape({
608
+ valueOf: _propTypes.default.func.isRequired
609
+ })]),
606
610
  offset: _propTypes.default.number,
607
611
  position: _propTypes.default.oneOf(['bottom', 'none', 'top']),
608
612
  reverse: _propTypes.default.bool,
@@ -645,8 +649,8 @@ process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
645
649
  ignoreTooltip: _propTypes.default.bool,
646
650
  label: _propTypes.default.string,
647
651
  labelStyle: _propTypes.default.object,
648
- max: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
649
- min: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
652
+ max: _propTypes.default.number,
653
+ min: _propTypes.default.number,
650
654
  offset: _propTypes.default.number,
651
655
  position: _propTypes.default.oneOf(['bottom', 'none', 'top']),
652
656
  reverse: _propTypes.default.bool,
@@ -706,8 +710,6 @@ process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
706
710
  ignoreTooltip: _propTypes.default.bool,
707
711
  label: _propTypes.default.string,
708
712
  labelStyle: _propTypes.default.object,
709
- max: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
710
- min: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
711
713
  offset: _propTypes.default.number,
712
714
  position: _propTypes.default.oneOf(['left', 'none', 'right']),
713
715
  reverse: _propTypes.default.bool,
@@ -759,8 +761,6 @@ process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
759
761
  ignoreTooltip: _propTypes.default.bool,
760
762
  label: _propTypes.default.string,
761
763
  labelStyle: _propTypes.default.object,
762
- max: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
763
- min: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
764
764
  offset: _propTypes.default.number,
765
765
  position: _propTypes.default.oneOf(['left', 'none', 'right']),
766
766
  reverse: _propTypes.default.bool,
@@ -802,8 +802,8 @@ process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
802
802
  ignoreTooltip: _propTypes.default.bool,
803
803
  label: _propTypes.default.string,
804
804
  labelStyle: _propTypes.default.object,
805
- max: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
806
- min: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
805
+ max: _propTypes.default.number,
806
+ min: _propTypes.default.number,
807
807
  offset: _propTypes.default.number,
808
808
  position: _propTypes.default.oneOf(['left', 'none', 'right']),
809
809
  reverse: _propTypes.default.bool,
@@ -846,8 +846,8 @@ process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
846
846
  ignoreTooltip: _propTypes.default.bool,
847
847
  label: _propTypes.default.string,
848
848
  labelStyle: _propTypes.default.object,
849
- max: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
850
- min: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
849
+ max: _propTypes.default.number,
850
+ min: _propTypes.default.number,
851
851
  offset: _propTypes.default.number,
852
852
  position: _propTypes.default.oneOf(['left', 'none', 'right']),
853
853
  reverse: _propTypes.default.bool,
@@ -889,8 +889,8 @@ process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
889
889
  ignoreTooltip: _propTypes.default.bool,
890
890
  label: _propTypes.default.string,
891
891
  labelStyle: _propTypes.default.object,
892
- max: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
893
- min: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
892
+ max: _propTypes.default.number,
893
+ min: _propTypes.default.number,
894
894
  offset: _propTypes.default.number,
895
895
  position: _propTypes.default.oneOf(['left', 'none', 'right']),
896
896
  reverse: _propTypes.default.bool,
@@ -932,8 +932,8 @@ process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
932
932
  ignoreTooltip: _propTypes.default.bool,
933
933
  label: _propTypes.default.string,
934
934
  labelStyle: _propTypes.default.object,
935
- max: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
936
- min: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
935
+ max: _propTypes.default.number,
936
+ min: _propTypes.default.number,
937
937
  offset: _propTypes.default.number,
938
938
  position: _propTypes.default.oneOf(['left', 'none', 'right']),
939
939
  reverse: _propTypes.default.bool,
@@ -975,8 +975,12 @@ process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
975
975
  ignoreTooltip: _propTypes.default.bool,
976
976
  label: _propTypes.default.string,
977
977
  labelStyle: _propTypes.default.object,
978
- max: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
979
- min: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
978
+ max: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.shape({
979
+ valueOf: _propTypes.default.func.isRequired
980
+ })]),
981
+ min: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.shape({
982
+ valueOf: _propTypes.default.func.isRequired
983
+ })]),
980
984
  offset: _propTypes.default.number,
981
985
  position: _propTypes.default.oneOf(['left', 'none', 'right']),
982
986
  reverse: _propTypes.default.bool,
@@ -1018,8 +1022,12 @@ process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
1018
1022
  ignoreTooltip: _propTypes.default.bool,
1019
1023
  label: _propTypes.default.string,
1020
1024
  labelStyle: _propTypes.default.object,
1021
- max: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
1022
- min: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
1025
+ max: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.shape({
1026
+ valueOf: _propTypes.default.func.isRequired
1027
+ })]),
1028
+ min: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.shape({
1029
+ valueOf: _propTypes.default.func.isRequired
1030
+ })]),
1023
1031
  offset: _propTypes.default.number,
1024
1032
  position: _propTypes.default.oneOf(['left', 'none', 'right']),
1025
1033
  reverse: _propTypes.default.bool,
@@ -1061,8 +1069,8 @@ process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
1061
1069
  ignoreTooltip: _propTypes.default.bool,
1062
1070
  label: _propTypes.default.string,
1063
1071
  labelStyle: _propTypes.default.object,
1064
- max: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
1065
- min: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
1072
+ max: _propTypes.default.number,
1073
+ min: _propTypes.default.number,
1066
1074
  offset: _propTypes.default.number,
1067
1075
  position: _propTypes.default.oneOf(['left', 'none', 'right']),
1068
1076
  reverse: _propTypes.default.bool,
@@ -36,6 +36,7 @@ function useBarPlotData(drawingArea, xAxes, yAxes) {
36
36
  const xAxisConfig = xAxes[xAxisId];
37
37
  const yAxisConfig = yAxes[yAxisId];
38
38
  const verticalLayout = series[seriesId].layout === 'vertical';
39
+ const reverse = (verticalLayout ? yAxisConfig.reverse : xAxisConfig.reverse) ?? false;
39
40
  (0, _checkScaleErrors.checkScaleErrors)(verticalLayout, seriesId, series[seriesId], xAxisId, xAxes, yAxisId, yAxes);
40
41
  const baseScaleConfig = verticalLayout ? xAxisConfig : yAxisConfig;
41
42
  const xScale = xAxisConfig.scale;
@@ -57,19 +58,20 @@ function useBarPlotData(drawingArea, xAxes, yAxes) {
57
58
  layout,
58
59
  minBarSize
59
60
  } = series[seriesId];
60
- const seriesDataPoints = baseScaleConfig.data.map((baseValue, dataIndex) => {
61
- if (currentSeriesData[dataIndex] == null) {
62
- return null;
61
+ const seriesDataPoints = [];
62
+ 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) {
66
+ continue;
63
67
  }
64
68
  const values = stackedData[dataIndex];
65
69
  const valueCoordinates = values.map(v => verticalLayout ? yScale(v) : xScale(v));
66
70
  const minValueCoord = Math.round(Math.min(...valueCoordinates));
67
71
  const maxValueCoord = Math.round(Math.max(...valueCoordinates));
68
72
  const stackId = series[seriesId].stack;
69
- const {
70
- barSize,
71
- startCoordinate
72
- } = getValueCoordinate(verticalLayout, minValueCoord, maxValueCoord, currentSeriesData[dataIndex], minBarSize);
73
+ const barSize = seriesValue === 0 ? 0 : Math.max(minBarSize, maxValueCoord - minValueCoord);
74
+ const startCoordinate = shouldInvertStartCoordinate(verticalLayout, seriesValue, reverse) ? maxValueCoord - barSize : minValueCoord;
73
75
  const result = {
74
76
  seriesId,
75
77
  dataIndex,
@@ -85,7 +87,7 @@ function useBarPlotData(drawingArea, xAxes, yAxes) {
85
87
  maskId: `${chartId}_${stackId || seriesId}_${groupIndex}_${dataIndex}`
86
88
  };
87
89
  if (result.x > xMax || result.x + result.width < xMin || result.y > yMax || result.y + result.height < yMin) {
88
- return null;
90
+ continue;
89
91
  }
90
92
  if (!masks[result.maskId]) {
91
93
  masks[result.maskId] = {
@@ -106,10 +108,11 @@ function useBarPlotData(drawingArea, xAxes, yAxes) {
106
108
  mask.height = result.layout === 'vertical' ? mask.height + result.height : result.height;
107
109
  mask.x = Math.min(mask.x === 0 ? Infinity : mask.x, result.x);
108
110
  mask.y = Math.min(mask.y === 0 ? Infinity : mask.y, result.y);
109
- mask.hasNegative = mask.hasNegative || (result.value ?? 0) < 0;
110
- mask.hasPositive = mask.hasPositive || (result.value ?? 0) > 0;
111
- return result;
112
- }).filter(rectangle => rectangle !== null);
111
+ const value = result.value ?? 0;
112
+ mask.hasNegative = mask.hasNegative || (reverse ? value > 0 : value < 0);
113
+ mask.hasPositive = mask.hasPositive || (reverse ? value < 0 : value > 0);
114
+ seriesDataPoints.push(result);
115
+ }
113
116
  return {
114
117
  seriesId,
115
118
  data: seriesDataPoints
@@ -149,25 +152,9 @@ function getBandSize({
149
152
  offset
150
153
  };
151
154
  }
152
- function getValueCoordinate(isVertical, minValueCoord, maxValueCoord, baseValue, minBarSize) {
153
- if (baseValue === 0 || baseValue == null) {
154
- return {
155
- barSize: 0,
156
- startCoordinate: minValueCoord
157
- };
158
- }
159
- const isSizeLessThanMin = maxValueCoord - minValueCoord < minBarSize;
160
- const barSize = isSizeLessThanMin ? minBarSize : maxValueCoord - minValueCoord;
161
- const isVerticalAndPositive = isVertical && baseValue >= 0;
162
- const isHorizontalAndNegative = !isVertical && baseValue < 0;
163
- if (isSizeLessThanMin && (isVerticalAndPositive || isHorizontalAndNegative)) {
164
- return {
165
- barSize,
166
- startCoordinate: maxValueCoord - barSize
167
- };
168
- }
169
- return {
170
- barSize,
171
- startCoordinate: minValueCoord
172
- };
155
+ function shouldInvertStartCoordinate(verticalLayout, baseValue, reverse) {
156
+ const isVerticalAndPositive = verticalLayout && baseValue > 0;
157
+ const isHorizontalAndNegative = !verticalLayout && baseValue < 0;
158
+ const invertStartCoordinate = isVerticalAndPositive || isHorizontalAndNegative;
159
+ return reverse ? !invertStartCoordinate : invertStartCoordinate;
173
160
  }
package/CHANGELOG.md CHANGED
@@ -5,6 +5,209 @@
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.14.1
9
+
10
+ _Oct 16, 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
+ - 🚀 Charts have optimized data structures for closest point calculations — initial render times reduced by ~25% for 1,000+ data points, with greater gains at larger scales (#19790) @bernardobelchior
15
+ - 🐞 Bugfixes
16
+ - 📚 Documentation improvements
17
+
18
+ Special thanks go out to the community members for their valuable contributions:
19
+ @djpremier, @jacknot, @justdoit1897, @mellis481, @sai6855
20
+
21
+ The following are all team members who have contributed to this release:
22
+ @arminmeh, @bernardobelchior, @brijeshb42, @cherniavskii, @flaviendelangle, @Janpot, @JCQuintas, @noraleonte, @siriwatknp
23
+
24
+ ### Data Grid
25
+
26
+ #### `@mui/x-data-grid@8.14.1`
27
+
28
+ - [DataGrid] Fix cell not rerendering on `isCellEditable` prop change (#19898) @cherniavskii
29
+ - [DataGrid] Fix virtualizer memory leaks (#19886) @cherniavskii
30
+ - [DataGrid] Fix tree data unable to deselect row for exclude model (#19846) @siriwatknp
31
+ - [l10n] Improve Italian (it-IT) locale (#19322) @jacknot and (#19940) @justdoit1897
32
+
33
+ #### `@mui/x-data-grid-pro@8.14.1` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
34
+
35
+ Same changes as in `@mui/x-data-grid@8.14.1`, plus:
36
+
37
+ - [DataGridPro] Clear cache before new request to the nested request queue after a row has been edited (#19873) @arminmeh
38
+
39
+ #### `@mui/x-data-grid-premium@8.14.1` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
40
+
41
+ Same changes as in `@mui/x-data-grid-pro@8.14.1`.
42
+
43
+ ### Date and Time Pickers
44
+
45
+ #### `@mui/x-date-pickers@8.14.1`
46
+
47
+ Internal changes.
48
+
49
+ #### `@mui/x-date-pickers-pro@8.14.1` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
50
+
51
+ Same changes as in `@mui/x-date-pickers@8.14.1`.
52
+
53
+ ### Charts
54
+
55
+ #### `@mui/x-charts@8.14.1`
56
+
57
+ - [charts] Fix `minBarSize` when y-axis is reversed (#19932) @bernardobelchior
58
+ - [charts] Fix bar chart border radius when axis is reversed (#19895) @bernardobelchior
59
+ - [charts] Fix scatter chart `datasetKeys.id` not being optional (#19897) @bernardobelchior
60
+ - [charts] Use more performant data structure for closest point (#19790) @bernardobelchior
61
+ - [charts] Fix `GaugeValueArc` having wrong class (#19965) @bernardobelchior
62
+ - [charts] Fix `undefined` path when highlight empty line chart axis (#19969) @bernardobelchior
63
+
64
+ #### `@mui/x-charts-pro@8.14.1` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
65
+
66
+ Same changes as in `@mui/x-charts@8.14.1`, plus:
67
+
68
+ - [charts-pro] Add `highlighting` to Sankey chart (#19662) @JCQuintas
69
+
70
+ #### `@mui/x-charts-premium@8.14.1` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
71
+
72
+ Same changes as in `@mui/x-charts-pro@8.14.1`.
73
+
74
+ ### Tree View
75
+
76
+ #### `@mui/x-tree-view@8.14.1`
77
+
78
+ - [tree view] Do not forward the `ownerState` to the icon (#19772) @flaviendelangle
79
+
80
+ #### `@mui/x-tree-view-pro@8.14.1` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
81
+
82
+ Same changes as in `@mui/x-tree-view@8.14.1`.
83
+
84
+ ### Codemod
85
+
86
+ #### `@mui/x-codemod@8.14.0`
87
+
88
+ Internal changes.
89
+
90
+ ### Docs
91
+
92
+ - [docs] Add `'bumpX'` and `'bumpY'` curve types to the interpolation demo (#19676) @djpremier
93
+ - [docs] Add scatter chart with linear regression demo (#19900) @bernardobelchior
94
+ - [docs] Correctly describe Data Grid's row selection behavior (#19968) @arminmeh
95
+ - [docs] Fix `isExpanded` type in tree view docs (#19092) @mellis481
96
+
97
+ ### Core
98
+
99
+ - [code-infra] Disable Netlify cache plugin (#19950) @Janpot
100
+ - [code-infra] Lint json through eslint (#19890) @Janpot
101
+ - [docs-infra] Use published netlify cache plugin package (#19929) @brijeshb42
102
+
103
+ ## 8.14.0
104
+
105
+ _Oct 9, 2025_
106
+
107
+ We'd like to extend a big thank you to the 14 contributors who made this release possible. Here are some highlights ✨:
108
+
109
+ - 📊 The [Chart zoom now supports the `pressAndDrag` gesture](https://mui.com/x/react-charts/zoom-and-pan/#zoom-interactions-configuration). Pan by pressing and dragging.
110
+ - 🔄 [Server-side pivoting](https://mui.com/x/react-data-grid/server-side-data/pivoting/) support for the Data Grid
111
+ - 🐞 Bugfixes
112
+ - 📚 Documentation improvements
113
+
114
+ Special thanks go out to the community members for their valuable contributions:
115
+ @djpremier, @Utkarsh-0304
116
+
117
+ The following are all team members who have contributed to this release:
118
+ @alexfauquette, @bernardobelchior, @flaviendelangle, @hasdfa, @Janpot, @JCQuintas, @prakhargupta1, @rita-codes, @noraleonte, @brijeshb42, @arminmeh, @michelengelen
119
+
120
+ ### Data Grid
121
+
122
+ #### `@mui/x-data-grid@8.14.0`
123
+
124
+ - [l10n] Improve Brazilian Portuguese (pt-BR) locale (#19658) @djpremier
125
+
126
+ #### `@mui/x-data-grid-pro@8.14.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
127
+
128
+ Same changes as in `@mui/x-data-grid@8.14.0`.
129
+
130
+ #### `@mui/x-data-grid-premium@8.14.0` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
131
+
132
+ Same changes as in `@mui/x-data-grid-pro@8.14.0`, plus:
133
+
134
+ - [DataGridPremium] Server-side pivoting (#19575) @arminmeh
135
+
136
+ ### Date and Time Pickers
137
+
138
+ #### `@mui/x-date-pickers@8.14.0`
139
+
140
+ - [pickers] Fixed the extra element for the disabled date picker (#19387) @Utkarsh-0304
141
+ - [pickers] Fix input `autoCapitalize` value for Firefox compatibility (#19285) @michelengelen
142
+ - [l10n] Improve Brazilian Portuguese (pt-BR) locale (#19658) @djpremier
143
+
144
+ #### `@mui/x-date-pickers-pro@8.14.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
145
+
146
+ Same changes as in `@mui/x-date-pickers@8.14.0`.
147
+
148
+ ### Charts
149
+
150
+ #### `@mui/x-charts@8.14.0`
151
+
152
+ - [charts] Add `pressAndDrag` pan gesture (#19779) @JCQuintas
153
+ - [charts] Allow `minPointers` and `maxPointers` to be configured by pointer type (#19794) @JCQuintas
154
+ - [charts] Correct scale domain types (#19844) @bernardobelchior
155
+ - [charts] Fix tooltip position when scrolling (#19857) @alexfauquette
156
+ - [charts] Link item highlight with keyboard navigation (#19768) @alexfauquette
157
+ - [charts] Refactor domain/scale selectors (#19832) @bernardobelchior
158
+ - [charts] Remove min/max from ordinal configuration (#19789) @alexfauquette
159
+ - [charts] Simplify axes filters selectors (#19833) @bernardobelchior
160
+ - [l10n] Improve Brazilian Portuguese (pt-BR) locale (#19658) @djpremier
161
+
162
+ #### `@mui/x-charts-pro@8.14.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
163
+
164
+ Same changes as in `@mui/x-charts@8.14.0`.
165
+
166
+ #### `@mui/x-charts-premium@8.14.0` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
167
+
168
+ Same changes as in `@mui/x-charts-pro@8.14.0`.
169
+
170
+ ### Tree View
171
+
172
+ #### `@mui/x-tree-view@8.14.0`
173
+
174
+ - [tree view] Fix Tree View tooltip anchoring on overview page (#19806) @noraleonte
175
+
176
+ #### `@mui/x-tree-view-pro@8.14.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
177
+
178
+ Same changes as in `@mui/x-tree-view@8.14.0`.
179
+
180
+ ### Codemod
181
+
182
+ #### `@mui/x-codemod@8.14.0`
183
+
184
+ Internal changes.
185
+
186
+ ### Docs
187
+
188
+ - [docs] Add overview section for pie chart (#19672) @prakhargupta1
189
+ - [docs] Fix demo title knob keys (#19843) @JCQuintas
190
+ - [docs] Hide UI elements of unsupported features in the data source demos (#19849) @arminmeh
191
+
192
+ ### Core
193
+
194
+ - [code-infra] Cleanup unused dependencies (#19788) @brijeshb42
195
+ - [code-infra] Fix pnpm-lock issue (#19861) @JCQuintas
196
+ - [code-infra] Improve publishing docs (#19404) @Janpot
197
+ - [code-infra] Remove tsconfig `baseUrl` (#19837) @Janpot
198
+ - [code-infra] Support custom npm dist tags during release (#19803) @Janpot
199
+ - [code-infra] Wait longer for print dialog (#19795) @JCQuintas
200
+ - [code-infra] Replace `lodash` with `es-toolkit` (#19853) @bernardobelchior
201
+ - [code-infra] Update release script PR checklist (#19785) @bernardobelchior
202
+ - [code-infra] Remove remaining usages of `lodash` (#19864) @bernardobelchior
203
+ - [docs-infra] Add `title` knob (#19792) @JCQuintas
204
+ - [docs-infra] Fix missing key in title knob (#19804) @JCQuintas
205
+
206
+ ### Miscellaneous
207
+
208
+ - [x-telemetry] Fix transpile issues (#19761) @hasdfa
209
+ - [x-telemetry] Fix ref to deleted file (#19842) @JCQuintas
210
+
8
211
  ## 8.13.1
9
212
 
10
213
  _Oct 1, 2025_
@@ -222,7 +425,7 @@ We'd like to extend a big thank you to the 15 contributors who made this release
222
425
 
223
426
  ![Grid x Charts](https://github.com/user-attachments/assets/0817c36f-f87f-4688-8f30-fa0db638ca8c)
224
427
 
225
- 👉 [🎥 Watch the full video](https://github.com/user-attachments/assets/28f1848e-dc85-4077-8756-a3e88afd4e54)
428
+ 👉 [🎥 Watch the full video](https://github.com/user-attachments/assets/28f1848e-dc85-4077-8756-a3e88afd4e54)
226
429
 
227
430
  - ⌨️ Charts keyboard navigation
228
431
  - ⚡️ Charts: Add new `renderer="svg-batch"` prop to Scatter charts that provides improved performance for large datasets