@mui/x-date-pickers 7.0.0-alpha.3 → 7.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 (261) hide show
  1. package/AdapterLuxon/AdapterLuxon.d.ts +27 -27
  2. package/AdapterLuxon/AdapterLuxon.js +0 -1
  3. package/CHANGELOG.md +245 -0
  4. package/DateCalendar/DateCalendar.types.d.ts +6 -6
  5. package/DateCalendar/DayCalendar.d.ts +4 -4
  6. package/DateCalendar/index.d.ts +1 -1
  7. package/DateCalendar/useCalendarState.js +0 -1
  8. package/DateField/DateField.js +17 -50
  9. package/DateField/DateField.types.d.ts +5 -9
  10. package/DateField/useDateField.d.ts +2 -2
  11. package/DateField/useDateField.js +1 -5
  12. package/DatePicker/DatePicker.js +5 -1
  13. package/DatePicker/DatePicker.types.d.ts +6 -6
  14. package/DatePicker/index.d.ts +1 -1
  15. package/DatePicker/shared.d.ts +6 -6
  16. package/DateTimeField/DateTimeField.js +17 -50
  17. package/DateTimeField/DateTimeField.types.d.ts +5 -9
  18. package/DateTimeField/useDateTimeField.d.ts +2 -2
  19. package/DateTimeField/useDateTimeField.js +1 -5
  20. package/DateTimePicker/DateTimePicker.js +5 -1
  21. package/DateTimePicker/DateTimePicker.types.d.ts +6 -6
  22. package/DateTimePicker/index.d.ts +1 -1
  23. package/DateTimePicker/shared.d.ts +6 -6
  24. package/DesktopDatePicker/DesktopDatePicker.js +7 -2
  25. package/DesktopDatePicker/DesktopDatePicker.types.d.ts +6 -6
  26. package/DesktopDatePicker/index.d.ts +1 -1
  27. package/DesktopDateTimePicker/DesktopDateTimePicker.js +5 -1
  28. package/DesktopDateTimePicker/DesktopDateTimePicker.types.d.ts +8 -8
  29. package/DesktopDateTimePicker/index.d.ts +1 -1
  30. package/DesktopTimePicker/DesktopTimePicker.js +5 -1
  31. package/DesktopTimePicker/DesktopTimePicker.types.d.ts +8 -8
  32. package/DesktopTimePicker/index.d.ts +1 -1
  33. package/DigitalClock/DigitalClock.types.d.ts +4 -4
  34. package/DigitalClock/index.d.ts +1 -1
  35. package/MobileDatePicker/MobileDatePicker.js +7 -2
  36. package/MobileDatePicker/MobileDatePicker.types.d.ts +6 -6
  37. package/MobileDatePicker/index.d.ts +1 -1
  38. package/MobileDateTimePicker/MobileDateTimePicker.js +5 -1
  39. package/MobileDateTimePicker/MobileDateTimePicker.types.d.ts +6 -6
  40. package/MobileDateTimePicker/index.d.ts +1 -1
  41. package/MobileTimePicker/MobileTimePicker.js +5 -1
  42. package/MobileTimePicker/MobileTimePicker.types.d.ts +6 -6
  43. package/MobileTimePicker/index.d.ts +1 -1
  44. package/MonthCalendar/MonthCalendar.js +0 -1
  45. package/MultiSectionDigitalClock/MultiSectionDigitalClock.types.d.ts +4 -4
  46. package/MultiSectionDigitalClock/MultiSectionDigitalClockSection.d.ts +3 -3
  47. package/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +8 -2
  48. package/MultiSectionDigitalClock/index.d.ts +1 -1
  49. package/MultiSectionDigitalClock/multiSectionDigitalClockSectionClasses.js +2 -2
  50. package/PickersCalendarHeader/PickersCalendarHeader.js +4 -4
  51. package/PickersCalendarHeader/PickersCalendarHeader.types.d.ts +8 -8
  52. package/PickersCalendarHeader/index.d.ts +1 -1
  53. package/PickersLayout/PickersLayout.types.d.ts +6 -6
  54. package/PickersLayout/index.d.ts +1 -1
  55. package/StaticDatePicker/StaticDatePicker.js +1 -1
  56. package/StaticDatePicker/StaticDatePicker.types.d.ts +7 -7
  57. package/StaticDatePicker/index.d.ts +1 -1
  58. package/StaticDateTimePicker/StaticDateTimePicker.types.d.ts +7 -7
  59. package/StaticDateTimePicker/index.d.ts +1 -1
  60. package/StaticTimePicker/StaticTimePicker.types.d.ts +7 -7
  61. package/StaticTimePicker/index.d.ts +1 -1
  62. package/TimeClock/Clock.js +0 -1
  63. package/TimeClock/ClockPointer.js +0 -1
  64. package/TimeClock/TimeClock.types.d.ts +5 -5
  65. package/TimeClock/index.d.ts +1 -1
  66. package/TimeField/TimeField.js +17 -50
  67. package/TimeField/TimeField.types.d.ts +5 -9
  68. package/TimeField/useTimeField.d.ts +2 -2
  69. package/TimeField/useTimeField.js +1 -5
  70. package/TimePicker/TimePicker.js +5 -1
  71. package/TimePicker/TimePicker.types.d.ts +6 -6
  72. package/TimePicker/index.d.ts +1 -1
  73. package/TimePicker/shared.d.ts +5 -5
  74. package/YearCalendar/YearCalendar.js +0 -1
  75. package/hooks/index.d.ts +1 -0
  76. package/hooks/useClearableField.d.ts +32 -20
  77. package/hooks/useClearableField.js +32 -33
  78. package/index.js +1 -1
  79. package/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.types.d.ts +9 -9
  80. package/internals/components/PickersArrowSwitcher/index.d.ts +3 -1
  81. package/internals/components/PickersArrowSwitcher/index.js +2 -1
  82. package/internals/components/PickersModalDialog.d.ts +4 -4
  83. package/internals/components/PickersPopper.d.ts +4 -4
  84. package/internals/components/PickersTextField/Outline.d.ts +7 -1
  85. package/internals/components/PickersTextField/Outline.js +2 -4
  86. package/internals/components/PickersTextField/PickersInput.d.ts +1 -2
  87. package/internals/components/PickersTextField/PickersInput.js +117 -112
  88. package/internals/components/PickersTextField/PickersInput.types.d.ts +35 -20
  89. package/internals/components/PickersTextField/PickersTextField.js +57 -48
  90. package/internals/components/PickersTextField/PickersTextField.types.d.ts +19 -16
  91. package/internals/components/PickersTextField/pickersTextFieldClasses.d.ts +11 -7
  92. package/internals/components/PickersTextField/pickersTextFieldClasses.js +1 -1
  93. package/internals/constants/dimensions.d.ts +1 -1
  94. package/internals/constants/dimensions.js +1 -1
  95. package/internals/demo/DemoContainer.d.ts +4 -0
  96. package/internals/demo/DemoContainer.js +47 -19
  97. package/internals/hooks/useClockReferenceDate.js +0 -1
  98. package/internals/hooks/useDesktopPicker/index.d.ts +1 -1
  99. package/internals/hooks/useDesktopPicker/useDesktopPicker.js +2 -0
  100. package/internals/hooks/useDesktopPicker/useDesktopPicker.types.d.ts +8 -8
  101. package/internals/hooks/useField/index.d.ts +1 -1
  102. package/internals/hooks/useField/useField.js +3 -3
  103. package/internals/hooks/useField/useField.types.d.ts +4 -24
  104. package/internals/hooks/useField/useField.utils.js +24 -6
  105. package/internals/hooks/useField/useFieldState.js +7 -3
  106. package/internals/hooks/useMobilePicker/index.d.ts +1 -1
  107. package/internals/hooks/useMobilePicker/useMobilePicker.js +3 -1
  108. package/internals/hooks/useMobilePicker/useMobilePicker.types.d.ts +7 -7
  109. package/internals/hooks/useStaticPicker/index.d.ts +1 -1
  110. package/internals/hooks/useStaticPicker/useStaticPicker.types.d.ts +5 -5
  111. package/internals/hooks/useViews.js +0 -1
  112. package/internals/index.d.ts +7 -6
  113. package/internals/index.js +1 -0
  114. package/internals/models/props/basePickerProps.d.ts +4 -0
  115. package/internals/utils/convertFieldResponseIntoMuiTextFieldProps.d.ts +3 -0
  116. package/internals/utils/convertFieldResponseIntoMuiTextFieldProps.js +26 -0
  117. package/legacy/AdapterLuxon/AdapterLuxon.js +0 -1
  118. package/legacy/DateCalendar/useCalendarState.js +0 -1
  119. package/legacy/DateField/DateField.js +19 -47
  120. package/legacy/DateField/useDateField.js +1 -4
  121. package/legacy/DatePicker/DatePicker.js +5 -1
  122. package/legacy/DateTimeField/DateTimeField.js +19 -47
  123. package/legacy/DateTimeField/useDateTimeField.js +1 -4
  124. package/legacy/DateTimePicker/DateTimePicker.js +5 -1
  125. package/legacy/DesktopDatePicker/DesktopDatePicker.js +7 -2
  126. package/legacy/DesktopDateTimePicker/DesktopDateTimePicker.js +5 -1
  127. package/legacy/DesktopTimePicker/DesktopTimePicker.js +5 -1
  128. package/legacy/MobileDatePicker/MobileDatePicker.js +7 -2
  129. package/legacy/MobileDateTimePicker/MobileDateTimePicker.js +5 -1
  130. package/legacy/MobileTimePicker/MobileTimePicker.js +5 -1
  131. package/legacy/MonthCalendar/MonthCalendar.js +0 -1
  132. package/legacy/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +8 -2
  133. package/legacy/MultiSectionDigitalClock/multiSectionDigitalClockSectionClasses.js +2 -2
  134. package/legacy/PickersCalendarHeader/PickersCalendarHeader.js +4 -4
  135. package/legacy/StaticDatePicker/StaticDatePicker.js +1 -1
  136. package/legacy/TimeClock/Clock.js +0 -1
  137. package/legacy/TimeClock/ClockPointer.js +0 -1
  138. package/legacy/TimeField/TimeField.js +19 -47
  139. package/legacy/TimeField/useTimeField.js +1 -4
  140. package/legacy/TimePicker/TimePicker.js +5 -1
  141. package/legacy/YearCalendar/YearCalendar.js +0 -1
  142. package/legacy/hooks/useClearableField.js +30 -32
  143. package/legacy/index.js +1 -1
  144. package/legacy/internals/components/PickersArrowSwitcher/index.js +2 -1
  145. package/legacy/internals/components/PickersTextField/Outline.js +1 -4
  146. package/legacy/internals/components/PickersTextField/PickersInput.js +119 -115
  147. package/legacy/internals/components/PickersTextField/PickersTextField.js +51 -51
  148. package/legacy/internals/components/PickersTextField/pickersTextFieldClasses.js +1 -1
  149. package/legacy/internals/constants/dimensions.js +1 -1
  150. package/legacy/internals/demo/DemoContainer.js +45 -19
  151. package/legacy/internals/hooks/useClockReferenceDate.js +0 -1
  152. package/legacy/internals/hooks/useDesktopPicker/useDesktopPicker.js +2 -0
  153. package/legacy/internals/hooks/useField/useField.js +4 -4
  154. package/legacy/internals/hooks/useField/useField.utils.js +26 -6
  155. package/legacy/internals/hooks/useField/useFieldState.js +7 -3
  156. package/legacy/internals/hooks/useMobilePicker/useMobilePicker.js +3 -1
  157. package/legacy/internals/hooks/useViews.js +0 -1
  158. package/legacy/internals/index.js +1 -0
  159. package/legacy/internals/utils/convertFieldResponseIntoMuiTextFieldProps.js +24 -0
  160. package/legacy/locales/plPL.js +0 -1
  161. package/legacy/locales/svSE.js +0 -1
  162. package/legacy/locales/urPK.js +0 -1
  163. package/locales/plPL.js +0 -1
  164. package/locales/svSE.js +0 -1
  165. package/locales/urPK.js +0 -1
  166. package/models/fields.d.ts +2 -1
  167. package/modern/AdapterLuxon/AdapterLuxon.js +0 -1
  168. package/modern/DateCalendar/useCalendarState.js +0 -1
  169. package/modern/DateField/DateField.js +17 -50
  170. package/modern/DateField/useDateField.js +1 -5
  171. package/modern/DatePicker/DatePicker.js +5 -1
  172. package/modern/DateTimeField/DateTimeField.js +17 -50
  173. package/modern/DateTimeField/useDateTimeField.js +1 -5
  174. package/modern/DateTimePicker/DateTimePicker.js +5 -1
  175. package/modern/DesktopDatePicker/DesktopDatePicker.js +7 -2
  176. package/modern/DesktopDateTimePicker/DesktopDateTimePicker.js +5 -1
  177. package/modern/DesktopTimePicker/DesktopTimePicker.js +5 -1
  178. package/modern/MobileDatePicker/MobileDatePicker.js +7 -2
  179. package/modern/MobileDateTimePicker/MobileDateTimePicker.js +5 -1
  180. package/modern/MobileTimePicker/MobileTimePicker.js +5 -1
  181. package/modern/MonthCalendar/MonthCalendar.js +0 -1
  182. package/modern/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +8 -2
  183. package/modern/MultiSectionDigitalClock/multiSectionDigitalClockSectionClasses.js +2 -2
  184. package/modern/PickersCalendarHeader/PickersCalendarHeader.js +4 -4
  185. package/modern/StaticDatePicker/StaticDatePicker.js +1 -1
  186. package/modern/TimeClock/Clock.js +0 -1
  187. package/modern/TimeClock/ClockPointer.js +0 -1
  188. package/modern/TimeField/TimeField.js +17 -50
  189. package/modern/TimeField/useTimeField.js +1 -5
  190. package/modern/TimePicker/TimePicker.js +5 -1
  191. package/modern/YearCalendar/YearCalendar.js +0 -1
  192. package/modern/hooks/useClearableField.js +32 -33
  193. package/modern/index.js +1 -1
  194. package/modern/internals/components/PickersArrowSwitcher/index.js +2 -1
  195. package/modern/internals/components/PickersTextField/Outline.js +2 -4
  196. package/modern/internals/components/PickersTextField/PickersInput.js +116 -112
  197. package/modern/internals/components/PickersTextField/PickersTextField.js +57 -47
  198. package/modern/internals/components/PickersTextField/pickersTextFieldClasses.js +1 -1
  199. package/modern/internals/constants/dimensions.js +1 -1
  200. package/modern/internals/demo/DemoContainer.js +47 -19
  201. package/modern/internals/hooks/useClockReferenceDate.js +0 -1
  202. package/modern/internals/hooks/useDesktopPicker/useDesktopPicker.js +2 -0
  203. package/modern/internals/hooks/useField/useField.js +3 -3
  204. package/modern/internals/hooks/useField/useField.utils.js +24 -6
  205. package/modern/internals/hooks/useField/useFieldState.js +7 -3
  206. package/modern/internals/hooks/useMobilePicker/useMobilePicker.js +3 -1
  207. package/modern/internals/hooks/useViews.js +0 -1
  208. package/modern/internals/index.js +1 -0
  209. package/modern/internals/utils/convertFieldResponseIntoMuiTextFieldProps.js +26 -0
  210. package/modern/locales/plPL.js +0 -1
  211. package/modern/locales/svSE.js +0 -1
  212. package/modern/locales/urPK.js +0 -1
  213. package/node/AdapterLuxon/AdapterLuxon.js +0 -1
  214. package/node/DateCalendar/useCalendarState.js +0 -1
  215. package/node/DateField/DateField.js +18 -51
  216. package/node/DateField/useDateField.js +1 -5
  217. package/node/DatePicker/DatePicker.js +5 -1
  218. package/node/DateTimeField/DateTimeField.js +18 -51
  219. package/node/DateTimeField/useDateTimeField.js +1 -5
  220. package/node/DateTimePicker/DateTimePicker.js +5 -1
  221. package/node/DesktopDatePicker/DesktopDatePicker.js +10 -5
  222. package/node/DesktopDateTimePicker/DesktopDateTimePicker.js +5 -1
  223. package/node/DesktopTimePicker/DesktopTimePicker.js +5 -1
  224. package/node/MobileDatePicker/MobileDatePicker.js +10 -5
  225. package/node/MobileDateTimePicker/MobileDateTimePicker.js +5 -1
  226. package/node/MobileTimePicker/MobileTimePicker.js +5 -1
  227. package/node/MonthCalendar/MonthCalendar.js +0 -1
  228. package/node/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +8 -2
  229. package/node/MultiSectionDigitalClock/multiSectionDigitalClockSectionClasses.js +2 -2
  230. package/node/PickersCalendarHeader/PickersCalendarHeader.js +4 -4
  231. package/node/StaticDatePicker/StaticDatePicker.js +2 -2
  232. package/node/TimeClock/Clock.js +0 -1
  233. package/node/TimeClock/ClockPointer.js +0 -1
  234. package/node/TimeField/TimeField.js +18 -51
  235. package/node/TimeField/useTimeField.js +1 -5
  236. package/node/TimePicker/TimePicker.js +5 -1
  237. package/node/YearCalendar/YearCalendar.js +0 -1
  238. package/node/hooks/useClearableField.js +33 -34
  239. package/node/index.js +1 -1
  240. package/node/internals/components/PickersArrowSwitcher/index.js +14 -1
  241. package/node/internals/components/PickersTextField/Outline.js +2 -4
  242. package/node/internals/components/PickersTextField/PickersInput.js +119 -115
  243. package/node/internals/components/PickersTextField/PickersTextField.js +58 -48
  244. package/node/internals/components/PickersTextField/pickersTextFieldClasses.js +1 -1
  245. package/node/internals/constants/dimensions.js +1 -1
  246. package/node/internals/demo/DemoContainer.js +47 -19
  247. package/node/internals/hooks/useClockReferenceDate.js +0 -1
  248. package/node/internals/hooks/useDesktopPicker/useDesktopPicker.js +2 -0
  249. package/node/internals/hooks/useField/useField.js +3 -3
  250. package/node/internals/hooks/useField/useField.utils.js +24 -6
  251. package/node/internals/hooks/useField/useFieldState.js +7 -3
  252. package/node/internals/hooks/useMobilePicker/useMobilePicker.js +3 -1
  253. package/node/internals/hooks/useViews.js +0 -1
  254. package/node/internals/index.js +7 -0
  255. package/node/internals/utils/convertFieldResponseIntoMuiTextFieldProps.js +34 -0
  256. package/node/locales/plPL.js +0 -1
  257. package/node/locales/svSE.js +0 -1
  258. package/node/locales/urPK.js +0 -1
  259. package/package.json +6 -6
  260. package/themeAugmentation/overrides.d.ts +5 -7
  261. package/themeAugmentation/props.d.ts +6 -8
@@ -13,12 +13,11 @@ var _TextField = _interopRequireDefault(require("@mui/material/TextField"));
13
13
  var _styles = require("@mui/material/styles");
14
14
  var _utils = require("@mui/base/utils");
15
15
  var _utils2 = require("@mui/utils");
16
- var _useTimeField2 = require("./useTimeField");
16
+ var _useTimeField = require("./useTimeField");
17
17
  var _hooks = require("../hooks");
18
+ var _convertFieldResponseIntoMuiTextFieldProps = require("../internals/utils/convertFieldResponseIntoMuiTextFieldProps");
18
19
  var _jsxRuntime = require("react/jsx-runtime");
19
- const _excluded = ["slots", "slotProps", "InputProps", "inputProps"],
20
- _excluded2 = ["inputRef"],
21
- _excluded3 = ["ref", "onPaste", "onKeyDown", "inputMode", "readOnly", "clearable", "onClear"];
20
+ const _excluded = ["slots", "slotProps", "InputProps", "inputProps"];
22
21
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
23
22
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
24
23
  /**
@@ -31,7 +30,7 @@ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e;
31
30
  *
32
31
  * - [TimeField API](https://mui.com/x/api/date-pickers/time-field/)
33
32
  */
34
- const TimeField = exports.TimeField = /*#__PURE__*/React.forwardRef(function TimeField(inProps, ref) {
33
+ const TimeField = exports.TimeField = /*#__PURE__*/React.forwardRef(function TimeField(inProps, inRef) {
35
34
  const themeProps = (0, _styles.useThemeProps)({
36
35
  props: inProps,
37
36
  name: 'MuiTimeField'
@@ -45,58 +44,26 @@ const TimeField = exports.TimeField = /*#__PURE__*/React.forwardRef(function Tim
45
44
  other = (0, _objectWithoutPropertiesLoose2.default)(themeProps, _excluded);
46
45
  const ownerState = themeProps;
47
46
  const TextField = slots?.textField ?? _TextField.default;
48
- const _useSlotProps = (0, _utils.useSlotProps)({
49
- elementType: TextField,
50
- externalSlotProps: slotProps?.textField,
51
- externalForwardedProps: other,
52
- ownerState
53
- }),
54
- {
55
- inputRef: externalInputRef
56
- } = _useSlotProps,
57
- textFieldProps = (0, _objectWithoutPropertiesLoose2.default)(_useSlotProps, _excluded2);
47
+ const textFieldProps = (0, _utils.useSlotProps)({
48
+ elementType: TextField,
49
+ externalSlotProps: slotProps?.textField,
50
+ externalForwardedProps: other,
51
+ ownerState,
52
+ additionalProps: {
53
+ ref: inRef
54
+ }
55
+ });
58
56
 
59
57
  // TODO: Remove when mui/material-ui#35088 will be merged
60
58
  textFieldProps.inputProps = (0, _extends2.default)({}, inputProps, textFieldProps.inputProps);
61
59
  textFieldProps.InputProps = (0, _extends2.default)({}, InputProps, textFieldProps.InputProps);
62
- const _useTimeField = (0, _useTimeField2.useTimeField)({
63
- props: textFieldProps,
64
- inputRef: externalInputRef
65
- }),
66
- {
67
- ref: inputRef,
68
- onPaste,
69
- onKeyDown,
70
- inputMode,
71
- readOnly,
72
- clearable,
73
- onClear
74
- } = _useTimeField,
75
- fieldProps = (0, _objectWithoutPropertiesLoose2.default)(_useTimeField, _excluded3);
76
- const {
77
- InputProps: ProcessedInputProps,
78
- fieldProps: processedFieldProps
79
- } = (0, _hooks.useClearableField)({
80
- onClear,
81
- clearable,
82
- fieldProps,
83
- InputProps: fieldProps.InputProps,
60
+ const fieldResponse = (0, _useTimeField.useTimeField)(textFieldProps);
61
+ const convertedFieldResponse = (0, _convertFieldResponseIntoMuiTextFieldProps.convertFieldResponseIntoMuiTextFieldProps)(fieldResponse);
62
+ const processedFieldProps = (0, _hooks.useClearableField)((0, _extends2.default)({}, convertedFieldResponse, {
84
63
  slots,
85
64
  slotProps
86
- });
87
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(TextField, (0, _extends2.default)({
88
- ref: ref
89
- }, processedFieldProps, {
90
- InputProps: (0, _extends2.default)({}, ProcessedInputProps, {
91
- readOnly
92
- }),
93
- inputProps: (0, _extends2.default)({}, fieldProps.inputProps, {
94
- inputMode,
95
- onPaste,
96
- onKeyDown,
97
- ref: inputRef
98
- })
99
65
  }));
66
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(TextField, (0, _extends2.default)({}, processedFieldProps));
100
67
  });
101
68
  process.env.NODE_ENV !== "production" ? TimeField.propTypes = {
102
69
  // ----------------------------- Warning --------------------------------
@@ -291,7 +258,7 @@ process.env.NODE_ENV !== "production" ? TimeField.propTypes = {
291
258
  * 4. If `null` is provided, no section will be selected
292
259
  * If not provided, the selected sections will be handled internally.
293
260
  */
294
- selectedSections: _propTypes.default.oneOfType([_propTypes.default.oneOf(['all', 'day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), _propTypes.default.number, _propTypes.default.shape({
261
+ selectedSections: _propTypes.default.oneOfType([_propTypes.default.oneOf(['all', 'day', 'empty', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), _propTypes.default.number, _propTypes.default.shape({
295
262
  endIndex: _propTypes.default.number.isRequired,
296
263
  startIndex: _propTypes.default.number.isRequired
297
264
  })]),
@@ -21,17 +21,13 @@ const useDefaultizedTimeField = props => {
21
21
  format: props.format ?? defaultFormat
22
22
  });
23
23
  };
24
- const useTimeField = ({
25
- props: inProps,
26
- inputRef
27
- }) => {
24
+ const useTimeField = inProps => {
28
25
  const props = useDefaultizedTimeField(inProps);
29
26
  const {
30
27
  forwardedProps,
31
28
  internalProps
32
29
  } = (0, _fields.splitFieldInternalAndForwardedProps)(props, 'time');
33
30
  return (0, _useField.useField)({
34
- inputRef,
35
31
  forwardedProps,
36
32
  internalProps,
37
33
  valueManager: _valueManagers.singleItemValueManager,
@@ -158,6 +158,10 @@ process.env.NODE_ENV !== "production" ? TimePicker.propTypes = {
158
158
  * @default 1
159
159
  */
160
160
  minutesStep: _propTypes.default.number,
161
+ /**
162
+ * Name attribute used by the `input` element in the Field.
163
+ */
164
+ name: _propTypes.default.string,
161
165
  /**
162
166
  * Callback fired when the value is accepted.
163
167
  * @template TValue The value type. Will be either the same type as `value` or `null`. Can be in `[start, end]` format in case of range value.
@@ -238,7 +242,7 @@ process.env.NODE_ENV !== "production" ? TimePicker.propTypes = {
238
242
  * 4. If `null` is provided, no section will be selected
239
243
  * If not provided, the selected sections will be handled internally.
240
244
  */
241
- selectedSections: _propTypes.default.oneOfType([_propTypes.default.oneOf(['all', 'day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), _propTypes.default.number, _propTypes.default.shape({
245
+ selectedSections: _propTypes.default.oneOfType([_propTypes.default.oneOf(['all', 'day', 'empty', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), _propTypes.default.number, _propTypes.default.shape({
242
246
  endIndex: _propTypes.default.number.isRequired,
243
247
  startIndex: _propTypes.default.number.isRequired
244
248
  })]),
@@ -124,7 +124,6 @@ const YearCalendar = exports.YearCalendar = /*#__PURE__*/React.forwardRef(functi
124
124
  granularity: _getDefaultReferenceDate.SECTION_TYPE_GRANULARITY.year
125
125
  }), [] // eslint-disable-line react-hooks/exhaustive-deps
126
126
  );
127
-
128
127
  const ownerState = props;
129
128
  const classes = useUtilityClasses(ownerState);
130
129
  const todayYear = React.useMemo(() => utils.getYear(now), [utils, now]);
@@ -12,20 +12,23 @@ var _utils = require("@mui/base/utils");
12
12
  var _IconButton = _interopRequireDefault(require("@mui/material/IconButton"));
13
13
  var _InputAdornment = _interopRequireDefault(require("@mui/material/InputAdornment"));
14
14
  var _icons = require("../icons");
15
- var _internals = require("../internals");
15
+ var _useUtils = require("../internals/hooks/useUtils");
16
16
  var _jsxRuntime = require("react/jsx-runtime");
17
- const _excluded = ["ownerState"];
17
+ const _excluded = ["clearable", "onClear", "InputProps", "sx", "slots", "slotProps"],
18
+ _excluded2 = ["ownerState"];
18
19
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
19
20
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
20
- const useClearableField = ({
21
- clearable,
22
- fieldProps: forwardedFieldProps,
23
- InputProps: ForwardedInputProps,
24
- onClear,
25
- slots,
26
- slotProps
27
- }) => {
28
- const localeText = (0, _internals.useLocaleText)();
21
+ const useClearableField = props => {
22
+ const localeText = (0, _useUtils.useLocaleText)();
23
+ const {
24
+ clearable,
25
+ onClear,
26
+ InputProps,
27
+ sx,
28
+ slots,
29
+ slotProps
30
+ } = props,
31
+ other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
29
32
  const IconButton = slots?.clearButton ?? _IconButton.default;
30
33
  // The spread is here to avoid this bug mui/material-ui#34056
31
34
  const _useSlotProps = (0, _utils.useSlotProps)({
@@ -37,30 +40,30 @@ const useClearableField = ({
37
40
  title: localeText.fieldClearLabel
38
41
  }
39
42
  }),
40
- iconButtonProps = (0, _objectWithoutPropertiesLoose2.default)(_useSlotProps, _excluded);
43
+ iconButtonProps = (0, _objectWithoutPropertiesLoose2.default)(_useSlotProps, _excluded2);
41
44
  const EndClearIcon = slots?.clearIcon ?? _icons.ClearIcon;
42
45
  const endClearIconProps = (0, _utils.useSlotProps)({
43
46
  elementType: EndClearIcon,
44
47
  externalSlotProps: slotProps?.clearIcon,
45
48
  ownerState: {}
46
49
  });
47
- const InputProps = (0, _extends2.default)({}, ForwardedInputProps, {
48
- endAdornment: clearable ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(React.Fragment, {
49
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_InputAdornment.default, {
50
- position: "end",
51
- sx: {
52
- marginRight: ForwardedInputProps?.endAdornment ? -1 : -1.5
53
- },
54
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(IconButton, (0, _extends2.default)({}, iconButtonProps, {
55
- onClick: onClear,
56
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(EndClearIcon, (0, _extends2.default)({
57
- fontSize: "small"
58
- }, endClearIconProps))
59
- }))
60
- }), ForwardedInputProps?.endAdornment]
61
- }) : ForwardedInputProps?.endAdornment
62
- });
63
- const fieldProps = (0, _extends2.default)({}, forwardedFieldProps, {
50
+ return (0, _extends2.default)({}, other, {
51
+ InputProps: (0, _extends2.default)({}, InputProps, {
52
+ endAdornment: clearable ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(React.Fragment, {
53
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_InputAdornment.default, {
54
+ position: "end",
55
+ sx: {
56
+ marginRight: InputProps?.endAdornment ? -1 : -1.5
57
+ },
58
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(IconButton, (0, _extends2.default)({}, iconButtonProps, {
59
+ onClick: onClear,
60
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(EndClearIcon, (0, _extends2.default)({
61
+ fontSize: "small"
62
+ }, endClearIconProps))
63
+ }))
64
+ }), InputProps?.endAdornment]
65
+ }) : InputProps?.endAdornment
66
+ }),
64
67
  sx: [{
65
68
  '& .clearButton': {
66
69
  opacity: 1
@@ -75,11 +78,7 @@ const useClearableField = ({
75
78
  }
76
79
  }
77
80
  }
78
- }, ...(Array.isArray(forwardedFieldProps.sx) ? forwardedFieldProps.sx : [forwardedFieldProps.sx])]
81
+ }, ...(Array.isArray(sx) ? sx : [sx])]
79
82
  });
80
- return {
81
- InputProps,
82
- fieldProps
83
- };
84
83
  };
85
84
  exports.useClearableField = useClearableField;
package/node/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-date-pickers v7.0.0-alpha.3
2
+ * @mui/x-date-pickers v7.0.0-alpha.5
3
3
  *
4
4
  * @license MIT
5
5
  * This source code is licensed under the MIT license found in the
@@ -9,4 +9,17 @@ Object.defineProperty(exports, "PickersArrowSwitcher", {
9
9
  return _PickersArrowSwitcher.PickersArrowSwitcher;
10
10
  }
11
11
  });
12
- var _PickersArrowSwitcher = require("./PickersArrowSwitcher");
12
+ Object.defineProperty(exports, "getPickersArrowSwitcherUtilityClass", {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _pickersArrowSwitcherClasses.getPickersArrowSwitcherUtilityClass;
16
+ }
17
+ });
18
+ Object.defineProperty(exports, "pickersArrowSwitcherClasses", {
19
+ enumerable: true,
20
+ get: function () {
21
+ return _pickersArrowSwitcherClasses.pickersArrowSwitcherClasses;
22
+ }
23
+ });
24
+ var _PickersArrowSwitcher = require("./PickersArrowSwitcher");
25
+ var _pickersArrowSwitcherClasses = require("./pickersArrowSwitcherClasses");
@@ -10,7 +10,7 @@ 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 _jsxRuntime = require("react/jsx-runtime");
13
- const _excluded = ["children", "classes", "className", "label", "notched"];
13
+ const _excluded = ["children", "className", "label"];
14
14
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
15
15
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
16
16
  const OutlineRoot = (0, _styles.styled)('fieldset')({
@@ -78,13 +78,11 @@ const OutlineLegend = (0, _styles.styled)('legend')(({
78
78
  function Outline(props) {
79
79
  const {
80
80
  className,
81
- label,
82
- notched
81
+ label
83
82
  } = props,
84
83
  other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
85
84
  const withLabel = label != null && label !== '';
86
85
  const ownerState = (0, _extends2.default)({}, props, {
87
- notched,
88
86
  withLabel
89
87
  });
90
88
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(OutlineRoot, (0, _extends2.default)({
@@ -4,7 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.default = void 0;
7
+ exports.PickersInput = void 0;
8
8
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
9
9
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
10
  var React = _interopRequireWildcard(require("react"));
@@ -13,14 +13,16 @@ var _Box = _interopRequireDefault(require("@mui/material/Box"));
13
13
  var _FormControl = require("@mui/material/FormControl");
14
14
  var _styles = require("@mui/material/styles");
15
15
  var _useForkRef = _interopRequireDefault(require("@mui/utils/useForkRef"));
16
- var _utils = require("@mui/utils");
16
+ var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
17
+ var _capitalize = _interopRequireDefault(require("@mui/utils/capitalize"));
18
+ var _visuallyHidden = _interopRequireDefault(require("@mui/utils/visuallyHidden"));
17
19
  var _pickersTextFieldClasses = require("./pickersTextFieldClasses");
18
20
  var _Outline = _interopRequireDefault(require("./Outline"));
19
21
  var _jsxRuntime = require("react/jsx-runtime");
20
- const _excluded = ["elements", "defaultValue", "label", "onFocus", "onWrapperClick", "onBlur", "valueStr", "onValueStrChange", "id", "InputProps", "inputProps", "autoFocus", "ownerState", "endAdornment", "startAdornment"];
22
+ const _excluded = ["elements", "areAllSectionsEmpty", "defaultValue", "label", "value", "onChange", "id", "autoFocus", "endAdornment", "startAdornment", "contentEditable", "tabIndex", "fullWidth", "inputProps", "inputRef", "sectionsContainerRef"];
21
23
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
22
24
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
23
- const SectionsWrapper = (0, _styles.styled)(_Box.default, {
25
+ const PickersInputRoot = (0, _styles.styled)(_Box.default, {
24
26
  name: 'MuiPickersInput',
25
27
  slot: 'Root',
26
28
  overridesResolver: (props, styles) => styles.root
@@ -37,6 +39,7 @@ const SectionsWrapper = (0, _styles.styled)(_Box.default, {
37
39
  alignItems: 'center',
38
40
  width: ownerState.fullWidth ? '100%' : '25ch',
39
41
  position: 'relative',
42
+ outline: 'none',
40
43
  borderRadius: (theme.vars || theme).shape.borderRadius,
41
44
  [`&:hover .${_pickersTextFieldClasses.pickersInputClasses.notchedOutline}`]: {
42
45
  borderColor: (theme.vars || theme).palette.text.primary
@@ -67,22 +70,30 @@ const SectionsWrapper = (0, _styles.styled)(_Box.default, {
67
70
  padding: '8.5px 14px'
68
71
  });
69
72
  });
70
- const SectionsContainer = (0, _styles.styled)('div', {
73
+ const PickersInputSectionsContainer = (0, _styles.styled)('div', {
71
74
  name: 'MuiPickersInput',
72
- slot: 'Input',
73
- overridesResolver: (props, styles) => styles.input
75
+ slot: 'SectionsContainer',
76
+ overridesResolver: (props, styles) => styles.sectionsContainer
74
77
  })(({
75
78
  theme,
76
79
  ownerState
77
- }) => ({
80
+ }) => (0, _extends2.default)({
78
81
  fontFamily: theme.typography.fontFamily,
79
82
  fontSize: 'inherit',
80
83
  lineHeight: '1.4375em',
81
84
  // 23px
82
85
  flexGrow: 1,
83
- visibility: ownerState.adornedStart || ownerState.focused ? 'visible' : 'hidden'
84
- }));
85
- const SectionContainer = (0, _styles.styled)('span', {
86
+ outline: 'none'
87
+ }, !(ownerState.adornedStart || ownerState.focused || ownerState.filled) && (0, _extends2.default)({
88
+ color: 'currentColor'
89
+ }, ownerState.label == null && (theme.vars ? {
90
+ opacity: theme.vars.opacity.inputPlaceholder
91
+ } : {
92
+ opacity: theme.palette.mode === 'light' ? 0.42 : 0.5
93
+ }), ownerState.label != null && {
94
+ opacity: 0
95
+ })));
96
+ const PickersInputSection = (0, _styles.styled)('span', {
86
97
  name: 'MuiPickersInput',
87
98
  slot: 'Section',
88
99
  overridesResolver: (props, styles) => styles.section
@@ -95,9 +106,9 @@ const SectionContainer = (0, _styles.styled)('span', {
95
106
  // 23px
96
107
  flexGrow: 1
97
108
  }));
98
- const SectionInput = (0, _styles.styled)('span', {
109
+ const PickersInputContent = (0, _styles.styled)('span', {
99
110
  name: 'MuiPickersInput',
100
- slot: 'Content',
111
+ slot: 'SectionContent',
101
112
  overridesResolver: (props, styles) => styles.content
102
113
  })(({
103
114
  theme
@@ -108,18 +119,18 @@ const SectionInput = (0, _styles.styled)('span', {
108
119
  letterSpacing: 'inherit',
109
120
  width: 'fit-content'
110
121
  }));
111
- const SectionSeparator = (0, _styles.styled)('span', {
122
+ const PickersInputSeparator = (0, _styles.styled)('span', {
112
123
  name: 'MuiPickersInput',
113
124
  slot: 'Separator',
114
125
  overridesResolver: (props, styles) => styles.separator
115
126
  })(() => ({
116
127
  whiteSpace: 'pre'
117
128
  }));
118
- const FakeHiddenInput = (0, _styles.styled)('input', {
129
+ const PickersInputInput = (0, _styles.styled)('input', {
119
130
  name: 'MuiPickersInput',
120
- slot: 'HiddenInput',
131
+ slot: 'Input',
121
132
  overridesResolver: (props, styles) => styles.hiddenInput
122
- })((0, _extends2.default)({}, _utils.visuallyHidden));
133
+ })((0, _extends2.default)({}, _visuallyHidden.default));
123
134
  const NotchedOutlineRoot = (0, _styles.styled)(_Outline.default, {
124
135
  name: 'MuiPickersInput',
125
136
  slot: 'NotchedOutline',
@@ -132,36 +143,6 @@ const NotchedOutlineRoot = (0, _styles.styled)(_Outline.default, {
132
143
  borderColor: theme.vars ? `rgba(${theme.vars.palette.common.onBackgroundChannel} / 0.23)` : borderColor
133
144
  };
134
145
  });
135
- function InputContent({
136
- elements,
137
- contentEditable,
138
- ownerState
139
- }) {
140
- if (contentEditable) {
141
- return elements.map(({
142
- content,
143
- before,
144
- after
145
- }) => `${before.children}${content.children}${after.children}`).join('');
146
- }
147
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(React.Fragment, {
148
- children: elements.map(({
149
- container,
150
- content,
151
- before,
152
- after
153
- }, elementIndex) => /*#__PURE__*/(0, _jsxRuntime.jsxs)(SectionContainer, (0, _extends2.default)({}, container, {
154
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(SectionSeparator, (0, _extends2.default)({}, before, {
155
- className: (0, _clsx.default)(_pickersTextFieldClasses.pickersInputClasses.before, before?.className)
156
- })), /*#__PURE__*/(0, _jsxRuntime.jsx)(SectionInput, (0, _extends2.default)({}, content, {
157
- className: (0, _clsx.default)(_pickersTextFieldClasses.pickersInputClasses.content, content?.className),
158
- ownerState
159
- })), /*#__PURE__*/(0, _jsxRuntime.jsx)(SectionSeparator, (0, _extends2.default)({}, after, {
160
- className: (0, _clsx.default)(_pickersTextFieldClasses.pickersInputClasses.after, after?.className)
161
- }))]
162
- }), elementIndex))
163
- });
164
- }
165
146
  const useUtilityClasses = ownerState => {
166
147
  const {
167
148
  focused,
@@ -169,104 +150,127 @@ const useUtilityClasses = ownerState => {
169
150
  error,
170
151
  classes,
171
152
  fullWidth,
153
+ readOnly,
172
154
  color,
173
155
  size,
174
156
  endAdornment,
175
157
  startAdornment
176
158
  } = ownerState;
177
159
  const slots = {
178
- root: ['root', focused && !disabled && 'focused', disabled && 'disabled', error && 'error', fullWidth && 'fullWidth', `color${(0, _utils.unstable_capitalize)(color)}`, size === 'small' && 'inputSizeSmall', Boolean(startAdornment) && 'adornedStart', Boolean(endAdornment) && 'adornedEnd'],
160
+ root: ['root', focused && !disabled && 'focused', disabled && 'disabled', readOnly && 'readOnly', error && 'error', fullWidth && 'fullWidth', `color${(0, _capitalize.default)(color)}`, size === 'small' && 'inputSizeSmall', Boolean(startAdornment) && 'adornedStart', Boolean(endAdornment) && 'adornedEnd'],
179
161
  notchedOutline: ['notchedOutline'],
180
- before: ['before'],
181
- after: ['after'],
182
- content: ['content'],
183
- input: ['input']
162
+ input: ['input'],
163
+ sectionsContainer: ['sectionsContainer'],
164
+ sectionContent: ['sectionContent'],
165
+ sectionBefore: ['sectionBefore'],
166
+ sectionAfter: ['sectionAfter']
184
167
  };
185
- return (0, _utils.unstable_composeClasses)(slots, _pickersTextFieldClasses.getPickersInputUtilityClass, classes);
168
+ return (0, _composeClasses.default)(slots, _pickersTextFieldClasses.getPickersInputUtilityClass, classes);
186
169
  };
187
-
188
- // TODO: move to utils
189
- // Separates the state props from the form control
190
- function formControlState({
191
- props,
192
- states,
193
- muiFormControl
194
- }) {
195
- return states.reduce((acc, state) => {
196
- acc[state] = props[state];
197
- if (muiFormControl) {
198
- if (typeof props[state] === 'undefined') {
199
- acc[state] = muiFormControl[state];
200
- }
201
- }
202
- return acc;
203
- }, {});
204
- }
205
- const PickersInput = /*#__PURE__*/React.forwardRef(function PickersInput(props, ref) {
170
+ const PickersInput = exports.PickersInput = /*#__PURE__*/React.forwardRef(function PickersInput(props, ref) {
206
171
  const {
207
172
  elements,
173
+ areAllSectionsEmpty,
208
174
  label,
209
- onWrapperClick,
210
- valueStr,
211
- onValueStrChange,
175
+ value,
176
+ onChange,
212
177
  id,
213
- ownerState: ownerStateProp,
214
178
  endAdornment,
215
- startAdornment
179
+ startAdornment,
180
+ contentEditable,
181
+ tabIndex,
182
+ inputProps,
183
+ inputRef,
184
+ sectionsContainerRef
216
185
  } = props,
217
186
  other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
218
- const inputRef = React.useRef(null);
219
- const handleInputRef = (0, _useForkRef.default)(ref, inputRef);
187
+ const rootRef = React.useRef(null);
188
+ const handleRootRef = (0, _useForkRef.default)(ref, rootRef);
189
+ const handleInputRef = (0, _useForkRef.default)(inputProps?.ref, inputRef);
220
190
  const muiFormControl = (0, _FormControl.useFormControl)();
221
- const fcs = formControlState({
222
- props,
223
- muiFormControl,
224
- states: ['color', 'disabled', 'error', 'focused', 'size', 'required', 'fullWidth', 'adornedStart']
225
- });
191
+ if (!muiFormControl) {
192
+ throw new Error('MUI: PickersInput should always be used inside a PickersTextField component');
193
+ }
194
+ const handleInputFocus = event => {
195
+ // Fix a bug with IE11 where the focus/blur events are triggered
196
+ // while the component is disabled.
197
+ if (muiFormControl.disabled) {
198
+ event.stopPropagation();
199
+ return;
200
+ }
201
+ muiFormControl.onFocus?.(event);
202
+ };
226
203
  React.useEffect(() => {
227
204
  if (muiFormControl) {
228
205
  muiFormControl.setAdornedStart(Boolean(startAdornment));
229
206
  }
230
207
  }, [muiFormControl, startAdornment]);
231
- const ownerState = (0, _extends2.default)({}, props, ownerStateProp, {
232
- color: fcs.color || 'primary',
233
- disabled: fcs.disabled,
234
- error: fcs.error,
235
- focused: fcs.focused,
236
- fullWidth: fcs.fullWidth,
237
- size: fcs.size
238
- });
208
+ React.useEffect(() => {
209
+ if (!muiFormControl) {
210
+ return;
211
+ }
212
+ if (areAllSectionsEmpty) {
213
+ muiFormControl.onEmpty();
214
+ } else {
215
+ muiFormControl.onFilled();
216
+ }
217
+ }, [muiFormControl, areAllSectionsEmpty]);
218
+ const ownerState = (0, _extends2.default)({}, props, muiFormControl);
239
219
  const classes = useUtilityClasses(ownerState);
240
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(SectionsWrapper, (0, _extends2.default)({
241
- ref: handleInputRef
242
- }, other, {
220
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(PickersInputRoot, (0, _extends2.default)({}, other, {
243
221
  className: classes.root,
244
- onClick: onWrapperClick,
245
222
  ownerState: ownerState,
246
- "aria-invalid": fcs.error,
247
- children: [startAdornment, /*#__PURE__*/(0, _jsxRuntime.jsxs)(SectionsContainer, {
223
+ "aria-invalid": muiFormControl.error,
224
+ ref: handleRootRef,
225
+ children: [startAdornment, /*#__PURE__*/(0, _jsxRuntime.jsx)(PickersInputSectionsContainer, {
248
226
  ownerState: ownerState,
249
- className: classes.input,
250
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(InputContent, {
251
- elements: elements,
252
- contentEditable: other.contentEditable,
253
- ownerState: ownerState
254
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(FakeHiddenInput, {
255
- value: valueStr,
256
- onChange: onValueStrChange,
257
- id: id,
258
- "aria-hidden": "true",
259
- tabIndex: -1
260
- })]
227
+ className: classes.sectionsContainer,
228
+ contentEditable: contentEditable,
229
+ suppressContentEditableWarning: true,
230
+ onFocus: handleInputFocus,
231
+ onBlur: muiFormControl.onBlur,
232
+ tabIndex: tabIndex,
233
+ ref: sectionsContainerRef,
234
+ children: contentEditable ? elements.map(({
235
+ content,
236
+ before,
237
+ after
238
+ }) => `${before.children}${content.children}${after.children}`).join('') : /*#__PURE__*/(0, _jsxRuntime.jsx)(React.Fragment, {
239
+ children: elements.map(({
240
+ container,
241
+ content,
242
+ before,
243
+ after
244
+ }, elementIndex) => /*#__PURE__*/(0, _jsxRuntime.jsxs)(PickersInputSection, (0, _extends2.default)({}, container, {
245
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(PickersInputSeparator, (0, _extends2.default)({}, before, {
246
+ className: (0, _clsx.default)(_pickersTextFieldClasses.pickersInputClasses.sectionBefore, before?.className)
247
+ })), /*#__PURE__*/(0, _jsxRuntime.jsx)(PickersInputContent, (0, _extends2.default)({}, content, {
248
+ suppressContentEditableWarning: true,
249
+ className: (0, _clsx.default)(_pickersTextFieldClasses.pickersInputClasses.sectionContent, content?.className),
250
+ ownerState
251
+ })), /*#__PURE__*/(0, _jsxRuntime.jsx)(PickersInputSeparator, (0, _extends2.default)({}, after, {
252
+ className: (0, _clsx.default)(_pickersTextFieldClasses.pickersInputClasses.sectionAfter, after?.className)
253
+ }))]
254
+ }), elementIndex))
255
+ })
261
256
  }), endAdornment, /*#__PURE__*/(0, _jsxRuntime.jsx)(NotchedOutlineRoot, {
262
- shrink: fcs.adornedStart || fcs.focused,
263
- notched: fcs.adornedStart || fcs.focused,
257
+ shrink: muiFormControl.adornedStart || muiFormControl.focused || muiFormControl.filled,
258
+ notched: muiFormControl.adornedStart || muiFormControl.focused || muiFormControl.filled,
264
259
  className: classes.notchedOutline,
265
- label: label != null && label !== '' && fcs.required ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(React.Fragment, {
260
+ label: label != null && label !== '' && muiFormControl.required ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(React.Fragment, {
266
261
  children: [label, "\u2009", '*']
267
262
  }) : label,
268
263
  ownerState: ownerState
269
- })]
264
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(PickersInputInput, (0, _extends2.default)({
265
+ className: classes.input,
266
+ value: value,
267
+ onChange: onChange,
268
+ id: id,
269
+ "aria-hidden": "true",
270
+ tabIndex: -1
271
+ }, inputProps, {
272
+ ref: handleInputRef
273
+ }))]
270
274
  }));
271
275
  });
272
- var _default = exports.default = PickersInput;
276
+ PickersInput.muiName = 'Input';