@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
@@ -5,6 +5,16 @@ import { getValueToPositionMapper } from '../hooks/useScale';
5
5
  import { getIsFaded, getIsHighlighted, useInteractionItemProps } from '../hooks/useInteractionItemProps';
6
6
  import { InteractionContext } from '../context/InteractionProvider';
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
+ * - [Scatter API](https://mui.com/x/api/charts/scatter/)
17
+ */
8
18
  function Scatter(props) {
9
19
  const {
10
20
  series,
@@ -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
  const ScatterChart = /*#__PURE__*/React.forwardRef(function ScatterChart(props, ref) {
13
23
  const {
14
24
  xAxis,
@@ -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
  const {
@@ -15,6 +15,16 @@ const 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
  const SparkLineChart = /*#__PURE__*/React.forwardRef(function SparkLineChart(props, ref) {
19
29
  const {
20
30
  xAxis,
@@ -58,7 +68,7 @@ const SparkLineChart = /*#__PURE__*/React.forwardRef(function SparkLineChart(pro
58
68
  margin: margin,
59
69
  xAxis: [_extends({
60
70
  id: DEFAULT_X_AXIS_KEY,
61
- scaleType: plotType === 'bar' ? 'band' : 'linear',
71
+ scaleType: plotType === 'bar' ? 'band' : 'point',
62
72
  data: Array.from({
63
73
  length: data.length
64
74
  }, (_, index) => index),
@@ -69,7 +79,10 @@ const SparkLineChart = /*#__PURE__*/React.forwardRef(function SparkLineChart(pro
69
79
  disableAxisListener: (!showTooltip || (tooltip == null ? void 0 : tooltip.trigger) !== 'axis') && (axisHighlight == null ? void 0 : axisHighlight.x) === 'none' && (axisHighlight == null ? void 0 : axisHighlight.y) === 'none',
70
80
  children: [plotType === 'bar' && /*#__PURE__*/_jsx(BarPlot, {
71
81
  slots: slots,
72
- slotProps: slotProps
82
+ slotProps: slotProps,
83
+ sx: {
84
+ shapeRendering: 'auto'
85
+ }
73
86
  }), plotType === 'line' && /*#__PURE__*/_jsxs(React.Fragment, {
74
87
  children: [/*#__PURE__*/_jsx(AreaPlot, {
75
88
  slots: slots,
@@ -81,7 +94,10 @@ const SparkLineChart = /*#__PURE__*/React.forwardRef(function SparkLineChart(pro
81
94
  slots: slots,
82
95
  slotProps: slotProps
83
96
  })]
84
- }), /*#__PURE__*/_jsx(ChartsAxisHighlight, _extends({}, axisHighlight)), showTooltip && /*#__PURE__*/_jsx(ChartsTooltip, _extends({}, tooltip)), children]
97
+ }), /*#__PURE__*/_jsx(ChartsAxisHighlight, _extends({}, axisHighlight)), showTooltip && /*#__PURE__*/_jsx(ChartsTooltip, _extends({}, tooltip, {
98
+ slotProps: slotProps,
99
+ slots: slots
100
+ })), children]
85
101
  });
86
102
  });
87
103
  process.env.NODE_ENV !== "production" ? SparkLineChart.propTypes = {
@@ -113,10 +129,28 @@ process.env.NODE_ENV !== "production" ? SparkLineChart.propTypes = {
113
129
  * Data to plot.
114
130
  */
115
131
  data: PropTypes.arrayOf(PropTypes.number).isRequired,
132
+ /**
133
+ * An array of objects that can be used to populate series and axes data using their `dataKey` property.
134
+ */
116
135
  dataset: PropTypes.arrayOf(PropTypes.object),
117
136
  desc: PropTypes.string,
137
+ /**
138
+ * If `true`, the charts will not listen to the mouse move event.
139
+ * It might break interactive features, but will improve performance.
140
+ * @default false
141
+ */
118
142
  disableAxisListener: PropTypes.bool,
143
+ /**
144
+ * The height of the chart in px. If not defined, it takes the height of the parent element.
145
+ * @default undefined
146
+ */
119
147
  height: PropTypes.number,
148
+ /**
149
+ * The margin between the SVG and the drawing area.
150
+ * It's used for leaving some space for extra information such as the x- and y-axis or legend.
151
+ * Accepts an object with the optional properties: `top`, `bottom`, `left`, and `right`.
152
+ * @default object Depends on the charts type.
153
+ */
120
154
  margin: PropTypes.shape({
121
155
  bottom: PropTypes.number,
122
156
  left: PropTypes.number,
@@ -156,6 +190,8 @@ process.env.NODE_ENV !== "production" ? SparkLineChart.propTypes = {
156
190
  axisContent: PropTypes.elementType,
157
191
  classes: PropTypes.object,
158
192
  itemContent: PropTypes.elementType,
193
+ slotProps: PropTypes.object,
194
+ slots: PropTypes.object,
159
195
  trigger: PropTypes.oneOf(['axis', 'item', 'none'])
160
196
  }),
161
197
  /**
@@ -170,6 +206,10 @@ process.env.NODE_ENV !== "production" ? SparkLineChart.propTypes = {
170
206
  x: PropTypes.number,
171
207
  y: PropTypes.number
172
208
  }),
209
+ /**
210
+ * The width of the chart in px. If not defined, it takes the width of the parent element.
211
+ * @default undefined
212
+ */
173
213
  width: PropTypes.number,
174
214
  /**
175
215
  * The xAxis configuration.
@@ -187,6 +227,7 @@ process.env.NODE_ENV !== "production" ? SparkLineChart.propTypes = {
187
227
  id: PropTypes.string,
188
228
  label: PropTypes.string,
189
229
  labelFontSize: PropTypes.number,
230
+ labelStyle: PropTypes.object,
190
231
  max: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
191
232
  min: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
192
233
  position: PropTypes.oneOf(['bottom', 'left', 'right', 'top']),
@@ -195,6 +236,9 @@ process.env.NODE_ENV !== "production" ? SparkLineChart.propTypes = {
195
236
  slots: PropTypes.object,
196
237
  stroke: PropTypes.string,
197
238
  tickFontSize: PropTypes.number,
239
+ tickInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.array, PropTypes.func]),
240
+ tickLabelInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.func]),
241
+ tickLabelStyle: PropTypes.object,
198
242
  tickMaxStep: PropTypes.number,
199
243
  tickMinStep: PropTypes.number,
200
244
  tickNumber: PropTypes.number,
package/esm/constants.js CHANGED
@@ -1,7 +1,7 @@
1
1
  export const DEFAULT_X_AXIS_KEY = 'DEFAULT_X_AXIS_KEY';
2
2
  export const DEFAULT_Y_AXIS_KEY = 'DEFAULT_Y_AXIS_KEY';
3
3
  export const DEFAULT_MARGINS = {
4
- top: 100,
4
+ top: 50,
5
5
  bottom: 50,
6
6
  left: 50,
7
7
  right: 50
@@ -10,9 +10,10 @@ import { getScale } from '../internals/getScale';
10
10
  import { DrawingContext } from './DrawingProvider';
11
11
  import { SeriesContext } from './SeriesContextProvider';
12
12
  import { DEFAULT_X_AXIS_KEY, DEFAULT_Y_AXIS_KEY } from '../constants';
13
- import { getTicksNumber } from '../hooks/useTicks';
13
+ import { getTickNumber } from '../hooks/useTicks';
14
14
  import { jsx as _jsx } from "react/jsx-runtime";
15
- const DEFAULT_CATEGORY_GAP_RATIO = 0.1;
15
+ const DEFAULT_CATEGORY_GAP_RATIO = 0.2;
16
+ const DEFAULT_BAR_GAP_RATIO = 0.1;
16
17
 
17
18
  // TODO: those might be better placed in a distinct file
18
19
  const xExtremumGetters = {
@@ -31,6 +32,12 @@ export const CartesianContext = /*#__PURE__*/React.createContext({
31
32
  xAxisIds: [],
32
33
  yAxisIds: []
33
34
  });
35
+
36
+ /**
37
+ * API:
38
+ *
39
+ * - [CartesianContextProvider API](https://mui.com/x/api/charts/cartesian-context-provider/)
40
+ */
34
41
  function CartesianContextProvider({
35
42
  xAxis: inXAxis,
36
43
  yAxis: inYAxis,
@@ -104,20 +111,21 @@ function CartesianContextProvider({
104
111
  const [minData, maxData] = getAxisExtremum(axis, xExtremumGetters, isDefaultAxis);
105
112
  const range = [drawingArea.left, drawingArea.left + drawingArea.width];
106
113
  if (isBandScaleConfig(axis)) {
107
- var _axis$categoryGapRati;
114
+ var _axis$categoryGapRati, _axis$barGapRatio;
108
115
  const categoryGapRatio = (_axis$categoryGapRati = axis.categoryGapRatio) != null ? _axis$categoryGapRati : DEFAULT_CATEGORY_GAP_RATIO;
116
+ const barGapRatio = (_axis$barGapRatio = axis.barGapRatio) != null ? _axis$barGapRatio : DEFAULT_BAR_GAP_RATIO;
109
117
  completedXAxis[axis.id] = _extends({
110
118
  categoryGapRatio,
111
- barGapRatio: 0
119
+ barGapRatio
112
120
  }, axis, {
113
121
  scale: scaleBand(axis.data, range).paddingInner(categoryGapRatio).paddingOuter(categoryGapRatio / 2),
114
- ticksNumber: axis.data.length
122
+ tickNumber: axis.data.length
115
123
  });
116
124
  }
117
125
  if (isPointScaleConfig(axis)) {
118
126
  completedXAxis[axis.id] = _extends({}, axis, {
119
127
  scale: scalePoint(axis.data, range),
120
- ticksNumber: axis.data.length
128
+ tickNumber: axis.data.length
121
129
  });
122
130
  }
123
131
  if (axis.scaleType === 'band' || axis.scaleType === 'point') {
@@ -126,17 +134,17 @@ function CartesianContextProvider({
126
134
  }
127
135
  const scaleType = (_axis$scaleType = axis.scaleType) != null ? _axis$scaleType : 'linear';
128
136
  const extremums = [(_axis$min = axis.min) != null ? _axis$min : minData, (_axis$max = axis.max) != null ? _axis$max : maxData];
129
- const ticksNumber = getTicksNumber(_extends({}, axis, {
137
+ const tickNumber = getTickNumber(_extends({}, axis, {
130
138
  range,
131
139
  domain: extremums
132
140
  }));
133
- const niceScale = getScale(scaleType, extremums, range).nice(ticksNumber);
141
+ const niceScale = getScale(scaleType, extremums, range).nice(tickNumber);
134
142
  const niceDomain = niceScale.domain();
135
143
  const domain = [(_axis$min2 = axis.min) != null ? _axis$min2 : niceDomain[0], (_axis$max2 = axis.max) != null ? _axis$max2 : niceDomain[1]];
136
144
  completedXAxis[axis.id] = _extends({}, axis, {
137
145
  scaleType,
138
146
  scale: niceScale.domain(domain),
139
- ticksNumber
147
+ tickNumber
140
148
  });
141
149
  });
142
150
  const allYAxis = [...((_yAxis$map = yAxis == null ? void 0 : yAxis.map((axis, index) => _extends({
@@ -161,13 +169,13 @@ function CartesianContextProvider({
161
169
  barGapRatio: 0
162
170
  }, axis, {
163
171
  scale: scaleBand(axis.data, [range[1], range[0]]).paddingInner(categoryGapRatio).paddingOuter(categoryGapRatio / 2),
164
- ticksNumber: axis.data.length
172
+ tickNumber: axis.data.length
165
173
  });
166
174
  }
167
175
  if (isPointScaleConfig(axis)) {
168
176
  completedYAxis[axis.id] = _extends({}, axis, {
169
177
  scale: scalePoint(axis.data, [range[1], range[0]]),
170
- ticksNumber: axis.data.length
178
+ tickNumber: axis.data.length
171
179
  });
172
180
  }
173
181
  if (axis.scaleType === 'band' || axis.scaleType === 'point') {
@@ -176,17 +184,17 @@ function CartesianContextProvider({
176
184
  }
177
185
  const scaleType = (_axis$scaleType2 = axis.scaleType) != null ? _axis$scaleType2 : 'linear';
178
186
  const extremums = [(_axis$min3 = axis.min) != null ? _axis$min3 : minData, (_axis$max3 = axis.max) != null ? _axis$max3 : maxData];
179
- const ticksNumber = getTicksNumber(_extends({}, axis, {
187
+ const tickNumber = getTickNumber(_extends({}, axis, {
180
188
  range,
181
189
  domain: extremums
182
190
  }));
183
- const niceScale = getScale(scaleType, extremums, range).nice(ticksNumber);
191
+ const niceScale = getScale(scaleType, extremums, range).nice(tickNumber);
184
192
  const niceDomain = niceScale.domain();
185
193
  const domain = [(_axis$min4 = axis.min) != null ? _axis$min4 : niceDomain[0], (_axis$max4 = axis.max) != null ? _axis$max4 : niceDomain[1]];
186
194
  completedYAxis[axis.id] = _extends({}, axis, {
187
195
  scaleType,
188
196
  scale: niceScale.domain(domain),
189
- ticksNumber
197
+ tickNumber
190
198
  });
191
199
  });
192
200
  return {
@@ -213,7 +221,14 @@ process.env.NODE_ENV !== "production" ? CartesianContextProvider.propTypes = {
213
221
  // | To update them edit the TypeScript types and run "yarn proptypes" |
214
222
  // ----------------------------------------------------------------------
215
223
  children: PropTypes.node,
224
+ /**
225
+ * An array of objects that can be used to populate series and axes data using their `dataKey` property.
226
+ */
216
227
  dataset: PropTypes.arrayOf(PropTypes.object),
228
+ /**
229
+ * The configuration of the x-axes.
230
+ * If not provided, a default axis config is used with id set to `DEFAULT_X_AXIS_KEY`.
231
+ */
217
232
  xAxis: PropTypes.arrayOf(PropTypes.shape({
218
233
  axisId: PropTypes.string,
219
234
  classes: PropTypes.object,
@@ -226,6 +241,7 @@ process.env.NODE_ENV !== "production" ? CartesianContextProvider.propTypes = {
226
241
  id: PropTypes.string,
227
242
  label: PropTypes.string,
228
243
  labelFontSize: PropTypes.number,
244
+ labelStyle: PropTypes.object,
229
245
  max: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
230
246
  min: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
231
247
  position: PropTypes.oneOf(['bottom', 'left', 'right', 'top']),
@@ -234,12 +250,19 @@ process.env.NODE_ENV !== "production" ? CartesianContextProvider.propTypes = {
234
250
  slots: PropTypes.object,
235
251
  stroke: PropTypes.string,
236
252
  tickFontSize: PropTypes.number,
253
+ tickInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.array, PropTypes.func]),
254
+ tickLabelInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.func]),
255
+ tickLabelStyle: PropTypes.object,
237
256
  tickMaxStep: PropTypes.number,
238
257
  tickMinStep: PropTypes.number,
239
258
  tickNumber: PropTypes.number,
240
259
  tickSize: PropTypes.number,
241
260
  valueFormatter: PropTypes.func
242
261
  })),
262
+ /**
263
+ * The configuration of the y-axes.
264
+ * If not provided, a default axis config is used with id set to `DEFAULT_Y_AXIS_KEY`.
265
+ */
243
266
  yAxis: PropTypes.arrayOf(PropTypes.shape({
244
267
  axisId: PropTypes.string,
245
268
  classes: PropTypes.object,
@@ -252,6 +275,7 @@ process.env.NODE_ENV !== "production" ? CartesianContextProvider.propTypes = {
252
275
  id: PropTypes.string,
253
276
  label: PropTypes.string,
254
277
  labelFontSize: PropTypes.number,
278
+ labelStyle: PropTypes.object,
255
279
  max: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
256
280
  min: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
257
281
  position: PropTypes.oneOf(['bottom', 'left', 'right', 'top']),
@@ -260,6 +284,9 @@ process.env.NODE_ENV !== "production" ? CartesianContextProvider.propTypes = {
260
284
  slots: PropTypes.object,
261
285
  stroke: PropTypes.string,
262
286
  tickFontSize: PropTypes.number,
287
+ tickInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.array, PropTypes.func]),
288
+ tickLabelInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.func]),
289
+ tickLabelStyle: PropTypes.object,
263
290
  tickMaxStep: PropTypes.number,
264
291
  tickMinStep: PropTypes.number,
265
292
  tickNumber: PropTypes.number,
@@ -9,12 +9,20 @@ import { jsx as _jsx } from "react/jsx-runtime";
9
9
  export const 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 const 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({
19
27
  width,
20
28
  height,
@@ -38,6 +46,12 @@ process.env.NODE_ENV !== "production" ? DrawingProvider.propTypes = {
38
46
  // ----------------------------------------------------------------------
39
47
  children: PropTypes.node,
40
48
  height: PropTypes.number.isRequired,
49
+ /**
50
+ * The margin between the SVG and the drawing area.
51
+ * It's used for leaving some space for extra information such as the x- and y-axis or legend.
52
+ * Accepts an object with the optional properties: `top`, `bottom`, `left`, and `right`.
53
+ * @default object Depends on the charts type.
54
+ */
41
55
  margin: PropTypes.shape({
42
56
  bottom: PropTypes.number,
43
57
  left: PropTypes.number,
@@ -6,6 +6,8 @@ const useChartDimensions = (width, height, margin) => {
6
6
  const drawingArea = React.useMemo(() => ({
7
7
  left: defaultizedMargin.left,
8
8
  top: defaultizedMargin.top,
9
+ right: defaultizedMargin.right,
10
+ bottom: defaultizedMargin.bottom,
9
11
  width: Math.max(0, width - defaultizedMargin.left - defaultizedMargin.right),
10
12
  height: Math.max(0, height - defaultizedMargin.top - defaultizedMargin.bottom)
11
13
  }), [width, height, defaultizedMargin.top, defaultizedMargin.bottom, defaultizedMargin.left, defaultizedMargin.right]);
@@ -0,0 +1,16 @@
1
+ import * as React from 'react';
2
+ import useEnhancedEffect from '@mui/utils/useEnhancedEffect';
3
+ export function useMounted(defer = false) {
4
+ const [mountedState, setMountedState] = React.useState(false);
5
+ useEnhancedEffect(() => {
6
+ if (!defer) {
7
+ setMountedState(true);
8
+ }
9
+ }, [defer]);
10
+ React.useEffect(() => {
11
+ if (defer) {
12
+ setMountedState(true);
13
+ }
14
+ }, [defer]);
15
+ return mountedState;
16
+ }
@@ -0,0 +1,27 @@
1
+ import { useIsomorphicLayoutEffect, Globals } from '@react-spring/web';
2
+
3
+ /**
4
+ * Returns `boolean` or `null`, used to automatically
5
+ * set skipAnimations to the value of the user's
6
+ * `prefers-reduced-motion` query.
7
+ *
8
+ * The return value, post-effect, is the value of their prefered setting
9
+ */
10
+ export const useReducedMotion = () => {
11
+ // Taken from: https://github.com/pmndrs/react-spring/blob/02ec877bbfab0df46da0e4a47d5f68d3e731206a/packages/shared/src/hooks/useReducedMotion.ts#L13
12
+
13
+ useIsomorphicLayoutEffect(() => {
14
+ const mql = window.matchMedia('(prefers-reduced-motion)');
15
+ const handleMediaChange = e => {
16
+ Globals.assign({
17
+ // Modification such the react-spring implementation such that this hook can remove animation but never activate animation.
18
+ skipAnimation: e.matches || undefined
19
+ });
20
+ };
21
+ handleMediaChange(mql);
22
+ mql.addEventListener('change', handleMediaChange);
23
+ return () => {
24
+ mql.removeEventListener('change', handleMediaChange);
25
+ };
26
+ }, []);
27
+ };