@mui/x-charts 9.0.4 → 9.1.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 (157) hide show
  1. package/BarChart/BarChart.d.mts +1 -2
  2. package/BarChart/BarChart.d.ts +1 -2
  3. package/BarChart/BarChart.js +2 -913
  4. package/BarChart/BarChart.mjs +2 -913
  5. package/BarChart/seriesConfig/bar/seriesProcessor.js +2 -0
  6. package/BarChart/seriesConfig/bar/seriesProcessor.mjs +2 -0
  7. package/CHANGELOG.md +133 -0
  8. package/ChartsAxisHighlightValue/ChartsAxisHighlightValue.d.mts +55 -0
  9. package/ChartsAxisHighlightValue/ChartsAxisHighlightValue.d.ts +55 -0
  10. package/ChartsAxisHighlightValue/ChartsAxisHighlightValue.js +94 -0
  11. package/ChartsAxisHighlightValue/ChartsAxisHighlightValue.mjs +88 -0
  12. package/ChartsAxisHighlightValue/ChartsAxisHighlightValueItem.d.mts +13 -0
  13. package/ChartsAxisHighlightValue/ChartsAxisHighlightValueItem.d.ts +13 -0
  14. package/ChartsAxisHighlightValue/ChartsAxisHighlightValueItem.js +86 -0
  15. package/ChartsAxisHighlightValue/ChartsAxisHighlightValueItem.mjs +80 -0
  16. package/ChartsAxisHighlightValue/chartsAxisHighlightValueClasses.d.mts +18 -0
  17. package/ChartsAxisHighlightValue/chartsAxisHighlightValueClasses.d.ts +18 -0
  18. package/ChartsAxisHighlightValue/chartsAxisHighlightValueClasses.js +26 -0
  19. package/ChartsAxisHighlightValue/chartsAxisHighlightValueClasses.mjs +16 -0
  20. package/ChartsAxisHighlightValue/index.d.mts +1 -0
  21. package/ChartsAxisHighlightValue/index.d.ts +1 -0
  22. package/ChartsAxisHighlightValue/index.js +16 -0
  23. package/ChartsAxisHighlightValue/index.mjs +1 -0
  24. package/ChartsAxisHighlightValue/useAxisHighlightValue.d.mts +14 -0
  25. package/ChartsAxisHighlightValue/useAxisHighlightValue.d.ts +14 -0
  26. package/ChartsAxisHighlightValue/useAxisHighlightValue.js +130 -0
  27. package/ChartsAxisHighlightValue/useAxisHighlightValue.mjs +124 -0
  28. package/ChartsContainer/ChartsContainer.js +4 -1431
  29. package/ChartsContainer/ChartsContainer.mjs +4 -1431
  30. package/ChartsRadialAxisHighlight/ChartsRadialAxisHighlight.d.mts +15 -0
  31. package/ChartsRadialAxisHighlight/ChartsRadialAxisHighlight.d.ts +15 -0
  32. package/ChartsRadialAxisHighlight/ChartsRadialAxisHighlight.js +56 -0
  33. package/ChartsRadialAxisHighlight/ChartsRadialAxisHighlight.mjs +50 -0
  34. package/ChartsRadialAxisHighlight/ChartsRadialAxisHighlight.types.d.mts +6 -0
  35. package/ChartsRadialAxisHighlight/ChartsRadialAxisHighlight.types.d.ts +6 -0
  36. package/ChartsRadialAxisHighlight/ChartsRadialAxisHighlight.types.js +5 -0
  37. package/ChartsRadialAxisHighlight/ChartsRadialAxisHighlight.types.mjs +1 -0
  38. package/ChartsRadialAxisHighlight/ChartsRadialAxisHighlightPath.d.mts +11 -0
  39. package/ChartsRadialAxisHighlight/ChartsRadialAxisHighlightPath.d.ts +11 -0
  40. package/ChartsRadialAxisHighlight/ChartsRadialAxisHighlightPath.js +70 -0
  41. package/ChartsRadialAxisHighlight/ChartsRadialAxisHighlightPath.mjs +64 -0
  42. package/ChartsRadialAxisHighlight/ChartsRadiusAxisHighlight.d.mts +9 -0
  43. package/ChartsRadialAxisHighlight/ChartsRadiusAxisHighlight.d.ts +9 -0
  44. package/ChartsRadialAxisHighlight/ChartsRadiusAxisHighlight.js +87 -0
  45. package/ChartsRadialAxisHighlight/ChartsRadiusAxisHighlight.mjs +81 -0
  46. package/ChartsRadialAxisHighlight/ChartsRotationAxisHighlight.d.mts +9 -0
  47. package/ChartsRadialAxisHighlight/ChartsRotationAxisHighlight.d.ts +9 -0
  48. package/ChartsRadialAxisHighlight/ChartsRotationAxisHighlight.js +98 -0
  49. package/ChartsRadialAxisHighlight/ChartsRotationAxisHighlight.mjs +92 -0
  50. package/ChartsRadialAxisHighlight/chartsRadialAxisHighlightClasses.d.mts +7 -0
  51. package/ChartsRadialAxisHighlight/chartsRadialAxisHighlightClasses.d.ts +7 -0
  52. package/ChartsRadialAxisHighlight/chartsRadialAxisHighlightClasses.js +14 -0
  53. package/ChartsRadialAxisHighlight/chartsRadialAxisHighlightClasses.mjs +6 -0
  54. package/ChartsRadialAxisHighlight/index.d.mts +5 -0
  55. package/ChartsRadialAxisHighlight/index.d.ts +5 -0
  56. package/ChartsRadialAxisHighlight/index.js +47 -0
  57. package/ChartsRadialAxisHighlight/index.mjs +4 -0
  58. package/ChartsRadiusAxis/index.d.mts +3 -2
  59. package/ChartsRadiusAxis/index.d.ts +3 -2
  60. package/ChartsRadiusAxis/index.mjs +3 -1
  61. package/ChartsRotationAxis/index.d.mts +3 -2
  62. package/ChartsRotationAxis/index.d.ts +3 -2
  63. package/ChartsRotationAxis/index.mjs +3 -1
  64. package/ChartsXAxis/useAxisTicksProps.d.mts +162 -81
  65. package/ChartsXAxis/useAxisTicksProps.d.ts +162 -81
  66. package/ChartsYAxis/useAxisTicksProps.d.mts +162 -81
  67. package/ChartsYAxis/useAxisTicksProps.d.ts +162 -81
  68. package/LICENSE +2 -0
  69. package/LineChart/LineChart.js +2 -913
  70. package/LineChart/LineChart.mjs +2 -913
  71. package/LineChart/seriesConfig/curveEvaluation.d.mts +19 -1
  72. package/LineChart/seriesConfig/curveEvaluation.d.ts +19 -1
  73. package/LineChart/seriesConfig/curveEvaluation.js +132 -0
  74. package/LineChart/seriesConfig/curveEvaluation.mjs +131 -0
  75. package/LineChart/seriesConfig/getSeriesWithDefaultValues.js +2 -1
  76. package/LineChart/seriesConfig/getSeriesWithDefaultValues.mjs +2 -1
  77. package/LineChart/seriesConfig/seriesProcessor.js +4 -0
  78. package/LineChart/seriesConfig/seriesProcessor.mjs +4 -0
  79. package/LineChart/useAreaPlotData.js +4 -0
  80. package/LineChart/useAreaPlotData.mjs +4 -0
  81. package/LineChart/useLinePlotData.js +2 -0
  82. package/LineChart/useLinePlotData.mjs +2 -0
  83. package/LineChart/useMarkPlotData.js +2 -0
  84. package/LineChart/useMarkPlotData.mjs +2 -0
  85. package/ScatterChart/FocusedScatterMark.js +10 -24
  86. package/ScatterChart/FocusedScatterMark.mjs +10 -24
  87. package/ScatterChart/HighlightedScatterMark.d.mts +11 -0
  88. package/ScatterChart/HighlightedScatterMark.d.ts +11 -0
  89. package/ScatterChart/HighlightedScatterMark.js +68 -0
  90. package/ScatterChart/HighlightedScatterMark.mjs +62 -0
  91. package/ScatterChart/ScatterChart.d.mts +1 -2
  92. package/ScatterChart/ScatterChart.d.ts +1 -2
  93. package/ScatterChart/ScatterChart.js +2 -913
  94. package/ScatterChart/ScatterChart.mjs +2 -913
  95. package/ScatterChart/index.d.mts +1 -0
  96. package/ScatterChart/index.d.ts +1 -0
  97. package/ScatterChart/index.js +12 -0
  98. package/ScatterChart/index.mjs +1 -0
  99. package/ScatterChart/scatterClasses.d.mts +3 -1
  100. package/ScatterChart/scatterClasses.d.ts +3 -1
  101. package/ScatterChart/scatterClasses.js +3 -2
  102. package/ScatterChart/scatterClasses.mjs +3 -2
  103. package/ScatterChart/useScatterChartProps.js +3 -1
  104. package/ScatterChart/useScatterChartProps.mjs +3 -1
  105. package/ScatterChart/useScatterItemPosition.d.mts +16 -0
  106. package/ScatterChart/useScatterItemPosition.d.ts +16 -0
  107. package/ScatterChart/useScatterItemPosition.js +47 -0
  108. package/ScatterChart/useScatterItemPosition.mjs +41 -0
  109. package/SparkLineChart/SparkLineChart.js +2 -913
  110. package/SparkLineChart/SparkLineChart.mjs +2 -913
  111. package/hooks/useAxis.d.mts +3 -3
  112. package/hooks/useAxis.d.ts +3 -3
  113. package/hooks/useAxisSystem.d.mts +1 -1
  114. package/hooks/useAxisSystem.d.ts +1 -1
  115. package/hooks/useAxisSystem.js +1 -1
  116. package/hooks/useAxisSystem.mjs +1 -1
  117. package/index.d.mts +2 -0
  118. package/index.d.ts +2 -0
  119. package/index.js +25 -1
  120. package/index.mjs +3 -1
  121. package/internals/index.d.mts +5 -0
  122. package/internals/index.d.ts +5 -0
  123. package/internals/index.js +48 -0
  124. package/internals/index.mjs +5 -0
  125. package/internals/plugins/corePlugins/useChartInteractionListener/useChartInteractionListener.js +4 -2
  126. package/internals/plugins/corePlugins/useChartInteractionListener/useChartInteractionListener.mjs +4 -2
  127. package/internals/plugins/corePlugins/useChartSeriesConfig/types/polarExtremumGetter.types.d.mts +2 -2
  128. package/internals/plugins/corePlugins/useChartSeriesConfig/types/polarExtremumGetter.types.d.ts +2 -2
  129. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisRendering.selectors.d.mts +3 -2
  130. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisRendering.selectors.d.ts +3 -2
  131. package/internals/plugins/featurePlugins/useChartPolarAxis/computeAxisValue.d.mts +4 -7
  132. package/internals/plugins/featurePlugins/useChartPolarAxis/computeAxisValue.d.ts +4 -7
  133. package/internals/plugins/featurePlugins/useChartPolarAxis/defaultizeAxis.d.mts +3 -2
  134. package/internals/plugins/featurePlugins/useChartPolarAxis/defaultizeAxis.d.ts +3 -2
  135. package/internals/plugins/featurePlugins/useChartPolarAxis/getAxisExtremum.d.mts +2 -2
  136. package/internals/plugins/featurePlugins/useChartPolarAxis/getAxisExtremum.d.ts +2 -2
  137. package/internals/plugins/featurePlugins/useChartPolarAxis/getAxisIndex.d.mts +2 -2
  138. package/internals/plugins/featurePlugins/useChartPolarAxis/getAxisIndex.d.ts +2 -2
  139. package/internals/plugins/featurePlugins/useChartPolarAxis/getAxisIndex.js +20 -4
  140. package/internals/plugins/featurePlugins/useChartPolarAxis/getAxisIndex.mjs +20 -4
  141. package/internals/plugins/featurePlugins/useChartPolarAxis/index.d.mts +2 -1
  142. package/internals/plugins/featurePlugins/useChartPolarAxis/index.d.ts +2 -1
  143. package/internals/plugins/featurePlugins/useChartPolarAxis/index.js +12 -0
  144. package/internals/plugins/featurePlugins/useChartPolarAxis/index.mjs +2 -1
  145. package/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarAxis.selectors.d.mts +4 -4
  146. package/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarAxis.selectors.d.ts +4 -4
  147. package/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarAxis.types.d.mts +3 -3
  148. package/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarAxis.types.d.ts +3 -3
  149. package/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarInteraction.selectors.d.mts +1 -1
  150. package/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarInteraction.selectors.d.ts +1 -1
  151. package/models/axis.d.mts +28 -28
  152. package/models/axis.d.ts +28 -28
  153. package/models/axis.js +5 -1
  154. package/models/axis.mjs +5 -1
  155. package/models/seriesType/line.d.mts +6 -6
  156. package/models/seriesType/line.d.ts +6 -6
  157. package/package.json +31 -3
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ 'use client';
3
+
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
5
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
6
+ Object.defineProperty(exports, "__esModule", {
7
+ value: true
8
+ });
9
+ exports.HighlightedScatterMark = HighlightedScatterMark;
10
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
+ var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
12
+ var React = _interopRequireWildcard(require("react"));
13
+ var _clsx = _interopRequireDefault(require("clsx"));
14
+ var _styles = require("@mui/material/styles");
15
+ var _useChartHighlight = require("../internals/plugins/featurePlugins/useChartHighlight");
16
+ var _useChartDimensions = require("../internals/plugins/corePlugins/useChartDimensions");
17
+ var _useStore = require("../internals/store/useStore");
18
+ var _scatterClasses = require("./scatterClasses");
19
+ var _useScatterItemPosition = require("./useScatterItemPosition");
20
+ var _jsxRuntime = require("react/jsx-runtime");
21
+ const _excluded = ["className"];
22
+ /**
23
+ * Draws an SVG ring around the currently highlighted scatter point.
24
+ * Used by renderers where the point itself is rasterized off the SVG tree
25
+ * (for example WebGL or `svg-batch`), so the highlight has to be drawn in SVG
26
+ * and positioned via the same axis scales the underlying renderer uses.
27
+ */
28
+ function HighlightedScatterMark(_ref) {
29
+ let {
30
+ className
31
+ } = _ref,
32
+ props = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded);
33
+ const theme = (0, _styles.useTheme)();
34
+ const store = (0, _useStore.useStore)();
35
+ const highlightedItem = store.use(_useChartHighlight.selectorChartsHighlightedItem);
36
+ const drawingArea = store.use(_useChartDimensions.selectorChartDrawingArea);
37
+ const classes = (0, _scatterClasses.useUtilityClasses)();
38
+ const isHighlightedScatter = highlightedItem?.type === 'scatter' && highlightedItem.dataIndex !== undefined;
39
+ const resolved = (0, _useScatterItemPosition.useScatterItemPosition)(isHighlightedScatter ? {
40
+ seriesId: highlightedItem.seriesId,
41
+ dataIndex: highlightedItem.dataIndex
42
+ } : null);
43
+ if (!resolved) {
44
+ return null;
45
+ }
46
+ const {
47
+ cx,
48
+ cy,
49
+ series
50
+ } = resolved;
51
+
52
+ // Allow a markerSize margin around the drawing area so the highlight ring stays
53
+ // visible at the edges (e.g. during keyboard navigation) without needing a clip-path.
54
+ const margin = series.markerSize;
55
+ if (cx < drawingArea.left - margin || cx > drawingArea.left + drawingArea.width + margin || cy < drawingArea.top - margin || cy > drawingArea.top + drawingArea.height + margin) {
56
+ return null;
57
+ }
58
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("circle", (0, _extends2.default)({
59
+ className: (0, _clsx.default)(classes.highlightedMark, className),
60
+ fill: "none",
61
+ stroke: (theme.vars ?? theme).palette.text.primary,
62
+ strokeWidth: 1,
63
+ cx: cx,
64
+ cy: cy,
65
+ r: series.markerSize,
66
+ pointerEvents: "none"
67
+ }, props));
68
+ }
@@ -0,0 +1,62 @@
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 = ["className"];
6
+ import * as React from 'react';
7
+ import clsx from 'clsx';
8
+ import { useTheme } from '@mui/material/styles';
9
+ import { selectorChartsHighlightedItem } from "../internals/plugins/featurePlugins/useChartHighlight/index.mjs";
10
+ import { selectorChartDrawingArea } from "../internals/plugins/corePlugins/useChartDimensions/index.mjs";
11
+ import { useStore } from "../internals/store/useStore.mjs";
12
+ import { useUtilityClasses } from "./scatterClasses.mjs";
13
+ import { useScatterItemPosition } from "./useScatterItemPosition.mjs";
14
+
15
+ /**
16
+ * Draws an SVG ring around the currently highlighted scatter point.
17
+ * Used by renderers where the point itself is rasterized off the SVG tree
18
+ * (for example WebGL or `svg-batch`), so the highlight has to be drawn in SVG
19
+ * and positioned via the same axis scales the underlying renderer uses.
20
+ */
21
+ import { jsx as _jsx } from "react/jsx-runtime";
22
+ export function HighlightedScatterMark(_ref) {
23
+ let {
24
+ className
25
+ } = _ref,
26
+ props = _objectWithoutPropertiesLoose(_ref, _excluded);
27
+ const theme = useTheme();
28
+ const store = useStore();
29
+ const highlightedItem = store.use(selectorChartsHighlightedItem);
30
+ const drawingArea = store.use(selectorChartDrawingArea);
31
+ const classes = useUtilityClasses();
32
+ const isHighlightedScatter = highlightedItem?.type === 'scatter' && highlightedItem.dataIndex !== undefined;
33
+ const resolved = useScatterItemPosition(isHighlightedScatter ? {
34
+ seriesId: highlightedItem.seriesId,
35
+ dataIndex: highlightedItem.dataIndex
36
+ } : null);
37
+ if (!resolved) {
38
+ return null;
39
+ }
40
+ const {
41
+ cx,
42
+ cy,
43
+ series
44
+ } = resolved;
45
+
46
+ // Allow a markerSize margin around the drawing area so the highlight ring stays
47
+ // visible at the edges (e.g. during keyboard navigation) without needing a clip-path.
48
+ const margin = series.markerSize;
49
+ if (cx < drawingArea.left - margin || cx > drawingArea.left + drawingArea.width + margin || cy < drawingArea.top - margin || cy > drawingArea.top + drawingArea.height + margin) {
50
+ return null;
51
+ }
52
+ return /*#__PURE__*/_jsx("circle", _extends({
53
+ className: clsx(classes.highlightedMark, className),
54
+ fill: "none",
55
+ stroke: (theme.vars ?? theme).palette.text.primary,
56
+ strokeWidth: 1,
57
+ cx: cx,
58
+ cy: cy,
59
+ r: series.markerSize,
60
+ pointerEvents: "none"
61
+ }, props));
62
+ }
@@ -4,7 +4,6 @@ import { type ChartsToolbarSlotProps, type ChartsToolbarSlots } from "../Toolbar
4
4
  import { type ChartsSlots, type ChartsSlotProps } from "../internals/material/index.mjs";
5
5
  import { type ScatterPlotProps, type ScatterPlotSlotProps, type ScatterPlotSlots } from "./ScatterPlot.mjs";
6
6
  import { type ChartsContainerProps } from "../ChartsContainer/index.mjs";
7
- import { type ChartsAxisProps } from "../ChartsAxis/index.mjs";
8
7
  import { type ScatterSeriesType } from "../models/seriesType/scatter.mjs";
9
8
  import { type ChartsTooltipProps } from "../ChartsTooltip/index.mjs";
10
9
  import { type ChartsTooltipSlots, type ChartsTooltipSlotProps } from "../ChartsTooltip/ChartTooltip.types.mjs";
@@ -24,7 +23,7 @@ export interface ScatterChartSlotProps extends ChartsAxisSlotProps, ScatterPlotS
24
23
  tooltip?: Partial<ChartsTooltipProps<'item' | 'none'>>;
25
24
  }
26
25
  export type ScatterSeries = MakeOptional<ScatterSeriesType, 'type'>;
27
- export interface ScatterChartProps extends Omit<ChartsContainerProps<'scatter', ScatterChartPluginSignatures>, 'series' | 'plugins' | 'onItemClick' | 'highlightedAxis' | 'onHighlightedAxisChange'>, Omit<ChartsAxisProps, 'slots' | 'slotProps'>, Omit<ChartsOverlayProps, 'slots' | 'slotProps'>, Pick<ScatterPlotProps, 'renderer'> {
26
+ export interface ScatterChartProps extends Omit<ChartsContainerProps<'scatter', ScatterChartPluginSignatures>, 'series' | 'plugins' | 'onItemClick' | 'highlightedAxis' | 'onHighlightedAxisChange'>, Omit<ChartsOverlayProps, 'slots' | 'slotProps'>, Pick<ScatterPlotProps, 'renderer'> {
28
27
  /**
29
28
  * The series to display in the scatter chart.
30
29
  * An array of [[ScatterSeries]] objects.
@@ -4,7 +4,6 @@ import { type ChartsToolbarSlotProps, type ChartsToolbarSlots } from "../Toolbar
4
4
  import { type ChartsSlots, type ChartsSlotProps } from "../internals/material/index.js";
5
5
  import { type ScatterPlotProps, type ScatterPlotSlotProps, type ScatterPlotSlots } from "./ScatterPlot.js";
6
6
  import { type ChartsContainerProps } from "../ChartsContainer/index.js";
7
- import { type ChartsAxisProps } from "../ChartsAxis/index.js";
8
7
  import { type ScatterSeriesType } from "../models/seriesType/scatter.js";
9
8
  import { type ChartsTooltipProps } from "../ChartsTooltip/index.js";
10
9
  import { type ChartsTooltipSlots, type ChartsTooltipSlotProps } from "../ChartsTooltip/ChartTooltip.types.js";
@@ -24,7 +23,7 @@ export interface ScatterChartSlotProps extends ChartsAxisSlotProps, ScatterPlotS
24
23
  tooltip?: Partial<ChartsTooltipProps<'item' | 'none'>>;
25
24
  }
26
25
  export type ScatterSeries = MakeOptional<ScatterSeriesType, 'type'>;
27
- export interface ScatterChartProps extends Omit<ChartsContainerProps<'scatter', ScatterChartPluginSignatures>, 'series' | 'plugins' | 'onItemClick' | 'highlightedAxis' | 'onHighlightedAxisChange'>, Omit<ChartsAxisProps, 'slots' | 'slotProps'>, Omit<ChartsOverlayProps, 'slots' | 'slotProps'>, Pick<ScatterPlotProps, 'renderer'> {
26
+ export interface ScatterChartProps extends Omit<ChartsContainerProps<'scatter', ScatterChartPluginSignatures>, 'series' | 'plugins' | 'onItemClick' | 'highlightedAxis' | 'onHighlightedAxisChange'>, Omit<ChartsOverlayProps, 'slots' | 'slotProps'>, Pick<ScatterPlotProps, 'renderer'> {
28
27
  /**
29
28
  * The series to display in the scatter chart.
30
29
  * An array of [[ScatterSeries]] objects.