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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (237) hide show
  1. package/CHANGELOG.md +171 -0
  2. package/DateCalendar/DateCalendar.js +4 -8
  3. package/DateCalendar/DayCalendar.d.ts +3 -7
  4. package/DateCalendar/DayCalendar.js +18 -10
  5. package/DateCalendar/index.d.ts +0 -1
  6. package/DateField/useDateField.d.ts +1 -1
  7. package/DateField/useDateField.js +2 -16
  8. package/DatePicker/DatePicker.js +1 -0
  9. package/DatePicker/shared.js +3 -9
  10. package/DateTimeField/useDateTimeField.d.ts +1 -1
  11. package/DateTimeField/useDateTimeField.js +2 -16
  12. package/DateTimePicker/DateTimePicker.js +1 -0
  13. package/DateTimePicker/shared.js +3 -13
  14. package/DesktopDatePicker/DesktopDatePicker.js +1 -0
  15. package/DesktopDateTimePicker/DesktopDateTimePicker.js +1 -0
  16. package/DesktopTimePicker/DesktopTimePicker.js +1 -0
  17. package/MobileDatePicker/MobileDatePicker.js +1 -0
  18. package/MobileDateTimePicker/MobileDateTimePicker.js +1 -0
  19. package/MobileTimePicker/MobileTimePicker.js +1 -0
  20. package/MonthCalendar/MonthCalendar.js +4 -9
  21. package/PickersDay/PickersDay.d.ts +1 -72
  22. package/PickersDay/PickersDay.js +30 -28
  23. package/PickersDay/PickersDay.types.d.ts +114 -0
  24. package/PickersDay/PickersDay.types.js +5 -0
  25. package/PickersDay/index.d.ts +1 -1
  26. package/PickersDay/usePickerDayOwnerState.d.ts +14 -0
  27. package/PickersDay/usePickerDayOwnerState.js +40 -0
  28. package/PickersSectionList/PickersSectionList.d.ts +1 -1
  29. package/PickersSectionList/PickersSectionList.types.d.ts +2 -6
  30. package/TimeField/useTimeField.d.ts +1 -1
  31. package/TimeField/useTimeField.js +2 -16
  32. package/TimePicker/TimePicker.js +1 -0
  33. package/TimePicker/shared.js +3 -3
  34. package/YearCalendar/YearCalendar.js +4 -10
  35. package/esm/DateCalendar/DateCalendar.js +6 -10
  36. package/esm/DateCalendar/DayCalendar.d.ts +3 -7
  37. package/esm/DateCalendar/DayCalendar.js +18 -10
  38. package/esm/DateCalendar/index.d.ts +0 -1
  39. package/esm/DateField/useDateField.d.ts +1 -1
  40. package/esm/DateField/useDateField.js +3 -17
  41. package/esm/DatePicker/DatePicker.js +1 -0
  42. package/esm/DatePicker/shared.js +3 -9
  43. package/esm/DateTimeField/useDateTimeField.d.ts +1 -1
  44. package/esm/DateTimeField/useDateTimeField.js +3 -17
  45. package/esm/DateTimePicker/DateTimePicker.js +1 -0
  46. package/esm/DateTimePicker/shared.js +4 -14
  47. package/esm/DesktopDatePicker/DesktopDatePicker.js +1 -0
  48. package/esm/DesktopDateTimePicker/DesktopDateTimePicker.js +1 -0
  49. package/esm/DesktopTimePicker/DesktopTimePicker.js +1 -0
  50. package/esm/MobileDatePicker/MobileDatePicker.js +1 -0
  51. package/esm/MobileDateTimePicker/MobileDateTimePicker.js +1 -0
  52. package/esm/MobileTimePicker/MobileTimePicker.js +1 -0
  53. package/esm/MonthCalendar/MonthCalendar.js +6 -11
  54. package/esm/PickersDay/PickersDay.d.ts +1 -72
  55. package/esm/PickersDay/PickersDay.js +30 -28
  56. package/esm/PickersDay/PickersDay.types.d.ts +114 -0
  57. package/esm/PickersDay/PickersDay.types.js +1 -0
  58. package/esm/PickersDay/index.d.ts +1 -1
  59. package/esm/PickersDay/usePickerDayOwnerState.d.ts +14 -0
  60. package/esm/PickersDay/usePickerDayOwnerState.js +32 -0
  61. package/esm/PickersSectionList/PickersSectionList.d.ts +1 -1
  62. package/esm/PickersSectionList/PickersSectionList.types.d.ts +2 -6
  63. package/esm/TimeField/useTimeField.d.ts +1 -1
  64. package/esm/TimeField/useTimeField.js +3 -17
  65. package/esm/TimePicker/TimePicker.js +1 -0
  66. package/esm/TimePicker/shared.js +3 -3
  67. package/esm/YearCalendar/YearCalendar.js +5 -11
  68. package/esm/hooks/useSplitFieldProps.d.ts +1 -1
  69. package/esm/index.js +1 -1
  70. package/esm/internals/components/PickerFieldUI.d.ts +5 -5
  71. package/esm/internals/hooks/useField/buildSectionsFromFormat.d.ts +2 -2
  72. package/esm/internals/hooks/useField/buildSectionsFromFormat.js +9 -9
  73. package/esm/internals/hooks/useField/index.d.ts +1 -1
  74. package/esm/internals/hooks/useField/syncSelectionToDOM.d.ts +9 -0
  75. package/esm/internals/hooks/useField/syncSelectionToDOM.js +50 -0
  76. package/esm/internals/hooks/useField/useField.d.ts +2 -4
  77. package/esm/internals/hooks/useField/useField.js +5 -229
  78. package/esm/internals/hooks/useField/useField.types.d.ts +55 -68
  79. package/esm/internals/hooks/useField/useField.utils.d.ts +3 -8
  80. package/esm/internals/hooks/useField/useField.utils.js +7 -149
  81. package/esm/internals/hooks/useField/useFieldCharacterEditing.d.ts +19 -26
  82. package/esm/internals/hooks/useField/useFieldCharacterEditing.js +42 -60
  83. package/esm/internals/hooks/useField/useFieldHiddenInputProps.d.ts +20 -0
  84. package/esm/internals/hooks/useField/useFieldHiddenInputProps.js +31 -0
  85. package/esm/internals/hooks/useField/useFieldInternalPropsWithDefaults.js +8 -10
  86. package/esm/internals/hooks/useField/useFieldRootHandleKeyDown.d.ts +16 -0
  87. package/esm/internals/hooks/useField/useFieldRootHandleKeyDown.js +205 -0
  88. package/esm/internals/hooks/useField/useFieldRootProps.d.ts +32 -0
  89. package/esm/internals/hooks/useField/useFieldRootProps.js +150 -0
  90. package/esm/internals/hooks/useField/useFieldSectionContainerProps.d.ts +15 -0
  91. package/esm/internals/hooks/useField/useFieldSectionContainerProps.js +29 -0
  92. package/esm/internals/hooks/useField/useFieldSectionContentProps.d.ts +23 -0
  93. package/esm/internals/hooks/useField/useFieldSectionContentProps.js +226 -0
  94. package/esm/internals/hooks/useField/useFieldState.d.ts +23 -13
  95. package/esm/internals/hooks/useField/useFieldState.js +103 -30
  96. package/esm/internals/hooks/useField/useFieldV6TextField.d.ts +3 -3
  97. package/esm/internals/hooks/useField/useFieldV6TextField.js +202 -135
  98. package/esm/internals/hooks/useField/useFieldV7TextField.d.ts +3 -2
  99. package/esm/internals/hooks/useField/useFieldV7TextField.js +200 -367
  100. package/esm/internals/hooks/usePicker/usePicker.types.d.ts +1 -0
  101. package/esm/internals/index.d.ts +6 -5
  102. package/esm/internals/index.js +4 -3
  103. package/esm/locales/deDE.js +2 -3
  104. package/esm/managers/useDateManager.d.ts +4 -13
  105. package/esm/managers/useDateManager.js +21 -31
  106. package/esm/managers/useDateTimeManager.d.ts +4 -13
  107. package/esm/managers/useDateTimeManager.js +26 -36
  108. package/esm/managers/useTimeManager.d.ts +4 -13
  109. package/esm/managers/useTimeManager.js +17 -27
  110. package/esm/models/fields.d.ts +2 -2
  111. package/esm/models/manager.d.ts +6 -10
  112. package/esm/validation/validateDate.js +3 -4
  113. package/hooks/useSplitFieldProps.d.ts +1 -1
  114. package/index.js +1 -1
  115. package/internals/components/PickerFieldUI.d.ts +5 -5
  116. package/internals/hooks/useField/buildSectionsFromFormat.d.ts +2 -2
  117. package/internals/hooks/useField/buildSectionsFromFormat.js +9 -9
  118. package/internals/hooks/useField/index.d.ts +1 -1
  119. package/internals/hooks/useField/syncSelectionToDOM.d.ts +9 -0
  120. package/internals/hooks/useField/syncSelectionToDOM.js +56 -0
  121. package/internals/hooks/useField/useField.d.ts +2 -4
  122. package/internals/hooks/useField/useField.js +5 -231
  123. package/internals/hooks/useField/useField.types.d.ts +55 -68
  124. package/internals/hooks/useField/useField.utils.d.ts +3 -8
  125. package/internals/hooks/useField/useField.utils.js +9 -154
  126. package/internals/hooks/useField/useFieldCharacterEditing.d.ts +19 -26
  127. package/internals/hooks/useField/useFieldCharacterEditing.js +41 -59
  128. package/internals/hooks/useField/useFieldHiddenInputProps.d.ts +20 -0
  129. package/internals/hooks/useField/useFieldHiddenInputProps.js +39 -0
  130. package/internals/hooks/useField/useFieldInternalPropsWithDefaults.js +8 -10
  131. package/internals/hooks/useField/useFieldRootHandleKeyDown.d.ts +16 -0
  132. package/internals/hooks/useField/useFieldRootHandleKeyDown.js +211 -0
  133. package/internals/hooks/useField/useFieldRootProps.d.ts +32 -0
  134. package/internals/hooks/useField/useFieldRootProps.js +156 -0
  135. package/internals/hooks/useField/useFieldSectionContainerProps.d.ts +15 -0
  136. package/internals/hooks/useField/useFieldSectionContainerProps.js +37 -0
  137. package/internals/hooks/useField/useFieldSectionContentProps.d.ts +23 -0
  138. package/internals/hooks/useField/useFieldSectionContentProps.js +234 -0
  139. package/internals/hooks/useField/useFieldState.d.ts +23 -13
  140. package/internals/hooks/useField/useFieldState.js +102 -29
  141. package/internals/hooks/useField/useFieldV6TextField.d.ts +3 -3
  142. package/internals/hooks/useField/useFieldV6TextField.js +202 -135
  143. package/internals/hooks/useField/useFieldV7TextField.d.ts +3 -2
  144. package/internals/hooks/useField/useFieldV7TextField.js +200 -367
  145. package/internals/hooks/usePicker/usePicker.types.d.ts +1 -0
  146. package/internals/index.d.ts +6 -5
  147. package/internals/index.js +25 -18
  148. package/locales/deDE.js +2 -3
  149. package/managers/useDateManager.d.ts +4 -13
  150. package/managers/useDateManager.js +21 -31
  151. package/managers/useDateTimeManager.d.ts +4 -13
  152. package/managers/useDateTimeManager.js +26 -36
  153. package/managers/useTimeManager.d.ts +4 -13
  154. package/managers/useTimeManager.js +18 -28
  155. package/models/fields.d.ts +2 -2
  156. package/models/manager.d.ts +6 -10
  157. package/modern/DateCalendar/DateCalendar.js +6 -10
  158. package/modern/DateCalendar/DayCalendar.d.ts +3 -7
  159. package/modern/DateCalendar/DayCalendar.js +18 -10
  160. package/modern/DateCalendar/index.d.ts +0 -1
  161. package/modern/DateField/useDateField.d.ts +1 -1
  162. package/modern/DateField/useDateField.js +3 -17
  163. package/modern/DatePicker/DatePicker.js +1 -0
  164. package/modern/DatePicker/shared.js +3 -9
  165. package/modern/DateTimeField/useDateTimeField.d.ts +1 -1
  166. package/modern/DateTimeField/useDateTimeField.js +3 -17
  167. package/modern/DateTimePicker/DateTimePicker.js +1 -0
  168. package/modern/DateTimePicker/shared.js +4 -14
  169. package/modern/DesktopDatePicker/DesktopDatePicker.js +1 -0
  170. package/modern/DesktopDateTimePicker/DesktopDateTimePicker.js +1 -0
  171. package/modern/DesktopTimePicker/DesktopTimePicker.js +1 -0
  172. package/modern/MobileDatePicker/MobileDatePicker.js +1 -0
  173. package/modern/MobileDateTimePicker/MobileDateTimePicker.js +1 -0
  174. package/modern/MobileTimePicker/MobileTimePicker.js +1 -0
  175. package/modern/MonthCalendar/MonthCalendar.js +6 -11
  176. package/modern/PickersDay/PickersDay.d.ts +1 -72
  177. package/modern/PickersDay/PickersDay.js +30 -28
  178. package/modern/PickersDay/PickersDay.types.d.ts +114 -0
  179. package/modern/PickersDay/PickersDay.types.js +1 -0
  180. package/modern/PickersDay/index.d.ts +1 -1
  181. package/modern/PickersDay/usePickerDayOwnerState.d.ts +14 -0
  182. package/modern/PickersDay/usePickerDayOwnerState.js +32 -0
  183. package/modern/PickersSectionList/PickersSectionList.d.ts +1 -1
  184. package/modern/PickersSectionList/PickersSectionList.types.d.ts +2 -6
  185. package/modern/TimeField/useTimeField.d.ts +1 -1
  186. package/modern/TimeField/useTimeField.js +3 -17
  187. package/modern/TimePicker/TimePicker.js +1 -0
  188. package/modern/TimePicker/shared.js +3 -3
  189. package/modern/YearCalendar/YearCalendar.js +5 -11
  190. package/modern/hooks/useSplitFieldProps.d.ts +1 -1
  191. package/modern/index.js +1 -1
  192. package/modern/internals/components/PickerFieldUI.d.ts +5 -5
  193. package/modern/internals/hooks/useField/buildSectionsFromFormat.d.ts +2 -2
  194. package/modern/internals/hooks/useField/buildSectionsFromFormat.js +9 -9
  195. package/modern/internals/hooks/useField/index.d.ts +1 -1
  196. package/modern/internals/hooks/useField/syncSelectionToDOM.d.ts +9 -0
  197. package/modern/internals/hooks/useField/syncSelectionToDOM.js +50 -0
  198. package/modern/internals/hooks/useField/useField.d.ts +2 -4
  199. package/modern/internals/hooks/useField/useField.js +5 -229
  200. package/modern/internals/hooks/useField/useField.types.d.ts +55 -68
  201. package/modern/internals/hooks/useField/useField.utils.d.ts +3 -8
  202. package/modern/internals/hooks/useField/useField.utils.js +7 -149
  203. package/modern/internals/hooks/useField/useFieldCharacterEditing.d.ts +19 -26
  204. package/modern/internals/hooks/useField/useFieldCharacterEditing.js +42 -60
  205. package/modern/internals/hooks/useField/useFieldHiddenInputProps.d.ts +20 -0
  206. package/modern/internals/hooks/useField/useFieldHiddenInputProps.js +31 -0
  207. package/modern/internals/hooks/useField/useFieldInternalPropsWithDefaults.js +8 -10
  208. package/modern/internals/hooks/useField/useFieldRootHandleKeyDown.d.ts +16 -0
  209. package/modern/internals/hooks/useField/useFieldRootHandleKeyDown.js +205 -0
  210. package/modern/internals/hooks/useField/useFieldRootProps.d.ts +32 -0
  211. package/modern/internals/hooks/useField/useFieldRootProps.js +150 -0
  212. package/modern/internals/hooks/useField/useFieldSectionContainerProps.d.ts +15 -0
  213. package/modern/internals/hooks/useField/useFieldSectionContainerProps.js +29 -0
  214. package/modern/internals/hooks/useField/useFieldSectionContentProps.d.ts +23 -0
  215. package/modern/internals/hooks/useField/useFieldSectionContentProps.js +226 -0
  216. package/modern/internals/hooks/useField/useFieldState.d.ts +23 -13
  217. package/modern/internals/hooks/useField/useFieldState.js +103 -30
  218. package/modern/internals/hooks/useField/useFieldV6TextField.d.ts +3 -3
  219. package/modern/internals/hooks/useField/useFieldV6TextField.js +202 -135
  220. package/modern/internals/hooks/useField/useFieldV7TextField.d.ts +3 -2
  221. package/modern/internals/hooks/useField/useFieldV7TextField.js +200 -367
  222. package/modern/internals/hooks/usePicker/usePicker.types.d.ts +1 -0
  223. package/modern/internals/index.d.ts +6 -5
  224. package/modern/internals/index.js +4 -3
  225. package/modern/locales/deDE.js +2 -3
  226. package/modern/managers/useDateManager.d.ts +4 -13
  227. package/modern/managers/useDateManager.js +21 -31
  228. package/modern/managers/useDateTimeManager.d.ts +4 -13
  229. package/modern/managers/useDateTimeManager.js +26 -36
  230. package/modern/managers/useTimeManager.d.ts +4 -13
  231. package/modern/managers/useTimeManager.js +17 -27
  232. package/modern/models/fields.d.ts +2 -2
  233. package/modern/models/manager.d.ts +6 -10
  234. package/modern/validation/validateDate.js +3 -4
  235. package/package.json +2 -2
  236. package/tsconfig.build.tsbuildinfo +1 -1
  237. package/validation/validateDate.js +3 -4
@@ -12,7 +12,7 @@ import { useRtl } from '@mui/system/RtlProvider';
12
12
  import { styled, useThemeProps } from '@mui/material/styles';
13
13
  import composeClasses from '@mui/utils/composeClasses';
14
14
  import clsx from 'clsx';
15
- import { PickersDay } from "../PickersDay/PickersDay.js";
15
+ import { PickersDay } from "../PickersDay/index.js";
16
16
  import { usePickerTranslations } from "../hooks/usePickerTranslations.js";
17
17
  import { useUtils, useNow } from "../internals/hooks/useUtils.js";
18
18
  import { DAY_SIZE, DAY_MARGIN } from "../internals/constants/dimensions.js";
@@ -20,7 +20,7 @@ import { PickersSlideTransition } from "./PickersSlideTransition.js";
20
20
  import { useIsDateDisabled } from "./useIsDateDisabled.js";
21
21
  import { findClosestEnabledDate, getWeekdays } from "../internals/utils/date-utils.js";
22
22
  import { getDayCalendarUtilityClass } from "./dayCalendarClasses.js";
23
- import { usePickerPrivateContext } from "../internals/hooks/usePickerPrivateContext.js";
23
+ import { usePickerDayOwnerState } from "../PickersDay/usePickerDayOwnerState.js";
24
24
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
25
25
  const useUtilityClasses = classes => {
26
26
  const slots = {
@@ -81,7 +81,7 @@ const PickersCalendarWeekNumberLabel = styled(Typography, {
81
81
  display: 'flex',
82
82
  justifyContent: 'center',
83
83
  alignItems: 'center',
84
- color: theme.palette.text.disabled
84
+ color: (theme.vars || theme).palette.text.disabled
85
85
  }));
86
86
  const PickersCalendarWeekNumber = styled(Typography, {
87
87
  name: 'MuiDayCalendar',
@@ -94,7 +94,7 @@ const PickersCalendarWeekNumber = styled(Typography, {
94
94
  height: DAY_SIZE,
95
95
  padding: 0,
96
96
  margin: `0 ${DAY_MARGIN}px`,
97
- color: theme.palette.text.disabled,
97
+ color: (theme.vars || theme).palette.text.disabled,
98
98
  fontSize: '0.75rem',
99
99
  alignItems: 'center',
100
100
  justifyContent: 'center',
@@ -155,14 +155,23 @@ function WrappedDay(_ref) {
155
155
  } = parentProps;
156
156
  const utils = useUtils();
157
157
  const now = useNow(timezone);
158
- const {
159
- ownerState
160
- } = usePickerPrivateContext();
161
158
  const isFocusableDay = focusedDay != null && utils.isSameDay(day, focusedDay);
162
159
  const isFocusedDay = isViewFocused && isFocusableDay;
163
160
  const isSelected = selectedDays.some(selectedDay => utils.isSameDay(selectedDay, day));
164
161
  const isToday = utils.isSameDay(day, now);
165
162
  const isDisabled = React.useMemo(() => disabled || isDateDisabled(day), [disabled, isDateDisabled, day]);
163
+ const isOutsideCurrentMonth = React.useMemo(() => utils.getMonth(day) !== currentMonthNumber, [utils, day, currentMonthNumber]);
164
+ const ownerState = usePickerDayOwnerState({
165
+ day,
166
+ selected: isSelected,
167
+ disabled: isDisabled,
168
+ today: isToday,
169
+ outsideCurrentMonth: isOutsideCurrentMonth,
170
+ disableMargin: undefined,
171
+ // This prop can only be defined using slotProps.day so the ownerState for useSlotProps cannot have its value.
172
+ disableHighlightToday,
173
+ showDaysOutsideCurrentMonth
174
+ });
166
175
  const Day = slots?.day ?? PickersDay;
167
176
  // We don't want to pass to ownerState down, to avoid re-rendering all the day whenever a prop changes.
168
177
  const _useSlotProps = useSlotProps({
@@ -183,7 +192,6 @@ function WrappedDay(_ref) {
183
192
  })
184
193
  }),
185
194
  dayProps = _objectWithoutPropertiesLoose(_useSlotProps, _excluded2);
186
- const outsideCurrentMonth = React.useMemo(() => utils.getMonth(day) !== currentMonthNumber, [utils, day, currentMonthNumber]);
187
195
  const isFirstVisibleCell = React.useMemo(() => {
188
196
  const startOfMonth = utils.startOfMonth(utils.setMonth(day, currentMonthNumber));
189
197
  if (!showDaysOutsideCurrentMonth) {
@@ -201,9 +209,9 @@ function WrappedDay(_ref) {
201
209
  return /*#__PURE__*/_jsx(Day, _extends({}, dayProps, {
202
210
  day: day,
203
211
  disabled: isDisabled,
204
- autoFocus: !outsideCurrentMonth && isFocusedDay,
212
+ autoFocus: !isOutsideCurrentMonth && isFocusedDay,
205
213
  today: isToday,
206
- outsideCurrentMonth: outsideCurrentMonth,
214
+ outsideCurrentMonth: isOutsideCurrentMonth,
207
215
  isFirstVisibleCell: isFirstVisibleCell,
208
216
  isLastVisibleCell: isLastVisibleCell,
209
217
  selected: isSelected,
@@ -1,6 +1,5 @@
1
1
  export { DateCalendar } from "./DateCalendar.js";
2
2
  export type { DateCalendarProps, DateCalendarSlots, DateCalendarSlotProps } from './DateCalendar.types';
3
- export type { PickerDayOwnerState } from './DayCalendar';
4
3
  export { getDateCalendarUtilityClass, dateCalendarClasses } from "./dateCalendarClasses.js";
5
4
  export type { DateCalendarClassKey, DateCalendarClasses } from './dateCalendarClasses';
6
5
  export { dayCalendarClasses } from "./dayCalendarClasses.js";
@@ -1,2 +1,2 @@
1
1
  import { UseDateFieldProps } from "./DateField.types.js";
2
- export declare const useDateField: <TEnableAccessibleFieldDOMStructure extends boolean, TAllProps extends UseDateFieldProps<TEnableAccessibleFieldDOMStructure>>(props: TAllProps) => import("../internals").UseFieldResponse<TEnableAccessibleFieldDOMStructure, Omit<TAllProps, "disabled" | "readOnly" | "value" | "defaultValue" | "autoFocus" | "onChange" | "onError" | "format" | "focused" | keyof import("../internals").BaseDateValidationProps | "shouldDisableYear" | "shouldDisableMonth" | "shouldDisableDate" | "referenceDate" | "formatDensity" | "timezone" | "shouldRespectLeadingZeros" | "selectedSections" | "onSelectedSectionsChange" | "unstableFieldRef" | "unstableStartFieldRef" | "unstableEndFieldRef" | "enableAccessibleFieldDOMStructure" | "dateSeparator">>;
2
+ export declare const useDateField: <TEnableAccessibleFieldDOMStructure extends boolean, TProps extends UseDateFieldProps<TEnableAccessibleFieldDOMStructure>>(props: TProps) => import("../internals").UseFieldReturnValue<TEnableAccessibleFieldDOMStructure, TProps>;
@@ -1,25 +1,11 @@
1
1
  'use client';
2
2
 
3
- import { useField, useFieldInternalPropsWithDefaults } from "../internals/hooks/useField/index.js";
4
- import { useSplitFieldProps } from "../hooks/index.js";
3
+ import { useField } from "../internals/hooks/useField/index.js";
5
4
  import { useDateManager } from "../managers/index.js";
6
5
  export const useDateField = props => {
7
6
  const manager = useDateManager(props);
8
- const {
9
- forwardedProps,
10
- internalProps
11
- } = useSplitFieldProps(props, 'date');
12
- const internalPropsWithDefaults = useFieldInternalPropsWithDefaults({
13
- manager,
14
- internalProps
15
- });
16
7
  return useField({
17
- forwardedProps,
18
- internalProps: internalPropsWithDefaults,
19
- valueManager: manager.internal_valueManager,
20
- fieldValueManager: manager.internal_fieldValueManager,
21
- validator: manager.validator,
22
- valueType: manager.valueType,
23
- getOpenPickerButtonAriaLabel: manager.internal_useOpenPickerButtonAriaLabel()
8
+ manager,
9
+ props
24
10
  });
25
11
  };
@@ -99,6 +99,7 @@ process.env.NODE_ENV !== "production" ? DatePicker.propTypes = {
99
99
  disableHighlightToday: PropTypes.bool,
100
100
  /**
101
101
  * If `true`, the button to open the Picker will not be rendered (it will only render the field).
102
+ * @deprecated Use the [field component](https://next.mui.com/x/react-date-pickers/fields/) instead.
102
103
  * @default false
103
104
  */
104
105
  disableOpenPicker: PropTypes.bool,
@@ -1,17 +1,15 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import * as React from 'react';
3
3
  import { useThemeProps } from '@mui/material/styles';
4
- import { useDefaultDates, useUtils } from "../internals/hooks/useUtils.js";
5
4
  import { applyDefaultViewProps } from "../internals/utils/views.js";
6
- import { applyDefaultDate } from "../internals/utils/date-utils.js";
7
5
  import { DatePickerToolbar } from "./DatePickerToolbar.js";
6
+ import { useApplyDefaultValuesToDateValidationProps } from "../managers/useDateManager.js";
8
7
  export function useDatePickerDefaultizedProps(props, name) {
9
- const utils = useUtils();
10
- const defaultDates = useDefaultDates();
11
8
  const themeProps = useThemeProps({
12
9
  props,
13
10
  name
14
11
  });
12
+ const validationProps = useApplyDefaultValuesToDateValidationProps(themeProps);
15
13
  const localeText = React.useMemo(() => {
16
14
  if (themeProps.localeText?.toolbarTitle == null) {
17
15
  return themeProps.localeText;
@@ -20,7 +18,7 @@ export function useDatePickerDefaultizedProps(props, name) {
20
18
  datePickerToolbarTitle: themeProps.localeText.toolbarTitle
21
19
  });
22
20
  }, [themeProps.localeText]);
23
- return _extends({}, themeProps, {
21
+ return _extends({}, themeProps, validationProps, {
24
22
  localeText
25
23
  }, applyDefaultViewProps({
26
24
  views: themeProps.views,
@@ -28,10 +26,6 @@ export function useDatePickerDefaultizedProps(props, name) {
28
26
  defaultViews: ['year', 'day'],
29
27
  defaultOpenTo: 'day'
30
28
  }), {
31
- disableFuture: themeProps.disableFuture ?? false,
32
- disablePast: themeProps.disablePast ?? false,
33
- minDate: applyDefaultDate(utils, themeProps.minDate, defaultDates.minDate),
34
- maxDate: applyDefaultDate(utils, themeProps.maxDate, defaultDates.maxDate),
35
29
  slots: _extends({
36
30
  toolbar: DatePickerToolbar
37
31
  }, themeProps.slots)
@@ -1,2 +1,2 @@
1
1
  import { UseDateTimeFieldProps } from "./DateTimeField.types.js";
2
- export declare const useDateTimeField: <TEnableAccessibleFieldDOMStructure extends boolean, TAllProps extends UseDateTimeFieldProps<TEnableAccessibleFieldDOMStructure>>(props: TAllProps) => import("../internals").UseFieldResponse<TEnableAccessibleFieldDOMStructure, Omit<TAllProps, "disabled" | "readOnly" | "value" | "defaultValue" | "autoFocus" | "onChange" | "onError" | "format" | "focused" | "maxDate" | "minDate" | "disablePast" | "disableFuture" | "shouldDisableYear" | "shouldDisableMonth" | "shouldDisableDate" | "minTime" | "maxTime" | "minutesStep" | "shouldDisableTime" | "disableIgnoringDatePartForTimeValidation" | "ampm" | "minDateTime" | "maxDateTime" | "referenceDate" | "formatDensity" | "timezone" | "shouldRespectLeadingZeros" | "selectedSections" | "onSelectedSectionsChange" | "unstableFieldRef" | "unstableStartFieldRef" | "unstableEndFieldRef" | "enableAccessibleFieldDOMStructure" | "dateSeparator">>;
2
+ export declare const useDateTimeField: <TEnableAccessibleFieldDOMStructure extends boolean, TProps extends UseDateTimeFieldProps<TEnableAccessibleFieldDOMStructure>>(props: TProps) => import("../internals").UseFieldReturnValue<TEnableAccessibleFieldDOMStructure, TProps>;
@@ -1,25 +1,11 @@
1
1
  'use client';
2
2
 
3
- import { useField, useFieldInternalPropsWithDefaults } from "../internals/hooks/useField/index.js";
4
- import { useSplitFieldProps } from "../hooks/index.js";
3
+ import { useField } from "../internals/hooks/useField/index.js";
5
4
  import { useDateTimeManager } from "../managers/index.js";
6
5
  export const useDateTimeField = props => {
7
6
  const manager = useDateTimeManager(props);
8
- const {
9
- forwardedProps,
10
- internalProps
11
- } = useSplitFieldProps(props, 'date-time');
12
- const internalPropsWithDefaults = useFieldInternalPropsWithDefaults({
13
- manager,
14
- internalProps
15
- });
16
7
  return useField({
17
- forwardedProps,
18
- internalProps: internalPropsWithDefaults,
19
- valueManager: manager.internal_valueManager,
20
- fieldValueManager: manager.internal_fieldValueManager,
21
- validator: manager.validator,
22
- valueType: manager.valueType,
23
- getOpenPickerButtonAriaLabel: manager.internal_useOpenPickerButtonAriaLabel()
8
+ manager,
9
+ props
24
10
  });
25
11
  };
@@ -114,6 +114,7 @@ process.env.NODE_ENV !== "production" ? DateTimePicker.propTypes = {
114
114
  disableIgnoringDatePartForTimeValidation: PropTypes.bool,
115
115
  /**
116
116
  * If `true`, the button to open the Picker will not be rendered (it will only render the field).
117
+ * @deprecated Use the [field component](https://next.mui.com/x/react-date-pickers/fields/) instead.
117
118
  * @default false
118
119
  */
119
120
  disableOpenPicker: PropTypes.bool,
@@ -1,19 +1,19 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import * as React from 'react';
3
3
  import { useThemeProps } from '@mui/material/styles';
4
- import { useDefaultDates, useUtils } from "../internals/hooks/useUtils.js";
5
- import { applyDefaultDate } from "../internals/utils/date-utils.js";
4
+ import { useUtils } from "../internals/hooks/useUtils.js";
6
5
  import { DateTimePickerTabs } from "./DateTimePickerTabs.js";
7
6
  import { DateTimePickerToolbar } from "./DateTimePickerToolbar.js";
8
7
  import { applyDefaultViewProps } from "../internals/utils/views.js";
9
8
  import { resolveTimeViewsResponse } from "../internals/utils/date-time-utils.js";
9
+ import { useApplyDefaultValuesToDateTimeValidationProps } from "../managers/useDateTimeManager.js";
10
10
  export function useDateTimePickerDefaultizedProps(props, name) {
11
11
  const utils = useUtils();
12
- const defaultDates = useDefaultDates();
13
12
  const themeProps = useThemeProps({
14
13
  props,
15
14
  name
16
15
  });
16
+ const validationProps = useApplyDefaultValuesToDateTimeValidationProps(themeProps);
17
17
  const ampm = themeProps.ampm ?? utils.is12HourCycleInCurrentLocale();
18
18
  const localeText = React.useMemo(() => {
19
19
  if (themeProps.localeText?.toolbarTitle == null) {
@@ -43,7 +43,7 @@ export function useDateTimePickerDefaultizedProps(props, name) {
43
43
  timeSteps: themeProps.timeSteps,
44
44
  views: defaultViews
45
45
  });
46
- return _extends({}, themeProps, {
46
+ return _extends({}, themeProps, validationProps, {
47
47
  timeSteps,
48
48
  openTo,
49
49
  shouldRenderTimeInASingleColumn,
@@ -52,16 +52,6 @@ export function useDateTimePickerDefaultizedProps(props, name) {
52
52
  ampm,
53
53
  localeText,
54
54
  orientation: themeProps.orientation ?? 'portrait',
55
- // TODO: Remove from public API
56
- disableIgnoringDatePartForTimeValidation: themeProps.disableIgnoringDatePartForTimeValidation ?? Boolean(themeProps.minDateTime || themeProps.maxDateTime ||
57
- // allow time clock to correctly check time validity: https://github.com/mui/mui-x/issues/8520
58
- themeProps.disablePast || themeProps.disableFuture),
59
- disableFuture: themeProps.disableFuture ?? false,
60
- disablePast: themeProps.disablePast ?? false,
61
- minDate: applyDefaultDate(utils, themeProps.minDateTime ?? themeProps.minDate, defaultDates.minDate),
62
- maxDate: applyDefaultDate(utils, themeProps.maxDateTime ?? themeProps.maxDate, defaultDates.maxDate),
63
- minTime: themeProps.minDateTime ?? themeProps.minTime,
64
- maxTime: themeProps.maxDateTime ?? themeProps.maxTime,
65
55
  slots: _extends({
66
56
  toolbar: DateTimePickerToolbar,
67
57
  tabs: DateTimePickerTabs
@@ -114,6 +114,7 @@ DesktopDatePicker.propTypes = {
114
114
  disableHighlightToday: PropTypes.bool,
115
115
  /**
116
116
  * If `true`, the button to open the Picker will not be rendered (it will only render the field).
117
+ * @deprecated Use the [field component](https://next.mui.com/x/react-date-pickers/fields/) instead.
117
118
  * @default false
118
119
  */
119
120
  disableOpenPicker: PropTypes.bool,
@@ -203,6 +203,7 @@ DesktopDateTimePicker.propTypes = {
203
203
  disableIgnoringDatePartForTimeValidation: PropTypes.bool,
204
204
  /**
205
205
  * If `true`, the button to open the Picker will not be rendered (it will only render the field).
206
+ * @deprecated Use the [field component](https://next.mui.com/x/react-date-pickers/fields/) instead.
206
207
  * @default false
207
208
  */
208
209
  disableOpenPicker: PropTypes.bool,
@@ -128,6 +128,7 @@ DesktopTimePicker.propTypes = {
128
128
  disableIgnoringDatePartForTimeValidation: PropTypes.bool,
129
129
  /**
130
130
  * If `true`, the button to open the Picker will not be rendered (it will only render the field).
131
+ * @deprecated Use the [field component](https://next.mui.com/x/react-date-pickers/fields/) instead.
131
132
  * @default false
132
133
  */
133
134
  disableOpenPicker: PropTypes.bool,
@@ -107,6 +107,7 @@ MobileDatePicker.propTypes = {
107
107
  disableHighlightToday: PropTypes.bool,
108
108
  /**
109
109
  * If `true`, the button to open the Picker will not be rendered (it will only render the field).
110
+ * @deprecated Use the [field component](https://next.mui.com/x/react-date-pickers/fields/) instead.
110
111
  * @default false
111
112
  */
112
113
  disableOpenPicker: PropTypes.bool,
@@ -165,6 +165,7 @@ MobileDateTimePicker.propTypes = {
165
165
  disableIgnoringDatePartForTimeValidation: PropTypes.bool,
166
166
  /**
167
167
  * If `true`, the button to open the Picker will not be rendered (it will only render the field).
168
+ * @deprecated Use the [field component](https://next.mui.com/x/react-date-pickers/fields/) instead.
168
169
  * @default false
169
170
  */
170
171
  disableOpenPicker: PropTypes.bool,
@@ -113,6 +113,7 @@ MobileTimePicker.propTypes = {
113
113
  disableIgnoringDatePartForTimeValidation: PropTypes.bool,
114
114
  /**
115
115
  * If `true`, the button to open the Picker will not be rendered (it will only render the field).
116
+ * @deprecated Use the [field component](https://next.mui.com/x/react-date-pickers/fields/) instead.
116
117
  * @default false
117
118
  */
118
119
  disableOpenPicker: PropTypes.bool,
@@ -11,14 +11,15 @@ import { shouldForwardProp } from '@mui/system/createStyled';
11
11
  import { styled, useThemeProps } from '@mui/material/styles';
12
12
  import { unstable_useControlled as useControlled, unstable_composeClasses as composeClasses, unstable_useEventCallback as useEventCallback } from '@mui/utils';
13
13
  import { MonthCalendarButton } from "./MonthCalendarButton.js";
14
- import { useUtils, useNow, useDefaultDates } from "../internals/hooks/useUtils.js";
14
+ import { useUtils, useNow } from "../internals/hooks/useUtils.js";
15
15
  import { getMonthCalendarUtilityClass } from "./monthCalendarClasses.js";
16
- import { applyDefaultDate, getMonthsInYear } from "../internals/utils/date-utils.js";
16
+ import { getMonthsInYear } from "../internals/utils/date-utils.js";
17
17
  import { singleItemValueManager } from "../internals/utils/valueManagers.js";
18
18
  import { SECTION_TYPE_GRANULARITY } from "../internals/utils/getDefaultReferenceDate.js";
19
19
  import { useControlledValue } from "../internals/hooks/useControlledValue.js";
20
20
  import { DIALOG_WIDTH } from "../internals/constants/dimensions.js";
21
21
  import { usePickerPrivateContext } from "../internals/hooks/usePickerPrivateContext.js";
22
+ import { useApplyDefaultValuesToDateValidationProps } from "../managers/useDateManager.js";
22
23
  import { jsx as _jsx } from "react/jsx-runtime";
23
24
  const useUtilityClasses = classes => {
24
25
  const slots = {
@@ -27,19 +28,13 @@ const useUtilityClasses = classes => {
27
28
  return composeClasses(slots, getMonthCalendarUtilityClass, classes);
28
29
  };
29
30
  export function useMonthCalendarDefaultizedProps(props, name) {
30
- const utils = useUtils();
31
- const defaultDates = useDefaultDates();
32
31
  const themeProps = useThemeProps({
33
32
  props,
34
33
  name
35
34
  });
36
- return _extends({
37
- disableFuture: false,
38
- disablePast: false
39
- }, themeProps, {
40
- monthsPerRow: themeProps.monthsPerRow ?? 3,
41
- minDate: applyDefaultDate(utils, themeProps.minDate, defaultDates.minDate),
42
- maxDate: applyDefaultDate(utils, themeProps.maxDate, defaultDates.maxDate)
35
+ const validationProps = useApplyDefaultValuesToDateValidationProps(themeProps);
36
+ return _extends({}, themeProps, validationProps, {
37
+ monthsPerRow: themeProps.monthsPerRow ?? 3
43
38
  });
44
39
  }
45
40
  const MonthCalendarRoot = styled('div', {
@@ -1,76 +1,5 @@
1
1
  import * as React from 'react';
2
- import { ButtonBaseProps } from '@mui/material/ButtonBase';
3
- import { ExtendMui } from "../internals/models/helpers.js";
4
- import { PickersDayClasses } from "./pickersDayClasses.js";
5
- import { PickerValidDate } from "../models/index.js";
6
- export interface ExportedPickersDayProps {
7
- /**
8
- * If `true`, today's date is rendering without highlighting with circle.
9
- * @default false
10
- */
11
- disableHighlightToday?: boolean;
12
- /**
13
- * If `true`, days outside the current month are rendered:
14
- *
15
- * - if `fixedWeekNumber` is defined, renders days to have the weeks requested.
16
- *
17
- * - if `fixedWeekNumber` is not defined, renders day to fill the first and last week of the current month.
18
- *
19
- * - ignored if `calendars` equals more than `1` on range pickers.
20
- * @default false
21
- */
22
- showDaysOutsideCurrentMonth?: boolean;
23
- }
24
- export interface PickersDayProps extends ExportedPickersDayProps, Omit<ExtendMui<ButtonBaseProps>, 'onKeyDown' | 'onFocus' | 'onBlur' | 'onMouseEnter' | 'LinkComponent'> {
25
- /**
26
- * Override or extend the styles applied to the component.
27
- */
28
- classes?: Partial<PickersDayClasses>;
29
- /**
30
- * The date to show.
31
- */
32
- day: PickerValidDate;
33
- /**
34
- * If `true`, renders as disabled.
35
- * @default false
36
- */
37
- disabled?: boolean;
38
- /**
39
- * If `true`, days are rendering without margin. Useful for displaying linked range of days.
40
- * @default false
41
- */
42
- disableMargin?: boolean;
43
- isAnimating?: boolean;
44
- onFocus?: (event: React.FocusEvent<HTMLButtonElement>, day: PickerValidDate) => void;
45
- onBlur?: (event: React.FocusEvent<HTMLButtonElement>, day: PickerValidDate) => void;
46
- onKeyDown?: (event: React.KeyboardEvent<HTMLButtonElement>, day: PickerValidDate) => void;
47
- onMouseEnter?: (event: React.MouseEvent<HTMLButtonElement>, day: PickerValidDate) => void;
48
- onDaySelect: (day: PickerValidDate) => void;
49
- /**
50
- * If `true`, day is outside of month and will be hidden.
51
- */
52
- outsideCurrentMonth: boolean;
53
- /**
54
- * If `true`, day is the first visible cell of the month.
55
- * Either the first day of the month or the first day of the week depending on `showDaysOutsideCurrentMonth`.
56
- */
57
- isFirstVisibleCell: boolean;
58
- /**
59
- * If `true`, day is the last visible cell of the month.
60
- * Either the last day of the month or the last day of the week depending on `showDaysOutsideCurrentMonth`.
61
- */
62
- isLastVisibleCell: boolean;
63
- /**
64
- * If `true`, renders as selected.
65
- * @default false
66
- */
67
- selected?: boolean;
68
- /**
69
- * If `true`, renders as today date.
70
- * @default false
71
- */
72
- today?: boolean;
73
- }
2
+ import { PickersDayProps } from "./PickersDay.types.js";
74
3
  type PickersDayComponent = ((props: PickersDayProps & React.RefAttributes<HTMLButtonElement>) => React.JSX.Element) & {
75
4
  propTypes?: any;
76
5
  };
@@ -2,7 +2,7 @@
2
2
 
3
3
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
4
4
  import _extends from "@babel/runtime/helpers/esm/extends";
5
- const _excluded = ["autoFocus", "className", "day", "disabled", "disableHighlightToday", "disableMargin", "hidden", "isAnimating", "onClick", "onDaySelect", "onFocus", "onBlur", "onKeyDown", "onMouseDown", "onMouseEnter", "outsideCurrentMonth", "selected", "showDaysOutsideCurrentMonth", "children", "today", "isFirstVisibleCell", "isLastVisibleCell"];
5
+ const _excluded = ["autoFocus", "className", "classes", "hidden", "isAnimating", "onClick", "onDaySelect", "onFocus", "onBlur", "onKeyDown", "onMouseDown", "onMouseEnter", "children", "isFirstVisibleCell", "isLastVisibleCell", "day", "selected", "disabled", "today", "outsideCurrentMonth", "disableMargin", "disableHighlightToday", "showDaysOutsideCurrentMonth"];
6
6
  import * as React from 'react';
7
7
  import PropTypes from 'prop-types';
8
8
  import clsx from 'clsx';
@@ -12,21 +12,21 @@ import { alpha, styled, useThemeProps } from '@mui/material/styles';
12
12
  import { useUtils } from "../internals/hooks/useUtils.js";
13
13
  import { DAY_SIZE, DAY_MARGIN } from "../internals/constants/dimensions.js";
14
14
  import { getPickersDayUtilityClass, pickersDayClasses } from "./pickersDayClasses.js";
15
+ import { usePickerDayOwnerState } from "./usePickerDayOwnerState.js";
15
16
  import { jsx as _jsx } from "react/jsx-runtime";
16
- const useUtilityClasses = ownerState => {
17
+ const useUtilityClasses = (classes, ownerState) => {
17
18
  const {
18
- selected,
19
+ isDaySelected,
20
+ isDayDisabled,
21
+ isDayCurrent,
22
+ isDayOutsideMonth,
19
23
  disableMargin,
20
24
  disableHighlightToday,
21
- today,
22
- disabled,
23
- outsideCurrentMonth,
24
- showDaysOutsideCurrentMonth,
25
- classes
25
+ showDaysOutsideCurrentMonth
26
26
  } = ownerState;
27
- const isHiddenDaySpacingFiller = outsideCurrentMonth && !showDaysOutsideCurrentMonth;
27
+ const isHiddenDaySpacingFiller = isDayOutsideMonth && !showDaysOutsideCurrentMonth;
28
28
  const slots = {
29
- root: ['root', selected && !isHiddenDaySpacingFiller && 'selected', disabled && 'disabled', !disableMargin && 'dayWithMargin', !disableHighlightToday && today && 'today', outsideCurrentMonth && showDaysOutsideCurrentMonth && 'dayOutsideMonth', isHiddenDaySpacingFiller && 'hiddenDaySpacingFiller'],
29
+ root: ['root', isDaySelected && !isHiddenDaySpacingFiller && 'selected', isDayDisabled && 'disabled', !disableMargin && 'dayWithMargin', !disableHighlightToday && isDayCurrent && 'today', isDayOutsideMonth && showDaysOutsideCurrentMonth && 'dayOutsideMonth', isHiddenDaySpacingFiller && 'hiddenDaySpacingFiller'],
30
30
  hiddenDaySpacingFiller: ['hiddenDaySpacingFiller']
31
31
  };
32
32
  return composeClasses(slots, getPickersDayUtilityClass, classes);
@@ -80,7 +80,7 @@ const styleArg = ({
80
80
  }
81
81
  }, {
82
82
  props: {
83
- outsideCurrentMonth: true,
83
+ isDayOutsideMonth: true,
84
84
  showDaysOutsideCurrentMonth: true
85
85
  },
86
86
  style: {
@@ -89,7 +89,7 @@ const styleArg = ({
89
89
  }, {
90
90
  props: {
91
91
  disableHighlightToday: false,
92
- today: true
92
+ isDayCurrent: true
93
93
  },
94
94
  style: {
95
95
  [`&:not(.${pickersDayClasses.selected})`]: {
@@ -102,7 +102,7 @@ const overridesResolver = (props, styles) => {
102
102
  const {
103
103
  ownerState
104
104
  } = props;
105
- return [styles.root, !ownerState.disableMargin && styles.dayWithMargin, !ownerState.disableHighlightToday && ownerState.today && styles.today, !ownerState.outsideCurrentMonth && ownerState.showDaysOutsideCurrentMonth && styles.dayOutsideMonth, ownerState.outsideCurrentMonth && !ownerState.showDaysOutsideCurrentMonth && styles.hiddenDaySpacingFiller];
105
+ return [styles.root, !ownerState.disableMargin && styles.dayWithMargin, !ownerState.disableHighlightToday && ownerState.isDayCurrent && styles.today, !ownerState.isDayOutsideMonth && ownerState.showDaysOutsideCurrentMonth && styles.dayOutsideMonth, ownerState.isDayOutsideMonth && !ownerState.showDaysOutsideCurrentMonth && styles.hiddenDaySpacingFiller];
106
106
  };
107
107
  const PickersDayRoot = styled(ButtonBase, {
108
108
  name: 'MuiPickersDay',
@@ -131,10 +131,7 @@ const PickersDayRaw = /*#__PURE__*/React.forwardRef(function PickersDay(inProps,
131
131
  const {
132
132
  autoFocus = false,
133
133
  className,
134
- day,
135
- disabled = false,
136
- disableHighlightToday = false,
137
- disableMargin = false,
134
+ classes: classesProp,
138
135
  isAnimating,
139
136
  onClick,
140
137
  onDaySelect,
@@ -143,23 +140,28 @@ const PickersDayRaw = /*#__PURE__*/React.forwardRef(function PickersDay(inProps,
143
140
  onKeyDown = noop,
144
141
  onMouseDown = noop,
145
142
  onMouseEnter = noop,
146
- outsideCurrentMonth,
147
- selected = false,
148
- showDaysOutsideCurrentMonth = false,
149
143
  children,
150
- today: isToday = false
144
+ day,
145
+ selected,
146
+ disabled,
147
+ today,
148
+ outsideCurrentMonth,
149
+ disableMargin,
150
+ disableHighlightToday,
151
+ showDaysOutsideCurrentMonth
151
152
  } = props,
152
153
  other = _objectWithoutPropertiesLoose(props, _excluded);
153
- const ownerState = _extends({}, props, {
154
- autoFocus,
154
+ const ownerState = usePickerDayOwnerState({
155
+ day,
156
+ selected,
155
157
  disabled,
156
- disableHighlightToday,
158
+ today,
159
+ outsideCurrentMonth,
157
160
  disableMargin,
158
- selected,
159
- showDaysOutsideCurrentMonth,
160
- today: isToday
161
+ disableHighlightToday,
162
+ showDaysOutsideCurrentMonth
161
163
  });
162
- const classes = useUtilityClasses(ownerState);
164
+ const classes = useUtilityClasses(classesProp, ownerState);
163
165
  const utils = useUtils();
164
166
  const ref = React.useRef(null);
165
167
  const handleRef = useForkRef(ref, forwardedRef);