@mui/x-date-pickers 8.0.0-alpha.4 → 8.0.0-alpha.5

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 (106) hide show
  1. package/CHANGELOG.md +103 -0
  2. package/MonthCalendar/MonthCalendar.d.ts +1 -1
  3. package/MonthCalendar/MonthCalendar.js +31 -11
  4. package/MonthCalendar/MonthCalendar.types.d.ts +2 -2
  5. package/MonthCalendar/MonthCalendarButton.d.ts +24 -0
  6. package/MonthCalendar/{PickersMonth.js → MonthCalendarButton.js} +20 -61
  7. package/MonthCalendar/index.d.ts +0 -3
  8. package/MonthCalendar/index.js +1 -2
  9. package/MonthCalendar/monthCalendarClasses.d.ts +7 -1
  10. package/MonthCalendar/monthCalendarClasses.js +1 -1
  11. package/MultiSectionDigitalClock/MultiSectionDigitalClock.js +3 -0
  12. package/PickersSectionList/PickersSectionList.js +21 -16
  13. package/PickersSectionList/PickersSectionList.types.d.ts +13 -6
  14. package/PickersTextField/PickersFilledInput/PickersFilledInput.d.ts +7 -0
  15. package/PickersTextField/PickersFilledInput/PickersFilledInput.js +34 -28
  16. package/PickersTextField/PickersFilledInput/pickersFilledInputClasses.d.ts +1 -1
  17. package/PickersTextField/PickersInput/PickersInput.js +20 -14
  18. package/PickersTextField/PickersInput/pickersInputClasses.d.ts +3 -2
  19. package/PickersTextField/PickersInput/pickersInputClasses.js +1 -1
  20. package/PickersTextField/PickersInputBase/PickersInputBase.d.ts +3 -6
  21. package/PickersTextField/PickersInputBase/PickersInputBase.js +36 -37
  22. package/PickersTextField/PickersInputBase/PickersInputBase.types.d.ts +1 -0
  23. package/PickersTextField/PickersOutlinedInput/Outline.d.ts +0 -1
  24. package/PickersTextField/PickersOutlinedInput/Outline.js +13 -10
  25. package/PickersTextField/PickersOutlinedInput/PickersOutlinedInput.js +8 -14
  26. package/PickersTextField/PickersTextField.js +75 -62
  27. package/PickersTextField/PickersTextField.types.d.ts +43 -4
  28. package/PickersTextField/usePickerTextFieldOwnerState.d.ts +4 -0
  29. package/PickersTextField/usePickerTextFieldOwnerState.js +11 -0
  30. package/TimeClock/Clock.d.ts +4 -0
  31. package/TimeClock/Clock.js +9 -6
  32. package/TimeClock/TimeClock.js +21 -4
  33. package/YearCalendar/YearCalendar.js +46 -13
  34. package/YearCalendar/YearCalendar.types.d.ts +2 -2
  35. package/YearCalendar/YearCalendarButton.d.ts +23 -0
  36. package/YearCalendar/{PickersYear.js → YearCalendarButton.js} +20 -59
  37. package/YearCalendar/index.d.ts +0 -3
  38. package/YearCalendar/index.js +1 -2
  39. package/YearCalendar/yearCalendarClasses.d.ts +7 -1
  40. package/YearCalendar/yearCalendarClasses.js +1 -1
  41. package/index.js +1 -1
  42. package/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js +3 -3
  43. package/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.types.d.ts +1 -1
  44. package/internals/hooks/useFieldOwnerState.d.ts +1 -0
  45. package/internals/hooks/useFieldOwnerState.js +6 -2
  46. package/models/fields.d.ts +11 -1
  47. package/modern/MonthCalendar/MonthCalendar.js +31 -11
  48. package/modern/MonthCalendar/{PickersMonth.js → MonthCalendarButton.js} +20 -61
  49. package/modern/MonthCalendar/index.js +1 -2
  50. package/modern/MonthCalendar/monthCalendarClasses.js +1 -1
  51. package/modern/MultiSectionDigitalClock/MultiSectionDigitalClock.js +3 -0
  52. package/modern/PickersSectionList/PickersSectionList.js +21 -16
  53. package/modern/PickersTextField/PickersFilledInput/PickersFilledInput.js +34 -28
  54. package/modern/PickersTextField/PickersInput/PickersInput.js +20 -14
  55. package/modern/PickersTextField/PickersInput/pickersInputClasses.js +1 -1
  56. package/modern/PickersTextField/PickersInputBase/PickersInputBase.js +36 -37
  57. package/modern/PickersTextField/PickersOutlinedInput/Outline.js +13 -10
  58. package/modern/PickersTextField/PickersOutlinedInput/PickersOutlinedInput.js +8 -14
  59. package/modern/PickersTextField/PickersTextField.js +75 -62
  60. package/modern/PickersTextField/usePickerTextFieldOwnerState.js +11 -0
  61. package/modern/TimeClock/Clock.js +9 -6
  62. package/modern/TimeClock/TimeClock.js +21 -4
  63. package/modern/YearCalendar/YearCalendar.js +46 -13
  64. package/modern/YearCalendar/{PickersYear.js → YearCalendarButton.js} +20 -59
  65. package/modern/YearCalendar/index.js +1 -2
  66. package/modern/YearCalendar/yearCalendarClasses.js +1 -1
  67. package/modern/index.js +1 -1
  68. package/modern/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js +3 -3
  69. package/modern/internals/hooks/useFieldOwnerState.js +6 -2
  70. package/node/MonthCalendar/MonthCalendar.js +31 -11
  71. package/node/MonthCalendar/{PickersMonth.js → MonthCalendarButton.js} +20 -61
  72. package/node/MonthCalendar/index.js +1 -8
  73. package/node/MonthCalendar/monthCalendarClasses.js +1 -1
  74. package/node/MultiSectionDigitalClock/MultiSectionDigitalClock.js +3 -0
  75. package/node/PickersSectionList/PickersSectionList.js +21 -16
  76. package/node/PickersTextField/PickersFilledInput/PickersFilledInput.js +34 -28
  77. package/node/PickersTextField/PickersInput/PickersInput.js +20 -14
  78. package/node/PickersTextField/PickersInput/pickersInputClasses.js +1 -1
  79. package/node/PickersTextField/PickersInputBase/PickersInputBase.js +36 -37
  80. package/node/PickersTextField/PickersOutlinedInput/Outline.js +13 -10
  81. package/node/PickersTextField/PickersOutlinedInput/PickersOutlinedInput.js +8 -14
  82. package/node/PickersTextField/PickersTextField.js +75 -62
  83. package/node/PickersTextField/usePickerTextFieldOwnerState.js +18 -0
  84. package/node/TimeClock/Clock.js +9 -6
  85. package/node/TimeClock/TimeClock.js +21 -4
  86. package/node/YearCalendar/YearCalendar.js +45 -12
  87. package/node/YearCalendar/{PickersYear.js → YearCalendarButton.js} +20 -59
  88. package/node/YearCalendar/index.js +1 -8
  89. package/node/YearCalendar/yearCalendarClasses.js +1 -1
  90. package/node/index.js +1 -1
  91. package/node/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js +3 -3
  92. package/node/internals/hooks/useFieldOwnerState.js +6 -2
  93. package/package.json +3 -3
  94. package/themeAugmentation/components.d.ts +0 -8
  95. package/themeAugmentation/overrides.d.ts +2 -4
  96. package/themeAugmentation/props.d.ts +2 -4
  97. package/MonthCalendar/PickersMonth.d.ts +0 -28
  98. package/MonthCalendar/pickersMonthClasses.d.ts +0 -13
  99. package/MonthCalendar/pickersMonthClasses.js +0 -5
  100. package/YearCalendar/PickersYear.d.ts +0 -27
  101. package/YearCalendar/pickersYearClasses.d.ts +0 -13
  102. package/YearCalendar/pickersYearClasses.js +0 -5
  103. package/modern/MonthCalendar/pickersMonthClasses.js +0 -5
  104. package/modern/YearCalendar/pickersYearClasses.js +0 -5
  105. package/node/MonthCalendar/pickersMonthClasses.js +0 -12
  106. package/node/YearCalendar/pickersYearClasses.js +0 -12
@@ -14,9 +14,10 @@ var React = _interopRequireWildcard(require("react"));
14
14
  var _propTypes = _interopRequireDefault(require("prop-types"));
15
15
  var _clsx = _interopRequireDefault(require("clsx"));
16
16
  var _RtlProvider = require("@mui/system/RtlProvider");
17
+ var _createStyled = require("@mui/system/createStyled");
17
18
  var _styles = require("@mui/material/styles");
18
19
  var _utils = require("@mui/utils");
19
- var _PickersMonth = require("./PickersMonth");
20
+ var _MonthCalendarButton = require("./MonthCalendarButton");
20
21
  var _useUtils = require("../internals/hooks/useUtils");
21
22
  var _monthCalendarClasses = require("./monthCalendarClasses");
22
23
  var _dateUtils = require("../internals/utils/date-utils");
@@ -26,7 +27,7 @@ var _useValueWithTimezone = require("../internals/hooks/useValueWithTimezone");
26
27
  var _dimensions = require("../internals/constants/dimensions");
27
28
  var _usePickerPrivateContext = require("../internals/hooks/usePickerPrivateContext");
28
29
  var _jsxRuntime = require("react/jsx-runtime");
29
- const _excluded = ["className", "classes", "value", "defaultValue", "referenceDate", "disabled", "disableFuture", "disablePast", "maxDate", "minDate", "onChange", "shouldDisableMonth", "readOnly", "disableHighlightToday", "autoFocus", "onMonthFocus", "hasFocus", "onFocusedViewChange", "monthsPerRow", "timezone", "gridLabelId", "slots", "slotProps"];
30
+ 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"];
30
31
  const useUtilityClasses = classes => {
31
32
  const slots = {
32
33
  root: ['root']
@@ -44,6 +45,7 @@ function useMonthCalendarDefaultizedProps(props, name) {
44
45
  disableFuture: false,
45
46
  disablePast: false
46
47
  }, themeProps, {
48
+ monthsPerRow: themeProps.monthsPerRow ?? 3,
47
49
  minDate: (0, _dateUtils.applyDefaultDate)(utils, themeProps.minDate, defaultDates.minDate),
48
50
  maxDate: (0, _dateUtils.applyDefaultDate)(utils, themeProps.maxDate, defaultDates.maxDate)
49
51
  });
@@ -51,15 +53,32 @@ function useMonthCalendarDefaultizedProps(props, name) {
51
53
  const MonthCalendarRoot = (0, _styles.styled)('div', {
52
54
  name: 'MuiMonthCalendar',
53
55
  slot: 'Root',
54
- overridesResolver: (props, styles) => styles.root
56
+ overridesResolver: (props, styles) => styles.root,
57
+ shouldForwardProp: prop => (0, _createStyled.shouldForwardProp)(prop) && prop !== 'monthsPerRow'
55
58
  })({
56
59
  display: 'flex',
57
60
  flexWrap: 'wrap',
58
- alignContent: 'stretch',
59
- padding: '0 4px',
61
+ justifyContent: 'space-evenly',
62
+ rowGap: 16,
63
+ padding: '8px 0',
60
64
  width: _dimensions.DIALOG_WIDTH,
61
65
  // avoid padding increasing width over defined
62
- boxSizing: 'border-box'
66
+ boxSizing: 'border-box',
67
+ variants: [{
68
+ props: {
69
+ monthsPerRow: 3
70
+ },
71
+ style: {
72
+ columnGap: 24
73
+ }
74
+ }, {
75
+ props: {
76
+ monthsPerRow: 4
77
+ },
78
+ style: {
79
+ columnGap: 0
80
+ }
81
+ }]
63
82
  });
64
83
  /**
65
84
  * Demos:
@@ -73,6 +92,7 @@ const MonthCalendarRoot = (0, _styles.styled)('div', {
73
92
  const MonthCalendar = exports.MonthCalendar = /*#__PURE__*/React.forwardRef(function MonthCalendar(inProps, ref) {
74
93
  const props = useMonthCalendarDefaultizedProps(inProps, 'MuiMonthCalendar');
75
94
  const {
95
+ autoFocus,
76
96
  className,
77
97
  classes: classesProp,
78
98
  value: valueProp,
@@ -86,11 +106,10 @@ const MonthCalendar = exports.MonthCalendar = /*#__PURE__*/React.forwardRef(func
86
106
  onChange,
87
107
  shouldDisableMonth,
88
108
  readOnly,
89
- autoFocus = false,
90
109
  onMonthFocus,
91
110
  hasFocus,
92
111
  onFocusedViewChange,
93
- monthsPerRow = 3,
112
+ monthsPerRow,
94
113
  timezone: timezoneProp,
95
114
  gridLabelId,
96
115
  slots,
@@ -217,7 +236,8 @@ const MonthCalendar = exports.MonthCalendar = /*#__PURE__*/React.forwardRef(func
217
236
  className: (0, _clsx.default)(classes.root, className),
218
237
  ownerState: ownerState,
219
238
  role: "radiogroup",
220
- "aria-labelledby": gridLabelId
239
+ "aria-labelledby": gridLabelId,
240
+ monthsPerRow: monthsPerRow
221
241
  }, other, {
222
242
  children: (0, _dateUtils.getMonthsInYear)(utils, value ?? referenceDate).map(month => {
223
243
  const monthNumber = utils.getMonth(month);
@@ -225,7 +245,7 @@ const MonthCalendar = exports.MonthCalendar = /*#__PURE__*/React.forwardRef(func
225
245
  const monthLabel = utils.format(month, 'month');
226
246
  const isSelected = monthNumber === selectedMonth;
227
247
  const isDisabled = disabled || isMonthDisabled(month);
228
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_PickersMonth.PickersMonth, {
248
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_MonthCalendarButton.MonthCalendarButton, {
229
249
  selected: isSelected,
230
250
  value: monthNumber,
231
251
  onClick: handleMonthSelection,
@@ -237,9 +257,9 @@ const MonthCalendar = exports.MonthCalendar = /*#__PURE__*/React.forwardRef(func
237
257
  onBlur: handleMonthBlur,
238
258
  "aria-current": todayMonth === monthNumber ? 'date' : undefined,
239
259
  "aria-label": monthLabel,
240
- monthsPerRow: monthsPerRow,
241
260
  slots: slots,
242
261
  slotProps: slotProps,
262
+ classes: classesProp,
243
263
  children: monthText
244
264
  }, monthText);
245
265
  })
@@ -5,51 +5,31 @@ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWild
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.PickersMonth = void 0;
8
+ exports.MonthCalendarButton = void 0;
9
9
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
10
10
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
11
  var React = _interopRequireWildcard(require("react"));
12
- var _clsx = _interopRequireDefault(require("clsx"));
13
12
  var _styles = require("@mui/material/styles");
14
13
  var _useSlotProps = _interopRequireDefault(require("@mui/utils/useSlotProps"));
15
14
  var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
16
15
  var _useEnhancedEffect = _interopRequireDefault(require("@mui/utils/useEnhancedEffect"));
17
- var _pickersMonthClasses = require("./pickersMonthClasses");
18
16
  var _usePickerPrivateContext = require("../internals/hooks/usePickerPrivateContext");
17
+ var _monthCalendarClasses = require("./monthCalendarClasses");
19
18
  var _jsxRuntime = require("react/jsx-runtime");
20
- const _excluded = ["autoFocus", "className", "classes", "children", "disabled", "selected", "value", "tabIndex", "onClick", "onKeyDown", "onFocus", "onBlur", "aria-current", "aria-label", "monthsPerRow", "slots", "slotProps"];
19
+ const _excluded = ["autoFocus", "classes", "disabled", "selected", "value", "onClick", "onKeyDown", "onFocus", "onBlur", "slots", "slotProps"];
21
20
  const useUtilityClasses = (classes, ownerState) => {
22
21
  const slots = {
23
- root: ['root'],
24
- monthButton: ['monthButton', ownerState.isMonthDisabled && 'disabled', ownerState.isMonthSelected && 'selected']
22
+ button: ['button', ownerState.isMonthDisabled && 'disabled', ownerState.isMonthSelected && 'selected']
25
23
  };
26
- return (0, _composeClasses.default)(slots, _pickersMonthClasses.getPickersMonthUtilityClass, classes);
24
+ return (0, _composeClasses.default)(slots, _monthCalendarClasses.getMonthCalendarUtilityClass, classes);
27
25
  };
28
- const PickersMonthRoot = (0, _styles.styled)('div', {
29
- name: 'MuiPickersMonth',
30
- slot: 'Root',
31
- overridesResolver: (_, styles) => [styles.root]
32
- })({
33
- display: 'flex',
34
- alignItems: 'center',
35
- justifyContent: 'center',
36
- flexBasis: '33.3%',
37
- variants: [{
38
- props: {
39
- monthsPerRow: 4
40
- },
41
- style: {
42
- flexBasis: '25%'
43
- }
44
- }]
45
- });
46
- const MonthCalendarButton = (0, _styles.styled)('button', {
47
- name: 'MuiPickersMonth',
48
- slot: 'MonthButton',
49
- overridesResolver: (_, styles) => [styles.monthButton, {
50
- [`&.${_pickersMonthClasses.pickersMonthClasses.disabled}`]: styles.disabled
26
+ const DefaultMonthButton = (0, _styles.styled)('button', {
27
+ name: 'MuiMonthCalendar',
28
+ slot: 'Button',
29
+ overridesResolver: (_, styles) => [styles.button, {
30
+ [`&.${_monthCalendarClasses.monthCalendarClasses.disabled}`]: styles.disabled
51
31
  }, {
52
- [`&.${_pickersMonthClasses.pickersMonthClasses.selected}`]: styles.selected
32
+ [`&.${_monthCalendarClasses.monthCalendarClasses.selected}`]: styles.selected
53
33
  }]
54
34
  })(({
55
35
  theme
@@ -59,7 +39,6 @@ const MonthCalendarButton = (0, _styles.styled)('button', {
59
39
  border: 0,
60
40
  outline: 0
61
41
  }, theme.typography.subtitle1, {
62
- margin: '8px 0',
63
42
  height: 36,
64
43
  width: 72,
65
44
  borderRadius: 18,
@@ -74,10 +53,10 @@ const MonthCalendarButton = (0, _styles.styled)('button', {
74
53
  cursor: 'auto',
75
54
  pointerEvents: 'none'
76
55
  },
77
- [`&.${_pickersMonthClasses.pickersMonthClasses.disabled}`]: {
56
+ [`&.${_monthCalendarClasses.monthCalendarClasses.disabled}`]: {
78
57
  color: (theme.vars || theme).palette.text.secondary
79
58
  },
80
- [`&.${_pickersMonthClasses.pickersMonthClasses.selected}`]: {
59
+ [`&.${_monthCalendarClasses.monthCalendarClasses.selected}`]: {
81
60
  color: (theme.vars || theme).palette.primary.contrastText,
82
61
  backgroundColor: (theme.vars || theme).palette.primary.main,
83
62
  '&:focus, &:hover': {
@@ -89,29 +68,17 @@ const MonthCalendarButton = (0, _styles.styled)('button', {
89
68
  /**
90
69
  * @ignore - do not document.
91
70
  */
92
- const PickersMonth = exports.PickersMonth = /*#__PURE__*/React.memo(function PickersMonth(inProps) {
93
- const props = (0, _styles.useThemeProps)({
94
- props: inProps,
95
- name: 'MuiPickersMonth'
96
- });
71
+ const MonthCalendarButton = exports.MonthCalendarButton = /*#__PURE__*/React.memo(function MonthCalendarButton(props) {
97
72
  const {
98
73
  autoFocus,
99
- className,
100
74
  classes: classesProp,
101
- children,
102
- disabled = false,
103
- selected = false,
75
+ disabled,
76
+ selected,
104
77
  value,
105
- tabIndex,
106
78
  onClick,
107
79
  onKeyDown,
108
80
  onFocus,
109
81
  onBlur,
110
- 'aria-current': ariaCurrent,
111
- 'aria-label': ariaLabel
112
- // We don't want to forward this prop to the root element
113
- ,
114
-
115
82
  slots,
116
83
  slotProps
117
84
  } = props,
@@ -133,32 +100,24 @@ const PickersMonth = exports.PickersMonth = /*#__PURE__*/React.memo(function Pic
133
100
  ref.current?.focus();
134
101
  }
135
102
  }, [autoFocus]);
136
- const MonthButton = slots?.monthButton ?? MonthCalendarButton;
103
+ const MonthButton = slots?.monthButton ?? DefaultMonthButton;
137
104
  const monthButtonProps = (0, _useSlotProps.default)({
138
105
  elementType: MonthButton,
139
106
  externalSlotProps: slotProps?.monthButton,
107
+ externalForwardedProps: other,
140
108
  additionalProps: {
141
- children,
142
109
  disabled,
143
- tabIndex,
144
110
  ref,
145
111
  type: 'button',
146
112
  role: 'radio',
147
- 'aria-current': ariaCurrent,
148
113
  'aria-checked': selected,
149
- 'aria-label': ariaLabel,
150
114
  onClick: event => onClick(event, value),
151
115
  onKeyDown: event => onKeyDown(event, value),
152
116
  onFocus: event => onFocus(event, value),
153
117
  onBlur: event => onBlur(event, value)
154
118
  },
155
119
  ownerState,
156
- className: classes.monthButton
120
+ className: classes.button
157
121
  });
158
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(PickersMonthRoot, (0, _extends2.default)({
159
- className: (0, _clsx.default)(classes.root, className),
160
- ownerState: ownerState
161
- }, other, {
162
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(MonthButton, (0, _extends2.default)({}, monthButtonProps))
163
- }));
122
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(MonthButton, (0, _extends2.default)({}, monthButtonProps));
164
123
  });
@@ -21,12 +21,5 @@ Object.defineProperty(exports, "monthCalendarClasses", {
21
21
  return _monthCalendarClasses.monthCalendarClasses;
22
22
  }
23
23
  });
24
- Object.defineProperty(exports, "pickersMonthClasses", {
25
- enumerable: true,
26
- get: function () {
27
- return _pickersMonthClasses.pickersMonthClasses;
28
- }
29
- });
30
24
  var _MonthCalendar = require("./MonthCalendar");
31
- var _monthCalendarClasses = require("./monthCalendarClasses");
32
- var _pickersMonthClasses = require("./pickersMonthClasses");
25
+ var _monthCalendarClasses = require("./monthCalendarClasses");
@@ -9,4 +9,4 @@ var _utils = require("@mui/utils");
9
9
  function getMonthCalendarUtilityClass(slot) {
10
10
  return (0, _utils.unstable_generateUtilityClass)('MuiMonthCalendar', slot);
11
11
  }
12
- const monthCalendarClasses = exports.monthCalendarClasses = (0, _utils.unstable_generateUtilityClasses)('MuiMonthCalendar', ['root']);
12
+ const monthCalendarClasses = exports.monthCalendarClasses = (0, _utils.unstable_generateUtilityClasses)('MuiMonthCalendar', ['root', 'button', 'disabled', 'selected']);
@@ -196,6 +196,9 @@ const MultiSectionDigitalClock = exports.MultiSectionDigitalClock = /*#__PURE__*
196
196
  {
197
197
  const valueWithMeridiem = (0, _timeUtils.convertValueToMeridiem)(rawValue, meridiemMode, ampm);
198
198
  const dateWithNewHours = utils.setHours(valueOrReferenceDate, valueWithMeridiem);
199
+ if (utils.getHours(dateWithNewHours) !== valueWithMeridiem) {
200
+ return true;
201
+ }
199
202
  const start = utils.setSeconds(utils.setMinutes(dateWithNewHours, 0), 0);
200
203
  const end = utils.setSeconds(utils.setMinutes(dateWithNewHours, 59), 59);
201
204
  return !containsValidTime({
@@ -16,8 +16,9 @@ var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"
16
16
  var _useForkRef = _interopRequireDefault(require("@mui/utils/useForkRef"));
17
17
  var _styles = require("@mui/material/styles");
18
18
  var _pickersSectionListClasses = require("./pickersSectionListClasses");
19
+ var _usePickerPrivateContext = require("../internals/hooks/usePickerPrivateContext");
19
20
  var _jsxRuntime = require("react/jsx-runtime");
20
- const _excluded = ["slots", "slotProps", "elements", "sectionListRef"];
21
+ const _excluded = ["slots", "slotProps", "elements", "sectionListRef", "classes"];
21
22
  const PickersSectionListRoot = exports.PickersSectionListRoot = (0, _styles.styled)('div', {
22
23
  name: 'MuiPickersSectionList',
23
24
  slot: 'Root',
@@ -45,10 +46,7 @@ const PickersSectionListSectionContent = exports.PickersSectionListSectionConten
45
46
  })({
46
47
  outline: 'none'
47
48
  });
48
- const useUtilityClasses = ownerState => {
49
- const {
50
- classes
51
- } = ownerState;
49
+ const useUtilityClasses = classes => {
52
50
  const slots = {
53
51
  root: ['root'],
54
52
  section: ['section'],
@@ -63,13 +61,16 @@ function PickersSection(props) {
63
61
  element,
64
62
  classes
65
63
  } = props;
64
+ const {
65
+ ownerState
66
+ } = (0, _usePickerPrivateContext.usePickerPrivateContext)();
66
67
  const Section = slots?.section ?? PickersSectionListSection;
67
68
  const sectionProps = (0, _useSlotProps.default)({
68
69
  elementType: Section,
69
70
  externalSlotProps: slotProps?.section,
70
71
  externalForwardedProps: element.container,
71
72
  className: classes.section,
72
- ownerState: {}
73
+ ownerState
73
74
  });
74
75
  const SectionContent = slots?.sectionContent ?? PickersSectionListSectionContent;
75
76
  const sectionContentProps = (0, _useSlotProps.default)({
@@ -80,24 +81,24 @@ function PickersSection(props) {
80
81
  suppressContentEditableWarning: true
81
82
  },
82
83
  className: classes.sectionContent,
83
- ownerState: {}
84
+ ownerState
84
85
  });
85
86
  const SectionSeparator = slots?.sectionSeparator ?? PickersSectionListSectionSeparator;
86
87
  const sectionSeparatorBeforeProps = (0, _useSlotProps.default)({
87
88
  elementType: SectionSeparator,
88
89
  externalSlotProps: slotProps?.sectionSeparator,
89
90
  externalForwardedProps: element.before,
90
- ownerState: {
91
- position: 'before'
92
- }
91
+ ownerState: (0, _extends2.default)({}, ownerState, {
92
+ separatorPosition: 'before'
93
+ })
93
94
  });
94
95
  const sectionSeparatorAfterProps = (0, _useSlotProps.default)({
95
96
  elementType: SectionSeparator,
96
97
  externalSlotProps: slotProps?.sectionSeparator,
97
98
  externalForwardedProps: element.after,
98
- ownerState: {
99
- position: 'after'
100
- }
99
+ ownerState: (0, _extends2.default)({}, ownerState, {
100
+ separatorPosition: 'after'
101
+ })
101
102
  });
102
103
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(Section, (0, _extends2.default)({}, sectionProps, {
103
104
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(SectionSeparator, (0, _extends2.default)({}, sectionSeparatorBeforeProps)), /*#__PURE__*/(0, _jsxRuntime.jsx)(SectionContent, (0, _extends2.default)({}, sectionContentProps)), /*#__PURE__*/(0, _jsxRuntime.jsx)(SectionSeparator, (0, _extends2.default)({}, sectionSeparatorAfterProps))]
@@ -142,10 +143,14 @@ const PickersSectionList = exports.PickersSectionList = /*#__PURE__*/React.forwa
142
143
  slots,
143
144
  slotProps,
144
145
  elements,
145
- sectionListRef
146
+ sectionListRef,
147
+ classes: classesProp
146
148
  } = props,
147
149
  other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
148
- const classes = useUtilityClasses(props);
150
+ const classes = useUtilityClasses(classesProp);
151
+ const {
152
+ ownerState
153
+ } = (0, _usePickerPrivateContext.usePickerPrivateContext)();
149
154
  const rootRef = React.useRef(null);
150
155
  const handleRootRef = (0, _useForkRef.default)(ref, rootRef);
151
156
  const getRoot = methodName => {
@@ -193,7 +198,7 @@ const PickersSectionList = exports.PickersSectionList = /*#__PURE__*/React.forwa
193
198
  suppressContentEditableWarning: true
194
199
  },
195
200
  className: classes.root,
196
- ownerState: {}
201
+ ownerState
197
202
  });
198
203
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(Root, (0, _extends2.default)({}, rootProps, {
199
204
  children: rootProps.contentEditable ? elements.map(({
@@ -10,7 +10,6 @@ var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runt
10
10
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
11
  var React = _interopRequireWildcard(require("react"));
12
12
  var _propTypes = _interopRequireDefault(require("prop-types"));
13
- var _FormControl = require("@mui/material/FormControl");
14
13
  var _styles = require("@mui/material/styles");
15
14
  var _system = require("@mui/system");
16
15
  var _utils = require("@mui/utils");
@@ -18,8 +17,9 @@ var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"
18
17
  var _pickersFilledInputClasses = require("./pickersFilledInputClasses");
19
18
  var _PickersInputBase = require("../PickersInputBase");
20
19
  var _PickersInputBase2 = require("../PickersInputBase/PickersInputBase");
20
+ var _usePickerTextFieldOwnerState = require("../usePickerTextFieldOwnerState");
21
21
  var _jsxRuntime = require("react/jsx-runtime");
22
- const _excluded = ["label", "autoFocus", "disableUnderline", "ownerState"];
22
+ const _excluded = ["label", "autoFocus", "disableUnderline", "hiddenLabel", "classes"];
23
23
  const PickersFilledInputRoot = (0, _styles.styled)(_PickersInputBase2.PickersInputBaseRoot, {
24
24
  name: 'MuiPickersFilledInput',
25
25
  slot: 'Root',
@@ -58,7 +58,7 @@ const PickersFilledInputRoot = (0, _styles.styled)(_PickersInputBase2.PickersInp
58
58
  // @ts-ignore
59
59
  .filter(key => (theme.vars ?? theme).palette[key].main).map(color => ({
60
60
  props: {
61
- color,
61
+ inputColor: color,
62
62
  disableUnderline: false
63
63
  },
64
64
  style: {
@@ -117,16 +117,16 @@ const PickersFilledInputRoot = (0, _styles.styled)(_PickersInputBase2.PickersInp
117
117
  }
118
118
  }
119
119
  }, {
120
- props: ({
121
- startAdornment
122
- }) => !!startAdornment,
120
+ props: {
121
+ hasStartAdornment: true
122
+ },
123
123
  style: {
124
124
  paddingLeft: 12
125
125
  }
126
126
  }, {
127
- props: ({
128
- endAdornment
129
- }) => !!endAdornment,
127
+ props: {
128
+ hasEndAdornment: true
129
+ },
130
130
  style: {
131
131
  paddingRight: 12
132
132
  }
@@ -136,7 +136,8 @@ const PickersFilledInputRoot = (0, _styles.styled)(_PickersInputBase2.PickersInp
136
136
  const PickersFilledSectionsContainer = (0, _styles.styled)(_PickersInputBase2.PickersInputBaseSectionsContainer, {
137
137
  name: 'MuiPickersFilledInput',
138
138
  slot: 'sectionsContainer',
139
- overridesResolver: (props, styles) => styles.sectionsContainer
139
+ overridesResolver: (props, styles) => styles.sectionsContainer,
140
+ shouldForwardProp: prop => (0, _system.shouldForwardProp)(prop) && prop !== 'hiddenLabel'
140
141
  })({
141
142
  paddingTop: 25,
142
143
  paddingRight: 12,
@@ -144,23 +145,23 @@ const PickersFilledSectionsContainer = (0, _styles.styled)(_PickersInputBase2.Pi
144
145
  paddingLeft: 12,
145
146
  variants: [{
146
147
  props: {
147
- size: 'small'
148
+ inputSize: 'small'
148
149
  },
149
150
  style: {
150
151
  paddingTop: 21,
151
152
  paddingBottom: 4
152
153
  }
153
154
  }, {
154
- props: ({
155
- startAdornment
156
- }) => !!startAdornment,
155
+ props: {
156
+ hasStartAdornment: true
157
+ },
157
158
  style: {
158
159
  paddingLeft: 0
159
160
  }
160
161
  }, {
161
- props: ({
162
- endAdornment
163
- }) => !!endAdornment,
162
+ props: {
163
+ hasEndAdornment: true
164
+ },
164
165
  style: {
165
166
  paddingRight: 0
166
167
  }
@@ -175,7 +176,7 @@ const PickersFilledSectionsContainer = (0, _styles.styled)(_PickersInputBase2.Pi
175
176
  }, {
176
177
  props: {
177
178
  hiddenLabel: true,
178
- size: 'small'
179
+ inputSize: 'small'
179
180
  },
180
181
  style: {
181
182
  paddingTop: 8,
@@ -183,18 +184,18 @@ const PickersFilledSectionsContainer = (0, _styles.styled)(_PickersInputBase2.Pi
183
184
  }
184
185
  }]
185
186
  });
186
- const useUtilityClasses = ownerState => {
187
+ const useUtilityClasses = (classes, ownerState) => {
187
188
  const {
188
- classes,
189
- disableUnderline
189
+ inputHasUnderline
190
190
  } = ownerState;
191
191
  const slots = {
192
- root: ['root', !disableUnderline && 'underline'],
192
+ root: ['root', inputHasUnderline && 'underline'],
193
193
  input: ['input']
194
194
  };
195
195
  const composedClasses = (0, _composeClasses.default)(slots, _pickersFilledInputClasses.getPickersFilledInputUtilityClass, classes);
196
196
  return (0, _extends2.default)({}, classes, composedClasses);
197
197
  };
198
+
198
199
  /**
199
200
  * @ignore - internal component.
200
201
  */
@@ -206,14 +207,15 @@ const PickersFilledInput = exports.PickersFilledInput = /*#__PURE__*/React.forwa
206
207
  const {
207
208
  label,
208
209
  disableUnderline = false,
209
- ownerState: ownerStateProp
210
+ hiddenLabel = false,
211
+ classes: classesProp
210
212
  } = props,
211
213
  other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
212
- const muiFormControl = (0, _FormControl.useFormControl)();
213
- const ownerState = (0, _extends2.default)({}, props, ownerStateProp, muiFormControl, {
214
- color: muiFormControl?.color || 'primary'
214
+ const pickerTextFieldOwnerState = (0, _usePickerTextFieldOwnerState.usePickerTextFieldOwnerState)();
215
+ const ownerState = (0, _extends2.default)({}, pickerTextFieldOwnerState, {
216
+ inputHasUnderline: !disableUnderline
215
217
  });
216
- const classes = useUtilityClasses(ownerState);
218
+ const classes = useUtilityClasses(classesProp, ownerState);
217
219
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_PickersInputBase.PickersInputBase, (0, _extends2.default)({
218
220
  slots: {
219
221
  root: PickersFilledInputRoot,
@@ -222,12 +224,16 @@ const PickersFilledInput = exports.PickersFilledInput = /*#__PURE__*/React.forwa
222
224
  slotProps: {
223
225
  root: {
224
226
  disableUnderline
227
+ },
228
+ input: {
229
+ hiddenLabel
225
230
  }
226
231
  }
227
232
  }, other, {
228
233
  label: label,
229
234
  classes: classes,
230
- ref: ref
235
+ ref: ref,
236
+ ownerState: ownerState
231
237
  }));
232
238
  });
233
239
  process.env.NODE_ENV !== "production" ? PickersFilledInput.propTypes = {
@@ -10,19 +10,21 @@ var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runt
10
10
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
11
  var React = _interopRequireWildcard(require("react"));
12
12
  var _propTypes = _interopRequireDefault(require("prop-types"));
13
- var _FormControl = require("@mui/material/FormControl");
14
13
  var _styles = require("@mui/material/styles");
14
+ var _createStyled = require("@mui/system/createStyled");
15
15
  var _utils = require("@mui/utils");
16
16
  var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
17
17
  var _pickersInputClasses = require("./pickersInputClasses");
18
18
  var _PickersInputBase = require("../PickersInputBase");
19
19
  var _PickersInputBase2 = require("../PickersInputBase/PickersInputBase");
20
+ var _usePickerTextFieldOwnerState = require("../usePickerTextFieldOwnerState");
20
21
  var _jsxRuntime = require("react/jsx-runtime");
21
- const _excluded = ["label", "autoFocus", "disableUnderline", "ownerState"];
22
+ const _excluded = ["label", "autoFocus", "disableUnderline", "ownerState", "classes"];
22
23
  const PickersInputRoot = (0, _styles.styled)(_PickersInputBase2.PickersInputBaseRoot, {
23
24
  name: 'MuiPickersInput',
24
25
  slot: 'Root',
25
- overridesResolver: (props, styles) => styles.root
26
+ overridesResolver: (props, styles) => styles.root,
27
+ shouldForwardProp: prop => (0, _createStyled.shouldForwardProp)(prop) && prop !== 'disableUnderline'
26
28
  })(({
27
29
  theme
28
30
  }) => {
@@ -39,7 +41,7 @@ const PickersInputRoot = (0, _styles.styled)(_PickersInputBase2.PickersInputBase
39
41
  // @ts-ignore
40
42
  .filter(key => (theme.vars ?? theme).palette[key].main).map(color => ({
41
43
  props: {
42
- color
44
+ inputColor: color
43
45
  },
44
46
  style: {
45
47
  '&::after': {
@@ -104,18 +106,18 @@ const PickersInputRoot = (0, _styles.styled)(_PickersInputBase2.PickersInputBase
104
106
  }]
105
107
  };
106
108
  });
107
- const useUtilityClasses = ownerState => {
109
+ const useUtilityClasses = (classes, ownerState) => {
108
110
  const {
109
- classes,
110
- disableUnderline
111
+ inputHasUnderline
111
112
  } = ownerState;
112
113
  const slots = {
113
- root: ['root', !disableUnderline && 'underline'],
114
+ root: ['root', !inputHasUnderline && 'underline'],
114
115
  input: ['input']
115
116
  };
116
117
  const composedClasses = (0, _composeClasses.default)(slots, _pickersInputClasses.getPickersInputUtilityClass, classes);
117
118
  return (0, _extends2.default)({}, classes, composedClasses);
118
119
  };
120
+
119
121
  /**
120
122
  * @ignore - internal component.
121
123
  */
@@ -127,18 +129,22 @@ const PickersInput = exports.PickersInput = /*#__PURE__*/React.forwardRef(functi
127
129
  const {
128
130
  label,
129
131
  disableUnderline = false,
130
- ownerState: ownerStateProp
132
+ classes: classesProp
131
133
  } = props,
132
134
  other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
133
- const muiFormControl = (0, _FormControl.useFormControl)();
134
- const ownerState = (0, _extends2.default)({}, props, ownerStateProp, muiFormControl, {
135
- disableUnderline,
136
- color: muiFormControl?.color || 'primary'
135
+ const pickerTextFieldOwnerState = (0, _usePickerTextFieldOwnerState.usePickerTextFieldOwnerState)();
136
+ const ownerState = (0, _extends2.default)({}, pickerTextFieldOwnerState, {
137
+ inputHasUnderline: !disableUnderline
137
138
  });
138
- const classes = useUtilityClasses(ownerState);
139
+ const classes = useUtilityClasses(classesProp, ownerState);
139
140
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_PickersInputBase.PickersInputBase, (0, _extends2.default)({
140
141
  slots: {
141
142
  root: PickersInputRoot
143
+ },
144
+ slotProps: {
145
+ root: {
146
+ disableUnderline
147
+ }
142
148
  }
143
149
  }, other, {
144
150
  label: label,
@@ -13,4 +13,4 @@ var _PickersInputBase = require("../PickersInputBase");
13
13
  function getPickersInputUtilityClass(slot) {
14
14
  return (0, _generateUtilityClass.default)('MuiPickersFilledInput', slot);
15
15
  }
16
- const pickersInputClasses = exports.pickersInputClasses = (0, _extends2.default)({}, _PickersInputBase.pickersInputBaseClasses, (0, _generateUtilityClasses.default)('MuiPickersInput', ['root', 'input']));
16
+ const pickersInputClasses = exports.pickersInputClasses = (0, _extends2.default)({}, _PickersInputBase.pickersInputBaseClasses, (0, _generateUtilityClasses.default)('MuiPickersInput', ['root', 'underline', 'input']));