@mui/x-date-pickers 8.0.0-beta.1 → 8.0.0-beta.2

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 (114) hide show
  1. package/CHANGELOG.md +94 -0
  2. package/DateCalendar/DateCalendar.js +4 -8
  3. package/DateCalendar/DayCalendar.js +2 -2
  4. package/DatePicker/shared.js +3 -9
  5. package/DateTimePicker/shared.js +3 -13
  6. package/MonthCalendar/MonthCalendar.js +4 -9
  7. package/PickersSectionList/PickersSectionList.d.ts +1 -1
  8. package/PickersSectionList/PickersSectionList.types.d.ts +2 -6
  9. package/TimePicker/shared.js +3 -3
  10. package/YearCalendar/YearCalendar.js +4 -10
  11. package/esm/DateCalendar/DateCalendar.js +6 -10
  12. package/esm/DateCalendar/DayCalendar.js +2 -2
  13. package/esm/DatePicker/shared.js +3 -9
  14. package/esm/DateTimePicker/shared.js +4 -14
  15. package/esm/MonthCalendar/MonthCalendar.js +6 -11
  16. package/esm/PickersSectionList/PickersSectionList.d.ts +1 -1
  17. package/esm/PickersSectionList/PickersSectionList.types.d.ts +2 -6
  18. package/esm/TimePicker/shared.js +3 -3
  19. package/esm/YearCalendar/YearCalendar.js +5 -11
  20. package/esm/index.js +1 -1
  21. package/esm/internals/hooks/useField/syncSelectionToDOM.d.ts +9 -0
  22. package/esm/internals/hooks/useField/syncSelectionToDOM.js +50 -0
  23. package/esm/internals/hooks/useField/useField.types.d.ts +8 -1
  24. package/esm/internals/hooks/useField/useField.utils.d.ts +1 -3
  25. package/esm/internals/hooks/useField/useField.utils.js +0 -57
  26. package/esm/internals/hooks/useField/useFieldHiddenInputProps.d.ts +20 -0
  27. package/esm/internals/hooks/useField/useFieldHiddenInputProps.js +31 -0
  28. package/esm/internals/hooks/useField/useFieldInternalPropsWithDefaults.js +8 -10
  29. package/esm/internals/hooks/useField/useFieldRootHandleKeyDown.js +1 -0
  30. package/esm/internals/hooks/useField/useFieldRootProps.d.ts +32 -0
  31. package/esm/internals/hooks/useField/useFieldRootProps.js +150 -0
  32. package/esm/internals/hooks/useField/useFieldSectionContainerProps.d.ts +15 -0
  33. package/esm/internals/hooks/useField/useFieldSectionContainerProps.js +29 -0
  34. package/esm/internals/hooks/useField/useFieldSectionContentProps.d.ts +23 -0
  35. package/esm/internals/hooks/useField/useFieldSectionContentProps.js +226 -0
  36. package/esm/internals/hooks/useField/useFieldV7TextField.js +76 -307
  37. package/esm/internals/index.d.ts +4 -4
  38. package/esm/internals/index.js +3 -3
  39. package/esm/locales/deDE.js +2 -3
  40. package/esm/managers/useDateManager.d.ts +4 -13
  41. package/esm/managers/useDateManager.js +18 -28
  42. package/esm/managers/useDateTimeManager.d.ts +4 -13
  43. package/esm/managers/useDateTimeManager.js +23 -33
  44. package/esm/managers/useTimeManager.d.ts +4 -13
  45. package/esm/managers/useTimeManager.js +14 -24
  46. package/esm/models/manager.d.ts +3 -8
  47. package/esm/validation/validateDate.js +3 -4
  48. package/index.js +1 -1
  49. package/internals/hooks/useField/syncSelectionToDOM.d.ts +9 -0
  50. package/internals/hooks/useField/syncSelectionToDOM.js +56 -0
  51. package/internals/hooks/useField/useField.types.d.ts +8 -1
  52. package/internals/hooks/useField/useField.utils.d.ts +1 -3
  53. package/internals/hooks/useField/useField.utils.js +2 -61
  54. package/internals/hooks/useField/useFieldHiddenInputProps.d.ts +20 -0
  55. package/internals/hooks/useField/useFieldHiddenInputProps.js +39 -0
  56. package/internals/hooks/useField/useFieldInternalPropsWithDefaults.js +8 -10
  57. package/internals/hooks/useField/useFieldRootHandleKeyDown.js +1 -0
  58. package/internals/hooks/useField/useFieldRootProps.d.ts +32 -0
  59. package/internals/hooks/useField/useFieldRootProps.js +156 -0
  60. package/internals/hooks/useField/useFieldSectionContainerProps.d.ts +15 -0
  61. package/internals/hooks/useField/useFieldSectionContainerProps.js +37 -0
  62. package/internals/hooks/useField/useFieldSectionContentProps.d.ts +23 -0
  63. package/internals/hooks/useField/useFieldSectionContentProps.js +234 -0
  64. package/internals/hooks/useField/useFieldV7TextField.js +75 -306
  65. package/internals/index.d.ts +4 -4
  66. package/internals/index.js +18 -18
  67. package/locales/deDE.js +2 -3
  68. package/managers/useDateManager.d.ts +4 -13
  69. package/managers/useDateManager.js +18 -28
  70. package/managers/useDateTimeManager.d.ts +4 -13
  71. package/managers/useDateTimeManager.js +23 -33
  72. package/managers/useTimeManager.d.ts +4 -13
  73. package/managers/useTimeManager.js +15 -25
  74. package/models/manager.d.ts +3 -8
  75. package/modern/DateCalendar/DateCalendar.js +6 -10
  76. package/modern/DateCalendar/DayCalendar.js +2 -2
  77. package/modern/DatePicker/shared.js +3 -9
  78. package/modern/DateTimePicker/shared.js +4 -14
  79. package/modern/MonthCalendar/MonthCalendar.js +6 -11
  80. package/modern/PickersSectionList/PickersSectionList.d.ts +1 -1
  81. package/modern/PickersSectionList/PickersSectionList.types.d.ts +2 -6
  82. package/modern/TimePicker/shared.js +3 -3
  83. package/modern/YearCalendar/YearCalendar.js +5 -11
  84. package/modern/index.js +1 -1
  85. package/modern/internals/hooks/useField/syncSelectionToDOM.d.ts +9 -0
  86. package/modern/internals/hooks/useField/syncSelectionToDOM.js +50 -0
  87. package/modern/internals/hooks/useField/useField.types.d.ts +8 -1
  88. package/modern/internals/hooks/useField/useField.utils.d.ts +1 -3
  89. package/modern/internals/hooks/useField/useField.utils.js +0 -57
  90. package/modern/internals/hooks/useField/useFieldHiddenInputProps.d.ts +20 -0
  91. package/modern/internals/hooks/useField/useFieldHiddenInputProps.js +31 -0
  92. package/modern/internals/hooks/useField/useFieldInternalPropsWithDefaults.js +8 -10
  93. package/modern/internals/hooks/useField/useFieldRootHandleKeyDown.js +1 -0
  94. package/modern/internals/hooks/useField/useFieldRootProps.d.ts +32 -0
  95. package/modern/internals/hooks/useField/useFieldRootProps.js +150 -0
  96. package/modern/internals/hooks/useField/useFieldSectionContainerProps.d.ts +15 -0
  97. package/modern/internals/hooks/useField/useFieldSectionContainerProps.js +29 -0
  98. package/modern/internals/hooks/useField/useFieldSectionContentProps.d.ts +23 -0
  99. package/modern/internals/hooks/useField/useFieldSectionContentProps.js +226 -0
  100. package/modern/internals/hooks/useField/useFieldV7TextField.js +76 -307
  101. package/modern/internals/index.d.ts +4 -4
  102. package/modern/internals/index.js +3 -3
  103. package/modern/locales/deDE.js +2 -3
  104. package/modern/managers/useDateManager.d.ts +4 -13
  105. package/modern/managers/useDateManager.js +18 -28
  106. package/modern/managers/useDateTimeManager.d.ts +4 -13
  107. package/modern/managers/useDateTimeManager.js +23 -33
  108. package/modern/managers/useTimeManager.d.ts +4 -13
  109. package/modern/managers/useTimeManager.js +14 -24
  110. package/modern/models/manager.d.ts +3 -8
  111. package/modern/validation/validateDate.js +3 -4
  112. package/package.json +2 -2
  113. package/tsconfig.build.tsbuildinfo +1 -1
  114. package/validation/validateDate.js +3 -4
package/CHANGELOG.md CHANGED
@@ -5,6 +5,100 @@
5
5
  All notable changes to this project will be documented in this file.
6
6
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
7
7
 
8
+ ## 8.0.0-beta.2
9
+
10
+ _Mar 27, 2025_
11
+
12
+ We'd like to offer a big thanks to the 12 contributors who made this release possible. Here are some highlights ✨:
13
+
14
+ - 🔍 Update the Data Grid quick filter to be collapsed when not in use
15
+ - 🐞 Bugfixes
16
+
17
+ Special thanks go out to the community members for their valuable contributions:
18
+ @lhilgert9.
19
+ Following are all team members who have contributed to this release:
20
+ @alexfauquette, @arminmeh, @flaviendelangle, @hasdfa, @JCQuintas, @KenanYusuf, @LukasTy, @MBilalShafi, @michelengelen, @mnajdova, @romgrk.
21
+
22
+ <!--/ HIGHLIGHT_ABOVE_SEPARATOR /-->
23
+
24
+ ### Data Grid
25
+
26
+ #### `@mui/x-data-grid@8.0.0-beta.2`
27
+
28
+ - [DataGrid] Fix error caused by trying to render rows that are not in the state anymore (#17057) @arminmeh
29
+ - [DataGrid] Refactor: remove more material (#16922) @romgrk
30
+ - [DataGrid] Update Quick Filter component to be expandable (#16862) @KenanYusuf
31
+ - [DataGrid] Fix crash when used with `@mui/styled-engine-sc` (#17154) @KenanYusuf
32
+
33
+ #### `@mui/x-data-grid-pro@8.0.0-beta.2` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
34
+
35
+ Same changes as in `@mui/x-data-grid@8.0.0-beta.2`, plus:
36
+
37
+ - [DataGridPro] Data source: Allow expanding groups with unknown children (#17144) @MBilalShafi
38
+
39
+ #### `@mui/x-data-grid-premium@8.0.0-beta.2` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
40
+
41
+ Same changes as in `@mui/x-data-grid-pro@8.0.0-beta.2`.
42
+
43
+ ### Date and Time Pickers
44
+
45
+ #### `@mui/x-date-pickers@8.0.0-beta.2`
46
+
47
+ - [fields] Extract the props of each field slot into a standalone hook for easier re-use (#17114) @flaviendelangle
48
+ - [pickers] Fix visual regression in Date Range Calendar's day (#17148) @flaviendelangle
49
+ - [pickers] Remove all code duplication to apply default values to validation props (#17038) @flaviendelangle
50
+
51
+ #### `@mui/x-date-pickers-pro@8.0.0-beta.2` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
52
+
53
+ Same changes as in `@mui/x-date-pickers@8.0.0-beta.2`.
54
+
55
+ ### Charts
56
+
57
+ #### `@mui/x-charts@8.0.0-beta.2`
58
+
59
+ - [charts] Memoize axes and series with default (#17156) @alexfauquette
60
+ - [charts] Add pie benchmark (#17115) @JCQuintas
61
+ - [charts] Fix CSS vars support for dark theme (#17106) @alexfauquette
62
+ - [charts] Fix radar hover (#17134) @alexfauquette
63
+ - [charts] Move axis interaction to selectors (#17039) @alexfauquette
64
+ - [charts] Fix Pie benchmark (#17125) @JCQuintas
65
+
66
+ #### `@mui/x-charts-pro@8.0.0-beta.2` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
67
+
68
+ Same changes as in `@mui/x-charts@8.0.0-beta.2`.
69
+
70
+ ### Tree View
71
+
72
+ #### `@mui/x-tree-view@8.0.0-beta.2`
73
+
74
+ Internal changes.
75
+
76
+ #### `@mui/x-tree-view-pro@8.0.0-beta.2` [![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-tree-view@8.0.0-beta.2`.
79
+
80
+ ### `@mui/x-codemod@8.0.0-beta.1`
81
+
82
+ - [codemod] Add Data Grid codemods (#17121, #17124) @MBilalShafi
83
+
84
+ ### Docs
85
+
86
+ - [docs] Fix example import for `ExportExcel` component (#17110) @KenanYusuf
87
+
88
+ ### Core
89
+
90
+ - [code-infra] Remove `@mui/styles` dependency & patches (#17071) @mnajdova
91
+ - [code-infra] Add more tests to slow screenshot tests (#17075) @JCQuintas
92
+ - [code-infra] Fix pickers codecov (#17120) @JCQuintas
93
+ - [code-infra] Move `isDeepEqual` to @mui/x-internals (#17129) @JCQuintas
94
+ - [code-infra] Remove `test_regressions` step from React 18 pipeline (#17108) @LukasTy
95
+ - [code-infra] Update some data-grid tests for vitest (#17078, #17104, #17146) @JCQuintas
96
+ - [code-infra] Update some date-pickers tests for vitest (#17083) @JCQuintas
97
+ - [infra] Update `issue-status-label-handler.yml` @michelengelen
98
+ - [infra] Added reusable issue status label handler workflow (#17145) @michelengelen
99
+ - [infra] Switch to reusable 'stale issues/PRs' workflow (#17107) @michelengelen
100
+ - [telemetry] Improve request body size, update dependencies, and optimize SSR handling (#17008) @hasdfa
101
+
8
102
  ## 8.0.0-beta.1
9
103
 
10
104
  _Mar 21, 2025_
@@ -31,6 +31,7 @@ var _useControlledValue = require("../internals/hooks/useControlledValue");
31
31
  var _valueManagers = require("../internals/utils/valueManagers");
32
32
  var _dimensions = require("../internals/constants/dimensions");
33
33
  var _usePickerPrivateContext = require("../internals/hooks/usePickerPrivateContext");
34
+ var _useDateManager = require("../managers/useDateManager");
34
35
  var _jsxRuntime = require("react/jsx-runtime");
35
36
  const _excluded = ["autoFocus", "onViewChange", "value", "defaultValue", "referenceDate", "disableFuture", "disablePast", "onChange", "onYearChange", "onMonthChange", "reduceAnimations", "shouldDisableDate", "shouldDisableMonth", "shouldDisableYear", "view", "views", "openTo", "className", "classes", "disabled", "readOnly", "minDate", "maxDate", "disableHighlightToday", "focusedView", "onFocusedViewChange", "showDaysOutsideCurrentMonth", "fixedWeekNumber", "dayOfWeekFormatter", "slots", "slotProps", "loading", "renderLoading", "displayWeekNumber", "yearsOrder", "yearsPerRow", "monthsPerRow", "timezone"];
36
37
  const useUtilityClasses = classes => {
@@ -41,25 +42,20 @@ const useUtilityClasses = classes => {
41
42
  return (0, _utils.unstable_composeClasses)(slots, _dateCalendarClasses.getDateCalendarUtilityClass, classes);
42
43
  };
43
44
  function useDateCalendarDefaultizedProps(props, name) {
44
- const utils = (0, _useUtils.useUtils)();
45
- const defaultDates = (0, _useUtils.useDefaultDates)();
46
45
  const themeProps = (0, _styles.useThemeProps)({
47
46
  props,
48
47
  name
49
48
  });
50
49
  const reduceAnimations = (0, _useReduceAnimations.useReduceAnimations)(themeProps.reduceAnimations);
51
- return (0, _extends2.default)({}, themeProps, {
50
+ const validationProps = (0, _useDateManager.useApplyDefaultValuesToDateValidationProps)(themeProps);
51
+ return (0, _extends2.default)({}, themeProps, validationProps, {
52
52
  loading: themeProps.loading ?? false,
53
- disablePast: themeProps.disablePast ?? false,
54
- disableFuture: themeProps.disableFuture ?? false,
55
53
  openTo: themeProps.openTo ?? 'day',
56
54
  views: themeProps.views ?? ['year', 'day'],
57
55
  reduceAnimations,
58
56
  renderLoading: themeProps.renderLoading ?? (() => /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
59
57
  children: "..."
60
- })),
61
- minDate: (0, _dateUtils.applyDefaultDate)(utils, themeProps.minDate, defaultDates.minDate),
62
- maxDate: (0, _dateUtils.applyDefaultDate)(utils, themeProps.maxDate, defaultDates.maxDate)
58
+ }))
63
59
  });
64
60
  }
65
61
  const DateCalendarRoot = (0, _styles.styled)(_PickerViewRoot.PickerViewRoot, {
@@ -88,7 +88,7 @@ const PickersCalendarWeekNumberLabel = (0, _styles.styled)(_Typography.default,
88
88
  display: 'flex',
89
89
  justifyContent: 'center',
90
90
  alignItems: 'center',
91
- color: theme.palette.text.disabled
91
+ color: (theme.vars || theme).palette.text.disabled
92
92
  }));
93
93
  const PickersCalendarWeekNumber = (0, _styles.styled)(_Typography.default, {
94
94
  name: 'MuiDayCalendar',
@@ -101,7 +101,7 @@ const PickersCalendarWeekNumber = (0, _styles.styled)(_Typography.default, {
101
101
  height: _dimensions.DAY_SIZE,
102
102
  padding: 0,
103
103
  margin: `0 ${_dimensions.DAY_MARGIN}px`,
104
- color: theme.palette.text.disabled,
104
+ color: (theme.vars || theme).palette.text.disabled,
105
105
  fontSize: '0.75rem',
106
106
  alignItems: 'center',
107
107
  justifyContent: 'center',
@@ -9,17 +9,15 @@ exports.useDatePickerDefaultizedProps = useDatePickerDefaultizedProps;
9
9
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
10
  var React = _interopRequireWildcard(require("react"));
11
11
  var _styles = require("@mui/material/styles");
12
- var _useUtils = require("../internals/hooks/useUtils");
13
12
  var _views = require("../internals/utils/views");
14
- var _dateUtils = require("../internals/utils/date-utils");
15
13
  var _DatePickerToolbar = require("./DatePickerToolbar");
14
+ var _useDateManager = require("../managers/useDateManager");
16
15
  function useDatePickerDefaultizedProps(props, name) {
17
- const utils = (0, _useUtils.useUtils)();
18
- const defaultDates = (0, _useUtils.useDefaultDates)();
19
16
  const themeProps = (0, _styles.useThemeProps)({
20
17
  props,
21
18
  name
22
19
  });
20
+ const validationProps = (0, _useDateManager.useApplyDefaultValuesToDateValidationProps)(themeProps);
23
21
  const localeText = React.useMemo(() => {
24
22
  if (themeProps.localeText?.toolbarTitle == null) {
25
23
  return themeProps.localeText;
@@ -28,7 +26,7 @@ function useDatePickerDefaultizedProps(props, name) {
28
26
  datePickerToolbarTitle: themeProps.localeText.toolbarTitle
29
27
  });
30
28
  }, [themeProps.localeText]);
31
- return (0, _extends2.default)({}, themeProps, {
29
+ return (0, _extends2.default)({}, themeProps, validationProps, {
32
30
  localeText
33
31
  }, (0, _views.applyDefaultViewProps)({
34
32
  views: themeProps.views,
@@ -36,10 +34,6 @@ function useDatePickerDefaultizedProps(props, name) {
36
34
  defaultViews: ['year', 'day'],
37
35
  defaultOpenTo: 'day'
38
36
  }), {
39
- disableFuture: themeProps.disableFuture ?? false,
40
- disablePast: themeProps.disablePast ?? false,
41
- minDate: (0, _dateUtils.applyDefaultDate)(utils, themeProps.minDate, defaultDates.minDate),
42
- maxDate: (0, _dateUtils.applyDefaultDate)(utils, themeProps.maxDate, defaultDates.maxDate),
43
37
  slots: (0, _extends2.default)({
44
38
  toolbar: _DatePickerToolbar.DatePickerToolbar
45
39
  }, themeProps.slots)
@@ -10,18 +10,18 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
10
10
  var React = _interopRequireWildcard(require("react"));
11
11
  var _styles = require("@mui/material/styles");
12
12
  var _useUtils = require("../internals/hooks/useUtils");
13
- var _dateUtils = require("../internals/utils/date-utils");
14
13
  var _DateTimePickerTabs = require("./DateTimePickerTabs");
15
14
  var _DateTimePickerToolbar = require("./DateTimePickerToolbar");
16
15
  var _views = require("../internals/utils/views");
17
16
  var _dateTimeUtils = require("../internals/utils/date-time-utils");
17
+ var _useDateTimeManager = require("../managers/useDateTimeManager");
18
18
  function useDateTimePickerDefaultizedProps(props, name) {
19
19
  const utils = (0, _useUtils.useUtils)();
20
- const defaultDates = (0, _useUtils.useDefaultDates)();
21
20
  const themeProps = (0, _styles.useThemeProps)({
22
21
  props,
23
22
  name
24
23
  });
24
+ const validationProps = (0, _useDateTimeManager.useApplyDefaultValuesToDateTimeValidationProps)(themeProps);
25
25
  const ampm = themeProps.ampm ?? utils.is12HourCycleInCurrentLocale();
26
26
  const localeText = React.useMemo(() => {
27
27
  if (themeProps.localeText?.toolbarTitle == null) {
@@ -51,7 +51,7 @@ function useDateTimePickerDefaultizedProps(props, name) {
51
51
  timeSteps: themeProps.timeSteps,
52
52
  views: defaultViews
53
53
  });
54
- return (0, _extends2.default)({}, themeProps, {
54
+ return (0, _extends2.default)({}, themeProps, validationProps, {
55
55
  timeSteps,
56
56
  openTo,
57
57
  shouldRenderTimeInASingleColumn,
@@ -60,16 +60,6 @@ function useDateTimePickerDefaultizedProps(props, name) {
60
60
  ampm,
61
61
  localeText,
62
62
  orientation: themeProps.orientation ?? 'portrait',
63
- // TODO: Remove from public API
64
- disableIgnoringDatePartForTimeValidation: themeProps.disableIgnoringDatePartForTimeValidation ?? Boolean(themeProps.minDateTime || themeProps.maxDateTime ||
65
- // allow time clock to correctly check time validity: https://github.com/mui/mui-x/issues/8520
66
- themeProps.disablePast || themeProps.disableFuture),
67
- disableFuture: themeProps.disableFuture ?? false,
68
- disablePast: themeProps.disablePast ?? false,
69
- minDate: (0, _dateUtils.applyDefaultDate)(utils, themeProps.minDateTime ?? themeProps.minDate, defaultDates.minDate),
70
- maxDate: (0, _dateUtils.applyDefaultDate)(utils, themeProps.maxDateTime ?? themeProps.maxDate, defaultDates.maxDate),
71
- minTime: themeProps.minDateTime ?? themeProps.minTime,
72
- maxTime: themeProps.maxDateTime ?? themeProps.maxTime,
73
63
  slots: (0, _extends2.default)({
74
64
  toolbar: _DateTimePickerToolbar.DateTimePickerToolbar,
75
65
  tabs: _DateTimePickerTabs.DateTimePickerTabs
@@ -26,6 +26,7 @@ var _getDefaultReferenceDate = require("../internals/utils/getDefaultReferenceDa
26
26
  var _useControlledValue = require("../internals/hooks/useControlledValue");
27
27
  var _dimensions = require("../internals/constants/dimensions");
28
28
  var _usePickerPrivateContext = require("../internals/hooks/usePickerPrivateContext");
29
+ var _useDateManager = require("../managers/useDateManager");
29
30
  var _jsxRuntime = require("react/jsx-runtime");
30
31
  const _excluded = ["autoFocus", "className", "classes", "value", "defaultValue", "referenceDate", "disabled", "disableFuture", "disablePast", "maxDate", "minDate", "onChange", "shouldDisableMonth", "readOnly", "disableHighlightToday", "onMonthFocus", "hasFocus", "onFocusedViewChange", "monthsPerRow", "timezone", "gridLabelId", "slots", "slotProps"];
31
32
  const useUtilityClasses = classes => {
@@ -35,19 +36,13 @@ const useUtilityClasses = classes => {
35
36
  return (0, _utils.unstable_composeClasses)(slots, _monthCalendarClasses.getMonthCalendarUtilityClass, classes);
36
37
  };
37
38
  function useMonthCalendarDefaultizedProps(props, name) {
38
- const utils = (0, _useUtils.useUtils)();
39
- const defaultDates = (0, _useUtils.useDefaultDates)();
40
39
  const themeProps = (0, _styles.useThemeProps)({
41
40
  props,
42
41
  name
43
42
  });
44
- return (0, _extends2.default)({
45
- disableFuture: false,
46
- disablePast: false
47
- }, themeProps, {
48
- monthsPerRow: themeProps.monthsPerRow ?? 3,
49
- minDate: (0, _dateUtils.applyDefaultDate)(utils, themeProps.minDate, defaultDates.minDate),
50
- maxDate: (0, _dateUtils.applyDefaultDate)(utils, themeProps.maxDate, defaultDates.maxDate)
43
+ const validationProps = (0, _useDateManager.useApplyDefaultValuesToDateValidationProps)(themeProps);
44
+ return (0, _extends2.default)({}, themeProps, validationProps, {
45
+ monthsPerRow: themeProps.monthsPerRow ?? 3
51
46
  });
52
47
  }
53
48
  const MonthCalendarRoot = (0, _styles.styled)('div', {
@@ -1,5 +1,5 @@
1
1
  import * as React from 'react';
2
- import { PickersSectionListProps } from "./PickersSectionList.types.js";
2
+ import type { PickersSectionListProps } from './PickersSectionList.types';
3
3
  export declare const PickersSectionListRoot: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof React.ClassAttributes<HTMLDivElement> | keyof React.HTMLAttributes<HTMLDivElement>>, {}>;
4
4
  export declare const PickersSectionListSection: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, keyof React.ClassAttributes<HTMLSpanElement> | keyof React.HTMLAttributes<HTMLSpanElement>>, {}>;
5
5
  export declare const PickersSectionListSectionSeparator: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, keyof React.ClassAttributes<HTMLSpanElement> | keyof React.HTMLAttributes<HTMLSpanElement>>, {}>;
@@ -2,6 +2,7 @@ import * as React from 'react';
2
2
  import { SlotComponentProps } from '@mui/utils';
3
3
  import { PickersSectionListClasses } from "./pickersSectionListClasses.js";
4
4
  import { PickerOwnerState } from "../models/index.js";
5
+ import type { UseFieldDOMGetters } from '../internals/hooks/useField/useField.types';
5
6
  export interface PickersSectionListSlots {
6
7
  root: React.ElementType;
7
8
  section: React.ElementType;
@@ -28,12 +29,7 @@ export interface PickersSectionElement {
28
29
  before: React.HTMLAttributes<HTMLSpanElement>;
29
30
  after: React.HTMLAttributes<HTMLSpanElement>;
30
31
  }
31
- export interface PickersSectionListRef {
32
- getRoot: () => HTMLElement;
33
- getSectionContainer: (sectionIndex: number) => HTMLElement;
34
- getSectionContent: (sectionIndex: number) => HTMLElement;
35
- getSectionIndexFromDOMElement: (element: Element | null | undefined) => number | null;
36
- }
32
+ export interface PickersSectionListRef extends Omit<UseFieldDOMGetters, 'isReady'> {}
37
33
  export interface ExportedPickersSectionListProps extends Pick<React.HTMLAttributes<HTMLDivElement>, 'tabIndex'> {
38
34
  /**
39
35
  * The elements to render.
@@ -12,12 +12,14 @@ var _styles = require("@mui/material/styles");
12
12
  var _useUtils = require("../internals/hooks/useUtils");
13
13
  var _TimePickerToolbar = require("./TimePickerToolbar");
14
14
  var _views = require("../internals/utils/views");
15
+ var _useTimeManager = require("../managers/useTimeManager");
15
16
  function useTimePickerDefaultizedProps(props, name) {
16
17
  const utils = (0, _useUtils.useUtils)();
17
18
  const themeProps = (0, _styles.useThemeProps)({
18
19
  props,
19
20
  name
20
21
  });
22
+ const validationProps = (0, _useTimeManager.useApplyDefaultValuesToTimeValidationProps)(themeProps);
21
23
  const ampm = themeProps.ampm ?? utils.is12HourCycleInCurrentLocale();
22
24
  const localeText = React.useMemo(() => {
23
25
  if (themeProps.localeText?.toolbarTitle == null) {
@@ -27,7 +29,7 @@ function useTimePickerDefaultizedProps(props, name) {
27
29
  timePickerToolbarTitle: themeProps.localeText.toolbarTitle
28
30
  });
29
31
  }, [themeProps.localeText]);
30
- return (0, _extends2.default)({}, themeProps, {
32
+ return (0, _extends2.default)({}, themeProps, validationProps, {
31
33
  ampm,
32
34
  localeText
33
35
  }, (0, _views.applyDefaultViewProps)({
@@ -36,8 +38,6 @@ function useTimePickerDefaultizedProps(props, name) {
36
38
  defaultViews: ['hours', 'minutes'],
37
39
  defaultOpenTo: 'hours'
38
40
  }), {
39
- disableFuture: themeProps.disableFuture ?? false,
40
- disablePast: themeProps.disablePast ?? false,
41
41
  slots: (0, _extends2.default)({
42
42
  toolbar: _TimePickerToolbar.TimePickerToolbar
43
43
  }, themeProps.slots),
@@ -19,12 +19,12 @@ var _utils = require("@mui/utils");
19
19
  var _YearCalendarButton = require("./YearCalendarButton");
20
20
  var _useUtils = require("../internals/hooks/useUtils");
21
21
  var _yearCalendarClasses = require("./yearCalendarClasses");
22
- var _dateUtils = require("../internals/utils/date-utils");
23
22
  var _valueManagers = require("../internals/utils/valueManagers");
24
23
  var _getDefaultReferenceDate = require("../internals/utils/getDefaultReferenceDate");
25
24
  var _useControlledValue = require("../internals/hooks/useControlledValue");
26
25
  var _dimensions = require("../internals/constants/dimensions");
27
26
  var _usePickerPrivateContext = require("../internals/hooks/usePickerPrivateContext");
27
+ var _useDateManager = require("../managers/useDateManager");
28
28
  var _jsxRuntime = require("react/jsx-runtime");
29
29
  const _excluded = ["autoFocus", "className", "classes", "value", "defaultValue", "referenceDate", "disabled", "disableFuture", "disablePast", "maxDate", "minDate", "onChange", "readOnly", "shouldDisableYear", "disableHighlightToday", "onYearFocus", "hasFocus", "onFocusedViewChange", "yearsOrder", "yearsPerRow", "timezone", "gridLabelId", "slots", "slotProps"];
30
30
  const useUtilityClasses = classes => {
@@ -34,20 +34,14 @@ const useUtilityClasses = classes => {
34
34
  return (0, _utils.unstable_composeClasses)(slots, _yearCalendarClasses.getYearCalendarUtilityClass, classes);
35
35
  };
36
36
  function useYearCalendarDefaultizedProps(props, name) {
37
- const utils = (0, _useUtils.useUtils)();
38
- const defaultDates = (0, _useUtils.useDefaultDates)();
39
37
  const themeProps = (0, _styles.useThemeProps)({
40
38
  props,
41
39
  name
42
40
  });
43
- return (0, _extends2.default)({
44
- disablePast: false,
45
- disableFuture: false
46
- }, themeProps, {
41
+ const validationProps = (0, _useDateManager.useApplyDefaultValuesToDateValidationProps)(themeProps);
42
+ return (0, _extends2.default)({}, themeProps, validationProps, {
47
43
  yearsPerRow: themeProps.yearsPerRow ?? 3,
48
- yearsOrder: themeProps.yearsOrder ?? 'asc',
49
- minDate: (0, _dateUtils.applyDefaultDate)(utils, themeProps.minDate, defaultDates.minDate),
50
- maxDate: (0, _dateUtils.applyDefaultDate)(utils, themeProps.maxDate, defaultDates.maxDate)
44
+ yearsOrder: themeProps.yearsOrder ?? 'asc'
51
45
  });
52
46
  }
53
47
  const YearCalendarRoot = (0, _styles.styled)('div', {
@@ -10,14 +10,14 @@ import useSlotProps from '@mui/utils/useSlotProps';
10
10
  import { styled, useThemeProps } from '@mui/material/styles';
11
11
  import { unstable_composeClasses as composeClasses, unstable_useId as useId, unstable_useEventCallback as useEventCallback } from '@mui/utils';
12
12
  import { useCalendarState } from "./useCalendarState.js";
13
- import { useDefaultDates, useUtils } from "../internals/hooks/useUtils.js";
13
+ import { useUtils } from "../internals/hooks/useUtils.js";
14
14
  import { PickersFadeTransitionGroup } from "./PickersFadeTransitionGroup.js";
15
15
  import { DayCalendar } from "./DayCalendar.js";
16
16
  import { MonthCalendar } from "../MonthCalendar/index.js";
17
17
  import { YearCalendar } from "../YearCalendar/index.js";
18
18
  import { useViews } from "../internals/hooks/useViews.js";
19
19
  import { PickersCalendarHeader } from "../PickersCalendarHeader/index.js";
20
- import { findClosestEnabledDate, applyDefaultDate, mergeDateAndTime } from "../internals/utils/date-utils.js";
20
+ import { findClosestEnabledDate, mergeDateAndTime } from "../internals/utils/date-utils.js";
21
21
  import { PickerViewRoot } from "../internals/components/PickerViewRoot/index.js";
22
22
  import { useReduceAnimations } from "../internals/hooks/useReduceAnimations.js";
23
23
  import { getDateCalendarUtilityClass } from "./dateCalendarClasses.js";
@@ -25,6 +25,7 @@ import { useControlledValue } from "../internals/hooks/useControlledValue.js";
25
25
  import { singleItemValueManager } from "../internals/utils/valueManagers.js";
26
26
  import { VIEW_HEIGHT } from "../internals/constants/dimensions.js";
27
27
  import { usePickerPrivateContext } from "../internals/hooks/usePickerPrivateContext.js";
28
+ import { useApplyDefaultValuesToDateValidationProps } from "../managers/useDateManager.js";
28
29
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
29
30
  const useUtilityClasses = classes => {
30
31
  const slots = {
@@ -34,25 +35,20 @@ const useUtilityClasses = classes => {
34
35
  return composeClasses(slots, getDateCalendarUtilityClass, classes);
35
36
  };
36
37
  function useDateCalendarDefaultizedProps(props, name) {
37
- const utils = useUtils();
38
- const defaultDates = useDefaultDates();
39
38
  const themeProps = useThemeProps({
40
39
  props,
41
40
  name
42
41
  });
43
42
  const reduceAnimations = useReduceAnimations(themeProps.reduceAnimations);
44
- return _extends({}, themeProps, {
43
+ const validationProps = useApplyDefaultValuesToDateValidationProps(themeProps);
44
+ return _extends({}, themeProps, validationProps, {
45
45
  loading: themeProps.loading ?? false,
46
- disablePast: themeProps.disablePast ?? false,
47
- disableFuture: themeProps.disableFuture ?? false,
48
46
  openTo: themeProps.openTo ?? 'day',
49
47
  views: themeProps.views ?? ['year', 'day'],
50
48
  reduceAnimations,
51
49
  renderLoading: themeProps.renderLoading ?? (() => /*#__PURE__*/_jsx("span", {
52
50
  children: "..."
53
- })),
54
- minDate: applyDefaultDate(utils, themeProps.minDate, defaultDates.minDate),
55
- maxDate: applyDefaultDate(utils, themeProps.maxDate, defaultDates.maxDate)
51
+ }))
56
52
  });
57
53
  }
58
54
  const DateCalendarRoot = styled(PickerViewRoot, {
@@ -81,7 +81,7 @@ const PickersCalendarWeekNumberLabel = styled(Typography, {
81
81
  display: 'flex',
82
82
  justifyContent: 'center',
83
83
  alignItems: 'center',
84
- color: theme.palette.text.disabled
84
+ color: (theme.vars || theme).palette.text.disabled
85
85
  }));
86
86
  const PickersCalendarWeekNumber = styled(Typography, {
87
87
  name: 'MuiDayCalendar',
@@ -94,7 +94,7 @@ const PickersCalendarWeekNumber = styled(Typography, {
94
94
  height: DAY_SIZE,
95
95
  padding: 0,
96
96
  margin: `0 ${DAY_MARGIN}px`,
97
- color: theme.palette.text.disabled,
97
+ color: (theme.vars || theme).palette.text.disabled,
98
98
  fontSize: '0.75rem',
99
99
  alignItems: 'center',
100
100
  justifyContent: 'center',
@@ -1,17 +1,15 @@
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 { useDefaultDates, useUtils } from "../internals/hooks/useUtils.js";
5
4
  import { applyDefaultViewProps } from "../internals/utils/views.js";
6
- import { applyDefaultDate } from "../internals/utils/date-utils.js";
7
5
  import { DatePickerToolbar } from "./DatePickerToolbar.js";
6
+ import { useApplyDefaultValuesToDateValidationProps } from "../managers/useDateManager.js";
8
7
  export function useDatePickerDefaultizedProps(props, name) {
9
- const utils = useUtils();
10
- const defaultDates = useDefaultDates();
11
8
  const themeProps = useThemeProps({
12
9
  props,
13
10
  name
14
11
  });
12
+ const validationProps = useApplyDefaultValuesToDateValidationProps(themeProps);
15
13
  const localeText = React.useMemo(() => {
16
14
  if (themeProps.localeText?.toolbarTitle == null) {
17
15
  return themeProps.localeText;
@@ -20,7 +18,7 @@ export function useDatePickerDefaultizedProps(props, name) {
20
18
  datePickerToolbarTitle: themeProps.localeText.toolbarTitle
21
19
  });
22
20
  }, [themeProps.localeText]);
23
- return _extends({}, themeProps, {
21
+ return _extends({}, themeProps, validationProps, {
24
22
  localeText
25
23
  }, applyDefaultViewProps({
26
24
  views: themeProps.views,
@@ -28,10 +26,6 @@ export function useDatePickerDefaultizedProps(props, name) {
28
26
  defaultViews: ['year', 'day'],
29
27
  defaultOpenTo: 'day'
30
28
  }), {
31
- disableFuture: themeProps.disableFuture ?? false,
32
- disablePast: themeProps.disablePast ?? false,
33
- minDate: applyDefaultDate(utils, themeProps.minDate, defaultDates.minDate),
34
- maxDate: applyDefaultDate(utils, themeProps.maxDate, defaultDates.maxDate),
35
29
  slots: _extends({
36
30
  toolbar: DatePickerToolbar
37
31
  }, themeProps.slots)
@@ -1,19 +1,19 @@
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 { useDefaultDates, useUtils } from "../internals/hooks/useUtils.js";
5
- import { applyDefaultDate } from "../internals/utils/date-utils.js";
4
+ import { useUtils } from "../internals/hooks/useUtils.js";
6
5
  import { DateTimePickerTabs } from "./DateTimePickerTabs.js";
7
6
  import { DateTimePickerToolbar } from "./DateTimePickerToolbar.js";
8
7
  import { applyDefaultViewProps } from "../internals/utils/views.js";
9
8
  import { resolveTimeViewsResponse } from "../internals/utils/date-time-utils.js";
9
+ import { useApplyDefaultValuesToDateTimeValidationProps } from "../managers/useDateTimeManager.js";
10
10
  export function useDateTimePickerDefaultizedProps(props, name) {
11
11
  const utils = useUtils();
12
- const defaultDates = useDefaultDates();
13
12
  const themeProps = useThemeProps({
14
13
  props,
15
14
  name
16
15
  });
16
+ const validationProps = useApplyDefaultValuesToDateTimeValidationProps(themeProps);
17
17
  const ampm = themeProps.ampm ?? utils.is12HourCycleInCurrentLocale();
18
18
  const localeText = React.useMemo(() => {
19
19
  if (themeProps.localeText?.toolbarTitle == null) {
@@ -43,7 +43,7 @@ export function useDateTimePickerDefaultizedProps(props, name) {
43
43
  timeSteps: themeProps.timeSteps,
44
44
  views: defaultViews
45
45
  });
46
- return _extends({}, themeProps, {
46
+ return _extends({}, themeProps, validationProps, {
47
47
  timeSteps,
48
48
  openTo,
49
49
  shouldRenderTimeInASingleColumn,
@@ -52,16 +52,6 @@ export function useDateTimePickerDefaultizedProps(props, name) {
52
52
  ampm,
53
53
  localeText,
54
54
  orientation: themeProps.orientation ?? 'portrait',
55
- // TODO: Remove from public API
56
- disableIgnoringDatePartForTimeValidation: themeProps.disableIgnoringDatePartForTimeValidation ?? Boolean(themeProps.minDateTime || themeProps.maxDateTime ||
57
- // allow time clock to correctly check time validity: https://github.com/mui/mui-x/issues/8520
58
- themeProps.disablePast || themeProps.disableFuture),
59
- disableFuture: themeProps.disableFuture ?? false,
60
- disablePast: themeProps.disablePast ?? false,
61
- minDate: applyDefaultDate(utils, themeProps.minDateTime ?? themeProps.minDate, defaultDates.minDate),
62
- maxDate: applyDefaultDate(utils, themeProps.maxDateTime ?? themeProps.maxDate, defaultDates.maxDate),
63
- minTime: themeProps.minDateTime ?? themeProps.minTime,
64
- maxTime: themeProps.maxDateTime ?? themeProps.maxTime,
65
55
  slots: _extends({
66
56
  toolbar: DateTimePickerToolbar,
67
57
  tabs: DateTimePickerTabs
@@ -11,14 +11,15 @@ import { shouldForwardProp } from '@mui/system/createStyled';
11
11
  import { styled, useThemeProps } from '@mui/material/styles';
12
12
  import { unstable_useControlled as useControlled, unstable_composeClasses as composeClasses, unstable_useEventCallback as useEventCallback } from '@mui/utils';
13
13
  import { MonthCalendarButton } from "./MonthCalendarButton.js";
14
- import { useUtils, useNow, useDefaultDates } from "../internals/hooks/useUtils.js";
14
+ import { useUtils, useNow } from "../internals/hooks/useUtils.js";
15
15
  import { getMonthCalendarUtilityClass } from "./monthCalendarClasses.js";
16
- import { applyDefaultDate, getMonthsInYear } from "../internals/utils/date-utils.js";
16
+ import { getMonthsInYear } from "../internals/utils/date-utils.js";
17
17
  import { singleItemValueManager } from "../internals/utils/valueManagers.js";
18
18
  import { SECTION_TYPE_GRANULARITY } from "../internals/utils/getDefaultReferenceDate.js";
19
19
  import { useControlledValue } from "../internals/hooks/useControlledValue.js";
20
20
  import { DIALOG_WIDTH } from "../internals/constants/dimensions.js";
21
21
  import { usePickerPrivateContext } from "../internals/hooks/usePickerPrivateContext.js";
22
+ import { useApplyDefaultValuesToDateValidationProps } from "../managers/useDateManager.js";
22
23
  import { jsx as _jsx } from "react/jsx-runtime";
23
24
  const useUtilityClasses = classes => {
24
25
  const slots = {
@@ -27,19 +28,13 @@ const useUtilityClasses = classes => {
27
28
  return composeClasses(slots, getMonthCalendarUtilityClass, classes);
28
29
  };
29
30
  export function useMonthCalendarDefaultizedProps(props, name) {
30
- const utils = useUtils();
31
- const defaultDates = useDefaultDates();
32
31
  const themeProps = useThemeProps({
33
32
  props,
34
33
  name
35
34
  });
36
- return _extends({
37
- disableFuture: false,
38
- disablePast: false
39
- }, themeProps, {
40
- monthsPerRow: themeProps.monthsPerRow ?? 3,
41
- minDate: applyDefaultDate(utils, themeProps.minDate, defaultDates.minDate),
42
- maxDate: applyDefaultDate(utils, themeProps.maxDate, defaultDates.maxDate)
35
+ const validationProps = useApplyDefaultValuesToDateValidationProps(themeProps);
36
+ return _extends({}, themeProps, validationProps, {
37
+ monthsPerRow: themeProps.monthsPerRow ?? 3
43
38
  });
44
39
  }
45
40
  const MonthCalendarRoot = styled('div', {
@@ -1,5 +1,5 @@
1
1
  import * as React from 'react';
2
- import { PickersSectionListProps } from "./PickersSectionList.types.js";
2
+ import type { PickersSectionListProps } from './PickersSectionList.types';
3
3
  export declare const PickersSectionListRoot: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof React.ClassAttributes<HTMLDivElement> | keyof React.HTMLAttributes<HTMLDivElement>>, {}>;
4
4
  export declare const PickersSectionListSection: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, keyof React.ClassAttributes<HTMLSpanElement> | keyof React.HTMLAttributes<HTMLSpanElement>>, {}>;
5
5
  export declare const PickersSectionListSectionSeparator: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, keyof React.ClassAttributes<HTMLSpanElement> | keyof React.HTMLAttributes<HTMLSpanElement>>, {}>;
@@ -2,6 +2,7 @@ import * as React from 'react';
2
2
  import { SlotComponentProps } from '@mui/utils';
3
3
  import { PickersSectionListClasses } from "./pickersSectionListClasses.js";
4
4
  import { PickerOwnerState } from "../models/index.js";
5
+ import type { UseFieldDOMGetters } from '../internals/hooks/useField/useField.types';
5
6
  export interface PickersSectionListSlots {
6
7
  root: React.ElementType;
7
8
  section: React.ElementType;
@@ -28,12 +29,7 @@ export interface PickersSectionElement {
28
29
  before: React.HTMLAttributes<HTMLSpanElement>;
29
30
  after: React.HTMLAttributes<HTMLSpanElement>;
30
31
  }
31
- export interface PickersSectionListRef {
32
- getRoot: () => HTMLElement;
33
- getSectionContainer: (sectionIndex: number) => HTMLElement;
34
- getSectionContent: (sectionIndex: number) => HTMLElement;
35
- getSectionIndexFromDOMElement: (element: Element | null | undefined) => number | null;
36
- }
32
+ export interface PickersSectionListRef extends Omit<UseFieldDOMGetters, 'isReady'> {}
37
33
  export interface ExportedPickersSectionListProps extends Pick<React.HTMLAttributes<HTMLDivElement>, 'tabIndex'> {
38
34
  /**
39
35
  * The elements to render.