@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
@@ -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);
@@ -0,0 +1,114 @@
1
+ import { ButtonBaseProps } from '@mui/material/ButtonBase';
2
+ import { PickerOwnerState, PickerValidDate } from "../models/pickers.js";
3
+ import { ExtendMui } from "../internals/models/helpers.js";
4
+ import { PickersDayClasses } from "./pickersDayClasses.js";
5
+ export interface PickerDayOwnerState extends PickerOwnerState {
6
+ /**
7
+ * The object representing the day.
8
+ */
9
+ day: PickerValidDate;
10
+ /**
11
+ * Whether the day is selected.
12
+ */
13
+ isDaySelected: boolean;
14
+ /**
15
+ * Whether the day is disabled.
16
+ */
17
+ isDayDisabled: boolean;
18
+ /**
19
+ * Whether the day is equal to today.
20
+ */
21
+ isDayCurrent: boolean;
22
+ /**
23
+ * Whether the day is outside the month it's being rendered in.
24
+ */
25
+ isDayOutsideMonth: boolean;
26
+ /**
27
+ * Whether the day is the first day of the week.
28
+ */
29
+ isDayStartOfWeek: boolean;
30
+ /**
31
+ * Whether the day is the last day of the week.
32
+ */
33
+ isDayEndOfWeek: boolean;
34
+ /**
35
+ * Whether the margin around the day should be removed.
36
+ */
37
+ disableMargin: boolean;
38
+ /**
39
+ * Whether the visual indication around the current day should be removed.
40
+ */
41
+ disableHighlightToday: boolean;
42
+ /**
43
+ * Whether the day outside of the month they are being rendered in should be visible.
44
+ */
45
+ showDaysOutsideCurrentMonth: boolean;
46
+ }
47
+ export interface ExportedPickersDayProps {
48
+ /**
49
+ * If `true`, today's date is rendering without highlighting with circle.
50
+ * @default false
51
+ */
52
+ disableHighlightToday?: boolean;
53
+ /**
54
+ * If `true`, days outside the current month are rendered:
55
+ *
56
+ * - if `fixedWeekNumber` is defined, renders days to have the weeks requested.
57
+ *
58
+ * - if `fixedWeekNumber` is not defined, renders day to fill the first and last week of the current month.
59
+ *
60
+ * - ignored if `calendars` equals more than `1` on range pickers.
61
+ * @default false
62
+ */
63
+ showDaysOutsideCurrentMonth?: boolean;
64
+ }
65
+ export interface PickersDayProps extends ExportedPickersDayProps, Omit<ExtendMui<ButtonBaseProps>, 'onKeyDown' | 'onFocus' | 'onBlur' | 'onMouseEnter' | 'LinkComponent'> {
66
+ /**
67
+ * Override or extend the styles applied to the component.
68
+ */
69
+ classes?: Partial<PickersDayClasses>;
70
+ /**
71
+ * The date to show.
72
+ */
73
+ day: PickerValidDate;
74
+ /**
75
+ * If `true`, renders as disabled.
76
+ * @default false
77
+ */
78
+ disabled?: boolean;
79
+ /**
80
+ * If `true`, days are rendering without margin. Useful for displaying linked range of days.
81
+ * @default false
82
+ */
83
+ disableMargin?: boolean;
84
+ isAnimating?: boolean;
85
+ onFocus?: (event: React.FocusEvent<HTMLButtonElement>, day: PickerValidDate) => void;
86
+ onBlur?: (event: React.FocusEvent<HTMLButtonElement>, day: PickerValidDate) => void;
87
+ onKeyDown?: (event: React.KeyboardEvent<HTMLButtonElement>, day: PickerValidDate) => void;
88
+ onMouseEnter?: (event: React.MouseEvent<HTMLButtonElement>, day: PickerValidDate) => void;
89
+ onDaySelect: (day: PickerValidDate) => void;
90
+ /**
91
+ * If `true`, day is outside of month and will be hidden.
92
+ */
93
+ outsideCurrentMonth: boolean;
94
+ /**
95
+ * If `true`, day is the first visible cell of the month.
96
+ * Either the first day of the month or the first day of the week depending on `showDaysOutsideCurrentMonth`.
97
+ */
98
+ isFirstVisibleCell: boolean;
99
+ /**
100
+ * If `true`, day is the last visible cell of the month.
101
+ * Either the last day of the month or the last day of the week depending on `showDaysOutsideCurrentMonth`.
102
+ */
103
+ isLastVisibleCell: boolean;
104
+ /**
105
+ * If `true`, renders as selected.
106
+ * @default false
107
+ */
108
+ selected?: boolean;
109
+ /**
110
+ * If `true`, renders as today date.
111
+ * @default false
112
+ */
113
+ today?: boolean;
114
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -1,4 +1,4 @@
1
1
  export { PickersDay } from "./PickersDay.js";
2
- export type { PickersDayProps } from './PickersDay';
2
+ export type { PickersDayProps, PickerDayOwnerState } from './PickersDay.types';
3
3
  export { pickersDayClasses, getPickersDayUtilityClass } from "./pickersDayClasses.js";
4
4
  export type { PickersDayClasses, PickersDayClassKey } from './pickersDayClasses';
@@ -0,0 +1,14 @@
1
+ import { PickerDayOwnerState } from "./PickersDay.types.js";
2
+ import { PickerValidDate } from "../models/pickers.js";
3
+ export declare function usePickerDayOwnerState(parameters: UsePickerDayOwnerStateParameters): PickerDayOwnerState;
4
+ interface UsePickerDayOwnerStateParameters {
5
+ day: PickerValidDate;
6
+ disabled: boolean | undefined;
7
+ selected: boolean | undefined;
8
+ today: boolean | undefined;
9
+ outsideCurrentMonth: boolean | undefined;
10
+ disableMargin: boolean | undefined;
11
+ disableHighlightToday: boolean | undefined;
12
+ showDaysOutsideCurrentMonth: boolean | undefined;
13
+ }
14
+ export {};
@@ -0,0 +1,32 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import * as React from 'react';
3
+ import { usePickerPrivateContext } from "../internals/hooks/usePickerPrivateContext.js";
4
+ import { useUtils } from "../internals/hooks/useUtils.js";
5
+ export function usePickerDayOwnerState(parameters) {
6
+ const {
7
+ disabled,
8
+ selected,
9
+ today,
10
+ outsideCurrentMonth,
11
+ day,
12
+ disableMargin,
13
+ disableHighlightToday,
14
+ showDaysOutsideCurrentMonth
15
+ } = parameters;
16
+ const utils = useUtils();
17
+ const {
18
+ ownerState: pickerOwnerState
19
+ } = usePickerPrivateContext();
20
+ return React.useMemo(() => _extends({}, pickerOwnerState, {
21
+ day,
22
+ isDaySelected: selected ?? false,
23
+ isDayDisabled: disabled ?? false,
24
+ isDayCurrent: today ?? false,
25
+ isDayOutsideMonth: outsideCurrentMonth ?? false,
26
+ isDayStartOfWeek: utils.isSameDay(day, utils.startOfWeek(day)),
27
+ isDayEndOfWeek: utils.isSameDay(day, utils.endOfWeek(day)),
28
+ disableMargin: disableMargin ?? false,
29
+ disableHighlightToday: disableHighlightToday ?? false,
30
+ showDaysOutsideCurrentMonth: showDaysOutsideCurrentMonth ?? false
31
+ }), [utils, pickerOwnerState, day, selected, disabled, today, outsideCurrentMonth, disableMargin, disableHighlightToday, showDaysOutsideCurrentMonth]);
32
+ }