@mui/x-date-pickers-pro 7.16.0 → 7.17.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 (110) hide show
  1. package/CHANGELOG.md +87 -0
  2. package/DateRangeCalendar/DateRangeCalendar.js +5 -2
  3. package/DateRangeCalendar/useDragRange.js +2 -0
  4. package/DateRangePicker/DateRangePicker.js +2 -0
  5. package/DateRangePicker/DateRangePickerToolbar.js +2 -0
  6. package/DateRangePickerDay/DateRangePickerDay.js +2 -0
  7. package/DateTimeRangePicker/DateTimeRangePicker.js +2 -0
  8. package/DateTimeRangePicker/DateTimeRangePickerTabs.js +2 -0
  9. package/DateTimeRangePicker/DateTimeRangePickerToolbar.js +2 -0
  10. package/DesktopDateRangePicker/DesktopDateRangePicker.js +4 -2
  11. package/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.js +5 -2
  12. package/MobileDateRangePicker/MobileDateRangePicker.js +4 -2
  13. package/MobileDateTimeRangePicker/MobileDateTimeRangePicker.js +5 -2
  14. package/MultiInputDateRangeField/MultiInputDateRangeField.js +5 -2
  15. package/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +5 -2
  16. package/MultiInputTimeRangeField/MultiInputTimeRangeField.js +5 -2
  17. package/PickersRangeCalendarHeader/PickersRangeCalendarHeader.js +2 -0
  18. package/SingleInputDateRangeField/SingleInputDateRangeField.js +2 -0
  19. package/SingleInputDateRangeField/useSingleInputDateRangeField.d.ts +1 -1
  20. package/SingleInputDateRangeField/useSingleInputDateRangeField.js +6 -3
  21. package/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.js +2 -0
  22. package/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.d.ts +1 -1
  23. package/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.js +6 -3
  24. package/SingleInputTimeRangeField/SingleInputTimeRangeField.js +2 -0
  25. package/SingleInputTimeRangeField/useSingleInputTimeRangeField.d.ts +1 -1
  26. package/SingleInputTimeRangeField/useSingleInputTimeRangeField.js +6 -3
  27. package/StaticDateRangePicker/StaticDateRangePicker.js +3 -1
  28. package/index.d.ts +1 -0
  29. package/index.js +3 -2
  30. package/internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField.js +14 -14
  31. package/internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.js +14 -14
  32. package/internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js +14 -14
  33. package/internals/utils/releaseInfo.js +1 -1
  34. package/modern/DateRangeCalendar/DateRangeCalendar.js +5 -2
  35. package/modern/DateRangeCalendar/useDragRange.js +2 -0
  36. package/modern/DateRangePicker/DateRangePicker.js +2 -0
  37. package/modern/DateRangePicker/DateRangePickerToolbar.js +2 -0
  38. package/modern/DateRangePickerDay/DateRangePickerDay.js +2 -0
  39. package/modern/DateTimeRangePicker/DateTimeRangePicker.js +2 -0
  40. package/modern/DateTimeRangePicker/DateTimeRangePickerTabs.js +2 -0
  41. package/modern/DateTimeRangePicker/DateTimeRangePickerToolbar.js +2 -0
  42. package/modern/DesktopDateRangePicker/DesktopDateRangePicker.js +4 -2
  43. package/modern/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.js +5 -2
  44. package/modern/MobileDateRangePicker/MobileDateRangePicker.js +4 -2
  45. package/modern/MobileDateTimeRangePicker/MobileDateTimeRangePicker.js +5 -2
  46. package/modern/MultiInputDateRangeField/MultiInputDateRangeField.js +5 -2
  47. package/modern/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +5 -2
  48. package/modern/MultiInputTimeRangeField/MultiInputTimeRangeField.js +5 -2
  49. package/modern/PickersRangeCalendarHeader/PickersRangeCalendarHeader.js +2 -0
  50. package/modern/SingleInputDateRangeField/SingleInputDateRangeField.js +2 -0
  51. package/modern/SingleInputDateRangeField/useSingleInputDateRangeField.js +6 -3
  52. package/modern/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.js +2 -0
  53. package/modern/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.js +6 -3
  54. package/modern/SingleInputTimeRangeField/SingleInputTimeRangeField.js +2 -0
  55. package/modern/SingleInputTimeRangeField/useSingleInputTimeRangeField.js +6 -3
  56. package/modern/StaticDateRangePicker/StaticDateRangePicker.js +3 -1
  57. package/modern/index.js +3 -2
  58. package/modern/internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField.js +14 -14
  59. package/modern/internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.js +14 -14
  60. package/modern/internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js +14 -14
  61. package/modern/internals/utils/releaseInfo.js +1 -1
  62. package/modern/validation/index.js +3 -0
  63. package/modern/{internals/utils/validation → validation}/validateDateRange.js +10 -5
  64. package/modern/{internals/utils/validation → validation}/validateDateTimeRange.js +10 -5
  65. package/{internals/utils → modern}/validation/validateTimeRange.js +10 -5
  66. package/node/DateRangeCalendar/DateRangeCalendar.js +4 -2
  67. package/node/DateRangeCalendar/useDragRange.js +1 -0
  68. package/node/DateRangePicker/DateRangePicker.js +1 -0
  69. package/node/DateRangePicker/DateRangePickerToolbar.js +1 -0
  70. package/node/DateRangePickerDay/DateRangePickerDay.js +1 -0
  71. package/node/DateTimeRangePicker/DateTimeRangePicker.js +1 -0
  72. package/node/DateTimeRangePicker/DateTimeRangePickerTabs.js +1 -0
  73. package/node/DateTimeRangePicker/DateTimeRangePickerToolbar.js +1 -0
  74. package/node/DesktopDateRangePicker/DesktopDateRangePicker.js +5 -4
  75. package/node/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.js +5 -3
  76. package/node/MobileDateRangePicker/MobileDateRangePicker.js +5 -4
  77. package/node/MobileDateTimeRangePicker/MobileDateTimeRangePicker.js +5 -3
  78. package/node/MultiInputDateRangeField/MultiInputDateRangeField.js +3 -1
  79. package/node/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +3 -1
  80. package/node/MultiInputTimeRangeField/MultiInputTimeRangeField.js +3 -1
  81. package/node/PickersRangeCalendarHeader/PickersRangeCalendarHeader.js +1 -0
  82. package/node/SingleInputDateRangeField/SingleInputDateRangeField.js +1 -0
  83. package/node/SingleInputDateRangeField/useSingleInputDateRangeField.js +5 -3
  84. package/node/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.js +1 -0
  85. package/node/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.js +5 -3
  86. package/node/SingleInputTimeRangeField/SingleInputTimeRangeField.js +1 -0
  87. package/node/SingleInputTimeRangeField/useSingleInputTimeRangeField.js +5 -3
  88. package/node/StaticDateRangePicker/StaticDateRangePicker.js +3 -2
  89. package/node/index.js +13 -1
  90. package/node/internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField.js +13 -13
  91. package/node/internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.js +13 -13
  92. package/node/internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js +13 -13
  93. package/node/internals/utils/releaseInfo.js +1 -1
  94. package/node/validation/index.js +26 -0
  95. package/node/{internals/utils/validation → validation}/validateDateRange.js +12 -7
  96. package/node/{internals/utils/validation → validation}/validateDateTimeRange.js +12 -7
  97. package/node/{internals/utils/validation → validation}/validateTimeRange.js +12 -7
  98. package/package.json +4 -4
  99. package/validation/index.d.ts +6 -0
  100. package/validation/index.js +3 -0
  101. package/validation/package.json +6 -0
  102. package/validation/validateDateRange.d.ts +8 -0
  103. package/{internals/utils/validation → validation}/validateDateRange.js +10 -5
  104. package/validation/validateDateTimeRange.d.ts +8 -0
  105. package/{internals/utils/validation → validation}/validateDateTimeRange.js +10 -5
  106. package/validation/validateTimeRange.d.ts +6 -0
  107. package/{modern/internals/utils/validation → validation}/validateTimeRange.js +10 -5
  108. package/internals/utils/validation/validateDateRange.d.ts +0 -7
  109. package/internals/utils/validation/validateDateTimeRange.d.ts +0 -7
  110. package/internals/utils/validation/validateTimeRange.d.ts +0 -6
package/CHANGELOG.md CHANGED
@@ -3,6 +3,93 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## 7.17.0
7
+
8
+ _Sep 13, 2024_
9
+
10
+ We'd like to offer a big thanks to the 12 contributors who made this release possible. Here are some highlights ✨:
11
+
12
+ - 📊 Charts performance improvement
13
+ - 🧑‍💻 New Data Grid [custom columns demo](https://mui.com/x/react-data-grid/custom-columns/#full-example)
14
+ - 🐞 Bugfixes
15
+ - 📚 Documentation improvements
16
+ - 🌍 Improve Hungarian (hu-HU) locale on the Data Grid
17
+
18
+ <!--/ HIGHLIGHT_ABOVE_SEPARATOR /-->
19
+
20
+ ### Data Grid
21
+
22
+ #### `@mui/x-data-grid@7.17.0`
23
+
24
+ - [DataGrid] Add "does not equal" and "does not contain" filter operators (#14489) @KenanYusuf
25
+ - [DataGrid] Add demo to the "Custom columns" page that does not use generator (#13695) @arminmeh
26
+ - [DataGrid] Fix Voice Over reading the column name twice (#14482) @arminmeh
27
+ - [DataGrid] Fix bug in CRUD example (#14513) @michelengelen
28
+ - [DataGrid] Fix failing jsdom tests caused by `:has()` selectors (#14559) @KenanYusuf
29
+ - [DataGrid] Refactor string operator filter functions (#14564) @KenanYusuf
30
+ - [l10n] Improve Hungarian (hu-HU) locale (#14506) @ntamas
31
+
32
+ #### `@mui/x-data-grid-pro@7.17.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
33
+
34
+ Same changes as in `@mui/x-data-grid@7.17.0`.
35
+
36
+ #### `@mui/x-data-grid-premium@7.17.0` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
37
+
38
+ Same changes as in `@mui/x-data-grid-pro@7.17.0`.
39
+
40
+ ### Date and Time Pickers
41
+
42
+ #### `@mui/x-date-pickers@7.17.0`
43
+
44
+ - [fields] Improve `useSplitFieldProps` and make it public (#14514) @flaviendelangle
45
+ - [pickers] Improve clear action label (#14243) @oliviertassinari
46
+ - [pickers] Add `"use client"` directive to every public component and hook (#14562) @flaviendelangle
47
+ - [pickers] Allow custom fields to validate the value (#14486) @flaviendelangle
48
+ - [pickers] Stop using utils in locales (#14505) @flaviendelangle
49
+
50
+ #### `@mui/x-date-pickers-pro@7.17.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
51
+
52
+ Same changes as in `@mui/x-date-pickers@7.17.0`, plus:
53
+
54
+ - [DateRangePicker] Fix `currentMonthCalendarPosition` not scrolling to future sibling (#14442) @GMchris
55
+
56
+ ### Charts
57
+
58
+ #### `@mui/x-charts@7.17.0`
59
+
60
+ - [charts] Add `"use client"` directive to every public component and hook (#14578) @flaviendelangle
61
+ - [charts] Allow `onItemClick` on the `Legend` component (#14231) @JCQuintas
62
+ - [charts] Fix `onAxisClick` with `layout='horizontal'` (#14547) @alexfauquette
63
+ - [charts] Replace `path` with `circle` for performance improvement (#14518) @alexfauquette
64
+
65
+ #### `@mui/x-charts-pro@7.0.0-beta.1` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
66
+
67
+ Same changes as in `@mui/x-charts@7.17.0`.
68
+
69
+ ### Tree View
70
+
71
+ #### `@mui/x-tree-view@7.17.0`
72
+
73
+ - [TreeView] Make `useTreeItem2` stable (#14498) @flaviendelangle
74
+
75
+ ### Docs
76
+
77
+ - [docs] Add missing callout on "Imperative API" tree view sections (#14503) @flaviendelangle
78
+ - [docs] Fix broken redirection to MUI X v5 @oliviertassinari
79
+ - [docs] Fix multiple `console.error` messages on `charts` docs (#14554) @JCQuintas
80
+ - [docs] Fixed typo in Row Grouping recipes (#14549) @Miodini
81
+ - [docs] Match title with blog posts @oliviertassinari
82
+
83
+ ### Core
84
+
85
+ - [core] Move warning methods to `@mui/x-internals` (#14528) @k-rajat19
86
+ - [core] Sync with core release flow @oliviertassinari
87
+ - [code-infra] Fix charts benchmark workflow (#14573) @JCQuintas
88
+ - [docs-infra] Type interface API pages (#14138) @alexfauquette
89
+ - [infra] Create `ESLint plugins` renovate group (#14574) @LukasTy
90
+ - [license] Clean-up terminology to match codebase (#14531) @oliviertassinari
91
+ - [test] Remove dead `act()` logic (#14529) @oliviertassinari
92
+
6
93
  ## 7.16.0
7
94
 
8
95
  _Sep 5, 2024_
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
2
4
  import _extends from "@babel/runtime/helpers/esm/extends";
3
5
  const _excluded = ["value", "defaultValue", "referenceDate", "onChange", "className", "disableFuture", "disablePast", "minDate", "maxDate", "shouldDisableDate", "reduceAnimations", "onMonthChange", "rangePosition", "defaultRangePosition", "onRangePositionChange", "calendars", "currentMonthCalendarPosition", "slots", "slotProps", "loading", "renderLoading", "disableHighlightToday", "readOnly", "disabled", "showDaysOutsideCurrentMonth", "dayOfWeekFormatter", "disableAutoMonthSwitching", "autoFocus", "fixedWeekNumber", "disableDragEditing", "displayWeekNumber", "timezone", "availableRangePositions", "views", "view", "openTo", "onViewChange"],
@@ -13,7 +15,8 @@ import { styled, useThemeProps } from '@mui/material/styles';
13
15
  import composeClasses from '@mui/utils/composeClasses';
14
16
  import useId from '@mui/utils/useId';
15
17
  import { Watermark } from '@mui/x-license';
16
- import { applyDefaultDate, DayCalendar, useDefaultReduceAnimations, useCalendarState, useDefaultDates, useUtils, useNow, DEFAULT_DESKTOP_MODE_MEDIA_QUERY, warnOnce, useControlledValueWithTimezone, useViews } from '@mui/x-date-pickers/internals';
18
+ import { applyDefaultDate, DayCalendar, useDefaultReduceAnimations, useCalendarState, useDefaultDates, useUtils, useNow, DEFAULT_DESKTOP_MODE_MEDIA_QUERY, useControlledValueWithTimezone, useViews } from '@mui/x-date-pickers/internals';
19
+ import { warnOnce } from '@mui/x-internals/warning';
17
20
  import { getReleaseInfo } from "../internals/utils/releaseInfo.js";
18
21
  import { dateRangeCalendarClasses, getDateRangeCalendarUtilityClass } from "./dateRangeCalendarClasses.js";
19
22
  import { isEndOfRange, isRangeValid, isStartOfRange, isWithinRange } from "../internals/utils/date-utils.js";
@@ -321,7 +324,7 @@ const DateRangeCalendar = /*#__PURE__*/React.forwardRef(function DateRangeCalend
321
324
  if (disableAutoMonthSwitching && prevDate && utils.isEqual(prevDate, date)) {
322
325
  return;
323
326
  }
324
- const displayingMonthRange = calendars - 1;
327
+ const displayingMonthRange = calendars - currentMonthCalendarPosition;
325
328
  const currentMonthNumber = utils.getMonth(calendarState.currentMonth);
326
329
  const requestedMonthNumber = utils.getMonth(date);
327
330
  if (!utils.isSameYear(calendarState.currentMonth, date) || requestedMonthNumber < currentMonthNumber || requestedMonthNumber > currentMonthNumber + displayingMonthRange) {
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import _extends from "@babel/runtime/helpers/esm/extends";
2
4
  import * as React from 'react';
3
5
  import useEventCallback from '@mui/utils/useEventCallback';
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import _extends from "@babel/runtime/helpers/esm/extends";
2
4
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
5
  const _excluded = ["desktopModeMediaQuery"];
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import _extends from "@babel/runtime/helpers/esm/extends";
2
4
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
5
  const _excluded = ["value", "rangePosition", "onRangePositionChange", "toolbarFormat", "className", "onViewChange", "view", "views"];
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
2
4
  import _extends from "@babel/runtime/helpers/esm/extends";
3
5
  const _excluded = ["className", "day", "outsideCurrentMonth", "isEndOfHighlighting", "isEndOfPreviewing", "isHighlighting", "isPreviewing", "isStartOfHighlighting", "isStartOfPreviewing", "selected", "isVisuallySelected", "sx", "draggable", "isFirstVisibleCell", "isLastVisibleCell"];
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import _extends from "@babel/runtime/helpers/esm/extends";
2
4
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
5
  const _excluded = ["desktopModeMediaQuery"];
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import * as React from 'react';
2
4
  import clsx from 'clsx';
3
5
  import PropTypes from 'prop-types';
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import _extends from "@babel/runtime/helpers/esm/extends";
2
4
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
5
  const _excluded = ["value", "rangePosition", "onRangePositionChange", "className", "onViewChange", "toolbarVariant", "onChange", "classes", "view", "isLandscape", "views", "ampm", "disabled", "readOnly", "hidden", "toolbarFormat", "toolbarPlaceholder", "titleId", "sx"];
@@ -1,7 +1,9 @@
1
+ 'use client';
2
+
1
3
  import _extends from "@babel/runtime/helpers/esm/extends";
2
4
  import * as React from 'react';
3
5
  import PropTypes from 'prop-types';
4
- import { extractValidationProps } from '@mui/x-date-pickers/internals';
6
+ import { extractValidationProps } from '@mui/x-date-pickers/validation';
5
7
  import resolveComponentProps from '@mui/utils/resolveComponentProps';
6
8
  import { refType } from '@mui/utils';
7
9
  import { rangeValueManager } from "../internals/utils/valueManagers.js";
@@ -9,7 +11,7 @@ import { useDateRangePickerDefaultizedProps } from "../DateRangePicker/shared.js
9
11
  import { renderDateRangeViewCalendar } from "../dateRangeViewRenderers/index.js";
10
12
  import { MultiInputDateRangeField } from "../MultiInputDateRangeField/index.js";
11
13
  import { useDesktopRangePicker } from "../internals/hooks/useDesktopRangePicker/index.js";
12
- import { validateDateRange } from "../internals/utils/validation/validateDateRange.js";
14
+ import { validateDateRange } from "../validation/index.js";
13
15
  /**
14
16
  * Demos:
15
17
  *
@@ -1,9 +1,12 @@
1
+ 'use client';
2
+
1
3
  import _extends from "@babel/runtime/helpers/esm/extends";
2
4
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
5
  const _excluded = ["openTo", "rangePosition"];
4
6
  import * as React from 'react';
5
7
  import PropTypes from 'prop-types';
6
- import { extractValidationProps, isDatePickerView, isInternalTimeView, resolveDateTimeFormat, useUtils } from '@mui/x-date-pickers/internals';
8
+ import { isDatePickerView, isInternalTimeView, resolveDateTimeFormat, useUtils } from '@mui/x-date-pickers/internals';
9
+ import { extractValidationProps } from '@mui/x-date-pickers/validation';
7
10
  import resolveComponentProps from '@mui/utils/resolveComponentProps';
8
11
  import { refType } from '@mui/utils';
9
12
  import { renderDigitalClockTimeView, renderMultiSectionDigitalClockTimeView } from '@mui/x-date-pickers/timeViewRenderers';
@@ -14,7 +17,7 @@ import { DesktopDateTimePickerLayout } from '@mui/x-date-pickers/DesktopDateTime
14
17
  import { rangeValueManager } from "../internals/utils/valueManagers.js";
15
18
  import { renderDateRangeViewCalendar } from "../dateRangeViewRenderers/index.js";
16
19
  import { useDesktopRangePicker } from "../internals/hooks/useDesktopRangePicker/index.js";
17
- import { validateDateTimeRange } from "../internals/utils/validation/validateDateTimeRange.js";
20
+ import { validateDateTimeRange } from "../validation/index.js";
18
21
  import { useDateTimeRangePickerDefaultizedProps } from "../DateTimeRangePicker/shared.js";
19
22
  import { MultiInputDateTimeRangeField } from "../MultiInputDateTimeRangeField/index.js";
20
23
  import { DateTimeRangePickerTimeWrapper } from "../DateTimeRangePicker/DateTimeRangePickerTimeWrapper.js";
@@ -1,7 +1,9 @@
1
+ 'use client';
2
+
1
3
  import _extends from "@babel/runtime/helpers/esm/extends";
2
4
  import * as React from 'react';
3
5
  import PropTypes from 'prop-types';
4
- import { extractValidationProps } from '@mui/x-date-pickers/internals';
6
+ import { extractValidationProps } from '@mui/x-date-pickers/validation';
5
7
  import resolveComponentProps from '@mui/utils/resolveComponentProps';
6
8
  import { refType } from '@mui/utils';
7
9
  import { rangeValueManager } from "../internals/utils/valueManagers.js";
@@ -9,7 +11,7 @@ import { useDateRangePickerDefaultizedProps } from "../DateRangePicker/shared.js
9
11
  import { renderDateRangeViewCalendar } from "../dateRangeViewRenderers/index.js";
10
12
  import { MultiInputDateRangeField } from "../MultiInputDateRangeField/index.js";
11
13
  import { useMobileRangePicker } from "../internals/hooks/useMobileRangePicker/index.js";
12
- import { validateDateRange } from "../internals/utils/validation/validateDateRange.js";
14
+ import { validateDateRange } from "../validation/index.js";
13
15
  /**
14
16
  * Demos:
15
17
  *
@@ -1,10 +1,13 @@
1
+ 'use client';
2
+
1
3
  import _extends from "@babel/runtime/helpers/esm/extends";
2
4
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
5
  const _excluded = ["view", "openTo", "rangePosition"];
4
6
  import * as React from 'react';
5
7
  import PropTypes from 'prop-types';
6
8
  import { refType } from '@mui/utils';
7
- import { DIALOG_WIDTH, VIEW_HEIGHT, extractValidationProps, isInternalTimeView, isDatePickerView, resolveDateTimeFormat, useUtils } from '@mui/x-date-pickers/internals';
9
+ import { DIALOG_WIDTH, VIEW_HEIGHT, isInternalTimeView, isDatePickerView, resolveDateTimeFormat, useUtils } from '@mui/x-date-pickers/internals';
10
+ import { extractValidationProps } from '@mui/x-date-pickers/validation';
8
11
  import resolveComponentProps from '@mui/utils/resolveComponentProps';
9
12
  import { renderDigitalClockTimeView, renderMultiSectionDigitalClockTimeView } from '@mui/x-date-pickers/timeViewRenderers';
10
13
  import { multiSectionDigitalClockClasses, multiSectionDigitalClockSectionClasses } from '@mui/x-date-pickers/MultiSectionDigitalClock';
@@ -12,7 +15,7 @@ import { digitalClockClasses } from '@mui/x-date-pickers/DigitalClock';
12
15
  import { rangeValueManager } from "../internals/utils/valueManagers.js";
13
16
  import { renderDateRangeViewCalendar } from "../dateRangeViewRenderers/index.js";
14
17
  import { useMobileRangePicker } from "../internals/hooks/useMobileRangePicker/index.js";
15
- import { validateDateTimeRange } from "../internals/utils/validation/validateDateTimeRange.js";
18
+ import { validateDateTimeRange } from "../validation/index.js";
16
19
  import { useDateTimeRangePickerDefaultizedProps } from "../DateTimeRangePicker/shared.js";
17
20
  import { MultiInputDateTimeRangeField } from "../MultiInputDateTimeRangeField/index.js";
18
21
  import { DateTimeRangePickerTimeWrapper } from "../DateTimeRangePicker/DateTimeRangePickerTimeWrapper.js";
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
2
4
  import _extends from "@babel/runtime/helpers/esm/extends";
3
5
  const _excluded = ["slots", "slotProps", "unstableStartFieldRef", "unstableEndFieldRef", "className"];
@@ -10,7 +12,8 @@ import Typography from '@mui/material/Typography';
10
12
  import { styled, useThemeProps } from '@mui/material/styles';
11
13
  import useSlotProps from '@mui/utils/useSlotProps';
12
14
  import { unstable_composeClasses as composeClasses, unstable_generateUtilityClass as generateUtilityClass, unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';
13
- import { splitFieldInternalAndForwardedProps, convertFieldResponseIntoMuiTextFieldProps } from '@mui/x-date-pickers/internals';
15
+ import { convertFieldResponseIntoMuiTextFieldProps } from '@mui/x-date-pickers/internals';
16
+ import { useSplitFieldProps } from '@mui/x-date-pickers/hooks';
14
17
  import { PickersTextField } from '@mui/x-date-pickers/PickersTextField';
15
18
  import { useMultiInputDateRangeField } from "../internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField.js";
16
19
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
@@ -61,7 +64,7 @@ const MultiInputDateRangeField = /*#__PURE__*/React.forwardRef(function MultiInp
61
64
  const {
62
65
  internalProps,
63
66
  forwardedProps
64
- } = splitFieldInternalAndForwardedProps(themeProps, 'date');
67
+ } = useSplitFieldProps(themeProps, 'date');
65
68
  const {
66
69
  slots,
67
70
  slotProps,
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
2
4
  import _extends from "@babel/runtime/helpers/esm/extends";
3
5
  const _excluded = ["slots", "slotProps", "unstableStartFieldRef", "unstableEndFieldRef", "className"];
@@ -10,7 +12,8 @@ import Typography from '@mui/material/Typography';
10
12
  import { styled, useThemeProps } from '@mui/material/styles';
11
13
  import useSlotProps from '@mui/utils/useSlotProps';
12
14
  import { unstable_composeClasses as composeClasses, unstable_generateUtilityClass as generateUtilityClass, unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';
13
- import { splitFieldInternalAndForwardedProps, convertFieldResponseIntoMuiTextFieldProps } from '@mui/x-date-pickers/internals';
15
+ import { convertFieldResponseIntoMuiTextFieldProps } from '@mui/x-date-pickers/internals';
16
+ import { useSplitFieldProps } from '@mui/x-date-pickers/hooks';
14
17
  import { PickersTextField } from '@mui/x-date-pickers/PickersTextField';
15
18
  import { useMultiInputDateTimeRangeField } from "../internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.js";
16
19
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
@@ -61,7 +64,7 @@ const MultiInputDateTimeRangeField = /*#__PURE__*/React.forwardRef(function Mult
61
64
  const {
62
65
  internalProps,
63
66
  forwardedProps
64
- } = splitFieldInternalAndForwardedProps(themeProps, 'date-time');
67
+ } = useSplitFieldProps(themeProps, 'date-time');
65
68
  const {
66
69
  slots,
67
70
  slotProps,
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
2
4
  import _extends from "@babel/runtime/helpers/esm/extends";
3
5
  const _excluded = ["slots", "slotProps", "unstableStartFieldRef", "unstableEndFieldRef", "className"];
@@ -10,7 +12,8 @@ import Typography from '@mui/material/Typography';
10
12
  import { styled, useThemeProps } from '@mui/material/styles';
11
13
  import useSlotProps from '@mui/utils/useSlotProps';
12
14
  import { unstable_composeClasses as composeClasses, unstable_generateUtilityClass as generateUtilityClass, unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';
13
- import { splitFieldInternalAndForwardedProps, convertFieldResponseIntoMuiTextFieldProps } from '@mui/x-date-pickers/internals';
15
+ import { convertFieldResponseIntoMuiTextFieldProps } from '@mui/x-date-pickers/internals';
16
+ import { useSplitFieldProps } from '@mui/x-date-pickers/hooks';
14
17
  import { PickersTextField } from '@mui/x-date-pickers/PickersTextField';
15
18
  import { useMultiInputTimeRangeField } from "../internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js";
16
19
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
@@ -61,7 +64,7 @@ const MultiInputTimeRangeField = /*#__PURE__*/React.forwardRef(function MultiInp
61
64
  const {
62
65
  internalProps,
63
66
  forwardedProps
64
- } = splitFieldInternalAndForwardedProps(themeProps, 'time');
67
+ } = useSplitFieldProps(themeProps, 'time');
65
68
  const {
66
69
  slots,
67
70
  slotProps,
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import _extends from "@babel/runtime/helpers/esm/extends";
2
4
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
5
  const _excluded = ["calendars", "month", "monthIndex", "labelId"],
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import _extends from "@babel/runtime/helpers/esm/extends";
2
4
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
5
  const _excluded = ["slots", "slotProps", "InputProps", "inputProps"];
@@ -1,3 +1,3 @@
1
1
  import { PickerValidDate } from '@mui/x-date-pickers/models';
2
2
  import { UseSingleInputDateRangeFieldProps } from './SingleInputDateRangeField.types';
3
- export declare const useSingleInputDateRangeField: <TDate extends PickerValidDate, TEnableAccessibleFieldDOMStructure extends boolean, TAllProps extends UseSingleInputDateRangeFieldProps<TDate, TEnableAccessibleFieldDOMStructure>>(inProps: TAllProps) => import("@mui/x-date-pickers/internals").UseFieldResponse<TEnableAccessibleFieldDOMStructure, Omit<TAllProps & Omit<UseSingleInputDateRangeFieldProps<TDate, TEnableAccessibleFieldDOMStructure>, keyof import("@mui/x-date-pickers/internals/hooks/defaultizedFieldProps").UseDefaultizedDateFieldBaseProps<any>> & Required<Pick<UseSingleInputDateRangeFieldProps<TDate, TEnableAccessibleFieldDOMStructure>, keyof import("@mui/x-date-pickers/internals/hooks/defaultizedFieldProps").UseDefaultizedDateFieldBaseProps<any>>>, keyof UseSingleInputDateRangeFieldProps<TDate, TEnableAccessibleFieldDOMStructure>>>;
3
+ export declare const useSingleInputDateRangeField: <TDate extends PickerValidDate, TEnableAccessibleFieldDOMStructure extends boolean, TAllProps extends UseSingleInputDateRangeFieldProps<TDate, TEnableAccessibleFieldDOMStructure>>(inProps: TAllProps) => import("@mui/x-date-pickers/internals").UseFieldResponse<TEnableAccessibleFieldDOMStructure, Omit<TAllProps & Omit<UseSingleInputDateRangeFieldProps<TDate, TEnableAccessibleFieldDOMStructure>, keyof import("@mui/x-date-pickers/internals/hooks/defaultizedFieldProps").UseDefaultizedDateFieldBaseProps<any>> & Required<Pick<UseSingleInputDateRangeFieldProps<TDate, TEnableAccessibleFieldDOMStructure>, keyof import("@mui/x-date-pickers/internals/hooks/defaultizedFieldProps").UseDefaultizedDateFieldBaseProps<any>>>, "disabled" | "format" | "onChange" | "onError" | "defaultValue" | "value" | "readOnly" | "referenceDate" | "timezone" | "formatDensity" | "enableAccessibleFieldDOMStructure" | "selectedSections" | "onSelectedSectionsChange" | "shouldRespectLeadingZeros" | "unstableFieldRef" | "shouldDisableDate" | "shouldDisableMonth" | "shouldDisableYear" | keyof import("@mui/x-date-pickers/internals").BaseDateValidationProps<any> | "dateSeparator">>;
@@ -1,13 +1,16 @@
1
+ 'use client';
2
+
1
3
  import * as React from 'react';
2
- import { useField, splitFieldInternalAndForwardedProps, useDefaultizedDateField } from '@mui/x-date-pickers/internals';
4
+ import { useField, useDefaultizedDateField } from '@mui/x-date-pickers/internals';
5
+ import { useSplitFieldProps } from '@mui/x-date-pickers/hooks';
3
6
  import { rangeValueManager, getRangeFieldValueManager } from "../internals/utils/valueManagers.js";
4
- import { validateDateRange } from "../internals/utils/validation/validateDateRange.js";
7
+ import { validateDateRange } from "../validation/index.js";
5
8
  export const useSingleInputDateRangeField = inProps => {
6
9
  const props = useDefaultizedDateField(inProps);
7
10
  const {
8
11
  forwardedProps,
9
12
  internalProps
10
- } = splitFieldInternalAndForwardedProps(props, 'date');
13
+ } = useSplitFieldProps(props, 'date');
11
14
  const fieldValueManager = React.useMemo(() => getRangeFieldValueManager({
12
15
  dateSeparator: internalProps.dateSeparator
13
16
  }), [internalProps.dateSeparator]);
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import _extends from "@babel/runtime/helpers/esm/extends";
2
4
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
5
  const _excluded = ["slots", "slotProps", "InputProps", "inputProps"];
@@ -1,3 +1,3 @@
1
1
  import { PickerValidDate } from '@mui/x-date-pickers/models';
2
2
  import { UseSingleInputDateTimeRangeFieldProps } from './SingleInputDateTimeRangeField.types';
3
- export declare const useSingleInputDateTimeRangeField: <TDate extends PickerValidDate, TEnableAccessibleFieldDOMStructure extends boolean, TAllProps extends UseSingleInputDateTimeRangeFieldProps<TDate, TEnableAccessibleFieldDOMStructure>>(inProps: TAllProps) => import("@mui/x-date-pickers/internals").UseFieldResponse<TEnableAccessibleFieldDOMStructure, Omit<TAllProps & Omit<UseSingleInputDateTimeRangeFieldProps<TDate, TEnableAccessibleFieldDOMStructure>, keyof import("@mui/x-date-pickers/internals/hooks/defaultizedFieldProps").UseDefaultizedDateTimeFieldBaseProps<any>> & Required<Pick<UseSingleInputDateTimeRangeFieldProps<TDate, TEnableAccessibleFieldDOMStructure>, keyof import("@mui/x-date-pickers/internals/hooks/defaultizedFieldProps").UseDefaultizedDateTimeFieldBaseProps<any>>>, keyof UseSingleInputDateTimeRangeFieldProps<any, any>>>;
3
+ export declare const useSingleInputDateTimeRangeField: <TDate extends PickerValidDate, TEnableAccessibleFieldDOMStructure extends boolean, TAllProps extends UseSingleInputDateTimeRangeFieldProps<TDate, TEnableAccessibleFieldDOMStructure>>(inProps: TAllProps) => import("@mui/x-date-pickers/internals").UseFieldResponse<TEnableAccessibleFieldDOMStructure, Omit<TAllProps & Omit<UseSingleInputDateTimeRangeFieldProps<TDate, TEnableAccessibleFieldDOMStructure>, keyof import("@mui/x-date-pickers/internals/hooks/defaultizedFieldProps").UseDefaultizedDateTimeFieldBaseProps<any>> & Required<Pick<UseSingleInputDateTimeRangeFieldProps<TDate, TEnableAccessibleFieldDOMStructure>, keyof import("@mui/x-date-pickers/internals/hooks/defaultizedFieldProps").UseDefaultizedDateTimeFieldBaseProps<any>>>, "disabled" | "format" | "onChange" | "onError" | "defaultValue" | "value" | "readOnly" | "referenceDate" | "timezone" | "formatDensity" | "enableAccessibleFieldDOMStructure" | "selectedSections" | "onSelectedSectionsChange" | "shouldRespectLeadingZeros" | "unstableFieldRef" | "ampm" | "disableFuture" | "maxDate" | "disablePast" | "minDate" | "minTime" | "maxTime" | "minutesStep" | "shouldDisableTime" | "disableIgnoringDatePartForTimeValidation" | "minDateTime" | "maxDateTime" | "shouldDisableDate" | "shouldDisableMonth" | "shouldDisableYear" | "dateSeparator">>;
@@ -1,13 +1,16 @@
1
+ 'use client';
2
+
1
3
  import * as React from 'react';
2
- import { useField, splitFieldInternalAndForwardedProps, useDefaultizedDateTimeField } from '@mui/x-date-pickers/internals';
4
+ import { useField, useDefaultizedDateTimeField } from '@mui/x-date-pickers/internals';
5
+ import { useSplitFieldProps } from '@mui/x-date-pickers/hooks';
3
6
  import { rangeValueManager, getRangeFieldValueManager } from "../internals/utils/valueManagers.js";
4
- import { validateDateTimeRange } from "../internals/utils/validation/validateDateTimeRange.js";
7
+ import { validateDateTimeRange } from "../validation/index.js";
5
8
  export const useSingleInputDateTimeRangeField = inProps => {
6
9
  const props = useDefaultizedDateTimeField(inProps);
7
10
  const {
8
11
  forwardedProps,
9
12
  internalProps
10
- } = splitFieldInternalAndForwardedProps(props, 'date-time');
13
+ } = useSplitFieldProps(props, 'date-time');
11
14
  const fieldValueManager = React.useMemo(() => getRangeFieldValueManager({
12
15
  dateSeparator: internalProps.dateSeparator
13
16
  }), [internalProps.dateSeparator]);
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import _extends from "@babel/runtime/helpers/esm/extends";
2
4
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
5
  const _excluded = ["slots", "slotProps", "InputProps", "inputProps"];
@@ -1,3 +1,3 @@
1
1
  import { PickerValidDate } from '@mui/x-date-pickers/models';
2
2
  import { UseSingleInputTimeRangeFieldProps } from './SingleInputTimeRangeField.types';
3
- export declare const useSingleInputTimeRangeField: <TDate extends PickerValidDate, TEnableAccessibleFieldDOMStructure extends boolean, TAllProps extends UseSingleInputTimeRangeFieldProps<TDate, TEnableAccessibleFieldDOMStructure>>(inProps: TAllProps) => import("@mui/x-date-pickers/internals").UseFieldResponse<TEnableAccessibleFieldDOMStructure, Omit<TAllProps & Omit<UseSingleInputTimeRangeFieldProps<TDate, TEnableAccessibleFieldDOMStructure>, keyof import("@mui/x-date-pickers/internals/hooks/defaultizedFieldProps").UseDefaultizedTimeFieldBaseProps> & Required<Pick<UseSingleInputTimeRangeFieldProps<TDate, TEnableAccessibleFieldDOMStructure>, keyof import("@mui/x-date-pickers/internals/hooks/defaultizedFieldProps").UseDefaultizedTimeFieldBaseProps>>, keyof UseSingleInputTimeRangeFieldProps<any, any>>>;
3
+ export declare const useSingleInputTimeRangeField: <TDate extends PickerValidDate, TEnableAccessibleFieldDOMStructure extends boolean, TAllProps extends UseSingleInputTimeRangeFieldProps<TDate, TEnableAccessibleFieldDOMStructure>>(inProps: TAllProps) => import("@mui/x-date-pickers/internals").UseFieldResponse<TEnableAccessibleFieldDOMStructure, Omit<TAllProps & Omit<UseSingleInputTimeRangeFieldProps<TDate, TEnableAccessibleFieldDOMStructure>, keyof import("@mui/x-date-pickers/internals/hooks/defaultizedFieldProps").UseDefaultizedTimeFieldBaseProps> & Required<Pick<UseSingleInputTimeRangeFieldProps<TDate, TEnableAccessibleFieldDOMStructure>, keyof import("@mui/x-date-pickers/internals/hooks/defaultizedFieldProps").UseDefaultizedTimeFieldBaseProps>>, "disabled" | "format" | "onChange" | "onError" | "defaultValue" | "value" | "readOnly" | "referenceDate" | "timezone" | "formatDensity" | "enableAccessibleFieldDOMStructure" | "selectedSections" | "onSelectedSectionsChange" | "shouldRespectLeadingZeros" | "unstableFieldRef" | "ampm" | keyof import("@mui/x-date-pickers/internals").BaseTimeValidationProps | keyof import("@mui/x-date-pickers/internals").TimeValidationProps<any> | "dateSeparator">>;
@@ -1,13 +1,16 @@
1
+ 'use client';
2
+
1
3
  import * as React from 'react';
2
- import { useField, splitFieldInternalAndForwardedProps, useDefaultizedTimeField } from '@mui/x-date-pickers/internals';
4
+ import { useField, useDefaultizedTimeField } from '@mui/x-date-pickers/internals';
5
+ import { useSplitFieldProps } from '@mui/x-date-pickers/hooks';
3
6
  import { rangeValueManager, getRangeFieldValueManager } from "../internals/utils/valueManagers.js";
4
- import { validateTimeRange } from "../internals/utils/validation/validateTimeRange.js";
7
+ import { validateTimeRange } from "../validation/index.js";
5
8
  export const useSingleInputTimeRangeField = inProps => {
6
9
  const props = useDefaultizedTimeField(inProps);
7
10
  const {
8
11
  forwardedProps,
9
12
  internalProps
10
- } = splitFieldInternalAndForwardedProps(props, 'time');
13
+ } = useSplitFieldProps(props, 'time');
11
14
  const fieldValueManager = React.useMemo(() => getRangeFieldValueManager({
12
15
  dateSeparator: internalProps.dateSeparator
13
16
  }), [internalProps.dateSeparator]);
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import _extends from "@babel/runtime/helpers/esm/extends";
2
4
  import * as React from 'react';
3
5
  import PropTypes from 'prop-types';
@@ -5,7 +7,7 @@ import { useStaticRangePicker } from "../internals/hooks/useStaticRangePicker/in
5
7
  import { useDateRangePickerDefaultizedProps } from "../DateRangePicker/shared.js";
6
8
  import { renderDateRangeViewCalendar } from "../dateRangeViewRenderers/index.js";
7
9
  import { rangeValueManager } from "../internals/utils/valueManagers.js";
8
- import { validateDateRange } from "../internals/utils/validation/validateDateRange.js";
10
+ import { validateDateRange } from "../validation/index.js";
9
11
  /**
10
12
  * Demos:
11
13
  *
package/index.d.ts CHANGED
@@ -24,3 +24,4 @@ export * from './DesktopDateTimeRangePicker';
24
24
  export * from './MobileDateTimeRangePicker';
25
25
  export * from './dateRangeViewRenderers';
26
26
  export * from './models';
27
+ export * from './validation';
package/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-date-pickers-pro v7.16.0
2
+ * @mui/x-date-pickers-pro v7.17.0
3
3
  *
4
4
  * @license MUI X Commercial
5
5
  * This source code is licensed under the commercial license found in the
@@ -37,4 +37,5 @@ export * from "./MobileDateTimeRangePicker/index.js";
37
37
 
38
38
  // View renderers
39
39
  export * from "./dateRangeViewRenderers/index.js";
40
- export * from "./models/index.js";
40
+ export * from "./models/index.js";
41
+ export * from "./validation/index.js";
@@ -1,8 +1,9 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import useEventCallback from '@mui/utils/useEventCallback';
3
3
  import { unstable_useDateField as useDateField } from '@mui/x-date-pickers/DateField';
4
- import { useLocalizationContext, useValidation, useControlledValueWithTimezone, useDefaultizedDateField } from '@mui/x-date-pickers/internals';
5
- import { validateDateRange } from "../../utils/validation/validateDateRange.js";
4
+ import { useControlledValueWithTimezone, useDefaultizedDateField } from '@mui/x-date-pickers/internals';
5
+ import { useValidation } from '@mui/x-date-pickers/validation';
6
+ import { validateDateRange } from "../../../validation/index.js";
6
7
  import { rangeValueManager } from "../../utils/valueManagers.js";
7
8
  import { excludeProps } from "./shared.js";
8
9
  import { useMultiInputFieldSelectedSections } from "../useMultiInputFieldSelectedSections.js";
@@ -14,7 +15,6 @@ export const useMultiInputDateRangeField = ({
14
15
  unstableEndFieldRef
15
16
  }) => {
16
17
  const sharedProps = useDefaultizedDateField(inSharedProps);
17
- const adapter = useLocalizationContext();
18
18
  const {
19
19
  value: valueProp,
20
20
  defaultValue,
@@ -42,29 +42,29 @@ export const useMultiInputDateRangeField = ({
42
42
  onChange,
43
43
  valueManager: rangeValueManager
44
44
  });
45
+ const {
46
+ validationError,
47
+ getValidationErrorForNewValue
48
+ } = useValidation({
49
+ props: sharedProps,
50
+ value,
51
+ timezone,
52
+ validator: validateDateRange,
53
+ onError: sharedProps.onError
54
+ });
45
55
 
46
56
  // TODO: Maybe export utility from `useField` instead of copy/pasting the logic
47
57
  const buildChangeHandler = index => {
48
58
  return (newDate, rawContext) => {
49
59
  const newDateRange = index === 0 ? [newDate, value[1]] : [value[0], newDate];
50
60
  const context = _extends({}, rawContext, {
51
- validationError: validateDateRange({
52
- adapter,
53
- value: newDateRange,
54
- props: _extends({}, sharedProps, {
55
- timezone
56
- })
57
- })
61
+ validationError: getValidationErrorForNewValue(newDateRange)
58
62
  });
59
63
  handleValueChange(newDateRange, context);
60
64
  };
61
65
  };
62
66
  const handleStartDateChange = useEventCallback(buildChangeHandler(0));
63
67
  const handleEndDateChange = useEventCallback(buildChangeHandler(1));
64
- const validationError = useValidation(_extends({}, sharedProps, {
65
- value,
66
- timezone
67
- }), validateDateRange, rangeValueManager.isSameError, rangeValueManager.defaultErrorState);
68
68
  const selectedSectionsResponse = useMultiInputFieldSelectedSections({
69
69
  selectedSections,
70
70
  onSelectedSectionsChange,
@@ -1,8 +1,9 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import useEventCallback from '@mui/utils/useEventCallback';
3
3
  import { unstable_useDateTimeField as useDateTimeField } from '@mui/x-date-pickers/DateTimeField';
4
- import { useLocalizationContext, useValidation, useControlledValueWithTimezone, useDefaultizedDateTimeField } from '@mui/x-date-pickers/internals';
5
- import { validateDateTimeRange } from "../../utils/validation/validateDateTimeRange.js";
4
+ import { useControlledValueWithTimezone, useDefaultizedDateTimeField } from '@mui/x-date-pickers/internals';
5
+ import { useValidation } from '@mui/x-date-pickers/validation';
6
+ import { validateDateTimeRange } from "../../../validation/index.js";
6
7
  import { rangeValueManager } from "../../utils/valueManagers.js";
7
8
  import { excludeProps } from "./shared.js";
8
9
  import { useMultiInputFieldSelectedSections } from "../useMultiInputFieldSelectedSections.js";
@@ -14,7 +15,6 @@ export const useMultiInputDateTimeRangeField = ({
14
15
  unstableEndFieldRef
15
16
  }) => {
16
17
  const sharedProps = useDefaultizedDateTimeField(inSharedProps);
17
- const adapter = useLocalizationContext();
18
18
  const {
19
19
  value: valueProp,
20
20
  defaultValue,
@@ -42,29 +42,29 @@ export const useMultiInputDateTimeRangeField = ({
42
42
  onChange,
43
43
  valueManager: rangeValueManager
44
44
  });
45
+ const {
46
+ validationError,
47
+ getValidationErrorForNewValue
48
+ } = useValidation({
49
+ props: sharedProps,
50
+ value,
51
+ timezone,
52
+ validator: validateDateTimeRange,
53
+ onError: sharedProps.onError
54
+ });
45
55
 
46
56
  // TODO: Maybe export utility from `useField` instead of copy/pasting the logic
47
57
  const buildChangeHandler = index => {
48
58
  return (newDate, rawContext) => {
49
59
  const newDateRange = index === 0 ? [newDate, value[1]] : [value[0], newDate];
50
60
  const context = _extends({}, rawContext, {
51
- validationError: validateDateTimeRange({
52
- adapter,
53
- value: newDateRange,
54
- props: _extends({}, sharedProps, {
55
- timezone
56
- })
57
- })
61
+ validationError: getValidationErrorForNewValue(newDateRange)
58
62
  });
59
63
  handleValueChange(newDateRange, context);
60
64
  };
61
65
  };
62
66
  const handleStartDateChange = useEventCallback(buildChangeHandler(0));
63
67
  const handleEndDateChange = useEventCallback(buildChangeHandler(1));
64
- const validationError = useValidation(_extends({}, sharedProps, {
65
- value,
66
- timezone
67
- }), validateDateTimeRange, rangeValueManager.isSameError, rangeValueManager.defaultErrorState);
68
68
  const selectedSectionsResponse = useMultiInputFieldSelectedSections({
69
69
  selectedSections,
70
70
  onSelectedSectionsChange,