@mui/x-charts 7.16.0 → 7.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (318) hide show
  1. package/BarChart/BarChart.js +3 -0
  2. package/BarChart/BarElement.js +2 -0
  3. package/BarChart/BarLabel/BarLabel.js +2 -0
  4. package/BarChart/BarPlot.js +2 -0
  5. package/BarChart/legend.js +3 -2
  6. package/BarChart/useBarChartProps.js +2 -0
  7. package/CHANGELOG.md +87 -0
  8. package/ChartContainer/ChartContainer.js +2 -0
  9. package/ChartContainer/useChartContainerProps.js +2 -0
  10. package/ChartContainer/useDefaultizeAxis.js +2 -0
  11. package/ChartsAxis/ChartsAxis.js +2 -0
  12. package/ChartsAxisHighlight/ChartsAxisHighlight.js +2 -0
  13. package/ChartsClipPath/ChartsClipPath.js +2 -0
  14. package/ChartsGrid/ChartsGrid.js +2 -0
  15. package/ChartsLegend/ChartsLegend.js +11 -1
  16. package/ChartsLegend/ChartsLegendItem.d.ts +26 -0
  17. package/ChartsLegend/ChartsLegendItem.js +65 -0
  18. package/ChartsLegend/ContinuousColorLegend.js +2 -0
  19. package/ChartsLegend/DefaultChartsLegend.d.ts +9 -1
  20. package/ChartsLegend/DefaultChartsLegend.js +26 -4
  21. package/ChartsLegend/LegendPerItem.d.ts +1 -0
  22. package/ChartsLegend/LegendPerItem.js +19 -28
  23. package/ChartsLegend/PiecewiseColorLegend.d.ts +9 -1
  24. package/ChartsLegend/PiecewiseColorLegend.js +28 -7
  25. package/ChartsLegend/chartsLegend.types.d.ts +39 -1
  26. package/ChartsLegend/chartsLegendClasses.d.ts +2 -0
  27. package/ChartsLegend/chartsLegendClasses.js +1 -1
  28. package/ChartsLegend/useAxis.js +2 -0
  29. package/ChartsOnAxisClickHandler/ChartsOnAxisClickHandler.js +3 -1
  30. package/ChartsOverlay/ChartsLoadingOverlay.js +2 -0
  31. package/ChartsOverlay/ChartsNoDataOverlay.js +2 -0
  32. package/ChartsOverlay/ChartsOverlay.js +2 -0
  33. package/ChartsReferenceLine/ChartsReferenceLine.js +2 -0
  34. package/ChartsReferenceLine/ChartsXReferenceLine.js +3 -1
  35. package/ChartsReferenceLine/ChartsYReferenceLine.js +3 -1
  36. package/ChartsSurface/ChartsSurface.js +2 -0
  37. package/ChartsText/ChartsText.js +2 -0
  38. package/ChartsTooltip/ChartsTooltip.js +2 -0
  39. package/ChartsTooltip/DefaultChartsAxisTooltipContent.js +2 -0
  40. package/ChartsTooltip/DefaultChartsItemTooltipContent.js +2 -0
  41. package/ChartsVoronoiHandler/ChartsVoronoiHandler.js +2 -0
  42. package/ChartsXAxis/ChartsXAxis.js +2 -0
  43. package/ChartsYAxis/ChartsYAxis.js +2 -0
  44. package/Gauge/Gauge.js +2 -0
  45. package/Gauge/GaugeContainer.js +2 -0
  46. package/Gauge/GaugeReferenceArc.js +2 -0
  47. package/Gauge/GaugeValueArc.js +2 -0
  48. package/Gauge/GaugeValueText.js +2 -0
  49. package/LineChart/AnimatedArea.js +2 -0
  50. package/LineChart/AnimatedLine.js +2 -0
  51. package/LineChart/AreaElement.js +2 -0
  52. package/LineChart/AreaPlot.js +2 -0
  53. package/LineChart/CircleMarkElement.d.ts +34 -0
  54. package/LineChart/CircleMarkElement.js +107 -0
  55. package/LineChart/LineChart.d.ts +4 -0
  56. package/LineChart/LineChart.js +7 -0
  57. package/LineChart/LineElement.js +2 -0
  58. package/LineChart/LineHighlightElement.js +2 -0
  59. package/LineChart/LineHighlightPlot.js +2 -0
  60. package/LineChart/LinePlot.js +2 -0
  61. package/LineChart/MarkElement.d.ts +1 -19
  62. package/LineChart/MarkElement.js +3 -19
  63. package/LineChart/MarkPlot.d.ts +6 -0
  64. package/LineChart/MarkPlot.js +13 -3
  65. package/LineChart/index.d.ts +2 -0
  66. package/LineChart/index.js +2 -1
  67. package/LineChart/legend.js +3 -2
  68. package/LineChart/markElementClasses.d.ts +20 -0
  69. package/LineChart/markElementClasses.js +19 -0
  70. package/LineChart/useLineChartProps.js +7 -3
  71. package/PieChart/PieArc.js +2 -0
  72. package/PieChart/PieArcLabel.js +2 -0
  73. package/PieChart/PieArcLabelPlot.js +2 -0
  74. package/PieChart/PieArcPlot.js +2 -0
  75. package/PieChart/PieChart.js +3 -0
  76. package/PieChart/PiePlot.js +2 -0
  77. package/PieChart/dataTransform/useTransformData.js +2 -0
  78. package/PieChart/legend.js +3 -1
  79. package/ResponsiveChartContainer/ResponsiveChartContainer.js +2 -0
  80. package/ResponsiveChartContainer/useChartContainerDimensions.js +3 -1
  81. package/ResponsiveChartContainer/useResponsiveChartContainerProps.js +2 -0
  82. package/ScatterChart/Scatter.js +2 -0
  83. package/ScatterChart/ScatterChart.js +3 -0
  84. package/ScatterChart/ScatterPlot.js +2 -0
  85. package/ScatterChart/legend.js +3 -2
  86. package/ScatterChart/useScatterChartProps.js +2 -0
  87. package/SparkLineChart/SparkLineChart.js +2 -0
  88. package/context/CartesianProvider/CartesianProvider.js +2 -0
  89. package/context/CartesianProvider/useCartesianContext.js +2 -0
  90. package/context/DrawingProvider.js +2 -0
  91. package/context/HighlightedProvider/HighlightedProvider.js +2 -0
  92. package/context/HighlightedProvider/useHighlighted.js +2 -0
  93. package/context/HighlightedProvider/useItemHighlighted.js +2 -0
  94. package/context/InteractionProvider.js +2 -0
  95. package/context/PluginProvider/PluginProvider.js +2 -0
  96. package/context/PluginProvider/useColorProcessor.js +2 -0
  97. package/context/PluginProvider/useSeriesFormatter.js +2 -0
  98. package/context/SeriesProvider/SeriesProvider.js +2 -0
  99. package/context/ZAxisContextProvider.js +2 -0
  100. package/hooks/useAxis.js +2 -0
  101. package/hooks/useAxisEvents.js +2 -0
  102. package/hooks/useChartDimensions.js +2 -0
  103. package/hooks/useChartId.js +2 -0
  104. package/hooks/useColorScale.js +2 -0
  105. package/hooks/useDrawingArea.js +2 -0
  106. package/hooks/useInteractionItemProps.js +2 -0
  107. package/hooks/useMounted.js +2 -0
  108. package/hooks/useReducedMotion.js +2 -0
  109. package/hooks/useScale.js +2 -0
  110. package/hooks/useSeries.js +2 -0
  111. package/hooks/useSvgRef.js +2 -0
  112. package/hooks/useTicks.js +2 -0
  113. package/index.js +1 -1
  114. package/modern/BarChart/BarChart.js +3 -0
  115. package/modern/BarChart/BarElement.js +2 -0
  116. package/modern/BarChart/BarLabel/BarLabel.js +2 -0
  117. package/modern/BarChart/BarPlot.js +2 -0
  118. package/modern/BarChart/legend.js +3 -2
  119. package/modern/BarChart/useBarChartProps.js +2 -0
  120. package/modern/ChartContainer/ChartContainer.js +2 -0
  121. package/modern/ChartContainer/useChartContainerProps.js +2 -0
  122. package/modern/ChartContainer/useDefaultizeAxis.js +2 -0
  123. package/modern/ChartsAxis/ChartsAxis.js +2 -0
  124. package/modern/ChartsAxisHighlight/ChartsAxisHighlight.js +2 -0
  125. package/modern/ChartsClipPath/ChartsClipPath.js +2 -0
  126. package/modern/ChartsGrid/ChartsGrid.js +2 -0
  127. package/modern/ChartsLegend/ChartsLegend.js +11 -1
  128. package/modern/ChartsLegend/ChartsLegendItem.js +65 -0
  129. package/modern/ChartsLegend/ContinuousColorLegend.js +2 -0
  130. package/modern/ChartsLegend/DefaultChartsLegend.js +26 -4
  131. package/modern/ChartsLegend/LegendPerItem.js +19 -28
  132. package/modern/ChartsLegend/PiecewiseColorLegend.js +28 -7
  133. package/modern/ChartsLegend/chartsLegendClasses.js +1 -1
  134. package/modern/ChartsLegend/useAxis.js +2 -0
  135. package/modern/ChartsOnAxisClickHandler/ChartsOnAxisClickHandler.js +3 -1
  136. package/modern/ChartsOverlay/ChartsLoadingOverlay.js +2 -0
  137. package/modern/ChartsOverlay/ChartsNoDataOverlay.js +2 -0
  138. package/modern/ChartsOverlay/ChartsOverlay.js +2 -0
  139. package/modern/ChartsReferenceLine/ChartsReferenceLine.js +2 -0
  140. package/modern/ChartsReferenceLine/ChartsXReferenceLine.js +3 -1
  141. package/modern/ChartsReferenceLine/ChartsYReferenceLine.js +3 -1
  142. package/modern/ChartsSurface/ChartsSurface.js +2 -0
  143. package/modern/ChartsText/ChartsText.js +2 -0
  144. package/modern/ChartsTooltip/ChartsTooltip.js +2 -0
  145. package/modern/ChartsTooltip/DefaultChartsAxisTooltipContent.js +2 -0
  146. package/modern/ChartsTooltip/DefaultChartsItemTooltipContent.js +2 -0
  147. package/modern/ChartsVoronoiHandler/ChartsVoronoiHandler.js +2 -0
  148. package/modern/ChartsXAxis/ChartsXAxis.js +2 -0
  149. package/modern/ChartsYAxis/ChartsYAxis.js +2 -0
  150. package/modern/Gauge/Gauge.js +2 -0
  151. package/modern/Gauge/GaugeContainer.js +2 -0
  152. package/modern/Gauge/GaugeReferenceArc.js +2 -0
  153. package/modern/Gauge/GaugeValueArc.js +2 -0
  154. package/modern/Gauge/GaugeValueText.js +2 -0
  155. package/modern/LineChart/AnimatedArea.js +2 -0
  156. package/modern/LineChart/AnimatedLine.js +2 -0
  157. package/modern/LineChart/AreaElement.js +2 -0
  158. package/modern/LineChart/AreaPlot.js +2 -0
  159. package/modern/LineChart/CircleMarkElement.js +107 -0
  160. package/modern/LineChart/LineChart.js +7 -0
  161. package/modern/LineChart/LineElement.js +2 -0
  162. package/modern/LineChart/LineHighlightElement.js +2 -0
  163. package/modern/LineChart/LineHighlightPlot.js +2 -0
  164. package/modern/LineChart/LinePlot.js +2 -0
  165. package/modern/LineChart/MarkElement.js +3 -19
  166. package/modern/LineChart/MarkPlot.js +13 -3
  167. package/modern/LineChart/index.js +2 -1
  168. package/modern/LineChart/legend.js +3 -2
  169. package/modern/LineChart/markElementClasses.js +19 -0
  170. package/modern/LineChart/useLineChartProps.js +7 -3
  171. package/modern/PieChart/PieArc.js +2 -0
  172. package/modern/PieChart/PieArcLabel.js +2 -0
  173. package/modern/PieChart/PieArcLabelPlot.js +2 -0
  174. package/modern/PieChart/PieArcPlot.js +2 -0
  175. package/modern/PieChart/PieChart.js +3 -0
  176. package/modern/PieChart/PiePlot.js +2 -0
  177. package/modern/PieChart/dataTransform/useTransformData.js +2 -0
  178. package/modern/PieChart/legend.js +3 -1
  179. package/modern/ResponsiveChartContainer/ResponsiveChartContainer.js +2 -0
  180. package/modern/ResponsiveChartContainer/useChartContainerDimensions.js +3 -1
  181. package/modern/ResponsiveChartContainer/useResponsiveChartContainerProps.js +2 -0
  182. package/modern/ScatterChart/Scatter.js +2 -0
  183. package/modern/ScatterChart/ScatterChart.js +3 -0
  184. package/modern/ScatterChart/ScatterPlot.js +2 -0
  185. package/modern/ScatterChart/legend.js +3 -2
  186. package/modern/ScatterChart/useScatterChartProps.js +2 -0
  187. package/modern/SparkLineChart/SparkLineChart.js +2 -0
  188. package/modern/context/CartesianProvider/CartesianProvider.js +2 -0
  189. package/modern/context/CartesianProvider/useCartesianContext.js +2 -0
  190. package/modern/context/DrawingProvider.js +2 -0
  191. package/modern/context/HighlightedProvider/HighlightedProvider.js +2 -0
  192. package/modern/context/HighlightedProvider/useHighlighted.js +2 -0
  193. package/modern/context/HighlightedProvider/useItemHighlighted.js +2 -0
  194. package/modern/context/InteractionProvider.js +2 -0
  195. package/modern/context/PluginProvider/PluginProvider.js +2 -0
  196. package/modern/context/PluginProvider/useColorProcessor.js +2 -0
  197. package/modern/context/PluginProvider/useSeriesFormatter.js +2 -0
  198. package/modern/context/SeriesProvider/SeriesProvider.js +2 -0
  199. package/modern/context/ZAxisContextProvider.js +2 -0
  200. package/modern/hooks/useAxis.js +2 -0
  201. package/modern/hooks/useAxisEvents.js +2 -0
  202. package/modern/hooks/useChartDimensions.js +2 -0
  203. package/modern/hooks/useChartId.js +2 -0
  204. package/modern/hooks/useColorScale.js +2 -0
  205. package/modern/hooks/useDrawingArea.js +2 -0
  206. package/modern/hooks/useInteractionItemProps.js +2 -0
  207. package/modern/hooks/useMounted.js +2 -0
  208. package/modern/hooks/useReducedMotion.js +2 -0
  209. package/modern/hooks/useScale.js +2 -0
  210. package/modern/hooks/useSeries.js +2 -0
  211. package/modern/hooks/useSvgRef.js +2 -0
  212. package/modern/hooks/useTicks.js +2 -0
  213. package/modern/index.js +1 -1
  214. package/node/BarChart/BarChart.js +2 -0
  215. package/node/BarChart/BarElement.js +1 -0
  216. package/node/BarChart/BarLabel/BarLabel.js +1 -0
  217. package/node/BarChart/BarPlot.js +1 -0
  218. package/node/BarChart/legend.js +3 -2
  219. package/node/BarChart/useBarChartProps.js +1 -0
  220. package/node/ChartContainer/ChartContainer.js +1 -0
  221. package/node/ChartContainer/useChartContainerProps.js +1 -0
  222. package/node/ChartContainer/useDefaultizeAxis.js +1 -0
  223. package/node/ChartsAxis/ChartsAxis.js +1 -0
  224. package/node/ChartsAxisHighlight/ChartsAxisHighlight.js +1 -0
  225. package/node/ChartsClipPath/ChartsClipPath.js +1 -0
  226. package/node/ChartsGrid/ChartsGrid.js +1 -0
  227. package/node/ChartsLegend/ChartsLegend.js +10 -1
  228. package/node/ChartsLegend/ChartsLegendItem.js +72 -0
  229. package/node/ChartsLegend/ContinuousColorLegend.js +1 -0
  230. package/node/ChartsLegend/DefaultChartsLegend.js +25 -4
  231. package/node/ChartsLegend/LegendPerItem.js +18 -28
  232. package/node/ChartsLegend/PiecewiseColorLegend.js +27 -7
  233. package/node/ChartsLegend/chartsLegendClasses.js +1 -1
  234. package/node/ChartsLegend/useAxis.js +1 -0
  235. package/node/ChartsOnAxisClickHandler/ChartsOnAxisClickHandler.js +2 -1
  236. package/node/ChartsOverlay/ChartsLoadingOverlay.js +1 -0
  237. package/node/ChartsOverlay/ChartsNoDataOverlay.js +1 -0
  238. package/node/ChartsOverlay/ChartsOverlay.js +1 -0
  239. package/node/ChartsReferenceLine/ChartsReferenceLine.js +1 -0
  240. package/node/ChartsReferenceLine/ChartsXReferenceLine.js +2 -1
  241. package/node/ChartsReferenceLine/ChartsYReferenceLine.js +2 -1
  242. package/node/ChartsSurface/ChartsSurface.js +1 -0
  243. package/node/ChartsText/ChartsText.js +1 -0
  244. package/node/ChartsTooltip/ChartsTooltip.js +1 -0
  245. package/node/ChartsTooltip/DefaultChartsAxisTooltipContent.js +1 -0
  246. package/node/ChartsTooltip/DefaultChartsItemTooltipContent.js +1 -0
  247. package/node/ChartsVoronoiHandler/ChartsVoronoiHandler.js +1 -0
  248. package/node/ChartsXAxis/ChartsXAxis.js +1 -0
  249. package/node/ChartsYAxis/ChartsYAxis.js +1 -0
  250. package/node/Gauge/Gauge.js +1 -0
  251. package/node/Gauge/GaugeContainer.js +1 -0
  252. package/node/Gauge/GaugeReferenceArc.js +1 -0
  253. package/node/Gauge/GaugeValueArc.js +1 -0
  254. package/node/Gauge/GaugeValueText.js +1 -0
  255. package/node/LineChart/AnimatedArea.js +1 -0
  256. package/node/LineChart/AnimatedLine.js +1 -0
  257. package/node/LineChart/AreaElement.js +1 -0
  258. package/node/LineChart/AreaPlot.js +1 -0
  259. package/node/LineChart/CircleMarkElement.js +113 -0
  260. package/node/LineChart/LineChart.js +6 -0
  261. package/node/LineChart/LineElement.js +1 -0
  262. package/node/LineChart/LineHighlightElement.js +1 -0
  263. package/node/LineChart/LineHighlightPlot.js +1 -0
  264. package/node/LineChart/LinePlot.js +1 -0
  265. package/node/LineChart/MarkElement.js +3 -22
  266. package/node/LineChart/MarkPlot.js +12 -3
  267. package/node/LineChart/index.js +29 -1
  268. package/node/LineChart/legend.js +3 -2
  269. package/node/LineChart/markElementClasses.js +28 -0
  270. package/node/LineChart/useLineChartProps.js +6 -3
  271. package/node/PieChart/PieArc.js +1 -0
  272. package/node/PieChart/PieArcLabel.js +1 -0
  273. package/node/PieChart/PieArcLabelPlot.js +1 -0
  274. package/node/PieChart/PieArcPlot.js +1 -0
  275. package/node/PieChart/PieChart.js +2 -0
  276. package/node/PieChart/PiePlot.js +1 -0
  277. package/node/PieChart/dataTransform/useTransformData.js +1 -0
  278. package/node/PieChart/legend.js +3 -1
  279. package/node/ResponsiveChartContainer/ResponsiveChartContainer.js +1 -0
  280. package/node/ResponsiveChartContainer/useChartContainerDimensions.js +2 -1
  281. package/node/ResponsiveChartContainer/useResponsiveChartContainerProps.js +1 -0
  282. package/node/ScatterChart/Scatter.js +1 -0
  283. package/node/ScatterChart/ScatterChart.js +2 -0
  284. package/node/ScatterChart/ScatterPlot.js +1 -0
  285. package/node/ScatterChart/legend.js +3 -2
  286. package/node/ScatterChart/useScatterChartProps.js +1 -0
  287. package/node/SparkLineChart/SparkLineChart.js +1 -0
  288. package/node/context/CartesianProvider/CartesianProvider.js +1 -0
  289. package/node/context/CartesianProvider/useCartesianContext.js +1 -0
  290. package/node/context/DrawingProvider.js +1 -0
  291. package/node/context/HighlightedProvider/HighlightedProvider.js +1 -0
  292. package/node/context/HighlightedProvider/useHighlighted.js +1 -0
  293. package/node/context/HighlightedProvider/useItemHighlighted.js +1 -0
  294. package/node/context/InteractionProvider.js +1 -0
  295. package/node/context/PluginProvider/PluginProvider.js +1 -0
  296. package/node/context/PluginProvider/useColorProcessor.js +1 -0
  297. package/node/context/PluginProvider/useSeriesFormatter.js +1 -0
  298. package/node/context/SeriesProvider/SeriesProvider.js +1 -0
  299. package/node/context/ZAxisContextProvider.js +1 -0
  300. package/node/hooks/useAxis.js +1 -0
  301. package/node/hooks/useAxisEvents.js +1 -0
  302. package/node/hooks/useChartDimensions.js +1 -0
  303. package/node/hooks/useChartId.js +1 -0
  304. package/node/hooks/useColorScale.js +1 -0
  305. package/node/hooks/useDrawingArea.js +1 -0
  306. package/node/hooks/useInteractionItemProps.js +1 -0
  307. package/node/hooks/useMounted.js +1 -0
  308. package/node/hooks/useReducedMotion.js +1 -0
  309. package/node/hooks/useScale.js +1 -0
  310. package/node/hooks/useSeries.js +1 -0
  311. package/node/hooks/useSvgRef.js +1 -0
  312. package/node/hooks/useTicks.js +1 -0
  313. package/node/index.js +1 -1
  314. package/package.json +3 -3
  315. package/internals/warning.d.ts +0 -2
  316. package/internals/warning.js +0 -21
  317. package/modern/internals/warning.js +0 -21
  318. package/node/internals/warning.js +0 -28
@@ -1,5 +1,7 @@
1
1
  import { ChartsTextStyle } from '../ChartsText';
2
- export interface LegendItemParams {
2
+ import { PieItemId } from '../models';
3
+ import { SeriesId } from '../models/seriesType/common';
4
+ interface LegendItemContextBase {
3
5
  /**
4
6
  * The color used in the legend
5
7
  */
@@ -8,12 +10,47 @@ export interface LegendItemParams {
8
10
  * The label displayed in the legend
9
11
  */
10
12
  label: string;
13
+ }
14
+ export interface LegendItemParams extends Partial<Omit<SeriesLegendItemContext, 'type' | keyof LegendItemContextBase>>, Partial<Omit<PiecewiseColorLegendItemContext, 'type' | keyof LegendItemContextBase>>, LegendItemContextBase {
11
15
  /**
12
16
  * The identifier of the legend element.
13
17
  * Used for internal purpose such as `key` props
14
18
  */
15
19
  id: number | string;
16
20
  }
21
+ export interface SeriesLegendItemContext extends LegendItemContextBase {
22
+ /**
23
+ * The type of the legend item
24
+ * - `series` is used for series legend item
25
+ * - `piecewiseColor` is used for piecewise color legend item
26
+ */
27
+ type: 'series';
28
+ /**
29
+ * The identifier of the series
30
+ */
31
+ seriesId: SeriesId;
32
+ /**
33
+ * The identifier of the pie item
34
+ */
35
+ itemId?: PieItemId;
36
+ }
37
+ export interface PiecewiseColorLegendItemContext extends LegendItemContextBase {
38
+ /**
39
+ * The type of the legend item
40
+ * - `series` is used for series legend item
41
+ * - `piecewiseColor` is used for piecewise color legend item
42
+ */
43
+ type: 'piecewiseColor';
44
+ /**
45
+ * The minimum value of the category
46
+ */
47
+ minValue: number | Date | null;
48
+ /**
49
+ * The maximum value of the category
50
+ */
51
+ maxValue: number | Date | null;
52
+ }
53
+ export type LegendItemContext = SeriesLegendItemContext | PiecewiseColorLegendItemContext;
17
54
  export interface LegendItemWithPosition extends LegendItemParams {
18
55
  positionX: number;
19
56
  positionY: number;
@@ -29,3 +66,4 @@ export type GetItemSpaceType = (label: string, inStyle?: ChartsTextStyle) => {
29
66
  outerWidth: number;
30
67
  outerHeight: number;
31
68
  };
69
+ export {};
@@ -3,6 +3,8 @@ export interface ChartsLegendClasses {
3
3
  root: string;
4
4
  /** Styles applied to a series element. */
5
5
  series: string;
6
+ /** Styles applied to the item background. */
7
+ itemBackground: string;
6
8
  /** Styles applied to series mark element. */
7
9
  mark: string;
8
10
  /** Styles applied to the series label. */
@@ -2,4 +2,4 @@ import { unstable_generateUtilityClass as generateUtilityClass, unstable_generat
2
2
  export function getLegendUtilityClass(slot) {
3
3
  return generateUtilityClass('MuiChartsLegend', slot);
4
4
  }
5
- export const legendClasses = generateUtilityClasses('MuiChartsLegend', ['root', 'series', 'mark', 'label', 'column', 'row']);
5
+ export const legendClasses = generateUtilityClasses('MuiChartsLegend', ['root', 'series', 'itemBackground', 'mark', 'label', 'column', 'row']);
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import * as React from 'react';
2
4
  import { ZAxisContext } from "../context/ZAxisContextProvider.js";
3
5
  import { useCartesianContext } from "../context/CartesianProvider/useCartesianContext.js";
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import * as React from 'react';
2
4
  import PropTypes from 'prop-types';
3
5
  import { InteractionContext } from "../context/InteractionProvider.js";
@@ -27,7 +29,7 @@ function ChartsOnAxisClickHandler(props) {
27
29
  }
28
30
  const handleMouseClick = event => {
29
31
  event.preventDefault();
30
- const isXaxis = (axis.x && axis.x.index) !== undefined;
32
+ const isXaxis = axis.x && axis.x.index !== -1;
31
33
  const USED_AXIS_ID = isXaxis ? xAxisIds[0] : yAxisIds[0];
32
34
  const dataIndex = isXaxis ? axis.x && axis.x.index : axis.y && axis.y.index;
33
35
  if (dataIndex == null) {
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
2
4
  import _extends from "@babel/runtime/helpers/esm/extends";
3
5
  const _excluded = ["message"];
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
2
4
  import _extends from "@babel/runtime/helpers/esm/extends";
3
5
  const _excluded = ["message"];
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import _extends from "@babel/runtime/helpers/esm/extends";
2
4
  import * as React from 'react';
3
5
  import { ChartsLoadingOverlay } from "./ChartsLoadingOverlay.js";
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import _extends from "@babel/runtime/helpers/esm/extends";
2
4
  import * as React from 'react';
3
5
  import PropTypes from 'prop-types';
@@ -1,11 +1,13 @@
1
+ 'use client';
2
+
1
3
  import _extends from "@babel/runtime/helpers/esm/extends";
2
4
  import * as React from 'react';
3
5
  import composeClasses from '@mui/utils/composeClasses';
6
+ import { warnOnce } from '@mui/x-internals/warning';
4
7
  import { useDrawingArea, useXScale } from "../hooks/index.js";
5
8
  import { ReferenceLineRoot } from "./common.js";
6
9
  import { ChartsText } from "../ChartsText/index.js";
7
10
  import { getReferenceLineUtilityClass } from "./chartsReferenceLineClasses.js";
8
- import { warnOnce } from "../internals/warning.js";
9
11
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
10
12
  const getTextParams = ({
11
13
  top,
@@ -1,11 +1,13 @@
1
+ 'use client';
2
+
1
3
  import _extends from "@babel/runtime/helpers/esm/extends";
2
4
  import * as React from 'react';
3
5
  import composeClasses from '@mui/utils/composeClasses';
6
+ import { warnOnce } from '@mui/x-internals/warning';
4
7
  import { useDrawingArea, useYScale } from "../hooks/index.js";
5
8
  import { ReferenceLineRoot } from "./common.js";
6
9
  import { ChartsText } from "../ChartsText/index.js";
7
10
  import { getReferenceLineUtilityClass } from "./chartsReferenceLineClasses.js";
8
- import { warnOnce } from "../internals/warning.js";
9
11
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
10
12
  const getTextParams = ({
11
13
  left,
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import _extends from "@babel/runtime/helpers/esm/extends";
2
4
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
5
  const _excluded = ["children", "width", "height", "viewBox", "disableAxisListener", "className", "title", "desc"];
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import _extends from "@babel/runtime/helpers/esm/extends";
2
4
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
5
  const _excluded = ["x", "y", "style", "text", "ownerState"],
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import _extends from "@babel/runtime/helpers/esm/extends";
2
4
  import * as React from 'react';
3
5
  import PropTypes from 'prop-types';
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import * as React from 'react';
2
4
  import PropTypes from 'prop-types';
3
5
  import clsx from 'clsx';
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import _extends from "@babel/runtime/helpers/esm/extends";
2
4
  import * as React from 'react';
3
5
  import PropTypes from 'prop-types';
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import * as React from 'react';
2
4
  import PropTypes from 'prop-types';
3
5
  import { Delaunay } from '@mui/x-charts-vendor/d3-delaunay';
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
2
4
  import _extends from "@babel/runtime/helpers/esm/extends";
3
5
  const _excluded = ["scale", "tickNumber", "reverse"];
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import _extends from "@babel/runtime/helpers/esm/extends";
2
4
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
5
  const _excluded = ["scale", "tickNumber"];
package/Gauge/Gauge.js CHANGED
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import _extends from "@babel/runtime/helpers/esm/extends";
2
4
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
5
  const _excluded = ["text", "children", "classes", "className"];
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import _extends from "@babel/runtime/helpers/esm/extends";
2
4
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
5
  const _excluded = ["width", "height", "margin", "title", "desc", "value", "valueMin", "valueMax", "startAngle", "endAngle", "outerRadius", "innerRadius", "cornerRadius", "cx", "cy", "children"];
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import _extends from "@babel/runtime/helpers/esm/extends";
2
4
  import * as React from 'react';
3
5
  import { arc as d3Arc } from '@mui/x-charts-vendor/d3-shape';
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import _extends from "@babel/runtime/helpers/esm/extends";
2
4
  import * as React from 'react';
3
5
  import { arc as d3Arc } from '@mui/x-charts-vendor/d3-shape';
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import _extends from "@babel/runtime/helpers/esm/extends";
2
4
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
5
  const _excluded = ["text", "className"];
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import _extends from "@babel/runtime/helpers/esm/extends";
2
4
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
5
  const _excluded = ["d", "skipAnimation", "ownerState"];
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import _extends from "@babel/runtime/helpers/esm/extends";
2
4
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
5
  const _excluded = ["d", "skipAnimation", "ownerState"];
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import _extends from "@babel/runtime/helpers/esm/extends";
2
4
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
5
  const _excluded = ["id", "classes", "color", "gradientId", "slots", "slotProps", "onClick"];
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
2
4
  import _extends from "@babel/runtime/helpers/esm/extends";
3
5
  const _excluded = ["slots", "slotProps", "onItemClick", "skipAnimation"];
@@ -0,0 +1,34 @@
1
+ import * as React from 'react';
2
+ import { MarkElementOwnerState } from './markElementClasses';
3
+ export type CircleMarkElementProps = Omit<MarkElementOwnerState, 'isFaded' | 'isHighlighted'> & Omit<React.SVGProps<SVGPathElement>, 'ref' | 'id'> & {
4
+ /**
5
+ * The shape of the marker.
6
+ */
7
+ shape: 'circle' | 'cross' | 'diamond' | 'square' | 'star' | 'triangle' | 'wye';
8
+ /**
9
+ * If `true`, animations are skipped.
10
+ * @default false
11
+ */
12
+ skipAnimation?: boolean;
13
+ /**
14
+ * The index to the element in the series' data array.
15
+ */
16
+ dataIndex: number;
17
+ };
18
+ /**
19
+ * The line mark element that only render circle for performance improvement.
20
+ *
21
+ * Demos:
22
+ *
23
+ * - [Lines](https://mui.com/x/react-charts/lines/)
24
+ * - [Line demonstration](https://mui.com/x/react-charts/line-demo/)
25
+ *
26
+ * API:
27
+ *
28
+ * - [CircleMarkElement API](https://mui.com/x/api/charts/circle-mark-element/)
29
+ */
30
+ declare function CircleMarkElement(props: CircleMarkElementProps): React.JSX.Element;
31
+ declare namespace CircleMarkElement {
32
+ var propTypes: any;
33
+ }
34
+ export { CircleMarkElement };
@@ -0,0 +1,107 @@
1
+ 'use client';
2
+
3
+ import _extends from "@babel/runtime/helpers/esm/extends";
4
+ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
5
+ const _excluded = ["x", "y", "id", "classes", "color", "dataIndex", "onClick", "skipAnimation", "shape"];
6
+ import * as React from 'react';
7
+ import PropTypes from 'prop-types';
8
+ import { useTheme } from '@mui/material/styles';
9
+ import { warnOnce } from '@mui/x-internals/warning';
10
+ import { animated, useSpring } from '@react-spring/web';
11
+ import { InteractionContext } from "../context/InteractionProvider.js";
12
+ import { useInteractionItemProps } from "../hooks/useInteractionItemProps.js";
13
+ import { useItemHighlighted } from "../context/index.js";
14
+ import { useUtilityClasses } from "./markElementClasses.js";
15
+ import { jsx as _jsx } from "react/jsx-runtime";
16
+ /**
17
+ * The line mark element that only render circle for performance improvement.
18
+ *
19
+ * Demos:
20
+ *
21
+ * - [Lines](https://mui.com/x/react-charts/lines/)
22
+ * - [Line demonstration](https://mui.com/x/react-charts/line-demo/)
23
+ *
24
+ * API:
25
+ *
26
+ * - [CircleMarkElement API](https://mui.com/x/api/charts/circle-mark-element/)
27
+ */
28
+ function CircleMarkElement(props) {
29
+ const {
30
+ x,
31
+ y,
32
+ id,
33
+ classes: innerClasses,
34
+ color,
35
+ dataIndex,
36
+ onClick,
37
+ skipAnimation,
38
+ shape
39
+ } = props,
40
+ other = _objectWithoutPropertiesLoose(props, _excluded);
41
+ if (shape !== 'circle') {
42
+ warnOnce([`MUI X: The mark element of your line chart have shape "${shape}" which is not supported when using \`experimentalRendering=true\`.`, 'Only "circle" are supported with `experimentalRendering`.'].join('\n'), 'error');
43
+ }
44
+ const theme = useTheme();
45
+ const getInteractionItemProps = useInteractionItemProps();
46
+ const {
47
+ isFaded,
48
+ isHighlighted
49
+ } = useItemHighlighted({
50
+ seriesId: id
51
+ });
52
+ const {
53
+ axis
54
+ } = React.useContext(InteractionContext);
55
+ const position = useSpring({
56
+ to: {
57
+ x,
58
+ y
59
+ },
60
+ immediate: skipAnimation
61
+ });
62
+ const ownerState = {
63
+ id,
64
+ classes: innerClasses,
65
+ isHighlighted: axis.x?.index === dataIndex || isHighlighted,
66
+ isFaded,
67
+ color
68
+ };
69
+ const classes = useUtilityClasses(ownerState);
70
+ return /*#__PURE__*/_jsx(animated.circle, _extends({}, other, {
71
+ cx: position.x,
72
+ cy: position.y,
73
+ r: 5,
74
+ fill: (theme.vars || theme).palette.background.paper,
75
+ stroke: color,
76
+ strokeWidth: 2,
77
+ className: classes.root,
78
+ onClick: onClick,
79
+ cursor: onClick ? 'pointer' : 'unset'
80
+ }, getInteractionItemProps({
81
+ type: 'line',
82
+ seriesId: id,
83
+ dataIndex
84
+ })));
85
+ }
86
+ process.env.NODE_ENV !== "production" ? CircleMarkElement.propTypes = {
87
+ // ----------------------------- Warning --------------------------------
88
+ // | These PropTypes are generated from the TypeScript type definitions |
89
+ // | To update them edit the TypeScript types and run "pnpm proptypes" |
90
+ // ----------------------------------------------------------------------
91
+ classes: PropTypes.object,
92
+ /**
93
+ * The index to the element in the series' data array.
94
+ */
95
+ dataIndex: PropTypes.number.isRequired,
96
+ id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,
97
+ /**
98
+ * The shape of the marker.
99
+ */
100
+ shape: PropTypes.oneOf(['circle', 'cross', 'diamond', 'square', 'star', 'triangle', 'wye']).isRequired,
101
+ /**
102
+ * If `true`, animations are skipped.
103
+ * @default false
104
+ */
105
+ skipAnimation: PropTypes.bool
106
+ } : void 0;
107
+ export { CircleMarkElement };
@@ -75,6 +75,10 @@ export interface LineChartProps extends Omit<ResponsiveChartContainerProps, 'ser
75
75
  * @default false
76
76
  */
77
77
  skipAnimation?: boolean;
78
+ /**
79
+ * If `true` marks will render `<circle />` instead of `<path />` and drop theme override for faster rendering.
80
+ */
81
+ experimentalMarkRendering?: boolean;
78
82
  }
79
83
  /**
80
84
  * Demos:
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import _extends from "@babel/runtime/helpers/esm/extends";
2
4
  import * as React from 'react';
3
5
  import PropTypes from 'prop-types';
@@ -102,6 +104,10 @@ process.env.NODE_ENV !== "production" ? LineChart.propTypes = {
102
104
  * If `true`, render the line highlight item.
103
105
  */
104
106
  disableLineItemHighlight: PropTypes.bool,
107
+ /**
108
+ * If `true` marks will render `<circle />` instead of `<path />` and drop theme override for faster rendering.
109
+ */
110
+ experimentalMarkRendering: PropTypes.bool,
105
111
  /**
106
112
  * Option to display a cartesian grid in the background.
107
113
  */
@@ -138,6 +144,7 @@ process.env.NODE_ENV !== "production" ? LineChart.propTypes = {
138
144
  itemMarkWidth: PropTypes.number,
139
145
  labelStyle: PropTypes.object,
140
146
  markGap: PropTypes.number,
147
+ onItemClick: PropTypes.func,
141
148
  padding: PropTypes.oneOfType([PropTypes.number, PropTypes.shape({
142
149
  bottom: PropTypes.number,
143
150
  left: PropTypes.number,
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import _extends from "@babel/runtime/helpers/esm/extends";
2
4
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
5
  const _excluded = ["id", "classes", "color", "gradientId", "slots", "slotProps", "onClick"];
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import _extends from "@babel/runtime/helpers/esm/extends";
2
4
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
5
  const _excluded = ["x", "y", "id", "classes", "color"];
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import _extends from "@babel/runtime/helpers/esm/extends";
2
4
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
5
  const _excluded = ["slots", "slotProps"];
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
2
4
  import _extends from "@babel/runtime/helpers/esm/extends";
3
5
  const _excluded = ["slots", "slotProps", "skipAnimation", "onItemClick"];
@@ -1,23 +1,5 @@
1
1
  import * as React from 'react';
2
- import { SeriesId } from '../models/seriesType/common';
3
- export interface MarkElementClasses {
4
- /** Styles applied to the root element. */
5
- root: string;
6
- /** Styles applied to the root element when highlighted. */
7
- highlighted: string;
8
- /** Styles applied to the root element when faded. */
9
- faded: string;
10
- }
11
- export type MarkElementClassKey = keyof MarkElementClasses;
12
- interface MarkElementOwnerState {
13
- id: SeriesId;
14
- color: string;
15
- isFaded: boolean;
16
- isHighlighted: boolean;
17
- classes?: Partial<MarkElementClasses>;
18
- }
19
- export declare function getMarkElementUtilityClass(slot: string): string;
20
- export declare const markElementClasses: MarkElementClasses;
2
+ import { MarkElementOwnerState } from './markElementClasses';
21
3
  export type MarkElementProps = Omit<MarkElementOwnerState, 'isFaded' | 'isHighlighted'> & Omit<React.SVGProps<SVGPathElement>, 'ref' | 'id'> & {
22
4
  /**
23
5
  * If `true`, animations are skipped.
@@ -1,35 +1,19 @@
1
+ 'use client';
2
+
1
3
  import _extends from "@babel/runtime/helpers/esm/extends";
2
4
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
5
  const _excluded = ["x", "y", "id", "classes", "color", "shape", "dataIndex", "onClick", "skipAnimation"];
4
6
  import * as React from 'react';
5
7
  import PropTypes from 'prop-types';
6
- import composeClasses from '@mui/utils/composeClasses';
7
- import generateUtilityClass from '@mui/utils/generateUtilityClass';
8
8
  import { styled } from '@mui/material/styles';
9
- import generateUtilityClasses from '@mui/utils/generateUtilityClasses';
10
9
  import { symbol as d3Symbol, symbolsFill as d3SymbolsFill } from '@mui/x-charts-vendor/d3-shape';
11
10
  import { animated, to, useSpring } from '@react-spring/web';
12
11
  import { getSymbol } from "../internals/getSymbol.js";
13
12
  import { InteractionContext } from "../context/InteractionProvider.js";
14
13
  import { useInteractionItemProps } from "../hooks/useInteractionItemProps.js";
15
14
  import { useItemHighlighted } from "../context/index.js";
15
+ import { useUtilityClasses } from "./markElementClasses.js";
16
16
  import { jsx as _jsx } from "react/jsx-runtime";
17
- export function getMarkElementUtilityClass(slot) {
18
- return generateUtilityClass('MuiMarkElement', slot);
19
- }
20
- export const markElementClasses = generateUtilityClasses('MuiMarkElement', ['root', 'highlighted', 'faded']);
21
- const useUtilityClasses = ownerState => {
22
- const {
23
- classes,
24
- id,
25
- isFaded,
26
- isHighlighted
27
- } = ownerState;
28
- const slots = {
29
- root: ['root', `series-${id}`, isHighlighted && 'highlighted', isFaded && 'faded']
30
- };
31
- return composeClasses(slots, getMarkElementUtilityClass, classes);
32
- };
33
17
  const MarkElementPath = styled(animated.path, {
34
18
  name: 'MuiMarkElement',
35
19
  slot: 'Root',
@@ -24,6 +24,12 @@ export interface MarkPlotProps extends React.SVGAttributes<SVGSVGElement>, Pick<
24
24
  * @param {LineItemIdentifier} lineItemIdentifier The line mark item identifier.
25
25
  */
26
26
  onItemClick?: (event: React.MouseEvent<SVGElement, MouseEvent>, lineItemIdentifier: LineItemIdentifier) => void;
27
+ /**
28
+ * If `true` the mark element will only be able to render circle.
29
+ * Giving fewer customization options, but saving around 40ms per 1.000 marks.
30
+ * @default false
31
+ */
32
+ experimentalRendering?: boolean;
27
33
  }
28
34
  /**
29
35
  * Demos:
@@ -1,6 +1,8 @@
1
+ 'use client';
2
+
1
3
  import _extends from "@babel/runtime/helpers/esm/extends";
2
4
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
- const _excluded = ["slots", "slotProps", "skipAnimation", "onItemClick"];
5
+ const _excluded = ["slots", "slotProps", "skipAnimation", "onItemClick", "experimentalRendering"];
4
6
  import * as React from 'react';
5
7
  import PropTypes from 'prop-types';
6
8
  import { useCartesianContext } from "../context/CartesianProvider/index.js";
@@ -12,6 +14,7 @@ import { cleanId } from "../internals/cleanId.js";
12
14
  import getColor from "./getColor.js";
13
15
  import { useLineSeries } from "../hooks/useSeries.js";
14
16
  import { useDrawingArea } from "../hooks/useDrawingArea.js";
17
+ import { CircleMarkElement } from "./CircleMarkElement.js";
15
18
  import { jsx as _jsx } from "react/jsx-runtime";
16
19
  /**
17
20
  * Demos:
@@ -28,14 +31,15 @@ function MarkPlot(props) {
28
31
  slots,
29
32
  slotProps,
30
33
  skipAnimation,
31
- onItemClick
34
+ onItemClick,
35
+ experimentalRendering
32
36
  } = props,
33
37
  other = _objectWithoutPropertiesLoose(props, _excluded);
34
38
  const seriesData = useLineSeries();
35
39
  const axisData = useCartesianContext();
36
40
  const chartId = useChartId();
37
41
  const drawingArea = useDrawingArea();
38
- const Mark = slots?.mark ?? MarkElement;
42
+ const Mark = slots?.mark ?? (experimentalRendering ? CircleMarkElement : MarkElement);
39
43
  if (seriesData === undefined) {
40
44
  return null;
41
45
  }
@@ -149,6 +153,12 @@ process.env.NODE_ENV !== "production" ? MarkPlot.propTypes = {
149
153
  // | These PropTypes are generated from the TypeScript type definitions |
150
154
  // | To update them edit the TypeScript types and run "pnpm proptypes" |
151
155
  // ----------------------------------------------------------------------
156
+ /**
157
+ * If `true` the mark element will only be able to render circle.
158
+ * Giving fewer customization options, but saving around 40ms per 1.000 marks.
159
+ * @default false
160
+ */
161
+ experimentalRendering: PropTypes.bool,
152
162
  /**
153
163
  * Callback fired when a line mark item is clicked.
154
164
  * @param {React.MouseEvent<SVGPathElement, MouseEvent>} event The event source of the callback.
@@ -9,3 +9,5 @@ export * from './LineElement';
9
9
  export * from './AnimatedLine';
10
10
  export * from './MarkElement';
11
11
  export * from './LineHighlightElement';
12
+ export type { MarkElementClasses, MarkElementClassKey } from './markElementClasses';
13
+ export { getMarkElementUtilityClass, markElementClasses } from './markElementClasses';
@@ -8,4 +8,5 @@ export * from "./AnimatedArea.js";
8
8
  export * from "./LineElement.js";
9
9
  export * from "./AnimatedLine.js";
10
10
  export * from "./MarkElement.js";
11
- export * from "./LineHighlightElement.js";
11
+ export * from "./LineHighlightElement.js";
12
+ export { getMarkElementUtilityClass, markElementClasses } from "./markElementClasses.js";