@mui/x-date-pickers-pro 8.5.2 → 8.6.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 (80) hide show
  1. package/CHANGELOG.md +203 -11
  2. package/DateRangeCalendar/DateRangeCalendar.js +37 -36
  3. package/DateRangeCalendar/useDragRange.d.ts +2 -2
  4. package/DateRangeCalendar/useDragRange.js +17 -17
  5. package/DateRangePicker/DateRangePickerToolbar.js +4 -4
  6. package/DateRangePickerDay/DateRangePickerDay.js +5 -4
  7. package/DateRangePickerDay2/DateRangePickerDay2.js +5 -4
  8. package/DateTimeRangePicker/DateTimeRangePicker.js +1 -1
  9. package/DateTimeRangePicker/DateTimeRangePickerTimeWrapper.js +6 -6
  10. package/DateTimeRangePicker/DateTimeRangePickerToolbar.js +3 -3
  11. package/DateTimeRangePicker/shared.js +3 -2
  12. package/DesktopDateRangePicker/DesktopDateRangePicker.js +4 -4
  13. package/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.js +9 -8
  14. package/DesktopTimeRangePicker/DesktopTimeRangePicker.js +4 -3
  15. package/MobileDateRangePicker/MobileDateRangePicker.js +5 -5
  16. package/MobileDateTimeRangePicker/MobileDateTimeRangePicker.js +6 -5
  17. package/MobileTimeRangePicker/MobileTimeRangePicker.js +6 -5
  18. package/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +1 -1
  19. package/MultiInputTimeRangeField/MultiInputTimeRangeField.js +1 -1
  20. package/PickersRangeCalendarHeader/PickersRangeCalendarHeader.js +4 -4
  21. package/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.js +1 -1
  22. package/SingleInputTimeRangeField/SingleInputTimeRangeField.js +1 -1
  23. package/TimeRangePicker/TimeRangePicker.js +1 -1
  24. package/TimeRangePicker/TimeRangePickerTimeWrapper.js +6 -6
  25. package/TimeRangePicker/TimeRangePickerToolbar.js +7 -7
  26. package/TimeRangePicker/shared.js +3 -2
  27. package/esm/DateRangeCalendar/DateRangeCalendar.js +38 -37
  28. package/esm/DateRangeCalendar/useDragRange.d.ts +2 -2
  29. package/esm/DateRangeCalendar/useDragRange.js +17 -17
  30. package/esm/DateRangePicker/DateRangePickerToolbar.js +6 -6
  31. package/esm/DateRangePickerDay/DateRangePickerDay.js +6 -5
  32. package/esm/DateRangePickerDay2/DateRangePickerDay2.js +6 -5
  33. package/esm/DateTimeRangePicker/DateTimeRangePicker.js +1 -1
  34. package/esm/DateTimeRangePicker/DateTimeRangePickerTimeWrapper.js +4 -4
  35. package/esm/DateTimeRangePicker/DateTimeRangePickerToolbar.js +5 -5
  36. package/esm/DateTimeRangePicker/shared.js +4 -3
  37. package/esm/DesktopDateRangePicker/DesktopDateRangePicker.js +4 -4
  38. package/esm/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.js +7 -6
  39. package/esm/DesktopTimeRangePicker/DesktopTimeRangePicker.js +5 -4
  40. package/esm/MobileDateRangePicker/MobileDateRangePicker.js +5 -5
  41. package/esm/MobileDateTimeRangePicker/MobileDateTimeRangePicker.js +5 -4
  42. package/esm/MobileTimeRangePicker/MobileTimeRangePicker.js +6 -5
  43. package/esm/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +1 -1
  44. package/esm/MultiInputTimeRangeField/MultiInputTimeRangeField.js +1 -1
  45. package/esm/PickersRangeCalendarHeader/PickersRangeCalendarHeader.js +6 -6
  46. package/esm/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.js +1 -1
  47. package/esm/SingleInputTimeRangeField/SingleInputTimeRangeField.js +1 -1
  48. package/esm/TimeRangePicker/TimeRangePicker.js +1 -1
  49. package/esm/TimeRangePicker/TimeRangePickerTimeWrapper.js +4 -4
  50. package/esm/TimeRangePicker/TimeRangePickerToolbar.js +9 -9
  51. package/esm/TimeRangePicker/shared.js +4 -3
  52. package/esm/index.js +1 -1
  53. package/esm/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +1 -1
  54. package/esm/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +1 -1
  55. package/esm/internals/utils/date-range-manager.d.ts +2 -2
  56. package/esm/internals/utils/date-range-manager.js +8 -8
  57. package/esm/internals/utils/date-utils.d.ts +5 -5
  58. package/esm/internals/utils/date-utils.js +11 -11
  59. package/esm/internals/utils/valueManagers.js +9 -9
  60. package/esm/managers/useDateRangeManager.js +8 -8
  61. package/esm/managers/useDateTimeRangeManager.js +9 -9
  62. package/esm/managers/useTimeRangeManager.js +10 -10
  63. package/esm/validation/validateDateRange.js +1 -1
  64. package/esm/validation/validateDateTimeRange.js +1 -1
  65. package/esm/validation/validateTimeRange.js +1 -1
  66. package/index.js +1 -1
  67. package/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +1 -1
  68. package/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +1 -1
  69. package/internals/utils/date-range-manager.d.ts +2 -2
  70. package/internals/utils/date-range-manager.js +8 -8
  71. package/internals/utils/date-utils.d.ts +5 -5
  72. package/internals/utils/date-utils.js +11 -11
  73. package/internals/utils/valueManagers.js +9 -9
  74. package/managers/useDateRangeManager.js +6 -6
  75. package/managers/useDateTimeRangeManager.js +7 -7
  76. package/managers/useTimeRangeManager.js +8 -8
  77. package/package.json +4 -4
  78. package/validation/validateDateRange.js +1 -1
  79. package/validation/validateDateTimeRange.js +1 -1
  80. package/validation/validateTimeRange.js +1 -1
@@ -6,12 +6,13 @@ const _excluded = ["openTo"];
6
6
  import * as React from 'react';
7
7
  import PropTypes from 'prop-types';
8
8
  import resolveComponentProps from '@mui/utils/resolveComponentProps';
9
- import { useUtils, resolveTimeFormat, mergeSx, MULTI_SECTION_CLOCK_SECTION_WIDTH } from '@mui/x-date-pickers/internals';
9
+ import { resolveTimeFormat, mergeSx, MULTI_SECTION_CLOCK_SECTION_WIDTH } from '@mui/x-date-pickers/internals';
10
10
  import { extractValidationProps } from '@mui/x-date-pickers/validation';
11
11
  import { multiSectionDigitalClockClasses, multiSectionDigitalClockSectionClasses } from '@mui/x-date-pickers/MultiSectionDigitalClock';
12
12
  import { digitalClockClasses } from '@mui/x-date-pickers/DigitalClock';
13
13
  import { renderDigitalClockTimeView, renderMultiSectionDigitalClockTimeView } from '@mui/x-date-pickers/timeViewRenderers';
14
14
  import { pickersLayoutClasses } from '@mui/x-date-pickers/PickersLayout';
15
+ import { usePickerAdapter } from '@mui/x-date-pickers/hooks';
15
16
  import { rangeValueManager } from "../internals/utils/valueManagers.js";
16
17
  import { useTimeRangePickerDefaultizedProps } from "../TimeRangePicker/shared.js";
17
18
  import { SingleInputTimeRangeField } from "../SingleInputTimeRangeField/index.js";
@@ -62,7 +63,7 @@ const rendererInterceptor = function RendererInterceptor(props) {
62
63
  };
63
64
  if (process.env.NODE_ENV !== "production") rendererInterceptor.displayName = "rendererInterceptor";
64
65
  const DesktopTimeRangePicker = /*#__PURE__*/React.forwardRef(function DesktopTimeRangePicker(inProps, ref) {
65
- const utils = useUtils();
66
+ const adapter = usePickerAdapter();
66
67
 
67
68
  // Props with the default values common to all time range pickers
68
69
  const defaultizedProps = useTimeRangePickerDefaultizedProps(inProps, 'MuiDesktopTimeRangePicker');
@@ -79,7 +80,7 @@ const DesktopTimeRangePicker = /*#__PURE__*/React.forwardRef(function DesktopTim
79
80
  views,
80
81
  viewRenderers,
81
82
  ampmInClock: true,
82
- format: resolveTimeFormat(utils, defaultizedProps),
83
+ format: resolveTimeFormat(adapter, defaultizedProps),
83
84
  slots: _extends({
84
85
  field: SingleInputTimeRangeField
85
86
  }, defaultizedProps.slots),
@@ -122,7 +123,7 @@ DesktopTimeRangePicker.propTypes = {
122
123
  // ----------------------------------------------------------------------
123
124
  /**
124
125
  * 12h/24h view for hour selection clock.
125
- * @default utils.is12HourCycleInCurrentLocale()
126
+ * @default adapter.is12HourCycleInCurrentLocale()
126
127
  */
127
128
  ampm: PropTypes.bool,
128
129
  /**
@@ -3,10 +3,10 @@
3
3
  import _extends from "@babel/runtime/helpers/esm/extends";
4
4
  import * as React from 'react';
5
5
  import PropTypes from 'prop-types';
6
- import { useUtils } from '@mui/x-date-pickers/internals';
7
- import { extractValidationProps } from '@mui/x-date-pickers/validation';
8
- import resolveComponentProps from '@mui/utils/resolveComponentProps';
9
6
  import refType from '@mui/utils/refType';
7
+ import resolveComponentProps from '@mui/utils/resolveComponentProps';
8
+ import { extractValidationProps } from '@mui/x-date-pickers/validation';
9
+ import { usePickerAdapter } from '@mui/x-date-pickers/hooks';
10
10
  import { rangeValueManager } from "../internals/utils/valueManagers.js";
11
11
  import { useDateRangePickerDefaultizedProps } from "../DateRangePicker/shared.js";
12
12
  import { renderDateRangeViewCalendar } from "../dateRangeViewRenderers/index.js";
@@ -24,7 +24,7 @@ import { validateDateRange } from "../validation/index.js";
24
24
  * - [MobileDateRangePicker API](https://mui.com/x/api/date-pickers/mobile-date-range-picker/)
25
25
  */
26
26
  const MobileDateRangePicker = /*#__PURE__*/React.forwardRef(function MobileDateRangePicker(inProps, ref) {
27
- const utils = useUtils();
27
+ const adapter = usePickerAdapter();
28
28
 
29
29
  // Props with the default values common to all date time pickers
30
30
  const defaultizedProps = useDateRangePickerDefaultizedProps(inProps, 'MuiMobileDateRangePicker');
@@ -34,7 +34,7 @@ const MobileDateRangePicker = /*#__PURE__*/React.forwardRef(function MobileDateR
34
34
  const props = _extends({}, defaultizedProps, {
35
35
  viewRenderers,
36
36
  // TODO: Replace with resolveDateFormat() once we support month and year views
37
- format: defaultizedProps.format ?? utils.formats.keyboardDate,
37
+ format: defaultizedProps.format ?? adapter.formats.keyboardDate,
38
38
  // Force one calendar on mobile to avoid layout issues
39
39
  calendars: 1,
40
40
  // force current calendar position, since we only have one calendar
@@ -6,12 +6,13 @@ const _excluded = ["view", "openTo"];
6
6
  import * as React from 'react';
7
7
  import PropTypes from 'prop-types';
8
8
  import refType from '@mui/utils/refType';
9
- import { DIALOG_WIDTH, VIEW_HEIGHT, isInternalTimeView, isDatePickerView, resolveDateTimeFormat, useUtils, TIME_VIEWS } from '@mui/x-date-pickers/internals';
9
+ import { DIALOG_WIDTH, VIEW_HEIGHT, isInternalTimeView, isDatePickerView, resolveDateTimeFormat, TIME_VIEWS } from '@mui/x-date-pickers/internals';
10
10
  import { extractValidationProps } from '@mui/x-date-pickers/validation';
11
11
  import resolveComponentProps from '@mui/utils/resolveComponentProps';
12
12
  import { renderDigitalClockTimeView, renderMultiSectionDigitalClockTimeView } from '@mui/x-date-pickers/timeViewRenderers';
13
13
  import { multiSectionDigitalClockClasses, multiSectionDigitalClockSectionClasses } from '@mui/x-date-pickers/MultiSectionDigitalClock';
14
14
  import { digitalClockClasses } from '@mui/x-date-pickers/DigitalClock';
15
+ import { usePickerAdapter } from '@mui/x-date-pickers/hooks';
15
16
  import { rangeValueManager } from "../internals/utils/valueManagers.js";
16
17
  import { renderDateRangeViewCalendar } from "../dateRangeViewRenderers/index.js";
17
18
  import { useMobileRangePicker } from "../internals/hooks/useMobileRangePicker/index.js";
@@ -104,7 +105,7 @@ const rendererInterceptor = function RendererInterceptor(props) {
104
105
  * - [MobileDateTimeRangePicker API](https://mui.com/x/api/date-pickers/mobile-date-time-range-picker/)
105
106
  */
106
107
  const MobileDateTimeRangePicker = /*#__PURE__*/React.forwardRef(function MobileDateTimeRangePicker(inProps, ref) {
107
- const utils = useUtils();
108
+ const adapter = usePickerAdapter();
108
109
  // Props with the default values common to all date time range pickers
109
110
  const defaultizedProps = useDateTimeRangePickerDefaultizedProps(inProps, 'MuiMobileDateTimeRangePicker');
110
111
  const renderTimeView = defaultizedProps.shouldRenderTimeInASingleColumn ? renderDigitalClockTimeView : renderMultiSectionDigitalClockTimeView;
@@ -117,7 +118,7 @@ const MobileDateTimeRangePicker = /*#__PURE__*/React.forwardRef(function MobileD
117
118
  }, defaultizedProps.viewRenderers);
118
119
  const props = _extends({}, defaultizedProps, {
119
120
  viewRenderers,
120
- format: resolveDateTimeFormat(utils, defaultizedProps, true),
121
+ format: resolveDateTimeFormat(adapter, defaultizedProps, true),
121
122
  // Force one calendar on mobile to avoid layout issues
122
123
  calendars: 1,
123
124
  // force true to correctly handle `renderTimeViewClock` as a renderer
@@ -158,7 +159,7 @@ MobileDateTimeRangePicker.propTypes = {
158
159
  // ----------------------------------------------------------------------
159
160
  /**
160
161
  * 12h/24h view for hour selection clock.
161
- * @default utils.is12HourCycleInCurrentLocale()
162
+ * @default adapter.is12HourCycleInCurrentLocale()
162
163
  */
163
164
  ampm: PropTypes.bool,
164
165
  /**
@@ -3,13 +3,14 @@
3
3
  import _extends from "@babel/runtime/helpers/esm/extends";
4
4
  import * as React from 'react';
5
5
  import PropTypes from 'prop-types';
6
- import { DIALOG_WIDTH, resolveTimeFormat, useUtils, VIEW_HEIGHT } from '@mui/x-date-pickers/internals';
7
- import resolveComponentProps from '@mui/utils/resolveComponentProps';
8
6
  import refType from '@mui/utils/refType';
7
+ import resolveComponentProps from '@mui/utils/resolveComponentProps';
8
+ import { DIALOG_WIDTH, resolveTimeFormat, VIEW_HEIGHT } from '@mui/x-date-pickers/internals';
9
9
  import { multiSectionDigitalClockClasses, multiSectionDigitalClockSectionClasses } from '@mui/x-date-pickers/MultiSectionDigitalClock';
10
10
  import { digitalClockClasses } from '@mui/x-date-pickers/DigitalClock';
11
11
  import { renderDigitalClockTimeView, renderMultiSectionDigitalClockTimeView } from '@mui/x-date-pickers/timeViewRenderers';
12
12
  import { extractValidationProps } from '@mui/x-date-pickers/validation';
13
+ import { usePickerAdapter } from '@mui/x-date-pickers/hooks';
13
14
  import { rangeValueManager } from "../internals/utils/valueManagers.js";
14
15
  import { useTimeRangePickerDefaultizedProps } from "../TimeRangePicker/shared.js";
15
16
  import { SingleInputTimeRangeField } from "../SingleInputTimeRangeField/index.js";
@@ -63,7 +64,7 @@ const rendererInterceptor = function rendererInterceptor(props) {
63
64
  };
64
65
  if (process.env.NODE_ENV !== "production") rendererInterceptor.displayName = "rendererInterceptor";
65
66
  const MobileTimeRangePicker = /*#__PURE__*/React.forwardRef(function MobileTimeRangePicker(inProps, ref) {
66
- const utils = useUtils();
67
+ const adapter = usePickerAdapter();
67
68
 
68
69
  // Props with the default values common to all time range pickers
69
70
  const defaultizedProps = useTimeRangePickerDefaultizedProps(inProps, 'MuiMobileTimeRangePicker');
@@ -77,7 +78,7 @@ const MobileTimeRangePicker = /*#__PURE__*/React.forwardRef(function MobileTimeR
77
78
  const props = _extends({}, defaultizedProps, {
78
79
  ampmInClock: true,
79
80
  viewRenderers,
80
- format: resolveTimeFormat(utils, defaultizedProps),
81
+ format: resolveTimeFormat(adapter, defaultizedProps),
81
82
  slots: _extends({
82
83
  field: SingleInputTimeRangeField
83
84
  }, defaultizedProps.slots),
@@ -112,7 +113,7 @@ MobileTimeRangePicker.propTypes = {
112
113
  // ----------------------------------------------------------------------
113
114
  /**
114
115
  * 12h/24h view for hour selection clock.
115
- * @default utils.is12HourCycleInCurrentLocale()
116
+ * @default adapter.is12HourCycleInCurrentLocale()
116
117
  */
117
118
  ampm: PropTypes.bool,
118
119
  /**
@@ -28,7 +28,7 @@ MultiInputDateTimeRangeField.propTypes = {
28
28
  // ----------------------------------------------------------------------
29
29
  /**
30
30
  * 12h/24h view for hour selection clock.
31
- * @default utils.is12HourCycleInCurrentLocale()
31
+ * @default adapter.is12HourCycleInCurrentLocale()
32
32
  */
33
33
  ampm: PropTypes.bool,
34
34
  /**
@@ -29,7 +29,7 @@ MultiInputTimeRangeField.propTypes = {
29
29
  // ----------------------------------------------------------------------
30
30
  /**
31
31
  * 12h/24h view for hour selection clock.
32
- * @default utils.is12HourCycleInCurrentLocale()
32
+ * @default adapter.is12HourCycleInCurrentLocale()
33
33
  */
34
34
  ampm: PropTypes.bool,
35
35
  /**
@@ -8,8 +8,8 @@ import * as React from 'react';
8
8
  import PropTypes from 'prop-types';
9
9
  import { styled } from '@mui/material/styles';
10
10
  import { PickersCalendarHeader } from '@mui/x-date-pickers/PickersCalendarHeader';
11
- import { PickersArrowSwitcher, useNextMonthDisabled, usePreviousMonthDisabled, useUtils } from '@mui/x-date-pickers/internals';
12
- import { usePickerTranslations } from '@mui/x-date-pickers/hooks';
11
+ import { PickersArrowSwitcher, useNextMonthDisabled, usePreviousMonthDisabled } from '@mui/x-date-pickers/internals';
12
+ import { usePickerAdapter, usePickerTranslations } from '@mui/x-date-pickers/hooks';
13
13
  import { jsx as _jsx } from "react/jsx-runtime";
14
14
  const PickersRangeCalendarHeaderContentMultipleCalendars = styled(PickersArrowSwitcher)({
15
15
  padding: '12px 16px 4px 16px',
@@ -18,7 +18,7 @@ const PickersRangeCalendarHeaderContentMultipleCalendars = styled(PickersArrowSw
18
18
  justifyContent: 'space-between'
19
19
  });
20
20
  const PickersRangeCalendarHeader = /*#__PURE__*/React.forwardRef(function PickersRangeCalendarHeader(props, ref) {
21
- const utils = useUtils();
21
+ const adapter = usePickerAdapter();
22
22
  const translations = usePickerTranslations();
23
23
  const {
24
24
  calendars,
@@ -57,8 +57,8 @@ const PickersRangeCalendarHeader = /*#__PURE__*/React.forwardRef(function Picker
57
57
  ref: ref
58
58
  }));
59
59
  }
60
- const selectNextMonth = () => onMonthChange(utils.addMonths(currentMonth, 1));
61
- const selectPreviousMonth = () => onMonthChange(utils.addMonths(currentMonth, -1));
60
+ const selectNextMonth = () => onMonthChange(adapter.addMonths(currentMonth, 1));
61
+ const selectPreviousMonth = () => onMonthChange(adapter.addMonths(currentMonth, -1));
62
62
  return /*#__PURE__*/_jsx(PickersRangeCalendarHeaderContentMultipleCalendars, _extends({}, otherRangeProps, {
63
63
  ref: ref,
64
64
  onGoToPrevious: selectPreviousMonth,
@@ -72,7 +72,7 @@ const PickersRangeCalendarHeader = /*#__PURE__*/React.forwardRef(function Picker
72
72
  slots: slots,
73
73
  slotProps: slotProps,
74
74
  labelId: labelId,
75
- children: utils.formatByString(month, format ?? `${utils.formats.month} ${utils.formats.year}`)
75
+ children: adapter.formatByString(month, format ?? `${adapter.formats.month} ${adapter.formats.year}`)
76
76
  }));
77
77
  });
78
78
  if (process.env.NODE_ENV !== "production") PickersRangeCalendarHeader.displayName = "PickersRangeCalendarHeader";
@@ -52,7 +52,7 @@ process.env.NODE_ENV !== "production" ? SingleInputDateTimeRangeField.propTypes
52
52
  // ----------------------------------------------------------------------
53
53
  /**
54
54
  * 12h/24h view for hour selection clock.
55
- * @default utils.is12HourCycleInCurrentLocale()
55
+ * @default adapter.is12HourCycleInCurrentLocale()
56
56
  */
57
57
  ampm: PropTypes.bool,
58
58
  /**
@@ -52,7 +52,7 @@ process.env.NODE_ENV !== "production" ? SingleInputTimeRangeField.propTypes = {
52
52
  // ----------------------------------------------------------------------
53
53
  /**
54
54
  * 12h/24h view for hour selection clock.
55
- * @default utils.is12HourCycleInCurrentLocale()
55
+ * @default adapter.is12HourCycleInCurrentLocale()
56
56
  */
57
57
  ampm: PropTypes.bool,
58
58
  /**
@@ -53,7 +53,7 @@ process.env.NODE_ENV !== "production" ? TimeRangePicker.propTypes = {
53
53
  // ----------------------------------------------------------------------
54
54
  /**
55
55
  * 12h/24h view for hour selection clock.
56
- * @default utils.is12HourCycleInCurrentLocale()
56
+ * @default adapter.is12HourCycleInCurrentLocale()
57
57
  */
58
58
  ampm: PropTypes.bool,
59
59
  /**
@@ -1,7 +1,7 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
3
  const _excluded = ["viewRenderer", "value", "onChange", "defaultValue", "onViewChange", "views", "className"];
4
- import { useUtils } from '@mui/x-date-pickers/internals';
4
+ import { usePickerAdapter } from '@mui/x-date-pickers/hooks';
5
5
  import { isRangeValid } from "../internals/utils/date-utils.js";
6
6
  import { calculateRangeChange } from "../internals/utils/date-range-manager.js";
7
7
  import { usePickerRangePositionContext } from "../hooks/index.js";
@@ -9,7 +9,7 @@ import { usePickerRangePositionContext } from "../hooks/index.js";
9
9
  * @ignore - internal component.
10
10
  */
11
11
  function TimeRangePickerTimeWrapper(props) {
12
- const utils = useUtils();
12
+ const adapter = usePickerAdapter();
13
13
  const {
14
14
  viewRenderer,
15
15
  value,
@@ -35,11 +35,11 @@ function TimeRangePickerTimeWrapper(props) {
35
35
  newRange
36
36
  } = calculateRangeChange({
37
37
  newDate,
38
- utils,
38
+ adapter,
39
39
  range: value,
40
40
  rangePosition
41
41
  });
42
- const isFullRangeSelected = rangePosition === 'end' && isRangeValid(utils, newRange);
42
+ const isFullRangeSelected = rangePosition === 'end' && isRangeValid(adapter, newRange);
43
43
  onChange(newRange, isFullRangeSelected ? 'finish' : 'partial', selectedView);
44
44
  };
45
45
  return viewRenderer(_extends({}, other, {
@@ -8,8 +8,8 @@ import PropTypes from 'prop-types';
8
8
  import clsx from 'clsx';
9
9
  import { styled, useThemeProps } from '@mui/material/styles';
10
10
  import composeClasses from '@mui/utils/composeClasses';
11
- import { PickersToolbar, PickersToolbarButton, useUtils, PickersToolbarText, getMeridiem, formatMeridiem, pickersToolbarClasses, pickersToolbarTextClasses, MULTI_SECTION_CLOCK_SECTION_WIDTH, useToolbarOwnerState } from '@mui/x-date-pickers/internals';
12
- import { usePickerContext, usePickerTranslations } from '@mui/x-date-pickers/hooks';
11
+ import { PickersToolbar, PickersToolbarButton, PickersToolbarText, getMeridiem, formatMeridiem, pickersToolbarClasses, pickersToolbarTextClasses, MULTI_SECTION_CLOCK_SECTION_WIDTH, useToolbarOwnerState } from '@mui/x-date-pickers/internals';
12
+ import { usePickerAdapter, usePickerContext, usePickerTranslations } from '@mui/x-date-pickers/hooks';
13
13
  import { getTimeRangePickerToolbarUtilityClass } from "./timeRangePickerToolbarClasses.js";
14
14
  import { usePickerRangePositionContext } from "../hooks/index.js";
15
15
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
@@ -92,13 +92,13 @@ function TimeRangePickerToolbarTimeElement(props) {
92
92
  separatorClasses,
93
93
  toolbarPlaceholder
94
94
  } = props;
95
- const utils = useUtils();
95
+ const adapter = usePickerAdapter();
96
96
  const {
97
97
  variant,
98
98
  views
99
99
  } = usePickerContext();
100
- const formatHours = time => ampm ? utils.format(time, 'hours12h') : utils.format(time, 'hours24h');
101
- const meridiemMode = getMeridiem(value, utils);
100
+ const formatHours = time => ampm ? adapter.format(time, 'hours12h') : adapter.format(time, 'hours24h');
101
+ const meridiemMode = getMeridiem(value, adapter);
102
102
  const sectionWidth = variant === 'desktop' ? MULTI_SECTION_CLOCK_SECTION_WIDTH : '100%';
103
103
  return /*#__PURE__*/_jsxs(TimeRangePickerToolbarTimeContainer, {
104
104
  children: [views.includes('hours') && /*#__PURE__*/_jsxs(React.Fragment, {
@@ -107,7 +107,7 @@ function TimeRangePickerToolbarTimeElement(props) {
107
107
  width: sectionWidth,
108
108
  onClick: () => onViewChange('hours'),
109
109
  selected: view === 'hours',
110
- value: utils.isValid(value) ? formatHours(value) : toolbarPlaceholder
110
+ value: adapter.isValid(value) ? formatHours(value) : toolbarPlaceholder
111
111
  }), /*#__PURE__*/_jsx(TimeRangePickerToolbarSeparator, {
112
112
  variant: "h5",
113
113
  value: ":",
@@ -117,7 +117,7 @@ function TimeRangePickerToolbarTimeElement(props) {
117
117
  width: sectionWidth,
118
118
  onClick: () => onViewChange('minutes'),
119
119
  selected: view === 'minutes' || !views.includes('minutes') && view === 'hours',
120
- value: utils.isValid(value) ? utils.format(value, 'minutes') : toolbarPlaceholder,
120
+ value: adapter.isValid(value) ? adapter.format(value, 'minutes') : toolbarPlaceholder,
121
121
  disabled: !views.includes('minutes')
122
122
  })]
123
123
  }), views.includes('seconds') && /*#__PURE__*/_jsxs(React.Fragment, {
@@ -130,13 +130,13 @@ function TimeRangePickerToolbarTimeElement(props) {
130
130
  width: sectionWidth,
131
131
  onClick: () => onViewChange('seconds'),
132
132
  selected: view === 'seconds',
133
- value: value ? utils.format(value, 'seconds') : toolbarPlaceholder
133
+ value: value ? adapter.format(value, 'seconds') : toolbarPlaceholder
134
134
  })]
135
135
  }), ampm && /*#__PURE__*/_jsx(PickersToolbarButton, {
136
136
  variant: "h5",
137
137
  onClick: () => onViewChange('meridiem'),
138
138
  selected: view === 'meridiem',
139
- value: value && meridiemMode ? formatMeridiem(utils, meridiemMode) : toolbarPlaceholder,
139
+ value: value && meridiemMode ? formatMeridiem(adapter, meridiemMode) : toolbarPlaceholder,
140
140
  width: sectionWidth
141
141
  })]
142
142
  });
@@ -1,17 +1,18 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import * as React from 'react';
3
3
  import { useThemeProps } from '@mui/material/styles';
4
- import { useUtils, applyDefaultViewProps, resolveTimeViewsResponse, useApplyDefaultValuesToTimeValidationProps } from '@mui/x-date-pickers/internals';
4
+ import { applyDefaultViewProps, resolveTimeViewsResponse, useApplyDefaultValuesToTimeValidationProps } from '@mui/x-date-pickers/internals';
5
+ import { usePickerAdapter } from '@mui/x-date-pickers/hooks';
5
6
  import { TimeRangePickerToolbar } from "./TimeRangePickerToolbar.js";
6
7
  import { TimeRangePickerTabs } from "./TimeRangePickerTabs.js";
7
8
  export function useTimeRangePickerDefaultizedProps(props, name) {
8
- const utils = useUtils();
9
+ const adapter = usePickerAdapter();
9
10
  const themeProps = useThemeProps({
10
11
  props,
11
12
  name
12
13
  });
13
14
  const validationProps = useApplyDefaultValuesToTimeValidationProps(themeProps);
14
- const ampm = themeProps.ampm ?? utils.is12HourCycleInCurrentLocale();
15
+ const ampm = themeProps.ampm ?? adapter.is12HourCycleInCurrentLocale();
15
16
  const {
16
17
  openTo,
17
18
  views: defaultViews
package/esm/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-date-pickers-pro v8.5.2
2
+ * @mui/x-date-pickers-pro v8.6.0
3
3
  *
4
4
  * @license MUI X Commercial
5
5
  * This source code is licensed under the commercial license found in the
@@ -19,7 +19,7 @@ export const useDesktopRangePicker = _ref => {
19
19
  steps
20
20
  } = _ref,
21
21
  pickerParams = _objectWithoutPropertiesLoose(_ref, _excluded);
22
- useLicenseVerifier('x-date-pickers-pro', "MTc0OTY3OTIwMDAwMA==");
22
+ useLicenseVerifier('x-date-pickers-pro', "MTc1MDk3NTIwMDAwMA==");
23
23
  const {
24
24
  slots,
25
25
  slotProps,
@@ -21,7 +21,7 @@ export const useMobileRangePicker = _ref => {
21
21
  steps
22
22
  } = _ref,
23
23
  pickerParams = _objectWithoutPropertiesLoose(_ref, _excluded);
24
- useLicenseVerifier('x-date-pickers-pro', "MTc0OTY3OTIwMDAwMA==");
24
+ useLicenseVerifier('x-date-pickers-pro', "MTc1MDk3NTIwMDAwMA==");
25
25
  const {
26
26
  slots,
27
27
  slotProps: innerSlotProps,
@@ -2,7 +2,7 @@ import { MuiPickersAdapter, PickerValidDate } from '@mui/x-date-pickers/models';
2
2
  import { PickerRangeValue } from '@mui/x-date-pickers/internals';
3
3
  import { RangePosition } from "../../models/index.js";
4
4
  interface CalculateRangeChangeOptions {
5
- utils: MuiPickersAdapter;
5
+ adapter: MuiPickersAdapter;
6
6
  range: PickerRangeValue;
7
7
  newDate: PickerValidDate | null;
8
8
  rangePosition: RangePosition;
@@ -20,7 +20,7 @@ interface CalculateRangeChangeResponse {
20
20
  newRange: PickerRangeValue;
21
21
  }
22
22
  export declare function calculateRangeChange({
23
- utils,
23
+ adapter,
24
24
  range,
25
25
  newDate: selectedDate,
26
26
  rangePosition,
@@ -1,6 +1,6 @@
1
1
  import { mergeDateAndTime } from '@mui/x-date-pickers/internals';
2
2
  export function calculateRangeChange({
3
- utils,
3
+ adapter,
4
4
  range,
5
5
  newDate: selectedDate,
6
6
  rangePosition,
@@ -8,18 +8,18 @@ export function calculateRangeChange({
8
8
  shouldMergeDateAndTime = false,
9
9
  referenceDate
10
10
  }) {
11
- const start = !utils.isValid(range[0]) ? null : range[0];
12
- const end = !utils.isValid(range[1]) ? null : range[1];
11
+ const start = !adapter.isValid(range[0]) ? null : range[0];
12
+ const end = !adapter.isValid(range[1]) ? null : range[1];
13
13
  if (shouldMergeDateAndTime && selectedDate) {
14
14
  // If there is a date already selected, then we want to keep its time
15
15
  if (start && rangePosition === 'start') {
16
- selectedDate = mergeDateAndTime(utils, selectedDate, start);
16
+ selectedDate = mergeDateAndTime(adapter, selectedDate, start);
17
17
  }
18
18
  if (end && rangePosition === 'end') {
19
- selectedDate = mergeDateAndTime(utils, selectedDate, end);
19
+ selectedDate = mergeDateAndTime(adapter, selectedDate, end);
20
20
  }
21
21
  }
22
- const newSelectedDate = referenceDate && selectedDate && shouldMergeDateAndTime ? mergeDateAndTime(utils, selectedDate, referenceDate) : selectedDate;
22
+ const newSelectedDate = referenceDate && selectedDate && shouldMergeDateAndTime ? mergeDateAndTime(adapter, selectedDate, referenceDate) : selectedDate;
23
23
  if (rangePosition === 'start') {
24
24
  const truthyResult = allowRangeFlip ? {
25
25
  nextSelection: 'start',
@@ -28,7 +28,7 @@ export function calculateRangeChange({
28
28
  nextSelection: 'end',
29
29
  newRange: [newSelectedDate, null]
30
30
  };
31
- return Boolean(end) && utils.isAfter(newSelectedDate, end) ? truthyResult : {
31
+ return Boolean(end) && adapter.isAfter(newSelectedDate, end) ? truthyResult : {
32
32
  nextSelection: 'end',
33
33
  newRange: [newSelectedDate, end]
34
34
  };
@@ -40,7 +40,7 @@ export function calculateRangeChange({
40
40
  nextSelection: 'end',
41
41
  newRange: [newSelectedDate, null]
42
42
  };
43
- return Boolean(start) && utils.isBeforeDay(newSelectedDate, start) ? truthyResult : {
43
+ return Boolean(start) && adapter.isBeforeDay(newSelectedDate, start) ? truthyResult : {
44
44
  nextSelection: 'start',
45
45
  newRange: [start, newSelectedDate]
46
46
  };
@@ -1,7 +1,7 @@
1
1
  import { AdapterFormats, MuiPickersAdapter, PickerValidDate } from '@mui/x-date-pickers/models';
2
2
  import { PickerNonNullableRangeValue, PickerRangeValue } from '@mui/x-date-pickers/internals';
3
- export declare const isRangeValid: (utils: MuiPickersAdapter, range: PickerRangeValue) => range is PickerNonNullableRangeValue;
4
- export declare const isWithinRange: (utils: MuiPickersAdapter, day: PickerValidDate, range: PickerRangeValue) => boolean;
5
- export declare const isStartOfRange: (utils: MuiPickersAdapter, day: PickerValidDate, range: PickerRangeValue) => boolean;
6
- export declare const isEndOfRange: (utils: MuiPickersAdapter, day: PickerValidDate, range: PickerRangeValue) => boolean;
7
- export declare const formatRange: (utils: MuiPickersAdapter, range: PickerRangeValue, formatKey: keyof AdapterFormats) => string | null;
3
+ export declare const isRangeValid: (adapter: MuiPickersAdapter, range: PickerRangeValue) => range is PickerNonNullableRangeValue;
4
+ export declare const isWithinRange: (adapter: MuiPickersAdapter, day: PickerValidDate, range: PickerRangeValue) => boolean;
5
+ export declare const isStartOfRange: (adapter: MuiPickersAdapter, day: PickerValidDate, range: PickerRangeValue) => boolean;
6
+ export declare const isEndOfRange: (adapter: MuiPickersAdapter, day: PickerValidDate, range: PickerRangeValue) => boolean;
7
+ export declare const formatRange: (adapter: MuiPickersAdapter, range: PickerRangeValue, formatKey: keyof AdapterFormats) => string | null;
@@ -1,18 +1,18 @@
1
- export const isRangeValid = (utils, range) => {
2
- return utils.isValid(range[0]) && utils.isValid(range[1]) && !utils.isBefore(range[1], range[0]);
1
+ export const isRangeValid = (adapter, range) => {
2
+ return adapter.isValid(range[0]) && adapter.isValid(range[1]) && !adapter.isBefore(range[1], range[0]);
3
3
  };
4
- export const isWithinRange = (utils, day, range) => {
5
- return isRangeValid(utils, range) && utils.isWithinRange(day, range);
4
+ export const isWithinRange = (adapter, day, range) => {
5
+ return isRangeValid(adapter, range) && adapter.isWithinRange(day, range);
6
6
  };
7
- export const isStartOfRange = (utils, day, range) => {
8
- return isRangeValid(utils, range) && utils.isSameDay(day, range[0]);
7
+ export const isStartOfRange = (adapter, day, range) => {
8
+ return isRangeValid(adapter, range) && adapter.isSameDay(day, range[0]);
9
9
  };
10
- export const isEndOfRange = (utils, day, range) => {
11
- return isRangeValid(utils, range) && utils.isSameDay(day, range[1]);
10
+ export const isEndOfRange = (adapter, day, range) => {
11
+ return isRangeValid(adapter, range) && adapter.isSameDay(day, range[1]);
12
12
  };
13
- export const formatRange = (utils, range, formatKey) => {
14
- if (!isRangeValid(utils, range)) {
13
+ export const formatRange = (adapter, range, formatKey) => {
14
+ if (!isRangeValid(adapter, range)) {
15
15
  return null;
16
16
  }
17
- return `${utils.format(range[0], formatKey)} - ${utils.format(range[1], formatKey)}`;
17
+ return `${adapter.format(range[0], formatKey)} - ${adapter.format(range[1], formatKey)}`;
18
18
  };
@@ -12,8 +12,8 @@ export const rangeValueManager = {
12
12
  referenceDate: referenceDateProp
13
13
  } = _ref,
14
14
  params = _objectWithoutPropertiesLoose(_ref, _excluded);
15
- const shouldKeepStartDate = params.utils.isValid(value[0]);
16
- const shouldKeepEndDate = params.utils.isValid(value[1]);
15
+ const shouldKeepStartDate = params.adapter.isValid(value[0]);
16
+ const shouldKeepEndDate = params.adapter.isValid(value[1]);
17
17
  if (shouldKeepStartDate && shouldKeepEndDate) {
18
18
  return value;
19
19
  }
@@ -25,22 +25,22 @@ export const rangeValueManager = {
25
25
  isSameError: (a, b) => b !== null && a[1] === b[1] && a[0] === b[0],
26
26
  hasError: error => error[0] != null || error[1] != null,
27
27
  defaultErrorState: [null, null],
28
- getTimezone: (utils, value) => {
29
- const timezoneStart = utils.isValid(value[0]) ? utils.getTimezone(value[0]) : null;
30
- const timezoneEnd = utils.isValid(value[1]) ? utils.getTimezone(value[1]) : null;
28
+ getTimezone: (adapter, value) => {
29
+ const timezoneStart = adapter.isValid(value[0]) ? adapter.getTimezone(value[0]) : null;
30
+ const timezoneEnd = adapter.isValid(value[1]) ? adapter.getTimezone(value[1]) : null;
31
31
  if (timezoneStart != null && timezoneEnd != null && timezoneStart !== timezoneEnd) {
32
32
  throw new Error('MUI X: The timezone of the start and the end date should be the same.');
33
33
  }
34
34
  return timezoneStart ?? timezoneEnd;
35
35
  },
36
- setTimezone: (utils, timezone, value) => [value[0] == null ? null : utils.setTimezone(value[0], timezone), value[1] == null ? null : utils.setTimezone(value[1], timezone)]
36
+ setTimezone: (adapter, timezone, value) => [value[0] == null ? null : adapter.setTimezone(value[0], timezone), value[1] == null ? null : adapter.setTimezone(value[1], timezone)]
37
37
  };
38
38
  export const getRangeFieldValueManager = ({
39
39
  dateSeparator = '–'
40
40
  }) => ({
41
- updateReferenceValue: (utils, value, prevReferenceValue) => {
42
- const shouldKeepStartDate = utils.isValid(value[0]);
43
- const shouldKeepEndDate = utils.isValid(value[1]);
41
+ updateReferenceValue: (adapter, value, prevReferenceValue) => {
42
+ const shouldKeepStartDate = adapter.isValid(value[0]);
43
+ const shouldKeepEndDate = adapter.isValid(value[1]);
44
44
  if (!shouldKeepStartDate && !shouldKeepEndDate) {
45
45
  return prevReferenceValue;
46
46
  }
@@ -2,8 +2,8 @@
2
2
 
3
3
  import _extends from "@babel/runtime/helpers/esm/extends";
4
4
  import * as React from 'react';
5
- import { usePickerTranslations } from '@mui/x-date-pickers/hooks';
6
- import { useApplyDefaultValuesToDateValidationProps, useUtils } from '@mui/x-date-pickers/internals';
5
+ import { usePickerAdapter, usePickerTranslations } from '@mui/x-date-pickers/hooks';
6
+ import { useApplyDefaultValuesToDateValidationProps } from '@mui/x-date-pickers/internals';
7
7
  import { getRangeFieldValueManager, rangeValueManager } from "../internals/utils/valueManagers.js";
8
8
  import { validateDateRange } from "../validation/index.js";
9
9
  import { formatRange } from "../internals/utils/date-utils.js";
@@ -25,16 +25,16 @@ export function useDateRangeManager(parameters = {}) {
25
25
  }), [enableAccessibleFieldDOMStructure, dateSeparator]);
26
26
  }
27
27
  function useOpenPickerButtonAriaLabel(value) {
28
- const utils = useUtils();
28
+ const adapter = usePickerAdapter();
29
29
  const translations = usePickerTranslations();
30
30
  return React.useMemo(() => {
31
- return translations.openRangePickerDialogue(formatRange(utils, value, 'fullDate'));
32
- }, [value, translations, utils]);
31
+ return translations.openRangePickerDialogue(formatRange(adapter, value, 'fullDate'));
32
+ }, [value, translations, adapter]);
33
33
  }
34
34
  function useApplyDefaultValuesToDateRangeFieldInternalProps(internalProps) {
35
- const utils = useUtils();
35
+ const adapter = usePickerAdapter();
36
36
  const validationProps = useApplyDefaultValuesToDateValidationProps(internalProps);
37
37
  return React.useMemo(() => _extends({}, internalProps, validationProps, {
38
- format: internalProps.format ?? utils.formats.keyboardDate
39
- }), [internalProps, validationProps, utils]);
38
+ format: internalProps.format ?? adapter.formats.keyboardDate
39
+ }), [internalProps, validationProps, adapter]);
40
40
  }
@@ -2,8 +2,8 @@
2
2
 
3
3
  import _extends from "@babel/runtime/helpers/esm/extends";
4
4
  import * as React from 'react';
5
- import { usePickerTranslations } from '@mui/x-date-pickers/hooks';
6
- import { useApplyDefaultValuesToDateTimeValidationProps, useUtils } from '@mui/x-date-pickers/internals';
5
+ import { usePickerAdapter, usePickerTranslations } from '@mui/x-date-pickers/hooks';
6
+ import { useApplyDefaultValuesToDateTimeValidationProps } from '@mui/x-date-pickers/internals';
7
7
  import { getRangeFieldValueManager, rangeValueManager } from "../internals/utils/valueManagers.js";
8
8
  import { validateDateTimeRange } from "../validation/index.js";
9
9
  import { formatRange } from "../internals/utils/date-utils.js";
@@ -25,17 +25,17 @@ export function useDateTimeRangeManager(parameters = {}) {
25
25
  }), [enableAccessibleFieldDOMStructure, dateSeparator]);
26
26
  }
27
27
  function useOpenPickerButtonAriaLabel(value) {
28
- const utils = useUtils();
28
+ const adapter = usePickerAdapter();
29
29
  const translations = usePickerTranslations();
30
30
  return React.useMemo(() => {
31
- return translations.openRangePickerDialogue(formatRange(utils, value, 'fullDate'));
32
- }, [value, translations, utils]);
31
+ return translations.openRangePickerDialogue(formatRange(adapter, value, 'fullDate'));
32
+ }, [value, translations, adapter]);
33
33
  }
34
34
  function useApplyDefaultValuesToDateTimeRangeFieldInternalProps(internalProps) {
35
- const utils = useUtils();
35
+ const adapter = usePickerAdapter();
36
36
  const validationProps = useApplyDefaultValuesToDateTimeValidationProps(internalProps);
37
- const ampm = React.useMemo(() => internalProps.ampm ?? utils.is12HourCycleInCurrentLocale(), [internalProps.ampm, utils]);
37
+ const ampm = React.useMemo(() => internalProps.ampm ?? adapter.is12HourCycleInCurrentLocale(), [internalProps.ampm, adapter]);
38
38
  return React.useMemo(() => _extends({}, internalProps, validationProps, {
39
- format: internalProps.format ?? (ampm ? utils.formats.keyboardDateTime12h : utils.formats.keyboardDateTime24h)
40
- }), [internalProps, validationProps, ampm, utils]);
39
+ format: internalProps.format ?? (ampm ? adapter.formats.keyboardDateTime12h : adapter.formats.keyboardDateTime24h)
40
+ }), [internalProps, validationProps, ampm, adapter]);
41
41
  }