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

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 (165) hide show
  1. package/CHANGELOG.md +77 -0
  2. package/DateCalendar/DayCalendar.d.ts +3 -7
  3. package/DateCalendar/DayCalendar.js +16 -8
  4. package/DateCalendar/index.d.ts +0 -1
  5. package/DateField/useDateField.d.ts +1 -1
  6. package/DateField/useDateField.js +2 -16
  7. package/DatePicker/DatePicker.js +1 -0
  8. package/DateTimeField/useDateTimeField.d.ts +1 -1
  9. package/DateTimeField/useDateTimeField.js +2 -16
  10. package/DateTimePicker/DateTimePicker.js +1 -0
  11. package/DesktopDatePicker/DesktopDatePicker.js +1 -0
  12. package/DesktopDateTimePicker/DesktopDateTimePicker.js +1 -0
  13. package/DesktopTimePicker/DesktopTimePicker.js +1 -0
  14. package/MobileDatePicker/MobileDatePicker.js +1 -0
  15. package/MobileDateTimePicker/MobileDateTimePicker.js +1 -0
  16. package/MobileTimePicker/MobileTimePicker.js +1 -0
  17. package/PickersDay/PickersDay.d.ts +1 -72
  18. package/PickersDay/PickersDay.js +30 -28
  19. package/PickersDay/PickersDay.types.d.ts +114 -0
  20. package/PickersDay/PickersDay.types.js +5 -0
  21. package/PickersDay/index.d.ts +1 -1
  22. package/PickersDay/usePickerDayOwnerState.d.ts +14 -0
  23. package/PickersDay/usePickerDayOwnerState.js +40 -0
  24. package/TimeField/useTimeField.d.ts +1 -1
  25. package/TimeField/useTimeField.js +2 -16
  26. package/TimePicker/TimePicker.js +1 -0
  27. package/esm/DateCalendar/DayCalendar.d.ts +3 -7
  28. package/esm/DateCalendar/DayCalendar.js +16 -8
  29. package/esm/DateCalendar/index.d.ts +0 -1
  30. package/esm/DateField/useDateField.d.ts +1 -1
  31. package/esm/DateField/useDateField.js +3 -17
  32. package/esm/DatePicker/DatePicker.js +1 -0
  33. package/esm/DateTimeField/useDateTimeField.d.ts +1 -1
  34. package/esm/DateTimeField/useDateTimeField.js +3 -17
  35. package/esm/DateTimePicker/DateTimePicker.js +1 -0
  36. package/esm/DesktopDatePicker/DesktopDatePicker.js +1 -0
  37. package/esm/DesktopDateTimePicker/DesktopDateTimePicker.js +1 -0
  38. package/esm/DesktopTimePicker/DesktopTimePicker.js +1 -0
  39. package/esm/MobileDatePicker/MobileDatePicker.js +1 -0
  40. package/esm/MobileDateTimePicker/MobileDateTimePicker.js +1 -0
  41. package/esm/MobileTimePicker/MobileTimePicker.js +1 -0
  42. package/esm/PickersDay/PickersDay.d.ts +1 -72
  43. package/esm/PickersDay/PickersDay.js +30 -28
  44. package/esm/PickersDay/PickersDay.types.d.ts +114 -0
  45. package/esm/PickersDay/PickersDay.types.js +1 -0
  46. package/esm/PickersDay/index.d.ts +1 -1
  47. package/esm/PickersDay/usePickerDayOwnerState.d.ts +14 -0
  48. package/esm/PickersDay/usePickerDayOwnerState.js +32 -0
  49. package/esm/TimeField/useTimeField.d.ts +1 -1
  50. package/esm/TimeField/useTimeField.js +3 -17
  51. package/esm/TimePicker/TimePicker.js +1 -0
  52. package/esm/hooks/useSplitFieldProps.d.ts +1 -1
  53. package/esm/index.js +1 -1
  54. package/esm/internals/components/PickerFieldUI.d.ts +5 -5
  55. package/esm/internals/hooks/useField/buildSectionsFromFormat.d.ts +2 -2
  56. package/esm/internals/hooks/useField/buildSectionsFromFormat.js +9 -9
  57. package/esm/internals/hooks/useField/index.d.ts +1 -1
  58. package/esm/internals/hooks/useField/useField.d.ts +2 -4
  59. package/esm/internals/hooks/useField/useField.js +5 -229
  60. package/esm/internals/hooks/useField/useField.types.d.ts +48 -68
  61. package/esm/internals/hooks/useField/useField.utils.d.ts +2 -5
  62. package/esm/internals/hooks/useField/useField.utils.js +7 -92
  63. package/esm/internals/hooks/useField/useFieldCharacterEditing.d.ts +19 -26
  64. package/esm/internals/hooks/useField/useFieldCharacterEditing.js +42 -60
  65. package/esm/internals/hooks/useField/useFieldRootHandleKeyDown.d.ts +16 -0
  66. package/esm/internals/hooks/useField/useFieldRootHandleKeyDown.js +204 -0
  67. package/esm/internals/hooks/useField/useFieldState.d.ts +23 -13
  68. package/esm/internals/hooks/useField/useFieldState.js +103 -30
  69. package/esm/internals/hooks/useField/useFieldV6TextField.d.ts +3 -3
  70. package/esm/internals/hooks/useField/useFieldV6TextField.js +202 -135
  71. package/esm/internals/hooks/useField/useFieldV7TextField.d.ts +3 -2
  72. package/esm/internals/hooks/useField/useFieldV7TextField.js +217 -153
  73. package/esm/internals/hooks/usePicker/usePicker.types.d.ts +1 -0
  74. package/esm/internals/index.d.ts +2 -1
  75. package/esm/internals/index.js +1 -0
  76. package/esm/managers/useDateManager.js +3 -3
  77. package/esm/managers/useDateTimeManager.js +3 -3
  78. package/esm/managers/useTimeManager.js +3 -3
  79. package/esm/models/fields.d.ts +2 -2
  80. package/esm/models/manager.d.ts +3 -2
  81. package/hooks/useSplitFieldProps.d.ts +1 -1
  82. package/index.js +1 -1
  83. package/internals/components/PickerFieldUI.d.ts +5 -5
  84. package/internals/hooks/useField/buildSectionsFromFormat.d.ts +2 -2
  85. package/internals/hooks/useField/buildSectionsFromFormat.js +9 -9
  86. package/internals/hooks/useField/index.d.ts +1 -1
  87. package/internals/hooks/useField/useField.d.ts +2 -4
  88. package/internals/hooks/useField/useField.js +5 -231
  89. package/internals/hooks/useField/useField.types.d.ts +48 -68
  90. package/internals/hooks/useField/useField.utils.d.ts +2 -5
  91. package/internals/hooks/useField/useField.utils.js +8 -94
  92. package/internals/hooks/useField/useFieldCharacterEditing.d.ts +19 -26
  93. package/internals/hooks/useField/useFieldCharacterEditing.js +41 -59
  94. package/internals/hooks/useField/useFieldRootHandleKeyDown.d.ts +16 -0
  95. package/internals/hooks/useField/useFieldRootHandleKeyDown.js +210 -0
  96. package/internals/hooks/useField/useFieldState.d.ts +23 -13
  97. package/internals/hooks/useField/useFieldState.js +102 -29
  98. package/internals/hooks/useField/useFieldV6TextField.d.ts +3 -3
  99. package/internals/hooks/useField/useFieldV6TextField.js +202 -135
  100. package/internals/hooks/useField/useFieldV7TextField.d.ts +3 -2
  101. package/internals/hooks/useField/useFieldV7TextField.js +218 -154
  102. package/internals/hooks/usePicker/usePicker.types.d.ts +1 -0
  103. package/internals/index.d.ts +2 -1
  104. package/internals/index.js +7 -0
  105. package/managers/useDateManager.js +3 -3
  106. package/managers/useDateTimeManager.js +3 -3
  107. package/managers/useTimeManager.js +3 -3
  108. package/models/fields.d.ts +2 -2
  109. package/models/manager.d.ts +3 -2
  110. package/modern/DateCalendar/DayCalendar.d.ts +3 -7
  111. package/modern/DateCalendar/DayCalendar.js +16 -8
  112. package/modern/DateCalendar/index.d.ts +0 -1
  113. package/modern/DateField/useDateField.d.ts +1 -1
  114. package/modern/DateField/useDateField.js +3 -17
  115. package/modern/DatePicker/DatePicker.js +1 -0
  116. package/modern/DateTimeField/useDateTimeField.d.ts +1 -1
  117. package/modern/DateTimeField/useDateTimeField.js +3 -17
  118. package/modern/DateTimePicker/DateTimePicker.js +1 -0
  119. package/modern/DesktopDatePicker/DesktopDatePicker.js +1 -0
  120. package/modern/DesktopDateTimePicker/DesktopDateTimePicker.js +1 -0
  121. package/modern/DesktopTimePicker/DesktopTimePicker.js +1 -0
  122. package/modern/MobileDatePicker/MobileDatePicker.js +1 -0
  123. package/modern/MobileDateTimePicker/MobileDateTimePicker.js +1 -0
  124. package/modern/MobileTimePicker/MobileTimePicker.js +1 -0
  125. package/modern/PickersDay/PickersDay.d.ts +1 -72
  126. package/modern/PickersDay/PickersDay.js +30 -28
  127. package/modern/PickersDay/PickersDay.types.d.ts +114 -0
  128. package/modern/PickersDay/PickersDay.types.js +1 -0
  129. package/modern/PickersDay/index.d.ts +1 -1
  130. package/modern/PickersDay/usePickerDayOwnerState.d.ts +14 -0
  131. package/modern/PickersDay/usePickerDayOwnerState.js +32 -0
  132. package/modern/TimeField/useTimeField.d.ts +1 -1
  133. package/modern/TimeField/useTimeField.js +3 -17
  134. package/modern/TimePicker/TimePicker.js +1 -0
  135. package/modern/hooks/useSplitFieldProps.d.ts +1 -1
  136. package/modern/index.js +1 -1
  137. package/modern/internals/components/PickerFieldUI.d.ts +5 -5
  138. package/modern/internals/hooks/useField/buildSectionsFromFormat.d.ts +2 -2
  139. package/modern/internals/hooks/useField/buildSectionsFromFormat.js +9 -9
  140. package/modern/internals/hooks/useField/index.d.ts +1 -1
  141. package/modern/internals/hooks/useField/useField.d.ts +2 -4
  142. package/modern/internals/hooks/useField/useField.js +5 -229
  143. package/modern/internals/hooks/useField/useField.types.d.ts +48 -68
  144. package/modern/internals/hooks/useField/useField.utils.d.ts +2 -5
  145. package/modern/internals/hooks/useField/useField.utils.js +7 -92
  146. package/modern/internals/hooks/useField/useFieldCharacterEditing.d.ts +19 -26
  147. package/modern/internals/hooks/useField/useFieldCharacterEditing.js +42 -60
  148. package/modern/internals/hooks/useField/useFieldRootHandleKeyDown.d.ts +16 -0
  149. package/modern/internals/hooks/useField/useFieldRootHandleKeyDown.js +204 -0
  150. package/modern/internals/hooks/useField/useFieldState.d.ts +23 -13
  151. package/modern/internals/hooks/useField/useFieldState.js +103 -30
  152. package/modern/internals/hooks/useField/useFieldV6TextField.d.ts +3 -3
  153. package/modern/internals/hooks/useField/useFieldV6TextField.js +202 -135
  154. package/modern/internals/hooks/useField/useFieldV7TextField.d.ts +3 -2
  155. package/modern/internals/hooks/useField/useFieldV7TextField.js +217 -153
  156. package/modern/internals/hooks/usePicker/usePicker.types.d.ts +1 -0
  157. package/modern/internals/index.d.ts +2 -1
  158. package/modern/internals/index.js +1 -0
  159. package/modern/managers/useDateManager.js +3 -3
  160. package/modern/managers/useDateTimeManager.js +3 -3
  161. package/modern/managers/useTimeManager.js +3 -3
  162. package/modern/models/fields.d.ts +2 -2
  163. package/modern/models/manager.d.ts +3 -2
  164. package/package.json +1 -1
  165. package/tsconfig.build.tsbuildinfo +1 -1
package/CHANGELOG.md CHANGED
@@ -5,6 +5,83 @@
5
5
  All notable changes to this project will be documented in this file.
6
6
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
7
7
 
8
+ ## 8.0.0-beta.1
9
+
10
+ _Mar 21, 2025_
11
+
12
+ We'd like to offer a big thanks to the 6 contributors who made this release possible. Here are some highlights ✨:
13
+
14
+ - 🐞 Bugfixes
15
+
16
+ Special thanks go out to the community members for their valuable contributions:
17
+ @jyash97.
18
+ Following are all team members who have contributed to this release:
19
+ @alexfauquette, @arminmeh, @flaviendelangle, @JCQuintas, @KenanYusuf.
20
+
21
+ <!--/ HIGHLIGHT_ABOVE_SEPARATOR /-->
22
+
23
+ ### Data Grid
24
+
25
+ #### `@mui/x-data-grid@8.0.0-beta.1`
26
+
27
+ - [DataGrid] Fix error caused by `forwardRef` to `ClickAwayListener` (#17049) @arminmeh
28
+ - [DataGrid] Fix error while editing rows with custom id (#17048) @arminmeh
29
+
30
+ #### `@mui/x-data-grid-pro@8.0.0-beta.1` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
31
+
32
+ Same changes as in `@mui/x-data-grid@8.0.0-beta.1`, plus:
33
+
34
+ - [DataGridPro] Fix header select checkbox state with `checkboxSelectionVisibleOnly` and `paginationMode="server"` (#17026) @arminmeh
35
+
36
+ #### `@mui/x-data-grid-premium@8.0.0-beta.1` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
37
+
38
+ Same changes as in `@mui/x-data-grid-pro@8.0.0-beta.1`, plus:
39
+
40
+ - [DataGridPremium] Update column state correctly when grouping mode is updated with one grouping column (#17069) @arminmeh
41
+
42
+ ### Date and Time Pickers
43
+
44
+ #### `@mui/x-date-pickers@8.0.0-beta.1`
45
+
46
+ - [fields] Clean the `useField` hook (part 1) (#16944) @flaviendelangle
47
+ - [fields] Improve the check for year in `doesSectionFormatHaveLeadingZeros` (#17051) @flaviendelangle
48
+ - [pickers] Deprecate the `disableOpenPicker` prop (#17040) @flaviendelangle
49
+ - [pickers] Simplify the `cleanLeadingZeros` method (#17063) @flaviendelangle
50
+ - [pickers] Use the new `ownerState` in `PickersDay` and `DateRangePickerDay` (#17035) @flaviendelangle
51
+
52
+ #### `@mui/x-date-pickers-pro@8.0.0-beta.1` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
53
+
54
+ Same changes as in `@mui/x-date-pickers@8.0.0-beta.1`, plus:
55
+
56
+ - [DateRangePicker] Use desktop media query constant on range pickers (#17052) @flaviendelangle
57
+
58
+ ### Charts
59
+
60
+ #### `@mui/x-charts@8.0.0-beta.1`
61
+
62
+ - [charts] Fix horizontal bar with multiple axes (#17059) @alexfauquette
63
+
64
+ #### `@mui/x-charts-pro@8.0.0-beta.1` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
65
+
66
+ Same changes as in `@mui/x-charts@8.0.0-beta.1`, plus:
67
+
68
+ - [charts-pro] Allow disabling Heatmap tooltip (#17060) @JCQuintas
69
+
70
+ ### Tree View
71
+
72
+ #### `@mui/x-tree-view@8.0.0-beta.1`
73
+
74
+ Internal changes.
75
+
76
+ #### `@mui/x-tree-view-pro@8.0.0-beta.1` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
77
+
78
+ Same changes as in `@mui/x-tree-view@8.0.0-beta.1`.
79
+
80
+ ### Docs
81
+
82
+ - [docs] Fix 404 (#17033) @alexfauquette
83
+ - [docs] Fix Data Grid advanced list view demo (#17064) @KenanYusuf
84
+
8
85
  ## 8.0.0-beta.0
9
86
 
10
87
  <img width="100%" alt="MUI X v8 Beta is live" src="https://github.com/user-attachments/assets/61ec4dd8-c946-456b-8b45-d51de8772f5d">
@@ -1,11 +1,12 @@
1
1
  import * as React from 'react';
2
2
  import { DefaultizedProps, SlotComponentPropsFromProps } from '@mui/x-internals/types';
3
- import { PickersDayProps, ExportedPickersDayProps } from "../PickersDay/PickersDay.js";
3
+ import { PickerDayOwnerState, PickersDayProps } from "../PickersDay/index.js";
4
+ import { ExportedPickersDayProps } from "../PickersDay/PickersDay.types.js";
4
5
  import { PickerOnChangeFn } from "../internals/hooks/useViews.js";
5
6
  import { SlideDirection, SlideTransitionProps } from "./PickersSlideTransition.js";
6
7
  import { BaseDateValidationProps, DayValidationProps, MonthValidationProps, YearValidationProps } from "../internals/models/validation.js";
7
8
  import { DayCalendarClasses } from "./dayCalendarClasses.js";
8
- import { PickerOwnerState, PickerValidDate, TimezoneProps } from "../models/index.js";
9
+ import { PickerValidDate, TimezoneProps } from "../models/index.js";
9
10
  import { FormProps } from "../internals/models/formProps.js";
10
11
  export interface DayCalendarSlots {
11
12
  /**
@@ -18,11 +19,6 @@ export interface DayCalendarSlots {
18
19
  export interface DayCalendarSlotProps {
19
20
  day?: SlotComponentPropsFromProps<PickersDayProps, {}, PickerDayOwnerState>;
20
21
  }
21
- export interface PickerDayOwnerState extends PickerOwnerState {
22
- isDaySelected: boolean;
23
- isDayDisabled: boolean;
24
- day: PickerValidDate;
25
- }
26
22
  export interface ExportedDayCalendarProps extends ExportedPickersDayProps {
27
23
  /**
28
24
  * If `true`, calls `renderLoading` instead of rendering the day calendar.
@@ -17,7 +17,7 @@ var _RtlProvider = require("@mui/system/RtlProvider");
17
17
  var _styles = require("@mui/material/styles");
18
18
  var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
19
19
  var _clsx = _interopRequireDefault(require("clsx"));
20
- var _PickersDay = require("../PickersDay/PickersDay");
20
+ var _PickersDay = require("../PickersDay");
21
21
  var _usePickerTranslations = require("../hooks/usePickerTranslations");
22
22
  var _useUtils = require("../internals/hooks/useUtils");
23
23
  var _dimensions = require("../internals/constants/dimensions");
@@ -25,7 +25,7 @@ var _PickersSlideTransition = require("./PickersSlideTransition");
25
25
  var _useIsDateDisabled = require("./useIsDateDisabled");
26
26
  var _dateUtils = require("../internals/utils/date-utils");
27
27
  var _dayCalendarClasses = require("./dayCalendarClasses");
28
- var _usePickerPrivateContext = require("../internals/hooks/usePickerPrivateContext");
28
+ var _usePickerDayOwnerState = require("../PickersDay/usePickerDayOwnerState");
29
29
  var _jsxRuntime = require("react/jsx-runtime");
30
30
  const _excluded = ["parentProps", "day", "focusedDay", "selectedDays", "isDateDisabled", "currentMonthNumber", "isViewFocused"],
31
31
  _excluded2 = ["ownerState"];
@@ -162,14 +162,23 @@ function WrappedDay(_ref) {
162
162
  } = parentProps;
163
163
  const utils = (0, _useUtils.useUtils)();
164
164
  const now = (0, _useUtils.useNow)(timezone);
165
- const {
166
- ownerState
167
- } = (0, _usePickerPrivateContext.usePickerPrivateContext)();
168
165
  const isFocusableDay = focusedDay != null && utils.isSameDay(day, focusedDay);
169
166
  const isFocusedDay = isViewFocused && isFocusableDay;
170
167
  const isSelected = selectedDays.some(selectedDay => utils.isSameDay(selectedDay, day));
171
168
  const isToday = utils.isSameDay(day, now);
172
169
  const isDisabled = React.useMemo(() => disabled || isDateDisabled(day), [disabled, isDateDisabled, day]);
170
+ const isOutsideCurrentMonth = React.useMemo(() => utils.getMonth(day) !== currentMonthNumber, [utils, day, currentMonthNumber]);
171
+ const ownerState = (0, _usePickerDayOwnerState.usePickerDayOwnerState)({
172
+ day,
173
+ selected: isSelected,
174
+ disabled: isDisabled,
175
+ today: isToday,
176
+ outsideCurrentMonth: isOutsideCurrentMonth,
177
+ disableMargin: undefined,
178
+ // This prop can only be defined using slotProps.day so the ownerState for useSlotProps cannot have its value.
179
+ disableHighlightToday,
180
+ showDaysOutsideCurrentMonth
181
+ });
173
182
  const Day = slots?.day ?? _PickersDay.PickersDay;
174
183
  // We don't want to pass to ownerState down, to avoid re-rendering all the day whenever a prop changes.
175
184
  const _useSlotProps = (0, _useSlotProps2.default)({
@@ -190,7 +199,6 @@ function WrappedDay(_ref) {
190
199
  })
191
200
  }),
192
201
  dayProps = (0, _objectWithoutPropertiesLoose2.default)(_useSlotProps, _excluded2);
193
- const outsideCurrentMonth = React.useMemo(() => utils.getMonth(day) !== currentMonthNumber, [utils, day, currentMonthNumber]);
194
202
  const isFirstVisibleCell = React.useMemo(() => {
195
203
  const startOfMonth = utils.startOfMonth(utils.setMonth(day, currentMonthNumber));
196
204
  if (!showDaysOutsideCurrentMonth) {
@@ -208,9 +216,9 @@ function WrappedDay(_ref) {
208
216
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(Day, (0, _extends2.default)({}, dayProps, {
209
217
  day: day,
210
218
  disabled: isDisabled,
211
- autoFocus: !outsideCurrentMonth && isFocusedDay,
219
+ autoFocus: !isOutsideCurrentMonth && isFocusedDay,
212
220
  today: isToday,
213
- outsideCurrentMonth: outsideCurrentMonth,
221
+ outsideCurrentMonth: isOutsideCurrentMonth,
214
222
  isFirstVisibleCell: isFirstVisibleCell,
215
223
  isLastVisibleCell: isLastVisibleCell,
216
224
  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>;
@@ -6,26 +6,12 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.useDateField = void 0;
8
8
  var _useField = require("../internals/hooks/useField");
9
- var _hooks = require("../hooks");
10
9
  var _managers = require("../managers");
11
10
  const useDateField = props => {
12
11
  const manager = (0, _managers.useDateManager)(props);
13
- const {
14
- forwardedProps,
15
- internalProps
16
- } = (0, _hooks.useSplitFieldProps)(props, 'date');
17
- const internalPropsWithDefaults = (0, _useField.useFieldInternalPropsWithDefaults)({
18
- manager,
19
- internalProps
20
- });
21
12
  return (0, _useField.useField)({
22
- forwardedProps,
23
- internalProps: internalPropsWithDefaults,
24
- valueManager: manager.internal_valueManager,
25
- fieldValueManager: manager.internal_fieldValueManager,
26
- validator: manager.validator,
27
- valueType: manager.valueType,
28
- getOpenPickerButtonAriaLabel: manager.internal_useOpenPickerButtonAriaLabel()
13
+ manager,
14
+ props
29
15
  });
30
16
  };
31
17
  exports.useDateField = useDateField;
@@ -106,6 +106,7 @@ process.env.NODE_ENV !== "production" ? DatePicker.propTypes = {
106
106
  disableHighlightToday: _propTypes.default.bool,
107
107
  /**
108
108
  * If `true`, the button to open the Picker will not be rendered (it will only render the field).
109
+ * @deprecated Use the [field component](https://next.mui.com/x/react-date-pickers/fields/) instead.
109
110
  * @default false
110
111
  */
111
112
  disableOpenPicker: _propTypes.default.bool,
@@ -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>;
@@ -6,26 +6,12 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.useDateTimeField = void 0;
8
8
  var _useField = require("../internals/hooks/useField");
9
- var _hooks = require("../hooks");
10
9
  var _managers = require("../managers");
11
10
  const useDateTimeField = props => {
12
11
  const manager = (0, _managers.useDateTimeManager)(props);
13
- const {
14
- forwardedProps,
15
- internalProps
16
- } = (0, _hooks.useSplitFieldProps)(props, 'date-time');
17
- const internalPropsWithDefaults = (0, _useField.useFieldInternalPropsWithDefaults)({
18
- manager,
19
- internalProps
20
- });
21
12
  return (0, _useField.useField)({
22
- forwardedProps,
23
- internalProps: internalPropsWithDefaults,
24
- valueManager: manager.internal_valueManager,
25
- fieldValueManager: manager.internal_fieldValueManager,
26
- validator: manager.validator,
27
- valueType: manager.valueType,
28
- getOpenPickerButtonAriaLabel: manager.internal_useOpenPickerButtonAriaLabel()
13
+ manager,
14
+ props
29
15
  });
30
16
  };
31
17
  exports.useDateTimeField = useDateTimeField;
@@ -121,6 +121,7 @@ process.env.NODE_ENV !== "production" ? DateTimePicker.propTypes = {
121
121
  disableIgnoringDatePartForTimeValidation: _propTypes.default.bool,
122
122
  /**
123
123
  * If `true`, the button to open the Picker will not be rendered (it will only render the field).
124
+ * @deprecated Use the [field component](https://next.mui.com/x/react-date-pickers/fields/) instead.
124
125
  * @default false
125
126
  */
126
127
  disableOpenPicker: _propTypes.default.bool,
@@ -121,6 +121,7 @@ DesktopDatePicker.propTypes = {
121
121
  disableHighlightToday: _propTypes.default.bool,
122
122
  /**
123
123
  * If `true`, the button to open the Picker will not be rendered (it will only render the field).
124
+ * @deprecated Use the [field component](https://next.mui.com/x/react-date-pickers/fields/) instead.
124
125
  * @default false
125
126
  */
126
127
  disableOpenPicker: _propTypes.default.bool,
@@ -210,6 +210,7 @@ DesktopDateTimePicker.propTypes = {
210
210
  disableIgnoringDatePartForTimeValidation: _propTypes.default.bool,
211
211
  /**
212
212
  * If `true`, the button to open the Picker will not be rendered (it will only render the field).
213
+ * @deprecated Use the [field component](https://next.mui.com/x/react-date-pickers/fields/) instead.
213
214
  * @default false
214
215
  */
215
216
  disableOpenPicker: _propTypes.default.bool,
@@ -135,6 +135,7 @@ DesktopTimePicker.propTypes = {
135
135
  disableIgnoringDatePartForTimeValidation: _propTypes.default.bool,
136
136
  /**
137
137
  * If `true`, the button to open the Picker will not be rendered (it will only render the field).
138
+ * @deprecated Use the [field component](https://next.mui.com/x/react-date-pickers/fields/) instead.
138
139
  * @default false
139
140
  */
140
141
  disableOpenPicker: _propTypes.default.bool,
@@ -114,6 +114,7 @@ MobileDatePicker.propTypes = {
114
114
  disableHighlightToday: _propTypes.default.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.default.bool,
@@ -172,6 +172,7 @@ MobileDateTimePicker.propTypes = {
172
172
  disableIgnoringDatePartForTimeValidation: _propTypes.default.bool,
173
173
  /**
174
174
  * If `true`, the button to open the Picker will not be rendered (it will only render the field).
175
+ * @deprecated Use the [field component](https://next.mui.com/x/react-date-pickers/fields/) instead.
175
176
  * @default false
176
177
  */
177
178
  disableOpenPicker: _propTypes.default.bool,
@@ -120,6 +120,7 @@ MobileTimePicker.propTypes = {
120
120
  disableIgnoringDatePartForTimeValidation: _propTypes.default.bool,
121
121
  /**
122
122
  * If `true`, the button to open the Picker will not be rendered (it will only render the field).
123
+ * @deprecated Use the [field component](https://next.mui.com/x/react-date-pickers/fields/) instead.
123
124
  * @default false
124
125
  */
125
126
  disableOpenPicker: _propTypes.default.bool,
@@ -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
  };
@@ -18,22 +18,22 @@ var _styles = require("@mui/material/styles");
18
18
  var _useUtils = require("../internals/hooks/useUtils");
19
19
  var _dimensions = require("../internals/constants/dimensions");
20
20
  var _pickersDayClasses = require("./pickersDayClasses");
21
+ var _usePickerDayOwnerState = require("./usePickerDayOwnerState");
21
22
  var _jsxRuntime = require("react/jsx-runtime");
22
- const _excluded = ["autoFocus", "className", "day", "disabled", "disableHighlightToday", "disableMargin", "hidden", "isAnimating", "onClick", "onDaySelect", "onFocus", "onBlur", "onKeyDown", "onMouseDown", "onMouseEnter", "outsideCurrentMonth", "selected", "showDaysOutsideCurrentMonth", "children", "today", "isFirstVisibleCell", "isLastVisibleCell"];
23
- const useUtilityClasses = ownerState => {
23
+ 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"];
24
+ const useUtilityClasses = (classes, ownerState) => {
24
25
  const {
25
- selected,
26
+ isDaySelected,
27
+ isDayDisabled,
28
+ isDayCurrent,
29
+ isDayOutsideMonth,
26
30
  disableMargin,
27
31
  disableHighlightToday,
28
- today,
29
- disabled,
30
- outsideCurrentMonth,
31
- showDaysOutsideCurrentMonth,
32
- classes
32
+ showDaysOutsideCurrentMonth
33
33
  } = ownerState;
34
- const isHiddenDaySpacingFiller = outsideCurrentMonth && !showDaysOutsideCurrentMonth;
34
+ const isHiddenDaySpacingFiller = isDayOutsideMonth && !showDaysOutsideCurrentMonth;
35
35
  const slots = {
36
- root: ['root', selected && !isHiddenDaySpacingFiller && 'selected', disabled && 'disabled', !disableMargin && 'dayWithMargin', !disableHighlightToday && today && 'today', outsideCurrentMonth && showDaysOutsideCurrentMonth && 'dayOutsideMonth', isHiddenDaySpacingFiller && 'hiddenDaySpacingFiller'],
36
+ root: ['root', isDaySelected && !isHiddenDaySpacingFiller && 'selected', isDayDisabled && 'disabled', !disableMargin && 'dayWithMargin', !disableHighlightToday && isDayCurrent && 'today', isDayOutsideMonth && showDaysOutsideCurrentMonth && 'dayOutsideMonth', isHiddenDaySpacingFiller && 'hiddenDaySpacingFiller'],
37
37
  hiddenDaySpacingFiller: ['hiddenDaySpacingFiller']
38
38
  };
39
39
  return (0, _utils.unstable_composeClasses)(slots, _pickersDayClasses.getPickersDayUtilityClass, classes);
@@ -87,7 +87,7 @@ const styleArg = ({
87
87
  }
88
88
  }, {
89
89
  props: {
90
- outsideCurrentMonth: true,
90
+ isDayOutsideMonth: true,
91
91
  showDaysOutsideCurrentMonth: true
92
92
  },
93
93
  style: {
@@ -96,7 +96,7 @@ const styleArg = ({
96
96
  }, {
97
97
  props: {
98
98
  disableHighlightToday: false,
99
- today: true
99
+ isDayCurrent: true
100
100
  },
101
101
  style: {
102
102
  [`&:not(.${_pickersDayClasses.pickersDayClasses.selected})`]: {
@@ -109,7 +109,7 @@ const overridesResolver = (props, styles) => {
109
109
  const {
110
110
  ownerState
111
111
  } = props;
112
- 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];
112
+ 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];
113
113
  };
114
114
  const PickersDayRoot = (0, _styles.styled)(_ButtonBase.default, {
115
115
  name: 'MuiPickersDay',
@@ -138,10 +138,7 @@ const PickersDayRaw = /*#__PURE__*/React.forwardRef(function PickersDay(inProps,
138
138
  const {
139
139
  autoFocus = false,
140
140
  className,
141
- day,
142
- disabled = false,
143
- disableHighlightToday = false,
144
- disableMargin = false,
141
+ classes: classesProp,
145
142
  isAnimating,
146
143
  onClick,
147
144
  onDaySelect,
@@ -150,23 +147,28 @@ const PickersDayRaw = /*#__PURE__*/React.forwardRef(function PickersDay(inProps,
150
147
  onKeyDown = noop,
151
148
  onMouseDown = noop,
152
149
  onMouseEnter = noop,
153
- outsideCurrentMonth,
154
- selected = false,
155
- showDaysOutsideCurrentMonth = false,
156
150
  children,
157
- today: isToday = false
151
+ day,
152
+ selected,
153
+ disabled,
154
+ today,
155
+ outsideCurrentMonth,
156
+ disableMargin,
157
+ disableHighlightToday,
158
+ showDaysOutsideCurrentMonth
158
159
  } = props,
159
160
  other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
160
- const ownerState = (0, _extends2.default)({}, props, {
161
- autoFocus,
161
+ const ownerState = (0, _usePickerDayOwnerState.usePickerDayOwnerState)({
162
+ day,
163
+ selected,
162
164
  disabled,
163
- disableHighlightToday,
165
+ today,
166
+ outsideCurrentMonth,
164
167
  disableMargin,
165
- selected,
166
- showDaysOutsideCurrentMonth,
167
- today: isToday
168
+ disableHighlightToday,
169
+ showDaysOutsideCurrentMonth
168
170
  });
169
- const classes = useUtilityClasses(ownerState);
171
+ const classes = useUtilityClasses(classesProp, ownerState);
170
172
  const utils = (0, _useUtils.useUtils)();
171
173
  const ref = React.useRef(null);
172
174
  const handleRef = (0, _utils.unstable_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,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -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';