@mui/x-date-pickers 8.0.0-alpha.7 → 8.0.0-alpha.9

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 (158) hide show
  1. package/CHANGELOG.md +551 -3
  2. package/DateCalendar/DayCalendar.js +2 -0
  3. package/DateField/DateField.js +26 -31
  4. package/DateField/DateField.types.d.ts +6 -15
  5. package/DateField/useDateField.d.ts +1 -1
  6. package/DateField/useDateField.js +2 -1
  7. package/DateTimeField/DateTimeField.js +26 -31
  8. package/DateTimeField/DateTimeField.types.d.ts +6 -15
  9. package/DateTimeField/useDateTimeField.d.ts +1 -1
  10. package/DateTimeField/useDateTimeField.js +2 -1
  11. package/DesktopDatePicker/DesktopDatePicker.js +0 -11
  12. package/DesktopDateTimePicker/DesktopDateTimePicker.js +1 -12
  13. package/DesktopTimePicker/DesktopTimePicker.js +1 -12
  14. package/MobileDatePicker/MobileDatePicker.js +0 -9
  15. package/MobileDateTimePicker/MobileDateTimePicker.js +0 -9
  16. package/MobileTimePicker/MobileTimePicker.js +0 -9
  17. package/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +2 -0
  18. package/PickersCalendarHeader/PickersCalendarHeader.js +2 -0
  19. package/TimeClock/ClockPointer.js +2 -0
  20. package/TimeField/TimeField.js +25 -30
  21. package/TimeField/TimeField.types.d.ts +6 -15
  22. package/TimeField/useTimeField.d.ts +1 -1
  23. package/TimeField/useTimeField.js +2 -1
  24. package/hooks/useParsedFormat.d.ts +8 -6
  25. package/hooks/useParsedFormat.js +10 -12
  26. package/hooks/usePickerActionsContext.d.ts +1 -1
  27. package/hooks/usePickerContext.d.ts +4 -2
  28. package/hooks/usePickerContext.js +2 -1
  29. package/hooks/useSplitFieldProps.d.ts +12 -3
  30. package/hooks/useSplitFieldProps.js +8 -3
  31. package/index.js +1 -1
  32. package/internals/components/PickerFieldUI.d.ts +132 -0
  33. package/internals/components/PickerFieldUI.js +306 -0
  34. package/internals/components/PickerProvider.d.ts +25 -4
  35. package/internals/components/PickerProvider.js +11 -6
  36. package/internals/hooks/useDesktopPicker/useDesktopPicker.d.ts +1 -1
  37. package/internals/hooks/useDesktopPicker/useDesktopPicker.js +21 -94
  38. package/internals/hooks/useDesktopPicker/useDesktopPicker.types.d.ts +8 -31
  39. package/internals/hooks/useField/index.d.ts +3 -1
  40. package/internals/hooks/useField/index.js +3 -2
  41. package/internals/hooks/useField/useField.d.ts +1 -10
  42. package/internals/hooks/useField/useField.js +16 -19
  43. package/internals/hooks/useField/useField.types.d.ts +11 -4
  44. package/internals/hooks/useField/useFieldInternalPropsWithDefaults.d.ts +15 -0
  45. package/internals/hooks/useField/useFieldInternalPropsWithDefaults.js +46 -0
  46. package/internals/hooks/useField/useFieldV6TextField.js +3 -0
  47. package/internals/hooks/useField/useFieldV7TextField.js +6 -3
  48. package/internals/hooks/useFieldOwnerState.d.ts +1 -2
  49. package/internals/hooks/useMobilePicker/useMobilePicker.d.ts +1 -1
  50. package/internals/hooks/useMobilePicker/useMobilePicker.js +20 -49
  51. package/internals/hooks/useMobilePicker/useMobilePicker.types.d.ts +6 -14
  52. package/internals/hooks/useNullablePickerContext.d.ts +5 -0
  53. package/internals/hooks/useNullablePickerContext.js +10 -0
  54. package/internals/hooks/usePicker/usePicker.d.ts +1 -2
  55. package/internals/hooks/usePicker/usePicker.js +0 -3
  56. package/internals/hooks/usePicker/usePicker.types.d.ts +2 -3
  57. package/internals/hooks/usePicker/usePickerProvider.d.ts +8 -2
  58. package/internals/hooks/usePicker/usePickerProvider.js +22 -2
  59. package/internals/hooks/usePicker/usePickerValue.js +5 -11
  60. package/internals/hooks/usePicker/usePickerValue.types.d.ts +5 -2
  61. package/internals/hooks/useUtils.d.ts +4 -3
  62. package/internals/index.d.ts +6 -3
  63. package/internals/index.js +1 -1
  64. package/internals/models/fields.d.ts +3 -16
  65. package/internals/models/manager.d.ts +3 -0
  66. package/internals/models/props/basePickerProps.d.ts +0 -12
  67. package/locales/utils/getPickersLocalization.d.ts +0 -7
  68. package/locales/utils/getPickersLocalization.js +0 -13
  69. package/managers/index.d.ts +3 -3
  70. package/managers/useDateManager.d.ts +1 -1
  71. package/managers/useDateManager.js +9 -1
  72. package/managers/useDateTimeManager.d.ts +1 -1
  73. package/managers/useDateTimeManager.js +9 -1
  74. package/managers/useTimeManager.d.ts +1 -1
  75. package/managers/useTimeManager.js +9 -1
  76. package/models/fields.d.ts +4 -4
  77. package/models/manager.d.ts +12 -3
  78. package/modern/DateCalendar/DayCalendar.js +2 -0
  79. package/modern/DateField/DateField.js +26 -31
  80. package/modern/DateField/useDateField.js +2 -1
  81. package/modern/DateTimeField/DateTimeField.js +26 -31
  82. package/modern/DateTimeField/useDateTimeField.js +2 -1
  83. package/modern/DesktopDatePicker/DesktopDatePicker.js +0 -11
  84. package/modern/DesktopDateTimePicker/DesktopDateTimePicker.js +1 -12
  85. package/modern/DesktopTimePicker/DesktopTimePicker.js +1 -12
  86. package/modern/MobileDatePicker/MobileDatePicker.js +0 -9
  87. package/modern/MobileDateTimePicker/MobileDateTimePicker.js +0 -9
  88. package/modern/MobileTimePicker/MobileTimePicker.js +0 -9
  89. package/modern/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +2 -0
  90. package/modern/PickersCalendarHeader/PickersCalendarHeader.js +2 -0
  91. package/modern/TimeClock/ClockPointer.js +2 -0
  92. package/modern/TimeField/TimeField.js +25 -30
  93. package/modern/TimeField/useTimeField.js +2 -1
  94. package/modern/hooks/useParsedFormat.js +10 -12
  95. package/modern/hooks/usePickerContext.js +2 -1
  96. package/modern/hooks/useSplitFieldProps.js +8 -3
  97. package/modern/index.js +1 -1
  98. package/modern/internals/components/PickerFieldUI.js +306 -0
  99. package/modern/internals/components/PickerProvider.js +11 -6
  100. package/modern/internals/hooks/useDesktopPicker/useDesktopPicker.js +21 -94
  101. package/modern/internals/hooks/useField/index.js +3 -2
  102. package/modern/internals/hooks/useField/useField.js +16 -19
  103. package/modern/internals/hooks/useField/useFieldInternalPropsWithDefaults.js +46 -0
  104. package/modern/internals/hooks/useField/useFieldV6TextField.js +3 -0
  105. package/modern/internals/hooks/useField/useFieldV7TextField.js +6 -3
  106. package/modern/internals/hooks/useMobilePicker/useMobilePicker.js +20 -49
  107. package/modern/internals/hooks/useNullablePickerContext.js +10 -0
  108. package/modern/internals/hooks/usePicker/usePicker.js +0 -3
  109. package/modern/internals/hooks/usePicker/usePickerProvider.js +22 -2
  110. package/modern/internals/hooks/usePicker/usePickerValue.js +5 -11
  111. package/modern/internals/index.js +1 -1
  112. package/modern/locales/utils/getPickersLocalization.js +0 -13
  113. package/modern/managers/useDateManager.js +9 -1
  114. package/modern/managers/useDateTimeManager.js +9 -1
  115. package/modern/managers/useTimeManager.js +9 -1
  116. package/node/DateCalendar/DayCalendar.js +1 -0
  117. package/node/DateField/DateField.js +26 -31
  118. package/node/DateField/useDateField.js +2 -1
  119. package/node/DateTimeField/DateTimeField.js +26 -31
  120. package/node/DateTimeField/useDateTimeField.js +2 -1
  121. package/node/DesktopDatePicker/DesktopDatePicker.js +0 -11
  122. package/node/DesktopDateTimePicker/DesktopDateTimePicker.js +1 -12
  123. package/node/DesktopTimePicker/DesktopTimePicker.js +1 -12
  124. package/node/MobileDatePicker/MobileDatePicker.js +0 -9
  125. package/node/MobileDateTimePicker/MobileDateTimePicker.js +0 -9
  126. package/node/MobileTimePicker/MobileTimePicker.js +0 -9
  127. package/node/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +1 -0
  128. package/node/PickersCalendarHeader/PickersCalendarHeader.js +2 -0
  129. package/node/TimeClock/ClockPointer.js +1 -0
  130. package/node/TimeField/TimeField.js +25 -30
  131. package/node/TimeField/useTimeField.js +2 -1
  132. package/node/hooks/useParsedFormat.js +10 -12
  133. package/node/hooks/usePickerContext.js +4 -3
  134. package/node/hooks/useSplitFieldProps.js +7 -2
  135. package/node/index.js +1 -1
  136. package/node/internals/components/PickerFieldUI.js +318 -0
  137. package/node/internals/components/PickerProvider.js +13 -8
  138. package/node/internals/hooks/useDesktopPicker/useDesktopPicker.js +23 -96
  139. package/node/internals/hooks/useField/index.js +3 -2
  140. package/node/internals/hooks/useField/useField.js +17 -21
  141. package/node/internals/hooks/useField/useFieldInternalPropsWithDefaults.js +55 -0
  142. package/node/internals/hooks/useField/useFieldV6TextField.js +3 -0
  143. package/node/internals/hooks/useField/useFieldV7TextField.js +6 -3
  144. package/node/internals/hooks/useMobilePicker/useMobilePicker.js +20 -49
  145. package/node/internals/hooks/useNullablePickerContext.js +16 -0
  146. package/node/internals/hooks/usePicker/usePicker.js +0 -3
  147. package/node/internals/hooks/usePicker/usePickerProvider.js +22 -2
  148. package/node/internals/hooks/usePicker/usePickerValue.js +5 -11
  149. package/node/internals/index.js +21 -3
  150. package/node/locales/utils/getPickersLocalization.js +2 -16
  151. package/node/managers/useDateManager.js +9 -1
  152. package/node/managers/useDateTimeManager.js +9 -1
  153. package/node/managers/useTimeManager.js +9 -1
  154. package/package.json +2 -2
  155. package/internals/utils/convertFieldResponseIntoMuiTextFieldProps.d.ts +0 -3
  156. package/internals/utils/convertFieldResponseIntoMuiTextFieldProps.js +0 -44
  157. package/modern/internals/utils/convertFieldResponseIntoMuiTextFieldProps.js +0 -44
  158. package/node/internals/utils/convertFieldResponseIntoMuiTextFieldProps.js +0 -52
@@ -20,7 +20,15 @@ export function useTimeManager(parameters = {}) {
20
20
  }) => _extends({}, internalProps, getTimeFieldInternalPropsDefaults({
21
21
  utils,
22
22
  internalProps
23
- }))
23
+ })),
24
+ internal_getOpenPickerButtonAriaLabel: ({
25
+ value,
26
+ utils,
27
+ localeText
28
+ }) => {
29
+ const formattedValue = utils.isValid(value) ? utils.format(value, 'fullTime') : null;
30
+ return localeText.openTimePickerDialogue(formattedValue);
31
+ }
24
32
  }), [enableAccessibleFieldDOMStructure]);
25
33
  }
26
34
 
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+ 'use client';
2
3
 
3
4
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
5
  var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
@@ -7,21 +7,16 @@ Object.defineProperty(exports, "__esModule", {
7
7
  value: true
8
8
  });
9
9
  exports.DateField = void 0;
10
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
10
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
12
11
  var React = _interopRequireWildcard(require("react"));
13
12
  var _propTypes = _interopRequireDefault(require("prop-types"));
14
- var _TextField = _interopRequireDefault(require("@mui/material/TextField"));
15
13
  var _styles = require("@mui/material/styles");
16
- var _useSlotProps = _interopRequireDefault(require("@mui/utils/useSlotProps"));
17
14
  var _utils = require("@mui/utils");
18
15
  var _useDateField = require("./useDateField");
19
- var _hooks = require("../hooks");
20
- var _PickersTextField = require("../PickersTextField");
21
- var _convertFieldResponseIntoMuiTextFieldProps = require("../internals/utils/convertFieldResponseIntoMuiTextFieldProps");
22
- var _useFieldOwnerState = require("../internals/hooks/useFieldOwnerState");
16
+ var _PickerFieldUI = require("../internals/components/PickerFieldUI");
17
+ var _icons = require("../icons");
23
18
  var _jsxRuntime = require("react/jsx-runtime");
24
- const _excluded = ["slots", "slotProps", "InputProps", "inputProps"];
19
+ const _excluded = ["slots", "slotProps"];
25
20
  /**
26
21
  * Demos:
27
22
  *
@@ -39,33 +34,21 @@ const DateField = exports.DateField = /*#__PURE__*/React.forwardRef(function Dat
39
34
  });
40
35
  const {
41
36
  slots,
42
- slotProps,
43
- InputProps,
44
- inputProps
37
+ slotProps
45
38
  } = themeProps,
46
39
  other = (0, _objectWithoutPropertiesLoose2.default)(themeProps, _excluded);
47
- const ownerState = (0, _useFieldOwnerState.useFieldOwnerState)(themeProps);
48
- const TextField = slots?.textField ?? (inProps.enableAccessibleFieldDOMStructure === false ? _TextField.default : _PickersTextField.PickersTextField);
49
- const textFieldProps = (0, _useSlotProps.default)({
50
- elementType: TextField,
51
- externalSlotProps: slotProps?.textField,
52
- externalForwardedProps: other,
53
- additionalProps: {
54
- ref: inRef
55
- },
56
- ownerState
40
+ const textFieldProps = (0, _PickerFieldUI.useFieldTextFieldProps)({
41
+ slotProps,
42
+ ref: inRef,
43
+ externalForwardedProps: other
57
44
  });
58
-
59
- // TODO: Remove when mui/material-ui#35088 will be merged
60
- textFieldProps.inputProps = (0, _extends2.default)({}, inputProps, textFieldProps.inputProps);
61
- textFieldProps.InputProps = (0, _extends2.default)({}, InputProps, textFieldProps.InputProps);
62
45
  const fieldResponse = (0, _useDateField.useDateField)(textFieldProps);
63
- const convertedFieldResponse = (0, _convertFieldResponseIntoMuiTextFieldProps.convertFieldResponseIntoMuiTextFieldProps)(fieldResponse);
64
- const processedFieldProps = (0, _hooks.useClearableField)((0, _extends2.default)({}, convertedFieldResponse, {
65
- slots,
66
- slotProps
67
- }));
68
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(TextField, (0, _extends2.default)({}, processedFieldProps));
46
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_PickerFieldUI.PickerFieldUI, {
47
+ slots: slots,
48
+ slotProps: slotProps,
49
+ fieldResponse: fieldResponse,
50
+ defaultOpenPickerIcon: _icons.CalendarIcon
51
+ });
69
52
  });
70
53
  process.env.NODE_ENV !== "production" ? DateField.propTypes = {
71
54
  // ----------------------------- Warning --------------------------------
@@ -83,6 +66,12 @@ process.env.NODE_ENV !== "production" ? DateField.propTypes = {
83
66
  * @default false
84
67
  */
85
68
  clearable: _propTypes.default.bool,
69
+ /**
70
+ * The position at which the clear button is placed.
71
+ * If the field is not clearable, the button is not rendered.
72
+ * @default 'end'
73
+ */
74
+ clearButtonPosition: _propTypes.default.oneOf(['end', 'start']),
86
75
  /**
87
76
  * The color of the component.
88
77
  * It supports both default and custom theme colors, which can be added as shown in the
@@ -226,6 +215,12 @@ process.env.NODE_ENV !== "production" ? DateField.propTypes = {
226
215
  * @param {FieldSelectedSections} newValue The new selected sections.
227
216
  */
228
217
  onSelectedSectionsChange: _propTypes.default.func,
218
+ /**
219
+ * The position at which the opening button is placed.
220
+ * If there is no picker to open, the button is not rendered
221
+ * @default 'end'
222
+ */
223
+ openPickerButtonPosition: _propTypes.default.oneOf(['end', 'start']),
229
224
  /**
230
225
  * If `true`, the component is read-only.
231
226
  * When read-only, the value cannot be changed but the user can interact with the interface.
@@ -24,7 +24,8 @@ const useDateField = props => {
24
24
  valueManager: manager.internal_valueManager,
25
25
  fieldValueManager: manager.internal_fieldValueManager,
26
26
  validator: manager.validator,
27
- valueType: manager.valueType
27
+ valueType: manager.valueType,
28
+ getOpenPickerButtonAriaLabel: manager.internal_getOpenPickerButtonAriaLabel
28
29
  });
29
30
  };
30
31
  exports.useDateField = useDateField;
@@ -7,21 +7,16 @@ Object.defineProperty(exports, "__esModule", {
7
7
  value: true
8
8
  });
9
9
  exports.DateTimeField = void 0;
10
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
10
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
12
11
  var React = _interopRequireWildcard(require("react"));
13
12
  var _propTypes = _interopRequireDefault(require("prop-types"));
14
- var _TextField = _interopRequireDefault(require("@mui/material/TextField"));
15
13
  var _styles = require("@mui/material/styles");
16
- var _useSlotProps = _interopRequireDefault(require("@mui/utils/useSlotProps"));
17
14
  var _utils = require("@mui/utils");
18
15
  var _useDateTimeField = require("./useDateTimeField");
19
- var _hooks = require("../hooks");
20
- var _PickersTextField = require("../PickersTextField");
21
- var _convertFieldResponseIntoMuiTextFieldProps = require("../internals/utils/convertFieldResponseIntoMuiTextFieldProps");
22
- var _useFieldOwnerState = require("../internals/hooks/useFieldOwnerState");
16
+ var _PickerFieldUI = require("../internals/components/PickerFieldUI");
17
+ var _icons = require("../icons");
23
18
  var _jsxRuntime = require("react/jsx-runtime");
24
- const _excluded = ["slots", "slotProps", "InputProps", "inputProps"];
19
+ const _excluded = ["slots", "slotProps"];
25
20
  /**
26
21
  * Demos:
27
22
  *
@@ -39,33 +34,21 @@ const DateTimeField = exports.DateTimeField = /*#__PURE__*/React.forwardRef(func
39
34
  });
40
35
  const {
41
36
  slots,
42
- slotProps,
43
- InputProps,
44
- inputProps
37
+ slotProps
45
38
  } = themeProps,
46
39
  other = (0, _objectWithoutPropertiesLoose2.default)(themeProps, _excluded);
47
- const ownerState = (0, _useFieldOwnerState.useFieldOwnerState)(themeProps);
48
- const TextField = slots?.textField ?? (inProps.enableAccessibleFieldDOMStructure === false ? _TextField.default : _PickersTextField.PickersTextField);
49
- const textFieldProps = (0, _useSlotProps.default)({
50
- elementType: TextField,
51
- externalSlotProps: slotProps?.textField,
52
- externalForwardedProps: other,
53
- ownerState,
54
- additionalProps: {
55
- ref: inRef
56
- }
40
+ const textFieldProps = (0, _PickerFieldUI.useFieldTextFieldProps)({
41
+ slotProps,
42
+ ref: inRef,
43
+ externalForwardedProps: other
57
44
  });
58
-
59
- // TODO: Remove when mui/material-ui#35088 will be merged
60
- textFieldProps.inputProps = (0, _extends2.default)({}, inputProps, textFieldProps.inputProps);
61
- textFieldProps.InputProps = (0, _extends2.default)({}, InputProps, textFieldProps.InputProps);
62
45
  const fieldResponse = (0, _useDateTimeField.useDateTimeField)(textFieldProps);
63
- const convertedFieldResponse = (0, _convertFieldResponseIntoMuiTextFieldProps.convertFieldResponseIntoMuiTextFieldProps)(fieldResponse);
64
- const processedFieldProps = (0, _hooks.useClearableField)((0, _extends2.default)({}, convertedFieldResponse, {
65
- slots,
66
- slotProps
67
- }));
68
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(TextField, (0, _extends2.default)({}, processedFieldProps));
46
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_PickerFieldUI.PickerFieldUI, {
47
+ slots: slots,
48
+ slotProps: slotProps,
49
+ fieldResponse: fieldResponse,
50
+ defaultOpenPickerIcon: _icons.CalendarIcon
51
+ });
69
52
  });
70
53
  process.env.NODE_ENV !== "production" ? DateTimeField.propTypes = {
71
54
  // ----------------------------- Warning --------------------------------
@@ -88,6 +71,12 @@ process.env.NODE_ENV !== "production" ? DateTimeField.propTypes = {
88
71
  * @default false
89
72
  */
90
73
  clearable: _propTypes.default.bool,
74
+ /**
75
+ * The position at which the clear button is placed.
76
+ * If the field is not clearable, the button is not rendered.
77
+ * @default 'end'
78
+ */
79
+ clearButtonPosition: _propTypes.default.oneOf(['end', 'start']),
91
80
  /**
92
81
  * The color of the component.
93
82
  * It supports both default and custom theme colors, which can be added as shown in the
@@ -259,6 +248,12 @@ process.env.NODE_ENV !== "production" ? DateTimeField.propTypes = {
259
248
  * @param {FieldSelectedSections} newValue The new selected sections.
260
249
  */
261
250
  onSelectedSectionsChange: _propTypes.default.func,
251
+ /**
252
+ * The position at which the opening button is placed.
253
+ * If there is no picker to open, the button is not rendered
254
+ * @default 'end'
255
+ */
256
+ openPickerButtonPosition: _propTypes.default.oneOf(['end', 'start']),
262
257
  /**
263
258
  * If `true`, the component is read-only.
264
259
  * When read-only, the value cannot be changed but the user can interact with the interface.
@@ -24,7 +24,8 @@ const useDateTimeField = props => {
24
24
  valueManager: manager.internal_valueManager,
25
25
  fieldValueManager: manager.internal_fieldValueManager,
26
26
  validator: manager.validator,
27
- valueType: manager.valueType
27
+ valueType: manager.valueType,
28
+ getOpenPickerButtonAriaLabel: manager.internal_getOpenPickerButtonAriaLabel
28
29
  });
29
30
  };
30
31
  exports.useDateTimeField = useDateTimeField;
@@ -14,15 +14,12 @@ var _resolveComponentProps = _interopRequireDefault(require("@mui/utils/resolveC
14
14
  var _utils = require("@mui/utils");
15
15
  var _valueManagers = require("../internals/utils/valueManagers");
16
16
  var _shared = require("../DatePicker/shared");
17
- var _usePickerTranslations = require("../hooks/usePickerTranslations");
18
17
  var _useUtils = require("../internals/hooks/useUtils");
19
18
  var _validation = require("../validation");
20
19
  var _useDesktopPicker = require("../internals/hooks/useDesktopPicker");
21
- var _icons = require("../icons");
22
20
  var _DateField = require("../DateField");
23
21
  var _dateViewRenderers = require("../dateViewRenderers");
24
22
  var _dateUtils = require("../internals/utils/date-utils");
25
- var _getPickersLocalization = require("../locales/utils/getPickersLocalization");
26
23
  const emptyActions = [];
27
24
 
28
25
  /**
@@ -36,7 +33,6 @@ const emptyActions = [];
36
33
  * - [DesktopDatePicker API](https://mui.com/x/api/date-pickers/desktop-date-picker/)
37
34
  */
38
35
  const DesktopDatePicker = exports.DesktopDatePicker = /*#__PURE__*/React.forwardRef(function DesktopDatePicker(inProps, ref) {
39
- const translations = (0, _usePickerTranslations.usePickerTranslations)();
40
36
  const utils = (0, _useUtils.useUtils)();
41
37
 
42
38
  // Props with the default values common to all date pickers
@@ -54,7 +50,6 @@ const DesktopDatePicker = exports.DesktopDatePicker = /*#__PURE__*/React.forward
54
50
  format: (0, _dateUtils.resolveDateFormat)(utils, defaultizedProps, false),
55
51
  yearsPerRow: defaultizedProps.yearsPerRow ?? 4,
56
52
  slots: (0, _extends2.default)({
57
- openPickerIcon: _icons.CalendarIcon,
58
53
  field: _DateField.DateField
59
54
  }, defaultizedProps.slots),
60
55
  slotProps: (0, _extends2.default)({}, defaultizedProps.slotProps, {
@@ -75,12 +70,6 @@ const DesktopDatePicker = exports.DesktopDatePicker = /*#__PURE__*/React.forward
75
70
  props,
76
71
  valueManager: _valueManagers.singleItemValueManager,
77
72
  valueType: 'date',
78
- getOpenDialogAriaText: (0, _getPickersLocalization.buildGetOpenDialogAriaText)({
79
- utils,
80
- formatKey: 'fullDate',
81
- contextTranslation: translations.openDatePickerDialogue,
82
- propsTranslation: props.localeText?.openDatePickerDialogue
83
- }),
84
73
  validator: _validation.validateDate
85
74
  });
86
75
  return renderPicker();
@@ -18,10 +18,8 @@ var _valueManagers = require("../internals/utils/valueManagers");
18
18
  var _DateTimeField = require("../DateTimeField");
19
19
  var _shared = require("../DateTimePicker/shared");
20
20
  var _dateViewRenderers = require("../dateViewRenderers/dateViewRenderers");
21
- var _usePickerTranslations = require("../hooks/usePickerTranslations");
22
21
  var _useUtils = require("../internals/hooks/useUtils");
23
22
  var _validation = require("../validation");
24
- var _icons = require("../icons");
25
23
  var _useDesktopPicker = require("../internals/hooks/useDesktopPicker");
26
24
  var _dateTimeUtils = require("../internals/utils/date-time-utils");
27
25
  var _timeViewRenderers = require("../timeViewRenderers");
@@ -31,7 +29,6 @@ var _DesktopDateTimePickerLayout = require("./DesktopDateTimePickerLayout");
31
29
  var _dimensions = require("../internals/constants/dimensions");
32
30
  var _timeUtils = require("../internals/utils/time-utils");
33
31
  var _dateUtils = require("../internals/utils/date-utils");
34
- var _getPickersLocalization = require("../locales/utils/getPickersLocalization");
35
32
  var _jsxRuntime = require("react/jsx-runtime");
36
33
  const _excluded = ["openTo", "focusedView", "timeViewsCount"];
37
34
  const rendererInterceptor = function RendererInterceptor(props) {
@@ -97,7 +94,6 @@ const rendererInterceptor = function RendererInterceptor(props) {
97
94
  * - [DesktopDateTimePicker API](https://mui.com/x/api/date-pickers/desktop-date-time-picker/)
98
95
  */
99
96
  const DesktopDateTimePicker = exports.DesktopDateTimePicker = /*#__PURE__*/React.forwardRef(function DesktopDateTimePicker(inProps, ref) {
100
- const translations = (0, _usePickerTranslations.usePickerTranslations)();
101
97
  const utils = (0, _useUtils.useUtils)();
102
98
 
103
99
  // Props with the default values common to all date time pickers
@@ -135,8 +131,7 @@ const DesktopDateTimePicker = exports.DesktopDateTimePicker = /*#__PURE__*/React
135
131
  shouldRenderTimeInASingleColumn,
136
132
  slots: (0, _extends2.default)({
137
133
  field: _DateTimeField.DateTimeField,
138
- layout: _DesktopDateTimePickerLayout.DesktopDateTimePickerLayout,
139
- openPickerIcon: _icons.CalendarIcon
134
+ layout: _DesktopDateTimePickerLayout.DesktopDateTimePickerLayout
140
135
  }, defaultizedProps.slots),
141
136
  slotProps: (0, _extends2.default)({}, defaultizedProps.slotProps, {
142
137
  field: ownerState => (0, _extends2.default)({}, (0, _resolveComponentProps.default)(defaultizedProps.slotProps?.field, ownerState), (0, _validation.extractValidationProps)(defaultizedProps), {
@@ -157,12 +152,6 @@ const DesktopDateTimePicker = exports.DesktopDateTimePicker = /*#__PURE__*/React
157
152
  props,
158
153
  valueManager: _valueManagers.singleItemValueManager,
159
154
  valueType: 'date-time',
160
- getOpenDialogAriaText: (0, _getPickersLocalization.buildGetOpenDialogAriaText)({
161
- utils,
162
- formatKey: 'fullDate',
163
- contextTranslation: translations.openDatePickerDialogue,
164
- propsTranslation: props.localeText?.openDatePickerDialogue
165
- }),
166
155
  validator: _validation.validateDateTime,
167
156
  rendererInterceptor
168
157
  });
@@ -15,15 +15,12 @@ var _utils = require("@mui/utils");
15
15
  var _valueManagers = require("../internals/utils/valueManagers");
16
16
  var _TimeField = require("../TimeField");
17
17
  var _shared = require("../TimePicker/shared");
18
- var _usePickerTranslations = require("../hooks/usePickerTranslations");
19
18
  var _useUtils = require("../internals/hooks/useUtils");
20
19
  var _validation = require("../validation");
21
- var _icons = require("../icons");
22
20
  var _useDesktopPicker = require("../internals/hooks/useDesktopPicker");
23
21
  var _timeViewRenderers = require("../timeViewRenderers");
24
22
  var _timeUtils = require("../internals/utils/time-utils");
25
23
  var _dateTimeUtils = require("../internals/utils/date-time-utils");
26
- var _getPickersLocalization = require("../locales/utils/getPickersLocalization");
27
24
  /**
28
25
  * Demos:
29
26
  *
@@ -35,7 +32,6 @@ var _getPickersLocalization = require("../locales/utils/getPickersLocalization")
35
32
  * - [DesktopTimePicker API](https://mui.com/x/api/date-pickers/desktop-time-picker/)
36
33
  */
37
34
  const DesktopTimePicker = exports.DesktopTimePicker = /*#__PURE__*/React.forwardRef(function DesktopTimePicker(inProps, ref) {
38
- const translations = (0, _usePickerTranslations.usePickerTranslations)();
39
35
  const utils = (0, _useUtils.useUtils)();
40
36
 
41
37
  // Props with the default values common to all time pickers
@@ -67,8 +63,7 @@ const DesktopTimePicker = exports.DesktopTimePicker = /*#__PURE__*/React.forward
67
63
  // Allows for easy view lifecycle management
68
64
  views: shouldRenderTimeInASingleColumn ? ['hours'] : views,
69
65
  slots: (0, _extends2.default)({
70
- field: _TimeField.TimeField,
71
- openPickerIcon: _icons.ClockIcon
66
+ field: _TimeField.TimeField
72
67
  }, defaultizedProps.slots),
73
68
  slotProps: (0, _extends2.default)({}, defaultizedProps.slotProps, {
74
69
  field: ownerState => (0, _extends2.default)({}, (0, _resolveComponentProps.default)(defaultizedProps.slotProps?.field, ownerState), (0, _validation.extractValidationProps)(defaultizedProps), {
@@ -86,12 +81,6 @@ const DesktopTimePicker = exports.DesktopTimePicker = /*#__PURE__*/React.forward
86
81
  props,
87
82
  valueManager: _valueManagers.singleItemValueManager,
88
83
  valueType: 'time',
89
- getOpenDialogAriaText: (0, _getPickersLocalization.buildGetOpenDialogAriaText)({
90
- utils,
91
- formatKey: 'fullTime',
92
- contextTranslation: translations.openTimePickerDialogue,
93
- propsTranslation: props.localeText?.openTimePickerDialogue
94
- }),
95
84
  validator: _validation.validateTime
96
85
  });
97
86
  return renderPicker();
@@ -14,14 +14,12 @@ var _resolveComponentProps = _interopRequireDefault(require("@mui/utils/resolveC
14
14
  var _utils = require("@mui/utils");
15
15
  var _useMobilePicker = require("../internals/hooks/useMobilePicker");
16
16
  var _shared = require("../DatePicker/shared");
17
- var _usePickerTranslations = require("../hooks/usePickerTranslations");
18
17
  var _useUtils = require("../internals/hooks/useUtils");
19
18
  var _validation = require("../validation");
20
19
  var _DateField = require("../DateField");
21
20
  var _valueManagers = require("../internals/utils/valueManagers");
22
21
  var _dateViewRenderers = require("../dateViewRenderers");
23
22
  var _dateUtils = require("../internals/utils/date-utils");
24
- var _getPickersLocalization = require("../locales/utils/getPickersLocalization");
25
23
  /**
26
24
  * Demos:
27
25
  *
@@ -33,7 +31,6 @@ var _getPickersLocalization = require("../locales/utils/getPickersLocalization")
33
31
  * - [MobileDatePicker API](https://mui.com/x/api/date-pickers/mobile-date-picker/)
34
32
  */
35
33
  const MobileDatePicker = exports.MobileDatePicker = /*#__PURE__*/React.forwardRef(function MobileDatePicker(inProps, ref) {
36
- const translations = (0, _usePickerTranslations.usePickerTranslations)();
37
34
  const utils = (0, _useUtils.useUtils)();
38
35
 
39
36
  // Props with the default values common to all date pickers
@@ -66,12 +63,6 @@ const MobileDatePicker = exports.MobileDatePicker = /*#__PURE__*/React.forwardRe
66
63
  props,
67
64
  valueManager: _valueManagers.singleItemValueManager,
68
65
  valueType: 'date',
69
- getOpenDialogAriaText: (0, _getPickersLocalization.buildGetOpenDialogAriaText)({
70
- utils,
71
- formatKey: 'fullDate',
72
- contextTranslation: translations.openDatePickerDialogue,
73
- propsTranslation: props.localeText?.openDatePickerDialogue
74
- }),
75
66
  validator: _validation.validateDate
76
67
  });
77
68
  return renderPicker();
@@ -15,14 +15,12 @@ var _utils = require("@mui/utils");
15
15
  var _valueManagers = require("../internals/utils/valueManagers");
16
16
  var _DateTimeField = require("../DateTimeField");
17
17
  var _shared = require("../DateTimePicker/shared");
18
- var _usePickerTranslations = require("../hooks/usePickerTranslations");
19
18
  var _useUtils = require("../internals/hooks/useUtils");
20
19
  var _validation = require("../validation");
21
20
  var _useMobilePicker = require("../internals/hooks/useMobilePicker");
22
21
  var _dateViewRenderers = require("../dateViewRenderers");
23
22
  var _timeViewRenderers = require("../timeViewRenderers");
24
23
  var _dateTimeUtils = require("../internals/utils/date-time-utils");
25
- var _getPickersLocalization = require("../locales/utils/getPickersLocalization");
26
24
  /**
27
25
  * Demos:
28
26
  *
@@ -34,7 +32,6 @@ var _getPickersLocalization = require("../locales/utils/getPickersLocalization")
34
32
  * - [MobileDateTimePicker API](https://mui.com/x/api/date-pickers/mobile-date-time-picker/)
35
33
  */
36
34
  const MobileDateTimePicker = exports.MobileDateTimePicker = /*#__PURE__*/React.forwardRef(function MobileDateTimePicker(inProps, ref) {
37
- const translations = (0, _usePickerTranslations.usePickerTranslations)();
38
35
  const utils = (0, _useUtils.useUtils)();
39
36
 
40
37
  // Props with the default values common to all date time pickers
@@ -76,12 +73,6 @@ const MobileDateTimePicker = exports.MobileDateTimePicker = /*#__PURE__*/React.f
76
73
  props,
77
74
  valueManager: _valueManagers.singleItemValueManager,
78
75
  valueType: 'date-time',
79
- getOpenDialogAriaText: (0, _getPickersLocalization.buildGetOpenDialogAriaText)({
80
- utils,
81
- formatKey: 'fullDate',
82
- contextTranslation: translations.openDatePickerDialogue,
83
- propsTranslation: props.localeText?.openDatePickerDialogue
84
- }),
85
76
  validator: _validation.validateDateTime
86
77
  });
87
78
  return renderPicker();
@@ -15,13 +15,11 @@ var _utils = require("@mui/utils");
15
15
  var _valueManagers = require("../internals/utils/valueManagers");
16
16
  var _TimeField = require("../TimeField");
17
17
  var _shared = require("../TimePicker/shared");
18
- var _usePickerTranslations = require("../hooks/usePickerTranslations");
19
18
  var _useUtils = require("../internals/hooks/useUtils");
20
19
  var _validation = require("../validation");
21
20
  var _useMobilePicker = require("../internals/hooks/useMobilePicker");
22
21
  var _timeViewRenderers = require("../timeViewRenderers");
23
22
  var _timeUtils = require("../internals/utils/time-utils");
24
- var _getPickersLocalization = require("../locales/utils/getPickersLocalization");
25
23
  /**
26
24
  * Demos:
27
25
  *
@@ -33,7 +31,6 @@ var _getPickersLocalization = require("../locales/utils/getPickersLocalization")
33
31
  * - [MobileTimePicker API](https://mui.com/x/api/date-pickers/mobile-time-picker/)
34
32
  */
35
33
  const MobileTimePicker = exports.MobileTimePicker = /*#__PURE__*/React.forwardRef(function MobileTimePicker(inProps, ref) {
36
- const translations = (0, _usePickerTranslations.usePickerTranslations)();
37
34
  const utils = (0, _useUtils.useUtils)();
38
35
 
39
36
  // Props with the default values common to all time pickers
@@ -69,12 +66,6 @@ const MobileTimePicker = exports.MobileTimePicker = /*#__PURE__*/React.forwardRe
69
66
  props,
70
67
  valueManager: _valueManagers.singleItemValueManager,
71
68
  valueType: 'time',
72
- getOpenDialogAriaText: (0, _getPickersLocalization.buildGetOpenDialogAriaText)({
73
- utils,
74
- formatKey: 'fullTime',
75
- contextTranslation: translations.openTimePickerDialogue,
76
- propsTranslation: props.localeText?.openTimePickerDialogue
77
- }),
78
69
  validator: _validation.validateTime
79
70
  });
80
71
  return renderPicker();
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+ 'use client';
2
3
 
3
4
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
5
  var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
@@ -222,6 +222,8 @@ const PickersCalendarHeader = exports.PickersCalendarHeader = /*#__PURE__*/React
222
222
  }))]
223
223
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Fade.default, {
224
224
  in: view === 'day',
225
+ appear: !reduceAnimations,
226
+ enter: !reduceAnimations,
225
227
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_PickersArrowSwitcher.PickersArrowSwitcher, {
226
228
  slots: slots,
227
229
  slotProps: slotProps,
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+ 'use client';
2
3
 
3
4
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
5
  var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
@@ -7,19 +7,14 @@ Object.defineProperty(exports, "__esModule", {
7
7
  value: true
8
8
  });
9
9
  exports.TimeField = void 0;
10
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
10
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
12
11
  var React = _interopRequireWildcard(require("react"));
13
12
  var _propTypes = _interopRequireDefault(require("prop-types"));
14
- var _TextField = _interopRequireDefault(require("@mui/material/TextField"));
15
13
  var _styles = require("@mui/material/styles");
16
- var _useSlotProps = _interopRequireDefault(require("@mui/utils/useSlotProps"));
17
14
  var _utils = require("@mui/utils");
18
15
  var _useTimeField = require("./useTimeField");
19
- var _hooks = require("../hooks");
20
- var _PickersTextField = require("../PickersTextField");
21
- var _convertFieldResponseIntoMuiTextFieldProps = require("../internals/utils/convertFieldResponseIntoMuiTextFieldProps");
22
- var _useFieldOwnerState = require("../internals/hooks/useFieldOwnerState");
16
+ var _PickerFieldUI = require("../internals/components/PickerFieldUI");
17
+ var _icons = require("../icons");
23
18
  var _jsxRuntime = require("react/jsx-runtime");
24
19
  const _excluded = ["slots", "slotProps", "InputProps", "inputProps"];
25
20
  /**
@@ -39,33 +34,21 @@ const TimeField = exports.TimeField = /*#__PURE__*/React.forwardRef(function Tim
39
34
  });
40
35
  const {
41
36
  slots,
42
- slotProps,
43
- InputProps,
44
- inputProps
37
+ slotProps
45
38
  } = themeProps,
46
39
  other = (0, _objectWithoutPropertiesLoose2.default)(themeProps, _excluded);
47
- const ownerState = (0, _useFieldOwnerState.useFieldOwnerState)(themeProps);
48
- const TextField = slots?.textField ?? (inProps.enableAccessibleFieldDOMStructure === false ? _TextField.default : _PickersTextField.PickersTextField);
49
- const textFieldProps = (0, _useSlotProps.default)({
50
- elementType: TextField,
51
- externalSlotProps: slotProps?.textField,
52
- externalForwardedProps: other,
53
- ownerState,
54
- additionalProps: {
55
- ref: inRef
56
- }
40
+ const textFieldProps = (0, _PickerFieldUI.useFieldTextFieldProps)({
41
+ slotProps,
42
+ ref: inRef,
43
+ externalForwardedProps: other
57
44
  });
58
-
59
- // TODO: Remove when mui/material-ui#35088 will be merged
60
- textFieldProps.inputProps = (0, _extends2.default)({}, inputProps, textFieldProps.inputProps);
61
- textFieldProps.InputProps = (0, _extends2.default)({}, InputProps, textFieldProps.InputProps);
62
45
  const fieldResponse = (0, _useTimeField.useTimeField)(textFieldProps);
63
- const convertedFieldResponse = (0, _convertFieldResponseIntoMuiTextFieldProps.convertFieldResponseIntoMuiTextFieldProps)(fieldResponse);
64
- const processedFieldProps = (0, _hooks.useClearableField)((0, _extends2.default)({}, convertedFieldResponse, {
65
- slots,
66
- slotProps
67
- }));
68
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(TextField, (0, _extends2.default)({}, processedFieldProps));
46
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_PickerFieldUI.PickerFieldUI, {
47
+ slots: slots,
48
+ slotProps: slotProps,
49
+ fieldResponse: fieldResponse,
50
+ defaultOpenPickerIcon: _icons.ClockIcon
51
+ });
69
52
  });
70
53
  process.env.NODE_ENV !== "production" ? TimeField.propTypes = {
71
54
  // ----------------------------- Warning --------------------------------
@@ -88,6 +71,12 @@ process.env.NODE_ENV !== "production" ? TimeField.propTypes = {
88
71
  * @default false
89
72
  */
90
73
  clearable: _propTypes.default.bool,
74
+ /**
75
+ * The position at which the clear button is placed.
76
+ * If the field is not clearable, the button is not rendered.
77
+ * @default 'end'
78
+ */
79
+ clearButtonPosition: _propTypes.default.oneOf(['end', 'start']),
91
80
  /**
92
81
  * The color of the component.
93
82
  * It supports both default and custom theme colors, which can be added as shown in the
@@ -241,6 +230,12 @@ process.env.NODE_ENV !== "production" ? TimeField.propTypes = {
241
230
  * @param {FieldSelectedSections} newValue The new selected sections.
242
231
  */
243
232
  onSelectedSectionsChange: _propTypes.default.func,
233
+ /**
234
+ * The position at which the opening button is placed.
235
+ * If there is no picker to open, the button is not rendered
236
+ * @default 'end'
237
+ */
238
+ openPickerButtonPosition: _propTypes.default.oneOf(['end', 'start']),
244
239
  /**
245
240
  * If `true`, the component is read-only.
246
241
  * When read-only, the value cannot be changed but the user can interact with the interface.
@@ -24,7 +24,8 @@ const useTimeField = props => {
24
24
  valueManager: manager.internal_valueManager,
25
25
  fieldValueManager: manager.internal_fieldValueManager,
26
26
  validator: manager.validator,
27
- valueType: manager.valueType
27
+ valueType: manager.valueType,
28
+ getOpenPickerButtonAriaLabel: manager.internal_getOpenPickerButtonAriaLabel
28
29
  });
29
30
  };
30
31
  exports.useTimeField = useTimeField;