@mui/x-charts-pro 8.0.0-alpha.1 → 8.0.0-alpha.10

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 (178) hide show
  1. package/BarChartPro/BarChartPro.d.ts +2 -2
  2. package/BarChartPro/BarChartPro.js +72 -31
  3. package/CHANGELOG.md +1903 -231
  4. package/ChartContainerPro/ChartContainerPro.d.ts +33 -4
  5. package/ChartContainerPro/ChartContainerPro.js +55 -37
  6. package/ChartContainerPro/useChartContainerProProps.d.ts +6 -5
  7. package/ChartContainerPro/useChartContainerProProps.js +11 -7
  8. package/ChartDataProviderPro/ChartDataProviderPro.d.ts +37 -0
  9. package/{context/ChartDataProviderPro → ChartDataProviderPro}/ChartDataProviderPro.js +70 -80
  10. package/{context → ChartDataProviderPro}/package.json +1 -1
  11. package/ChartDataProviderPro/useChartDataProviderProProps.d.ts +8 -0
  12. package/ChartDataProviderPro/useChartDataProviderProProps.js +15 -0
  13. package/Heatmap/Heatmap.js +31 -8
  14. package/Heatmap/HeatmapItem.js +1 -1
  15. package/Heatmap/HeatmapTooltip.js +8 -28
  16. package/Heatmap/extremums.d.ts +2 -2
  17. package/Heatmap/formatter.d.ts +2 -2
  18. package/Heatmap/formatter.js +2 -1
  19. package/Heatmap/heatmapClasses.js +2 -1
  20. package/Heatmap/plugin.d.ts +2 -2
  21. package/Heatmap/plugin.js +4 -2
  22. package/Heatmap/tooltip.d.ts +3 -0
  23. package/Heatmap/tooltip.js +25 -0
  24. package/LineChartPro/LineChartPro.d.ts +2 -2
  25. package/LineChartPro/LineChartPro.js +78 -51
  26. package/README.md +1 -1
  27. package/ScatterChartPro/ScatterChartPro.d.ts +2 -2
  28. package/ScatterChartPro/ScatterChartPro.js +49 -33
  29. package/hooks/index.d.ts +1 -0
  30. package/hooks/index.js +2 -1
  31. package/hooks/useSeries.d.ts +2 -4
  32. package/hooks/zoom/index.d.ts +1 -0
  33. package/hooks/zoom/index.js +1 -0
  34. package/hooks/zoom/useIsZoomInteracting.d.ts +6 -0
  35. package/hooks/zoom/useIsZoomInteracting.js +14 -0
  36. package/index.d.ts +3 -1
  37. package/index.js +5 -5
  38. package/internals/plugins/allPlugins.d.ts +11 -0
  39. package/internals/plugins/allPlugins.js +5 -0
  40. package/internals/plugins/useChartProZoom/creatZoomLookup.d.ts +3 -0
  41. package/internals/plugins/useChartProZoom/creatZoomLookup.js +12 -0
  42. package/internals/plugins/useChartProZoom/defaultizeZoom.d.ts +2 -0
  43. package/internals/plugins/useChartProZoom/defaultizeZoom.js +25 -0
  44. package/internals/plugins/useChartProZoom/index.d.ts +3 -0
  45. package/internals/plugins/useChartProZoom/index.js +3 -0
  46. package/internals/plugins/useChartProZoom/useChartProZoom.d.ts +3 -0
  47. package/internals/plugins/useChartProZoom/useChartProZoom.js +303 -0
  48. package/internals/plugins/useChartProZoom/useChartProZoom.selectors.d.ts +377 -0
  49. package/internals/plugins/useChartProZoom/useChartProZoom.selectors.js +10 -0
  50. package/internals/plugins/useChartProZoom/useChartProZoom.types.d.ts +50 -0
  51. package/internals/plugins/useChartProZoom/useChartProZoom.utils.d.ts +45 -0
  52. package/internals/plugins/useChartProZoom/useChartProZoom.utils.js +126 -0
  53. package/internals/plugins/useChartProZoom/zoom.types.d.ts +53 -0
  54. package/internals/utils/releaseInfo.js +2 -2
  55. package/models/index.d.ts +1 -0
  56. package/models/index.js +2 -1
  57. package/modern/BarChartPro/BarChartPro.js +72 -31
  58. package/modern/ChartContainerPro/ChartContainerPro.js +55 -37
  59. package/modern/ChartContainerPro/useChartContainerProProps.js +11 -7
  60. package/modern/{context/ChartDataProviderPro → ChartDataProviderPro}/ChartDataProviderPro.js +70 -80
  61. package/modern/ChartDataProviderPro/useChartDataProviderProProps.js +15 -0
  62. package/modern/Heatmap/Heatmap.js +31 -8
  63. package/modern/Heatmap/HeatmapItem.js +1 -1
  64. package/modern/Heatmap/HeatmapTooltip.js +8 -28
  65. package/modern/Heatmap/formatter.js +2 -1
  66. package/modern/Heatmap/heatmapClasses.js +2 -1
  67. package/modern/Heatmap/plugin.js +4 -2
  68. package/modern/Heatmap/tooltip.js +25 -0
  69. package/modern/LineChartPro/LineChartPro.js +78 -51
  70. package/modern/ScatterChartPro/ScatterChartPro.js +49 -33
  71. package/modern/hooks/index.js +2 -1
  72. package/modern/hooks/zoom/index.js +1 -0
  73. package/modern/hooks/zoom/useIsZoomInteracting.js +14 -0
  74. package/modern/index.js +5 -5
  75. package/modern/internals/plugins/allPlugins.js +5 -0
  76. package/modern/internals/plugins/useChartProZoom/creatZoomLookup.js +12 -0
  77. package/modern/internals/plugins/useChartProZoom/defaultizeZoom.js +25 -0
  78. package/modern/internals/plugins/useChartProZoom/index.js +3 -0
  79. package/modern/internals/plugins/useChartProZoom/useChartProZoom.js +303 -0
  80. package/modern/internals/plugins/useChartProZoom/useChartProZoom.selectors.js +10 -0
  81. package/modern/internals/plugins/useChartProZoom/useChartProZoom.types.js +1 -0
  82. package/modern/internals/plugins/useChartProZoom/useChartProZoom.utils.js +126 -0
  83. package/modern/internals/plugins/useChartProZoom/zoom.types.js +1 -0
  84. package/modern/internals/utils/releaseInfo.js +2 -2
  85. package/modern/models/index.js +2 -1
  86. package/node/BarChartPro/BarChartPro.js +71 -30
  87. package/node/ChartContainerPro/ChartContainerPro.js +54 -36
  88. package/node/ChartContainerPro/useChartContainerProProps.js +11 -7
  89. package/node/{context/ChartDataProviderPro → ChartDataProviderPro}/ChartDataProviderPro.js +67 -77
  90. package/node/ChartDataProviderPro/useChartDataProviderProProps.js +21 -0
  91. package/node/Heatmap/Heatmap.js +31 -8
  92. package/node/Heatmap/HeatmapItem.js +2 -2
  93. package/node/Heatmap/HeatmapTooltip.js +6 -26
  94. package/node/Heatmap/formatter.js +2 -1
  95. package/node/Heatmap/heatmapClasses.js +5 -4
  96. package/node/Heatmap/plugin.js +4 -2
  97. package/node/Heatmap/tooltip.js +31 -0
  98. package/node/LineChartPro/LineChartPro.js +77 -50
  99. package/node/ScatterChartPro/ScatterChartPro.js +48 -32
  100. package/node/hooks/index.js +16 -1
  101. package/node/{context/CartesianProviderPro → hooks/zoom}/index.js +4 -4
  102. package/node/hooks/zoom/useIsZoomInteracting.js +19 -0
  103. package/node/index.js +34 -12
  104. package/node/internals/plugins/allPlugins.js +11 -0
  105. package/node/internals/plugins/useChartProZoom/creatZoomLookup.js +19 -0
  106. package/node/internals/plugins/useChartProZoom/defaultizeZoom.js +33 -0
  107. package/node/internals/plugins/useChartProZoom/index.js +38 -0
  108. package/node/internals/plugins/useChartProZoom/useChartProZoom.js +310 -0
  109. package/node/internals/plugins/useChartProZoom/useChartProZoom.selectors.js +18 -0
  110. package/node/internals/plugins/useChartProZoom/useChartProZoom.utils.js +140 -0
  111. package/node/internals/plugins/useChartProZoom/zoom.types.js +5 -0
  112. package/node/internals/utils/releaseInfo.js +4 -3
  113. package/package.json +6 -6
  114. package/typeOverloads/modules.d.ts +8 -1
  115. package/context/CartesianProviderPro/CartesianProviderPro.d.ts +0 -6
  116. package/context/CartesianProviderPro/CartesianProviderPro.js +0 -89
  117. package/context/CartesianProviderPro/createAxisFilterMapper.d.ts +0 -12
  118. package/context/CartesianProviderPro/createAxisFilterMapper.js +0 -60
  119. package/context/CartesianProviderPro/index.d.ts +0 -1
  120. package/context/CartesianProviderPro/index.js +0 -1
  121. package/context/ChartDataProviderPro/ChartDataProviderPro.d.ts +0 -10
  122. package/context/ChartDataProviderPro/useChartDataProviderProProps.d.ts +0 -14
  123. package/context/ChartDataProviderPro/useChartDataProviderProProps.js +0 -43
  124. package/context/ZoomProvider/Zoom.types.d.ts +0 -144
  125. package/context/ZoomProvider/ZoomContext.d.ts +0 -4
  126. package/context/ZoomProvider/ZoomContext.js +0 -16
  127. package/context/ZoomProvider/ZoomProvider.d.ts +0 -3
  128. package/context/ZoomProvider/ZoomProvider.js +0 -56
  129. package/context/ZoomProvider/ZoomSetup.d.ts +0 -9
  130. package/context/ZoomProvider/ZoomSetup.js +0 -16
  131. package/context/ZoomProvider/defaultizeZoom.d.ts +0 -2
  132. package/context/ZoomProvider/defaultizeZoom.js +0 -32
  133. package/context/ZoomProvider/index.d.ts +0 -3
  134. package/context/ZoomProvider/index.js +0 -3
  135. package/context/ZoomProvider/initializeZoomData.d.ts +0 -6
  136. package/context/ZoomProvider/initializeZoomData.js +0 -13
  137. package/context/ZoomProvider/useSetupPan.d.ts +0 -1
  138. package/context/ZoomProvider/useSetupPan.js +0 -106
  139. package/context/ZoomProvider/useSetupZoom.d.ts +0 -1
  140. package/context/ZoomProvider/useSetupZoom.js +0 -274
  141. package/context/ZoomProvider/useZoom.d.ts +0 -7
  142. package/context/ZoomProvider/useZoom.js +0 -19
  143. package/context/index.d.ts +0 -3
  144. package/context/index.js +0 -5
  145. package/modern/context/CartesianProviderPro/CartesianProviderPro.js +0 -89
  146. package/modern/context/CartesianProviderPro/createAxisFilterMapper.js +0 -60
  147. package/modern/context/CartesianProviderPro/index.js +0 -1
  148. package/modern/context/ChartDataProviderPro/useChartDataProviderProProps.js +0 -43
  149. package/modern/context/ZoomProvider/ZoomContext.js +0 -16
  150. package/modern/context/ZoomProvider/ZoomProvider.js +0 -56
  151. package/modern/context/ZoomProvider/ZoomSetup.js +0 -16
  152. package/modern/context/ZoomProvider/defaultizeZoom.js +0 -32
  153. package/modern/context/ZoomProvider/index.js +0 -3
  154. package/modern/context/ZoomProvider/initializeZoomData.js +0 -13
  155. package/modern/context/ZoomProvider/useSetupPan.js +0 -106
  156. package/modern/context/ZoomProvider/useSetupZoom.js +0 -274
  157. package/modern/context/ZoomProvider/useZoom.js +0 -19
  158. package/modern/context/index.js +0 -5
  159. package/node/context/CartesianProviderPro/CartesianProviderPro.js +0 -95
  160. package/node/context/CartesianProviderPro/createAxisFilterMapper.js +0 -68
  161. package/node/context/ChartDataProviderPro/useChartDataProviderProProps.js +0 -50
  162. package/node/context/ZoomProvider/ZoomContext.js +0 -23
  163. package/node/context/ZoomProvider/ZoomProvider.js +0 -63
  164. package/node/context/ZoomProvider/ZoomSetup.js +0 -20
  165. package/node/context/ZoomProvider/defaultizeZoom.js +0 -40
  166. package/node/context/ZoomProvider/index.js +0 -38
  167. package/node/context/ZoomProvider/initializeZoomData.js +0 -20
  168. package/node/context/ZoomProvider/useSetupPan.js +0 -114
  169. package/node/context/ZoomProvider/useSetupZoom.js +0 -281
  170. package/node/context/ZoomProvider/useZoom.js +0 -25
  171. package/node/context/index.js +0 -27
  172. /package/{context/ChartDataProviderPro → ChartDataProviderPro}/index.d.ts +0 -0
  173. /package/{context/ChartDataProviderPro → ChartDataProviderPro}/index.js +0 -0
  174. /package/{context/ZoomProvider/Zoom.types.js → internals/plugins/useChartProZoom/useChartProZoom.types.js} +0 -0
  175. /package/{modern/context/ZoomProvider/Zoom.types.js → internals/plugins/useChartProZoom/zoom.types.js} +0 -0
  176. /package/modern/{context/ChartDataProviderPro → ChartDataProviderPro}/index.js +0 -0
  177. /package/node/{context/ChartDataProviderPro → ChartDataProviderPro}/index.js +0 -0
  178. /package/node/{context/ZoomProvider/Zoom.types.js → internals/plugins/useChartProZoom/useChartProZoom.types.js} +0 -0
@@ -1,7 +1,36 @@
1
1
  import * as React from 'react';
2
- import { ChartContainerProps } from '@mui/x-charts/ChartContainer';
3
- import { ZoomProps } from '../context/ZoomProvider';
4
- export interface ChartContainerProProps extends ChartContainerProps, ZoomProps {
2
+ import { ChartsSurfaceProps } from '@mui/x-charts/ChartsSurface';
3
+ import { ChartSeriesType } from '@mui/x-charts/internals';
4
+ import { AllPluginSignatures } from '../internals/plugins/allPlugins';
5
+ import { ChartDataProviderProProps } from '../ChartDataProviderPro';
6
+ export interface ChartContainerProProps<TSeries extends ChartSeriesType = ChartSeriesType> extends ChartDataProviderProProps<TSeries, AllPluginSignatures<TSeries>>, ChartsSurfaceProps {
5
7
  }
6
- declare const ChartContainerPro: React.ForwardRefExoticComponent<ChartContainerProProps & React.RefAttributes<SVGSVGElement>>;
8
+ type ChartContainerProComponent = <TSeries extends ChartSeriesType = ChartSeriesType>(props: ChartContainerProProps<TSeries> & {
9
+ ref?: React.ForwardedRef<SVGSVGElement>;
10
+ }) => React.JSX.Element;
11
+ /**
12
+ * It sets up the data providers as well as the `<svg>` for the chart.
13
+ *
14
+ * This is a combination of both the `ChartDataProviderPro` and `ChartsSurface` components.
15
+ *
16
+ * Demos:
17
+ *
18
+ * - [Composition](https://mui.com/x/api/charts/composition/)
19
+ *
20
+ * API:
21
+ *
22
+ * - [ChartContainer API](https://mui.com/x/api/charts/chart-container/)
23
+ *
24
+ * @example
25
+ * ```jsx
26
+ * <ChartContainerPro
27
+ * series={[{ label: "Label", type: "bar", data: [10, 20] }]}
28
+ * xAxis={[{ data: ["A", "B"], scaleType: "band", id: "x-axis" }]}
29
+ * >
30
+ * <BarPlot />
31
+ * <ChartsXAxis position="bottom" axisId="x-axis" />
32
+ * </ChartContainerPro>
33
+ * ```
34
+ */
35
+ declare const ChartContainerPro: ChartContainerProComponent;
7
36
  export { ChartContainerPro };
@@ -3,37 +3,58 @@
3
3
  import _extends from "@babel/runtime/helpers/esm/extends";
4
4
  import * as React from 'react';
5
5
  import PropTypes from 'prop-types';
6
- import { Watermark } from '@mui/x-license/Watermark';
7
- import { ResizableContainer } from '@mui/x-charts/internals';
8
- import { ChartsSurface } from '@mui/x-charts';
9
- import { getReleaseInfo } from "../internals/utils/releaseInfo.js";
10
- import { ChartDataProviderPro } from "../context/ChartDataProviderPro/index.js";
6
+ import { ChartsSurface } from '@mui/x-charts/ChartsSurface';
11
7
  import { useChartContainerProProps } from "./useChartContainerProProps.js";
12
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
13
- const releaseInfo = getReleaseInfo();
14
- const ChartContainerPro = /*#__PURE__*/React.forwardRef(function ChartContainerPro(props, ref) {
8
+ import { ChartDataProviderPro } from "../ChartDataProviderPro/index.js";
9
+ import { jsx as _jsx } from "react/jsx-runtime";
10
+ /**
11
+ * It sets up the data providers as well as the `<svg>` for the chart.
12
+ *
13
+ * This is a combination of both the `ChartDataProviderPro` and `ChartsSurface` components.
14
+ *
15
+ * Demos:
16
+ *
17
+ * - [Composition](https://mui.com/x/api/charts/composition/)
18
+ *
19
+ * API:
20
+ *
21
+ * - [ChartContainer API](https://mui.com/x/api/charts/chart-container/)
22
+ *
23
+ * @example
24
+ * ```jsx
25
+ * <ChartContainerPro
26
+ * series={[{ label: "Label", type: "bar", data: [10, 20] }]}
27
+ * xAxis={[{ data: ["A", "B"], scaleType: "band", id: "x-axis" }]}
28
+ * >
29
+ * <BarPlot />
30
+ * <ChartsXAxis position="bottom" axisId="x-axis" />
31
+ * </ChartContainerPro>
32
+ * ```
33
+ */
34
+ const ChartContainerPro = /*#__PURE__*/React.forwardRef(function ChartContainerProInner(props, ref) {
15
35
  const {
16
36
  chartDataProviderProProps,
17
37
  children,
18
- resizableContainerProps,
19
38
  chartsSurfaceProps
20
39
  } = useChartContainerProProps(props, ref);
21
40
  return /*#__PURE__*/_jsx(ChartDataProviderPro, _extends({}, chartDataProviderProProps, {
22
- children: /*#__PURE__*/_jsxs(ResizableContainer, _extends({}, resizableContainerProps, {
23
- children: [/*#__PURE__*/_jsx(ChartsSurface, _extends({}, chartsSurfaceProps, {
24
- children: children
25
- })), /*#__PURE__*/_jsx(Watermark, {
26
- packageName: "x-charts-pro",
27
- releaseInfo: releaseInfo
28
- })]
41
+ children: /*#__PURE__*/_jsx(ChartsSurface, _extends({}, chartsSurfaceProps, {
42
+ children: children
29
43
  }))
30
44
  }));
31
45
  });
46
+
47
+ // @ts-expect-error the type coercion breaks the prop types
32
48
  process.env.NODE_ENV !== "production" ? ChartContainerPro.propTypes = {
33
49
  // ----------------------------- Warning --------------------------------
34
50
  // | These PropTypes are generated from the TypeScript type definitions |
35
51
  // | To update them edit the TypeScript types and run "pnpm proptypes" |
36
52
  // ----------------------------------------------------------------------
53
+ apiRef: PropTypes.shape({
54
+ current: PropTypes.shape({
55
+ setZoomData: PropTypes.func.isRequired
56
+ })
57
+ }),
37
58
  children: PropTypes.node,
38
59
  className: PropTypes.string,
39
60
  /**
@@ -57,17 +78,30 @@ process.env.NODE_ENV !== "production" ? ChartContainerPro.propTypes = {
57
78
  */
58
79
  height: PropTypes.number,
59
80
  /**
60
- * The item currently highlighted. Turns highlighting into a controlled prop.
81
+ * The highlighted item.
82
+ * Used when the highlight is controlled.
61
83
  */
62
84
  highlightedItem: PropTypes.shape({
63
85
  dataIndex: PropTypes.number,
64
- seriesId: PropTypes.oneOfType([PropTypes.number, PropTypes.string])
86
+ seriesId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired
65
87
  }),
88
+ /**
89
+ * This prop is used to help implement the accessibility logic.
90
+ * If you don't provide this prop. It falls back to a randomly generated id.
91
+ */
92
+ id: PropTypes.string,
93
+ /**
94
+ * The list of zoom data related to each axis.
95
+ */
96
+ initialZoom: PropTypes.arrayOf(PropTypes.shape({
97
+ axisId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,
98
+ end: PropTypes.number.isRequired,
99
+ start: PropTypes.number.isRequired
100
+ })),
66
101
  /**
67
102
  * The margin between the SVG and the drawing area.
68
103
  * It's used for leaving some space for extra information such as the x- and y-axis or legend.
69
104
  * Accepts an object with the optional properties: `top`, `bottom`, `left`, and `right`.
70
- * @default object Depends on the charts type.
71
105
  */
72
106
  margin: PropTypes.shape({
73
107
  bottom: PropTypes.number,
@@ -87,23 +121,19 @@ process.env.NODE_ENV !== "production" ? ChartContainerPro.propTypes = {
87
121
  * @param {ZoomData[]} zoomData Updated zoom data.
88
122
  */
89
123
  onZoomChange: PropTypes.func,
90
- /**
91
- * An array of plugins defining how to preprocess data.
92
- * If not provided, the container supports line, bar, scatter and pie charts.
93
- */
94
- plugins: PropTypes.arrayOf(PropTypes.object),
95
124
  /**
96
125
  * The array of series to display.
97
126
  * Each type of series has its own specificity.
98
127
  * Please refer to the appropriate docs page to learn more about it.
99
128
  */
100
- series: PropTypes.arrayOf(PropTypes.object).isRequired,
129
+ series: PropTypes.arrayOf(PropTypes.object),
101
130
  /**
102
131
  * If `true`, animations are skipped.
103
132
  * If unset or `false`, the animations respects the user's `prefers-reduced-motion` setting.
104
133
  */
105
134
  skipAnimation: PropTypes.bool,
106
135
  sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),
136
+ theme: PropTypes.oneOf(['dark', 'light']),
107
137
  title: PropTypes.string,
108
138
  /**
109
139
  * The width of the chart in px. If not defined, it takes the width of the parent element.
@@ -140,7 +170,6 @@ process.env.NODE_ENV !== "production" ? ChartContainerPro.propTypes = {
140
170
  hideTooltip: PropTypes.bool,
141
171
  id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
142
172
  label: PropTypes.string,
143
- labelFontSize: PropTypes.number,
144
173
  labelStyle: PropTypes.object,
145
174
  max: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
146
175
  min: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
@@ -151,7 +180,6 @@ process.env.NODE_ENV !== "production" ? ChartContainerPro.propTypes = {
151
180
  slots: PropTypes.object,
152
181
  stroke: PropTypes.string,
153
182
  sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),
154
- tickFontSize: PropTypes.number,
155
183
  tickInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.array, PropTypes.func]),
156
184
  tickLabelInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.func]),
157
185
  tickLabelPlacement: PropTypes.oneOf(['middle', 'tick']),
@@ -203,7 +231,6 @@ process.env.NODE_ENV !== "production" ? ChartContainerPro.propTypes = {
203
231
  hideTooltip: PropTypes.bool,
204
232
  id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
205
233
  label: PropTypes.string,
206
- labelFontSize: PropTypes.number,
207
234
  labelStyle: PropTypes.object,
208
235
  max: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
209
236
  min: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
@@ -214,7 +241,6 @@ process.env.NODE_ENV !== "production" ? ChartContainerPro.propTypes = {
214
241
  slots: PropTypes.object,
215
242
  stroke: PropTypes.string,
216
243
  sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),
217
- tickFontSize: PropTypes.number,
218
244
  tickInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.array, PropTypes.func]),
219
245
  tickLabelInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.func]),
220
246
  tickLabelPlacement: PropTypes.oneOf(['middle', 'tick']),
@@ -259,14 +285,6 @@ process.env.NODE_ENV !== "production" ? ChartContainerPro.propTypes = {
259
285
  id: PropTypes.string,
260
286
  max: PropTypes.number,
261
287
  min: PropTypes.number
262
- })),
263
- /**
264
- * The list of zoom data related to each axis.
265
- */
266
- zoom: PropTypes.arrayOf(PropTypes.shape({
267
- axisId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,
268
- end: PropTypes.number.isRequired,
269
- start: PropTypes.number.isRequired
270
288
  }))
271
289
  } : void 0;
272
290
  export { ChartContainerPro };
@@ -1,8 +1,9 @@
1
- import { UseChartContainerPropsReturnValue } from '@mui/x-charts/internals';
1
+ import { ChartSeriesType, UseChartContainerPropsReturnValue } from '@mui/x-charts/internals';
2
2
  import * as React from 'react';
3
- import type { ChartDataProviderProProps } from '../context/ChartDataProviderPro';
3
+ import { ChartDataProviderProps } from '@mui/x-charts/ChartDataProvider';
4
4
  import type { ChartContainerProProps } from './ChartContainerPro';
5
- export type UseChartContainerProPropsReturnValue = Omit<UseChartContainerPropsReturnValue, 'chartDataProviderProps'> & {
6
- chartDataProviderProProps: ChartDataProviderProProps;
5
+ import { AllPluginSignatures } from '../internals/plugins/allPlugins';
6
+ export type UseChartContainerProPropsReturnValue<TSeries extends ChartSeriesType> = Pick<UseChartContainerPropsReturnValue<TSeries>, 'chartsSurfaceProps' | 'children'> & {
7
+ chartDataProviderProProps: ChartDataProviderProps<TSeries, AllPluginSignatures<TSeries>>;
7
8
  };
8
- export declare const useChartContainerProProps: (props: ChartContainerProProps, ref: React.Ref<SVGSVGElement>) => UseChartContainerProPropsReturnValue;
9
+ export declare const useChartContainerProProps: <TSeries extends ChartSeriesType = keyof import("@mui/x-charts/internals").ChartsSeriesConfig>(props: ChartContainerProProps<TSeries>, ref: React.Ref<SVGSVGElement>) => UseChartContainerProPropsReturnValue<TSeries>;
@@ -2,27 +2,31 @@
2
2
 
3
3
  import _extends from "@babel/runtime/helpers/esm/extends";
4
4
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
5
- const _excluded = ["zoom", "onZoomChange"];
5
+ const _excluded = ["initialZoom", "onZoomChange", "plugins", "apiRef"];
6
6
  import { useChartContainerProps } from '@mui/x-charts/internals';
7
+ import { ALL_PLUGINS } from "../internals/plugins/allPlugins.js";
7
8
  export const useChartContainerProProps = (props, ref) => {
8
9
  const {
9
- zoom,
10
- onZoomChange
10
+ initialZoom,
11
+ onZoomChange,
12
+ plugins,
13
+ apiRef
11
14
  } = props,
12
15
  baseProps = _objectWithoutPropertiesLoose(props, _excluded);
13
16
  const chartDataProviderProProps = {
14
- zoom,
17
+ initialZoom,
15
18
  onZoomChange
16
19
  };
17
20
  const {
18
21
  chartDataProviderProps,
19
22
  chartsSurfaceProps,
20
- resizableContainerProps,
21
23
  children
22
24
  } = useChartContainerProps(baseProps, ref);
23
25
  return {
24
- chartDataProviderProProps: _extends({}, chartDataProviderProps, chartDataProviderProProps),
25
- resizableContainerProps,
26
+ chartDataProviderProProps: _extends({}, chartDataProviderProps, chartDataProviderProProps, {
27
+ apiRef,
28
+ plugins: plugins ?? ALL_PLUGINS
29
+ }),
26
30
  chartsSurfaceProps,
27
31
  children
28
32
  };
@@ -0,0 +1,37 @@
1
+ import * as React from 'react';
2
+ import { ChartSeriesType, ChartAnyPluginSignature, ChartProviderProps } from '@mui/x-charts/internals';
3
+ import { ChartDataProviderProps } from '@mui/x-charts/ChartDataProvider';
4
+ import { AllPluginSignatures } from '../internals/plugins/allPlugins';
5
+ export type ChartDataProviderProProps<TSeries extends ChartSeriesType = ChartSeriesType, TSignatures extends readonly ChartAnyPluginSignature[] = AllPluginSignatures<TSeries>> = ChartDataProviderProps<TSeries, TSignatures> & Omit<ChartProviderProps<TSeries, TSignatures>['pluginParams'], 'children'>;
6
+ /**
7
+ * Orchestrates the data providers for the chart components and hooks.
8
+ *
9
+ * Use this component if you have custom HTML components that need to access the chart data.
10
+ *
11
+ * Demos:
12
+ *
13
+ * - [Composition](https://mui.com/x/api/charts/composition/)
14
+ *
15
+ * API:
16
+ *
17
+ * - [ChartDataProviderPro API](https://mui.com/x/api/charts/chart-data-provider/)
18
+ *
19
+ * @example
20
+ * ```jsx
21
+ * <ChartDataProviderPro
22
+ * series={[{ label: "Label", type: "bar", data: [10, 20] }]}
23
+ * xAxis={[{ data: ["A", "B"], scaleType: "band", id: "x-axis" }]}
24
+ * >
25
+ * <ChartsSurface>
26
+ * <BarPlot />
27
+ * <ChartsXAxis position="bottom" axisId="x-axis" />
28
+ * </ChartsSurface>
29
+ * {'Custom Legend Component'}
30
+ * </ChartDataProviderPro>
31
+ * ```
32
+ */
33
+ declare function ChartDataProviderPro<TSeries extends ChartSeriesType = ChartSeriesType>(props: ChartDataProviderProProps<TSeries>): React.JSX.Element;
34
+ declare namespace ChartDataProviderPro {
35
+ var propTypes: any;
36
+ }
37
+ export { ChartDataProviderPro };
@@ -3,50 +3,54 @@
3
3
  import _extends from "@babel/runtime/helpers/esm/extends";
4
4
  import * as React from 'react';
5
5
  import PropTypes from 'prop-types';
6
- import { DrawingAreaProvider, InteractionProvider, PluginProvider, SeriesProvider, AnimationProvider, SvgRefProvider, SizeProvider } from '@mui/x-charts/internals';
7
- import { HighlightedProvider, ZAxisContextProvider } from '@mui/x-charts/context';
6
+ import { Watermark } from '@mui/x-license/Watermark';
7
+ import { ChartProvider, AnimationProvider } from '@mui/x-charts/internals';
8
8
  import { useLicenseVerifier } from '@mui/x-license/useLicenseVerifier';
9
- import { getReleaseInfo } from "../../internals/utils/releaseInfo.js";
10
- import { CartesianProviderPro } from "../CartesianProviderPro/index.js";
11
- import { ZoomProvider } from "../ZoomProvider/index.js";
12
- import { useChartContainerProProps } from "./useChartDataProviderProProps.js";
13
- import { jsx as _jsx } from "react/jsx-runtime";
9
+ import { useChartDataProviderProProps } from "./useChartDataProviderProProps.js";
10
+ import { getReleaseInfo } from "../internals/utils/releaseInfo.js";
11
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
14
12
  const releaseInfo = getReleaseInfo();
13
+ const packageIdentifier = 'x-charts-pro';
14
+ /**
15
+ * Orchestrates the data providers for the chart components and hooks.
16
+ *
17
+ * Use this component if you have custom HTML components that need to access the chart data.
18
+ *
19
+ * Demos:
20
+ *
21
+ * - [Composition](https://mui.com/x/api/charts/composition/)
22
+ *
23
+ * API:
24
+ *
25
+ * - [ChartDataProviderPro API](https://mui.com/x/api/charts/chart-data-provider/)
26
+ *
27
+ * @example
28
+ * ```jsx
29
+ * <ChartDataProviderPro
30
+ * series={[{ label: "Label", type: "bar", data: [10, 20] }]}
31
+ * xAxis={[{ data: ["A", "B"], scaleType: "band", id: "x-axis" }]}
32
+ * >
33
+ * <ChartsSurface>
34
+ * <BarPlot />
35
+ * <ChartsXAxis position="bottom" axisId="x-axis" />
36
+ * </ChartsSurface>
37
+ * {'Custom Legend Component'}
38
+ * </ChartDataProviderPro>
39
+ * ```
40
+ */
15
41
  function ChartDataProviderPro(props) {
16
42
  const {
17
- zoomProviderProps,
18
- drawingAreaProviderProps,
19
- seriesProviderProps,
20
- zAxisContextProps,
21
- highlightedProviderProps,
22
- cartesianProviderProps,
23
- sizeProviderProps,
24
- pluginProviderProps,
43
+ children,
25
44
  animationProviderProps,
26
- children
27
- } = useChartContainerProProps(props);
28
- useLicenseVerifier('x-charts-pro', releaseInfo);
29
- return /*#__PURE__*/_jsx(SizeProvider, _extends({}, sizeProviderProps, {
30
- children: /*#__PURE__*/_jsx(DrawingAreaProvider, _extends({}, drawingAreaProviderProps, {
31
- children: /*#__PURE__*/_jsx(AnimationProvider, _extends({}, animationProviderProps, {
32
- children: /*#__PURE__*/_jsx(PluginProvider, _extends({}, pluginProviderProps, {
33
- children: /*#__PURE__*/_jsx(ZoomProvider, _extends({}, zoomProviderProps, {
34
- children: /*#__PURE__*/_jsx(SeriesProvider, _extends({}, seriesProviderProps, {
35
- children: /*#__PURE__*/_jsx(CartesianProviderPro, _extends({}, cartesianProviderProps, {
36
- children: /*#__PURE__*/_jsx(ZAxisContextProvider, _extends({}, zAxisContextProps, {
37
- children: /*#__PURE__*/_jsx(InteractionProvider, {
38
- children: /*#__PURE__*/_jsx(HighlightedProvider, _extends({}, highlightedProviderProps, {
39
- children: /*#__PURE__*/_jsx(SvgRefProvider, {
40
- children: children
41
- })
42
- }))
43
- })
44
- }))
45
- }))
46
- }))
47
- }))
48
- }))
49
- }))
45
+ chartProviderProps
46
+ } = useChartDataProviderProProps(props);
47
+ useLicenseVerifier(packageIdentifier, releaseInfo);
48
+ return /*#__PURE__*/_jsx(ChartProvider, _extends({}, chartProviderProps, {
49
+ children: /*#__PURE__*/_jsxs(AnimationProvider, _extends({}, animationProviderProps, {
50
+ children: [children, /*#__PURE__*/_jsx(Watermark, {
51
+ packageName: packageIdentifier,
52
+ releaseInfo: releaseInfo
53
+ })]
50
54
  }))
51
55
  }));
52
56
  }
@@ -55,8 +59,12 @@ process.env.NODE_ENV !== "production" ? ChartDataProviderPro.propTypes = {
55
59
  // | These PropTypes are generated from the TypeScript type definitions |
56
60
  // | To update them edit the TypeScript types and run "pnpm proptypes" |
57
61
  // ----------------------------------------------------------------------
62
+ apiRef: PropTypes.shape({
63
+ current: PropTypes.shape({
64
+ setZoomData: PropTypes.func.isRequired
65
+ })
66
+ }),
58
67
  children: PropTypes.node,
59
- className: PropTypes.string,
60
68
  /**
61
69
  * Color palette used to colorize multiple series.
62
70
  * @default blueberryTwilightPalette
@@ -66,29 +74,35 @@ process.env.NODE_ENV !== "production" ? ChartDataProviderPro.propTypes = {
66
74
  * An array of objects that can be used to populate series and axes data using their `dataKey` property.
67
75
  */
68
76
  dataset: PropTypes.arrayOf(PropTypes.object),
69
- desc: PropTypes.string,
70
- /**
71
- * If `true`, the charts will not listen to the mouse move event.
72
- * It might break interactive features, but will improve performance.
73
- * @default false
74
- */
75
- disableAxisListener: PropTypes.bool,
76
77
  /**
77
- * The height of the chart in px.
78
+ * The height of the chart in px. If not defined, it takes the height of the parent element.
78
79
  */
79
- height: PropTypes.number.isRequired,
80
+ height: PropTypes.number,
80
81
  /**
81
- * The item currently highlighted. Turns highlighting into a controlled prop.
82
+ * The highlighted item.
83
+ * Used when the highlight is controlled.
82
84
  */
83
85
  highlightedItem: PropTypes.shape({
84
86
  dataIndex: PropTypes.number,
85
- seriesId: PropTypes.oneOfType([PropTypes.number, PropTypes.string])
87
+ seriesId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired
86
88
  }),
89
+ /**
90
+ * This prop is used to help implement the accessibility logic.
91
+ * If you don't provide this prop. It falls back to a randomly generated id.
92
+ */
93
+ id: PropTypes.string,
94
+ /**
95
+ * The list of zoom data related to each axis.
96
+ */
97
+ initialZoom: PropTypes.arrayOf(PropTypes.shape({
98
+ axisId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,
99
+ end: PropTypes.number.isRequired,
100
+ start: PropTypes.number.isRequired
101
+ })),
87
102
  /**
88
103
  * The margin between the SVG and the drawing area.
89
104
  * It's used for leaving some space for extra information such as the x- and y-axis or legend.
90
105
  * Accepts an object with the optional properties: `top`, `bottom`, `left`, and `right`.
91
- * @default object Depends on the charts type.
92
106
  */
93
107
  margin: PropTypes.shape({
94
108
  bottom: PropTypes.number,
@@ -108,34 +122,22 @@ process.env.NODE_ENV !== "production" ? ChartDataProviderPro.propTypes = {
108
122
  * @param {ZoomData[]} zoomData Updated zoom data.
109
123
  */
110
124
  onZoomChange: PropTypes.func,
111
- /**
112
- * An array of plugins defining how to preprocess data.
113
- * If not provided, the container supports line, bar, scatter and pie charts.
114
- */
115
- plugins: PropTypes.arrayOf(PropTypes.object),
116
125
  /**
117
126
  * The array of series to display.
118
127
  * Each type of series has its own specificity.
119
128
  * Please refer to the appropriate docs page to learn more about it.
120
129
  */
121
- series: PropTypes.arrayOf(PropTypes.object).isRequired,
130
+ series: PropTypes.arrayOf(PropTypes.object),
122
131
  /**
123
132
  * If `true`, animations are skipped.
124
133
  * If unset or `false`, the animations respects the user's `prefers-reduced-motion` setting.
125
134
  */
126
135
  skipAnimation: PropTypes.bool,
127
- sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),
128
- title: PropTypes.string,
129
- viewBox: PropTypes.shape({
130
- height: PropTypes.number,
131
- width: PropTypes.number,
132
- x: PropTypes.number,
133
- y: PropTypes.number
134
- }),
136
+ theme: PropTypes.oneOf(['dark', 'light']),
135
137
  /**
136
- * The width of the chart in px.
138
+ * The width of the chart in px. If not defined, it takes the width of the parent element.
137
139
  */
138
- width: PropTypes.number.isRequired,
140
+ width: PropTypes.number,
139
141
  /**
140
142
  * The configuration of the x-axes.
141
143
  * If not provided, a default axis config is used.
@@ -167,7 +169,6 @@ process.env.NODE_ENV !== "production" ? ChartDataProviderPro.propTypes = {
167
169
  hideTooltip: PropTypes.bool,
168
170
  id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
169
171
  label: PropTypes.string,
170
- labelFontSize: PropTypes.number,
171
172
  labelStyle: PropTypes.object,
172
173
  max: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
173
174
  min: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
@@ -178,7 +179,6 @@ process.env.NODE_ENV !== "production" ? ChartDataProviderPro.propTypes = {
178
179
  slots: PropTypes.object,
179
180
  stroke: PropTypes.string,
180
181
  sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),
181
- tickFontSize: PropTypes.number,
182
182
  tickInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.array, PropTypes.func]),
183
183
  tickLabelInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.func]),
184
184
  tickLabelPlacement: PropTypes.oneOf(['middle', 'tick']),
@@ -230,7 +230,6 @@ process.env.NODE_ENV !== "production" ? ChartDataProviderPro.propTypes = {
230
230
  hideTooltip: PropTypes.bool,
231
231
  id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
232
232
  label: PropTypes.string,
233
- labelFontSize: PropTypes.number,
234
233
  labelStyle: PropTypes.object,
235
234
  max: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
236
235
  min: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
@@ -241,7 +240,6 @@ process.env.NODE_ENV !== "production" ? ChartDataProviderPro.propTypes = {
241
240
  slots: PropTypes.object,
242
241
  stroke: PropTypes.string,
243
242
  sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),
244
- tickFontSize: PropTypes.number,
245
243
  tickInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.array, PropTypes.func]),
246
244
  tickLabelInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.func]),
247
245
  tickLabelPlacement: PropTypes.oneOf(['middle', 'tick']),
@@ -286,14 +284,6 @@ process.env.NODE_ENV !== "production" ? ChartDataProviderPro.propTypes = {
286
284
  id: PropTypes.string,
287
285
  max: PropTypes.number,
288
286
  min: PropTypes.number
289
- })),
290
- /**
291
- * The list of zoom data related to each axis.
292
- */
293
- zoom: PropTypes.arrayOf(PropTypes.shape({
294
- axisId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,
295
- end: PropTypes.number.isRequired,
296
- start: PropTypes.number.isRequired
297
287
  }))
298
288
  } : void 0;
299
289
  export { ChartDataProviderPro };
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "sideEffects": false,
3
3
  "module": "./index.js",
4
- "main": "../node/context/index.js",
4
+ "main": "../node/ChartDataProviderPro/index.js",
5
5
  "types": "./index.d.ts"
6
6
  }
@@ -0,0 +1,8 @@
1
+ import { ChartAnyPluginSignature, ChartSeriesType } from '@mui/x-charts/internals';
2
+ import type { ChartDataProviderProProps } from './ChartDataProviderPro';
3
+ import type { AllPluginSignatures } from '../internals/plugins/allPlugins';
4
+ export declare const useChartDataProviderProProps: <TSeries extends ChartSeriesType = keyof import("@mui/x-charts/internals").ChartsSeriesConfig, TSignatures extends readonly ChartAnyPluginSignature[] = AllPluginSignatures<TSeries>>(props: ChartDataProviderProProps<TSeries, TSignatures>) => {
5
+ children: import("react").ReactNode;
6
+ animationProviderProps: Omit<import("@mui/x-charts/internals").AnimationProviderProps, "children">;
7
+ chartProviderProps: Omit<import("@mui/x-charts/internals").ChartProviderProps<TSeries, TSignatures>, "children">;
8
+ };
@@ -0,0 +1,15 @@
1
+ 'use client';
2
+
3
+ import { useChartDataProviderProps } from '@mui/x-charts/internals';
4
+ export const useChartDataProviderProProps = props => {
5
+ const {
6
+ animationProviderProps,
7
+ chartProviderProps,
8
+ children
9
+ } = useChartDataProviderProps(props);
10
+ return {
11
+ children,
12
+ animationProviderProps,
13
+ chartProviderProps
14
+ };
15
+ };