@mui/x-charts-premium 9.3.0 → 9.5.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 (212) hide show
  1. package/BarChartPremium/BarChartPremium.js +35 -5
  2. package/BarChartPremium/BarChartPremium.mjs +35 -5
  3. package/BarChartPremium/RangeBar/RangeBarPlot.d.mts +10 -0
  4. package/BarChartPremium/RangeBar/RangeBarPlot.d.ts +10 -0
  5. package/BarChartPremium/RangeBar/RangeBarPlot.js +59 -2
  6. package/BarChartPremium/RangeBar/RangeBarPlot.mjs +59 -2
  7. package/BarChartPremium/RangeBar/RangeBarWebGLPlot.d.mts +10 -0
  8. package/BarChartPremium/RangeBar/RangeBarWebGLPlot.d.ts +10 -0
  9. package/BarChartPremium/RangeBar/RangeBarWebGLPlot.js +82 -0
  10. package/BarChartPremium/RangeBar/RangeBarWebGLPlot.mjs +76 -0
  11. package/BarChartPremium/RangeBar/seriesConfig/extrema.js +3 -0
  12. package/BarChartPremium/RangeBar/seriesConfig/extrema.mjs +3 -0
  13. package/BarChartPremium/RangeBar/seriesConfig/seriesProcessor.js +2 -2
  14. package/BarChartPremium/RangeBar/seriesConfig/seriesProcessor.mjs +2 -2
  15. package/BarChartPremium/useBarChartPremiumProps.js +2 -1
  16. package/BarChartPremium/useBarChartPremiumProps.mjs +2 -1
  17. package/BarChartPremium/webgl/useBarWebGLPlotData.d.mts +2 -7
  18. package/BarChartPremium/webgl/useBarWebGLPlotData.d.ts +2 -7
  19. package/BarChartPremium/webgl/useBarWebGLPlotData.js +4 -151
  20. package/BarChartPremium/webgl/useBarWebGLPlotData.mjs +4 -150
  21. package/BarChartPremium/webgl/useWebGLBarLikePlotData.d.mts +40 -0
  22. package/BarChartPremium/webgl/useWebGLBarLikePlotData.d.ts +40 -0
  23. package/BarChartPremium/webgl/useWebGLBarLikePlotData.js +228 -0
  24. package/BarChartPremium/webgl/useWebGLBarLikePlotData.mjs +222 -0
  25. package/CHANGELOG.md +296 -0
  26. package/CandlestickChart/CandlestickChart.js +11 -2
  27. package/CandlestickChart/CandlestickChart.mjs +11 -2
  28. package/CandlestickChart/index.d.mts +11 -2
  29. package/CandlestickChart/index.d.ts +11 -2
  30. package/CandlestickChart/index.js +15 -3
  31. package/CandlestickChart/index.mjs +16 -2
  32. package/CandlestickChart/seriesConfig/extrema.js +3 -0
  33. package/CandlestickChart/seriesConfig/extrema.mjs +3 -0
  34. package/CandlestickChart/seriesConfig/seriesProcessor.js +2 -2
  35. package/CandlestickChart/seriesConfig/seriesProcessor.mjs +2 -2
  36. package/ChartsDataProviderPremium/ChartsDataProviderPremium.js +2 -2
  37. package/ChartsDataProviderPremium/ChartsDataProviderPremium.mjs +2 -2
  38. package/ChartsGeoDataProviderPremium/ChartsGeoDataProviderPremium.d.mts +35 -0
  39. package/ChartsGeoDataProviderPremium/ChartsGeoDataProviderPremium.d.ts +35 -0
  40. package/ChartsGeoDataProviderPremium/ChartsGeoDataProviderPremium.js +125 -0
  41. package/ChartsGeoDataProviderPremium/ChartsGeoDataProviderPremium.mjs +119 -0
  42. package/ChartsGeoDataProviderPremium/ChartsGeoDataProviderPremium.plugins.d.mts +5 -0
  43. package/ChartsGeoDataProviderPremium/ChartsGeoDataProviderPremium.plugins.d.ts +5 -0
  44. package/ChartsGeoDataProviderPremium/ChartsGeoDataProviderPremium.plugins.js +10 -0
  45. package/ChartsGeoDataProviderPremium/ChartsGeoDataProviderPremium.plugins.mjs +4 -0
  46. package/ChartsGeoDataProviderPremium/index.d.mts +3 -0
  47. package/ChartsGeoDataProviderPremium/index.d.ts +3 -0
  48. package/ChartsGeoDataProviderPremium/index.js +20 -0
  49. package/ChartsGeoDataProviderPremium/index.mjs +3 -0
  50. package/ChartsGeoDataProviderPremium/useChartsGeoDataProviderPremiumProps.d.mts +10 -0
  51. package/ChartsGeoDataProviderPremium/useChartsGeoDataProviderPremiumProps.d.ts +10 -0
  52. package/ChartsGeoDataProviderPremium/useChartsGeoDataProviderPremiumProps.js +49 -0
  53. package/ChartsGeoDataProviderPremium/useChartsGeoDataProviderPremiumProps.mjs +42 -0
  54. package/ChartsRadialDataProviderPremium/ChartsRadialDataProviderPremium.js +2 -2
  55. package/ChartsRadialDataProviderPremium/ChartsRadialDataProviderPremium.mjs +2 -2
  56. package/HeatmapPremium/HeatmapPremium.js +32 -2
  57. package/HeatmapPremium/HeatmapPremium.mjs +32 -2
  58. package/Map/FocusedMapShape.d.mts +4 -0
  59. package/Map/FocusedMapShape.d.ts +4 -0
  60. package/Map/FocusedMapShape.js +66 -0
  61. package/Map/FocusedMapShape.mjs +60 -0
  62. package/Map/GeoDataPlot.d.mts +26 -0
  63. package/Map/GeoDataPlot.d.ts +26 -0
  64. package/Map/GeoDataPlot.js +65 -0
  65. package/Map/GeoDataPlot.mjs +60 -0
  66. package/Map/Graticule.d.mts +1 -0
  67. package/Map/Graticule.d.ts +1 -0
  68. package/Map/Graticule.js +30 -0
  69. package/Map/Graticule.mjs +24 -0
  70. package/Map/MapShape.d.mts +10 -0
  71. package/Map/MapShape.d.ts +10 -0
  72. package/Map/MapShape.js +55 -0
  73. package/Map/MapShape.mjs +49 -0
  74. package/Map/MapShapePlot.d.mts +21 -0
  75. package/Map/MapShapePlot.d.ts +21 -0
  76. package/Map/MapShapePlot.js +86 -0
  77. package/Map/MapShapePlot.mjs +80 -0
  78. package/Map/index.d.mts +7 -0
  79. package/Map/index.d.ts +7 -0
  80. package/Map/index.js +60 -0
  81. package/Map/index.mjs +8 -0
  82. package/Map/seriesConfig/descriptionGetter.d.mts +3 -0
  83. package/Map/seriesConfig/descriptionGetter.d.ts +3 -0
  84. package/Map/seriesConfig/descriptionGetter.js +19 -0
  85. package/Map/seriesConfig/descriptionGetter.mjs +13 -0
  86. package/Map/seriesConfig/getColor.d.mts +3 -0
  87. package/Map/seriesConfig/getColor.d.ts +3 -0
  88. package/Map/seriesConfig/getColor.js +35 -0
  89. package/Map/seriesConfig/getColor.mjs +29 -0
  90. package/Map/seriesConfig/getSeriesWithDefaultValues.d.mts +3 -0
  91. package/Map/seriesConfig/getSeriesWithDefaultValues.d.ts +3 -0
  92. package/Map/seriesConfig/getSeriesWithDefaultValues.js +15 -0
  93. package/Map/seriesConfig/getSeriesWithDefaultValues.mjs +8 -0
  94. package/Map/seriesConfig/index.d.mts +2 -0
  95. package/Map/seriesConfig/index.d.ts +2 -0
  96. package/Map/seriesConfig/index.js +28 -0
  97. package/Map/seriesConfig/index.mjs +21 -0
  98. package/Map/seriesConfig/keyboardFocusHandler.d.mts +9 -0
  99. package/Map/seriesConfig/keyboardFocusHandler.d.ts +9 -0
  100. package/Map/seriesConfig/keyboardFocusHandler.js +19 -0
  101. package/Map/seriesConfig/keyboardFocusHandler.mjs +13 -0
  102. package/Map/seriesConfig/legend.d.mts +3 -0
  103. package/Map/seriesConfig/legend.d.ts +3 -0
  104. package/Map/seriesConfig/legend.js +28 -0
  105. package/Map/seriesConfig/legend.mjs +22 -0
  106. package/Map/seriesConfig/seriesProcessor.d.mts +3 -0
  107. package/Map/seriesConfig/seriesProcessor.d.ts +3 -0
  108. package/Map/seriesConfig/seriesProcessor.js +66 -0
  109. package/Map/seriesConfig/seriesProcessor.mjs +59 -0
  110. package/Map/seriesConfig/tooltip.d.mts +3 -0
  111. package/Map/seriesConfig/tooltip.d.ts +3 -0
  112. package/Map/seriesConfig/tooltip.js +33 -0
  113. package/Map/seriesConfig/tooltip.mjs +27 -0
  114. package/RadialBarChart/RadialBarChart.d.mts +1 -1
  115. package/RadialBarChart/RadialBarChart.d.ts +1 -1
  116. package/RadialBarChart/RadialBarChart.js +2 -2
  117. package/RadialBarChart/RadialBarChart.mjs +1 -1
  118. package/RadialBarChart/index.d.mts +4 -0
  119. package/RadialBarChart/index.d.ts +4 -0
  120. package/RadialBarChart/index.js +8 -1
  121. package/RadialBarChart/index.mjs +6 -0
  122. package/RadialLineChart/RadialLineChart.d.mts +1 -1
  123. package/RadialLineChart/RadialLineChart.d.ts +1 -1
  124. package/RadialLineChart/RadialLineChart.js +4 -4
  125. package/RadialLineChart/RadialLineChart.mjs +5 -5
  126. package/RadialLineChart/RadialLineHighlightPlot.d.mts +3 -2
  127. package/RadialLineChart/RadialLineHighlightPlot.d.ts +3 -2
  128. package/RadialLineChart/index.d.mts +4 -0
  129. package/RadialLineChart/index.d.ts +4 -0
  130. package/RadialLineChart/index.js +16 -1
  131. package/RadialLineChart/index.mjs +6 -0
  132. package/ScatterChartPremium/ScatterChartPremium.d.mts +2 -1
  133. package/ScatterChartPremium/ScatterChartPremium.d.ts +2 -1
  134. package/ScatterChartPremium/ScatterChartPremium.js +36 -4
  135. package/ScatterChartPremium/ScatterChartPremium.mjs +37 -5
  136. package/ScatterChartPremium/ScatterChartPremium.plugins.d.mts +1 -1
  137. package/ScatterChartPremium/ScatterChartPremium.plugins.d.ts +1 -1
  138. package/ScatterChartPremium/ScatterPlotPremium.d.mts +2 -2
  139. package/ScatterChartPremium/ScatterPlotPremium.d.ts +2 -2
  140. package/hooks/index.d.mts +4 -1
  141. package/hooks/index.d.ts +4 -1
  142. package/hooks/index.js +33 -0
  143. package/hooks/index.mjs +4 -1
  144. package/hooks/useGeoData.d.mts +6 -0
  145. package/hooks/useGeoData.d.ts +6 -0
  146. package/hooks/useGeoData.js +17 -0
  147. package/hooks/useGeoData.mjs +13 -0
  148. package/hooks/useGeoFeatureIndexesByName.d.mts +7 -0
  149. package/hooks/useGeoFeatureIndexesByName.d.ts +7 -0
  150. package/hooks/useGeoFeatureIndexesByName.js +19 -0
  151. package/hooks/useGeoFeatureIndexesByName.mjs +15 -0
  152. package/hooks/useGeoPath.d.mts +6 -0
  153. package/hooks/useGeoPath.d.ts +6 -0
  154. package/hooks/useGeoPath.js +17 -0
  155. package/hooks/useGeoPath.mjs +13 -0
  156. package/hooks/useMapShapeSeries.d.mts +34 -0
  157. package/hooks/useMapShapeSeries.d.ts +34 -0
  158. package/hooks/useMapShapeSeries.js +45 -0
  159. package/hooks/useMapShapeSeries.mjs +40 -0
  160. package/index.d.mts +3 -1
  161. package/index.d.ts +3 -1
  162. package/index.js +32 -1
  163. package/index.mjs +4 -2
  164. package/internals/plugins/allPlugins.d.mts +5 -5
  165. package/internals/plugins/allPlugins.d.ts +5 -5
  166. package/internals/plugins/allPlugins.js +2 -2
  167. package/internals/plugins/allPlugins.mjs +3 -3
  168. package/internals/plugins/useGeoProjection/index.d.mts +3 -0
  169. package/internals/plugins/useGeoProjection/index.d.ts +3 -0
  170. package/internals/plugins/useGeoProjection/index.js +38 -0
  171. package/internals/plugins/useGeoProjection/index.mjs +3 -0
  172. package/internals/plugins/useGeoProjection/useGeoProjection.d.mts +3 -0
  173. package/internals/plugins/useGeoProjection/useGeoProjection.d.ts +3 -0
  174. package/internals/plugins/useGeoProjection/useGeoProjection.js +58 -0
  175. package/internals/plugins/useGeoProjection/useGeoProjection.mjs +50 -0
  176. package/internals/plugins/useGeoProjection/useGeoProjection.selectors.d.mts +39 -0
  177. package/internals/plugins/useGeoProjection/useGeoProjection.selectors.d.ts +39 -0
  178. package/internals/plugins/useGeoProjection/useGeoProjection.selectors.js +135 -0
  179. package/internals/plugins/useGeoProjection/useGeoProjection.selectors.mjs +128 -0
  180. package/internals/plugins/useGeoProjection/useGeoProjection.types.d.mts +55 -0
  181. package/internals/plugins/useGeoProjection/useGeoProjection.types.d.ts +55 -0
  182. package/internals/plugins/useGeoProjection/useGeoProjection.types.js +5 -0
  183. package/internals/plugins/useGeoProjection/useGeoProjection.types.mjs +1 -0
  184. package/models/chartsSlotsComponentsPropsPremium.d.mts +1 -0
  185. package/models/chartsSlotsComponentsPropsPremium.d.ts +1 -0
  186. package/models/chartsSlotsComponentsPropsPremium.js +5 -0
  187. package/models/chartsSlotsComponentsPropsPremium.mjs +1 -0
  188. package/models/index.d.mts +2 -1
  189. package/models/index.d.ts +2 -1
  190. package/models/index.js +11 -0
  191. package/models/index.mjs +2 -1
  192. package/models/seriesType/index.d.mts +2 -1
  193. package/models/seriesType/index.d.ts +2 -1
  194. package/models/seriesType/index.js +11 -0
  195. package/models/seriesType/index.mjs +2 -1
  196. package/models/seriesType/mapShape.d.mts +105 -0
  197. package/models/seriesType/mapShape.d.ts +105 -0
  198. package/models/seriesType/mapShape.js +5 -0
  199. package/models/seriesType/mapShape.mjs +1 -0
  200. package/models/seriesType/ohlc.d.mts +1 -1
  201. package/models/seriesType/ohlc.d.ts +1 -1
  202. package/models/seriesType/radialBar.d.mts +1 -1
  203. package/models/seriesType/radialBar.d.ts +1 -1
  204. package/models/seriesType/radialLine.d.mts +1 -1
  205. package/models/seriesType/radialLine.d.ts +1 -1
  206. package/models/seriesType/rangeBar.d.mts +1 -1
  207. package/models/seriesType/rangeBar.d.ts +1 -1
  208. package/package.json +34 -6
  209. package/typeOverloads/modules.d.mts +16 -1
  210. package/typeOverloads/modules.d.ts +16 -1
  211. package/utils/webgl/useWebGLResizeObserver.js +3 -3
  212. package/utils/webgl/useWebGLResizeObserver.mjs +2 -2
@@ -0,0 +1,222 @@
1
+ 'use client';
2
+
3
+ import * as React from 'react';
4
+ import { selectorChartsHighlightStateCallback, useStore } from '@mui/x-charts/internals';
5
+ import { parseColor } from "../../utils/webgl/parseColor.mjs";
6
+ const EMPTY_FLOAT32 = new Float32Array(0);
7
+ const EMPTY_UINT8 = new Uint8Array(0);
8
+ const EMPTY_DATA = {
9
+ centers: EMPTY_FLOAT32,
10
+ halfSizes: EMPTY_FLOAT32,
11
+ colors: EMPTY_UINT8,
12
+ cornerRadii: EMPTY_FLOAT32,
13
+ count: 0
14
+ };
15
+ function ensureCapacity(pool, maxCount) {
16
+ if (pool !== null && pool.colors.length >= maxCount * 4) {
17
+ return pool;
18
+ }
19
+ return {
20
+ centers: new Float32Array(maxCount * 2),
21
+ halfSizes: new Float32Array(maxCount * 2),
22
+ colors: new Uint8Array(maxCount * 4),
23
+ cornerRadii: new Float32Array(maxCount * 4)
24
+ };
25
+ }
26
+
27
+ // Mirrors SVG highlight styling: highlighted -> CSS `brightness(120%)`,
28
+ // faded -> opacity 0.3. Baking these into the per-bar color array means we
29
+ // don't need a separate per-instance attribute on the GPU side.
30
+ const HIGHLIGHTED_BRIGHTNESS = 1.2;
31
+ const FADED_OPACITY = 0.3;
32
+ // Gaps below this (CSS px) get filled by expanding band half-size to half the
33
+ // step, avoiding sub-pixel hairlines from the rasterizer.
34
+ const GAP_FILL_THRESHOLD_PX = 1;
35
+ // Floor to keep thin quads from falling between pixel centers and getting
36
+ // culled at extreme zoom-out.
37
+ const MIN_BAND_HALF_SIZE_PX = 0.5;
38
+ function setCornerRadii(radius, side, fullRounded, target, offset) {
39
+ // CSS order: top-left, top-right, bottom-right, bottom-left.
40
+ let tl = 0;
41
+ let tr = 0;
42
+ let br = 0;
43
+ let bl = 0;
44
+ if (radius > 0) {
45
+ if (fullRounded) {
46
+ tl = radius;
47
+ tr = radius;
48
+ br = radius;
49
+ bl = radius;
50
+ } else if (side === 'top') {
51
+ tl = radius;
52
+ tr = radius;
53
+ } else if (side === 'bottom') {
54
+ br = radius;
55
+ bl = radius;
56
+ } else if (side === 'left') {
57
+ tl = radius;
58
+ bl = radius;
59
+ } else if (side === 'right') {
60
+ tr = radius;
61
+ br = radius;
62
+ }
63
+ }
64
+ target[offset] = tl;
65
+ target[offset + 1] = tr;
66
+ target[offset + 2] = br;
67
+ target[offset + 3] = bl;
68
+ }
69
+ export function useWebGLBarLikePlotData(drawingArea, completedData, borderRadius, options) {
70
+ const store = useStore();
71
+ const getHighlightState = store.use(selectorChartsHighlightStateCallback);
72
+ const poolRef = React.useRef(null);
73
+ const {
74
+ highlightType,
75
+ fullRoundedCorners = false
76
+ } = options;
77
+ return React.useMemo(() => {
78
+ let maxCount = 0;
79
+ for (let s = 0; s < completedData.length; s += 1) {
80
+ maxCount += completedData[s].data.length;
81
+ }
82
+ if (maxCount === 0) {
83
+ return EMPTY_DATA;
84
+ }
85
+ const pool = ensureCapacity(poolRef.current, maxCount);
86
+ poolRef.current = pool;
87
+
88
+ // Hoist invariants out of the hot loop.
89
+ const {
90
+ centers,
91
+ halfSizes,
92
+ colors,
93
+ cornerRadii
94
+ } = pool;
95
+ const drawingAreaLeft = drawingArea.left;
96
+ const drawingAreaTop = drawingArea.top;
97
+ let cursor = 0;
98
+ for (let seriesIndex = 0; seriesIndex < completedData.length; seriesIndex += 1) {
99
+ const processed = completedData[seriesIndex];
100
+ const seriesId = processed.seriesId;
101
+ const data = processed.data;
102
+ const dataLength = data.length;
103
+ const bandIsY = processed.layout === 'horizontal';
104
+
105
+ // `hidden` is series-level (mirrored onto every bar by useBarPlotData);
106
+ // peek at the first bar to skip the whole series.
107
+ if (dataLength === 0 || data[0].hidden) {
108
+ continue;
109
+ }
110
+
111
+ // Probe 1 = bar size; probe 2 = center-to-center step. Track dataIndex
112
+ // so null bars between probes don't inflate the step.
113
+ let probe = null;
114
+ let probeIndex = 0;
115
+ let probe2 = null;
116
+ let probe2Index = 0;
117
+ for (let i = 0; i < dataLength; i += 1) {
118
+ const candidate = data[i];
119
+ if (candidate.value != null && candidate.width > 0 && candidate.height > 0) {
120
+ if (probe === null) {
121
+ probe = candidate;
122
+ probeIndex = i;
123
+ } else {
124
+ probe2 = candidate;
125
+ probe2Index = i;
126
+ break;
127
+ }
128
+ }
129
+ }
130
+ if (probe === null) {
131
+ continue;
132
+ }
133
+
134
+ // Round to whole pixels so the rendered half-size stays stable across
135
+ // zoom steps; sub-pixel jitter causes an "accordion" effect.
136
+ const rawBarSize = bandIsY ? probe.height : probe.width;
137
+ const barSize = Math.round(rawBarSize);
138
+ let step;
139
+ if (probe2 === null) {
140
+ step = barSize;
141
+ } else {
142
+ const indexGap = probe2Index - probeIndex;
143
+ const span = bandIsY ? probe2.y - probe.y : probe2.x - probe.x;
144
+ step = span / indexGap;
145
+ }
146
+ // Use the linear lower bound of the gap (`step - rawBarSize - 0.5`)
147
+ // rather than `step - barSize`: rounding makes the discrete gap jump by
148
+ // 1px at zoom boundaries, flipping `fillGap` and causing visible
149
+ // oscillation. The lower bound is continuous in zoom.
150
+ const gapLowerBound = step - rawBarSize - 0.5;
151
+ const fillGap = gapLowerBound > 0 && gapLowerBound < GAP_FILL_THRESHOLD_PX;
152
+ let bandHalfRender = fillGap ? step * 0.5 : barSize * 0.5;
153
+ if (bandHalfRender < MIN_BAND_HALF_SIZE_PX) {
154
+ bandHalfRender = MIN_BAND_HALF_SIZE_PX;
155
+ }
156
+ for (let i = 0; i < dataLength; i += 1) {
157
+ const bar = data[i];
158
+ const value = bar.value;
159
+ if (value == null) {
160
+ continue;
161
+ }
162
+ const w = bar.width;
163
+ const h = bar.height;
164
+ if (w <= 0 || h <= 0) {
165
+ continue;
166
+ }
167
+ const halfW = w * 0.5;
168
+ const halfH = h * 0.5;
169
+ // Value axis stays exact; band axis uses the per-series override.
170
+ const renderHalfW = bandIsY ? halfW : bandHalfRender;
171
+ const renderHalfH = bandIsY ? bandHalfRender : halfH;
172
+ const c2 = cursor * 2;
173
+ centers[c2] = bar.x + halfW - drawingAreaLeft;
174
+ centers[c2 + 1] = bar.y + halfH - drawingAreaTop;
175
+ halfSizes[c2] = renderHalfW;
176
+ halfSizes[c2 + 1] = renderHalfH;
177
+ const rgba = parseColor(bar.color);
178
+ const c4 = cursor * 4;
179
+ let r = rgba[0];
180
+ let g = rgba[1];
181
+ let b = rgba[2];
182
+ let a = rgba[3];
183
+ const highlightState = getHighlightState({
184
+ type: highlightType,
185
+ seriesId,
186
+ dataIndex: bar.dataIndex
187
+ });
188
+ if (highlightState === 'highlighted') {
189
+ r = Math.min(255, r * HIGHLIGHTED_BRIGHTNESS);
190
+ g = Math.min(255, g * HIGHLIGHTED_BRIGHTNESS);
191
+ b = Math.min(255, b * HIGHLIGHTED_BRIGHTNESS);
192
+ } else if (highlightState === 'faded') {
193
+ a *= FADED_OPACITY;
194
+ }
195
+ colors[c4] = r;
196
+ colors[c4 + 1] = g;
197
+ colors[c4 + 2] = b;
198
+ colors[c4 + 3] = a;
199
+ const effectiveRadius = Math.min(borderRadius, halfW, halfH);
200
+ setCornerRadii(effectiveRadius, bar.borderRadiusSide, fullRoundedCorners, cornerRadii, c4);
201
+ cursor += 1;
202
+ }
203
+ }
204
+ if (cursor === 0) {
205
+ return EMPTY_DATA;
206
+ }
207
+
208
+ // Return fresh subarray views over the pooled buffers. New view refs each call
209
+ // (so React memoisation is correct and consumers can detect a change), but no
210
+ // new bytes allocated on the JS heap. The GPU upload short-circuits via the
211
+ // `lastUploaded === data` ref check on the program side when we hand the
212
+ // exact same view back across renders -- it won't fire here since each call
213
+ // produces a new view, but the contents have changed anyway in that case.
214
+ return {
215
+ centers: new Float32Array(centers.buffer, centers.byteOffset, cursor * 2),
216
+ halfSizes: new Float32Array(halfSizes.buffer, halfSizes.byteOffset, cursor * 2),
217
+ colors: new Uint8Array(colors.buffer, colors.byteOffset, cursor * 4),
218
+ cornerRadii: new Float32Array(cornerRadii.buffer, cornerRadii.byteOffset, cursor * 4),
219
+ count: cursor
220
+ };
221
+ }, [borderRadius, completedData, drawingArea.left, drawingArea.top, getHighlightState, highlightType, fullRoundedCorners]);
222
+ }
package/CHANGELOG.md CHANGED
@@ -1,5 +1,301 @@
1
1
  # Changelog
2
2
 
3
+ ## 9.5.0
4
+
5
+ _Jun 11, 2026_
6
+
7
+ We'd like to extend a big thank you to the 9 contributors who made this release possible. Here are some highlights ✨:
8
+
9
+ - 🎁 New [`multiSelect` column type for Data Grid Pro](https://mui.com/x/react-data-grid/column-definition/#MultiSelectColumn)
10
+ - 🚀 New [renderer="svg-progressive"](https://mui.com/x/react-charts/scatter/#progressive-renderer) paints scatter points in batched frames so large datasets render smoothly without blocking the main thread.
11
+ - 🐞 Bugfixes
12
+ - 📚 Documentation improvements
13
+
14
+ Special thanks go out to community members @mustafajw07 and @Anexus5919 for their valuable contribution.
15
+
16
+ The following team members contributed to this release:
17
+ @alexfauquette, @JCQuintas, @rita-codes, @rluzists1, @sai6855, @siriwatknp, @arminmeh, @brijeshb42
18
+
19
+ ### Data Grid
20
+
21
+ #### `@mui/x-data-grid@9.5.0`
22
+
23
+ - [DataGrid] Restrict warning messages to non-production environments in various components (#22461) @sai6855
24
+ - [DataGrid] Prevent React state update before mount (#22374) @arminmeh
25
+
26
+ #### `@mui/x-data-grid-pro@9.5.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
27
+
28
+ Same changes as in `@mui/x-data-grid@9.5.0`, plus:
29
+
30
+ - [DataGridPro] Add new `multiSelect` column type (#21157) @siriwatknp
31
+
32
+ #### `@mui/x-data-grid-premium@9.5.0` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
33
+
34
+ Same changes as in `@mui/x-data-grid-pro@9.5.0`.
35
+
36
+ ### Date and Time Pickers
37
+
38
+ #### `@mui/x-date-pickers@9.5.0`
39
+
40
+ - [pickers] Fix missing export of `th-TH` (#22703) @alexfauquette
41
+
42
+ #### `@mui/x-date-pickers-pro@9.5.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
43
+
44
+ Same changes as in `@mui/x-date-pickers@9.5.0`.
45
+
46
+ ### Charts
47
+
48
+ #### `@mui/x-charts@9.5.0`
49
+
50
+ - [charts] Add `FocusedBar` component to `BarScatterComposition` demo (#22704) @sai6855
51
+ - [charts] Add dedicated Bubble Chart documentation page (#22688) @mustafajw07
52
+ - [charts] Add progressive scatter renderer (#22518) @JCQuintas
53
+ - [charts] Avoid full axis pipeline rebuild on resize (#22695) @JCQuintas
54
+ - [charts] Document focus indicator in composition page (#22712) @JCQuintas
55
+ - [charts] Fix `ChartsTooltip` `container` and `disablePortal` props being ignored (#22690) @JCQuintas
56
+ - [charts] Make ordinal scales O(1) to copy and re-range (#22691) @JCQuintas
57
+ - [charts] Stabilize WebGL bar rendering at sub-pixel widths (#22678) @JCQuintas
58
+ - [charts] Use the series config to define value types (#22693) @sai6855
59
+ - [charts] Decouple interaction hook from the cartesian zoom (#22708) @alexfauquette
60
+
61
+ #### `@mui/x-charts-pro@9.5.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
62
+
63
+ Same changes as in `@mui/x-charts@9.5.0`, plus:
64
+
65
+ - [charts-pro] Add missing focus highlight (#22689) @alexfauquette
66
+
67
+ #### `@mui/x-charts-premium@9.5.0` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
68
+
69
+ Same changes as in `@mui/x-charts-pro@9.5.0`, plus:
70
+
71
+ - [charts-premium] Set `Heatmap` WebGL render as stable (#22665) @alexfauquette
72
+ - [charts-premium] Stabilize candlestick charts (#22666) @alexfauquette
73
+ - [charts-premium] Stabilize the radial charts (#22655) @alexfauquette
74
+
75
+ ### Scheduler
76
+
77
+ #### `@mui/x-scheduler@9.0.0-beta.1`
78
+
79
+ Internal changes.
80
+
81
+ #### `@mui/x-scheduler-premium@9.0.0-beta.1` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
82
+
83
+ Same changes as in `@mui/x-scheduler@9.0.0-beta.1`, plus:
84
+
85
+ - [scheduler] Remove dead CSS variable writes in `EventTimelinePremiumContent` (#22720) @rita-codes
86
+ - [scheduler] Show scope dialog when deleting a recurring event (#22552) @Anexus5919
87
+
88
+ ### Core
89
+
90
+ - [docs-infra] Fix immutable cache headers for `/\_next/static` assets (#22747) @brijeshb42
91
+ - [docs-infra] Prefix `/\_next/static` cache header rule with `/x` basePath (#22748) @brijeshb42
92
+ - [code-infra] Update dependencies to resolve Dependabot security alerts (#22714) @Janpot
93
+
94
+ ### Docs
95
+
96
+ - [docs] Fix broken links checker crashing on 404 known-targets fetch (#22707) @sai6855
97
+ - [docs] Fix country data (#22716) @alexfauquette
98
+
99
+ ### Miscellaneous
100
+
101
+ - [legal] Update EULA links in docs (#22717) @rluzists1
102
+
103
+ ## 9.4.0
104
+
105
+ <!-- generated comparing v9.3.0..master -->
106
+
107
+ _Jun 4, 2026_
108
+
109
+ We'd like to extend a big thank you to the 21 contributors who made this release possible. Here are some highlights ✨:
110
+
111
+ - 🎉 Scheduler is now in Beta shipping with Timeline vitualization and lazy loading
112
+ - 📆 Implement Event Timeline virtualization (#22339)
113
+ - 🫧 Introduce bubble charts (#22537)
114
+ - 🐞 Bugfixes
115
+ - 📚 Documentation improvements
116
+
117
+ Special thanks go out to these community members for their valuable contributions:
118
+ @imxv, @mixelburg, @mustafajw07
119
+
120
+ The following team members contributed to this release:
121
+ @aemartos, @alexfauquette, @arminmeh, @bernardobelchior, @cherniavskii, @flaviendelangle, @hasdfa, @Janpot, @JCQuintas, @joserodolfofreitas, @LukasTy, @MBilalShafi, @michelengelen, @mj12albert, @noraleonte, @oliviertassinari, @rita-codes, @romgrk, @sai6855
122
+
123
+ ### Data Grid
124
+
125
+ #### `@mui/x-data-grid@9.4.0`
126
+
127
+ - [DataGrid] Fix `avg` aggregation when the average is zero (#22652) @mj12albert
128
+ - [DataGrid] Inherit icon `fontSize` from `baseIconButton` size (#22187) @imxv
129
+ - [DataGrid] Fix `noRowsOverlay` flicker between `dataSource` re-fetches (#22465) @LukasTy
130
+
131
+ #### `@mui/x-data-grid-pro@9.4.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
132
+
133
+ Same changes as in `@mui/x-data-grid@9.4.0`.
134
+
135
+ #### `@mui/x-data-grid-premium@9.4.0` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
136
+
137
+ > This release includes a version bump of the `@mui/x-internal-exceljs-fork` package to address the vulnerable dependencies.
138
+ > The following CVEs are fixed:
139
+ >
140
+ > - <https://github.com/advisories/GHSA-ph9p-34f9-6g65>
141
+ > - <https://github.com/isaacs/minimatch/security/advisories/GHSA-23c5-xmqv-rm74>
142
+ > - <https://github.com/advisories/GHSA-w5hq-g745-h8pq>
143
+ >
144
+ > To make this security update possible, we bumped the `node` version requirement from `>=14.0.0` to `>=14.17.0`.
145
+ > [Node.js 14.17.0](https://nodejs.org/en/blog/release/v14.17.0) was released in May 2021, so we consider it safe to bump the requirement without causing issues for our users.
146
+
147
+ Same changes as in `@mui/x-data-grid-pro@9.4.0`, plus:
148
+
149
+ - [DataGridPremium] Nested Lazy Loading (#21043) @MBilalShafi
150
+ - [DataGridPremium] Update exceljs fork (#22658) @cherniavskii
151
+
152
+ ### Date and Time Pickers
153
+
154
+ #### `@mui/x-date-pickers@9.4.0`
155
+
156
+ Internal changes.
157
+
158
+ #### `@mui/x-date-pickers-pro@9.4.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
159
+
160
+ Same changes as in `@mui/x-date-pickers@9.4.0`.
161
+
162
+ ### Charts
163
+
164
+ #### `@mui/x-charts@9.4.0`
165
+
166
+ - [charts] Add functionality to hide elements during chart export (#22525) @sai6855
167
+ - [charts] Add option to show marks only on the first/last values (#22645) @alexfauquette
168
+ - [charts] Add text customization section and demo for axis labels (#22597) @sai6855
169
+ - [charts] Allow axes to scale according to the visible series only (#22566) @alexfauquette
170
+ - [charts] Correctly handle different identifiers for each series (#22556) @sai6855
171
+ - [charts] Fix inverted Y axis zoom/pan on ordinal scales (#22654) @JCQuintas
172
+ - [charts] Introduce bubble charts (#22537) @alexfauquette
173
+ - [charts] Let scatter chart tooltip ignore hidden series (#22614) @alexfauquette
174
+ - [charts] Make `'sqrt'` size mapping the default (#22683) @alexfauquette
175
+ - [charts] Remove unused proptypes (#22618) @alexfauquette
176
+ - [charts] Support module augmentation for slots (#22519) @sai6855
177
+ - [charts] Support multiple marker size in `findClosestPoint` (#22622) @alexfauquette
178
+ - [charts] Upgrade bezier-easing to v3 and use it for line chart hit-detection (#22608) @sai6855
179
+ - [charts] Use `useLayoutEffect` with `ResizeObserver` (#22646) @JCQuintas
180
+
181
+ #### `@mui/x-charts-pro@9.4.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
182
+
183
+ Same changes as in `@mui/x-charts@9.4.0`, plus:
184
+
185
+ - [charts-pro] Auto-select range button matching current zoom (#22137) @JCQuintas
186
+ - [charts-pro] Support range values in `initialZoom` (#22563) @JCQuintas
187
+
188
+ #### `@mui/x-charts-premium@9.4.0` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
189
+
190
+ Same changes as in `@mui/x-charts-pro@9.4.0`, plus:
191
+
192
+ - [charts-premium] Support range-bar series in WebGL bar renderer (#22607) @JCQuintas
193
+ - [charts-premium] Fix `onAxisClick` for radial bar and lines (#22522) @alexfauquette
194
+
195
+ ### Tree View
196
+
197
+ #### `@mui/x-tree-view@9.4.0`
198
+
199
+ Internal changes.
200
+
201
+ #### `@mui/x-tree-view-pro@9.4.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
202
+
203
+ Same changes as in `@mui/x-tree-view@9.4.0`.
204
+
205
+ ### Scheduler
206
+
207
+ #### Breaking changes
208
+
209
+ The theme `styleOverrides` slots for the skeleton and the error container were
210
+ renamed and unified. The CSS utility class names (for example
211
+ `.MuiEventCalendar-eventSkeleton`) are **not** affected — only
212
+ `theme.components.*` overrides need updating.
213
+
214
+ **Event skeleton**
215
+
216
+ | Before | After |
217
+ | --------------------------------------- | ------------------------------ |
218
+ | `MuiEventCalendar` slot `EventSkeleton` | `MuiEventSkeleton` slot `Root` |
219
+ | `MuiEventTimeline` slot `EventSkeleton` | `MuiEventSkeleton` slot `Root` |
220
+
221
+ **Error container**
222
+
223
+ | Before | After |
224
+ | ------------------------------------------------------------- | --------------------------------------- |
225
+ | `MuiEventCalendar` / `MuiEventTimeline` slot `ErrorContainer` | `MuiEventErrorContainer` slot `Root` |
226
+ | `MuiEventCalendar` / `MuiEventTimeline` slot `ErrorAlert` | `MuiEventErrorContainer` slot `Alert` |
227
+ | `MuiEventCalendar` / `MuiEventTimeline` slot `ErrorMessage` | `MuiEventErrorContainer` slot `Message` |
228
+
229
+ If you customized these through the theme, update the component name and slot
230
+ names accordingly:
231
+
232
+ ```diff
233
+ components: {
234
+ - MuiEventCalendar: {
235
+ + MuiEventSkeleton: {
236
+ styleOverrides: {
237
+ - EventSkeleton: { /* ... */ },
238
+ + Root: { /* ... */ },
239
+ },
240
+ },
241
+ },
242
+ }
243
+ ```
244
+
245
+ #### `@mui/x-scheduler@9.0.0-beta.0`
246
+
247
+ - [scheduler] Add a prop to control whether the resource of an event can be cleared (#22464) @rita-codes
248
+ - [scheduler] Add week number labels to agenda, day and week views (#22594) @mustafajw07
249
+ - [scheduler] Add `weekStartsOn` preference and update date functions to support custom week start (#22426) @mustafajw07
250
+ - [scheduler] Export premium version of the standalone views (#22621) @flaviendelangle
251
+ - [scheduler] Implement timeline virtualization (#22339) @romgrk
252
+ - [scheduler] Split scheduler overview (#22453) @joserodolfofreitas
253
+ - [scheduler] Unify `EventSkeleton` and `ErrorContainer` between `EventCalendar` and `EventTimeline` (#22676) @noraleonte
254
+
255
+ #### `@mui/x-scheduler-premium@9.0.0-beta.0` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
256
+
257
+ Same changes as in `@mui/x-scheduler@9.0.0-beta.0`.
258
+
259
+ ### Docs
260
+
261
+ - [docs] Add a performance docs page for charts (#22656) @alexfauquette
262
+ - [docs] Add real dataset for maps documentation (#22599) @alexfauquette
263
+ - [docs] Add spacing between selects on charts overview demo (#22589) @bernardobelchior
264
+ - [docs] Reorganize existing chat docs navigation (#22478) @hasdfa
265
+ - [docs] Switch to visionscarto's world atlas dataset (#22669) @cherniavskii
266
+ - [docs] Update TreeView `domstructure` docs and add demo (#22420) @mj12albert
267
+ - [docs] Fix indexation of Scheduler (#22567) @oliviertassinari
268
+ - [docs] Fix wide layout on event timeline lazy loading and Import title (#22604) @rita-codes
269
+ - [docs] Derive class name owners for shared charts classes (#22674) @JCQuintas
270
+
271
+ ### Core
272
+
273
+ - [code-infra] Drop unused and now-transitive deps from docs/package.json (#22549) @LukasTy
274
+ - [code-infra] Refresh CI Node pins to 22.22.3 (#22598) @LukasTy
275
+ - [code-infra] Skip empty product sections in changelog (#22541) @rita-codes
276
+ - [code-infra] Stabilize DataGridScrollRestoration visual regression test (#22553) @Janpot
277
+ - [internal] Add license to the `x-data-grid-generator` (#22240) @arminmeh
278
+ - [internal] Express default value for resource_class (#22569) @oliviertassinari
279
+ - [internal] Fix use of ellipsis (#21852) @oliviertassinari
280
+ - [internal] `useLayoutEffect` with `ResizeObserver` (#22428) @romgrk
281
+
282
+ ### Miscellaneous
283
+
284
+ - [chat-headless] Add built-in chat adapters (#22479) @hasdfa
285
+ - [chat-headless] Harden runtime model and message errors (#22480) @hasdfa
286
+ - [core] Prepare for TypeScript 6 bump (#22551) @LukasTy
287
+ - [core] Use CircleCI Gen2 resource classes (#22610) @LukasTy
288
+ - [infra] Fix broken tag retrieval on `master` during release (#22174) @michelengelen
289
+ - [infra] Group Base UI renovate updates (#22590) @LukasTy
290
+ - [pnpm] Add security settings to pnpm-workspace.yaml (#22611) @Janpot
291
+ - [release] Fix release PR scripts (#22680) @JCQuintas
292
+ - [test] Add a Tree View regression test for lazy loading with getChildrenCount returning -1 (#22605) @mixelburg
293
+ - [test] Disable LCD subpixel antialiasing in regression screenshots (#22602) @Janpot
294
+ - [test] Fix flaky Data Grid Pro data source tree data tests (#22659) @LukasTy
295
+ - [test] Remove stale form-submit TODO from e2e suite (#22564) @LukasTy
296
+ - [x-license] Exclude test keys from the published npm package (#22647) @aemartos
297
+ - [test] Fix flaky WebGL benchmark by polling for canvas content (#22535) @JCQuintas
298
+
3
299
  ## 9.3.0
4
300
 
5
301
  _May 21, 2026_
@@ -239,12 +239,21 @@ process.env.NODE_ENV !== "production" ? CandlestickChart.propTypes = {
239
239
  /**
240
240
  * The list of zoom data related to each axis.
241
241
  * Used to initialize the zoom in a specific configuration without controlling it.
242
+ *
243
+ * Each entry is either explicit zoom percentages (`{ axisId, start, end }`) or a
244
+ * range value (`{ axisId, value }`) resolved against the axis domain.
242
245
  */
243
- initialZoom: _propTypes.default.arrayOf(_propTypes.default.shape({
246
+ initialZoom: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.shape({
244
247
  axisId: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]).isRequired,
245
248
  end: _propTypes.default.number.isRequired,
246
249
  start: _propTypes.default.number.isRequired
247
- })),
250
+ }), _propTypes.default.shape({
251
+ axisId: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]).isRequired,
252
+ value: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.instanceOf(Date).isRequired), _propTypes.default.arrayOf(_propTypes.default.string.isRequired), _propTypes.default.func, _propTypes.default.shape({
253
+ step: _propTypes.default.number,
254
+ unit: _propTypes.default.oneOf(['day', 'hour', 'microsecond', 'millisecond', 'minute', 'month', 'second', 'week', 'year']).isRequired
255
+ })])
256
+ })]).isRequired),
248
257
  /**
249
258
  * If `true`, a loading overlay is displayed.
250
259
  * @default false
@@ -231,12 +231,21 @@ process.env.NODE_ENV !== "production" ? CandlestickChart.propTypes = {
231
231
  /**
232
232
  * The list of zoom data related to each axis.
233
233
  * Used to initialize the zoom in a specific configuration without controlling it.
234
+ *
235
+ * Each entry is either explicit zoom percentages (`{ axisId, start, end }`) or a
236
+ * range value (`{ axisId, value }`) resolved against the axis domain.
234
237
  */
235
- initialZoom: PropTypes.arrayOf(PropTypes.shape({
238
+ initialZoom: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.shape({
236
239
  axisId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,
237
240
  end: PropTypes.number.isRequired,
238
241
  start: PropTypes.number.isRequired
239
- })),
242
+ }), PropTypes.shape({
243
+ axisId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,
244
+ value: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.instanceOf(Date).isRequired), PropTypes.arrayOf(PropTypes.string.isRequired), PropTypes.func, PropTypes.shape({
245
+ step: PropTypes.number,
246
+ unit: PropTypes.oneOf(['day', 'hour', 'microsecond', 'millisecond', 'minute', 'month', 'second', 'week', 'year']).isRequired
247
+ })])
248
+ })]).isRequired),
240
249
  /**
241
250
  * If `true`, a loading overlay is displayed.
242
251
  * @default false
@@ -1,2 +1,11 @@
1
- export { CandlestickChart as Unstable_CandlestickChart, type CandlestickChartProps, type CandlestickChartSlots, type CandlestickChartSlotProps, type OHLCSeries } from "./CandlestickChart.mjs";
2
- export { CandlestickPlot as Unstable_CandlestickPlot, type CandlestickPlotProps } from "./CandlestickPlot.mjs";
1
+ import { CandlestickPlot } from "./CandlestickPlot.mjs";
2
+ /**
3
+ * @deprecated candlestick chart is now stable, import `ChartsCandlestickChart` instead
4
+ */
5
+ export declare const Unstable_CandlestickChart: import("react").ForwardRefExoticComponent<import("./CandlestickChart.mjs").CandlestickChartProps & import("react").RefAttributes<HTMLDivElement>>;
6
+ /**
7
+ * @deprecated candlestick plot is now stable, import `ChartsCandlestickPlot` instead
8
+ */
9
+ export declare const Unstable_CandlestickPlot: typeof CandlestickPlot;
10
+ export { CandlestickChart, type CandlestickChartProps, type CandlestickChartSlots, type CandlestickChartSlotProps, type OHLCSeries } from "./CandlestickChart.mjs";
11
+ export { CandlestickPlot, type CandlestickPlotProps } from "./CandlestickPlot.mjs";
@@ -1,2 +1,11 @@
1
- export { CandlestickChart as Unstable_CandlestickChart, type CandlestickChartProps, type CandlestickChartSlots, type CandlestickChartSlotProps, type OHLCSeries } from "./CandlestickChart.js";
2
- export { CandlestickPlot as Unstable_CandlestickPlot, type CandlestickPlotProps } from "./CandlestickPlot.js";
1
+ import { CandlestickPlot } from "./CandlestickPlot.js";
2
+ /**
3
+ * @deprecated candlestick chart is now stable, import `ChartsCandlestickChart` instead
4
+ */
5
+ export declare const Unstable_CandlestickChart: import("react").ForwardRefExoticComponent<import("./CandlestickChart.js").CandlestickChartProps & import("react").RefAttributes<HTMLDivElement>>;
6
+ /**
7
+ * @deprecated candlestick plot is now stable, import `ChartsCandlestickPlot` instead
8
+ */
9
+ export declare const Unstable_CandlestickPlot: typeof CandlestickPlot;
10
+ export { CandlestickChart, type CandlestickChartProps, type CandlestickChartSlots, type CandlestickChartSlotProps, type OHLCSeries } from "./CandlestickChart.js";
11
+ export { CandlestickPlot, type CandlestickPlotProps } from "./CandlestickPlot.js";
@@ -3,17 +3,29 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- Object.defineProperty(exports, "Unstable_CandlestickChart", {
6
+ Object.defineProperty(exports, "CandlestickChart", {
7
7
  enumerable: true,
8
8
  get: function () {
9
9
  return _CandlestickChart.CandlestickChart;
10
10
  }
11
11
  });
12
- Object.defineProperty(exports, "Unstable_CandlestickPlot", {
12
+ Object.defineProperty(exports, "CandlestickPlot", {
13
13
  enumerable: true,
14
14
  get: function () {
15
15
  return _CandlestickPlot.CandlestickPlot;
16
16
  }
17
17
  });
18
+ exports.Unstable_CandlestickPlot = exports.Unstable_CandlestickChart = void 0;
18
19
  var _CandlestickChart = require("./CandlestickChart");
19
- var _CandlestickPlot = require("./CandlestickPlot");
20
+ var _CandlestickPlot = require("./CandlestickPlot");
21
+ /**
22
+ * @deprecated candlestick chart is now stable, import `ChartsCandlestickChart` instead
23
+ */
24
+ // eslint-disable-next-line @typescript-eslint/naming-convention
25
+ const Unstable_CandlestickChart = exports.Unstable_CandlestickChart = _CandlestickChart.CandlestickChart;
26
+
27
+ /**
28
+ * @deprecated candlestick plot is now stable, import `ChartsCandlestickPlot` instead
29
+ */
30
+ // eslint-disable-next-line @typescript-eslint/naming-convention
31
+ const Unstable_CandlestickPlot = exports.Unstable_CandlestickPlot = _CandlestickPlot.CandlestickPlot;
@@ -1,2 +1,16 @@
1
- export { CandlestickChart as Unstable_CandlestickChart } from "./CandlestickChart.mjs";
2
- export { CandlestickPlot as Unstable_CandlestickPlot } from "./CandlestickPlot.mjs";
1
+ import { CandlestickChart } from "./CandlestickChart.mjs";
2
+ import { CandlestickPlot } from "./CandlestickPlot.mjs";
3
+
4
+ /**
5
+ * @deprecated candlestick chart is now stable, import `ChartsCandlestickChart` instead
6
+ */
7
+ // eslint-disable-next-line @typescript-eslint/naming-convention
8
+ export const Unstable_CandlestickChart = CandlestickChart;
9
+
10
+ /**
11
+ * @deprecated candlestick plot is now stable, import `ChartsCandlestickPlot` instead
12
+ */
13
+ // eslint-disable-next-line @typescript-eslint/naming-convention
14
+ export const Unstable_CandlestickPlot = CandlestickPlot;
15
+ export { CandlestickChart } from "./CandlestickChart.mjs";
16
+ export { CandlestickPlot } from "./CandlestickPlot.mjs";
@@ -29,6 +29,9 @@ const getValueExtremum = params => {
29
29
  isDefaultAxis
30
30
  } = params;
31
31
  return Object.keys(series).filter(seriesId => {
32
+ if (axis.domainSeries === 'visible' && series[seriesId].hidden) {
33
+ return false;
34
+ }
32
35
  const axisId = series[seriesId].yAxisId;
33
36
  return axisId === axis.id || isDefaultAxis && axisId === undefined;
34
37
  }).reduce((acc, seriesId) => {
@@ -23,6 +23,9 @@ const getValueExtremum = params => {
23
23
  isDefaultAxis
24
24
  } = params;
25
25
  return Object.keys(series).filter(seriesId => {
26
+ if (axis.domainSeries === 'visible' && series[seriesId].hidden) {
27
+ return false;
28
+ }
26
29
  const axisId = series[seriesId].yAxisId;
27
30
  return axisId === axis.id || isDefaultAxis && axisId === undefined;
28
31
  }).reduce((acc, seriesId) => {