@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.
- package/CHANGELOG.md +171 -0
- package/DateCalendar/DateCalendar.js +4 -8
- package/DateCalendar/DayCalendar.d.ts +3 -7
- package/DateCalendar/DayCalendar.js +18 -10
- package/DateCalendar/index.d.ts +0 -1
- package/DateField/useDateField.d.ts +1 -1
- package/DateField/useDateField.js +2 -16
- package/DatePicker/DatePicker.js +1 -0
- package/DatePicker/shared.js +3 -9
- package/DateTimeField/useDateTimeField.d.ts +1 -1
- package/DateTimeField/useDateTimeField.js +2 -16
- package/DateTimePicker/DateTimePicker.js +1 -0
- package/DateTimePicker/shared.js +3 -13
- package/DesktopDatePicker/DesktopDatePicker.js +1 -0
- package/DesktopDateTimePicker/DesktopDateTimePicker.js +1 -0
- package/DesktopTimePicker/DesktopTimePicker.js +1 -0
- package/MobileDatePicker/MobileDatePicker.js +1 -0
- package/MobileDateTimePicker/MobileDateTimePicker.js +1 -0
- package/MobileTimePicker/MobileTimePicker.js +1 -0
- package/MonthCalendar/MonthCalendar.js +4 -9
- package/PickersDay/PickersDay.d.ts +1 -72
- package/PickersDay/PickersDay.js +30 -28
- package/PickersDay/PickersDay.types.d.ts +114 -0
- package/PickersDay/PickersDay.types.js +5 -0
- package/PickersDay/index.d.ts +1 -1
- package/PickersDay/usePickerDayOwnerState.d.ts +14 -0
- package/PickersDay/usePickerDayOwnerState.js +40 -0
- package/PickersSectionList/PickersSectionList.d.ts +1 -1
- package/PickersSectionList/PickersSectionList.types.d.ts +2 -6
- package/TimeField/useTimeField.d.ts +1 -1
- package/TimeField/useTimeField.js +2 -16
- package/TimePicker/TimePicker.js +1 -0
- package/TimePicker/shared.js +3 -3
- package/YearCalendar/YearCalendar.js +4 -10
- package/esm/DateCalendar/DateCalendar.js +6 -10
- package/esm/DateCalendar/DayCalendar.d.ts +3 -7
- package/esm/DateCalendar/DayCalendar.js +18 -10
- package/esm/DateCalendar/index.d.ts +0 -1
- package/esm/DateField/useDateField.d.ts +1 -1
- package/esm/DateField/useDateField.js +3 -17
- package/esm/DatePicker/DatePicker.js +1 -0
- package/esm/DatePicker/shared.js +3 -9
- package/esm/DateTimeField/useDateTimeField.d.ts +1 -1
- package/esm/DateTimeField/useDateTimeField.js +3 -17
- package/esm/DateTimePicker/DateTimePicker.js +1 -0
- package/esm/DateTimePicker/shared.js +4 -14
- package/esm/DesktopDatePicker/DesktopDatePicker.js +1 -0
- package/esm/DesktopDateTimePicker/DesktopDateTimePicker.js +1 -0
- package/esm/DesktopTimePicker/DesktopTimePicker.js +1 -0
- package/esm/MobileDatePicker/MobileDatePicker.js +1 -0
- package/esm/MobileDateTimePicker/MobileDateTimePicker.js +1 -0
- package/esm/MobileTimePicker/MobileTimePicker.js +1 -0
- package/esm/MonthCalendar/MonthCalendar.js +6 -11
- package/esm/PickersDay/PickersDay.d.ts +1 -72
- package/esm/PickersDay/PickersDay.js +30 -28
- package/esm/PickersDay/PickersDay.types.d.ts +114 -0
- package/esm/PickersDay/PickersDay.types.js +1 -0
- package/esm/PickersDay/index.d.ts +1 -1
- package/esm/PickersDay/usePickerDayOwnerState.d.ts +14 -0
- package/esm/PickersDay/usePickerDayOwnerState.js +32 -0
- package/esm/PickersSectionList/PickersSectionList.d.ts +1 -1
- package/esm/PickersSectionList/PickersSectionList.types.d.ts +2 -6
- package/esm/TimeField/useTimeField.d.ts +1 -1
- package/esm/TimeField/useTimeField.js +3 -17
- package/esm/TimePicker/TimePicker.js +1 -0
- package/esm/TimePicker/shared.js +3 -3
- package/esm/YearCalendar/YearCalendar.js +5 -11
- package/esm/hooks/useSplitFieldProps.d.ts +1 -1
- package/esm/index.js +1 -1
- package/esm/internals/components/PickerFieldUI.d.ts +5 -5
- package/esm/internals/hooks/useField/buildSectionsFromFormat.d.ts +2 -2
- package/esm/internals/hooks/useField/buildSectionsFromFormat.js +9 -9
- package/esm/internals/hooks/useField/index.d.ts +1 -1
- package/esm/internals/hooks/useField/syncSelectionToDOM.d.ts +9 -0
- package/esm/internals/hooks/useField/syncSelectionToDOM.js +50 -0
- package/esm/internals/hooks/useField/useField.d.ts +2 -4
- package/esm/internals/hooks/useField/useField.js +5 -229
- package/esm/internals/hooks/useField/useField.types.d.ts +55 -68
- package/esm/internals/hooks/useField/useField.utils.d.ts +3 -8
- package/esm/internals/hooks/useField/useField.utils.js +7 -149
- package/esm/internals/hooks/useField/useFieldCharacterEditing.d.ts +19 -26
- package/esm/internals/hooks/useField/useFieldCharacterEditing.js +42 -60
- package/esm/internals/hooks/useField/useFieldHiddenInputProps.d.ts +20 -0
- package/esm/internals/hooks/useField/useFieldHiddenInputProps.js +31 -0
- package/esm/internals/hooks/useField/useFieldInternalPropsWithDefaults.js +8 -10
- package/esm/internals/hooks/useField/useFieldRootHandleKeyDown.d.ts +16 -0
- package/esm/internals/hooks/useField/useFieldRootHandleKeyDown.js +205 -0
- package/esm/internals/hooks/useField/useFieldRootProps.d.ts +32 -0
- package/esm/internals/hooks/useField/useFieldRootProps.js +150 -0
- package/esm/internals/hooks/useField/useFieldSectionContainerProps.d.ts +15 -0
- package/esm/internals/hooks/useField/useFieldSectionContainerProps.js +29 -0
- package/esm/internals/hooks/useField/useFieldSectionContentProps.d.ts +23 -0
- package/esm/internals/hooks/useField/useFieldSectionContentProps.js +226 -0
- package/esm/internals/hooks/useField/useFieldState.d.ts +23 -13
- package/esm/internals/hooks/useField/useFieldState.js +103 -30
- package/esm/internals/hooks/useField/useFieldV6TextField.d.ts +3 -3
- package/esm/internals/hooks/useField/useFieldV6TextField.js +202 -135
- package/esm/internals/hooks/useField/useFieldV7TextField.d.ts +3 -2
- package/esm/internals/hooks/useField/useFieldV7TextField.js +200 -367
- package/esm/internals/hooks/usePicker/usePicker.types.d.ts +1 -0
- package/esm/internals/index.d.ts +6 -5
- package/esm/internals/index.js +4 -3
- package/esm/locales/deDE.js +2 -3
- package/esm/managers/useDateManager.d.ts +4 -13
- package/esm/managers/useDateManager.js +21 -31
- package/esm/managers/useDateTimeManager.d.ts +4 -13
- package/esm/managers/useDateTimeManager.js +26 -36
- package/esm/managers/useTimeManager.d.ts +4 -13
- package/esm/managers/useTimeManager.js +17 -27
- package/esm/models/fields.d.ts +2 -2
- package/esm/models/manager.d.ts +6 -10
- package/esm/validation/validateDate.js +3 -4
- package/hooks/useSplitFieldProps.d.ts +1 -1
- package/index.js +1 -1
- package/internals/components/PickerFieldUI.d.ts +5 -5
- package/internals/hooks/useField/buildSectionsFromFormat.d.ts +2 -2
- package/internals/hooks/useField/buildSectionsFromFormat.js +9 -9
- package/internals/hooks/useField/index.d.ts +1 -1
- package/internals/hooks/useField/syncSelectionToDOM.d.ts +9 -0
- package/internals/hooks/useField/syncSelectionToDOM.js +56 -0
- package/internals/hooks/useField/useField.d.ts +2 -4
- package/internals/hooks/useField/useField.js +5 -231
- package/internals/hooks/useField/useField.types.d.ts +55 -68
- package/internals/hooks/useField/useField.utils.d.ts +3 -8
- package/internals/hooks/useField/useField.utils.js +9 -154
- package/internals/hooks/useField/useFieldCharacterEditing.d.ts +19 -26
- package/internals/hooks/useField/useFieldCharacterEditing.js +41 -59
- package/internals/hooks/useField/useFieldHiddenInputProps.d.ts +20 -0
- package/internals/hooks/useField/useFieldHiddenInputProps.js +39 -0
- package/internals/hooks/useField/useFieldInternalPropsWithDefaults.js +8 -10
- package/internals/hooks/useField/useFieldRootHandleKeyDown.d.ts +16 -0
- package/internals/hooks/useField/useFieldRootHandleKeyDown.js +211 -0
- package/internals/hooks/useField/useFieldRootProps.d.ts +32 -0
- package/internals/hooks/useField/useFieldRootProps.js +156 -0
- package/internals/hooks/useField/useFieldSectionContainerProps.d.ts +15 -0
- package/internals/hooks/useField/useFieldSectionContainerProps.js +37 -0
- package/internals/hooks/useField/useFieldSectionContentProps.d.ts +23 -0
- package/internals/hooks/useField/useFieldSectionContentProps.js +234 -0
- package/internals/hooks/useField/useFieldState.d.ts +23 -13
- package/internals/hooks/useField/useFieldState.js +102 -29
- package/internals/hooks/useField/useFieldV6TextField.d.ts +3 -3
- package/internals/hooks/useField/useFieldV6TextField.js +202 -135
- package/internals/hooks/useField/useFieldV7TextField.d.ts +3 -2
- package/internals/hooks/useField/useFieldV7TextField.js +200 -367
- package/internals/hooks/usePicker/usePicker.types.d.ts +1 -0
- package/internals/index.d.ts +6 -5
- package/internals/index.js +25 -18
- package/locales/deDE.js +2 -3
- package/managers/useDateManager.d.ts +4 -13
- package/managers/useDateManager.js +21 -31
- package/managers/useDateTimeManager.d.ts +4 -13
- package/managers/useDateTimeManager.js +26 -36
- package/managers/useTimeManager.d.ts +4 -13
- package/managers/useTimeManager.js +18 -28
- package/models/fields.d.ts +2 -2
- package/models/manager.d.ts +6 -10
- package/modern/DateCalendar/DateCalendar.js +6 -10
- package/modern/DateCalendar/DayCalendar.d.ts +3 -7
- package/modern/DateCalendar/DayCalendar.js +18 -10
- package/modern/DateCalendar/index.d.ts +0 -1
- package/modern/DateField/useDateField.d.ts +1 -1
- package/modern/DateField/useDateField.js +3 -17
- package/modern/DatePicker/DatePicker.js +1 -0
- package/modern/DatePicker/shared.js +3 -9
- package/modern/DateTimeField/useDateTimeField.d.ts +1 -1
- package/modern/DateTimeField/useDateTimeField.js +3 -17
- package/modern/DateTimePicker/DateTimePicker.js +1 -0
- package/modern/DateTimePicker/shared.js +4 -14
- package/modern/DesktopDatePicker/DesktopDatePicker.js +1 -0
- package/modern/DesktopDateTimePicker/DesktopDateTimePicker.js +1 -0
- package/modern/DesktopTimePicker/DesktopTimePicker.js +1 -0
- package/modern/MobileDatePicker/MobileDatePicker.js +1 -0
- package/modern/MobileDateTimePicker/MobileDateTimePicker.js +1 -0
- package/modern/MobileTimePicker/MobileTimePicker.js +1 -0
- package/modern/MonthCalendar/MonthCalendar.js +6 -11
- package/modern/PickersDay/PickersDay.d.ts +1 -72
- package/modern/PickersDay/PickersDay.js +30 -28
- package/modern/PickersDay/PickersDay.types.d.ts +114 -0
- package/modern/PickersDay/PickersDay.types.js +1 -0
- package/modern/PickersDay/index.d.ts +1 -1
- package/modern/PickersDay/usePickerDayOwnerState.d.ts +14 -0
- package/modern/PickersDay/usePickerDayOwnerState.js +32 -0
- package/modern/PickersSectionList/PickersSectionList.d.ts +1 -1
- package/modern/PickersSectionList/PickersSectionList.types.d.ts +2 -6
- package/modern/TimeField/useTimeField.d.ts +1 -1
- package/modern/TimeField/useTimeField.js +3 -17
- package/modern/TimePicker/TimePicker.js +1 -0
- package/modern/TimePicker/shared.js +3 -3
- package/modern/YearCalendar/YearCalendar.js +5 -11
- package/modern/hooks/useSplitFieldProps.d.ts +1 -1
- package/modern/index.js +1 -1
- package/modern/internals/components/PickerFieldUI.d.ts +5 -5
- package/modern/internals/hooks/useField/buildSectionsFromFormat.d.ts +2 -2
- package/modern/internals/hooks/useField/buildSectionsFromFormat.js +9 -9
- package/modern/internals/hooks/useField/index.d.ts +1 -1
- package/modern/internals/hooks/useField/syncSelectionToDOM.d.ts +9 -0
- package/modern/internals/hooks/useField/syncSelectionToDOM.js +50 -0
- package/modern/internals/hooks/useField/useField.d.ts +2 -4
- package/modern/internals/hooks/useField/useField.js +5 -229
- package/modern/internals/hooks/useField/useField.types.d.ts +55 -68
- package/modern/internals/hooks/useField/useField.utils.d.ts +3 -8
- package/modern/internals/hooks/useField/useField.utils.js +7 -149
- package/modern/internals/hooks/useField/useFieldCharacterEditing.d.ts +19 -26
- package/modern/internals/hooks/useField/useFieldCharacterEditing.js +42 -60
- package/modern/internals/hooks/useField/useFieldHiddenInputProps.d.ts +20 -0
- package/modern/internals/hooks/useField/useFieldHiddenInputProps.js +31 -0
- package/modern/internals/hooks/useField/useFieldInternalPropsWithDefaults.js +8 -10
- package/modern/internals/hooks/useField/useFieldRootHandleKeyDown.d.ts +16 -0
- package/modern/internals/hooks/useField/useFieldRootHandleKeyDown.js +205 -0
- package/modern/internals/hooks/useField/useFieldRootProps.d.ts +32 -0
- package/modern/internals/hooks/useField/useFieldRootProps.js +150 -0
- package/modern/internals/hooks/useField/useFieldSectionContainerProps.d.ts +15 -0
- package/modern/internals/hooks/useField/useFieldSectionContainerProps.js +29 -0
- package/modern/internals/hooks/useField/useFieldSectionContentProps.d.ts +23 -0
- package/modern/internals/hooks/useField/useFieldSectionContentProps.js +226 -0
- package/modern/internals/hooks/useField/useFieldState.d.ts +23 -13
- package/modern/internals/hooks/useField/useFieldState.js +103 -30
- package/modern/internals/hooks/useField/useFieldV6TextField.d.ts +3 -3
- package/modern/internals/hooks/useField/useFieldV6TextField.js +202 -135
- package/modern/internals/hooks/useField/useFieldV7TextField.d.ts +3 -2
- package/modern/internals/hooks/useField/useFieldV7TextField.js +200 -367
- package/modern/internals/hooks/usePicker/usePicker.types.d.ts +1 -0
- package/modern/internals/index.d.ts +6 -5
- package/modern/internals/index.js +4 -3
- package/modern/locales/deDE.js +2 -3
- package/modern/managers/useDateManager.d.ts +4 -13
- package/modern/managers/useDateManager.js +21 -31
- package/modern/managers/useDateTimeManager.d.ts +4 -13
- package/modern/managers/useDateTimeManager.js +26 -36
- package/modern/managers/useTimeManager.d.ts +4 -13
- package/modern/managers/useTimeManager.js +17 -27
- package/modern/models/fields.d.ts +2 -2
- package/modern/models/manager.d.ts +6 -10
- package/modern/validation/validateDate.js +3 -4
- package/package.json +2 -2
- package/tsconfig.build.tsbuildinfo +1 -1
- package/validation/validateDate.js +3 -4
|
@@ -12,7 +12,7 @@ import { useRtl } from '@mui/system/RtlProvider';
|
|
|
12
12
|
import { styled, useThemeProps } from '@mui/material/styles';
|
|
13
13
|
import composeClasses from '@mui/utils/composeClasses';
|
|
14
14
|
import clsx from 'clsx';
|
|
15
|
-
import { PickersDay } from "../PickersDay/
|
|
15
|
+
import { PickersDay } from "../PickersDay/index.js";
|
|
16
16
|
import { usePickerTranslations } from "../hooks/usePickerTranslations.js";
|
|
17
17
|
import { useUtils, useNow } from "../internals/hooks/useUtils.js";
|
|
18
18
|
import { DAY_SIZE, DAY_MARGIN } from "../internals/constants/dimensions.js";
|
|
@@ -20,7 +20,7 @@ import { PickersSlideTransition } from "./PickersSlideTransition.js";
|
|
|
20
20
|
import { useIsDateDisabled } from "./useIsDateDisabled.js";
|
|
21
21
|
import { findClosestEnabledDate, getWeekdays } from "../internals/utils/date-utils.js";
|
|
22
22
|
import { getDayCalendarUtilityClass } from "./dayCalendarClasses.js";
|
|
23
|
-
import {
|
|
23
|
+
import { usePickerDayOwnerState } from "../PickersDay/usePickerDayOwnerState.js";
|
|
24
24
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
25
25
|
const useUtilityClasses = classes => {
|
|
26
26
|
const slots = {
|
|
@@ -81,7 +81,7 @@ const PickersCalendarWeekNumberLabel = styled(Typography, {
|
|
|
81
81
|
display: 'flex',
|
|
82
82
|
justifyContent: 'center',
|
|
83
83
|
alignItems: 'center',
|
|
84
|
-
color: theme.palette.text.disabled
|
|
84
|
+
color: (theme.vars || theme).palette.text.disabled
|
|
85
85
|
}));
|
|
86
86
|
const PickersCalendarWeekNumber = styled(Typography, {
|
|
87
87
|
name: 'MuiDayCalendar',
|
|
@@ -94,7 +94,7 @@ const PickersCalendarWeekNumber = styled(Typography, {
|
|
|
94
94
|
height: DAY_SIZE,
|
|
95
95
|
padding: 0,
|
|
96
96
|
margin: `0 ${DAY_MARGIN}px`,
|
|
97
|
-
color: theme.palette.text.disabled,
|
|
97
|
+
color: (theme.vars || theme).palette.text.disabled,
|
|
98
98
|
fontSize: '0.75rem',
|
|
99
99
|
alignItems: 'center',
|
|
100
100
|
justifyContent: 'center',
|
|
@@ -155,14 +155,23 @@ function WrappedDay(_ref) {
|
|
|
155
155
|
} = parentProps;
|
|
156
156
|
const utils = useUtils();
|
|
157
157
|
const now = useNow(timezone);
|
|
158
|
-
const {
|
|
159
|
-
ownerState
|
|
160
|
-
} = usePickerPrivateContext();
|
|
161
158
|
const isFocusableDay = focusedDay != null && utils.isSameDay(day, focusedDay);
|
|
162
159
|
const isFocusedDay = isViewFocused && isFocusableDay;
|
|
163
160
|
const isSelected = selectedDays.some(selectedDay => utils.isSameDay(selectedDay, day));
|
|
164
161
|
const isToday = utils.isSameDay(day, now);
|
|
165
162
|
const isDisabled = React.useMemo(() => disabled || isDateDisabled(day), [disabled, isDateDisabled, day]);
|
|
163
|
+
const isOutsideCurrentMonth = React.useMemo(() => utils.getMonth(day) !== currentMonthNumber, [utils, day, currentMonthNumber]);
|
|
164
|
+
const ownerState = usePickerDayOwnerState({
|
|
165
|
+
day,
|
|
166
|
+
selected: isSelected,
|
|
167
|
+
disabled: isDisabled,
|
|
168
|
+
today: isToday,
|
|
169
|
+
outsideCurrentMonth: isOutsideCurrentMonth,
|
|
170
|
+
disableMargin: undefined,
|
|
171
|
+
// This prop can only be defined using slotProps.day so the ownerState for useSlotProps cannot have its value.
|
|
172
|
+
disableHighlightToday,
|
|
173
|
+
showDaysOutsideCurrentMonth
|
|
174
|
+
});
|
|
166
175
|
const Day = slots?.day ?? PickersDay;
|
|
167
176
|
// We don't want to pass to ownerState down, to avoid re-rendering all the day whenever a prop changes.
|
|
168
177
|
const _useSlotProps = useSlotProps({
|
|
@@ -183,7 +192,6 @@ function WrappedDay(_ref) {
|
|
|
183
192
|
})
|
|
184
193
|
}),
|
|
185
194
|
dayProps = _objectWithoutPropertiesLoose(_useSlotProps, _excluded2);
|
|
186
|
-
const outsideCurrentMonth = React.useMemo(() => utils.getMonth(day) !== currentMonthNumber, [utils, day, currentMonthNumber]);
|
|
187
195
|
const isFirstVisibleCell = React.useMemo(() => {
|
|
188
196
|
const startOfMonth = utils.startOfMonth(utils.setMonth(day, currentMonthNumber));
|
|
189
197
|
if (!showDaysOutsideCurrentMonth) {
|
|
@@ -201,9 +209,9 @@ function WrappedDay(_ref) {
|
|
|
201
209
|
return /*#__PURE__*/_jsx(Day, _extends({}, dayProps, {
|
|
202
210
|
day: day,
|
|
203
211
|
disabled: isDisabled,
|
|
204
|
-
autoFocus: !
|
|
212
|
+
autoFocus: !isOutsideCurrentMonth && isFocusedDay,
|
|
205
213
|
today: isToday,
|
|
206
|
-
outsideCurrentMonth:
|
|
214
|
+
outsideCurrentMonth: isOutsideCurrentMonth,
|
|
207
215
|
isFirstVisibleCell: isFirstVisibleCell,
|
|
208
216
|
isLastVisibleCell: isLastVisibleCell,
|
|
209
217
|
selected: isSelected,
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
export { DateCalendar } from "./DateCalendar.js";
|
|
2
2
|
export type { DateCalendarProps, DateCalendarSlots, DateCalendarSlotProps } from './DateCalendar.types';
|
|
3
|
-
export type { PickerDayOwnerState } from './DayCalendar';
|
|
4
3
|
export { getDateCalendarUtilityClass, dateCalendarClasses } from "./dateCalendarClasses.js";
|
|
5
4
|
export type { DateCalendarClassKey, DateCalendarClasses } from './dateCalendarClasses';
|
|
6
5
|
export { dayCalendarClasses } from "./dayCalendarClasses.js";
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { UseDateFieldProps } from "./DateField.types.js";
|
|
2
|
-
export declare const useDateField: <TEnableAccessibleFieldDOMStructure extends boolean,
|
|
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
|
|
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
|
-
|
|
18
|
-
|
|
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,
|
package/esm/DatePicker/shared.js
CHANGED
|
@@ -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,
|
|
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
|
|
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
|
-
|
|
18
|
-
|
|
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 {
|
|
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
|
|
14
|
+
import { useUtils, useNow } from "../internals/hooks/useUtils.js";
|
|
15
15
|
import { getMonthCalendarUtilityClass } from "./monthCalendarClasses.js";
|
|
16
|
-
import {
|
|
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
|
-
|
|
37
|
-
|
|
38
|
-
|
|
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 {
|
|
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", "
|
|
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
|
-
|
|
19
|
+
isDaySelected,
|
|
20
|
+
isDayDisabled,
|
|
21
|
+
isDayCurrent,
|
|
22
|
+
isDayOutsideMonth,
|
|
19
23
|
disableMargin,
|
|
20
24
|
disableHighlightToday,
|
|
21
|
-
|
|
22
|
-
disabled,
|
|
23
|
-
outsideCurrentMonth,
|
|
24
|
-
showDaysOutsideCurrentMonth,
|
|
25
|
-
classes
|
|
25
|
+
showDaysOutsideCurrentMonth
|
|
26
26
|
} = ownerState;
|
|
27
|
-
const isHiddenDaySpacingFiller =
|
|
27
|
+
const isHiddenDaySpacingFiller = isDayOutsideMonth && !showDaysOutsideCurrentMonth;
|
|
28
28
|
const slots = {
|
|
29
|
-
root: ['root',
|
|
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
|
-
|
|
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
|
-
|
|
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.
|
|
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
|
-
|
|
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
|
-
|
|
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 =
|
|
154
|
-
|
|
154
|
+
const ownerState = usePickerDayOwnerState({
|
|
155
|
+
day,
|
|
156
|
+
selected,
|
|
155
157
|
disabled,
|
|
156
|
-
|
|
158
|
+
today,
|
|
159
|
+
outsideCurrentMonth,
|
|
157
160
|
disableMargin,
|
|
158
|
-
|
|
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);
|