@mui/x-date-pickers 9.0.0-alpha.4 → 9.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (300) hide show
  1. package/AdapterDateFnsBase/AdapterDateFnsBase.mjs +1 -1
  2. package/AdapterDayjs/AdapterDayjs.mjs +1 -1
  3. package/AdapterLuxon/AdapterLuxon.mjs +1 -1
  4. package/AdapterMoment/AdapterMoment.mjs +1 -1
  5. package/AdapterMomentHijri/AdapterMomentHijri.mjs +1 -1
  6. package/AdapterMomentJalaali/AdapterMomentJalaali.mjs +1 -1
  7. package/CHANGELOG.md +374 -2
  8. package/DateCalendar/DateCalendar.js +1 -1
  9. package/DateCalendar/DateCalendar.mjs +1 -1
  10. package/DateCalendar/DayCalendar.d.mts +7 -7
  11. package/DateCalendar/DayCalendar.d.ts +7 -7
  12. package/DateCalendar/DayCalendar.js +23 -25
  13. package/DateCalendar/DayCalendar.mjs +23 -25
  14. package/DateField/DateField.d.mts +1 -1
  15. package/DateField/DateField.d.ts +1 -1
  16. package/DateField/DateField.js +22 -28
  17. package/DateField/DateField.mjs +22 -28
  18. package/DateField/DateField.types.d.mts +3 -3
  19. package/DateField/DateField.types.d.ts +3 -3
  20. package/DateField/useDateField.d.mts +1 -1
  21. package/DateField/useDateField.d.ts +1 -1
  22. package/DateField/useDateField.js +1 -1
  23. package/DateField/useDateField.mjs +1 -1
  24. package/DatePicker/DatePicker.d.mts +1 -1
  25. package/DatePicker/DatePicker.d.ts +1 -1
  26. package/DatePicker/DatePicker.js +1 -5
  27. package/DatePicker/DatePicker.mjs +1 -5
  28. package/DatePicker/DatePicker.types.d.mts +3 -3
  29. package/DatePicker/DatePicker.types.d.ts +3 -3
  30. package/DateTimeField/DateTimeField.d.mts +1 -1
  31. package/DateTimeField/DateTimeField.d.ts +1 -1
  32. package/DateTimeField/DateTimeField.js +22 -28
  33. package/DateTimeField/DateTimeField.mjs +22 -28
  34. package/DateTimeField/DateTimeField.types.d.mts +2 -2
  35. package/DateTimeField/DateTimeField.types.d.ts +2 -2
  36. package/DateTimeField/useDateTimeField.d.mts +1 -1
  37. package/DateTimeField/useDateTimeField.d.ts +1 -1
  38. package/DateTimeField/useDateTimeField.js +1 -1
  39. package/DateTimeField/useDateTimeField.mjs +1 -1
  40. package/DateTimePicker/DateTimePicker.d.mts +1 -1
  41. package/DateTimePicker/DateTimePicker.d.ts +1 -1
  42. package/DateTimePicker/DateTimePicker.js +1 -5
  43. package/DateTimePicker/DateTimePicker.mjs +1 -5
  44. package/DateTimePicker/DateTimePicker.types.d.mts +3 -3
  45. package/DateTimePicker/DateTimePicker.types.d.ts +3 -3
  46. package/DesktopDatePicker/DesktopDatePicker.d.mts +1 -1
  47. package/DesktopDatePicker/DesktopDatePicker.d.ts +1 -1
  48. package/DesktopDatePicker/DesktopDatePicker.js +1 -5
  49. package/DesktopDatePicker/DesktopDatePicker.mjs +1 -5
  50. package/DesktopDatePicker/DesktopDatePicker.types.d.mts +3 -3
  51. package/DesktopDatePicker/DesktopDatePicker.types.d.ts +3 -3
  52. package/DesktopDateTimePicker/DesktopDateTimePicker.d.mts +1 -1
  53. package/DesktopDateTimePicker/DesktopDateTimePicker.d.ts +1 -1
  54. package/DesktopDateTimePicker/DesktopDateTimePicker.js +1 -5
  55. package/DesktopDateTimePicker/DesktopDateTimePicker.mjs +1 -5
  56. package/DesktopDateTimePicker/DesktopDateTimePicker.types.d.mts +3 -3
  57. package/DesktopDateTimePicker/DesktopDateTimePicker.types.d.ts +3 -3
  58. package/DesktopTimePicker/DesktopTimePicker.d.mts +1 -1
  59. package/DesktopTimePicker/DesktopTimePicker.d.ts +1 -1
  60. package/DesktopTimePicker/DesktopTimePicker.js +0 -4
  61. package/DesktopTimePicker/DesktopTimePicker.mjs +0 -4
  62. package/DesktopTimePicker/DesktopTimePicker.types.d.mts +3 -3
  63. package/DesktopTimePicker/DesktopTimePicker.types.d.ts +3 -3
  64. package/DigitalClock/DigitalClock.d.mts +1 -1
  65. package/DigitalClock/DigitalClock.d.ts +1 -1
  66. package/DigitalClock/DigitalClock.js +2 -2
  67. package/DigitalClock/DigitalClock.mjs +3 -3
  68. package/LocalizationProvider/LocalizationProvider.d.mts +0 -6
  69. package/LocalizationProvider/LocalizationProvider.d.ts +0 -6
  70. package/LocalizationProvider/LocalizationProvider.js +1 -10
  71. package/LocalizationProvider/LocalizationProvider.mjs +0 -9
  72. package/LocalizationProvider/index.d.mts +1 -1
  73. package/LocalizationProvider/index.d.ts +1 -1
  74. package/LocalizationProvider/index.js +0 -6
  75. package/LocalizationProvider/index.mjs +1 -1
  76. package/MobileDatePicker/MobileDatePicker.d.mts +1 -1
  77. package/MobileDatePicker/MobileDatePicker.d.ts +1 -1
  78. package/MobileDatePicker/MobileDatePicker.js +1 -5
  79. package/MobileDatePicker/MobileDatePicker.mjs +1 -5
  80. package/MobileDatePicker/MobileDatePicker.types.d.mts +3 -3
  81. package/MobileDatePicker/MobileDatePicker.types.d.ts +3 -3
  82. package/MobileDateTimePicker/MobileDateTimePicker.d.mts +1 -1
  83. package/MobileDateTimePicker/MobileDateTimePicker.d.ts +1 -1
  84. package/MobileDateTimePicker/MobileDateTimePicker.js +1 -5
  85. package/MobileDateTimePicker/MobileDateTimePicker.mjs +1 -5
  86. package/MobileDateTimePicker/MobileDateTimePicker.types.d.mts +3 -3
  87. package/MobileDateTimePicker/MobileDateTimePicker.types.d.ts +3 -3
  88. package/MobileTimePicker/MobileTimePicker.d.mts +1 -1
  89. package/MobileTimePicker/MobileTimePicker.d.ts +1 -1
  90. package/MobileTimePicker/MobileTimePicker.js +0 -4
  91. package/MobileTimePicker/MobileTimePicker.mjs +0 -4
  92. package/MobileTimePicker/MobileTimePicker.types.d.mts +3 -3
  93. package/MobileTimePicker/MobileTimePicker.types.d.ts +3 -3
  94. package/MonthCalendar/MonthCalendarButton.js +2 -2
  95. package/MonthCalendar/MonthCalendarButton.mjs +3 -3
  96. package/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +2 -2
  97. package/MultiSectionDigitalClock/MultiSectionDigitalClockSection.mjs +3 -3
  98. package/PickerDay/PickerDay.d.mts +14 -0
  99. package/PickerDay/PickerDay.d.ts +14 -0
  100. package/{PickerDay2/PickerDay2.js → PickerDay/PickerDay.js} +110 -45
  101. package/{PickerDay2/PickerDay2.mjs → PickerDay/PickerDay.mjs} +110 -45
  102. package/PickerDay/PickerDay.types.d.mts +137 -0
  103. package/PickerDay/PickerDay.types.d.ts +137 -0
  104. package/PickerDay/index.d.mts +4 -0
  105. package/PickerDay/index.d.ts +4 -0
  106. package/PickerDay/index.js +25 -0
  107. package/PickerDay/index.mjs +2 -0
  108. package/{PickerDay2/pickerDay2Classes.d.mts → PickerDay/pickerDayClasses.d.mts} +4 -4
  109. package/{PickerDay2/pickerDay2Classes.d.ts → PickerDay/pickerDayClasses.d.ts} +4 -4
  110. package/PickerDay/pickerDayClasses.js +14 -0
  111. package/PickerDay/pickerDayClasses.mjs +6 -0
  112. package/PickersTextField/PickersFilledInput/PickersFilledInput.js +37 -16
  113. package/PickersTextField/PickersFilledInput/PickersFilledInput.mjs +37 -16
  114. package/PickersTextField/PickersInput/PickersInput.js +35 -14
  115. package/PickersTextField/PickersInput/PickersInput.mjs +35 -14
  116. package/PickersTextField/PickersInputBase/PickersInputBase.js +38 -8
  117. package/PickersTextField/PickersInputBase/PickersInputBase.mjs +38 -8
  118. package/PickersTextField/PickersInputBase/PickersInputBase.types.d.mts +56 -13
  119. package/PickersTextField/PickersInputBase/PickersInputBase.types.d.ts +56 -13
  120. package/PickersTextField/PickersOutlinedInput/Outline.js +1 -1
  121. package/PickersTextField/PickersOutlinedInput/Outline.mjs +1 -1
  122. package/PickersTextField/PickersOutlinedInput/PickersOutlinedInput.js +33 -11
  123. package/PickersTextField/PickersOutlinedInput/PickersOutlinedInput.mjs +33 -11
  124. package/PickersTextField/PickersTextField.js +92 -39
  125. package/PickersTextField/PickersTextField.mjs +92 -39
  126. package/PickersTextField/PickersTextField.types.d.mts +56 -28
  127. package/PickersTextField/PickersTextField.types.d.ts +56 -28
  128. package/PickersTextField/index.d.mts +1 -1
  129. package/PickersTextField/index.d.ts +1 -1
  130. package/StaticDatePicker/StaticDatePicker.js +1 -1
  131. package/StaticDatePicker/StaticDatePicker.mjs +1 -1
  132. package/StaticDateTimePicker/StaticDateTimePicker.js +1 -1
  133. package/StaticDateTimePicker/StaticDateTimePicker.mjs +1 -1
  134. package/TimeField/TimeField.d.mts +1 -1
  135. package/TimeField/TimeField.d.ts +1 -1
  136. package/TimeField/TimeField.js +23 -29
  137. package/TimeField/TimeField.mjs +23 -29
  138. package/TimeField/TimeField.types.d.mts +2 -2
  139. package/TimeField/TimeField.types.d.ts +2 -2
  140. package/TimeField/useTimeField.d.mts +1 -1
  141. package/TimeField/useTimeField.d.ts +1 -1
  142. package/TimePicker/TimePicker.d.mts +1 -1
  143. package/TimePicker/TimePicker.d.ts +1 -1
  144. package/TimePicker/TimePicker.js +0 -4
  145. package/TimePicker/TimePicker.mjs +0 -4
  146. package/TimePicker/TimePicker.types.d.mts +3 -3
  147. package/TimePicker/TimePicker.types.d.ts +3 -3
  148. package/YearCalendar/YearCalendarButton.js +2 -2
  149. package/YearCalendar/YearCalendarButton.mjs +3 -3
  150. package/hooks/useParsedFormat.js +5 -7
  151. package/hooks/useParsedFormat.mjs +5 -7
  152. package/hooks/useSplitFieldProps.d.mts +1 -1
  153. package/hooks/useSplitFieldProps.d.ts +1 -1
  154. package/hooks/useSplitFieldProps.js +1 -1
  155. package/hooks/useSplitFieldProps.mjs +1 -1
  156. package/index.d.mts +1 -2
  157. package/index.d.ts +1 -2
  158. package/index.js +2 -14
  159. package/index.mjs +2 -3
  160. package/internals/components/PickerFieldUI.d.mts +11 -17
  161. package/internals/components/PickerFieldUI.d.ts +11 -17
  162. package/internals/components/PickerFieldUI.js +65 -114
  163. package/internals/components/PickerFieldUI.mjs +65 -114
  164. package/internals/components/PickerPopper/PickerPopper.js +3 -0
  165. package/internals/components/PickerPopper/PickerPopper.mjs +3 -0
  166. package/internals/components/PickersToolbar.js +3 -1
  167. package/internals/components/PickersToolbar.mjs +3 -1
  168. package/internals/demo/DemoContainer.js +6 -8
  169. package/internals/demo/DemoContainer.mjs +6 -8
  170. package/internals/hooks/PickerDay.types.d.mts +12 -0
  171. package/internals/hooks/PickerDay.types.d.ts +12 -0
  172. package/internals/hooks/useDesktopPicker/useDesktopPicker.d.mts +2 -2
  173. package/internals/hooks/useDesktopPicker/useDesktopPicker.d.ts +2 -2
  174. package/internals/hooks/useDesktopPicker/useDesktopPicker.types.d.mts +6 -6
  175. package/internals/hooks/useDesktopPicker/useDesktopPicker.types.d.ts +6 -6
  176. package/internals/hooks/useField/buildSectionsFromFormat.d.mts +0 -1
  177. package/internals/hooks/useField/buildSectionsFromFormat.d.ts +0 -1
  178. package/internals/hooks/useField/buildSectionsFromFormat.js +1 -1
  179. package/internals/hooks/useField/buildSectionsFromFormat.mjs +1 -1
  180. package/internals/hooks/useField/index.d.mts +1 -1
  181. package/internals/hooks/useField/index.d.ts +1 -1
  182. package/internals/hooks/useField/index.js +2 -8
  183. package/internals/hooks/useField/index.mjs +1 -1
  184. package/internals/hooks/useField/useField.d.mts +2 -2
  185. package/internals/hooks/useField/useField.d.ts +2 -2
  186. package/internals/hooks/useField/useField.js +265 -8
  187. package/internals/hooks/useField/useField.mjs +264 -8
  188. package/internals/hooks/useField/useField.types.d.mts +11 -50
  189. package/internals/hooks/useField/useField.types.d.ts +11 -50
  190. package/internals/hooks/useField/useField.utils.d.mts +2 -3
  191. package/internals/hooks/useField/useField.utils.d.ts +2 -3
  192. package/internals/hooks/useField/useField.utils.js +8 -65
  193. package/internals/hooks/useField/useField.utils.mjs +6 -62
  194. package/internals/hooks/useField/useFieldHiddenInputProps.d.mts +2 -4
  195. package/internals/hooks/useField/useFieldHiddenInputProps.d.ts +2 -4
  196. package/internals/hooks/useField/useFieldHiddenInputProps.js +1 -3
  197. package/internals/hooks/useField/useFieldHiddenInputProps.mjs +1 -3
  198. package/internals/hooks/useField/useFieldInternalPropsWithDefaults.js +0 -1
  199. package/internals/hooks/useField/useFieldInternalPropsWithDefaults.mjs +0 -1
  200. package/internals/hooks/useField/useFieldRootProps.d.mts +5 -5
  201. package/internals/hooks/useField/useFieldRootProps.d.ts +5 -5
  202. package/internals/hooks/useField/useFieldRootProps.js +183 -11
  203. package/internals/hooks/useField/useFieldRootProps.mjs +183 -11
  204. package/internals/hooks/useField/useFieldSectionContainerProps.d.mts +3 -5
  205. package/internals/hooks/useField/useFieldSectionContainerProps.d.ts +3 -5
  206. package/internals/hooks/useField/useFieldSectionContainerProps.js +2 -4
  207. package/internals/hooks/useField/useFieldSectionContainerProps.mjs +2 -4
  208. package/internals/hooks/useField/useFieldSectionContentProps.d.mts +6 -7
  209. package/internals/hooks/useField/useFieldSectionContentProps.d.ts +6 -7
  210. package/internals/hooks/useField/useFieldSectionContentProps.js +2 -4
  211. package/internals/hooks/useField/useFieldSectionContentProps.mjs +2 -4
  212. package/internals/hooks/useField/useFieldState.d.mts +4 -4
  213. package/internals/hooks/useField/useFieldState.d.ts +4 -4
  214. package/internals/hooks/useField/useFieldState.js +3 -6
  215. package/internals/hooks/useField/useFieldState.mjs +3 -6
  216. package/internals/hooks/useMobilePicker/useMobilePicker.d.mts +2 -2
  217. package/internals/hooks/useMobilePicker/useMobilePicker.d.ts +2 -2
  218. package/internals/hooks/useMobilePicker/useMobilePicker.types.d.mts +6 -6
  219. package/internals/hooks/useMobilePicker/useMobilePicker.types.d.ts +6 -6
  220. package/internals/hooks/useNullableFieldPrivateContext.d.mts +1 -1
  221. package/internals/hooks/useNullableFieldPrivateContext.d.ts +1 -1
  222. package/internals/hooks/usePicker/usePicker.js +1 -3
  223. package/internals/hooks/usePicker/usePicker.mjs +1 -3
  224. package/{PickersDay → internals/hooks}/usePickerDayOwnerState.d.mts +2 -3
  225. package/{PickersDay → internals/hooks}/usePickerDayOwnerState.d.ts +2 -3
  226. package/{PickersDay → internals/hooks}/usePickerDayOwnerState.js +3 -5
  227. package/{PickersDay → internals/hooks}/usePickerDayOwnerState.mjs +3 -5
  228. package/internals/index.d.mts +4 -4
  229. package/internals/index.d.ts +4 -4
  230. package/internals/index.js +9 -9
  231. package/internals/index.mjs +3 -3
  232. package/internals/models/manager.d.mts +3 -5
  233. package/internals/models/manager.d.ts +3 -5
  234. package/internals/utils/valueManagers.js +1 -2
  235. package/internals/utils/valueManagers.mjs +2 -3
  236. package/managers/index.d.mts +2 -2
  237. package/managers/index.d.ts +2 -2
  238. package/managers/useDateManager.d.mts +3 -6
  239. package/managers/useDateManager.d.ts +3 -6
  240. package/managers/useDateManager.js +2 -6
  241. package/managers/useDateManager.mjs +2 -6
  242. package/managers/useDateTimeManager.d.mts +3 -6
  243. package/managers/useDateTimeManager.d.ts +3 -6
  244. package/managers/useDateTimeManager.js +2 -6
  245. package/managers/useDateTimeManager.mjs +2 -6
  246. package/managers/useTimeManager.d.mts +4 -6
  247. package/managers/useTimeManager.d.ts +4 -6
  248. package/managers/useTimeManager.js +1 -3
  249. package/managers/useTimeManager.mjs +1 -3
  250. package/models/fields.d.mts +3 -4
  251. package/models/fields.d.ts +3 -4
  252. package/models/manager.d.mts +2 -8
  253. package/models/manager.d.ts +2 -8
  254. package/package.json +55 -69
  255. package/themeAugmentation/components.d.mts +4 -8
  256. package/themeAugmentation/components.d.ts +4 -8
  257. package/themeAugmentation/overrides.d.mts +2 -4
  258. package/themeAugmentation/overrides.d.ts +2 -4
  259. package/themeAugmentation/props.d.mts +5 -7
  260. package/themeAugmentation/props.d.ts +5 -7
  261. package/PickerDay2/PickerDay2.d.mts +0 -7
  262. package/PickerDay2/PickerDay2.d.ts +0 -7
  263. package/PickerDay2/PickerDay2.types.d.mts +0 -18
  264. package/PickerDay2/PickerDay2.types.d.ts +0 -18
  265. package/PickerDay2/index.d.mts +0 -4
  266. package/PickerDay2/index.d.ts +0 -4
  267. package/PickerDay2/index.js +0 -25
  268. package/PickerDay2/index.mjs +0 -2
  269. package/PickerDay2/pickerDay2Classes.js +0 -14
  270. package/PickerDay2/pickerDay2Classes.mjs +0 -6
  271. package/PickersDay/PickersDay.d.mts +0 -15
  272. package/PickersDay/PickersDay.d.ts +0 -15
  273. package/PickersDay/PickersDay.js +0 -384
  274. package/PickersDay/PickersDay.mjs +0 -377
  275. package/PickersDay/PickersDay.types.d.mts +0 -114
  276. package/PickersDay/PickersDay.types.d.ts +0 -114
  277. package/PickersDay/index.d.mts +0 -4
  278. package/PickersDay/index.d.ts +0 -4
  279. package/PickersDay/index.js +0 -25
  280. package/PickersDay/index.mjs +0 -2
  281. package/PickersDay/pickersDayClasses.d.mts +0 -19
  282. package/PickersDay/pickersDayClasses.d.ts +0 -19
  283. package/PickersDay/pickersDayClasses.js +0 -14
  284. package/PickersDay/pickersDayClasses.mjs +0 -6
  285. package/internals/hooks/useField/useFieldRootHandleKeyDown.d.mts +0 -16
  286. package/internals/hooks/useField/useFieldRootHandleKeyDown.d.ts +0 -16
  287. package/internals/hooks/useField/useFieldRootHandleKeyDown.js +0 -211
  288. package/internals/hooks/useField/useFieldRootHandleKeyDown.mjs +0 -205
  289. package/internals/hooks/useField/useFieldV6TextField.d.mts +0 -26
  290. package/internals/hooks/useField/useFieldV6TextField.d.ts +0 -26
  291. package/internals/hooks/useField/useFieldV6TextField.js +0 -422
  292. package/internals/hooks/useField/useFieldV6TextField.mjs +0 -413
  293. package/internals/hooks/useField/useFieldV7TextField.d.mts +0 -3
  294. package/internals/hooks/useField/useFieldV7TextField.d.ts +0 -3
  295. package/internals/hooks/useField/useFieldV7TextField.js +0 -272
  296. package/internals/hooks/useField/useFieldV7TextField.mjs +0 -264
  297. /package/{PickerDay2/PickerDay2.types.js → PickerDay/PickerDay.types.js} +0 -0
  298. /package/{PickerDay2/PickerDay2.types.mjs → PickerDay/PickerDay.types.mjs} +0 -0
  299. /package/{PickersDay/PickersDay.types.js → internals/hooks/PickerDay.types.js} +0 -0
  300. /package/{PickersDay/PickersDay.types.mjs → internals/hooks/PickerDay.types.mjs} +0 -0
@@ -11,10 +11,11 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
11
11
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
12
12
  var React = _interopRequireWildcard(require("react"));
13
13
  var _propTypes = _interopRequireDefault(require("prop-types"));
14
- var _clsx = _interopRequireDefault(require("clsx"));
14
+ var _warning = require("@mui/x-internals/warning");
15
15
  var _styles = require("@mui/material/styles");
16
16
  var _refType = _interopRequireDefault(require("@mui/utils/refType"));
17
17
  var _useForkRef = _interopRequireDefault(require("@mui/utils/useForkRef"));
18
+ var _useSlotProps = _interopRequireDefault(require("@mui/utils/useSlotProps"));
18
19
  var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
19
20
  var _useId = _interopRequireDefault(require("@mui/utils/useId"));
20
21
  var _InputLabel = _interopRequireDefault(require("@mui/material/InputLabel"));
@@ -27,7 +28,7 @@ var _PickersInput = require("./PickersInput");
27
28
  var _useFieldOwnerState = require("../internals/hooks/useFieldOwnerState");
28
29
  var _usePickerTextFieldOwnerState = require("./usePickerTextFieldOwnerState");
29
30
  var _jsxRuntime = require("react/jsx-runtime");
30
- const _excluded = ["onFocus", "onBlur", "className", "classes", "color", "disabled", "error", "variant", "required", "hiddenLabel", "InputProps", "inputProps", "inputRef", "sectionListRef", "elements", "areAllSectionsEmpty", "onClick", "onKeyDown", "onKeyUp", "onPaste", "onInput", "endAdornment", "startAdornment", "tabIndex", "contentEditable", "focused", "value", "onChange", "fullWidth", "id", "name", "helperText", "FormHelperTextProps", "label", "InputLabelProps", "data-active-range-position"];
31
+ const _excluded = ["onFocus", "onBlur", "className", "classes", "color", "disabled", "error", "variant", "required", "hiddenLabel", "inputRef", "sectionListRef", "elements", "areAllSectionsEmpty", "onClick", "onKeyDown", "onKeyUp", "onPaste", "onInput", "endAdornment", "startAdornment", "tabIndex", "contentEditable", "focused", "value", "onChange", "fullWidth", "id", "name", "helperText", "label", "slots", "slotProps", "data-active-range-position"];
31
32
  const VARIANT_COMPONENT = {
32
33
  standard: _PickersInput.PickersInput,
33
34
  filled: _PickersFilledInput.PickersFilledInput,
@@ -55,6 +56,14 @@ const PickersTextField = exports.PickersTextField = /*#__PURE__*/React.forwardRe
55
56
  props: inProps,
56
57
  name: 'MuiPickersTextField'
57
58
  });
59
+
60
+ // TODO v10: remove
61
+ if (process.env.NODE_ENV !== 'production') {
62
+ const legacyProps = inProps;
63
+ if (legacyProps.InputProps || legacyProps.inputProps || legacyProps.InputLabelProps || legacyProps.FormHelperTextProps) {
64
+ (0, _warning.warnOnce)(['MUI X: `PickersTextField` no longer supports the `InputProps`, `inputProps`, `InputLabelProps` and `FormHelperTextProps` props.', 'They are silently dropped, which can hide configuration bugs in JavaScript codebases that do not benefit from TypeScript checks.', 'Use `slotProps.input`, `slotProps.htmlInput`, `slotProps.inputLabel` and `slotProps.formHelperText` instead.', 'You can run the `migrate-text-field-props` codemod to migrate automatically.']);
65
+ }
66
+ }
58
67
  const {
59
68
  // Props used by FormControl
60
69
  onFocus,
@@ -68,8 +77,6 @@ const PickersTextField = exports.PickersTextField = /*#__PURE__*/React.forwardRe
68
77
  required = false,
69
78
  hiddenLabel = false,
70
79
  // Props used by PickersInput
71
- InputProps,
72
- inputProps,
73
80
  inputRef,
74
81
  sectionListRef,
75
82
  elements,
@@ -91,10 +98,11 @@ const PickersTextField = exports.PickersTextField = /*#__PURE__*/React.forwardRe
91
98
  name,
92
99
  // Props used by FormHelperText
93
100
  helperText,
94
- FormHelperTextProps,
95
101
  // Props used by InputLabel
96
102
  label,
97
- InputLabelProps,
103
+ // Slot system
104
+ slots,
105
+ slotProps,
98
106
  // @ts-ignore
99
107
  'data-active-range-position': dataActiveRangePosition
100
108
  } = props,
@@ -104,10 +112,12 @@ const PickersTextField = exports.PickersTextField = /*#__PURE__*/React.forwardRe
104
112
  const id = (0, _useId.default)(idProp);
105
113
  const helperTextId = helperText && id ? `${id}-helper-text` : undefined;
106
114
  const inputLabelId = label && id ? `${id}-label` : undefined;
115
+ const inputSlotProps = slotProps?.input;
116
+ const inputLabelSlotProps = slotProps?.inputLabel;
107
117
  const fieldOwnerState = (0, _useFieldOwnerState.useFieldOwnerState)({
108
118
  disabled: props.disabled,
109
119
  required: props.required,
110
- readOnly: InputProps?.readOnly
120
+ readOnly: inputSlotProps?.readOnly
111
121
  });
112
122
  const ownerState = React.useMemo(() => (0, _extends2.default)({}, fieldOwnerState, {
113
123
  isFieldValueEmpty: areAllSectionsEmpty,
@@ -116,40 +126,51 @@ const PickersTextField = exports.PickersTextField = /*#__PURE__*/React.forwardRe
116
126
  inputSize: props.size ?? 'medium',
117
127
  inputColor: color ?? 'primary',
118
128
  isInputInFullWidth: fullWidth ?? false,
119
- hasStartAdornment: Boolean(startAdornment ?? InputProps?.startAdornment),
120
- hasEndAdornment: Boolean(endAdornment ?? InputProps?.endAdornment),
129
+ hasStartAdornment: Boolean(startAdornment ?? inputSlotProps?.startAdornment),
130
+ hasEndAdornment: Boolean(endAdornment ?? inputSlotProps?.endAdornment),
121
131
  inputHasLabel: !!label,
122
- isLabelShrunk: Boolean(InputLabelProps?.shrink)
123
- }), [fieldOwnerState, areAllSectionsEmpty, focused, error, props.size, color, fullWidth, startAdornment, endAdornment, InputProps?.startAdornment, InputProps?.endAdornment, label, InputLabelProps?.shrink]);
132
+ isLabelShrunk: Boolean(inputLabelSlotProps?.shrink)
133
+ }), [fieldOwnerState, areAllSectionsEmpty, focused, error, props.size, color, fullWidth, startAdornment, endAdornment, inputSlotProps?.startAdornment, inputSlotProps?.endAdornment, label, inputLabelSlotProps?.shrink]);
124
134
  const classes = useUtilityClasses(classesProp, ownerState);
125
- const PickersInputComponent = VARIANT_COMPONENT[variant];
135
+ const PickersInputComponent = slots?.input ?? VARIANT_COMPONENT[variant];
136
+ const RootComponent = slots?.root ?? PickersTextFieldRoot;
137
+ const InputLabelComponent = slots?.inputLabel ?? _InputLabel.default;
138
+ const FormHelperTextComponent = slots?.formHelperText ?? _FormHelperText.default;
126
139
  const inputAdditionalProps = {};
127
140
  if (variant === 'outlined') {
128
- if (InputLabelProps && typeof InputLabelProps.shrink !== 'undefined') {
129
- inputAdditionalProps.notched = InputLabelProps.shrink;
141
+ if (inputLabelSlotProps && typeof inputLabelSlotProps.shrink !== 'undefined') {
142
+ inputAdditionalProps.notched = inputLabelSlotProps.shrink;
130
143
  }
131
144
  inputAdditionalProps.label = label;
132
145
  } else if (variant === 'filled') {
133
146
  inputAdditionalProps.hiddenLabel = hiddenLabel;
134
147
  }
148
+ const rootSlotProps = (0, _useSlotProps.default)({
149
+ elementType: RootComponent,
150
+ externalSlotProps: slotProps?.root,
151
+ externalForwardedProps: (0, _extends2.default)({}, other, {
152
+ className
153
+ }),
154
+ additionalProps: {
155
+ ref: handleRootRef,
156
+ focused,
157
+ disabled,
158
+ variant,
159
+ error,
160
+ color,
161
+ fullWidth,
162
+ required
163
+ },
164
+ className: classes.root,
165
+ ownerState
166
+ });
135
167
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_usePickerTextFieldOwnerState.PickerTextFieldOwnerStateContext.Provider, {
136
168
  value: ownerState,
137
- children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(PickersTextFieldRoot, (0, _extends2.default)({
138
- className: (0, _clsx.default)(classes.root, className),
139
- ref: handleRootRef,
140
- focused: focused,
141
- disabled: disabled,
142
- variant: variant,
143
- error: error,
144
- color: color,
145
- fullWidth: fullWidth,
146
- required: required,
147
- ownerState: ownerState
148
- }, other, {
149
- children: [label != null && label !== '' && /*#__PURE__*/(0, _jsxRuntime.jsx)(_InputLabel.default, (0, _extends2.default)({
169
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(RootComponent, (0, _extends2.default)({}, rootSlotProps, {
170
+ children: [label != null && label !== '' && /*#__PURE__*/(0, _jsxRuntime.jsx)(InputLabelComponent, (0, _extends2.default)({
150
171
  htmlFor: id,
151
172
  id: inputLabelId
152
- }, InputLabelProps, {
173
+ }, inputLabelSlotProps, {
153
174
  children: label
154
175
  })), /*#__PURE__*/(0, _jsxRuntime.jsx)(PickersInputComponent, (0, _extends2.default)({
155
176
  elements: elements,
@@ -169,7 +190,6 @@ const PickersTextField = exports.PickersTextField = /*#__PURE__*/React.forwardRe
169
190
  onChange: onChange,
170
191
  id: id,
171
192
  fullWidth: fullWidth,
172
- inputProps: inputProps,
173
193
  inputRef: inputRef,
174
194
  sectionListRef: sectionListRef,
175
195
  label: label,
@@ -179,9 +199,16 @@ const PickersTextField = exports.PickersTextField = /*#__PURE__*/React.forwardRe
179
199
  "aria-describedby": helperTextId,
180
200
  "aria-live": helperTextId ? 'polite' : undefined,
181
201
  "data-active-range-position": dataActiveRangePosition
182
- }, inputAdditionalProps, InputProps)), helperText && /*#__PURE__*/(0, _jsxRuntime.jsx)(_FormHelperText.default, (0, _extends2.default)({
202
+ }, inputAdditionalProps, inputSlotProps, {
203
+ slots: (0, _extends2.default)({}, inputSlotProps?.slots, slots?.htmlInput !== undefined && {
204
+ htmlInput: slots.htmlInput
205
+ }),
206
+ slotProps: (0, _extends2.default)({}, inputSlotProps?.slotProps, slotProps?.htmlInput !== undefined && {
207
+ htmlInput: slotProps.htmlInput
208
+ })
209
+ })), helperText && /*#__PURE__*/(0, _jsxRuntime.jsx)(FormHelperTextComponent, (0, _extends2.default)({
183
210
  id: helperTextId
184
- }, FormHelperTextProps, {
211
+ }, slotProps?.formHelperText, {
185
212
  children: helperText
186
213
  }))]
187
214
  }))
@@ -224,13 +251,23 @@ process.env.NODE_ENV !== "production" ? PickersTextField.propTypes = {
224
251
  container: _propTypes.default.object.isRequired,
225
252
  content: _propTypes.default.object.isRequired
226
253
  })).isRequired,
254
+ /**
255
+ * End `InputAdornment` for this component.
256
+ */
227
257
  endAdornment: _propTypes.default.node,
258
+ /**
259
+ * If `true`, the `input` will indicate an error.
260
+ * @default false
261
+ */
228
262
  error: _propTypes.default.bool.isRequired,
229
263
  /**
230
264
  * If `true`, the component is displayed in focused state.
231
265
  */
232
266
  focused: _propTypes.default.bool,
233
- FormHelperTextProps: _propTypes.default.object,
267
+ /**
268
+ * If `true`, the input will take up the full width of its container.
269
+ * @default false
270
+ */
234
271
  fullWidth: _propTypes.default.bool,
235
272
  /**
236
273
  * The helper text content.
@@ -243,23 +280,26 @@ process.env.NODE_ENV !== "production" ? PickersTextField.propTypes = {
243
280
  * @default false
244
281
  */
245
282
  hiddenLabel: _propTypes.default.bool,
283
+ /**
284
+ * The id of the `input` element.
285
+ */
246
286
  id: _propTypes.default.string,
247
- InputLabelProps: _propTypes.default.object,
248
- inputProps: _propTypes.default.object,
249
287
  /**
250
- * Props applied to the Input element.
251
- * It will be a [`FilledInput`](/material-ui/api/filled-input/),
252
- * [`OutlinedInput`](/material-ui/api/outlined-input/) or [`Input`](/material-ui/api/input/)
253
- * component depending on the `variant` prop value.
288
+ * Pass a ref to the `input` element.
254
289
  */
255
- InputProps: _propTypes.default.object,
256
290
  inputRef: _refType.default,
291
+ /**
292
+ * The label content.
293
+ */
257
294
  label: _propTypes.default.node,
258
295
  /**
259
296
  * If `dense` or `normal`, will adjust vertical spacing of this and contained components.
260
297
  * @default 'none'
261
298
  */
262
299
  margin: _propTypes.default.oneOf(['dense', 'none', 'normal']),
300
+ /**
301
+ * Name attribute of the `input` element.
302
+ */
263
303
  name: _propTypes.default.string,
264
304
  onBlur: _propTypes.default.func.isRequired,
265
305
  onChange: _propTypes.default.func.isRequired,
@@ -287,6 +327,19 @@ process.env.NODE_ENV !== "production" ? PickersTextField.propTypes = {
287
327
  * @default 'medium'
288
328
  */
289
329
  size: _propTypes.default.oneOf(['medium', 'small']),
330
+ /**
331
+ * The props used for each component slot.
332
+ * @default {}
333
+ */
334
+ slotProps: _propTypes.default.object,
335
+ /**
336
+ * The components used for each slot inside.
337
+ * @default {}
338
+ */
339
+ slots: _propTypes.default.object,
340
+ /**
341
+ * Start `InputAdornment` for this component.
342
+ */
290
343
  startAdornment: _propTypes.default.node,
291
344
  style: _propTypes.default.object,
292
345
  /**
@@ -2,13 +2,14 @@
2
2
 
3
3
  import _extends from "@babel/runtime/helpers/esm/extends";
4
4
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
5
- const _excluded = ["onFocus", "onBlur", "className", "classes", "color", "disabled", "error", "variant", "required", "hiddenLabel", "InputProps", "inputProps", "inputRef", "sectionListRef", "elements", "areAllSectionsEmpty", "onClick", "onKeyDown", "onKeyUp", "onPaste", "onInput", "endAdornment", "startAdornment", "tabIndex", "contentEditable", "focused", "value", "onChange", "fullWidth", "id", "name", "helperText", "FormHelperTextProps", "label", "InputLabelProps", "data-active-range-position"];
5
+ const _excluded = ["onFocus", "onBlur", "className", "classes", "color", "disabled", "error", "variant", "required", "hiddenLabel", "inputRef", "sectionListRef", "elements", "areAllSectionsEmpty", "onClick", "onKeyDown", "onKeyUp", "onPaste", "onInput", "endAdornment", "startAdornment", "tabIndex", "contentEditable", "focused", "value", "onChange", "fullWidth", "id", "name", "helperText", "label", "slots", "slotProps", "data-active-range-position"];
6
6
  import * as React from 'react';
7
7
  import PropTypes from 'prop-types';
8
- import clsx from 'clsx';
8
+ import { warnOnce } from '@mui/x-internals/warning';
9
9
  import { styled, useThemeProps } from '@mui/material/styles';
10
10
  import refType from '@mui/utils/refType';
11
11
  import useForkRef from '@mui/utils/useForkRef';
12
+ import useSlotProps from '@mui/utils/useSlotProps';
12
13
  import composeClasses from '@mui/utils/composeClasses';
13
14
  import useId from '@mui/utils/useId';
14
15
  import InputLabel from '@mui/material/InputLabel';
@@ -48,6 +49,14 @@ const PickersTextField = /*#__PURE__*/React.forwardRef(function PickersTextField
48
49
  props: inProps,
49
50
  name: 'MuiPickersTextField'
50
51
  });
52
+
53
+ // TODO v10: remove
54
+ if (process.env.NODE_ENV !== 'production') {
55
+ const legacyProps = inProps;
56
+ if (legacyProps.InputProps || legacyProps.inputProps || legacyProps.InputLabelProps || legacyProps.FormHelperTextProps) {
57
+ warnOnce(['MUI X: `PickersTextField` no longer supports the `InputProps`, `inputProps`, `InputLabelProps` and `FormHelperTextProps` props.', 'They are silently dropped, which can hide configuration bugs in JavaScript codebases that do not benefit from TypeScript checks.', 'Use `slotProps.input`, `slotProps.htmlInput`, `slotProps.inputLabel` and `slotProps.formHelperText` instead.', 'You can run the `migrate-text-field-props` codemod to migrate automatically.']);
58
+ }
59
+ }
51
60
  const {
52
61
  // Props used by FormControl
53
62
  onFocus,
@@ -61,8 +70,6 @@ const PickersTextField = /*#__PURE__*/React.forwardRef(function PickersTextField
61
70
  required = false,
62
71
  hiddenLabel = false,
63
72
  // Props used by PickersInput
64
- InputProps,
65
- inputProps,
66
73
  inputRef,
67
74
  sectionListRef,
68
75
  elements,
@@ -84,10 +91,11 @@ const PickersTextField = /*#__PURE__*/React.forwardRef(function PickersTextField
84
91
  name,
85
92
  // Props used by FormHelperText
86
93
  helperText,
87
- FormHelperTextProps,
88
94
  // Props used by InputLabel
89
95
  label,
90
- InputLabelProps,
96
+ // Slot system
97
+ slots,
98
+ slotProps,
91
99
  // @ts-ignore
92
100
  'data-active-range-position': dataActiveRangePosition
93
101
  } = props,
@@ -97,10 +105,12 @@ const PickersTextField = /*#__PURE__*/React.forwardRef(function PickersTextField
97
105
  const id = useId(idProp);
98
106
  const helperTextId = helperText && id ? `${id}-helper-text` : undefined;
99
107
  const inputLabelId = label && id ? `${id}-label` : undefined;
108
+ const inputSlotProps = slotProps?.input;
109
+ const inputLabelSlotProps = slotProps?.inputLabel;
100
110
  const fieldOwnerState = useFieldOwnerState({
101
111
  disabled: props.disabled,
102
112
  required: props.required,
103
- readOnly: InputProps?.readOnly
113
+ readOnly: inputSlotProps?.readOnly
104
114
  });
105
115
  const ownerState = React.useMemo(() => _extends({}, fieldOwnerState, {
106
116
  isFieldValueEmpty: areAllSectionsEmpty,
@@ -109,40 +119,51 @@ const PickersTextField = /*#__PURE__*/React.forwardRef(function PickersTextField
109
119
  inputSize: props.size ?? 'medium',
110
120
  inputColor: color ?? 'primary',
111
121
  isInputInFullWidth: fullWidth ?? false,
112
- hasStartAdornment: Boolean(startAdornment ?? InputProps?.startAdornment),
113
- hasEndAdornment: Boolean(endAdornment ?? InputProps?.endAdornment),
122
+ hasStartAdornment: Boolean(startAdornment ?? inputSlotProps?.startAdornment),
123
+ hasEndAdornment: Boolean(endAdornment ?? inputSlotProps?.endAdornment),
114
124
  inputHasLabel: !!label,
115
- isLabelShrunk: Boolean(InputLabelProps?.shrink)
116
- }), [fieldOwnerState, areAllSectionsEmpty, focused, error, props.size, color, fullWidth, startAdornment, endAdornment, InputProps?.startAdornment, InputProps?.endAdornment, label, InputLabelProps?.shrink]);
125
+ isLabelShrunk: Boolean(inputLabelSlotProps?.shrink)
126
+ }), [fieldOwnerState, areAllSectionsEmpty, focused, error, props.size, color, fullWidth, startAdornment, endAdornment, inputSlotProps?.startAdornment, inputSlotProps?.endAdornment, label, inputLabelSlotProps?.shrink]);
117
127
  const classes = useUtilityClasses(classesProp, ownerState);
118
- const PickersInputComponent = VARIANT_COMPONENT[variant];
128
+ const PickersInputComponent = slots?.input ?? VARIANT_COMPONENT[variant];
129
+ const RootComponent = slots?.root ?? PickersTextFieldRoot;
130
+ const InputLabelComponent = slots?.inputLabel ?? InputLabel;
131
+ const FormHelperTextComponent = slots?.formHelperText ?? FormHelperText;
119
132
  const inputAdditionalProps = {};
120
133
  if (variant === 'outlined') {
121
- if (InputLabelProps && typeof InputLabelProps.shrink !== 'undefined') {
122
- inputAdditionalProps.notched = InputLabelProps.shrink;
134
+ if (inputLabelSlotProps && typeof inputLabelSlotProps.shrink !== 'undefined') {
135
+ inputAdditionalProps.notched = inputLabelSlotProps.shrink;
123
136
  }
124
137
  inputAdditionalProps.label = label;
125
138
  } else if (variant === 'filled') {
126
139
  inputAdditionalProps.hiddenLabel = hiddenLabel;
127
140
  }
141
+ const rootSlotProps = useSlotProps({
142
+ elementType: RootComponent,
143
+ externalSlotProps: slotProps?.root,
144
+ externalForwardedProps: _extends({}, other, {
145
+ className
146
+ }),
147
+ additionalProps: {
148
+ ref: handleRootRef,
149
+ focused,
150
+ disabled,
151
+ variant,
152
+ error,
153
+ color,
154
+ fullWidth,
155
+ required
156
+ },
157
+ className: classes.root,
158
+ ownerState
159
+ });
128
160
  return /*#__PURE__*/_jsx(PickerTextFieldOwnerStateContext.Provider, {
129
161
  value: ownerState,
130
- children: /*#__PURE__*/_jsxs(PickersTextFieldRoot, _extends({
131
- className: clsx(classes.root, className),
132
- ref: handleRootRef,
133
- focused: focused,
134
- disabled: disabled,
135
- variant: variant,
136
- error: error,
137
- color: color,
138
- fullWidth: fullWidth,
139
- required: required,
140
- ownerState: ownerState
141
- }, other, {
142
- children: [label != null && label !== '' && /*#__PURE__*/_jsx(InputLabel, _extends({
162
+ children: /*#__PURE__*/_jsxs(RootComponent, _extends({}, rootSlotProps, {
163
+ children: [label != null && label !== '' && /*#__PURE__*/_jsx(InputLabelComponent, _extends({
143
164
  htmlFor: id,
144
165
  id: inputLabelId
145
- }, InputLabelProps, {
166
+ }, inputLabelSlotProps, {
146
167
  children: label
147
168
  })), /*#__PURE__*/_jsx(PickersInputComponent, _extends({
148
169
  elements: elements,
@@ -162,7 +183,6 @@ const PickersTextField = /*#__PURE__*/React.forwardRef(function PickersTextField
162
183
  onChange: onChange,
163
184
  id: id,
164
185
  fullWidth: fullWidth,
165
- inputProps: inputProps,
166
186
  inputRef: inputRef,
167
187
  sectionListRef: sectionListRef,
168
188
  label: label,
@@ -172,9 +192,16 @@ const PickersTextField = /*#__PURE__*/React.forwardRef(function PickersTextField
172
192
  "aria-describedby": helperTextId,
173
193
  "aria-live": helperTextId ? 'polite' : undefined,
174
194
  "data-active-range-position": dataActiveRangePosition
175
- }, inputAdditionalProps, InputProps)), helperText && /*#__PURE__*/_jsx(FormHelperText, _extends({
195
+ }, inputAdditionalProps, inputSlotProps, {
196
+ slots: _extends({}, inputSlotProps?.slots, slots?.htmlInput !== undefined && {
197
+ htmlInput: slots.htmlInput
198
+ }),
199
+ slotProps: _extends({}, inputSlotProps?.slotProps, slotProps?.htmlInput !== undefined && {
200
+ htmlInput: slotProps.htmlInput
201
+ })
202
+ })), helperText && /*#__PURE__*/_jsx(FormHelperTextComponent, _extends({
176
203
  id: helperTextId
177
- }, FormHelperTextProps, {
204
+ }, slotProps?.formHelperText, {
178
205
  children: helperText
179
206
  }))]
180
207
  }))
@@ -217,13 +244,23 @@ process.env.NODE_ENV !== "production" ? PickersTextField.propTypes = {
217
244
  container: PropTypes.object.isRequired,
218
245
  content: PropTypes.object.isRequired
219
246
  })).isRequired,
247
+ /**
248
+ * End `InputAdornment` for this component.
249
+ */
220
250
  endAdornment: PropTypes.node,
251
+ /**
252
+ * If `true`, the `input` will indicate an error.
253
+ * @default false
254
+ */
221
255
  error: PropTypes.bool.isRequired,
222
256
  /**
223
257
  * If `true`, the component is displayed in focused state.
224
258
  */
225
259
  focused: PropTypes.bool,
226
- FormHelperTextProps: PropTypes.object,
260
+ /**
261
+ * If `true`, the input will take up the full width of its container.
262
+ * @default false
263
+ */
227
264
  fullWidth: PropTypes.bool,
228
265
  /**
229
266
  * The helper text content.
@@ -236,23 +273,26 @@ process.env.NODE_ENV !== "production" ? PickersTextField.propTypes = {
236
273
  * @default false
237
274
  */
238
275
  hiddenLabel: PropTypes.bool,
276
+ /**
277
+ * The id of the `input` element.
278
+ */
239
279
  id: PropTypes.string,
240
- InputLabelProps: PropTypes.object,
241
- inputProps: PropTypes.object,
242
280
  /**
243
- * Props applied to the Input element.
244
- * It will be a [`FilledInput`](/material-ui/api/filled-input/),
245
- * [`OutlinedInput`](/material-ui/api/outlined-input/) or [`Input`](/material-ui/api/input/)
246
- * component depending on the `variant` prop value.
281
+ * Pass a ref to the `input` element.
247
282
  */
248
- InputProps: PropTypes.object,
249
283
  inputRef: refType,
284
+ /**
285
+ * The label content.
286
+ */
250
287
  label: PropTypes.node,
251
288
  /**
252
289
  * If `dense` or `normal`, will adjust vertical spacing of this and contained components.
253
290
  * @default 'none'
254
291
  */
255
292
  margin: PropTypes.oneOf(['dense', 'none', 'normal']),
293
+ /**
294
+ * Name attribute of the `input` element.
295
+ */
256
296
  name: PropTypes.string,
257
297
  onBlur: PropTypes.func.isRequired,
258
298
  onChange: PropTypes.func.isRequired,
@@ -280,6 +320,19 @@ process.env.NODE_ENV !== "production" ? PickersTextField.propTypes = {
280
320
  * @default 'medium'
281
321
  */
282
322
  size: PropTypes.oneOf(['medium', 'small']),
323
+ /**
324
+ * The props used for each component slot.
325
+ * @default {}
326
+ */
327
+ slotProps: PropTypes.object,
328
+ /**
329
+ * The components used for each slot inside.
330
+ * @default {}
331
+ */
332
+ slots: PropTypes.object,
333
+ /**
334
+ * Start `InputAdornment` for this component.
335
+ */
283
336
  startAdornment: PropTypes.node,
284
337
  style: PropTypes.object,
285
338
  /**
@@ -3,65 +3,93 @@ import { FormControlProps } from '@mui/material/FormControl';
3
3
  import { FormHelperTextProps } from '@mui/material/FormHelperText';
4
4
  import { InputLabelProps } from '@mui/material/InputLabel';
5
5
  import { TextFieldVariants } from '@mui/material/TextField';
6
- import { PickersInputPropsUsedByField } from "./PickersInputBase/PickersInputBase.types.mjs";
6
+ import { PickersInputBaseProps, PickersInputPropsUsedByField } from "./PickersInputBase/PickersInputBase.types.mjs";
7
7
  import type { PickersInputProps } from "./PickersInput/index.mjs";
8
8
  import type { PickersOutlinedInputProps } from "./PickersOutlinedInput/index.mjs";
9
9
  import type { PickersFilledInputProps } from "./PickersFilledInput/index.mjs";
10
+ export interface PickersTextFieldSlots {
11
+ /**
12
+ * The component used for the root slot.
13
+ * @default FormControl
14
+ */
15
+ root?: React.ElementType;
16
+ /**
17
+ * The component used for the input slot.
18
+ * Defaults to one of `PickersInput`, `PickersFilledInput`, `PickersOutlinedInput` based on `variant`.
19
+ * @default PickersOutlinedInput
20
+ */
21
+ input?: React.ElementType;
22
+ /**
23
+ * The component used for the input label slot.
24
+ * @default InputLabel
25
+ */
26
+ inputLabel?: React.ElementType;
27
+ /**
28
+ * The component rendered as the underlying hidden `<input>` element.
29
+ * @default PickersInputBaseInput
30
+ */
31
+ htmlInput?: React.ElementType;
32
+ /**
33
+ * The component used for the form helper text slot.
34
+ * @default FormHelperText
35
+ */
36
+ formHelperText?: React.ElementType;
37
+ }
38
+ export interface PickersTextFieldSlotProps<InputPropsType extends PickersInputBaseProps> {
39
+ root?: Partial<FormControlProps>;
40
+ input?: Partial<InputPropsType>;
41
+ inputLabel?: Partial<InputLabelProps>;
42
+ htmlInput?: React.ComponentPropsWithRef<'input'>;
43
+ formHelperText?: Partial<FormHelperTextProps>;
44
+ }
45
+ export interface PickersTextFieldSlotsAndSlotProps<InputPropsType extends PickersInputBaseProps> {
46
+ /**
47
+ * The components used for each slot inside.
48
+ * @default {}
49
+ */
50
+ slots?: PickersTextFieldSlots;
51
+ /**
52
+ * The props used for each component slot.
53
+ * @default {}
54
+ */
55
+ slotProps?: PickersTextFieldSlotProps<InputPropsType>;
56
+ }
10
57
  interface PickersTextFieldPropsUsedByField {
11
58
  onFocus: React.FocusEventHandler<HTMLDivElement>;
12
59
  onBlur: React.FocusEventHandler<HTMLDivElement>;
13
60
  disabled: boolean;
61
+ /**
62
+ * If `true`, the `input` will indicate an error.
63
+ * @default false
64
+ */
14
65
  error: boolean;
15
66
  }
16
- export interface PickersBaseTextFieldProps extends PickersInputPropsUsedByField, PickersTextFieldPropsUsedByField, Omit<FormControlProps, keyof PickersInputPropsUsedByField | keyof PickersTextFieldPropsUsedByField> {
17
- FormHelperTextProps?: Partial<FormHelperTextProps>;
18
- InputLabelProps?: Partial<InputLabelProps>;
67
+ export interface PickersBaseTextFieldProps extends PickersInputPropsUsedByField, PickersTextFieldPropsUsedByField, Omit<FormControlProps, keyof PickersInputPropsUsedByField | keyof PickersTextFieldPropsUsedByField | 'slots' | 'slotProps'> {
19
68
  /**
20
69
  * The helper text content.
21
70
  */
22
71
  helperText?: React.ReactNode;
23
72
  }
24
- export interface PickersStandardTextFieldProps extends PickersBaseTextFieldProps {
73
+ export interface PickersStandardTextFieldProps extends PickersBaseTextFieldProps, PickersTextFieldSlotsAndSlotProps<PickersInputProps> {
25
74
  /**
26
75
  * The variant to use.
27
76
  * @default 'outlined'
28
77
  */
29
78
  variant?: 'standard';
30
- /**
31
- * Props applied to the Input element.
32
- * It will be a [`FilledInput`](/material-ui/api/filled-input/),
33
- * [`OutlinedInput`](/material-ui/api/outlined-input/) or [`Input`](/material-ui/api/input/)
34
- * component depending on the `variant` prop value.
35
- */
36
- InputProps?: Partial<PickersInputProps>;
37
79
  }
38
- export interface PickersOutlinedTextFieldProps extends PickersBaseTextFieldProps {
80
+ export interface PickersOutlinedTextFieldProps extends PickersBaseTextFieldProps, PickersTextFieldSlotsAndSlotProps<PickersOutlinedInputProps> {
39
81
  /**
40
82
  * The variant to use.
41
83
  * @default 'outlined'
42
84
  */
43
85
  variant?: 'outlined';
44
- /**
45
- * Props applied to the Input element.
46
- * It will be a [`FilledInput`](/material-ui/api/filled-input/),
47
- * [`OutlinedInput`](/material-ui/api/outlined-input/) or [`Input`](/material-ui/api/input/)
48
- * component depending on the `variant` prop value.
49
- */
50
- InputProps?: Partial<PickersOutlinedInputProps>;
51
86
  }
52
- export interface PickersFilledTextFieldProps extends PickersBaseTextFieldProps {
87
+ export interface PickersFilledTextFieldProps extends PickersBaseTextFieldProps, PickersTextFieldSlotsAndSlotProps<PickersFilledInputProps> {
53
88
  /**
54
89
  * The variant to use.
55
90
  * @default 'outlined'
56
91
  */
57
92
  variant?: 'filled';
58
- /**
59
- * Props applied to the Input element.
60
- * It will be a [`FilledInput`](/material-ui/api/filled-input/),
61
- * [`OutlinedInput`](/material-ui/api/outlined-input/) or [`Input`](/material-ui/api/input/)
62
- * component depending on the `variant` prop value.
63
- */
64
- InputProps?: Partial<PickersFilledInputProps>;
65
93
  }
66
94
  export type PickersTextFieldProps<Variant extends TextFieldVariants = TextFieldVariants> = Variant extends 'filled' ? PickersFilledTextFieldProps : Variant extends 'standard' ? PickersStandardTextFieldProps : PickersOutlinedTextFieldProps;
67
95
  export {};