@mui/x-charts 6.0.0-alpha.9 → 6.18.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 (325) hide show
  1. package/BarChart/BarChart.d.ts +26 -5
  2. package/BarChart/BarChart.js +93 -17
  3. package/BarChart/BarElement.d.ts +1319 -4
  4. package/BarChart/BarElement.js +10 -10
  5. package/BarChart/BarPlot.d.ts +17 -1
  6. package/BarChart/BarPlot.js +152 -66
  7. package/BarChart/formatter.js +2 -3
  8. package/BarChart/legend.js +1 -2
  9. package/CHANGELOG.md +797 -59
  10. package/ChartContainer/index.js +7 -5
  11. package/ChartsAxis/ChartsAxis.d.ts +9 -0
  12. package/ChartsAxis/ChartsAxis.js +33 -7
  13. package/ChartsAxis/axisClasses.d.ts +3 -3
  14. package/ChartsAxis/axisClasses.js +1 -2
  15. package/ChartsAxisHighlight/ChartsAxisHighlight.d.ts +21 -0
  16. package/ChartsAxisHighlight/ChartsAxisHighlight.js +61 -22
  17. package/ChartsClipPath/ChartsClipPath.d.ts +5 -0
  18. package/ChartsClipPath/ChartsClipPath.js +7 -2
  19. package/ChartsLegend/ChartsLegend.d.ts +45 -24
  20. package/ChartsLegend/ChartsLegend.js +193 -151
  21. package/ChartsLegend/chartsLegendClasses.d.ts +1 -1
  22. package/ChartsLegend/chartsLegendClasses.js +3 -4
  23. package/ChartsLegend/utils.d.ts +1 -6
  24. package/ChartsReferenceLine/ChartsReferenceLine.d.ts +10 -0
  25. package/ChartsReferenceLine/ChartsReferenceLine.js +78 -0
  26. package/ChartsReferenceLine/ChartsXReferenceLine.d.ts +13 -0
  27. package/ChartsReferenceLine/ChartsXReferenceLine.js +112 -0
  28. package/ChartsReferenceLine/ChartsYReferenceLine.d.ts +13 -0
  29. package/ChartsReferenceLine/ChartsYReferenceLine.js +112 -0
  30. package/ChartsReferenceLine/chartsReferenceLineClasses.d.ts +15 -0
  31. package/ChartsReferenceLine/chartsReferenceLineClasses.js +14 -0
  32. package/ChartsReferenceLine/common.d.ts +41 -0
  33. package/ChartsReferenceLine/common.js +27 -0
  34. package/ChartsReferenceLine/index.d.ts +2 -0
  35. package/ChartsReferenceLine/index.js +27 -0
  36. package/ChartsReferenceLine/package.json +6 -0
  37. package/ChartsSurface.d.ts +12 -1
  38. package/ChartsSurface.js +9 -18
  39. package/ChartsTooltip/ChartsAxisTooltipContent.d.ts +1 -0
  40. package/ChartsTooltip/ChartsAxisTooltipContent.js +46 -32
  41. package/ChartsTooltip/ChartsItemTooltipContent.d.ts +3 -2
  42. package/ChartsTooltip/ChartsItemTooltipContent.js +18 -9
  43. package/ChartsTooltip/ChartsTooltip.d.ts +32 -0
  44. package/ChartsTooltip/ChartsTooltip.js +62 -18
  45. package/ChartsTooltip/ChartsTooltipTable.d.ts +3 -10
  46. package/ChartsTooltip/ChartsTooltipTable.js +22 -20
  47. package/ChartsTooltip/tooltipClasses.js +1 -2
  48. package/ChartsTooltip/utils.js +2 -2
  49. package/ChartsXAxis/ChartsXAxis.d.ts +9 -0
  50. package/ChartsXAxis/ChartsXAxis.js +170 -45
  51. package/ChartsYAxis/ChartsYAxis.d.ts +9 -0
  52. package/ChartsYAxis/ChartsYAxis.js +95 -38
  53. package/LineChart/AreaElement.d.ts +11 -1
  54. package/LineChart/AreaElement.js +14 -6
  55. package/LineChart/AreaPlot.d.ts +11 -0
  56. package/LineChart/AreaPlot.js +27 -8
  57. package/LineChart/LineChart.d.ts +23 -3
  58. package/LineChart/LineChart.js +89 -17
  59. package/LineChart/LineElement.d.ts +11 -1
  60. package/LineChart/LineElement.js +14 -6
  61. package/LineChart/LineHighlightElement.d.ts +10 -0
  62. package/LineChart/LineHighlightElement.js +13 -4
  63. package/LineChart/LineHighlightPlot.d.ts +10 -0
  64. package/LineChart/LineHighlightPlot.js +15 -4
  65. package/LineChart/LinePlot.d.ts +10 -0
  66. package/LineChart/LinePlot.js +25 -12
  67. package/LineChart/MarkElement.d.ts +10 -0
  68. package/LineChart/MarkElement.js +14 -5
  69. package/LineChart/MarkPlot.d.ts +10 -0
  70. package/LineChart/MarkPlot.js +42 -10
  71. package/LineChart/formatter.js +5 -5
  72. package/LineChart/legend.js +1 -2
  73. package/PieChart/PieArc.d.ts +11 -13
  74. package/PieChart/PieArc.js +28 -60
  75. package/PieChart/PieArcLabel.d.ts +8 -9
  76. package/PieChart/PieArcLabel.js +46 -38
  77. package/PieChart/PieArcLabelPlot.d.ts +28 -0
  78. package/PieChart/PieArcLabelPlot.js +99 -0
  79. package/PieChart/PieArcPlot.d.ts +35 -0
  80. package/PieChart/PieArcPlot.js +92 -0
  81. package/PieChart/PieChart.d.ts +19 -5
  82. package/PieChart/PieChart.js +95 -18
  83. package/PieChart/PiePlot.d.ts +15 -9
  84. package/PieChart/PiePlot.js +77 -55
  85. package/PieChart/dataTransform/transition.d.ts +4 -0
  86. package/PieChart/dataTransform/transition.js +136 -0
  87. package/PieChart/dataTransform/useTransformData.d.ts +15 -0
  88. package/PieChart/dataTransform/useTransformData.js +67 -0
  89. package/PieChart/formatter.js +1 -2
  90. package/PieChart/legend.js +1 -2
  91. package/README.md +8 -14
  92. package/ResponsiveChartContainer/index.d.ts +13 -3
  93. package/ResponsiveChartContainer/index.js +7 -8
  94. package/ScatterChart/Scatter.d.ts +10 -0
  95. package/ScatterChart/Scatter.js +12 -2
  96. package/ScatterChart/ScatterChart.d.ts +16 -3
  97. package/ScatterChart/ScatterChart.js +77 -16
  98. package/ScatterChart/ScatterPlot.d.ts +10 -0
  99. package/ScatterChart/ScatterPlot.js +12 -2
  100. package/ScatterChart/formatter.js +1 -2
  101. package/ScatterChart/legend.js +1 -2
  102. package/SparkLineChart/SparkLineChart.d.ts +12 -3
  103. package/SparkLineChart/SparkLineChart.js +50 -7
  104. package/colorPalettes/colorPalettes.js +6 -12
  105. package/constants.js +5 -8
  106. package/context/CartesianContextProvider.d.ts +26 -1
  107. package/context/CartesianContextProvider.js +42 -16
  108. package/context/DrawingProvider.d.ts +25 -0
  109. package/context/DrawingProvider.js +18 -6
  110. package/context/HighlightProvider.d.ts +17 -0
  111. package/context/HighlightProvider.js +3 -4
  112. package/context/InteractionProvider.d.ts +6 -0
  113. package/context/InteractionProvider.js +3 -4
  114. package/context/SeriesContextProvider.d.ts +5 -0
  115. package/context/SeriesContextProvider.js +3 -4
  116. package/esm/BarChart/BarChart.js +90 -13
  117. package/esm/BarChart/BarElement.js +7 -4
  118. package/esm/BarChart/BarPlot.js +152 -67
  119. package/esm/BarChart/formatter.js +1 -1
  120. package/esm/ChartContainer/index.js +3 -0
  121. package/esm/ChartsAxis/ChartsAxis.js +32 -5
  122. package/esm/ChartsAxisHighlight/ChartsAxisHighlight.js +57 -20
  123. package/esm/ChartsClipPath/ChartsClipPath.js +5 -0
  124. package/esm/ChartsLegend/ChartsLegend.js +190 -144
  125. package/esm/ChartsLegend/chartsLegendClasses.js +1 -1
  126. package/esm/ChartsReferenceLine/ChartsReferenceLine.js +70 -0
  127. package/esm/ChartsReferenceLine/ChartsXReferenceLine.js +105 -0
  128. package/esm/ChartsReferenceLine/ChartsYReferenceLine.js +105 -0
  129. package/esm/ChartsReferenceLine/chartsReferenceLineClasses.js +6 -0
  130. package/esm/ChartsReferenceLine/common.js +20 -0
  131. package/esm/ChartsReferenceLine/index.js +2 -0
  132. package/esm/ChartsSurface.js +4 -12
  133. package/esm/ChartsTooltip/ChartsAxisTooltipContent.js +44 -30
  134. package/esm/ChartsTooltip/ChartsItemTooltipContent.js +15 -7
  135. package/esm/ChartsTooltip/ChartsTooltip.js +59 -14
  136. package/esm/ChartsTooltip/ChartsTooltipTable.js +17 -10
  137. package/esm/ChartsXAxis/ChartsXAxis.js +168 -43
  138. package/esm/ChartsYAxis/ChartsYAxis.js +93 -36
  139. package/esm/LineChart/AreaElement.js +10 -0
  140. package/esm/LineChart/AreaPlot.js +26 -6
  141. package/esm/LineChart/LineChart.js +86 -13
  142. package/esm/LineChart/LineElement.js +10 -0
  143. package/esm/LineChart/LineHighlightElement.js +10 -0
  144. package/esm/LineChart/LineHighlightPlot.js +13 -2
  145. package/esm/LineChart/LinePlot.js +25 -14
  146. package/esm/LineChart/MarkElement.js +11 -1
  147. package/esm/LineChart/MarkPlot.js +40 -8
  148. package/esm/LineChart/formatter.js +7 -3
  149. package/esm/PieChart/PieArc.js +26 -58
  150. package/esm/PieChart/PieArcLabel.js +43 -34
  151. package/esm/PieChart/PieArcLabelPlot.js +92 -0
  152. package/esm/PieChart/PieArcPlot.js +84 -0
  153. package/esm/PieChart/PieChart.js +93 -16
  154. package/esm/PieChart/PiePlot.js +76 -57
  155. package/esm/PieChart/dataTransform/transition.js +130 -0
  156. package/esm/PieChart/dataTransform/useTransformData.js +59 -0
  157. package/esm/ResponsiveChartContainer/index.js +3 -3
  158. package/esm/ScatterChart/Scatter.js +10 -0
  159. package/esm/ScatterChart/ScatterChart.js +74 -12
  160. package/esm/ScatterChart/ScatterPlot.js +10 -0
  161. package/esm/SparkLineChart/SparkLineChart.js +47 -3
  162. package/esm/constants.js +1 -1
  163. package/esm/context/CartesianContextProvider.js +41 -14
  164. package/esm/context/DrawingProvider.js +14 -0
  165. package/esm/hooks/useChartDimensions.js +2 -0
  166. package/esm/hooks/useMounted.js +16 -0
  167. package/esm/hooks/useReducedMotion.js +27 -0
  168. package/esm/hooks/useTicks.js +15 -9
  169. package/esm/index.js +1 -0
  170. package/esm/internals/components/AxisSharedComponents.js +15 -70
  171. package/esm/internals/components/ChartsText.js +77 -0
  172. package/esm/internals/domUtils.js +113 -0
  173. package/esm/internals/geometry.js +36 -0
  174. package/hooks/useAxisEvents.js +2 -2
  175. package/hooks/useChartDimensions.d.ts +2 -0
  176. package/hooks/useChartDimensions.js +5 -4
  177. package/hooks/useDrawingArea.js +2 -2
  178. package/hooks/useInteractionItemProps.js +2 -2
  179. package/hooks/useMounted.d.ts +1 -0
  180. package/hooks/useMounted.js +25 -0
  181. package/hooks/useReducedMotion.d.ts +8 -0
  182. package/hooks/useReducedMotion.js +33 -0
  183. package/hooks/useScale.d.ts +2 -2
  184. package/hooks/useScale.js +2 -2
  185. package/hooks/useTicks.d.ts +19 -11
  186. package/hooks/useTicks.js +19 -14
  187. package/index.d.ts +1 -0
  188. package/index.js +12 -1
  189. package/internals/components/AxisSharedComponents.d.ts +0 -4
  190. package/internals/components/AxisSharedComponents.js +18 -78
  191. package/internals/components/ChartsText.d.ts +35 -0
  192. package/internals/components/ChartsText.js +87 -0
  193. package/internals/defaultizeColor.d.ts +7 -2
  194. package/internals/defaultizeValueFormatter.js +1 -2
  195. package/internals/domUtils.d.ts +13 -0
  196. package/internals/domUtils.js +122 -0
  197. package/internals/geometry.d.ts +9 -0
  198. package/internals/geometry.js +42 -0
  199. package/internals/isBandScale.d.ts +3 -1
  200. package/internals/stackSeries.js +2 -4
  201. package/internals/utils.d.ts +5 -0
  202. package/legacy/BarChart/BarChart.js +90 -13
  203. package/legacy/BarChart/BarElement.js +6 -3
  204. package/legacy/BarChart/BarPlot.js +151 -63
  205. package/legacy/BarChart/formatter.js +1 -1
  206. package/legacy/ChartContainer/index.js +3 -0
  207. package/legacy/ChartsAxis/ChartsAxis.js +32 -5
  208. package/legacy/ChartsAxisHighlight/ChartsAxisHighlight.js +60 -20
  209. package/legacy/ChartsClipPath/ChartsClipPath.js +5 -0
  210. package/legacy/ChartsLegend/ChartsLegend.js +205 -142
  211. package/legacy/ChartsLegend/chartsLegendClasses.js +1 -1
  212. package/legacy/ChartsReferenceLine/ChartsReferenceLine.js +70 -0
  213. package/legacy/ChartsReferenceLine/ChartsXReferenceLine.js +105 -0
  214. package/legacy/ChartsReferenceLine/ChartsYReferenceLine.js +105 -0
  215. package/legacy/ChartsReferenceLine/chartsReferenceLineClasses.js +6 -0
  216. package/legacy/ChartsReferenceLine/common.js +20 -0
  217. package/legacy/ChartsReferenceLine/index.js +2 -0
  218. package/legacy/ChartsSurface.js +3 -12
  219. package/legacy/ChartsTooltip/ChartsAxisTooltipContent.js +22 -10
  220. package/legacy/ChartsTooltip/ChartsItemTooltipContent.js +15 -7
  221. package/legacy/ChartsTooltip/ChartsTooltip.js +62 -14
  222. package/legacy/ChartsTooltip/ChartsTooltipTable.js +34 -26
  223. package/legacy/ChartsXAxis/ChartsXAxis.js +176 -50
  224. package/legacy/ChartsYAxis/ChartsYAxis.js +97 -41
  225. package/legacy/LineChart/AreaElement.js +10 -0
  226. package/legacy/LineChart/AreaPlot.js +31 -7
  227. package/legacy/LineChart/LineChart.js +86 -13
  228. package/legacy/LineChart/LineElement.js +10 -0
  229. package/legacy/LineChart/LineHighlightElement.js +10 -0
  230. package/legacy/LineChart/LineHighlightPlot.js +13 -2
  231. package/legacy/LineChart/LinePlot.js +29 -12
  232. package/legacy/LineChart/MarkElement.js +11 -1
  233. package/legacy/LineChart/MarkPlot.js +39 -8
  234. package/legacy/LineChart/formatter.js +7 -3
  235. package/legacy/PieChart/PieArc.js +30 -62
  236. package/legacy/PieChart/PieArcLabel.js +48 -34
  237. package/legacy/PieChart/PieArcLabelPlot.js +93 -0
  238. package/legacy/PieChart/PieArcPlot.js +84 -0
  239. package/legacy/PieChart/PieChart.js +93 -16
  240. package/legacy/PieChart/PiePlot.js +76 -59
  241. package/legacy/PieChart/dataTransform/transition.js +142 -0
  242. package/legacy/PieChart/dataTransform/useTransformData.js +60 -0
  243. package/legacy/ResponsiveChartContainer/index.js +3 -3
  244. package/legacy/ScatterChart/Scatter.js +10 -0
  245. package/legacy/ScatterChart/ScatterChart.js +74 -12
  246. package/legacy/ScatterChart/ScatterPlot.js +10 -0
  247. package/legacy/SparkLineChart/SparkLineChart.js +47 -3
  248. package/legacy/constants.js +1 -1
  249. package/legacy/context/CartesianContextProvider.js +41 -14
  250. package/legacy/context/DrawingProvider.js +14 -0
  251. package/legacy/hooks/useChartDimensions.js +2 -0
  252. package/legacy/hooks/useMounted.js +21 -0
  253. package/legacy/hooks/useReducedMotion.js +27 -0
  254. package/legacy/hooks/useTicks.js +16 -9
  255. package/legacy/index.js +2 -1
  256. package/legacy/internals/components/AxisSharedComponents.js +11 -65
  257. package/legacy/internals/components/ChartsText.js +79 -0
  258. package/legacy/internals/domUtils.js +121 -0
  259. package/legacy/internals/geometry.js +37 -0
  260. package/models/axis.d.ts +58 -20
  261. package/models/layout.d.ts +13 -6
  262. package/models/seriesType/common.d.ts +16 -0
  263. package/models/seriesType/line.d.ts +8 -3
  264. package/models/seriesType/pie.d.ts +5 -1
  265. package/modern/BarChart/BarChart.js +90 -13
  266. package/modern/BarChart/BarElement.js +7 -4
  267. package/modern/BarChart/BarPlot.js +149 -65
  268. package/modern/BarChart/formatter.js +1 -1
  269. package/modern/ChartContainer/index.js +3 -0
  270. package/modern/ChartsAxis/ChartsAxis.js +31 -5
  271. package/modern/ChartsAxisHighlight/ChartsAxisHighlight.js +57 -20
  272. package/modern/ChartsClipPath/ChartsClipPath.js +5 -0
  273. package/modern/ChartsLegend/ChartsLegend.js +190 -144
  274. package/modern/ChartsLegend/chartsLegendClasses.js +1 -1
  275. package/modern/ChartsReferenceLine/ChartsReferenceLine.js +70 -0
  276. package/modern/ChartsReferenceLine/ChartsXReferenceLine.js +104 -0
  277. package/modern/ChartsReferenceLine/ChartsYReferenceLine.js +104 -0
  278. package/modern/ChartsReferenceLine/chartsReferenceLineClasses.js +6 -0
  279. package/modern/ChartsReferenceLine/common.js +20 -0
  280. package/modern/ChartsReferenceLine/index.js +2 -0
  281. package/modern/ChartsSurface.js +4 -12
  282. package/modern/ChartsTooltip/ChartsAxisTooltipContent.js +44 -30
  283. package/modern/ChartsTooltip/ChartsItemTooltipContent.js +15 -7
  284. package/modern/ChartsTooltip/ChartsTooltip.js +58 -14
  285. package/modern/ChartsTooltip/ChartsTooltipTable.js +17 -10
  286. package/modern/ChartsXAxis/ChartsXAxis.js +167 -42
  287. package/modern/ChartsYAxis/ChartsYAxis.js +92 -35
  288. package/modern/LineChart/AreaElement.js +10 -0
  289. package/modern/LineChart/AreaPlot.js +25 -6
  290. package/modern/LineChart/LineChart.js +86 -13
  291. package/modern/LineChart/LineElement.js +10 -0
  292. package/modern/LineChart/LineHighlightElement.js +10 -0
  293. package/modern/LineChart/LineHighlightPlot.js +13 -2
  294. package/modern/LineChart/LinePlot.js +23 -10
  295. package/modern/LineChart/MarkElement.js +11 -1
  296. package/modern/LineChart/MarkPlot.js +40 -8
  297. package/modern/LineChart/formatter.js +4 -3
  298. package/modern/PieChart/PieArc.js +26 -57
  299. package/modern/PieChart/PieArcLabel.js +43 -34
  300. package/modern/PieChart/PieArcLabelPlot.js +90 -0
  301. package/modern/PieChart/PieArcPlot.js +83 -0
  302. package/modern/PieChart/PieChart.js +93 -16
  303. package/modern/PieChart/PiePlot.js +76 -55
  304. package/modern/PieChart/dataTransform/transition.js +130 -0
  305. package/modern/PieChart/dataTransform/useTransformData.js +58 -0
  306. package/modern/ResponsiveChartContainer/index.js +3 -3
  307. package/modern/ScatterChart/Scatter.js +10 -0
  308. package/modern/ScatterChart/ScatterChart.js +74 -12
  309. package/modern/ScatterChart/ScatterPlot.js +10 -0
  310. package/modern/SparkLineChart/SparkLineChart.js +47 -3
  311. package/modern/constants.js +1 -1
  312. package/modern/context/CartesianContextProvider.js +40 -13
  313. package/modern/context/DrawingProvider.js +14 -0
  314. package/modern/hooks/useChartDimensions.js +2 -0
  315. package/modern/hooks/useMounted.js +16 -0
  316. package/modern/hooks/useReducedMotion.js +27 -0
  317. package/modern/hooks/useTicks.js +15 -9
  318. package/modern/index.js +2 -1
  319. package/modern/internals/components/AxisSharedComponents.js +15 -70
  320. package/modern/internals/components/ChartsText.js +77 -0
  321. package/modern/internals/domUtils.js +113 -0
  322. package/modern/internals/geometry.js +36 -0
  323. package/package.json +9 -6
  324. package/themeAugmentation/components.d.ts +1 -0
  325. package/themeAugmentation/overrides.d.ts +2 -0
@@ -49,7 +49,7 @@ var useChartDimensions = function useChartDimensions(inWidth, inHeight) {
49
49
  var animationFrame;
50
50
  var observer = new ResizeObserver(function () {
51
51
  // See https://github.com/mui/mui-x/issues/8733
52
- animationFrame = window.requestAnimationFrame(function () {
52
+ animationFrame = requestAnimationFrame(function () {
53
53
  computeSize();
54
54
  });
55
55
  });
@@ -114,10 +114,10 @@ export var ResponsiveChartContainer = /*#__PURE__*/React.forwardRef(function Res
114
114
  width: inWidth,
115
115
  height: inHeight
116
116
  },
117
- children: /*#__PURE__*/_jsx(ChartContainer, _extends({}, other, {
117
+ children: width && height ? /*#__PURE__*/_jsx(ChartContainer, _extends({}, other, {
118
118
  width: width,
119
119
  height: height,
120
120
  ref: ref
121
- }))
121
+ })) : null
122
122
  });
123
123
  });
@@ -6,6 +6,16 @@ import { getValueToPositionMapper } from '../hooks/useScale';
6
6
  import { getIsFaded, getIsHighlighted, useInteractionItemProps } from '../hooks/useInteractionItemProps';
7
7
  import { InteractionContext } from '../context/InteractionProvider';
8
8
  import { jsx as _jsx } from "react/jsx-runtime";
9
+ /**
10
+ * Demos:
11
+ *
12
+ * - [Scatter](https://mui.com/x/react-charts/scatter/)
13
+ * - [Scatter demonstration](https://mui.com/x/react-charts/scatter-demo/)
14
+ *
15
+ * API:
16
+ *
17
+ * - [Scatter API](https://mui.com/x/api/charts/scatter/)
18
+ */
9
19
  function Scatter(props) {
10
20
  var series = props.series,
11
21
  xScale = props.xScale,
@@ -9,6 +9,16 @@ import { ChartsLegend } from '../ChartsLegend';
9
9
  import { ChartsAxisHighlight } from '../ChartsAxisHighlight';
10
10
  import { jsx as _jsx } from "react/jsx-runtime";
11
11
  import { jsxs as _jsxs } from "react/jsx-runtime";
12
+ /**
13
+ * Demos:
14
+ *
15
+ * - [Scatter](https://mui.com/x/react-charts/scatter/)
16
+ * - [Scatter demonstration](https://mui.com/x/react-charts/scatter-demo/)
17
+ *
18
+ * API:
19
+ *
20
+ * - [ScatterChart API](https://mui.com/x/api/charts/scatter-chart/)
21
+ */
12
22
  var ScatterChart = /*#__PURE__*/React.forwardRef(function ScatterChart(props, ref) {
13
23
  var xAxis = props.xAxis,
14
24
  yAxis = props.yAxis,
@@ -78,18 +88,22 @@ process.env.NODE_ENV !== "production" ? ScatterChart.propTypes = {
78
88
  * @default xAxisIds[0] The id of the first provided axis
79
89
  */
80
90
  bottomAxis: PropTypes.oneOfType([PropTypes.shape({
81
- axisId: PropTypes.string.isRequired,
91
+ axisId: PropTypes.string,
82
92
  classes: PropTypes.object,
83
93
  disableLine: PropTypes.bool,
84
94
  disableTicks: PropTypes.bool,
85
95
  fill: PropTypes.string,
86
96
  label: PropTypes.string,
87
97
  labelFontSize: PropTypes.number,
98
+ labelStyle: PropTypes.object,
88
99
  position: PropTypes.oneOf(['bottom', 'top']),
89
100
  slotProps: PropTypes.object,
90
101
  slots: PropTypes.object,
91
102
  stroke: PropTypes.string,
92
103
  tickFontSize: PropTypes.number,
104
+ tickInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.array, PropTypes.func]),
105
+ tickLabelInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.func]),
106
+ tickLabelStyle: PropTypes.object,
93
107
  tickMaxStep: PropTypes.number,
94
108
  tickMinStep: PropTypes.number,
95
109
  tickNumber: PropTypes.number,
@@ -101,9 +115,21 @@ process.env.NODE_ENV !== "production" ? ScatterChart.propTypes = {
101
115
  * Color palette used to colorize multiple series.
102
116
  */
103
117
  colors: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.string), PropTypes.func]),
118
+ /**
119
+ * An array of objects that can be used to populate series and axes data using their `dataKey` property.
120
+ */
104
121
  dataset: PropTypes.arrayOf(PropTypes.object),
105
122
  desc: PropTypes.string,
123
+ /**
124
+ * If `true`, the charts will not listen to the mouse move event.
125
+ * It might break interactive features, but will improve performance.
126
+ * @default false
127
+ */
106
128
  disableAxisListener: PropTypes.bool,
129
+ /**
130
+ * The height of the chart in px. If not defined, it takes the height of the parent element.
131
+ * @default undefined
132
+ */
107
133
  height: PropTypes.number,
108
134
  /**
109
135
  * Indicate which axis to display the left of the charts.
@@ -111,41 +137,47 @@ process.env.NODE_ENV !== "production" ? ScatterChart.propTypes = {
111
137
  * @default yAxisIds[0] The id of the first provided axis
112
138
  */
113
139
  leftAxis: PropTypes.oneOfType([PropTypes.shape({
114
- axisId: PropTypes.string.isRequired,
140
+ axisId: PropTypes.string,
115
141
  classes: PropTypes.object,
116
142
  disableLine: PropTypes.bool,
117
143
  disableTicks: PropTypes.bool,
118
144
  fill: PropTypes.string,
119
145
  label: PropTypes.string,
120
146
  labelFontSize: PropTypes.number,
147
+ labelStyle: PropTypes.object,
121
148
  position: PropTypes.oneOf(['left', 'right']),
122
149
  slotProps: PropTypes.object,
123
150
  slots: PropTypes.object,
124
151
  stroke: PropTypes.string,
125
152
  tickFontSize: PropTypes.number,
153
+ tickInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.array, PropTypes.func]),
154
+ tickLabelInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.func]),
155
+ tickLabelStyle: PropTypes.object,
126
156
  tickMaxStep: PropTypes.number,
127
157
  tickMinStep: PropTypes.number,
128
158
  tickNumber: PropTypes.number,
129
159
  tickSize: PropTypes.number
130
160
  }), PropTypes.string]),
161
+ /**
162
+ * @deprecated Consider using `slotProps.legend` instead.
163
+ */
131
164
  legend: PropTypes.shape({
132
165
  classes: PropTypes.object,
133
166
  direction: PropTypes.oneOf(['column', 'row']),
134
167
  hidden: PropTypes.bool,
135
- itemWidth: PropTypes.number,
136
- markSize: PropTypes.number,
137
- offset: PropTypes.shape({
138
- x: PropTypes.number,
139
- y: PropTypes.number
140
- }),
141
168
  position: PropTypes.shape({
142
169
  horizontal: PropTypes.oneOf(['left', 'middle', 'right']).isRequired,
143
170
  vertical: PropTypes.oneOf(['bottom', 'middle', 'top']).isRequired
144
171
  }),
145
172
  slotProps: PropTypes.object,
146
- slots: PropTypes.object,
147
- spacing: PropTypes.number
173
+ slots: PropTypes.object
148
174
  }),
175
+ /**
176
+ * The margin between the SVG and the drawing area.
177
+ * It's used for leaving some space for extra information such as the x- and y-axis or legend.
178
+ * Accepts an object with the optional properties: `top`, `bottom`, `left`, and `right`.
179
+ * @default object Depends on the charts type.
180
+ */
149
181
  margin: PropTypes.shape({
150
182
  bottom: PropTypes.number,
151
183
  left: PropTypes.number,
@@ -158,18 +190,22 @@ process.env.NODE_ENV !== "production" ? ScatterChart.propTypes = {
158
190
  * @default null
159
191
  */
160
192
  rightAxis: PropTypes.oneOfType([PropTypes.shape({
161
- axisId: PropTypes.string.isRequired,
193
+ axisId: PropTypes.string,
162
194
  classes: PropTypes.object,
163
195
  disableLine: PropTypes.bool,
164
196
  disableTicks: PropTypes.bool,
165
197
  fill: PropTypes.string,
166
198
  label: PropTypes.string,
167
199
  labelFontSize: PropTypes.number,
200
+ labelStyle: PropTypes.object,
168
201
  position: PropTypes.oneOf(['left', 'right']),
169
202
  slotProps: PropTypes.object,
170
203
  slots: PropTypes.object,
171
204
  stroke: PropTypes.string,
172
205
  tickFontSize: PropTypes.number,
206
+ tickInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.array, PropTypes.func]),
207
+ tickLabelInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.func]),
208
+ tickLabelStyle: PropTypes.object,
173
209
  tickMaxStep: PropTypes.number,
174
210
  tickMinStep: PropTypes.number,
175
211
  tickNumber: PropTypes.number,
@@ -210,6 +246,8 @@ process.env.NODE_ENV !== "production" ? ScatterChart.propTypes = {
210
246
  axisContent: PropTypes.elementType,
211
247
  classes: PropTypes.object,
212
248
  itemContent: PropTypes.elementType,
249
+ slotProps: PropTypes.object,
250
+ slots: PropTypes.object,
213
251
  trigger: PropTypes.oneOf(['axis', 'item', 'none'])
214
252
  }),
215
253
  /**
@@ -218,18 +256,22 @@ process.env.NODE_ENV !== "production" ? ScatterChart.propTypes = {
218
256
  * @default null
219
257
  */
220
258
  topAxis: PropTypes.oneOfType([PropTypes.shape({
221
- axisId: PropTypes.string.isRequired,
259
+ axisId: PropTypes.string,
222
260
  classes: PropTypes.object,
223
261
  disableLine: PropTypes.bool,
224
262
  disableTicks: PropTypes.bool,
225
263
  fill: PropTypes.string,
226
264
  label: PropTypes.string,
227
265
  labelFontSize: PropTypes.number,
266
+ labelStyle: PropTypes.object,
228
267
  position: PropTypes.oneOf(['bottom', 'top']),
229
268
  slotProps: PropTypes.object,
230
269
  slots: PropTypes.object,
231
270
  stroke: PropTypes.string,
232
271
  tickFontSize: PropTypes.number,
272
+ tickInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.array, PropTypes.func]),
273
+ tickLabelInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.func]),
274
+ tickLabelStyle: PropTypes.object,
233
275
  tickMaxStep: PropTypes.number,
234
276
  tickMinStep: PropTypes.number,
235
277
  tickNumber: PropTypes.number,
@@ -241,7 +283,15 @@ process.env.NODE_ENV !== "production" ? ScatterChart.propTypes = {
241
283
  x: PropTypes.number,
242
284
  y: PropTypes.number
243
285
  }),
286
+ /**
287
+ * The width of the chart in px. If not defined, it takes the width of the parent element.
288
+ * @default undefined
289
+ */
244
290
  width: PropTypes.number,
291
+ /**
292
+ * The configuration of the x-axes.
293
+ * If not provided, a default axis config is used with id set to `DEFAULT_X_AXIS_KEY`.
294
+ */
245
295
  xAxis: PropTypes.arrayOf(PropTypes.shape({
246
296
  axisId: PropTypes.string,
247
297
  classes: PropTypes.object,
@@ -254,6 +304,7 @@ process.env.NODE_ENV !== "production" ? ScatterChart.propTypes = {
254
304
  id: PropTypes.string,
255
305
  label: PropTypes.string,
256
306
  labelFontSize: PropTypes.number,
307
+ labelStyle: PropTypes.object,
257
308
  max: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
258
309
  min: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
259
310
  position: PropTypes.oneOf(['bottom', 'left', 'right', 'top']),
@@ -262,12 +313,19 @@ process.env.NODE_ENV !== "production" ? ScatterChart.propTypes = {
262
313
  slots: PropTypes.object,
263
314
  stroke: PropTypes.string,
264
315
  tickFontSize: PropTypes.number,
316
+ tickInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.array, PropTypes.func]),
317
+ tickLabelInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.func]),
318
+ tickLabelStyle: PropTypes.object,
265
319
  tickMaxStep: PropTypes.number,
266
320
  tickMinStep: PropTypes.number,
267
321
  tickNumber: PropTypes.number,
268
322
  tickSize: PropTypes.number,
269
323
  valueFormatter: PropTypes.func
270
324
  })),
325
+ /**
326
+ * The configuration of the y-axes.
327
+ * If not provided, a default axis config is used with id set to `DEFAULT_Y_AXIS_KEY`.
328
+ */
271
329
  yAxis: PropTypes.arrayOf(PropTypes.shape({
272
330
  axisId: PropTypes.string,
273
331
  classes: PropTypes.object,
@@ -280,6 +338,7 @@ process.env.NODE_ENV !== "production" ? ScatterChart.propTypes = {
280
338
  id: PropTypes.string,
281
339
  label: PropTypes.string,
282
340
  labelFontSize: PropTypes.number,
341
+ labelStyle: PropTypes.object,
283
342
  max: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
284
343
  min: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
285
344
  position: PropTypes.oneOf(['bottom', 'left', 'right', 'top']),
@@ -288,6 +347,9 @@ process.env.NODE_ENV !== "production" ? ScatterChart.propTypes = {
288
347
  slots: PropTypes.object,
289
348
  stroke: PropTypes.string,
290
349
  tickFontSize: PropTypes.number,
350
+ tickInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.array, PropTypes.func]),
351
+ tickLabelInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.func]),
352
+ tickLabelStyle: PropTypes.object,
291
353
  tickMaxStep: PropTypes.number,
292
354
  tickMinStep: PropTypes.number,
293
355
  tickNumber: PropTypes.number,
@@ -5,6 +5,16 @@ import { Scatter } from './Scatter';
5
5
  import { SeriesContext } from '../context/SeriesContextProvider';
6
6
  import { CartesianContext } from '../context/CartesianContextProvider';
7
7
  import { jsx as _jsx } from "react/jsx-runtime";
8
+ /**
9
+ * Demos:
10
+ *
11
+ * - [Scatter](https://mui.com/x/react-charts/scatter/)
12
+ * - [Scatter demonstration](https://mui.com/x/react-charts/scatter-demo/)
13
+ *
14
+ * API:
15
+ *
16
+ * - [ScatterPlot API](https://mui.com/x/api/charts/scatter-plot/)
17
+ */
8
18
  function ScatterPlot(props) {
9
19
  var _slots$scatter;
10
20
  var slots = props.slots,
@@ -15,6 +15,16 @@ var SPARKLINE_DEFAULT_MARGIN = {
15
15
  left: 5,
16
16
  right: 5
17
17
  };
18
+
19
+ /**
20
+ * Demos:
21
+ *
22
+ * - [SparkLine](https://mui.com/x/react-charts/sparkline/)
23
+ *
24
+ * API:
25
+ *
26
+ * - [SparkLineChart API](https://mui.com/x/api/charts/spark-line-chart/)
27
+ */
18
28
  var SparkLineChart = /*#__PURE__*/React.forwardRef(function SparkLineChart(props, ref) {
19
29
  var xAxis = props.xAxis,
20
30
  width = props.width,
@@ -62,7 +72,7 @@ var SparkLineChart = /*#__PURE__*/React.forwardRef(function SparkLineChart(props
62
72
  margin: margin,
63
73
  xAxis: [_extends({
64
74
  id: DEFAULT_X_AXIS_KEY,
65
- scaleType: plotType === 'bar' ? 'band' : 'linear',
75
+ scaleType: plotType === 'bar' ? 'band' : 'point',
66
76
  data: Array.from({
67
77
  length: data.length
68
78
  }, function (_, index) {
@@ -75,7 +85,10 @@ var SparkLineChart = /*#__PURE__*/React.forwardRef(function SparkLineChart(props
75
85
  disableAxisListener: (!showTooltip || (tooltip == null ? void 0 : tooltip.trigger) !== 'axis') && (axisHighlight == null ? void 0 : axisHighlight.x) === 'none' && (axisHighlight == null ? void 0 : axisHighlight.y) === 'none',
76
86
  children: [plotType === 'bar' && /*#__PURE__*/_jsx(BarPlot, {
77
87
  slots: slots,
78
- slotProps: slotProps
88
+ slotProps: slotProps,
89
+ sx: {
90
+ shapeRendering: 'auto'
91
+ }
79
92
  }), plotType === 'line' && /*#__PURE__*/_jsxs(React.Fragment, {
80
93
  children: [/*#__PURE__*/_jsx(AreaPlot, {
81
94
  slots: slots,
@@ -87,7 +100,10 @@ var SparkLineChart = /*#__PURE__*/React.forwardRef(function SparkLineChart(props
87
100
  slots: slots,
88
101
  slotProps: slotProps
89
102
  })]
90
- }), /*#__PURE__*/_jsx(ChartsAxisHighlight, _extends({}, axisHighlight)), showTooltip && /*#__PURE__*/_jsx(ChartsTooltip, _extends({}, tooltip)), children]
103
+ }), /*#__PURE__*/_jsx(ChartsAxisHighlight, _extends({}, axisHighlight)), showTooltip && /*#__PURE__*/_jsx(ChartsTooltip, _extends({}, tooltip, {
104
+ slotProps: slotProps,
105
+ slots: slots
106
+ })), children]
91
107
  });
92
108
  });
93
109
  process.env.NODE_ENV !== "production" ? SparkLineChart.propTypes = {
@@ -119,10 +135,28 @@ process.env.NODE_ENV !== "production" ? SparkLineChart.propTypes = {
119
135
  * Data to plot.
120
136
  */
121
137
  data: PropTypes.arrayOf(PropTypes.number).isRequired,
138
+ /**
139
+ * An array of objects that can be used to populate series and axes data using their `dataKey` property.
140
+ */
122
141
  dataset: PropTypes.arrayOf(PropTypes.object),
123
142
  desc: PropTypes.string,
143
+ /**
144
+ * If `true`, the charts will not listen to the mouse move event.
145
+ * It might break interactive features, but will improve performance.
146
+ * @default false
147
+ */
124
148
  disableAxisListener: PropTypes.bool,
149
+ /**
150
+ * The height of the chart in px. If not defined, it takes the height of the parent element.
151
+ * @default undefined
152
+ */
125
153
  height: PropTypes.number,
154
+ /**
155
+ * The margin between the SVG and the drawing area.
156
+ * It's used for leaving some space for extra information such as the x- and y-axis or legend.
157
+ * Accepts an object with the optional properties: `top`, `bottom`, `left`, and `right`.
158
+ * @default object Depends on the charts type.
159
+ */
126
160
  margin: PropTypes.shape({
127
161
  bottom: PropTypes.number,
128
162
  left: PropTypes.number,
@@ -162,6 +196,8 @@ process.env.NODE_ENV !== "production" ? SparkLineChart.propTypes = {
162
196
  axisContent: PropTypes.elementType,
163
197
  classes: PropTypes.object,
164
198
  itemContent: PropTypes.elementType,
199
+ slotProps: PropTypes.object,
200
+ slots: PropTypes.object,
165
201
  trigger: PropTypes.oneOf(['axis', 'item', 'none'])
166
202
  }),
167
203
  /**
@@ -176,6 +212,10 @@ process.env.NODE_ENV !== "production" ? SparkLineChart.propTypes = {
176
212
  x: PropTypes.number,
177
213
  y: PropTypes.number
178
214
  }),
215
+ /**
216
+ * The width of the chart in px. If not defined, it takes the width of the parent element.
217
+ * @default undefined
218
+ */
179
219
  width: PropTypes.number,
180
220
  /**
181
221
  * The xAxis configuration.
@@ -193,6 +233,7 @@ process.env.NODE_ENV !== "production" ? SparkLineChart.propTypes = {
193
233
  id: PropTypes.string,
194
234
  label: PropTypes.string,
195
235
  labelFontSize: PropTypes.number,
236
+ labelStyle: PropTypes.object,
196
237
  max: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
197
238
  min: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
198
239
  position: PropTypes.oneOf(['bottom', 'left', 'right', 'top']),
@@ -201,6 +242,9 @@ process.env.NODE_ENV !== "production" ? SparkLineChart.propTypes = {
201
242
  slots: PropTypes.object,
202
243
  stroke: PropTypes.string,
203
244
  tickFontSize: PropTypes.number,
245
+ tickInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.array, PropTypes.func]),
246
+ tickLabelInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.func]),
247
+ tickLabelStyle: PropTypes.object,
204
248
  tickMaxStep: PropTypes.number,
205
249
  tickMinStep: PropTypes.number,
206
250
  tickNumber: PropTypes.number,
@@ -1,7 +1,7 @@
1
1
  export var DEFAULT_X_AXIS_KEY = 'DEFAULT_X_AXIS_KEY';
2
2
  export var DEFAULT_Y_AXIS_KEY = 'DEFAULT_Y_AXIS_KEY';
3
3
  export var DEFAULT_MARGINS = {
4
- top: 100,
4
+ top: 50,
5
5
  bottom: 50,
6
6
  left: 50,
7
7
  right: 50
@@ -12,9 +12,10 @@ import { getScale } from '../internals/getScale';
12
12
  import { DrawingContext } from './DrawingProvider';
13
13
  import { SeriesContext } from './SeriesContextProvider';
14
14
  import { DEFAULT_X_AXIS_KEY, DEFAULT_Y_AXIS_KEY } from '../constants';
15
- import { getTicksNumber } from '../hooks/useTicks';
15
+ import { getTickNumber } from '../hooks/useTicks';
16
16
  import { jsx as _jsx } from "react/jsx-runtime";
17
- var DEFAULT_CATEGORY_GAP_RATIO = 0.1;
17
+ var DEFAULT_CATEGORY_GAP_RATIO = 0.2;
18
+ var DEFAULT_BAR_GAP_RATIO = 0.1;
18
19
 
19
20
  // TODO: those might be better placed in a distinct file
20
21
  var xExtremumGetters = {
@@ -33,6 +34,12 @@ export var CartesianContext = /*#__PURE__*/React.createContext({
33
34
  xAxisIds: [],
34
35
  yAxisIds: []
35
36
  });
37
+
38
+ /**
39
+ * API:
40
+ *
41
+ * - [CartesianContextProvider API](https://mui.com/x/api/charts/cartesian-context-provider/)
42
+ */
36
43
  function CartesianContextProvider(_ref) {
37
44
  var inXAxis = _ref.xAxis,
38
45
  inYAxis = _ref.yAxis,
@@ -124,20 +131,21 @@ function CartesianContextProvider(_ref) {
124
131
  maxData = _getAxisExtremum2[1];
125
132
  var range = [drawingArea.left, drawingArea.left + drawingArea.width];
126
133
  if (isBandScaleConfig(axis)) {
127
- var _axis$categoryGapRati;
134
+ var _axis$categoryGapRati, _axis$barGapRatio;
128
135
  var categoryGapRatio = (_axis$categoryGapRati = axis.categoryGapRatio) != null ? _axis$categoryGapRati : DEFAULT_CATEGORY_GAP_RATIO;
136
+ var barGapRatio = (_axis$barGapRatio = axis.barGapRatio) != null ? _axis$barGapRatio : DEFAULT_BAR_GAP_RATIO;
129
137
  completedXAxis[axis.id] = _extends({
130
138
  categoryGapRatio: categoryGapRatio,
131
- barGapRatio: 0
139
+ barGapRatio: barGapRatio
132
140
  }, axis, {
133
141
  scale: scaleBand(axis.data, range).paddingInner(categoryGapRatio).paddingOuter(categoryGapRatio / 2),
134
- ticksNumber: axis.data.length
142
+ tickNumber: axis.data.length
135
143
  });
136
144
  }
137
145
  if (isPointScaleConfig(axis)) {
138
146
  completedXAxis[axis.id] = _extends({}, axis, {
139
147
  scale: scalePoint(axis.data, range),
140
- ticksNumber: axis.data.length
148
+ tickNumber: axis.data.length
141
149
  });
142
150
  }
143
151
  if (axis.scaleType === 'band' || axis.scaleType === 'point') {
@@ -146,17 +154,17 @@ function CartesianContextProvider(_ref) {
146
154
  }
147
155
  var scaleType = (_axis$scaleType = axis.scaleType) != null ? _axis$scaleType : 'linear';
148
156
  var extremums = [(_axis$min = axis.min) != null ? _axis$min : minData, (_axis$max = axis.max) != null ? _axis$max : maxData];
149
- var ticksNumber = getTicksNumber(_extends({}, axis, {
157
+ var tickNumber = getTickNumber(_extends({}, axis, {
150
158
  range: range,
151
159
  domain: extremums
152
160
  }));
153
- var niceScale = getScale(scaleType, extremums, range).nice(ticksNumber);
161
+ var niceScale = getScale(scaleType, extremums, range).nice(tickNumber);
154
162
  var niceDomain = niceScale.domain();
155
163
  var domain = [(_axis$min2 = axis.min) != null ? _axis$min2 : niceDomain[0], (_axis$max2 = axis.max) != null ? _axis$max2 : niceDomain[1]];
156
164
  completedXAxis[axis.id] = _extends({}, axis, {
157
165
  scaleType: scaleType,
158
166
  scale: niceScale.domain(domain),
159
- ticksNumber: ticksNumber
167
+ tickNumber: tickNumber
160
168
  });
161
169
  });
162
170
  var allYAxis = [].concat(_toConsumableArray((_yAxis$map = yAxis == null ? void 0 : yAxis.map(function (axis, index) {
@@ -187,13 +195,13 @@ function CartesianContextProvider(_ref) {
187
195
  barGapRatio: 0
188
196
  }, axis, {
189
197
  scale: scaleBand(axis.data, [range[1], range[0]]).paddingInner(categoryGapRatio).paddingOuter(categoryGapRatio / 2),
190
- ticksNumber: axis.data.length
198
+ tickNumber: axis.data.length
191
199
  });
192
200
  }
193
201
  if (isPointScaleConfig(axis)) {
194
202
  completedYAxis[axis.id] = _extends({}, axis, {
195
203
  scale: scalePoint(axis.data, [range[1], range[0]]),
196
- ticksNumber: axis.data.length
204
+ tickNumber: axis.data.length
197
205
  });
198
206
  }
199
207
  if (axis.scaleType === 'band' || axis.scaleType === 'point') {
@@ -202,17 +210,17 @@ function CartesianContextProvider(_ref) {
202
210
  }
203
211
  var scaleType = (_axis$scaleType2 = axis.scaleType) != null ? _axis$scaleType2 : 'linear';
204
212
  var extremums = [(_axis$min3 = axis.min) != null ? _axis$min3 : minData, (_axis$max3 = axis.max) != null ? _axis$max3 : maxData];
205
- var ticksNumber = getTicksNumber(_extends({}, axis, {
213
+ var tickNumber = getTickNumber(_extends({}, axis, {
206
214
  range: range,
207
215
  domain: extremums
208
216
  }));
209
- var niceScale = getScale(scaleType, extremums, range).nice(ticksNumber);
217
+ var niceScale = getScale(scaleType, extremums, range).nice(tickNumber);
210
218
  var niceDomain = niceScale.domain();
211
219
  var domain = [(_axis$min4 = axis.min) != null ? _axis$min4 : niceDomain[0], (_axis$max4 = axis.max) != null ? _axis$max4 : niceDomain[1]];
212
220
  completedYAxis[axis.id] = _extends({}, axis, {
213
221
  scaleType: scaleType,
214
222
  scale: niceScale.domain(domain),
215
- ticksNumber: ticksNumber
223
+ tickNumber: tickNumber
216
224
  });
217
225
  });
218
226
  return {
@@ -241,7 +249,14 @@ process.env.NODE_ENV !== "production" ? CartesianContextProvider.propTypes = {
241
249
  // | To update them edit the TypeScript types and run "yarn proptypes" |
242
250
  // ----------------------------------------------------------------------
243
251
  children: PropTypes.node,
252
+ /**
253
+ * An array of objects that can be used to populate series and axes data using their `dataKey` property.
254
+ */
244
255
  dataset: PropTypes.arrayOf(PropTypes.object),
256
+ /**
257
+ * The configuration of the x-axes.
258
+ * If not provided, a default axis config is used with id set to `DEFAULT_X_AXIS_KEY`.
259
+ */
245
260
  xAxis: PropTypes.arrayOf(PropTypes.shape({
246
261
  axisId: PropTypes.string,
247
262
  classes: PropTypes.object,
@@ -254,6 +269,7 @@ process.env.NODE_ENV !== "production" ? CartesianContextProvider.propTypes = {
254
269
  id: PropTypes.string,
255
270
  label: PropTypes.string,
256
271
  labelFontSize: PropTypes.number,
272
+ labelStyle: PropTypes.object,
257
273
  max: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
258
274
  min: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
259
275
  position: PropTypes.oneOf(['bottom', 'left', 'right', 'top']),
@@ -262,12 +278,19 @@ process.env.NODE_ENV !== "production" ? CartesianContextProvider.propTypes = {
262
278
  slots: PropTypes.object,
263
279
  stroke: PropTypes.string,
264
280
  tickFontSize: PropTypes.number,
281
+ tickInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.array, PropTypes.func]),
282
+ tickLabelInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.func]),
283
+ tickLabelStyle: PropTypes.object,
265
284
  tickMaxStep: PropTypes.number,
266
285
  tickMinStep: PropTypes.number,
267
286
  tickNumber: PropTypes.number,
268
287
  tickSize: PropTypes.number,
269
288
  valueFormatter: PropTypes.func
270
289
  })),
290
+ /**
291
+ * The configuration of the y-axes.
292
+ * If not provided, a default axis config is used with id set to `DEFAULT_Y_AXIS_KEY`.
293
+ */
271
294
  yAxis: PropTypes.arrayOf(PropTypes.shape({
272
295
  axisId: PropTypes.string,
273
296
  classes: PropTypes.object,
@@ -280,6 +303,7 @@ process.env.NODE_ENV !== "production" ? CartesianContextProvider.propTypes = {
280
303
  id: PropTypes.string,
281
304
  label: PropTypes.string,
282
305
  labelFontSize: PropTypes.number,
306
+ labelStyle: PropTypes.object,
283
307
  max: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
284
308
  min: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
285
309
  position: PropTypes.oneOf(['bottom', 'left', 'right', 'top']),
@@ -288,6 +312,9 @@ process.env.NODE_ENV !== "production" ? CartesianContextProvider.propTypes = {
288
312
  slots: PropTypes.object,
289
313
  stroke: PropTypes.string,
290
314
  tickFontSize: PropTypes.number,
315
+ tickInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.array, PropTypes.func]),
316
+ tickLabelInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.func]),
317
+ tickLabelStyle: PropTypes.object,
291
318
  tickMaxStep: PropTypes.number,
292
319
  tickMinStep: PropTypes.number,
293
320
  tickNumber: PropTypes.number,
@@ -9,12 +9,20 @@ import { jsx as _jsx } from "react/jsx-runtime";
9
9
  export var DrawingContext = /*#__PURE__*/React.createContext({
10
10
  top: 0,
11
11
  left: 0,
12
+ bottom: 0,
13
+ right: 0,
12
14
  height: 300,
13
15
  width: 400
14
16
  });
15
17
  export var SVGContext = /*#__PURE__*/React.createContext({
16
18
  current: null
17
19
  });
20
+
21
+ /**
22
+ * API:
23
+ *
24
+ * - [DrawingProvider API](https://mui.com/x/api/charts/drawing-provider/)
25
+ */
18
26
  function DrawingProvider(_ref) {
19
27
  var width = _ref.width,
20
28
  height = _ref.height,
@@ -37,6 +45,12 @@ process.env.NODE_ENV !== "production" ? DrawingProvider.propTypes = {
37
45
  // ----------------------------------------------------------------------
38
46
  children: PropTypes.node,
39
47
  height: PropTypes.number.isRequired,
48
+ /**
49
+ * The margin between the SVG and the drawing area.
50
+ * It's used for leaving some space for extra information such as the x- and y-axis or legend.
51
+ * Accepts an object with the optional properties: `top`, `bottom`, `left`, and `right`.
52
+ * @default object Depends on the charts type.
53
+ */
40
54
  margin: PropTypes.shape({
41
55
  bottom: PropTypes.number,
42
56
  left: PropTypes.number,
@@ -7,6 +7,8 @@ var useChartDimensions = function useChartDimensions(width, height, margin) {
7
7
  return {
8
8
  left: defaultizedMargin.left,
9
9
  top: defaultizedMargin.top,
10
+ right: defaultizedMargin.right,
11
+ bottom: defaultizedMargin.bottom,
10
12
  width: Math.max(0, width - defaultizedMargin.left - defaultizedMargin.right),
11
13
  height: Math.max(0, height - defaultizedMargin.top - defaultizedMargin.bottom)
12
14
  };
@@ -0,0 +1,21 @@
1
+ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
2
+ import * as React from 'react';
3
+ import useEnhancedEffect from '@mui/utils/useEnhancedEffect';
4
+ export function useMounted() {
5
+ var defer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
6
+ var _React$useState = React.useState(false),
7
+ _React$useState2 = _slicedToArray(_React$useState, 2),
8
+ mountedState = _React$useState2[0],
9
+ setMountedState = _React$useState2[1];
10
+ useEnhancedEffect(function () {
11
+ if (!defer) {
12
+ setMountedState(true);
13
+ }
14
+ }, [defer]);
15
+ React.useEffect(function () {
16
+ if (defer) {
17
+ setMountedState(true);
18
+ }
19
+ }, [defer]);
20
+ return mountedState;
21
+ }