@mui/x-date-pickers-pro 9.0.0-alpha.3 → 9.0.0-alpha.4

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 (40) hide show
  1. package/CHANGELOG.md +123 -0
  2. package/DateRangeCalendar/DateRangeCalendar.js +2 -2
  3. package/DateRangeCalendar/DateRangeCalendar.mjs +2 -2
  4. package/DateRangePickerDay/DateRangePickerDay.js +2 -2
  5. package/DateRangePickerDay/DateRangePickerDay.mjs +2 -2
  6. package/MultiInputDateRangeField/MultiInputDateRangeField.js +8 -2
  7. package/MultiInputDateRangeField/MultiInputDateRangeField.mjs +8 -2
  8. package/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +8 -2
  9. package/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.mjs +8 -2
  10. package/MultiInputTimeRangeField/MultiInputTimeRangeField.js +8 -2
  11. package/MultiInputTimeRangeField/MultiInputTimeRangeField.mjs +8 -2
  12. package/SingleInputDateRangeField/SingleInputDateRangeField.js +4 -4
  13. package/SingleInputDateRangeField/SingleInputDateRangeField.mjs +4 -4
  14. package/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.js +4 -4
  15. package/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.mjs +4 -4
  16. package/SingleInputTimeRangeField/SingleInputTimeRangeField.js +4 -4
  17. package/SingleInputTimeRangeField/SingleInputTimeRangeField.mjs +4 -4
  18. package/hooks/useMultiInputRangeField/useMultiInputRangeField.js +4 -4
  19. package/hooks/useMultiInputRangeField/useMultiInputRangeField.mjs +4 -4
  20. package/hooks/useMultiInputRangeField/useMultiInputRangeFieldSelectedSections.d.mts +4 -1
  21. package/hooks/useMultiInputRangeField/useMultiInputRangeFieldSelectedSections.d.ts +4 -1
  22. package/hooks/useMultiInputRangeField/useMultiInputRangeFieldSelectedSections.js +5 -5
  23. package/hooks/useMultiInputRangeField/useMultiInputRangeFieldSelectedSections.mjs +5 -5
  24. package/hooks/useMultiInputRangeField/useTextFieldProps.js +2 -2
  25. package/hooks/useMultiInputRangeField/useTextFieldProps.mjs +2 -2
  26. package/index.js +1 -1
  27. package/index.mjs +1 -1
  28. package/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +2 -2
  29. package/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.mjs +2 -2
  30. package/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.types.d.mts +3 -4
  31. package/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.types.d.ts +3 -4
  32. package/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +2 -2
  33. package/internals/hooks/useMobileRangePicker/useMobileRangePicker.mjs +2 -2
  34. package/internals/hooks/useMobileRangePicker/useMobileRangePicker.types.d.mts +3 -4
  35. package/internals/hooks/useMobileRangePicker/useMobileRangePicker.types.d.ts +3 -4
  36. package/internals/utils/createMultiInputRangeField/createMultiInputRangeField.types.d.mts +1 -1
  37. package/internals/utils/createMultiInputRangeField/createMultiInputRangeField.types.d.ts +1 -1
  38. package/models/fields.d.mts +10 -4
  39. package/models/fields.d.ts +10 -4
  40. package/package.json +4 -4
package/CHANGELOG.md CHANGED
@@ -1,5 +1,128 @@
1
1
  # Changelog
2
2
 
3
+ ## 9.0.0-alpha.4
4
+
5
+ _Mar 19, 2026_
6
+
7
+ We'd like to extend a big thank you to the 12 contributors who made this release possible. Here are some highlights ✨:
8
+
9
+ - 🐞 Bugfixes and internal improvements
10
+
11
+ The following team members contributed to this release:
12
+ @aemartos, @alexfauquette, @bernardobelchior, @Janpot, @JCQuintas, @LukasTy, @mapache-salvaje, @michelengelen, @noraleonte, @rita-codes, @sai6855, @siriwatknp
13
+
14
+ ### Data Grid
15
+
16
+ #### `@mui/x-data-grid@9.0.0-alpha.4`
17
+
18
+ - [DataGrid] Mark charts integration as stable (#21764) @JCQuintas
19
+ - [DataGrid] Move `elementOverrides` to constants and remove duplicates (#21618) @sai6855
20
+ - [DataGrid] Migrate from deprecated Material UI APIs (#21682) @siriwatknp
21
+
22
+ #### `@mui/x-data-grid-pro@9.0.0-alpha.4` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
23
+
24
+ Same changes as in `@mui/x-data-grid@9.0.0-alpha.4`.
25
+
26
+ #### `@mui/x-data-grid-premium@9.0.0-alpha.4` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
27
+
28
+ Same changes as in `@mui/x-data-grid-pro@9.0.0-alpha.4`.
29
+
30
+ ### Date and Time Pickers
31
+
32
+ #### `@mui/x-date-pickers@9.0.0-alpha.4`
33
+
34
+ - [pickers] Avoid stealing focus on click away (#13434) @LukasTy
35
+ - [pickers] Promote `fieldRef` to stable and add `clearValue` method (#21655) @michelengelen
36
+
37
+ #### `@mui/x-date-pickers-pro@9.0.0-alpha.4` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
38
+
39
+ Same changes as in `@mui/x-date-pickers@9.0.0-alpha.4`.
40
+
41
+ ### Charts
42
+
43
+ #### `@mui/x-charts@9.0.0-alpha.4`
44
+
45
+ - [charts] Add v9 chart series types and helper functions migration (#21009) @bernardobelchior
46
+ - [charts] Extract event listener to the layer container (#21751) @alexfauquette
47
+ - [charts] Fix WebGL print export canvas stretching (#21738) @JCQuintas
48
+ - [charts] Improve deprecation warnings (#21760) @alexfauquette
49
+ - [charts] Improve type safety in `identifierCleaner` (#21719) @bernardobelchior
50
+ - [charts] Make `preferStrictDomainInLineCharts` the default (#21744) @JCQuintas
51
+ - [charts] Move title and description to the layer container (#21757) @alexfauquette
52
+ - [charts] Refactor `FunnelChart` classes structure (#21652) @JCQuintas
53
+ - [charts] Refactor `Heatmap` classes structure (#21653) @JCQuintas
54
+ - [charts] Refactor `RadarChart` classes structure (#21650) @JCQuintas
55
+ - [charts] Refactor `SankeyChart` classes structure (#21654) @JCQuintas
56
+ - [charts] Refactor legend getters to use utility functions (#21628) @sai6855
57
+ - [charts] Remove deprecated `ChartContainer` and `ChartDataProvider` (#21777) @alexfauquette
58
+ - [charts] Remove deprecated `itemId` from `SeriesLegendItemContext` (#21788) @alexfauquette
59
+ - [charts] Remove deprecated `useMouseTracker()` (#21787) @alexfauquette
60
+ - [charts] Remove deprecated classes (#21775) @alexfauquette
61
+ - [charts] Remove deprecated props from PieArcLabel animation (#21789) @alexfauquette
62
+ - [charts] Remove get*UtilityClass from public exports (#21769) @JCQuintas
63
+ - [charts] Remove the deprecated `disableHover` property (#21785) @alexfauquette
64
+ - [charts] Remove the deprecated `message` prop (#21784) @alexfauquette
65
+ - [charts] Remove deprecated props about voronoi (#21796) @alexfauquette
66
+ - [charts] Remove deprecated pieArcClasses (#21795) @alexfauquette
67
+ - [charts] Rename `data-series-id` by `data-series` (#21761) @alexfauquette
68
+ - [charts] Rename `voronoiMaxRadius`/`disableVoronoi` to `hitAreaRadius`/`disableHitArea` (#21750) @bernardobelchior
69
+ - [charts] Update pt-PT locale (#21296) @bernardobelchior
70
+ - [charts] Use different shape per series by default (#21713) @alexfauquette
71
+ - [charts] Add className prop to Radar components (#21794) @JCQuintas
72
+ - [charts] Add className prop to shared chart components (#21792) @JCQuintas
73
+ - [charts] Add className prop to BarPlot (#21791) @JCQuintas
74
+ - [charts] Portal tooltip into ChartsLayerContainer (#21801) @JCQuintas
75
+
76
+ #### `@mui/x-charts-pro@9.0.0-alpha.4` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
77
+
78
+ Same changes as in `@mui/x-charts@9.0.0-alpha.4`, plus:
79
+
80
+ - [charts-pro] Allow `brush` interaction to accept `requiredKeys/pointerMode` (#21716) @JCQuintas
81
+ - [charts-pro] Remove deprecated `onAxisClick` for Heatmap (#21786) @alexfauquette
82
+
83
+ #### `@mui/x-charts-premium@9.0.0-alpha.4` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
84
+
85
+ Same changes as in `@mui/x-charts-pro@9.0.0-alpha.4`, plus:
86
+
87
+ - [charts-premium] Add candlestick chart (#21129) @bernardobelchior
88
+
89
+ ### Tree View
90
+
91
+ #### `@mui/x-tree-view@9.0.0-alpha.4`
92
+
93
+ Internal changes.
94
+
95
+ #### `@mui/x-tree-view-pro@9.0.0-alpha.4` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
96
+
97
+ Same changes as in `@mui/x-tree-view@9.0.0-alpha.4`.
98
+
99
+ ### Codemod
100
+
101
+ #### `@mui/x-codemod@9.0.0-alpha.4`
102
+
103
+ Internal changes.
104
+
105
+ ### Docs
106
+
107
+ - [docs-infra] Exclude `ServerSideLazyLoadingRevalidation` from argos (#21734) @sai6855
108
+ - [docs] Update charts v9 migration guide to include premium package (#21743) @bernardobelchior
109
+ - [docs] Update v9 migration guides to install next tag (#21741) @bernardobelchior
110
+ - [docs] Revise the Pie chart docs (#21565) @mapache-salvaje
111
+ - [docs] Revise the Bar Chart docs (#21482) @mapache-salvaje
112
+ - [docs] Removed a `console.log` from an aggregation demo (#21698) @michelengelen
113
+
114
+ ### Core
115
+
116
+ - [code-infra] Add pkg-pr-new as dev dependency (#21754) @Janpot
117
+ - [code-infra] Prevent `combiner` to have default parameters (#21707) @JCQuintas
118
+ - [code-infra] Remove CI coverage collection and upload to Codecov (#21671) @Janpot
119
+ - [internal] Remove @bernardobelchior from Charts CODEOWNERS (#21776) @Copilot
120
+
121
+ ### Miscellaneous
122
+
123
+ - [x-license] Fix process.env.MUI_VERSION not being replaced during build (#21727) @aemartos
124
+ - [x-license] Add new watermark license status message (#21720) @aemartos
125
+
3
126
  ## 9.0.0-alpha.3
4
127
 
5
128
  _Mar 12, 2026_
@@ -38,8 +38,8 @@ var _jsxRuntime = require("react/jsx-runtime");
38
38
  const _excluded = ["value", "defaultValue", "referenceDate", "onChange", "className", "classes", "disableFuture", "disablePast", "minDate", "maxDate", "shouldDisableDate", "reduceAnimations", "onMonthChange", "rangePosition", "defaultRangePosition", "onRangePositionChange", "calendars", "currentMonthCalendarPosition", "slots", "slotProps", "loading", "renderLoading", "disableHighlightToday", "focusedView", "onFocusedViewChange", "readOnly", "disabled", "showDaysOutsideCurrentMonth", "dayOfWeekFormatter", "disableAutoMonthSwitching", "autoFocus", "fixedWeekNumber", "disableDragEditing", "displayWeekNumber", "timezone", "availableRangePositions", "views", "view", "openTo", "onViewChange"],
39
39
  _excluded2 = ["isDragging", "rangeDragDay", "draggingDatePosition"];
40
40
  const packageInfo = {
41
- releaseDate: "MTc3MzI3MzYwMDAwMA==",
42
- version: process.env.MUI_VERSION,
41
+ releaseDate: "MTc3Mzk2NDgwMDAwMA==",
42
+ version: "9.0.0-alpha.4",
43
43
  name: 'x-date-pickers-pro'
44
44
  };
45
45
  const DateRangeCalendarRoot = (0, _styles.styled)('div', {
@@ -31,8 +31,8 @@ import { useNullablePickerRangePositionContext } from "../internals/hooks/useNul
31
31
  import { dateRangePickerDay2Classes } from "../DateRangePickerDay2/index.mjs";
32
32
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
33
33
  const packageInfo = {
34
- releaseDate: "MTc3MzI3MzYwMDAwMA==",
35
- version: process.env.MUI_VERSION,
34
+ releaseDate: "MTc3Mzk2NDgwMDAwMA==",
35
+ version: "9.0.0-alpha.4",
36
36
  name: 'x-date-pickers-pro'
37
37
  };
38
38
  const DateRangeCalendarRoot = styled('div', {
@@ -235,8 +235,8 @@ const DateRangePickerDayRaw = /*#__PURE__*/React.forwardRef(function DateRangePi
235
235
  } = props,
236
236
  other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
237
237
  (0, _internals.useLicenseVerifier)({
238
- releaseDate: "MTc3MzI3MzYwMDAwMA==",
239
- version: process.env.MUI_VERSION,
238
+ releaseDate: "MTc3Mzk2NDgwMDAwMA==",
239
+ version: "9.0.0-alpha.4",
240
240
  name: 'x-date-pickers-pro'
241
241
  });
242
242
  const adapter = (0, _hooks.usePickerAdapter)();
@@ -228,8 +228,8 @@ const DateRangePickerDayRaw = /*#__PURE__*/React.forwardRef(function DateRangePi
228
228
  } = props,
229
229
  other = _objectWithoutPropertiesLoose(props, _excluded);
230
230
  useLicenseVerifier({
231
- releaseDate: "MTc3MzI3MzYwMDAwMA==",
232
- version: process.env.MUI_VERSION,
231
+ releaseDate: "MTc3Mzk2NDgwMDAwMA==",
232
+ version: "9.0.0-alpha.4",
233
233
  name: 'x-date-pickers-pro'
234
234
  });
235
235
  const adapter = usePickerAdapter();
@@ -80,6 +80,10 @@ MultiInputDateRangeField.propTypes = {
80
80
  * @default true
81
81
  */
82
82
  enableAccessibleFieldDOMStructure: _propTypes.default.bool,
83
+ /**
84
+ * The ref object used to interact with the end field imperatively.
85
+ */
86
+ endFieldRef: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]),
83
87
  /**
84
88
  * Format of the date when rendered in the input(s).
85
89
  */
@@ -185,6 +189,10 @@ MultiInputDateRangeField.propTypes = {
185
189
  * @default 0
186
190
  */
187
191
  spacing: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string])), _propTypes.default.number, _propTypes.default.object, _propTypes.default.string]),
192
+ /**
193
+ * The ref object used to interact with the start field imperatively.
194
+ */
195
+ startFieldRef: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]),
188
196
  style: _propTypes.default.object,
189
197
  /**
190
198
  * The system prop, which allows defining system overrides as well as additional CSS styles.
@@ -198,8 +206,6 @@ MultiInputDateRangeField.propTypes = {
198
206
  * @default The timezone of the `value` or `defaultValue` prop is defined, 'default' otherwise.
199
207
  */
200
208
  timezone: _propTypes.default.string,
201
- unstableEndFieldRef: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]),
202
- unstableStartFieldRef: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]),
203
209
  /**
204
210
  * If `true`, the CSS flexbox `gap` is used instead of applying `margin` to children.
205
211
  *
@@ -76,6 +76,10 @@ MultiInputDateRangeField.propTypes = {
76
76
  * @default true
77
77
  */
78
78
  enableAccessibleFieldDOMStructure: PropTypes.bool,
79
+ /**
80
+ * The ref object used to interact with the end field imperatively.
81
+ */
82
+ endFieldRef: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),
79
83
  /**
80
84
  * Format of the date when rendered in the input(s).
81
85
  */
@@ -181,6 +185,10 @@ MultiInputDateRangeField.propTypes = {
181
185
  * @default 0
182
186
  */
183
187
  spacing: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string])), PropTypes.number, PropTypes.object, PropTypes.string]),
188
+ /**
189
+ * The ref object used to interact with the start field imperatively.
190
+ */
191
+ startFieldRef: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),
184
192
  style: PropTypes.object,
185
193
  /**
186
194
  * The system prop, which allows defining system overrides as well as additional CSS styles.
@@ -194,8 +202,6 @@ MultiInputDateRangeField.propTypes = {
194
202
  * @default The timezone of the `value` or `defaultValue` prop is defined, 'default' otherwise.
195
203
  */
196
204
  timezone: PropTypes.string,
197
- unstableEndFieldRef: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),
198
- unstableStartFieldRef: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),
199
205
  /**
200
206
  * If `true`, the CSS flexbox `gap` is used instead of applying `margin` to children.
201
207
  *
@@ -90,6 +90,10 @@ MultiInputDateTimeRangeField.propTypes = {
90
90
  * @default true
91
91
  */
92
92
  enableAccessibleFieldDOMStructure: _propTypes.default.bool,
93
+ /**
94
+ * The ref object used to interact with the end field imperatively.
95
+ */
96
+ endFieldRef: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]),
93
97
  /**
94
98
  * Format of the date when rendered in the input(s).
95
99
  */
@@ -225,6 +229,10 @@ MultiInputDateTimeRangeField.propTypes = {
225
229
  * @default 0
226
230
  */
227
231
  spacing: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string])), _propTypes.default.number, _propTypes.default.object, _propTypes.default.string]),
232
+ /**
233
+ * The ref object used to interact with the start field imperatively.
234
+ */
235
+ startFieldRef: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]),
228
236
  style: _propTypes.default.object,
229
237
  /**
230
238
  * The system prop, which allows defining system overrides as well as additional CSS styles.
@@ -238,8 +246,6 @@ MultiInputDateTimeRangeField.propTypes = {
238
246
  * @default The timezone of the `value` or `defaultValue` prop is defined, 'default' otherwise.
239
247
  */
240
248
  timezone: _propTypes.default.string,
241
- unstableEndFieldRef: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]),
242
- unstableStartFieldRef: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]),
243
249
  /**
244
250
  * If `true`, the CSS flexbox `gap` is used instead of applying `margin` to children.
245
251
  *
@@ -86,6 +86,10 @@ MultiInputDateTimeRangeField.propTypes = {
86
86
  * @default true
87
87
  */
88
88
  enableAccessibleFieldDOMStructure: PropTypes.bool,
89
+ /**
90
+ * The ref object used to interact with the end field imperatively.
91
+ */
92
+ endFieldRef: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),
89
93
  /**
90
94
  * Format of the date when rendered in the input(s).
91
95
  */
@@ -221,6 +225,10 @@ MultiInputDateTimeRangeField.propTypes = {
221
225
  * @default 0
222
226
  */
223
227
  spacing: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string])), PropTypes.number, PropTypes.object, PropTypes.string]),
228
+ /**
229
+ * The ref object used to interact with the start field imperatively.
230
+ */
231
+ startFieldRef: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),
224
232
  style: PropTypes.object,
225
233
  /**
226
234
  * The system prop, which allows defining system overrides as well as additional CSS styles.
@@ -234,8 +242,6 @@ MultiInputDateTimeRangeField.propTypes = {
234
242
  * @default The timezone of the `value` or `defaultValue` prop is defined, 'default' otherwise.
235
243
  */
236
244
  timezone: PropTypes.string,
237
- unstableEndFieldRef: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),
238
- unstableStartFieldRef: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),
239
245
  /**
240
246
  * If `true`, the CSS flexbox `gap` is used instead of applying `margin` to children.
241
247
  *
@@ -91,6 +91,10 @@ MultiInputTimeRangeField.propTypes = {
91
91
  * @default true
92
92
  */
93
93
  enableAccessibleFieldDOMStructure: _propTypes.default.bool,
94
+ /**
95
+ * The ref object used to interact with the end field imperatively.
96
+ */
97
+ endFieldRef: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]),
94
98
  /**
95
99
  * Format of the date when rendered in the input(s).
96
100
  */
@@ -198,6 +202,10 @@ MultiInputTimeRangeField.propTypes = {
198
202
  * @default 0
199
203
  */
200
204
  spacing: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string])), _propTypes.default.number, _propTypes.default.object, _propTypes.default.string]),
205
+ /**
206
+ * The ref object used to interact with the start field imperatively.
207
+ */
208
+ startFieldRef: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]),
201
209
  style: _propTypes.default.object,
202
210
  /**
203
211
  * The system prop, which allows defining system overrides as well as additional CSS styles.
@@ -211,8 +219,6 @@ MultiInputTimeRangeField.propTypes = {
211
219
  * @default The timezone of the `value` or `defaultValue` prop is defined, 'default' otherwise.
212
220
  */
213
221
  timezone: _propTypes.default.string,
214
- unstableEndFieldRef: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]),
215
- unstableStartFieldRef: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]),
216
222
  /**
217
223
  * If `true`, the CSS flexbox `gap` is used instead of applying `margin` to children.
218
224
  *
@@ -87,6 +87,10 @@ MultiInputTimeRangeField.propTypes = {
87
87
  * @default true
88
88
  */
89
89
  enableAccessibleFieldDOMStructure: PropTypes.bool,
90
+ /**
91
+ * The ref object used to interact with the end field imperatively.
92
+ */
93
+ endFieldRef: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),
90
94
  /**
91
95
  * Format of the date when rendered in the input(s).
92
96
  */
@@ -194,6 +198,10 @@ MultiInputTimeRangeField.propTypes = {
194
198
  * @default 0
195
199
  */
196
200
  spacing: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string])), PropTypes.number, PropTypes.object, PropTypes.string]),
201
+ /**
202
+ * The ref object used to interact with the start field imperatively.
203
+ */
204
+ startFieldRef: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),
197
205
  style: PropTypes.object,
198
206
  /**
199
207
  * The system prop, which allows defining system overrides as well as additional CSS styles.
@@ -207,8 +215,6 @@ MultiInputTimeRangeField.propTypes = {
207
215
  * @default The timezone of the `value` or `defaultValue` prop is defined, 'default' otherwise.
208
216
  */
209
217
  timezone: PropTypes.string,
210
- unstableEndFieldRef: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),
211
- unstableStartFieldRef: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),
212
218
  /**
213
219
  * If `true`, the CSS flexbox `gap` is used instead of applying `margin` to children.
214
220
  *
@@ -114,6 +114,10 @@ process.env.NODE_ENV !== "production" ? SingleInputDateRangeField.propTypes = {
114
114
  * @default true
115
115
  */
116
116
  enableAccessibleFieldDOMStructure: _propTypes.default.bool,
117
+ /**
118
+ * The ref object used to imperatively interact with the field.
119
+ */
120
+ fieldRef: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]),
117
121
  /**
118
122
  * If `true`, the component is displayed in focused state.
119
123
  */
@@ -309,10 +313,6 @@ process.env.NODE_ENV !== "production" ? SingleInputDateRangeField.propTypes = {
309
313
  * @default The timezone of the `value` or `defaultValue` prop is defined, 'default' otherwise.
310
314
  */
311
315
  timezone: _propTypes.default.string,
312
- /**
313
- * The ref object used to imperatively interact with the field.
314
- */
315
- unstableFieldRef: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]),
316
316
  /**
317
317
  * The selected value.
318
318
  * Used when the component is controlled.
@@ -107,6 +107,10 @@ process.env.NODE_ENV !== "production" ? SingleInputDateRangeField.propTypes = {
107
107
  * @default true
108
108
  */
109
109
  enableAccessibleFieldDOMStructure: PropTypes.bool,
110
+ /**
111
+ * The ref object used to imperatively interact with the field.
112
+ */
113
+ fieldRef: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),
110
114
  /**
111
115
  * If `true`, the component is displayed in focused state.
112
116
  */
@@ -302,10 +306,6 @@ process.env.NODE_ENV !== "production" ? SingleInputDateRangeField.propTypes = {
302
306
  * @default The timezone of the `value` or `defaultValue` prop is defined, 'default' otherwise.
303
307
  */
304
308
  timezone: PropTypes.string,
305
- /**
306
- * The ref object used to imperatively interact with the field.
307
- */
308
- unstableFieldRef: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),
309
309
  /**
310
310
  * The selected value.
311
311
  * Used when the component is controlled.
@@ -124,6 +124,10 @@ process.env.NODE_ENV !== "production" ? SingleInputDateTimeRangeField.propTypes
124
124
  * @default true
125
125
  */
126
126
  enableAccessibleFieldDOMStructure: _propTypes.default.bool,
127
+ /**
128
+ * The ref object used to imperatively interact with the field.
129
+ */
130
+ fieldRef: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]),
127
131
  /**
128
132
  * If `true`, the component is displayed in focused state.
129
133
  */
@@ -349,10 +353,6 @@ process.env.NODE_ENV !== "production" ? SingleInputDateTimeRangeField.propTypes
349
353
  * @default The timezone of the `value` or `defaultValue` prop is defined, 'default' otherwise.
350
354
  */
351
355
  timezone: _propTypes.default.string,
352
- /**
353
- * The ref object used to imperatively interact with the field.
354
- */
355
- unstableFieldRef: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]),
356
356
  /**
357
357
  * The selected value.
358
358
  * Used when the component is controlled.
@@ -117,6 +117,10 @@ process.env.NODE_ENV !== "production" ? SingleInputDateTimeRangeField.propTypes
117
117
  * @default true
118
118
  */
119
119
  enableAccessibleFieldDOMStructure: PropTypes.bool,
120
+ /**
121
+ * The ref object used to imperatively interact with the field.
122
+ */
123
+ fieldRef: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),
120
124
  /**
121
125
  * If `true`, the component is displayed in focused state.
122
126
  */
@@ -342,10 +346,6 @@ process.env.NODE_ENV !== "production" ? SingleInputDateTimeRangeField.propTypes
342
346
  * @default The timezone of the `value` or `defaultValue` prop is defined, 'default' otherwise.
343
347
  */
344
348
  timezone: PropTypes.string,
345
- /**
346
- * The ref object used to imperatively interact with the field.
347
- */
348
- unstableFieldRef: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),
349
349
  /**
350
350
  * The selected value.
351
351
  * Used when the component is controlled.
@@ -124,6 +124,10 @@ process.env.NODE_ENV !== "production" ? SingleInputTimeRangeField.propTypes = {
124
124
  * @default true
125
125
  */
126
126
  enableAccessibleFieldDOMStructure: _propTypes.default.bool,
127
+ /**
128
+ * The ref object used to imperatively interact with the field.
129
+ */
130
+ fieldRef: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]),
127
131
  /**
128
132
  * If `true`, the component is displayed in focused state.
129
133
  */
@@ -321,10 +325,6 @@ process.env.NODE_ENV !== "production" ? SingleInputTimeRangeField.propTypes = {
321
325
  * @default The timezone of the `value` or `defaultValue` prop is defined, 'default' otherwise.
322
326
  */
323
327
  timezone: _propTypes.default.string,
324
- /**
325
- * The ref object used to imperatively interact with the field.
326
- */
327
- unstableFieldRef: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]),
328
328
  /**
329
329
  * The selected value.
330
330
  * Used when the component is controlled.
@@ -117,6 +117,10 @@ process.env.NODE_ENV !== "production" ? SingleInputTimeRangeField.propTypes = {
117
117
  * @default true
118
118
  */
119
119
  enableAccessibleFieldDOMStructure: PropTypes.bool,
120
+ /**
121
+ * The ref object used to imperatively interact with the field.
122
+ */
123
+ fieldRef: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),
120
124
  /**
121
125
  * If `true`, the component is displayed in focused state.
122
126
  */
@@ -314,10 +318,6 @@ process.env.NODE_ENV !== "production" ? SingleInputTimeRangeField.propTypes = {
314
318
  * @default The timezone of the `value` or `defaultValue` prop is defined, 'default' otherwise.
315
319
  */
316
320
  timezone: PropTypes.string,
317
- /**
318
- * The ref object used to imperatively interact with the field.
319
- */
320
- unstableFieldRef: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),
321
321
  /**
322
322
  * The selected value.
323
323
  * Used when the component is controlled.
@@ -74,8 +74,8 @@ function useMultiInputRangeField(parameters) {
74
74
  enableAccessibleFieldDOMStructure,
75
75
  autoFocus,
76
76
  referenceDate,
77
- unstableStartFieldRef,
78
- unstableEndFieldRef
77
+ startFieldRef,
78
+ endFieldRef
79
79
  } = internalPropsWithDefaults;
80
80
  const {
81
81
  value,
@@ -100,8 +100,8 @@ function useMultiInputRangeField(parameters) {
100
100
  const selectedSectionsResponse = (0, _useMultiInputRangeFieldSelectedSections.useMultiInputRangeFieldSelectedSections)({
101
101
  selectedSections,
102
102
  onSelectedSectionsChange,
103
- unstableStartFieldRef,
104
- unstableEndFieldRef
103
+ startFieldRef,
104
+ endFieldRef
105
105
  });
106
106
  const sharedInternalProps = {
107
107
  disabled,
@@ -70,8 +70,8 @@ export function useMultiInputRangeField(parameters) {
70
70
  enableAccessibleFieldDOMStructure,
71
71
  autoFocus,
72
72
  referenceDate,
73
- unstableStartFieldRef,
74
- unstableEndFieldRef
73
+ startFieldRef,
74
+ endFieldRef
75
75
  } = internalPropsWithDefaults;
76
76
  const {
77
77
  value,
@@ -96,8 +96,8 @@ export function useMultiInputRangeField(parameters) {
96
96
  const selectedSectionsResponse = useMultiInputRangeFieldSelectedSections({
97
97
  selectedSections,
98
98
  onSelectedSectionsChange,
99
- unstableStartFieldRef,
100
- unstableEndFieldRef
99
+ startFieldRef,
100
+ endFieldRef
101
101
  });
102
102
  const sharedInternalProps = {
103
103
  disabled,
@@ -4,7 +4,10 @@ import { FieldRef, FieldSelectedSections } from '@mui/x-date-pickers/models';
4
4
  import { MultiInputFieldRefs } from "../../models/index.mjs";
5
5
  interface UseMultiInputRangeFieldSelectedSectionsParameters extends Pick<UseFieldInternalProps<PickerRangeValue, any, any>, 'selectedSections' | 'onSelectedSectionsChange'>, MultiInputFieldRefs {}
6
6
  export interface UseMultiInputFieldSelectedSectionsResponseItem {
7
- unstableFieldRef?: React.Ref<FieldRef<PickerValue>>;
7
+ /**
8
+ * The ref object used to imperatively interact with the field.
9
+ */
10
+ fieldRef?: React.Ref<FieldRef<PickerValue>>;
8
11
  selectedSections: FieldSelectedSections;
9
12
  onSelectedSectionsChange: (newSelectedSections: FieldSelectedSections) => void;
10
13
  }
@@ -4,7 +4,10 @@ import { FieldRef, FieldSelectedSections } from '@mui/x-date-pickers/models';
4
4
  import { MultiInputFieldRefs } from "../../models/index.js";
5
5
  interface UseMultiInputRangeFieldSelectedSectionsParameters extends Pick<UseFieldInternalProps<PickerRangeValue, any, any>, 'selectedSections' | 'onSelectedSectionsChange'>, MultiInputFieldRefs {}
6
6
  export interface UseMultiInputFieldSelectedSectionsResponseItem {
7
- unstableFieldRef?: React.Ref<FieldRef<PickerValue>>;
7
+ /**
8
+ * The ref object used to imperatively interact with the field.
9
+ */
10
+ fieldRef?: React.Ref<FieldRef<PickerValue>>;
8
11
  selectedSections: FieldSelectedSections;
9
12
  onSelectedSectionsChange: (newSelectedSections: FieldSelectedSections) => void;
10
13
  }
@@ -14,12 +14,12 @@ var _useEventCallback = _interopRequireDefault(require("@mui/utils/useEventCallb
14
14
  * @ignore - internal hook.
15
15
  */
16
16
  const useMultiInputRangeFieldSelectedSections = parameters => {
17
- const unstableEndFieldRef = React.useRef(null);
18
- const handleUnstableEndFieldRef = (0, _useForkRef.default)(parameters.unstableEndFieldRef, unstableEndFieldRef);
17
+ const endFieldRef = React.useRef(null);
18
+ const handleEndFieldRef = (0, _useForkRef.default)(parameters.endFieldRef, endFieldRef);
19
19
  const [startSelectedSection, setStartSelectedSection] = React.useState(parameters.selectedSections ?? null);
20
20
  const [endSelectedSection, setEndSelectedSection] = React.useState(null);
21
21
  const getActiveField = () => {
22
- if (unstableEndFieldRef.current && unstableEndFieldRef.current.isFieldFocused()) {
22
+ if (endFieldRef.current && endFieldRef.current.isFieldFocused()) {
23
23
  return 'end';
24
24
  }
25
25
  return 'start';
@@ -39,12 +39,12 @@ const useMultiInputRangeFieldSelectedSections = parameters => {
39
39
  const activeField = getActiveField();
40
40
  return {
41
41
  start: {
42
- unstableFieldRef: parameters.unstableStartFieldRef,
42
+ fieldRef: parameters.startFieldRef,
43
43
  selectedSections: activeField === 'start' && parameters.selectedSections !== undefined ? parameters.selectedSections : startSelectedSection,
44
44
  onSelectedSectionsChange: handleStartSelectedSectionChange
45
45
  },
46
46
  end: {
47
- unstableFieldRef: handleUnstableEndFieldRef,
47
+ fieldRef: handleEndFieldRef,
48
48
  selectedSections: activeField === 'end' && parameters.selectedSections !== undefined ? parameters.selectedSections : endSelectedSection,
49
49
  onSelectedSectionsChange: handleEndSelectedSectionChange
50
50
  }
@@ -7,12 +7,12 @@ import useEventCallback from '@mui/utils/useEventCallback';
7
7
  * @ignore - internal hook.
8
8
  */
9
9
  export const useMultiInputRangeFieldSelectedSections = parameters => {
10
- const unstableEndFieldRef = React.useRef(null);
11
- const handleUnstableEndFieldRef = useForkRef(parameters.unstableEndFieldRef, unstableEndFieldRef);
10
+ const endFieldRef = React.useRef(null);
11
+ const handleEndFieldRef = useForkRef(parameters.endFieldRef, endFieldRef);
12
12
  const [startSelectedSection, setStartSelectedSection] = React.useState(parameters.selectedSections ?? null);
13
13
  const [endSelectedSection, setEndSelectedSection] = React.useState(null);
14
14
  const getActiveField = () => {
15
- if (unstableEndFieldRef.current && unstableEndFieldRef.current.isFieldFocused()) {
15
+ if (endFieldRef.current && endFieldRef.current.isFieldFocused()) {
16
16
  return 'end';
17
17
  }
18
18
  return 'start';
@@ -32,12 +32,12 @@ export const useMultiInputRangeFieldSelectedSections = parameters => {
32
32
  const activeField = getActiveField();
33
33
  return {
34
34
  start: {
35
- unstableFieldRef: parameters.unstableStartFieldRef,
35
+ fieldRef: parameters.startFieldRef,
36
36
  selectedSections: activeField === 'start' && parameters.selectedSections !== undefined ? parameters.selectedSections : startSelectedSection,
37
37
  onSelectedSectionsChange: handleStartSelectedSectionChange
38
38
  },
39
39
  end: {
40
- unstableFieldRef: handleUnstableEndFieldRef,
40
+ fieldRef: handleEndFieldRef,
41
41
  selectedSections: activeField === 'end' && parameters.selectedSections !== undefined ? parameters.selectedSections : endSelectedSection,
42
42
  onSelectedSectionsChange: handleEndSelectedSectionChange
43
43
  }
@@ -121,8 +121,8 @@ function useTextFieldProps(parameters) {
121
121
  if (!pickerContext?.open || pickerContext?.variant === 'mobile') {
122
122
  return;
123
123
  }
124
- fieldPrivateContext?.fieldRef.current?.focusField();
125
- if (!fieldPrivateContext?.fieldRef.current || pickerContext.view === pickerContext.initialView) {
124
+ fieldPrivateContext?.fieldRef?.current?.focusField();
125
+ if (!fieldPrivateContext?.fieldRef?.current || pickerContext.view === pickerContext.initialView) {
126
126
  // could happen when the user is switching between the inputs
127
127
  previousRangePosition.current = rangePosition;
128
128
  return;
@@ -114,8 +114,8 @@ export function useTextFieldProps(parameters) {
114
114
  if (!pickerContext?.open || pickerContext?.variant === 'mobile') {
115
115
  return;
116
116
  }
117
- fieldPrivateContext?.fieldRef.current?.focusField();
118
- if (!fieldPrivateContext?.fieldRef.current || pickerContext.view === pickerContext.initialView) {
117
+ fieldPrivateContext?.fieldRef?.current?.focusField();
118
+ if (!fieldPrivateContext?.fieldRef?.current || pickerContext.view === pickerContext.initialView) {
119
119
  // could happen when the user is switching between the inputs
120
120
  previousRangePosition.current = rangePosition;
121
121
  return;
package/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-date-pickers-pro v9.0.0-alpha.3
2
+ * @mui/x-date-pickers-pro v9.0.0-alpha.4
3
3
  *
4
4
  * @license SEE LICENSE IN LICENSE
5
5
  * This source code is licensed under the SEE LICENSE IN LICENSE license found in the
package/index.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-date-pickers-pro v9.0.0-alpha.3
2
+ * @mui/x-date-pickers-pro v9.0.0-alpha.4
3
3
  *
4
4
  * @license SEE LICENSE IN LICENSE
5
5
  * This source code is licensed under the SEE LICENSE IN LICENSE license found in the
@@ -26,8 +26,8 @@ const useDesktopRangePicker = _ref => {
26
26
  } = _ref,
27
27
  pickerParams = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded);
28
28
  (0, _internals.useLicenseVerifier)({
29
- releaseDate: "MTc3MzI3MzYwMDAwMA==",
30
- version: process.env.MUI_VERSION,
29
+ releaseDate: "MTc3Mzk2NDgwMDAwMA==",
30
+ version: "9.0.0-alpha.4",
31
31
  name: 'x-date-pickers-pro'
32
32
  });
33
33
  const {
@@ -19,8 +19,8 @@ export const useDesktopRangePicker = _ref => {
19
19
  } = _ref,
20
20
  pickerParams = _objectWithoutPropertiesLoose(_ref, _excluded);
21
21
  useLicenseVerifier({
22
- releaseDate: "MTc3MzI3MzYwMDAwMA==",
23
- version: process.env.MUI_VERSION,
22
+ releaseDate: "MTc3Mzk2NDgwMDAwMA==",
23
+ version: "9.0.0-alpha.4",
24
24
  name: 'x-date-pickers-pro'
25
25
  });
26
26
  const {
@@ -1,8 +1,9 @@
1
1
  import { SlotComponentPropsFromProps } from '@mui/x-internals/types';
2
- import { PickerFieldSlotProps, PickerOwnerState } from '@mui/x-date-pickers/models';
2
+ import { PickerOwnerState } from '@mui/x-date-pickers/models';
3
3
  import { PickerPopperSlots, PickerPopperSlotProps, UsePickerProps, DateOrTimeViewWithMeridiem, PickerRangeValue, PickerFieldUISlotsFromContext, PickerFieldUISlotPropsFromContext } from '@mui/x-date-pickers/internals';
4
4
  import { ExportedPickersLayoutSlotProps, ExportedPickersLayoutSlots } from '@mui/x-date-pickers/PickersLayout';
5
5
  import { NonStaticRangePickerProps, NonStaticRangePickerHookParameters, UseRangePickerProps } from "../../models/index.mjs";
6
+ import { PickerRangeFieldSlotProps } from "../../../models/index.mjs";
6
7
  export interface UseDesktopRangePickerSlots extends PickerPopperSlots, ExportedPickersLayoutSlots<PickerRangeValue>, PickerFieldUISlotsFromContext {
7
8
  /**
8
9
  * Component used to enter the date with the keyboard.
@@ -10,9 +11,7 @@ export interface UseDesktopRangePickerSlots extends PickerPopperSlots, ExportedP
10
11
  field: React.ElementType;
11
12
  }
12
13
  export interface UseDesktopRangePickerSlotProps<TEnableAccessibleFieldDOMStructure extends boolean> extends PickerPopperSlotProps, ExportedPickersLayoutSlotProps<PickerRangeValue>, PickerFieldUISlotPropsFromContext {
13
- field?: SlotComponentPropsFromProps<PickerFieldSlotProps<PickerRangeValue, TEnableAccessibleFieldDOMStructure> & {
14
- dateSeparator?: string;
15
- }, {}, PickerOwnerState>;
14
+ field?: SlotComponentPropsFromProps<PickerRangeFieldSlotProps<TEnableAccessibleFieldDOMStructure>, {}, PickerOwnerState>;
16
15
  }
17
16
  export interface DesktopRangeOnlyPickerProps extends NonStaticRangePickerProps {
18
17
  /**
@@ -1,8 +1,9 @@
1
1
  import { SlotComponentPropsFromProps } from '@mui/x-internals/types';
2
- import { PickerFieldSlotProps, PickerOwnerState } from '@mui/x-date-pickers/models';
2
+ import { PickerOwnerState } from '@mui/x-date-pickers/models';
3
3
  import { PickerPopperSlots, PickerPopperSlotProps, UsePickerProps, DateOrTimeViewWithMeridiem, PickerRangeValue, PickerFieldUISlotsFromContext, PickerFieldUISlotPropsFromContext } from '@mui/x-date-pickers/internals';
4
4
  import { ExportedPickersLayoutSlotProps, ExportedPickersLayoutSlots } from '@mui/x-date-pickers/PickersLayout';
5
5
  import { NonStaticRangePickerProps, NonStaticRangePickerHookParameters, UseRangePickerProps } from "../../models/index.js";
6
+ import { PickerRangeFieldSlotProps } from "../../../models/index.js";
6
7
  export interface UseDesktopRangePickerSlots extends PickerPopperSlots, ExportedPickersLayoutSlots<PickerRangeValue>, PickerFieldUISlotsFromContext {
7
8
  /**
8
9
  * Component used to enter the date with the keyboard.
@@ -10,9 +11,7 @@ export interface UseDesktopRangePickerSlots extends PickerPopperSlots, ExportedP
10
11
  field: React.ElementType;
11
12
  }
12
13
  export interface UseDesktopRangePickerSlotProps<TEnableAccessibleFieldDOMStructure extends boolean> extends PickerPopperSlotProps, ExportedPickersLayoutSlotProps<PickerRangeValue>, PickerFieldUISlotPropsFromContext {
13
- field?: SlotComponentPropsFromProps<PickerFieldSlotProps<PickerRangeValue, TEnableAccessibleFieldDOMStructure> & {
14
- dateSeparator?: string;
15
- }, {}, PickerOwnerState>;
14
+ field?: SlotComponentPropsFromProps<PickerRangeFieldSlotProps<TEnableAccessibleFieldDOMStructure>, {}, PickerOwnerState>;
16
15
  }
17
16
  export interface DesktopRangeOnlyPickerProps extends NonStaticRangePickerProps {
18
17
  /**
@@ -28,8 +28,8 @@ const useMobileRangePicker = _ref => {
28
28
  } = _ref,
29
29
  pickerParams = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded);
30
30
  (0, _internals.useLicenseVerifier)({
31
- releaseDate: "MTc3MzI3MzYwMDAwMA==",
32
- version: process.env.MUI_VERSION,
31
+ releaseDate: "MTc3Mzk2NDgwMDAwMA==",
32
+ version: "9.0.0-alpha.4",
33
33
  name: 'x-date-pickers-pro'
34
34
  });
35
35
  const {
@@ -21,8 +21,8 @@ export const useMobileRangePicker = _ref => {
21
21
  } = _ref,
22
22
  pickerParams = _objectWithoutPropertiesLoose(_ref, _excluded);
23
23
  useLicenseVerifier({
24
- releaseDate: "MTc3MzI3MzYwMDAwMA==",
25
- version: process.env.MUI_VERSION,
24
+ releaseDate: "MTc3Mzk2NDgwMDAwMA==",
25
+ version: "9.0.0-alpha.4",
26
26
  name: 'x-date-pickers-pro'
27
27
  });
28
28
  const {
@@ -1,8 +1,9 @@
1
1
  import { SlotComponentPropsFromProps } from '@mui/x-internals/types';
2
- import { PickerFieldSlotProps, PickerOwnerState } from '@mui/x-date-pickers/models';
2
+ import { PickerOwnerState } from '@mui/x-date-pickers/models';
3
3
  import { PickersModalDialogSlots, PickersModalDialogSlotProps, UsePickerProps, DateOrTimeViewWithMeridiem, PickerRangeValue, PickerFieldUISlotsFromContext, PickerFieldUISlotPropsFromContext } from '@mui/x-date-pickers/internals';
4
4
  import { ExportedPickersLayoutSlotProps, ExportedPickersLayoutSlots, PickersLayoutSlotProps } from '@mui/x-date-pickers/PickersLayout';
5
5
  import { NonStaticRangePickerProps, NonStaticRangePickerHookParameters, UseRangePickerProps } from "../../models/index.mjs";
6
+ import { PickerRangeFieldSlotProps } from "../../../models/index.mjs";
6
7
  export interface UseMobileRangePickerSlots extends PickersModalDialogSlots, ExportedPickersLayoutSlots<PickerRangeValue>, PickerFieldUISlotsFromContext {
7
8
  /**
8
9
  * Component used to enter the date with the keyboard.
@@ -10,9 +11,7 @@ export interface UseMobileRangePickerSlots extends PickersModalDialogSlots, Expo
10
11
  field: React.ElementType;
11
12
  }
12
13
  export interface ExportedUseMobileRangePickerSlotProps<TEnableAccessibleFieldDOMStructure extends boolean> extends PickersModalDialogSlotProps, ExportedPickersLayoutSlotProps<PickerRangeValue>, PickerFieldUISlotPropsFromContext {
13
- field?: SlotComponentPropsFromProps<PickerFieldSlotProps<PickerRangeValue, TEnableAccessibleFieldDOMStructure> & {
14
- dateSeparator?: string;
15
- }, {}, PickerOwnerState>;
14
+ field?: SlotComponentPropsFromProps<PickerRangeFieldSlotProps<TEnableAccessibleFieldDOMStructure>, {}, PickerOwnerState>;
16
15
  }
17
16
  export interface UseMobileRangePickerSlotProps<TEnableAccessibleFieldDOMStructure extends boolean> extends ExportedUseMobileRangePickerSlotProps<TEnableAccessibleFieldDOMStructure>, Pick<PickersLayoutSlotProps<PickerRangeValue>, 'toolbar'> {}
18
17
  export interface MobileRangeOnlyPickerProps extends NonStaticRangePickerProps {}
@@ -1,8 +1,9 @@
1
1
  import { SlotComponentPropsFromProps } from '@mui/x-internals/types';
2
- import { PickerFieldSlotProps, PickerOwnerState } from '@mui/x-date-pickers/models';
2
+ import { PickerOwnerState } from '@mui/x-date-pickers/models';
3
3
  import { PickersModalDialogSlots, PickersModalDialogSlotProps, UsePickerProps, DateOrTimeViewWithMeridiem, PickerRangeValue, PickerFieldUISlotsFromContext, PickerFieldUISlotPropsFromContext } from '@mui/x-date-pickers/internals';
4
4
  import { ExportedPickersLayoutSlotProps, ExportedPickersLayoutSlots, PickersLayoutSlotProps } from '@mui/x-date-pickers/PickersLayout';
5
5
  import { NonStaticRangePickerProps, NonStaticRangePickerHookParameters, UseRangePickerProps } from "../../models/index.js";
6
+ import { PickerRangeFieldSlotProps } from "../../../models/index.js";
6
7
  export interface UseMobileRangePickerSlots extends PickersModalDialogSlots, ExportedPickersLayoutSlots<PickerRangeValue>, PickerFieldUISlotsFromContext {
7
8
  /**
8
9
  * Component used to enter the date with the keyboard.
@@ -10,9 +11,7 @@ export interface UseMobileRangePickerSlots extends PickersModalDialogSlots, Expo
10
11
  field: React.ElementType;
11
12
  }
12
13
  export interface ExportedUseMobileRangePickerSlotProps<TEnableAccessibleFieldDOMStructure extends boolean> extends PickersModalDialogSlotProps, ExportedPickersLayoutSlotProps<PickerRangeValue>, PickerFieldUISlotPropsFromContext {
13
- field?: SlotComponentPropsFromProps<PickerFieldSlotProps<PickerRangeValue, TEnableAccessibleFieldDOMStructure> & {
14
- dateSeparator?: string;
15
- }, {}, PickerOwnerState>;
14
+ field?: SlotComponentPropsFromProps<PickerRangeFieldSlotProps<TEnableAccessibleFieldDOMStructure>, {}, PickerOwnerState>;
16
15
  }
17
16
  export interface UseMobileRangePickerSlotProps<TEnableAccessibleFieldDOMStructure extends boolean> extends ExportedUseMobileRangePickerSlotProps<TEnableAccessibleFieldDOMStructure>, Pick<PickersLayoutSlotProps<PickerRangeValue>, 'toolbar'> {}
18
17
  export interface MobileRangeOnlyPickerProps extends NonStaticRangePickerProps {}
@@ -7,7 +7,7 @@ import { FieldOwnerState } from '@mui/x-date-pickers/models';
7
7
  import { PickerManagerEnableAccessibleFieldDOMStructure, PickerManagerFieldInternalProps } from '@mui/x-date-pickers/internals';
8
8
  import { FieldType, MultiInputFieldRefs, RangeFieldSeparatorProps, RangePosition } from "../../../models/index.mjs";
9
9
  import { PickerAnyRangeManager } from "../../models/managers.mjs";
10
- export type MultiInputRangeFieldProps<TManager extends PickerAnyRangeManager> = MultiInputFieldRefs & RangeFieldSeparatorProps & Omit<PickerManagerFieldInternalProps<TManager>, 'unstableFieldRef' | 'clearable' | 'onClear' | 'focused'> & Omit<StackProps, 'position' | keyof PickerManagerFieldInternalProps<TManager>> & {
10
+ export type MultiInputRangeFieldProps<TManager extends PickerAnyRangeManager> = MultiInputFieldRefs & RangeFieldSeparatorProps & Omit<PickerManagerFieldInternalProps<TManager>, 'fieldRef' | 'clearable' | 'onClear' | 'focused'> & Omit<StackProps, 'position' | keyof PickerManagerFieldInternalProps<TManager>> & {
11
11
  /**
12
12
  * If `true`, the field is focused during the first mount.
13
13
  * @default false
@@ -7,7 +7,7 @@ import { FieldOwnerState } from '@mui/x-date-pickers/models';
7
7
  import { PickerManagerEnableAccessibleFieldDOMStructure, PickerManagerFieldInternalProps } from '@mui/x-date-pickers/internals';
8
8
  import { FieldType, MultiInputFieldRefs, RangeFieldSeparatorProps, RangePosition } from "../../../models/index.js";
9
9
  import { PickerAnyRangeManager } from "../../models/managers.js";
10
- export type MultiInputRangeFieldProps<TManager extends PickerAnyRangeManager> = MultiInputFieldRefs & RangeFieldSeparatorProps & Omit<PickerManagerFieldInternalProps<TManager>, 'unstableFieldRef' | 'clearable' | 'onClear' | 'focused'> & Omit<StackProps, 'position' | keyof PickerManagerFieldInternalProps<TManager>> & {
10
+ export type MultiInputRangeFieldProps<TManager extends PickerAnyRangeManager> = MultiInputFieldRefs & RangeFieldSeparatorProps & Omit<PickerManagerFieldInternalProps<TManager>, 'fieldRef' | 'clearable' | 'onClear' | 'focused'> & Omit<StackProps, 'position' | keyof PickerManagerFieldInternalProps<TManager>> & {
11
11
  /**
12
12
  * If `true`, the field is focused during the first mount.
13
13
  * @default false
@@ -1,5 +1,5 @@
1
1
  import * as React from 'react';
2
- import { PickerValue, PickerRangeValue } from '@mui/x-date-pickers/internals';
2
+ import { PickerRangeValue, PickerValidValue, PickerValue } from '@mui/x-date-pickers/internals';
3
3
  import { FieldRef, PickerFieldSlotProps } from '@mui/x-date-pickers/models';
4
4
  import type { UseMultiInputRangeFieldTextFieldProps } from "../hooks/useMultiInputRangeField/index.mjs";
5
5
  export type { FieldRangeSection } from '@mui/x-date-pickers/internals';
@@ -17,9 +17,15 @@ export type MultiInputFieldSlotTextFieldProps<TEnableAccessibleFieldDOMStructure
17
17
  export interface MultiInputFieldSlotRootProps {
18
18
  onBlur?: React.FocusEventHandler;
19
19
  }
20
- export interface MultiInputFieldRefs {
21
- unstableStartFieldRef?: React.Ref<FieldRef<PickerValue>>;
22
- unstableEndFieldRef?: React.Ref<FieldRef<PickerValue>>;
20
+ export interface MultiInputFieldRefs<TValue extends PickerValidValue = PickerValue> {
21
+ /**
22
+ * The ref object used to interact with the start field imperatively.
23
+ */
24
+ startFieldRef?: React.Ref<FieldRef<TValue> | null>;
25
+ /**
26
+ * The ref object used to interact with the end field imperatively.
27
+ */
28
+ endFieldRef?: React.Ref<FieldRef<TValue> | null>;
23
29
  }
24
30
  export interface RangeFieldSeparatorProps {
25
31
  /**
@@ -1,5 +1,5 @@
1
1
  import * as React from 'react';
2
- import { PickerValue, PickerRangeValue } from '@mui/x-date-pickers/internals';
2
+ import { PickerRangeValue, PickerValidValue, PickerValue } from '@mui/x-date-pickers/internals';
3
3
  import { FieldRef, PickerFieldSlotProps } from '@mui/x-date-pickers/models';
4
4
  import type { UseMultiInputRangeFieldTextFieldProps } from "../hooks/useMultiInputRangeField/index.js";
5
5
  export type { FieldRangeSection } from '@mui/x-date-pickers/internals';
@@ -17,9 +17,15 @@ export type MultiInputFieldSlotTextFieldProps<TEnableAccessibleFieldDOMStructure
17
17
  export interface MultiInputFieldSlotRootProps {
18
18
  onBlur?: React.FocusEventHandler;
19
19
  }
20
- export interface MultiInputFieldRefs {
21
- unstableStartFieldRef?: React.Ref<FieldRef<PickerValue>>;
22
- unstableEndFieldRef?: React.Ref<FieldRef<PickerValue>>;
20
+ export interface MultiInputFieldRefs<TValue extends PickerValidValue = PickerValue> {
21
+ /**
22
+ * The ref object used to interact with the start field imperatively.
23
+ */
24
+ startFieldRef?: React.Ref<FieldRef<TValue> | null>;
25
+ /**
26
+ * The ref object used to interact with the end field imperatively.
27
+ */
28
+ endFieldRef?: React.Ref<FieldRef<TValue> | null>;
23
29
  }
24
30
  export interface RangeFieldSeparatorProps {
25
31
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mui/x-date-pickers-pro",
3
- "version": "9.0.0-alpha.3",
3
+ "version": "9.0.0-alpha.4",
4
4
  "author": "MUI Team",
5
5
  "description": "The Pro plan edition of the MUI X Date and Time Picker components.",
6
6
  "license": "SEE LICENSE IN LICENSE",
@@ -35,9 +35,9 @@
35
35
  "clsx": "^2.1.1",
36
36
  "prop-types": "^15.8.1",
37
37
  "react-transition-group": "^4.4.5",
38
- "@mui/x-internals": "9.0.0-alpha.2",
39
- "@mui/x-license": "9.0.0-alpha.3",
40
- "@mui/x-date-pickers": "9.0.0-alpha.3"
38
+ "@mui/x-date-pickers": "9.0.0-alpha.4",
39
+ "@mui/x-internals": "9.0.0-alpha.4",
40
+ "@mui/x-license": "9.0.0-alpha.4"
41
41
  },
42
42
  "peerDependencies": {
43
43
  "@emotion/react": "^11.9.0",