@mui/x-date-pickers-pro 9.0.0-beta.0 → 9.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (186) hide show
  1. package/CHANGELOG.md +267 -1
  2. package/DateRangeCalendar/DateRangeCalendar.js +9 -21
  3. package/DateRangeCalendar/DateRangeCalendar.mjs +9 -21
  4. package/DateRangeCalendar/DateRangeCalendar.types.d.mts +3 -3
  5. package/DateRangeCalendar/DateRangeCalendar.types.d.ts +3 -3
  6. package/DateRangePicker/DateRangePicker.d.mts +1 -1
  7. package/DateRangePicker/DateRangePicker.d.ts +1 -1
  8. package/DateRangePicker/DateRangePicker.js +1 -5
  9. package/DateRangePicker/DateRangePicker.mjs +1 -5
  10. package/DateRangePicker/DateRangePicker.types.d.mts +3 -3
  11. package/DateRangePicker/DateRangePicker.types.d.ts +3 -3
  12. package/DateRangePickerDay/DateRangePickerDay.d.mts +3 -3
  13. package/DateRangePickerDay/DateRangePickerDay.d.ts +3 -3
  14. package/DateRangePickerDay/DateRangePickerDay.js +416 -212
  15. package/DateRangePickerDay/DateRangePickerDay.mjs +418 -214
  16. package/DateRangePickerDay/DateRangePickerDay.types.d.mts +71 -23
  17. package/DateRangePickerDay/DateRangePickerDay.types.d.ts +71 -23
  18. package/DateRangePickerDay/dateRangePickerDayClasses.d.mts +35 -31
  19. package/DateRangePickerDay/dateRangePickerDayClasses.d.ts +35 -31
  20. package/DateRangePickerDay/dateRangePickerDayClasses.js +1 -1
  21. package/DateRangePickerDay/dateRangePickerDayClasses.mjs +1 -1
  22. package/DateTimeRangePicker/DateTimeRangePicker.d.mts +1 -1
  23. package/DateTimeRangePicker/DateTimeRangePicker.d.ts +1 -1
  24. package/DateTimeRangePicker/DateTimeRangePicker.js +1 -5
  25. package/DateTimeRangePicker/DateTimeRangePicker.mjs +1 -5
  26. package/DateTimeRangePicker/DateTimeRangePicker.types.d.mts +3 -3
  27. package/DateTimeRangePicker/DateTimeRangePicker.types.d.ts +3 -3
  28. package/DesktopDateRangePicker/DesktopDateRangePicker.d.mts +1 -1
  29. package/DesktopDateRangePicker/DesktopDateRangePicker.d.ts +1 -1
  30. package/DesktopDateRangePicker/DesktopDateRangePicker.js +1 -5
  31. package/DesktopDateRangePicker/DesktopDateRangePicker.mjs +1 -5
  32. package/DesktopDateRangePicker/DesktopDateRangePicker.types.d.mts +3 -3
  33. package/DesktopDateRangePicker/DesktopDateRangePicker.types.d.ts +3 -3
  34. package/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.d.mts +1 -1
  35. package/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.d.ts +1 -1
  36. package/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.js +1 -5
  37. package/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.mjs +1 -5
  38. package/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.types.d.mts +3 -3
  39. package/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.types.d.ts +3 -3
  40. package/DesktopTimeRangePicker/DesktopTimeRangePicker.d.mts +1 -1
  41. package/DesktopTimeRangePicker/DesktopTimeRangePicker.d.ts +1 -1
  42. package/DesktopTimeRangePicker/DesktopTimeRangePicker.js +0 -4
  43. package/DesktopTimeRangePicker/DesktopTimeRangePicker.mjs +0 -4
  44. package/DesktopTimeRangePicker/DesktopTimeRangePicker.types.d.mts +3 -3
  45. package/DesktopTimeRangePicker/DesktopTimeRangePicker.types.d.ts +3 -3
  46. package/MobileDateRangePicker/MobileDateRangePicker.d.mts +1 -1
  47. package/MobileDateRangePicker/MobileDateRangePicker.d.ts +1 -1
  48. package/MobileDateRangePicker/MobileDateRangePicker.js +1 -5
  49. package/MobileDateRangePicker/MobileDateRangePicker.mjs +1 -5
  50. package/MobileDateRangePicker/MobileDateRangePicker.types.d.mts +3 -3
  51. package/MobileDateRangePicker/MobileDateRangePicker.types.d.ts +3 -3
  52. package/MobileDateTimeRangePicker/MobileDateTimeRangePicker.d.mts +1 -1
  53. package/MobileDateTimeRangePicker/MobileDateTimeRangePicker.d.ts +1 -1
  54. package/MobileDateTimeRangePicker/MobileDateTimeRangePicker.js +1 -5
  55. package/MobileDateTimeRangePicker/MobileDateTimeRangePicker.mjs +1 -5
  56. package/MobileDateTimeRangePicker/MobileDateTimeRangePicker.types.d.mts +3 -3
  57. package/MobileDateTimeRangePicker/MobileDateTimeRangePicker.types.d.ts +3 -3
  58. package/MobileTimeRangePicker/MobileTimeRangePicker.d.mts +1 -1
  59. package/MobileTimeRangePicker/MobileTimeRangePicker.d.ts +1 -1
  60. package/MobileTimeRangePicker/MobileTimeRangePicker.js +0 -4
  61. package/MobileTimeRangePicker/MobileTimeRangePicker.mjs +0 -4
  62. package/MobileTimeRangePicker/MobileTimeRangePicker.types.d.mts +3 -3
  63. package/MobileTimeRangePicker/MobileTimeRangePicker.types.d.ts +3 -3
  64. package/MultiInputDateRangeField/MultiInputDateRangeField.d.mts +2 -2
  65. package/MultiInputDateRangeField/MultiInputDateRangeField.d.ts +2 -2
  66. package/MultiInputDateRangeField/MultiInputDateRangeField.js +0 -4
  67. package/MultiInputDateRangeField/MultiInputDateRangeField.mjs +0 -4
  68. package/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.d.mts +2 -2
  69. package/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.d.ts +2 -2
  70. package/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +0 -4
  71. package/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.mjs +0 -4
  72. package/MultiInputTimeRangeField/MultiInputTimeRangeField.d.mts +2 -2
  73. package/MultiInputTimeRangeField/MultiInputTimeRangeField.d.ts +2 -2
  74. package/MultiInputTimeRangeField/MultiInputTimeRangeField.js +0 -4
  75. package/MultiInputTimeRangeField/MultiInputTimeRangeField.mjs +0 -4
  76. package/SingleInputDateRangeField/SingleInputDateRangeField.d.mts +1 -1
  77. package/SingleInputDateRangeField/SingleInputDateRangeField.d.ts +1 -1
  78. package/SingleInputDateRangeField/SingleInputDateRangeField.js +22 -28
  79. package/SingleInputDateRangeField/SingleInputDateRangeField.mjs +22 -28
  80. package/SingleInputDateRangeField/SingleInputDateRangeField.types.d.mts +2 -2
  81. package/SingleInputDateRangeField/SingleInputDateRangeField.types.d.ts +2 -2
  82. package/SingleInputDateRangeField/useSingleInputDateRangeField.d.mts +1 -1
  83. package/SingleInputDateRangeField/useSingleInputDateRangeField.d.ts +1 -1
  84. package/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.d.mts +1 -1
  85. package/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.d.ts +1 -1
  86. package/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.js +22 -28
  87. package/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.mjs +22 -28
  88. package/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.types.d.mts +2 -2
  89. package/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.types.d.ts +2 -2
  90. package/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.d.mts +1 -1
  91. package/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.d.ts +1 -1
  92. package/SingleInputTimeRangeField/SingleInputTimeRangeField.d.mts +1 -1
  93. package/SingleInputTimeRangeField/SingleInputTimeRangeField.d.ts +1 -1
  94. package/SingleInputTimeRangeField/SingleInputTimeRangeField.js +22 -28
  95. package/SingleInputTimeRangeField/SingleInputTimeRangeField.mjs +22 -28
  96. package/SingleInputTimeRangeField/SingleInputTimeRangeField.types.d.mts +2 -2
  97. package/SingleInputTimeRangeField/SingleInputTimeRangeField.types.d.ts +2 -2
  98. package/SingleInputTimeRangeField/useSingleInputTimeRangeField.d.mts +1 -1
  99. package/SingleInputTimeRangeField/useSingleInputTimeRangeField.d.ts +1 -1
  100. package/StaticDateRangePicker/StaticDateRangePicker.js +1 -1
  101. package/StaticDateRangePicker/StaticDateRangePicker.mjs +1 -1
  102. package/TimeRangePicker/TimeRangePicker.d.mts +1 -1
  103. package/TimeRangePicker/TimeRangePicker.d.ts +1 -1
  104. package/TimeRangePicker/TimeRangePicker.js +0 -4
  105. package/TimeRangePicker/TimeRangePicker.mjs +0 -4
  106. package/TimeRangePicker/TimeRangePicker.types.d.mts +3 -3
  107. package/TimeRangePicker/TimeRangePicker.types.d.ts +3 -3
  108. package/hooks/useMultiInputRangeField/useMultiInputRangeField.d.mts +8 -9
  109. package/hooks/useMultiInputRangeField/useMultiInputRangeField.d.ts +8 -9
  110. package/hooks/useMultiInputRangeField/useMultiInputRangeField.js +4 -7
  111. package/hooks/useMultiInputRangeField/useMultiInputRangeField.mjs +4 -7
  112. package/hooks/useMultiInputRangeField/useMultiInputRangeFieldSelectedSections.d.mts +1 -1
  113. package/hooks/useMultiInputRangeField/useMultiInputRangeFieldSelectedSections.d.ts +1 -1
  114. package/hooks/useMultiInputRangeField/useTextFieldProps.d.mts +3 -3
  115. package/hooks/useMultiInputRangeField/useTextFieldProps.d.ts +3 -3
  116. package/hooks/useMultiInputRangeField/useTextFieldProps.js +1 -3
  117. package/hooks/useMultiInputRangeField/useTextFieldProps.mjs +1 -3
  118. package/index.d.mts +0 -1
  119. package/index.d.ts +0 -1
  120. package/index.js +1 -12
  121. package/index.mjs +1 -2
  122. package/internals/constants/dimensions.d.mts +1 -2
  123. package/internals/constants/dimensions.d.ts +1 -2
  124. package/internals/constants/dimensions.js +7 -2
  125. package/internals/constants/dimensions.mjs +2 -2
  126. package/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.d.mts +2 -2
  127. package/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.d.ts +2 -2
  128. package/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +2 -2
  129. package/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.mjs +2 -2
  130. package/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.types.d.mts +5 -5
  131. package/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.types.d.ts +5 -5
  132. package/internals/hooks/useMobileRangePicker/useMobileRangePicker.d.mts +2 -2
  133. package/internals/hooks/useMobileRangePicker/useMobileRangePicker.d.ts +2 -2
  134. package/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +2 -2
  135. package/internals/hooks/useMobileRangePicker/useMobileRangePicker.mjs +2 -2
  136. package/internals/hooks/useMobileRangePicker/useMobileRangePicker.types.d.mts +6 -6
  137. package/internals/hooks/useMobileRangePicker/useMobileRangePicker.types.d.ts +6 -6
  138. package/internals/models/fields.d.mts +1 -1
  139. package/internals/models/fields.d.ts +1 -1
  140. package/internals/models/managers.d.mts +1 -1
  141. package/internals/models/managers.d.ts +1 -1
  142. package/internals/utils/createMultiInputRangeField/createMultiInputRangeField.js +7 -6
  143. package/internals/utils/createMultiInputRangeField/createMultiInputRangeField.mjs +7 -6
  144. package/internals/utils/createMultiInputRangeField/createMultiInputRangeField.types.d.mts +4 -7
  145. package/internals/utils/createMultiInputRangeField/createMultiInputRangeField.types.d.ts +4 -7
  146. package/internals/utils/createMultiInputRangeField/useTextFieldProps.js +7 -5
  147. package/internals/utils/createMultiInputRangeField/useTextFieldProps.mjs +7 -5
  148. package/internals/utils/valueManagers.js +2 -6
  149. package/internals/utils/valueManagers.mjs +3 -7
  150. package/managers/useDateRangeManager.d.mts +4 -6
  151. package/managers/useDateRangeManager.d.ts +4 -6
  152. package/managers/useDateRangeManager.js +1 -3
  153. package/managers/useDateRangeManager.mjs +1 -3
  154. package/managers/useDateTimeRangeManager.d.mts +4 -6
  155. package/managers/useDateTimeRangeManager.d.ts +4 -6
  156. package/managers/useDateTimeRangeManager.js +1 -3
  157. package/managers/useDateTimeRangeManager.mjs +1 -3
  158. package/managers/useTimeRangeManager.d.mts +4 -6
  159. package/managers/useTimeRangeManager.d.ts +4 -6
  160. package/managers/useTimeRangeManager.js +1 -3
  161. package/managers/useTimeRangeManager.mjs +1 -3
  162. package/models/fields.d.mts +2 -2
  163. package/models/fields.d.ts +2 -2
  164. package/package.json +7 -21
  165. package/themeAugmentation/components.d.mts +0 -4
  166. package/themeAugmentation/components.d.ts +0 -4
  167. package/themeAugmentation/overrides.d.mts +0 -2
  168. package/themeAugmentation/overrides.d.ts +0 -2
  169. package/themeAugmentation/props.d.mts +12 -14
  170. package/themeAugmentation/props.d.ts +12 -14
  171. package/DateRangePickerDay2/DateRangePickerDay2.d.mts +0 -7
  172. package/DateRangePickerDay2/DateRangePickerDay2.d.ts +0 -7
  173. package/DateRangePickerDay2/DateRangePickerDay2.js +0 -605
  174. package/DateRangePickerDay2/DateRangePickerDay2.mjs +0 -598
  175. package/DateRangePickerDay2/DateRangePickerDay2.types.d.mts +0 -92
  176. package/DateRangePickerDay2/DateRangePickerDay2.types.d.ts +0 -92
  177. package/DateRangePickerDay2/DateRangePickerDay2.types.js +0 -5
  178. package/DateRangePickerDay2/DateRangePickerDay2.types.mjs +0 -1
  179. package/DateRangePickerDay2/dateRangePickerDay2Classes.d.mts +0 -29
  180. package/DateRangePickerDay2/dateRangePickerDay2Classes.d.ts +0 -29
  181. package/DateRangePickerDay2/dateRangePickerDay2Classes.js +0 -14
  182. package/DateRangePickerDay2/dateRangePickerDay2Classes.mjs +0 -6
  183. package/DateRangePickerDay2/index.d.mts +0 -4
  184. package/DateRangePickerDay2/index.d.ts +0 -4
  185. package/DateRangePickerDay2/index.js +0 -25
  186. package/DateRangePickerDay2/index.mjs +0 -2
@@ -14,205 +14,341 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
14
14
  var _clsx = _interopRequireDefault(require("clsx"));
15
15
  var _internals = require("@mui/x-license/internals");
16
16
  var _styles = require("@mui/material/styles");
17
+ var _ButtonBase = _interopRequireDefault(require("@mui/material/ButtonBase"));
18
+ var _useForkRef = _interopRequireDefault(require("@mui/utils/useForkRef"));
17
19
  var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
20
+ var _useEnhancedEffect = _interopRequireDefault(require("@mui/utils/useEnhancedEffect"));
18
21
  var _internals2 = require("@mui/x-date-pickers/internals");
19
- var _PickersDay = require("@mui/x-date-pickers/PickersDay");
20
22
  var _hooks = require("@mui/x-date-pickers/hooks");
21
23
  var _dateRangePickerDayClasses = require("./dateRangePickerDayClasses");
22
24
  var _jsxRuntime = require("react/jsx-runtime");
23
- const _excluded = ["className", "classes", "isEndOfHighlighting", "isEndOfPreviewing", "isHighlighting", "isPreviewing", "isStartOfHighlighting", "isStartOfPreviewing", "isVisuallySelected", "sx", "draggable", "isFirstVisibleCell", "isLastVisibleCell", "day", "selected", "disabled", "today", "outsideCurrentMonth", "disableMargin", "disableHighlightToday", "showDaysOutsideCurrentMonth"];
24
- const useUtilityClasses = (classes, ownerState) => {
25
+ const _excluded = ["autoFocus", "className", "classes", "isAnimating", "onClick", "onDaySelect", "onFocus", "onBlur", "onKeyDown", "onMouseDown", "onMouseEnter", "children", "isFirstVisibleCell", "isLastVisibleCell", "day", "selected", "disabled", "today", "outsideCurrentMonth", "disableHighlightToday", "showDaysOutsideCurrentMonth", "isEndOfHighlighting", "isEndOfPreviewing", "isHighlighting", "isPreviewing", "isStartOfHighlighting", "isStartOfPreviewing", "isVisuallySelected", "draggable", "isDayFillerCell"];
26
+ const useUtilityClasses = (ownerState, classes) => {
25
27
  const {
26
- // Properties shared with PickersDay
27
28
  isDaySelected,
29
+ disableHighlightToday,
30
+ isDayCurrent,
31
+ isDayDisabled,
28
32
  isDayOutsideMonth,
29
- // Range-specific properties (present in the Base UI implementation)
30
- isDaySelectionStart,
31
- isDaySelectionEnd,
32
- isDayInsideSelection,
33
+ isDayFillerCell,
33
34
  isDayPreviewStart,
34
35
  isDayPreviewEnd,
36
+ isDayInsidePreview,
35
37
  isDayPreviewed,
36
- // Range-specific properties (specific to the MUI implementation)
38
+ isDaySelectionStart,
39
+ isDaySelectionEnd,
40
+ isDayInsideSelection,
41
+ isDayStartOfWeek,
42
+ isDayEndOfWeek,
37
43
  isDayStartOfMonth,
38
44
  isDayEndOfMonth,
39
45
  isDayFirstVisibleCell,
40
46
  isDayLastVisibleCell,
41
- isDayFillerCell
47
+ isDayDraggable
42
48
  } = ownerState;
43
49
  const slots = {
44
- root: ['root', isDaySelected && 'rangeIntervalDayHighlight', isDaySelectionStart && 'rangeIntervalDayHighlightStart', isDaySelectionEnd && 'rangeIntervalDayHighlightEnd', isDayOutsideMonth && 'outsideCurrentMonth', isDayStartOfMonth && 'startOfMonth', isDayEndOfMonth && 'endOfMonth', isDayFirstVisibleCell && 'firstVisibleCell', isDayLastVisibleCell && 'lastVisibleCell', isDayFillerCell && 'hiddenDayFiller'],
45
- rangeIntervalPreview: ['rangeIntervalPreview', isDayPreviewed && 'rangeIntervalDayPreview', (isDayPreviewStart || isDayStartOfMonth) && 'rangeIntervalDayPreviewStart', (isDayPreviewEnd || isDayEndOfMonth) && 'rangeIntervalDayPreviewEnd'],
46
- day: ['day', !isDaySelected && 'notSelectedDate', !isDaySelected && 'dayOutsideRangeInterval', !isDayInsideSelection && 'dayInsideRangeInterval']
50
+ root: ['root', isDayDisabled && 'disabled', !disableHighlightToday && isDayCurrent && !isDaySelected && !isDayFillerCell && 'today', isDayOutsideMonth && 'dayOutsideMonth', isDayFillerCell && 'fillerCell', isDaySelected && 'selected', isDayPreviewStart && 'previewStart', isDayPreviewEnd && 'previewEnd', isDayInsidePreview && 'insidePreviewing', isDaySelectionStart && 'selectionStart', isDaySelectionEnd && 'selectionEnd', isDayInsideSelection && 'insideSelection', isDayEndOfWeek && 'endOfWeek', isDayStartOfWeek && 'startOfWeek', isDayPreviewed && 'previewed', isDayStartOfMonth && 'startOfMonth', isDayEndOfMonth && 'endOfMonth', isDayFirstVisibleCell && 'firstVisibleCell', isDayLastVisibleCell && 'lastVisibleCell', isDayDraggable && 'draggable']
47
51
  };
48
52
  return (0, _composeClasses.default)(slots, _dateRangePickerDayClasses.getDateRangePickerDayUtilityClass, classes);
49
53
  };
50
- const endBorderStyle = {
51
- borderTopRightRadius: '50%',
52
- borderBottomRightRadius: '50%'
53
- };
54
- const startBorderStyle = {
55
- borderTopLeftRadius: '50%',
56
- borderBottomLeftRadius: '50%'
57
- };
58
- const elementOverrides = {
59
- root: ['rangeIntervalDayHighlight', 'rangeIntervalDayHighlightStart', 'rangeIntervalDayHighlightEnd', 'firstVisibleCell', 'lastVisibleCell', 'startOfMonth', 'endOfMonth', 'outsideCurrentMonth', 'hiddenDayFiller'],
60
- rangeIntervalPreview: ['rangeIntervalDayPreview', 'rangeIntervalDayPreviewStart', 'rangeIntervalDayPreviewEnd'],
61
- day: ['notSelectedDate', 'dayOutsideRangeInterval', 'dayInsideRangeInterval']
62
- };
63
- const DateRangePickerDayRoot = (0, _styles.styled)('div', {
54
+ const highlightStyles = theme => ({
55
+ content: '""' /* Creates an empty element */,
56
+ height: '100%',
57
+ backgroundColor: theme.alpha((theme.vars || theme).palette.primary.main, (theme.vars || theme).palette.action.focusOpacity),
58
+ boxSizing: 'border-box',
59
+ left: 'calc(var(--PickerDay-horizontalMargin) * (-1))',
60
+ right: 'calc(var(--PickerDay-horizontalMargin) * (-1))'
61
+ });
62
+ const previewStyles = theme => ({
63
+ content: '""' /* Creates an empty element */,
64
+ height: '100%',
65
+ border: `1.2px dashed ${(theme.vars || theme).palette.divider}`,
66
+ borderLeftColor: 'transparent',
67
+ borderRightColor: 'transparent',
68
+ boxSizing: 'border-box',
69
+ left: 'calc(-1 * var(--PickerDay-horizontalMargin))',
70
+ right: 'calc(-1 * var(--PickerDay-horizontalMargin))'
71
+ });
72
+ const selectedDayStyles = theme => ({
73
+ color: (theme.vars || theme).palette.primary.contrastText,
74
+ backgroundColor: (theme.vars || theme).palette.primary.main,
75
+ fontWeight: theme.typography.fontWeightMedium,
76
+ '&:focus, &:hover': {
77
+ willChange: 'background-color',
78
+ backgroundColor: (theme.vars || theme).palette.primary.dark
79
+ },
80
+ [`&.${_dateRangePickerDayClasses.dateRangePickerDayClasses.disabled}`]: {
81
+ opacity: 0.6
82
+ }
83
+ });
84
+ const insideSelectionStyle = () => ({
85
+ [`&.${_dateRangePickerDayClasses.dateRangePickerDayClasses.disabled}`]: {
86
+ opacity: 0.6
87
+ }
88
+ });
89
+ const DateRangePickerDayRoot = (0, _styles.styled)(_ButtonBase.default, {
64
90
  name: 'MuiDateRangePickerDay',
65
91
  slot: 'Root',
66
- overridesResolver: (_, styles) => {
67
- const overrides = [styles.root];
68
- elementOverrides.root.forEach(key => {
69
- overrides.push({
70
- [`&.${_dateRangePickerDayClasses.dateRangePickerDayClasses[key]}`]: styles[key]
71
- });
72
- });
73
- return overrides;
92
+ overridesResolver: (props, styles) => {
93
+ const {
94
+ ownerState
95
+ } = props;
96
+ return [styles.root, !ownerState.disableHighlightToday && ownerState.isDayCurrent && styles.today, ownerState.isDayOutsideMonth && styles.dayOutsideMonth, ownerState.isDayFillerCell && styles.fillerCell, ownerState.isDaySelected && !ownerState.isDayInsideSelection && styles.selected, ownerState.isDayPreviewStart && styles.previewStart, ownerState.isDayPreviewEnd && styles.previewEnd, ownerState.isDayInsidePreview && styles.insidePreviewing, ownerState.isDayPreviewed && styles.previewed, ownerState.isDaySelectionStart && styles.selectionStart, ownerState.isDaySelectionEnd && styles.selectionEnd, ownerState.isDayInsideSelection && styles.insideSelection, ownerState.isDayDraggable && styles.draggable, ownerState.isDayStartOfWeek && styles.startOfWeek, ownerState.isDayEndOfWeek && styles.endOfWeek, ownerState.isDayStartOfMonth && styles.startOfMonth, ownerState.isDayEndOfMonth && styles.endOfMonth, ownerState.isDayFirstVisibleCell && styles.firstVisibleCell, ownerState.isDayLastVisibleCell && styles.lastVisibleCell];
74
97
  }
75
98
  })(({
76
99
  theme
77
- }) => ({
100
+ }) => (0, _extends2.default)({
101
+ '--PickerDay-horizontalMargin': '2px',
102
+ '--PickerDay-size': '36px'
103
+ }, theme.typography.caption, {
104
+ lineHeight: 1,
105
+ display: 'flex',
106
+ width: 'var(--PickerDay-size)',
107
+ height: 'var(--PickerDay-size)',
108
+ borderRadius: 'calc(var(--PickerDay-size) / 2)',
109
+ padding: 0,
110
+ position: 'relative',
111
+ marginLeft: 'var(--PickerDay-horizontalMargin)',
112
+ marginRight: 'var(--PickerDay-horizontalMargin)',
113
+ // explicitly setting to `transparent` to avoid potentially getting impacted by change from the overridden component
114
+ backgroundColor: 'transparent',
115
+ transition: theme.transitions.create('background-color', {
116
+ duration: theme.transitions.duration.short
117
+ }),
118
+ color: (theme.vars || theme).palette.text.primary,
119
+ '@media (pointer: fine)': {
120
+ '&:hover': {
121
+ backgroundColor: theme.alpha((theme.vars || theme).palette.primary.main, (theme.vars || theme).palette.action.hoverOpacity)
122
+ }
123
+ },
124
+ '&:focus': {
125
+ backgroundColor: theme.alpha((theme.vars || theme).palette.primary.main, (theme.vars || theme).palette.action.focusOpacity)
126
+ },
127
+ zIndex: 1,
128
+ isolation: 'isolate',
129
+ '&::before, &::after': {
130
+ zIndex: -1,
131
+ position: 'absolute',
132
+ pointerEvents: 'none',
133
+ mixBlendMode: 'multiply'
134
+ },
78
135
  variants: [{
79
136
  props: {
80
- isDayFillerCell: false
137
+ isDayDisabled: true
81
138
  },
82
139
  style: {
83
- [`&:first-of-type .${_dateRangePickerDayClasses.dateRangePickerDayClasses.rangeIntervalDayPreview}`]: (0, _extends2.default)({}, startBorderStyle, {
84
- borderLeftColor: (theme.vars || theme).palette.divider
85
- }),
86
- [`&:last-of-type .${_dateRangePickerDayClasses.dateRangePickerDayClasses.rangeIntervalDayPreview}`]: (0, _extends2.default)({}, endBorderStyle, {
87
- borderRightColor: (theme.vars || theme).palette.divider
140
+ color: (theme.vars || theme).palette.text.disabled
141
+ }
142
+ }, {
143
+ props: {
144
+ isDayFillerCell: true
145
+ },
146
+ style: {
147
+ // visibility: 'hidden' does not work here as it hides the element from screen readers
148
+ // and results in unexpected relationships between week day and day columns.
149
+ opacity: 0,
150
+ pointerEvents: 'none'
151
+ }
152
+ }, {
153
+ props: {
154
+ isDayOutsideMonth: true
155
+ },
156
+ style: {
157
+ color: (theme.vars || theme).palette.text.secondary
158
+ }
159
+ }, {
160
+ props: {
161
+ isDayCurrent: true,
162
+ isDaySelected: false
163
+ },
164
+ style: {
165
+ outline: `1px solid ${(theme.vars || theme).palette.text.secondary}`,
166
+ outlineOffset: -1
167
+ }
168
+ }, {
169
+ props: {
170
+ isDayDraggable: true
171
+ },
172
+ style: {
173
+ cursor: 'grab',
174
+ touchAction: 'none'
175
+ }
176
+ }, {
177
+ props: {
178
+ isDayPreviewStart: true
179
+ },
180
+ style: {
181
+ '::after': (0, _extends2.default)({}, previewStyles(theme), {
182
+ borderTopLeftRadius: 'inherit',
183
+ borderBottomLeftRadius: 'inherit',
184
+ borderLeftColor: (theme.vars || theme).palette.divider,
185
+ left: 0
186
+ })
187
+ }
188
+ }, {
189
+ props: {
190
+ isDayPreviewEnd: true
191
+ },
192
+ style: {
193
+ '::after': (0, _extends2.default)({}, previewStyles(theme), {
194
+ borderTopRightRadius: 'inherit',
195
+ borderBottomRightRadius: 'inherit',
196
+ borderRightColor: (theme.vars || theme).palette.divider,
197
+ right: 0
88
198
  })
89
199
  }
90
200
  }, {
91
201
  props: {
92
- isDayFillerCell: false,
93
- isDaySelected: true
202
+ isDayInsidePreview: true
94
203
  },
95
204
  style: {
96
- borderRadius: 0,
97
- color: (theme.vars || theme).palette.primary.contrastText,
98
- backgroundColor: theme.vars ? `rgba(${theme.vars.palette.primary.mainChannel} / ${theme.vars.palette.action.focusOpacity})` : (0, _styles.alpha)(theme.palette.primary.main, theme.palette.action.focusOpacity),
99
- '&:first-of-type': startBorderStyle,
100
- '&:last-of-type': endBorderStyle
205
+ '::after': (0, _extends2.default)({}, previewStyles(theme))
101
206
  }
102
207
  }, {
103
- props: ({
104
- ownerState: {
105
- isDayFillerCell,
106
- isDaySelectionStart,
107
- isDayFirstVisibleCell
208
+ props: {
209
+ isDaySelectionStart: true
210
+ },
211
+ style: {
212
+ '::before': (0, _extends2.default)({}, highlightStyles(theme), {
213
+ borderTopLeftRadius: 'inherit',
214
+ borderBottomLeftRadius: 'inherit',
215
+ left: 0
216
+ })
217
+ }
218
+ }, {
219
+ props: {
220
+ isDaySelectionEnd: true
221
+ },
222
+ style: {
223
+ '::before': (0, _extends2.default)({}, highlightStyles(theme), {
224
+ borderTopRightRadius: 'inherit',
225
+ borderBottomRightRadius: 'inherit',
226
+ right: 0
227
+ }),
228
+ '::after': {
229
+ borderLeftColor: 'transparent'
108
230
  }
109
- }) => !isDayFillerCell && (isDaySelectionStart || isDayFirstVisibleCell),
110
- style: (0, _extends2.default)({}, startBorderStyle, {
111
- paddingLeft: 0
112
- })
231
+ }
113
232
  }, {
114
- props: ({
115
- ownerState: {
116
- isDayFillerCell,
117
- isDaySelectionEnd,
118
- isDayLastVisibleCell
233
+ props: {
234
+ isDayInsideSelection: true
235
+ },
236
+ color: 'initial',
237
+ background: 'initial',
238
+ style: (0, _extends2.default)({
239
+ '::before': (0, _extends2.default)({}, highlightStyles(theme))
240
+ }, insideSelectionStyle())
241
+ }, {
242
+ props: {
243
+ isDaySelected: true,
244
+ isDayInsideSelection: false
245
+ },
246
+ style: (0, _extends2.default)({}, selectedDayStyles(theme))
247
+ }, {
248
+ props: {
249
+ isDaySelectionStart: true,
250
+ isDaySelectionEnd: true
251
+ },
252
+ style: {
253
+ '::before': {
254
+ left: 0,
255
+ right: 0
119
256
  }
120
- }) => !isDayFillerCell && (isDaySelectionEnd || isDayLastVisibleCell),
121
- style: (0, _extends2.default)({}, endBorderStyle, {
122
- paddingRight: 0
123
- })
124
- }]
125
- }));
126
- const DateRangePickerDayRangeIntervalPreview = (0, _styles.styled)('div', {
127
- name: 'MuiDateRangePickerDay',
128
- slot: 'RangeIntervalPreview',
129
- overridesResolver: (_, styles) => {
130
- const overrides = [styles.rangeIntervalPreview];
131
- elementOverrides.rangeIntervalPreview.forEach(key => {
132
- overrides.push({
133
- [`&.${_dateRangePickerDayClasses.dateRangePickerDayClasses[key]}`]: styles[key]
134
- });
135
- });
136
- return overrides;
137
- }
138
- })(({
139
- theme
140
- }) => ({
141
- // replace default day component margin with transparent border to avoid jumping on preview
142
- border: '2px solid transparent',
143
- variants: [{
257
+ }
258
+ }, {
144
259
  props: {
145
- isDayPreviewed: true,
146
- isDayFillerCell: false
260
+ isDaySelectionStart: true,
261
+ isDaySelectionEnd: true,
262
+ isDayPreviewEnd: false,
263
+ isDayPreviewStart: false
147
264
  },
148
265
  style: {
149
- borderRadius: 0,
150
- border: `2px dashed ${(theme.vars || theme).palette.divider}`,
151
- borderLeftColor: 'transparent',
152
- borderRightColor: 'transparent'
266
+ '::after': {
267
+ left: 0,
268
+ right: 0
269
+ }
153
270
  }
154
271
  }, {
155
- props: ({
156
- ownerState: {
157
- isDayPreviewed,
158
- isDayFillerCell,
159
- isDayPreviewStart,
160
- isDayFirstVisibleCell
272
+ props: {
273
+ isDayPreviewEnd: true,
274
+ isDayPreviewStart: true
275
+ },
276
+ style: {
277
+ '::after': {
278
+ left: 0,
279
+ right: 0
161
280
  }
162
- }) => isDayPreviewed && !isDayFillerCell && (isDayPreviewStart || isDayFirstVisibleCell),
163
- style: (0, _extends2.default)({
164
- borderLeftColor: (theme.vars || theme).palette.divider
165
- }, startBorderStyle)
281
+ }
166
282
  }, {
167
- props: ({
168
- ownerState: {
169
- isDayPreviewed,
170
- isDayFillerCell,
171
- isDayPreviewEnd,
172
- isDayLastVisibleCell
283
+ props: {
284
+ isDayEndOfWeek: true
285
+ },
286
+ style: {
287
+ '::after': {
288
+ borderTopRightRadius: 'inherit',
289
+ borderBottomRightRadius: 'inherit',
290
+ borderRightColor: (theme.vars || theme).palette.divider,
291
+ right: 0
292
+ },
293
+ '::before': {
294
+ borderTopRightRadius: 'inherit',
295
+ borderBottomRightRadius: 'inherit',
296
+ right: 0
173
297
  }
174
- }) => isDayPreviewed && !isDayFillerCell && (isDayPreviewEnd || isDayLastVisibleCell),
175
- style: (0, _extends2.default)({
176
- borderRightColor: (theme.vars || theme).palette.divider
177
- }, endBorderStyle)
178
- }]
179
- }));
180
- const DateRangePickerDayDay = (0, _styles.styled)(_PickersDay.PickersDay, {
181
- name: 'MuiDateRangePickerDay',
182
- slot: 'Day',
183
- overridesResolver: (_, styles) => {
184
- const overrides = [styles.day];
185
- elementOverrides.day.forEach(key => {
186
- overrides.push({
187
- [`&.${_dateRangePickerDayClasses.dateRangePickerDayClasses[key]}`]: styles[key]
188
- });
189
- });
190
- return overrides;
191
- }
192
- })({
193
- // Required to overlap preview border
194
- transform: 'scale(1.1)',
195
- '& > *': {
196
- transform: 'scale(0.9)'
197
- },
198
- variants: [{
298
+ }
299
+ }, {
199
300
  props: {
200
- draggable: true
301
+ isDayStartOfWeek: true
201
302
  },
202
303
  style: {
203
- cursor: 'grab',
204
- touchAction: 'none'
304
+ '::after': {
305
+ borderTopLeftRadius: 'inherit',
306
+ borderBottomLeftRadius: 'inherit',
307
+ borderLeftColor: (theme.vars || theme).palette.divider,
308
+ left: 0
309
+ },
310
+ '::before': {
311
+ borderTopLeftRadius: 'inherit',
312
+ borderBottomLeftRadius: 'inherit',
313
+ left: 0
314
+ }
205
315
  }
206
316
  }]
207
- });
208
- const DateRangePickerDayRaw = /*#__PURE__*/React.forwardRef(function DateRangePickerDay(inProps, ref) {
317
+ }));
318
+ const noop = () => {};
319
+ const DateRangePickerDayRaw = /*#__PURE__*/React.forwardRef(function DateRangePickerDay(inProps, forwardedRef) {
209
320
  const props = (0, _styles.useThemeProps)({
210
321
  props: inProps,
211
322
  name: 'MuiDateRangePickerDay'
212
323
  });
324
+ (0, _internals.useLicenseVerifier)({
325
+ releaseDate: "MTc3NTYwNjQwMDAwMA==",
326
+ version: "9.0.0",
327
+ name: 'x-date-pickers-pro'
328
+ });
329
+ const adapter = (0, _hooks.usePickerAdapter)();
213
330
  const {
331
+ autoFocus = false,
214
332
  className,
215
333
  classes: classesProp,
334
+ isAnimating,
335
+ onClick,
336
+ onDaySelect,
337
+ onFocus = noop,
338
+ onBlur = noop,
339
+ onKeyDown = noop,
340
+ onMouseDown = noop,
341
+ onMouseEnter = noop,
342
+ children,
343
+ isFirstVisibleCell = false,
344
+ isLastVisibleCell = false,
345
+ day,
346
+ selected,
347
+ disabled,
348
+ today,
349
+ outsideCurrentMonth,
350
+ disableHighlightToday,
351
+ showDaysOutsideCurrentMonth,
216
352
  isEndOfHighlighting,
217
353
  isEndOfPreviewing,
218
354
  isHighlighting,
@@ -220,44 +356,25 @@ const DateRangePickerDayRaw = /*#__PURE__*/React.forwardRef(function DateRangePi
220
356
  isStartOfHighlighting,
221
357
  isStartOfPreviewing,
222
358
  isVisuallySelected,
223
- sx,
224
359
  draggable,
225
- isFirstVisibleCell,
226
- isLastVisibleCell,
227
- day,
228
- selected,
229
- disabled,
230
- today,
231
- outsideCurrentMonth,
232
- disableMargin,
233
- disableHighlightToday,
234
- showDaysOutsideCurrentMonth
360
+ isDayFillerCell: isDayFillerCellProp
235
361
  } = props,
236
362
  other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
237
- (0, _internals.useLicenseVerifier)({
238
- releaseDate: "MTc3NDU2OTYwMDAwMA==",
239
- version: "9.0.0-beta.0",
240
- name: 'x-date-pickers-pro'
241
- });
242
- const adapter = (0, _hooks.usePickerAdapter)();
243
- const shouldRenderHighlight = isHighlighting && !outsideCurrentMonth;
244
- const shouldRenderPreview = isPreviewing && !outsideCurrentMonth;
245
- const pickersDayOwnerState = (0, _internals2.usePickerDayOwnerState)({
363
+ const pickerDayOwnerState = (0, _internals2.usePickerDayOwnerState)({
246
364
  day,
247
365
  selected,
248
366
  disabled,
249
367
  today,
250
368
  outsideCurrentMonth,
251
- disableMargin,
252
369
  disableHighlightToday,
253
370
  showDaysOutsideCurrentMonth
254
371
  });
255
- const ownerState = (0, _extends2.default)({}, pickersDayOwnerState, {
372
+ const ownerState = (0, _extends2.default)({}, pickerDayOwnerState, {
256
373
  // Properties that the Base UI implementation will have
257
374
  isDaySelectionStart: isStartOfHighlighting,
258
375
  isDaySelectionEnd: isEndOfHighlighting,
259
376
  isDayInsideSelection: isHighlighting && !isStartOfHighlighting && !isEndOfHighlighting,
260
- isDaySelected: isHighlighting,
377
+ isDaySelected: isVisuallySelected ?? (isHighlighting || Boolean(selected)),
261
378
  isDayPreviewed: isPreviewing,
262
379
  isDayPreviewStart: isStartOfPreviewing,
263
380
  isDayPreviewEnd: isEndOfPreviewing,
@@ -267,34 +384,70 @@ const DateRangePickerDayRaw = /*#__PURE__*/React.forwardRef(function DateRangePi
267
384
  isDayEndOfMonth: adapter.isSameDay(day, adapter.endOfMonth(day)),
268
385
  isDayFirstVisibleCell: isFirstVisibleCell,
269
386
  isDayLastVisibleCell: isLastVisibleCell,
270
- isDayFillerCell: outsideCurrentMonth && !showDaysOutsideCurrentMonth
387
+ isDayFillerCell: isDayFillerCellProp ?? (outsideCurrentMonth && !showDaysOutsideCurrentMonth),
388
+ isDayDraggable: Boolean(draggable)
271
389
  });
272
- const classes = useUtilityClasses(classesProp, ownerState);
273
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(DateRangePickerDayRoot, {
274
- className: (0, _clsx.default)(classes.root, className),
275
- ownerState: ownerState,
276
- sx: sx,
277
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(DateRangePickerDayRangeIntervalPreview, {
278
- className: classes.rangeIntervalPreview,
390
+ const classes = useUtilityClasses(ownerState, classesProp);
391
+ const ref = React.useRef(null);
392
+ const handleRef = (0, _useForkRef.default)(ref, forwardedRef);
393
+
394
+ // Since this is rendered when a Popper is opened we can't use passive effects.
395
+ // Focusing in passive effects in Popper causes scroll jump.
396
+ (0, _useEnhancedEffect.default)(() => {
397
+ if (autoFocus && !disabled && !isAnimating && !outsideCurrentMonth) {
398
+ // ref.current being null would be a bug in MUI
399
+ ref.current.focus();
400
+ }
401
+ }, [autoFocus, disabled, isAnimating, outsideCurrentMonth]);
402
+
403
+ // For a day outside the current month, move the focus from mouseDown to mouseUp
404
+ // Goal: have the onClick ends before sliding to the new month
405
+ const handleMouseDown = event => {
406
+ onMouseDown(event);
407
+ if (outsideCurrentMonth) {
408
+ event.preventDefault();
409
+ }
410
+ };
411
+ const handleClick = event => {
412
+ event.defaultMuiPrevented = true;
413
+ if (!disabled) {
414
+ onDaySelect(day);
415
+ }
416
+ if (outsideCurrentMonth) {
417
+ event.currentTarget.focus();
418
+ }
419
+ if (onClick) {
420
+ onClick(event);
421
+ }
422
+ };
423
+ if (ownerState.isDayFillerCell) {
424
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(DateRangePickerDayRoot, {
425
+ ref: handleRef,
279
426
  ownerState: ownerState,
280
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(DateRangePickerDayDay, (0, _extends2.default)({}, other, {
281
- ref: ref,
282
- day: day,
283
- selected: isVisuallySelected,
284
- disabled: disabled,
285
- today: today,
286
- outsideCurrentMonth: outsideCurrentMonth,
287
- disableMargin: true,
288
- disableHighlightToday: disableHighlightToday,
289
- showDaysOutsideCurrentMonth: showDaysOutsideCurrentMonth,
290
- className: classes.day,
291
- ownerState: ownerState,
292
- draggable: draggable,
293
- isFirstVisibleCell: isFirstVisibleCell,
294
- isLastVisibleCell: isLastVisibleCell
295
- }))
296
- })
297
- });
427
+ className: (0, _clsx.default)(classes.root, className),
428
+ as: "div"
429
+ });
430
+ }
431
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(DateRangePickerDayRoot, (0, _extends2.default)({
432
+ ref: handleRef,
433
+ centerRipple: true
434
+ // compat with DateRangePickerDay for tests
435
+ ,
436
+
437
+ disabled: disabled,
438
+ tabIndex: selected ? 0 : -1,
439
+ onKeyDown: event => onKeyDown(event, day),
440
+ onFocus: event => onFocus(event, day),
441
+ onBlur: event => onBlur(event, day),
442
+ onMouseEnter: event => onMouseEnter(event, day),
443
+ onClick: handleClick,
444
+ onMouseDown: handleMouseDown,
445
+ draggable: draggable
446
+ }, other, {
447
+ ownerState: ownerState,
448
+ className: (0, _clsx.default)(classes.root, className),
449
+ children: children ?? adapter.format(day, 'dayOfMonth')
450
+ }));
298
451
  });
299
452
  if (process.env.NODE_ENV !== "production") DateRangePickerDayRaw.displayName = "DateRangePickerDayRaw";
300
453
  process.env.NODE_ENV !== "production" ? DateRangePickerDayRaw.propTypes = {
@@ -328,20 +481,15 @@ process.env.NODE_ENV !== "production" ? DateRangePickerDayRaw.propTypes = {
328
481
  */
329
482
  day: _propTypes.default.object.isRequired,
330
483
  /**
331
- * If `true`, renders as disabled.
484
+ * If `true`, the day is disabled.
332
485
  * @default false
333
486
  */
334
487
  disabled: _propTypes.default.bool,
335
488
  /**
336
- * If `true`, today's date is rendering without highlighting with circle.
489
+ * If `true`, today's day is not highlighted.
337
490
  * @default false
338
491
  */
339
492
  disableHighlightToday: _propTypes.default.bool,
340
- /**
341
- * If `true`, days are rendering without margin. Useful for displaying linked range of days.
342
- * @default false
343
- */
344
- disableMargin: _propTypes.default.bool,
345
493
  /**
346
494
  * If `true`, the ripple effect is disabled.
347
495
  *
@@ -374,56 +522,114 @@ process.env.NODE_ENV !== "production" ? DateRangePickerDayRaw.propTypes = {
374
522
  * if needed.
375
523
  */
376
524
  focusVisibleClassName: _propTypes.default.string,
525
+ /**
526
+ * If `true`, the day is being animated.
527
+ * @default false
528
+ */
377
529
  isAnimating: _propTypes.default.bool,
530
+ /**
531
+ * If `true`, the day is a filler day (its content is hidden).
532
+ * @default false
533
+ */
534
+ isDayFillerCell: _propTypes.default.bool,
378
535
  /**
379
536
  * Set to `true` if the `day` is the end of a highlighted date range.
380
537
  */
381
- isEndOfHighlighting: _propTypes.default.bool.isRequired,
538
+ isEndOfHighlighting: _propTypes.default.bool,
382
539
  /**
383
540
  * Set to `true` if the `day` is the end of a previewing date range.
384
541
  */
385
- isEndOfPreviewing: _propTypes.default.bool.isRequired,
542
+ isEndOfPreviewing: _propTypes.default.bool,
386
543
  /**
387
- * If `true`, day is the first visible cell of the month.
388
- * Either the first day of the month or the first day of the week depending on `showDaysOutsideCurrentMonth`.
544
+ * If `true`, the day is the first visible cell of the month.
545
+ * @default false
389
546
  */
390
- isFirstVisibleCell: _propTypes.default.bool.isRequired,
547
+ isFirstVisibleCell: _propTypes.default.bool,
391
548
  /**
392
549
  * Set to `true` if the `day` is in a highlighted date range.
393
550
  */
394
- isHighlighting: _propTypes.default.bool.isRequired,
551
+ isHighlighting: _propTypes.default.bool,
395
552
  /**
396
- * If `true`, day is the last visible cell of the month.
397
- * Either the last day of the month or the last day of the week depending on `showDaysOutsideCurrentMonth`.
553
+ * If `true`, the day is the last visible cell of the month.
554
+ * @default false
398
555
  */
399
- isLastVisibleCell: _propTypes.default.bool.isRequired,
556
+ isLastVisibleCell: _propTypes.default.bool,
400
557
  /**
401
558
  * Set to `true` if the `day` is in a preview date range.
402
559
  */
403
- isPreviewing: _propTypes.default.bool.isRequired,
560
+ isPreviewing: _propTypes.default.bool,
404
561
  /**
405
562
  * Set to `true` if the `day` is the start of a highlighted date range.
406
563
  */
407
- isStartOfHighlighting: _propTypes.default.bool.isRequired,
564
+ isStartOfHighlighting: _propTypes.default.bool,
408
565
  /**
409
566
  * Set to `true` if the `day` is the start of a previewing date range.
410
567
  */
411
- isStartOfPreviewing: _propTypes.default.bool.isRequired,
568
+ isStartOfPreviewing: _propTypes.default.bool,
412
569
  /**
413
570
  * Indicates if the day should be visually selected.
414
571
  */
415
572
  isVisuallySelected: _propTypes.default.bool,
573
+ /**
574
+ * Whether the custom component is expected to render a native `<button>` element
575
+ * when passing a React component to the `component` or `slots` prop.
576
+ */
577
+ nativeButton: _propTypes.default.bool,
578
+ /**
579
+ * Callback fired when the component is blurred.
580
+ * @param {React.FocusEvent<HTMLButtonElement>} event The event object.
581
+ * @param {PickerValidDate} day The day.
582
+ * @default () => {}
583
+ */
584
+ onBlur: _propTypes.default.func,
585
+ /**
586
+ * Callback fired when the component is clicked.
587
+ * @param {MuiEvent<React.MouseEvent<HTMLButtonElement>>} event The event object.
588
+ * @default () => {}
589
+ */
590
+ onClick: _propTypes.default.func,
591
+ /**
592
+ * Callback fired when the day is selected.
593
+ * @param {PickerValidDate} day The day to select.
594
+ */
416
595
  onDaySelect: _propTypes.default.func.isRequired,
596
+ /**
597
+ * Callback fired when the component is focused.
598
+ * @param {React.FocusEvent<HTMLButtonElement>} event The event object.
599
+ * @param {PickerValidDate} day The day.
600
+ * @default () => {}
601
+ */
602
+ onFocus: _propTypes.default.func,
417
603
  /**
418
604
  * Callback fired when the component is focused with a keyboard.
419
605
  * We trigger a `onFocus` callback too.
420
606
  */
421
607
  onFocusVisible: _propTypes.default.func,
608
+ /**
609
+ * Callback fired when a key is pressed.
610
+ * @param {React.KeyboardEvent<HTMLButtonElement>} event The event object.
611
+ * @param {PickerValidDate} day The day.
612
+ * @default () => {}
613
+ */
614
+ onKeyDown: _propTypes.default.func,
615
+ /**
616
+ * Callback fired when the mouse button is pressed.
617
+ * @param {React.MouseEvent<HTMLButtonElement>} event The event object.
618
+ * @default () => {}
619
+ */
620
+ onMouseDown: _propTypes.default.func,
621
+ /**
622
+ * Callback fired when the mouse enters the component.
623
+ * @param {React.MouseEvent<HTMLButtonElement>} event The event object.
624
+ * @param {PickerValidDate} day The day.
625
+ * @default () => {}
626
+ */
422
627
  onMouseEnter: _propTypes.default.func,
423
628
  /**
424
- * If `true`, day is outside of month and will be hidden.
629
+ * If `true`, the day is outside the current month.
630
+ * @default false
425
631
  */
426
- outsideCurrentMonth: _propTypes.default.bool.isRequired,
632
+ outsideCurrentMonth: _propTypes.default.bool,
427
633
  /**
428
634
  * If `true`, renders as selected.
429
635
  * @default false
@@ -450,7 +656,7 @@ process.env.NODE_ENV !== "production" ? DateRangePickerDayRaw.propTypes = {
450
656
  */
451
657
  tabIndex: _propTypes.default.number,
452
658
  /**
453
- * If `true`, renders as today date.
659
+ * If `true`, today's day is highlighted.
454
660
  * @default false
455
661
  */
456
662
  today: _propTypes.default.bool,
@@ -472,11 +678,9 @@ process.env.NODE_ENV !== "production" ? DateRangePickerDayRaw.propTypes = {
472
678
 
473
679
  /**
474
680
  * Demos:
475
- *
476
681
  * - [DateRangePicker](https://mui.com/x/react-date-pickers/date-range-picker/)
477
682
  *
478
683
  * API:
479
- *
480
684
  * - [DateRangePickerDay API](https://mui.com/x/api/date-pickers/date-range-picker-day/)
481
685
  */
482
686
  const DateRangePickerDay = exports.DateRangePickerDay = /*#__PURE__*/React.memo(DateRangePickerDayRaw);