@mui/x-charts-premium 8.26.0 → 9.0.0-alpha.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 (134) hide show
  1. package/BarChartPremium/BarChartPremium.d.ts +14 -2
  2. package/BarChartPremium/BarChartPremium.js +11 -5
  3. package/BarChartPremium/RangeBar/AnimatedRangeBarElement.js +1 -1
  4. package/BarChartPremium/RangeBar/FocusedRangeBar.d.ts +2 -0
  5. package/BarChartPremium/RangeBar/FocusedRangeBar.js +70 -0
  6. package/BarChartPremium/RangeBar/RangeBarPlot.js +1 -1
  7. package/BarChartPremium/RangeBar/createGetRangeBarDimensions.d.ts +13 -0
  8. package/BarChartPremium/RangeBar/createGetRangeBarDimensions.js +42 -0
  9. package/BarChartPremium/RangeBar/seriesConfig/getSeriesWithDefaultValues.d.ts +2 -2
  10. package/BarChartPremium/RangeBar/seriesConfig/index.js +4 -1
  11. package/BarChartPremium/RangeBar/seriesConfig/keyboardFocusHandler.d.ts +3 -0
  12. package/BarChartPremium/RangeBar/seriesConfig/keyboardFocusHandler.js +22 -0
  13. package/BarChartPremium/RangeBar/seriesConfig/legend.js +0 -1
  14. package/BarChartPremium/RangeBar/seriesConfig/tooltipPosition.js +8 -2
  15. package/BarChartPremium/RangeBar/useRangeBarPlotData.d.ts +2 -9
  16. package/BarChartPremium/RangeBar/useRangeBarPlotData.js +16 -51
  17. package/BarChartPremium/index.d.ts +1 -0
  18. package/BarChartPremium/index.js +12 -0
  19. package/CHANGELOG.md +355 -3
  20. package/ChartContainerPremium/ChartContainerPremium.d.ts +17 -31
  21. package/ChartContainerPremium/ChartContainerPremium.js +15 -43
  22. package/ChartContainerPremium/useChartContainerPremiumProps.d.ts +10 -9
  23. package/ChartContainerPremium/useChartContainerPremiumProps.js +10 -27
  24. package/ChartDataProviderPremium/ChartDataProviderPremium.d.ts +7 -5
  25. package/ChartDataProviderPremium/ChartDataProviderPremium.js +6 -6
  26. package/ChartDataProviderPremium/index.d.ts +1 -1
  27. package/ChartDataProviderPremium/useChartDataProviderPremiumProps.d.ts +3 -3
  28. package/ChartZoomSlider/internals/previews/RangeBarPreviewPlot.js +1 -1
  29. package/ChartsContainer/index.d.ts +1 -0
  30. package/ChartsContainer/index.js +16 -0
  31. package/ChartsContainerPremium/ChartsContainerPremium.d.ts +37 -0
  32. package/ChartsContainerPremium/ChartsContainerPremium.js +52 -0
  33. package/ChartsContainerPremium/index.d.ts +2 -0
  34. package/ChartsContainerPremium/index.js +17 -0
  35. package/ChartsContainerPremium/useChartsContainerPremiumProps.d.ts +9 -0
  36. package/ChartsContainerPremium/useChartsContainerPremiumProps.js +33 -0
  37. package/ChartsContainerPro/index.d.ts +1 -0
  38. package/ChartsContainerPro/index.js +16 -0
  39. package/HeatmapPremium/HeatmapPlotPremium.d.ts +9 -0
  40. package/HeatmapPremium/HeatmapPlotPremium.js +29 -0
  41. package/HeatmapPremium/HeatmapPremium.d.ts +15 -0
  42. package/HeatmapPremium/HeatmapPremium.js +478 -0
  43. package/HeatmapPremium/HeatmapPremium.plugins.d.ts +4 -0
  44. package/HeatmapPremium/HeatmapPremium.plugins.js +9 -0
  45. package/HeatmapPremium/index.d.ts +1 -0
  46. package/HeatmapPremium/index.js +16 -0
  47. package/HeatmapPremium/useHeatmapPremiumProps.d.ts +16 -0
  48. package/HeatmapPremium/useHeatmapPremiumProps.js +26 -0
  49. package/HeatmapPremium/webgl/HeatmapWebGLPlot.d.ts +6 -0
  50. package/HeatmapPremium/webgl/HeatmapWebGLPlot.js +185 -0
  51. package/HeatmapPremium/webgl/HeatmapWebGLRenderer.d.ts +4 -0
  52. package/HeatmapPremium/webgl/HeatmapWebGLRenderer.js +23 -0
  53. package/HeatmapPremium/webgl/shaders.d.ts +3 -0
  54. package/HeatmapPremium/webgl/shaders.js +77 -0
  55. package/HeatmapPremium/webgl/useHeatmapPlotData.d.ts +12 -0
  56. package/HeatmapPremium/webgl/useHeatmapPlotData.js +58 -0
  57. package/HeatmapPremium/webgl/utils.d.ts +8 -0
  58. package/HeatmapPremium/webgl/utils.js +51 -0
  59. package/esm/BarChartPremium/BarChartPremium.d.ts +14 -2
  60. package/esm/BarChartPremium/BarChartPremium.js +12 -6
  61. package/esm/BarChartPremium/RangeBar/AnimatedRangeBarElement.js +1 -1
  62. package/esm/BarChartPremium/RangeBar/FocusedRangeBar.d.ts +2 -0
  63. package/esm/BarChartPremium/RangeBar/FocusedRangeBar.js +63 -0
  64. package/esm/BarChartPremium/RangeBar/RangeBarPlot.js +1 -1
  65. package/esm/BarChartPremium/RangeBar/createGetRangeBarDimensions.d.ts +13 -0
  66. package/esm/BarChartPremium/RangeBar/createGetRangeBarDimensions.js +36 -0
  67. package/esm/BarChartPremium/RangeBar/seriesConfig/getSeriesWithDefaultValues.d.ts +2 -2
  68. package/esm/BarChartPremium/RangeBar/seriesConfig/index.js +5 -2
  69. package/esm/BarChartPremium/RangeBar/seriesConfig/keyboardFocusHandler.d.ts +3 -0
  70. package/esm/BarChartPremium/RangeBar/seriesConfig/keyboardFocusHandler.js +16 -0
  71. package/esm/BarChartPremium/RangeBar/seriesConfig/legend.js +0 -1
  72. package/esm/BarChartPremium/RangeBar/seriesConfig/tooltipPosition.js +8 -2
  73. package/esm/BarChartPremium/RangeBar/useRangeBarPlotData.d.ts +2 -9
  74. package/esm/BarChartPremium/RangeBar/useRangeBarPlotData.js +16 -51
  75. package/esm/BarChartPremium/index.d.ts +1 -0
  76. package/esm/BarChartPremium/index.js +1 -0
  77. package/esm/ChartContainerPremium/ChartContainerPremium.d.ts +17 -31
  78. package/esm/ChartContainerPremium/ChartContainerPremium.js +16 -42
  79. package/esm/ChartContainerPremium/useChartContainerPremiumProps.d.ts +10 -9
  80. package/esm/ChartContainerPremium/useChartContainerPremiumProps.js +10 -25
  81. package/esm/ChartDataProviderPremium/ChartDataProviderPremium.d.ts +7 -5
  82. package/esm/ChartDataProviderPremium/ChartDataProviderPremium.js +6 -5
  83. package/esm/ChartDataProviderPremium/index.d.ts +1 -1
  84. package/esm/ChartDataProviderPremium/useChartDataProviderPremiumProps.d.ts +3 -3
  85. package/esm/ChartZoomSlider/internals/previews/RangeBarPreviewPlot.js +1 -1
  86. package/esm/ChartsContainer/index.d.ts +1 -0
  87. package/esm/ChartsContainer/index.js +2 -0
  88. package/esm/ChartsContainerPremium/ChartsContainerPremium.d.ts +37 -0
  89. package/esm/ChartsContainerPremium/ChartsContainerPremium.js +46 -0
  90. package/esm/ChartsContainerPremium/index.d.ts +2 -0
  91. package/esm/ChartsContainerPremium/index.js +2 -0
  92. package/esm/ChartsContainerPremium/useChartsContainerPremiumProps.d.ts +9 -0
  93. package/esm/ChartsContainerPremium/useChartsContainerPremiumProps.js +27 -0
  94. package/esm/ChartsContainerPro/index.d.ts +1 -0
  95. package/esm/ChartsContainerPro/index.js +2 -0
  96. package/esm/HeatmapPremium/HeatmapPlotPremium.d.ts +9 -0
  97. package/esm/HeatmapPremium/HeatmapPlotPremium.js +23 -0
  98. package/esm/HeatmapPremium/HeatmapPremium.d.ts +15 -0
  99. package/esm/HeatmapPremium/HeatmapPremium.js +472 -0
  100. package/esm/HeatmapPremium/HeatmapPremium.plugins.d.ts +4 -0
  101. package/esm/HeatmapPremium/HeatmapPremium.plugins.js +3 -0
  102. package/esm/HeatmapPremium/index.d.ts +1 -0
  103. package/esm/HeatmapPremium/index.js +1 -0
  104. package/esm/HeatmapPremium/useHeatmapPremiumProps.d.ts +16 -0
  105. package/esm/HeatmapPremium/useHeatmapPremiumProps.js +19 -0
  106. package/esm/HeatmapPremium/webgl/HeatmapWebGLPlot.d.ts +6 -0
  107. package/esm/HeatmapPremium/webgl/HeatmapWebGLPlot.js +178 -0
  108. package/esm/HeatmapPremium/webgl/HeatmapWebGLRenderer.d.ts +4 -0
  109. package/esm/HeatmapPremium/webgl/HeatmapWebGLRenderer.js +17 -0
  110. package/esm/HeatmapPremium/webgl/shaders.d.ts +3 -0
  111. package/esm/HeatmapPremium/webgl/shaders.js +71 -0
  112. package/esm/HeatmapPremium/webgl/useHeatmapPlotData.d.ts +12 -0
  113. package/esm/HeatmapPremium/webgl/useHeatmapPlotData.js +51 -0
  114. package/esm/HeatmapPremium/webgl/utils.d.ts +8 -0
  115. package/esm/HeatmapPremium/webgl/utils.js +41 -0
  116. package/esm/index.d.ts +5 -1
  117. package/esm/index.js +5 -2
  118. package/esm/internals/plugins/allPlugins.d.ts +1 -1
  119. package/esm/models/seriesType/rangeBar.d.ts +1 -1
  120. package/esm/typeOverloads/modules.d.ts +2 -1
  121. package/esm/utils/webgl/parseColor.d.ts +5 -0
  122. package/esm/utils/webgl/parseColor.js +78 -0
  123. package/esm/utils/webgl/useWebGLResizeObserver.d.ts +7 -0
  124. package/esm/utils/webgl/useWebGLResizeObserver.js +64 -0
  125. package/index.d.ts +5 -1
  126. package/index.js +33 -1
  127. package/internals/plugins/allPlugins.d.ts +1 -1
  128. package/models/seriesType/rangeBar.d.ts +1 -1
  129. package/package.json +9 -9
  130. package/typeOverloads/modules.d.ts +2 -1
  131. package/utils/webgl/parseColor.d.ts +5 -0
  132. package/utils/webgl/parseColor.js +84 -0
  133. package/utils/webgl/useWebGLResizeObserver.d.ts +7 -0
  134. package/utils/webgl/useWebGLResizeObserver.js +70 -0
@@ -0,0 +1,46 @@
1
+ 'use client';
2
+
3
+ import _extends from "@babel/runtime/helpers/esm/extends";
4
+ import * as React from 'react';
5
+ import { ChartsSurface } from '@mui/x-charts/ChartsSurface';
6
+ import { ChartDataProviderPremium } from "../ChartDataProviderPremium/index.js";
7
+ import { useChartsContainerPremiumProps } from "./useChartsContainerPremiumProps.js";
8
+ import { jsx as _jsx } from "react/jsx-runtime";
9
+ /**
10
+ * It sets up the data providers as well as the `<svg>` for the chart.
11
+ *
12
+ * This is a combination of both the `ChartDataProviderPremium` and `ChartsSurface` components.
13
+ *
14
+ * Demos:
15
+ *
16
+ * - [Composition](https://mui.com/x/api/charts/composition/)
17
+ *
18
+ * API:
19
+ *
20
+ * - [ChartsContainerPremium API](https://mui.com/x/api/charts/charts-container-premium/)
21
+ *
22
+ * @example
23
+ * ```jsx
24
+ * <ChartsContainerPremium
25
+ * series={[{ label: "Label", type: "bar", data: [10, 20] }]}
26
+ * xAxis={[{ data: ["A", "B"], scaleType: "band", id: "x-axis" }]}
27
+ * >
28
+ * <BarPlot />
29
+ * <ChartsXAxis axisId="x-axis" />
30
+ * </ChartsContainerPremium>
31
+ * ```
32
+ */
33
+ const ChartsContainerPremium = /*#__PURE__*/React.forwardRef(function ChartsContainerPremium(props, ref) {
34
+ const {
35
+ chartDataProviderPremiumProps,
36
+ children,
37
+ chartsSurfaceProps
38
+ } = useChartsContainerPremiumProps(props, ref);
39
+ return /*#__PURE__*/_jsx(ChartDataProviderPremium, _extends({}, chartDataProviderPremiumProps, {
40
+ children: /*#__PURE__*/_jsx(ChartsSurface, _extends({}, chartsSurfaceProps, {
41
+ children: children
42
+ }))
43
+ }));
44
+ });
45
+ if (process.env.NODE_ENV !== "production") ChartsContainerPremium.displayName = "ChartsContainerPremium";
46
+ export { ChartsContainerPremium };
@@ -0,0 +1,2 @@
1
+ import "../typeOverloads/index.js";
2
+ export * from "./ChartsContainerPremium.js";
@@ -0,0 +1,2 @@
1
+ import "../typeOverloads/index.js";
2
+ export * from "./ChartsContainerPremium.js";
@@ -0,0 +1,9 @@
1
+ import type * as React from 'react';
2
+ import { type ChartAnyPluginSignature, type ChartSeriesType, type UseChartsContainerPropsReturnValue } from '@mui/x-charts/internals';
3
+ import { type AllPluginSignatures } from "../internals/plugins/allPlugins.js";
4
+ import type { ChartsContainerPremiumProps } from "./ChartsContainerPremium.js";
5
+ import type { ChartDataProviderPremiumProps } from "../ChartDataProviderPremium/index.js";
6
+ export type UseChartsContainerPremiumPropsReturnValue<TSeries extends ChartSeriesType, TSignatures extends readonly ChartAnyPluginSignature[]> = Pick<UseChartsContainerPropsReturnValue<TSeries, TSignatures>, 'chartsSurfaceProps' | 'children'> & {
7
+ chartDataProviderPremiumProps: ChartDataProviderPremiumProps<TSeries, TSignatures>;
8
+ };
9
+ export declare function useChartsContainerPremiumProps<TSeries extends ChartSeriesType = ChartSeriesType, TSignatures extends readonly ChartAnyPluginSignature[] = AllPluginSignatures<TSeries>>(props: ChartsContainerPremiumProps<TSeries, TSignatures>, ref: React.Ref<SVGSVGElement>): UseChartsContainerPremiumPropsReturnValue<TSeries, TSignatures>;
@@ -0,0 +1,27 @@
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 = ["initialZoom", "zoomData", "onZoomChange", "zoomInteractionConfig", "plugins", "apiRef"];
6
+ import { useChartsContainerProProps } from '@mui/x-charts-pro/internals';
7
+ import { DEFAULT_PLUGINS } from "../internals/plugins/allPlugins.js";
8
+ export function useChartsContainerPremiumProps(props, ref) {
9
+ const _ref = props,
10
+ {
11
+ plugins
12
+ } = _ref,
13
+ baseProps = _objectWithoutPropertiesLoose(_ref, _excluded);
14
+ const {
15
+ chartDataProviderProProps,
16
+ chartsSurfaceProps,
17
+ children
18
+ } = useChartsContainerProProps(baseProps, ref);
19
+ const chartDataProviderPremiumProps = _extends({}, chartDataProviderProProps, {
20
+ plugins: plugins ?? DEFAULT_PLUGINS
21
+ });
22
+ return {
23
+ chartDataProviderPremiumProps,
24
+ chartsSurfaceProps,
25
+ children
26
+ };
27
+ }
@@ -0,0 +1 @@
1
+ export * from '@mui/x-charts-pro/ChartsContainerPro';
@@ -0,0 +1,2 @@
1
+ // Re-export automatically generated, to customize, simply remove this line.
2
+ export * from '@mui/x-charts-pro/ChartsContainerPro';
@@ -0,0 +1,9 @@
1
+ import { type HeatmapRendererPlotProps } from '@mui/x-charts-pro/internals';
2
+ export interface HeatmapPlotPremiumProps extends HeatmapRendererPlotProps {
3
+ renderer: 'svg-single' | 'webgl';
4
+ }
5
+ export declare function HeatmapPlotPremium({
6
+ renderer,
7
+ borderRadius,
8
+ ...props
9
+ }: HeatmapPlotPremiumProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,23 @@
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 = ["renderer", "borderRadius"];
6
+ import { HeatmapSVGPlot } from '@mui/x-charts-pro/internals';
7
+ import { HeatmapWebGLRenderer } from "./webgl/HeatmapWebGLRenderer.js";
8
+ import { jsx as _jsx } from "react/jsx-runtime";
9
+ export function HeatmapPlotPremium(_ref) {
10
+ let {
11
+ renderer,
12
+ borderRadius
13
+ } = _ref,
14
+ props = _objectWithoutPropertiesLoose(_ref, _excluded);
15
+ if (renderer === 'webgl') {
16
+ return /*#__PURE__*/_jsx(HeatmapWebGLRenderer, {
17
+ borderRadius: borderRadius
18
+ });
19
+ }
20
+ return /*#__PURE__*/_jsx(HeatmapSVGPlot, _extends({
21
+ borderRadius: borderRadius
22
+ }, props));
23
+ }
@@ -0,0 +1,15 @@
1
+ import * as React from 'react';
2
+ import { type HeatmapProps, type HeatmapSlots, type HeatmapSlotProps } from '@mui/x-charts-pro/Heatmap';
3
+ export interface HeatmapPremiumSlots extends HeatmapSlots {}
4
+ export interface HeatmapPremiumSlotProps extends HeatmapSlotProps {}
5
+ export interface HeatmapPremiumProps extends HeatmapProps {
6
+ /**
7
+ * The type of renderer to use for the heatmap plot.
8
+ * - `svg-single`: Renders every scatter item in a `<rect />` element.
9
+ * - `webgl`: Renders heatmap cells using WebGL for better performance, at the cost of some limitations.
10
+ * Read more: https://mui.com/x/react-charts/heatmap/#performance
11
+ */
12
+ renderer?: 'svg-single' | 'webgl';
13
+ }
14
+ declare const HeatmapPremium: React.ForwardRefExoticComponent<HeatmapPremiumProps & React.RefAttributes<SVGSVGElement>>;
15
+ export { HeatmapPremium };
@@ -0,0 +1,472 @@
1
+ 'use client';
2
+
3
+ import _extends from "@babel/runtime/helpers/esm/extends";
4
+ import * as React from 'react';
5
+ import PropTypes from 'prop-types';
6
+ import { useThemeProps } from '@mui/material/styles';
7
+ import { ChartsBrushOverlay } from '@mui/x-charts/ChartsBrushOverlay';
8
+ import { ChartsWrapper } from '@mui/x-charts/ChartsWrapper';
9
+ import { ChartsSurface } from '@mui/x-charts/ChartsSurface';
10
+ import { FocusedHeatmapCell, HeatmapTooltip } from '@mui/x-charts-pro/Heatmap';
11
+ import { ChartsLegend } from '@mui/x-charts/ChartsLegend';
12
+ import { ChartsToolbarPro } from '@mui/x-charts-pro/ChartsToolbarPro';
13
+ import { ChartsOverlay } from '@mui/x-charts/ChartsOverlay';
14
+ import { ChartsAxis } from '@mui/x-charts/ChartsAxis';
15
+ import { ChartsClipPath } from '@mui/x-charts/ChartsClipPath';
16
+ import { useHeatmapPremiumProps } from "./useHeatmapPremiumProps.js";
17
+ import { ChartDataProviderPremium } from "../ChartDataProviderPremium/index.js";
18
+ import { HeatmapPlotPremium } from "./HeatmapPlotPremium.js";
19
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
20
+ const HeatmapPremium = /*#__PURE__*/React.forwardRef(function HeatmapPremium(inProps, ref) {
21
+ const props = useThemeProps({
22
+ props: inProps,
23
+ name: 'MuiHeatmapPremium'
24
+ });
25
+ const {
26
+ sx,
27
+ slots,
28
+ slotProps,
29
+ loading,
30
+ hideLegend,
31
+ showToolbar = false
32
+ } = props;
33
+ const {
34
+ chartDataProviderPremiumProps,
35
+ chartsWrapperProps,
36
+ chartsAxisProps,
37
+ clipPathProps,
38
+ clipPathGroupProps,
39
+ legendProps,
40
+ heatmapPlotPremiumProps,
41
+ overlayProps,
42
+ children
43
+ } = useHeatmapPremiumProps(props);
44
+ const Tooltip = slots?.tooltip ?? HeatmapTooltip;
45
+ const Toolbar = slots?.toolbar ?? ChartsToolbarPro;
46
+ return /*#__PURE__*/_jsx(ChartDataProviderPremium, _extends({}, chartDataProviderPremiumProps, {
47
+ children: /*#__PURE__*/_jsxs(ChartsWrapper, _extends({}, chartsWrapperProps, {
48
+ children: [showToolbar ? /*#__PURE__*/_jsx(Toolbar, _extends({}, props.slotProps?.toolbar)) : null, !hideLegend && /*#__PURE__*/_jsx(ChartsLegend, _extends({}, legendProps)), /*#__PURE__*/_jsxs(ChartsSurface, {
49
+ ref: ref,
50
+ sx: sx,
51
+ children: [/*#__PURE__*/_jsxs("g", _extends({}, clipPathGroupProps, {
52
+ children: [/*#__PURE__*/_jsx(HeatmapPlotPremium, _extends({}, heatmapPlotPremiumProps)), /*#__PURE__*/_jsx(FocusedHeatmapCell, {}), /*#__PURE__*/_jsx(ChartsOverlay, _extends({}, overlayProps))]
53
+ })), /*#__PURE__*/_jsx(ChartsAxis, _extends({}, chartsAxisProps)), /*#__PURE__*/_jsx(ChartsClipPath, _extends({}, clipPathProps)), /*#__PURE__*/_jsx(ChartsBrushOverlay, {}), children]
54
+ }), !loading && /*#__PURE__*/_jsx(Tooltip, _extends({}, slotProps?.tooltip))]
55
+ }))
56
+ }));
57
+ });
58
+ if (process.env.NODE_ENV !== "production") HeatmapPremium.displayName = "HeatmapPremium";
59
+ process.env.NODE_ENV !== "production" ? HeatmapPremium.propTypes = {
60
+ // ----------------------------- Warning --------------------------------
61
+ // | These PropTypes are generated from the TypeScript type definitions |
62
+ // | To update them edit the TypeScript types and run "pnpm proptypes" |
63
+ // ----------------------------------------------------------------------
64
+ apiRef: PropTypes.shape({
65
+ current: PropTypes.shape({
66
+ exportAsImage: PropTypes.func.isRequired,
67
+ exportAsPrint: PropTypes.func.isRequired,
68
+ setAxisZoomData: PropTypes.func.isRequired,
69
+ setZoomData: PropTypes.func.isRequired
70
+ })
71
+ }),
72
+ /**
73
+ * The border radius of the heatmap cells in pixels.
74
+ */
75
+ borderRadius: PropTypes.number,
76
+ /**
77
+ * Configuration for the brush interaction.
78
+ */
79
+ brushConfig: PropTypes.shape({
80
+ enabled: PropTypes.bool,
81
+ preventHighlight: PropTypes.bool,
82
+ preventTooltip: PropTypes.bool
83
+ }),
84
+ className: PropTypes.string,
85
+ /**
86
+ * Color palette used to colorize multiple series.
87
+ * @default rainbowSurgePalette
88
+ */
89
+ colors: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.string), PropTypes.func]),
90
+ /**
91
+ * An array of objects that can be used to populate series and axes data using their `dataKey` property.
92
+ */
93
+ dataset: PropTypes.arrayOf(PropTypes.object),
94
+ desc: PropTypes.string,
95
+ /**
96
+ * If `true`, the charts will not listen to the mouse move event.
97
+ * It might break interactive features, but will improve performance.
98
+ * @default false
99
+ */
100
+ disableAxisListener: PropTypes.bool,
101
+ enableKeyboardNavigation: PropTypes.bool,
102
+ /**
103
+ * The height of the chart in px. If not defined, it takes the height of the parent element.
104
+ */
105
+ height: PropTypes.number,
106
+ /**
107
+ * If `true`, the legend is not rendered.
108
+ */
109
+ hideLegend: PropTypes.bool,
110
+ /**
111
+ * The highlighted item.
112
+ * Used when the highlight is controlled.
113
+ */
114
+ highlightedItem: PropTypes.shape({
115
+ dataIndex: PropTypes.number,
116
+ seriesId: PropTypes.string.isRequired
117
+ }),
118
+ /**
119
+ * This prop is used to help implement the accessibility logic.
120
+ * If you don't provide this prop. It falls back to a randomly generated id.
121
+ */
122
+ id: PropTypes.string,
123
+ /**
124
+ * The list of zoom data related to each axis.
125
+ * Used to initialize the zoom in a specific configuration without controlling it.
126
+ */
127
+ initialZoom: PropTypes.arrayOf(PropTypes.shape({
128
+ axisId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,
129
+ end: PropTypes.number.isRequired,
130
+ start: PropTypes.number.isRequired
131
+ })),
132
+ /**
133
+ * If `true`, a loading overlay is displayed.
134
+ * @default false
135
+ */
136
+ loading: PropTypes.bool,
137
+ /**
138
+ * Localized text for chart components.
139
+ */
140
+ localeText: PropTypes.object,
141
+ /**
142
+ * The margin between the SVG and the drawing area.
143
+ * It's used for leaving some space for extra information such as the x- and y-axis or legend.
144
+ *
145
+ * Accepts a `number` to be used on all sides or an object with the optional properties: `top`, `bottom`, `left`, and `right`.
146
+ */
147
+ margin: PropTypes.oneOfType([PropTypes.number, PropTypes.shape({
148
+ bottom: PropTypes.number,
149
+ left: PropTypes.number,
150
+ right: PropTypes.number,
151
+ top: PropTypes.number
152
+ })]),
153
+ /**
154
+ * The function called for onClick events.
155
+ * The second argument contains information about all line/bar elements at the current mouse position.
156
+ * @param {MouseEvent} event The mouse event recorded on the `<svg/>` element.
157
+ * @param {null | ChartsAxisData} data The data about the clicked axis and items associated with it.
158
+ *
159
+ * @deprecated Use `onItemClick` instead to get access to both x- and y-axis values.
160
+ */
161
+ onAxisClick: PropTypes.func,
162
+ /**
163
+ * The callback fired when the highlighted item changes.
164
+ *
165
+ * @param {HighlightItemData | null} highlightedItem The newly highlighted item.
166
+ */
167
+ onHighlightChange: PropTypes.func,
168
+ /**
169
+ * The callback fired when an item is clicked.
170
+ *
171
+ * @param {React.MouseEvent<SVGSVGElement, MouseEvent>} event The click event.
172
+ * @param {SeriesItemIdentifier<SeriesType>} item The clicked item.
173
+ */
174
+ onItemClick: PropTypes.func,
175
+ /**
176
+ * The callback fired when the tooltip item changes.
177
+ *
178
+ * @param {SeriesItemIdentifier<TSeries> | null} tooltipItem The newly highlighted item.
179
+ */
180
+ onTooltipItemChange: PropTypes.func,
181
+ /**
182
+ * Callback fired when the zoom has changed.
183
+ *
184
+ * @param {ZoomData[]} zoomData Updated zoom data.
185
+ */
186
+ onZoomChange: PropTypes.func,
187
+ /**
188
+ * The type of renderer to use for the heatmap plot.
189
+ * - `svg-single`: Renders every scatter item in a `<rect />` element.
190
+ * - `webgl`: Renders heatmap cells using WebGL for better performance, at the cost of some limitations.
191
+ * Read more: https://mui.com/x/react-charts/heatmap/#performance
192
+ */
193
+ renderer: PropTypes.oneOf(['svg-single', 'webgl']),
194
+ /**
195
+ * The series to display in the bar chart.
196
+ * An array of [[HeatmapSeries]] objects.
197
+ */
198
+ series: PropTypes.arrayOf(PropTypes.object).isRequired,
199
+ /**
200
+ * If true, shows the default chart toolbar.
201
+ * @default false
202
+ */
203
+ showToolbar: PropTypes.bool,
204
+ /**
205
+ * The props used for each component slot.
206
+ * @default {}
207
+ */
208
+ slotProps: PropTypes.object,
209
+ /**
210
+ * Overridable component slots.
211
+ * @default {}
212
+ */
213
+ slots: PropTypes.object,
214
+ sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),
215
+ theme: PropTypes.oneOf(['dark', 'light']),
216
+ title: PropTypes.string,
217
+ /**
218
+ * The configuration of the tooltip.
219
+ * @see See {@link https://mui.com/x/react-charts/tooltip/ tooltip docs} for more details.
220
+ */
221
+ tooltip: PropTypes.object,
222
+ /**
223
+ * The tooltip item.
224
+ * Used when the tooltip is controlled.
225
+ */
226
+ tooltipItem: PropTypes.shape({
227
+ dataIndex: PropTypes.number,
228
+ seriesId: PropTypes.string.isRequired,
229
+ type: PropTypes.oneOf(['heatmap']).isRequired,
230
+ xIndex: PropTypes.number.isRequired,
231
+ yIndex: PropTypes.number.isRequired
232
+ }),
233
+ /**
234
+ * The width of the chart in px. If not defined, it takes the width of the parent element.
235
+ */
236
+ width: PropTypes.number,
237
+ /**
238
+ * The configuration of the x-axes.
239
+ * If not provided, a default axis config is used.
240
+ * An array of [[AxisConfig]] objects.
241
+ */
242
+ xAxis: PropTypes.arrayOf(PropTypes.shape({
243
+ axis: PropTypes.oneOf(['x']),
244
+ barGapRatio: PropTypes.number,
245
+ categoryGapRatio: PropTypes.number,
246
+ classes: PropTypes.object,
247
+ colorMap: PropTypes.oneOfType([PropTypes.shape({
248
+ colors: PropTypes.arrayOf(PropTypes.string).isRequired,
249
+ type: PropTypes.oneOf(['ordinal']).isRequired,
250
+ unknownColor: PropTypes.string,
251
+ values: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number, PropTypes.string]).isRequired)
252
+ }), PropTypes.shape({
253
+ color: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.string.isRequired), PropTypes.func]).isRequired,
254
+ max: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
255
+ min: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
256
+ type: PropTypes.oneOf(['continuous']).isRequired
257
+ }), PropTypes.shape({
258
+ colors: PropTypes.arrayOf(PropTypes.string).isRequired,
259
+ thresholds: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]).isRequired).isRequired,
260
+ type: PropTypes.oneOf(['piecewise']).isRequired
261
+ })]),
262
+ data: PropTypes.array,
263
+ dataKey: PropTypes.string,
264
+ disableLine: PropTypes.bool,
265
+ disableTicks: PropTypes.bool,
266
+ domainLimit: PropTypes.oneOfType([PropTypes.oneOf(['nice', 'strict']), PropTypes.func]),
267
+ groups: PropTypes.arrayOf(PropTypes.shape({
268
+ getValue: PropTypes.func.isRequired,
269
+ tickLabelStyle: PropTypes.object,
270
+ tickSize: PropTypes.number
271
+ })),
272
+ height: PropTypes.number,
273
+ hideTooltip: PropTypes.bool,
274
+ id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
275
+ ignoreTooltip: PropTypes.bool,
276
+ label: PropTypes.string,
277
+ labelStyle: PropTypes.object,
278
+ offset: PropTypes.number,
279
+ ordinalTimeTicks: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.oneOf(['biweekly', 'days', 'hours', 'months', 'quarterly', 'weeks', 'years']), PropTypes.shape({
280
+ format: PropTypes.func.isRequired,
281
+ getTickNumber: PropTypes.func.isRequired,
282
+ isTick: PropTypes.func.isRequired
283
+ })]).isRequired),
284
+ position: PropTypes.oneOf(['bottom', 'none', 'top']),
285
+ reverse: PropTypes.bool,
286
+ scaleType: PropTypes.oneOf(['band']),
287
+ slotProps: PropTypes.object,
288
+ slots: PropTypes.object,
289
+ sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),
290
+ tickInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.array, PropTypes.func]),
291
+ tickLabelInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.func]),
292
+ tickLabelMinGap: PropTypes.number,
293
+ tickLabelPlacement: PropTypes.oneOf(['middle', 'tick']),
294
+ tickLabelStyle: PropTypes.object,
295
+ tickMaxStep: PropTypes.number,
296
+ tickMinStep: PropTypes.number,
297
+ tickNumber: PropTypes.number,
298
+ tickPlacement: PropTypes.oneOf(['end', 'extremities', 'middle', 'start']),
299
+ tickSize: PropTypes.number,
300
+ tickSpacing: PropTypes.number,
301
+ valueFormatter: PropTypes.func,
302
+ zoom: PropTypes.oneOfType([PropTypes.shape({
303
+ filterMode: PropTypes.oneOf(['discard', 'keep']),
304
+ maxEnd: PropTypes.number,
305
+ maxSpan: PropTypes.number,
306
+ minSpan: PropTypes.number,
307
+ minStart: PropTypes.number,
308
+ panning: PropTypes.bool,
309
+ slider: PropTypes.shape({
310
+ enabled: PropTypes.bool,
311
+ preview: PropTypes.bool,
312
+ showTooltip: PropTypes.oneOf(['always', 'hover', 'never']),
313
+ size: PropTypes.number
314
+ }),
315
+ step: PropTypes.number
316
+ }), PropTypes.bool])
317
+ })).isRequired,
318
+ /**
319
+ * The configuration of the y-axes.
320
+ * If not provided, a default axis config is used.
321
+ * An array of [[AxisConfig]] objects.
322
+ */
323
+ yAxis: PropTypes.arrayOf(PropTypes.shape({
324
+ axis: PropTypes.oneOf(['y']),
325
+ barGapRatio: PropTypes.number,
326
+ categoryGapRatio: PropTypes.number,
327
+ classes: PropTypes.object,
328
+ colorMap: PropTypes.oneOfType([PropTypes.shape({
329
+ colors: PropTypes.arrayOf(PropTypes.string).isRequired,
330
+ type: PropTypes.oneOf(['ordinal']).isRequired,
331
+ unknownColor: PropTypes.string,
332
+ values: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number, PropTypes.string]).isRequired)
333
+ }), PropTypes.shape({
334
+ color: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.string.isRequired), PropTypes.func]).isRequired,
335
+ max: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
336
+ min: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
337
+ type: PropTypes.oneOf(['continuous']).isRequired
338
+ }), PropTypes.shape({
339
+ colors: PropTypes.arrayOf(PropTypes.string).isRequired,
340
+ thresholds: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]).isRequired).isRequired,
341
+ type: PropTypes.oneOf(['piecewise']).isRequired
342
+ })]),
343
+ data: PropTypes.array,
344
+ dataKey: PropTypes.string,
345
+ disableLine: PropTypes.bool,
346
+ disableTicks: PropTypes.bool,
347
+ domainLimit: PropTypes.oneOfType([PropTypes.oneOf(['nice', 'strict']), PropTypes.func]),
348
+ groups: PropTypes.arrayOf(PropTypes.shape({
349
+ getValue: PropTypes.func.isRequired,
350
+ tickLabelStyle: PropTypes.object,
351
+ tickSize: PropTypes.number
352
+ })),
353
+ hideTooltip: PropTypes.bool,
354
+ id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
355
+ ignoreTooltip: PropTypes.bool,
356
+ label: PropTypes.string,
357
+ labelStyle: PropTypes.object,
358
+ offset: PropTypes.number,
359
+ ordinalTimeTicks: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.oneOf(['biweekly', 'days', 'hours', 'months', 'quarterly', 'weeks', 'years']), PropTypes.shape({
360
+ format: PropTypes.func.isRequired,
361
+ getTickNumber: PropTypes.func.isRequired,
362
+ isTick: PropTypes.func.isRequired
363
+ })]).isRequired),
364
+ position: PropTypes.oneOf(['left', 'none', 'right']),
365
+ reverse: PropTypes.bool,
366
+ scaleType: PropTypes.oneOf(['band']),
367
+ slotProps: PropTypes.object,
368
+ slots: PropTypes.object,
369
+ sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),
370
+ tickInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.array, PropTypes.func]),
371
+ tickLabelInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.func]),
372
+ tickLabelPlacement: PropTypes.oneOf(['middle', 'tick']),
373
+ tickLabelStyle: PropTypes.object,
374
+ tickMaxStep: PropTypes.number,
375
+ tickMinStep: PropTypes.number,
376
+ tickNumber: PropTypes.number,
377
+ tickPlacement: PropTypes.oneOf(['end', 'extremities', 'middle', 'start']),
378
+ tickSize: PropTypes.number,
379
+ tickSpacing: PropTypes.number,
380
+ valueFormatter: PropTypes.func,
381
+ width: PropTypes.number,
382
+ zoom: PropTypes.oneOfType([PropTypes.shape({
383
+ filterMode: PropTypes.oneOf(['discard', 'keep']),
384
+ maxEnd: PropTypes.number,
385
+ maxSpan: PropTypes.number,
386
+ minSpan: PropTypes.number,
387
+ minStart: PropTypes.number,
388
+ panning: PropTypes.bool,
389
+ slider: PropTypes.shape({
390
+ enabled: PropTypes.bool,
391
+ preview: PropTypes.bool,
392
+ showTooltip: PropTypes.oneOf(['always', 'hover', 'never']),
393
+ size: PropTypes.number
394
+ }),
395
+ step: PropTypes.number
396
+ }), PropTypes.bool])
397
+ })).isRequired,
398
+ /**
399
+ * The configuration of the z-axes.
400
+ */
401
+ zAxis: PropTypes.arrayOf(PropTypes.shape({
402
+ colorMap: PropTypes.oneOfType([PropTypes.shape({
403
+ colors: PropTypes.arrayOf(PropTypes.string).isRequired,
404
+ type: PropTypes.oneOf(['ordinal']).isRequired,
405
+ unknownColor: PropTypes.string,
406
+ values: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number, PropTypes.string]).isRequired)
407
+ }), PropTypes.shape({
408
+ color: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.string.isRequired), PropTypes.func]).isRequired,
409
+ max: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
410
+ min: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
411
+ type: PropTypes.oneOf(['continuous']).isRequired
412
+ }), PropTypes.shape({
413
+ colors: PropTypes.arrayOf(PropTypes.string).isRequired,
414
+ thresholds: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]).isRequired).isRequired,
415
+ type: PropTypes.oneOf(['piecewise']).isRequired
416
+ })]),
417
+ data: PropTypes.array,
418
+ dataKey: PropTypes.string,
419
+ id: PropTypes.string,
420
+ max: PropTypes.number,
421
+ min: PropTypes.number
422
+ })),
423
+ /**
424
+ * The list of zoom data related to each axis.
425
+ */
426
+ zoomData: PropTypes.arrayOf(PropTypes.shape({
427
+ axisId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,
428
+ end: PropTypes.number.isRequired,
429
+ start: PropTypes.number.isRequired
430
+ })),
431
+ /**
432
+ * Configuration for zoom interactions.
433
+ */
434
+ zoomInteractionConfig: PropTypes.shape({
435
+ pan: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.oneOf(['drag', 'pressAndDrag', 'wheel']), PropTypes.shape({
436
+ pointerMode: PropTypes.oneOf(['mouse', 'touch']),
437
+ requiredKeys: PropTypes.arrayOf(PropTypes.string),
438
+ type: PropTypes.oneOf(['drag']).isRequired
439
+ }), PropTypes.shape({
440
+ pointerMode: PropTypes.oneOf(['mouse', 'touch']),
441
+ requiredKeys: PropTypes.arrayOf(PropTypes.string),
442
+ type: PropTypes.oneOf(['pressAndDrag']).isRequired
443
+ }), PropTypes.shape({
444
+ allowedDirection: PropTypes.oneOf(['x', 'xy', 'y']),
445
+ pointerMode: PropTypes.any,
446
+ requiredKeys: PropTypes.arrayOf(PropTypes.string),
447
+ type: PropTypes.oneOf(['wheel']).isRequired
448
+ })]).isRequired),
449
+ zoom: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.oneOf(['brush', 'doubleTapReset', 'pinch', 'tapAndDrag', 'wheel']), PropTypes.shape({
450
+ pointerMode: PropTypes.any,
451
+ requiredKeys: PropTypes.arrayOf(PropTypes.string),
452
+ type: PropTypes.oneOf(['wheel']).isRequired
453
+ }), PropTypes.shape({
454
+ pointerMode: PropTypes.any,
455
+ requiredKeys: PropTypes.array,
456
+ type: PropTypes.oneOf(['pinch']).isRequired
457
+ }), PropTypes.shape({
458
+ pointerMode: PropTypes.oneOf(['mouse', 'touch']),
459
+ requiredKeys: PropTypes.arrayOf(PropTypes.string),
460
+ type: PropTypes.oneOf(['tapAndDrag']).isRequired
461
+ }), PropTypes.shape({
462
+ pointerMode: PropTypes.oneOf(['mouse', 'touch']),
463
+ requiredKeys: PropTypes.arrayOf(PropTypes.string),
464
+ type: PropTypes.oneOf(['doubleTapReset']).isRequired
465
+ }), PropTypes.shape({
466
+ pointerMode: PropTypes.any,
467
+ requiredKeys: PropTypes.array,
468
+ type: PropTypes.oneOf(['brush']).isRequired
469
+ })]).isRequired)
470
+ })
471
+ } : void 0;
472
+ export { HeatmapPremium };
@@ -0,0 +1,4 @@
1
+ import { type UseChartZAxisSignature, type UseChartCartesianAxisSignature, type UseChartTooltipSignature, type UseChartInteractionSignature, type UseChartHighlightSignature, type ConvertSignaturesIntoPlugins, type UseChartBrushSignature, type UseChartKeyboardNavigationSignature, type UseChartItemClickSignature } from '@mui/x-charts/internals';
2
+ import { type UseChartProExportSignature, type UseChartProZoomSignature } from '@mui/x-charts-pro/plugins';
3
+ export type HeatmapPremiumPluginSignatures = [UseChartZAxisSignature, UseChartTooltipSignature<'heatmap'>, UseChartInteractionSignature, UseChartCartesianAxisSignature<'heatmap'>, UseChartHighlightSignature, UseChartProExportSignature, UseChartBrushSignature, UseChartProZoomSignature, UseChartItemClickSignature<'heatmap'>, UseChartKeyboardNavigationSignature];
4
+ export declare const HEATMAP_PREMIUM_PLUGINS: ConvertSignaturesIntoPlugins<HeatmapPremiumPluginSignatures>;
@@ -0,0 +1,3 @@
1
+ import { useChartZAxis, useChartCartesianAxis, useChartTooltip, useChartInteraction, useChartHighlight, useChartBrush, useChartKeyboardNavigation, useChartItemClick } from '@mui/x-charts/internals';
2
+ import { useChartProExport, useChartProZoom } from '@mui/x-charts-pro/plugins';
3
+ export const HEATMAP_PREMIUM_PLUGINS = [useChartZAxis, useChartTooltip, useChartInteraction, useChartCartesianAxis, useChartHighlight, useChartProExport, useChartBrush, useChartProZoom, useChartItemClick, useChartKeyboardNavigation];
@@ -0,0 +1 @@
1
+ export * from "./HeatmapPremium.js";
@@ -0,0 +1 @@
1
+ export * from "./HeatmapPremium.js";
@@ -0,0 +1,16 @@
1
+ import { type HeatmapPremiumProps } from "./HeatmapPremium.js";
2
+ import { type HeatmapPlotPremiumProps } from "./HeatmapPlotPremium.js";
3
+ export type UseHeatmapPremiumProps = HeatmapPremiumProps;
4
+ export declare function useHeatmapPremiumProps(props: UseHeatmapPremiumProps): {
5
+ heatmapPlotPremiumProps: HeatmapPlotPremiumProps;
6
+ chartDataProviderPremiumProps: import("@mui/x-charts-pro/ChartDataProviderPro").ChartDataProviderProProps<"heatmap", import("@mui/x-charts-pro/Heatmap").HeatmapPluginSignatures>;
7
+ chartsWrapperProps: Omit<import("@mui/x-charts").ChartsWrapperProps, "children">;
8
+ clipPathProps: import("@mui/x-charts").ChartsClipPathProps;
9
+ clipPathGroupProps: {
10
+ clipPath: string;
11
+ };
12
+ overlayProps: import("@mui/x-charts/ChartsOverlay").ChartsOverlayProps;
13
+ chartsAxisProps: import("@mui/x-charts").ChartsAxisProps;
14
+ legendProps: import("@mui/x-charts").ChartsLegendProps | import("@mui/x-charts").ChartsLegendSlotExtension;
15
+ children: React.ReactNode;
16
+ };