@mui/x-date-pickers 7.0.0-beta.7 → 7.1.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.
- package/AdapterDateFns/AdapterDateFns.js +1 -1
- package/AdapterDateFnsBase/AdapterDateFnsBase.js +1 -2
- package/AdapterDateFnsJalali/AdapterDateFnsJalali.js +2 -4
- package/AdapterDateFnsV3/AdapterDateFnsV3.js +1 -1
- package/AdapterDayjs/AdapterDayjs.js +2 -4
- package/AdapterLuxon/AdapterLuxon.js +12 -9
- package/AdapterMoment/AdapterMoment.js +5 -6
- package/CHANGELOG.md +266 -12
- package/DateCalendar/DateCalendar.js +14 -16
- package/DateCalendar/DayCalendar.js +5 -6
- package/DateField/DateField.js +3 -4
- package/DatePicker/DatePicker.js +1 -1
- package/DatePicker/DatePickerToolbar.js +11 -6
- package/DatePicker/shared.d.ts +2 -1
- package/DatePicker/shared.js +3 -5
- package/DateTimeField/DateTimeField.js +3 -4
- package/DateTimePicker/DateTimePicker.js +1 -1
- package/DateTimePicker/DateTimePickerToolbar.js +98 -46
- package/DateTimePicker/shared.d.ts +2 -1
- package/DateTimePicker/shared.js +11 -13
- package/DayCalendarSkeleton/DayCalendarSkeleton.js +12 -8
- package/DesktopDatePicker/DesktopDatePicker.js +7 -11
- package/DesktopDateTimePicker/DesktopDateTimePicker.js +72 -37
- package/DesktopDateTimePicker/DesktopDateTimePickerLayout.d.ts +12 -0
- package/DesktopDateTimePicker/DesktopDateTimePickerLayout.js +101 -0
- package/DesktopDateTimePicker/index.d.ts +1 -0
- package/DesktopDateTimePicker/index.js +2 -1
- package/DesktopTimePicker/DesktopTimePicker.js +8 -12
- package/DigitalClock/DigitalClock.js +16 -9
- package/LocalizationProvider/LocalizationProvider.js +1 -2
- package/MobileDatePicker/MobileDatePicker.js +6 -10
- package/MobileDateTimePicker/MobileDateTimePicker.js +8 -12
- package/MobileTimePicker/MobileTimePicker.js +6 -10
- package/MonthCalendar/MonthCalendar.js +4 -4
- package/MonthCalendar/PickersMonth.js +13 -8
- package/MultiSectionDigitalClock/MultiSectionDigitalClock.js +1 -1
- package/MultiSectionDigitalClock/MultiSectionDigitalClock.utils.js +1 -1
- package/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +16 -9
- package/PickersActionBar/PickersActionBar.js +1 -1
- package/PickersCalendarHeader/PickersCalendarHeader.js +17 -14
- package/PickersDay/PickersDay.js +30 -15
- package/PickersLayout/PickersLayout.js +31 -17
- package/PickersLayout/usePickerLayout.js +8 -9
- package/PickersSectionList/PickersSectionList.js +9 -11
- package/PickersTextField/PickersFilledInput/PickersFilledInput.js +138 -74
- package/PickersTextField/PickersInput/PickersInput.js +77 -55
- package/PickersTextField/PickersInputBase/PickersInputBase.js +67 -28
- package/PickersTextField/PickersInputBase/PickersInputBase.types.d.ts +7 -0
- package/PickersTextField/PickersOutlinedInput/Outline.js +58 -41
- package/PickersTextField/PickersOutlinedInput/PickersOutlinedInput.js +33 -14
- package/README.md +1 -1
- package/StaticDatePicker/StaticDatePicker.js +4 -5
- package/StaticDateTimePicker/StaticDateTimePicker.js +6 -7
- package/StaticTimePicker/StaticTimePicker.js +3 -4
- package/TimeClock/Clock.js +48 -35
- package/TimeClock/ClockNumber.js +12 -7
- package/TimeClock/ClockPointer.js +23 -13
- package/TimeClock/TimeClock.js +1 -1
- package/TimeField/TimeField.js +2 -3
- package/TimePicker/TimePickerToolbar.js +25 -16
- package/TimePicker/shared.d.ts +2 -1
- package/TimePicker/shared.js +5 -7
- package/YearCalendar/PickersYear.js +12 -6
- package/YearCalendar/YearCalendar.js +5 -6
- package/hooks/useClearableField.js +6 -7
- package/index.js +1 -1
- package/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js +19 -15
- package/internals/components/PickersModalDialog.js +6 -7
- package/internals/components/PickersPopper.js +25 -24
- package/internals/components/PickersToolbar.js +42 -24
- package/internals/hooks/date-helpers-hooks.js +1 -1
- package/internals/hooks/defaultizedFieldProps.js +15 -18
- package/internals/hooks/useClockReferenceDate.js +1 -1
- package/internals/hooks/useDesktopPicker/index.d.ts +1 -1
- package/internals/hooks/useDesktopPicker/useDesktopPicker.js +11 -12
- package/internals/hooks/useDesktopPicker/useDesktopPicker.types.d.ts +2 -2
- package/internals/hooks/useField/buildSectionsFromFormat.js +35 -31
- package/internals/hooks/useField/useField.js +6 -4
- package/internals/hooks/useField/useField.types.d.ts +1 -0
- package/internals/hooks/useField/useField.utils.js +4 -7
- package/internals/hooks/useField/useFieldCharacterEditing.js +1 -2
- package/internals/hooks/useField/useFieldState.js +1 -1
- package/internals/hooks/useField/useFieldV6TextField.js +17 -18
- package/internals/hooks/useField/useFieldV7TextField.js +9 -11
- package/internals/hooks/useMobilePicker/useMobilePicker.js +7 -8
- package/internals/hooks/useOpenState.js +1 -1
- package/internals/hooks/usePicker/index.d.ts +1 -0
- package/internals/hooks/usePicker/usePickerViews.d.ts +4 -2
- package/internals/hooks/usePicker/usePickerViews.js +1 -2
- package/internals/hooks/useStaticPicker/useStaticPicker.js +13 -17
- package/internals/hooks/useValueWithTimezone.js +5 -6
- package/internals/hooks/useViews.js +3 -4
- package/internals/index.d.ts +1 -1
- package/internals/models/validation.d.ts +1 -1
- package/internals/utils/convertFieldResponseIntoMuiTextFieldProps.js +3 -3
- package/internals/utils/date-time-utils.js +2 -5
- package/internals/utils/fields.js +1 -1
- package/internals/utils/getDefaultReferenceDate.js +2 -6
- package/internals/utils/views.js +1 -1
- package/locales/csCZ.js +1 -4
- package/locales/daDK.js +1 -4
- package/locales/deDE.js +1 -4
- package/locales/huHU.js +1 -4
- package/locales/itIT.js +16 -20
- package/locales/jaJP.js +1 -4
- package/locales/roRO.js +1 -4
- package/locales/skSK.js +1 -4
- package/locales/zhHK.js +14 -17
- package/modern/AdapterLuxon/AdapterLuxon.js +9 -4
- package/modern/DateCalendar/DateCalendar.js +1 -1
- package/modern/DateField/DateField.js +1 -1
- package/modern/DatePicker/DatePicker.js +1 -1
- package/modern/DatePicker/DatePickerToolbar.js +11 -6
- package/modern/DateTimeField/DateTimeField.js +1 -1
- package/modern/DateTimePicker/DateTimePicker.js +1 -1
- package/modern/DateTimePicker/DateTimePickerToolbar.js +97 -45
- package/modern/DayCalendarSkeleton/DayCalendarSkeleton.js +12 -8
- package/modern/DesktopDatePicker/DesktopDatePicker.js +1 -1
- package/modern/DesktopDateTimePicker/DesktopDateTimePicker.js +64 -25
- package/modern/DesktopDateTimePicker/DesktopDateTimePickerLayout.js +101 -0
- package/modern/DesktopDateTimePicker/index.js +2 -1
- package/modern/DigitalClock/DigitalClock.js +14 -6
- package/modern/MobileDatePicker/MobileDatePicker.js +1 -1
- package/modern/MobileDateTimePicker/MobileDateTimePicker.js +1 -1
- package/modern/MonthCalendar/PickersMonth.js +12 -6
- package/modern/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +13 -4
- package/modern/PickersCalendarHeader/PickersCalendarHeader.js +13 -9
- package/modern/PickersDay/PickersDay.js +30 -15
- package/modern/PickersLayout/PickersLayout.js +31 -17
- package/modern/PickersTextField/PickersFilledInput/PickersFilledInput.js +137 -72
- package/modern/PickersTextField/PickersInput/PickersInput.js +76 -54
- package/modern/PickersTextField/PickersInputBase/PickersInputBase.js +64 -24
- package/modern/PickersTextField/PickersOutlinedInput/Outline.js +58 -41
- package/modern/PickersTextField/PickersOutlinedInput/PickersOutlinedInput.js +31 -12
- package/modern/StaticDatePicker/StaticDatePicker.js +1 -1
- package/modern/StaticDateTimePicker/StaticDateTimePicker.js +1 -1
- package/modern/TimeClock/Clock.js +48 -35
- package/modern/TimeClock/ClockNumber.js +12 -7
- package/modern/TimeClock/ClockPointer.js +23 -13
- package/modern/TimePicker/TimePickerToolbar.js +25 -16
- package/modern/YearCalendar/PickersYear.js +12 -6
- package/modern/index.js +1 -1
- package/modern/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js +11 -6
- package/modern/internals/components/PickersPopper.js +13 -9
- package/modern/internals/components/PickersToolbar.js +39 -18
- package/modern/internals/hooks/useField/buildSectionsFromFormat.js +34 -30
- package/modern/internals/hooks/useField/useField.js +4 -2
- package/modern/internals/hooks/useField/useFieldV6TextField.js +8 -3
- package/modern/internals/hooks/useField/useFieldV7TextField.js +1 -1
- package/modern/internals/hooks/useOpenState.js +1 -1
- package/modern/internals/utils/fields.js +1 -1
- package/modern/locales/itIT.js +16 -20
- package/modern/locales/zhHK.js +14 -17
- package/node/AdapterLuxon/AdapterLuxon.js +9 -4
- package/node/DateCalendar/DateCalendar.js +1 -1
- package/node/DateField/DateField.js +1 -1
- package/node/DatePicker/DatePicker.js +1 -1
- package/node/DatePicker/DatePickerToolbar.js +11 -6
- package/node/DateTimeField/DateTimeField.js +1 -1
- package/node/DateTimePicker/DateTimePicker.js +1 -1
- package/node/DateTimePicker/DateTimePickerToolbar.js +97 -45
- package/node/DayCalendarSkeleton/DayCalendarSkeleton.js +12 -8
- package/node/DesktopDatePicker/DesktopDatePicker.js +1 -1
- package/node/DesktopDateTimePicker/DesktopDateTimePicker.js +63 -25
- package/node/DesktopDateTimePicker/DesktopDateTimePickerLayout.js +108 -0
- package/node/DesktopDateTimePicker/index.js +8 -1
- package/node/DigitalClock/DigitalClock.js +14 -6
- package/node/MobileDatePicker/MobileDatePicker.js +1 -1
- package/node/MobileDateTimePicker/MobileDateTimePicker.js +1 -1
- package/node/MonthCalendar/PickersMonth.js +12 -6
- package/node/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +13 -4
- package/node/PickersCalendarHeader/PickersCalendarHeader.js +13 -9
- package/node/PickersDay/PickersDay.js +30 -15
- package/node/PickersLayout/PickersLayout.js +31 -17
- package/node/PickersTextField/PickersFilledInput/PickersFilledInput.js +137 -72
- package/node/PickersTextField/PickersInput/PickersInput.js +76 -54
- package/node/PickersTextField/PickersInputBase/PickersInputBase.js +64 -24
- package/node/PickersTextField/PickersOutlinedInput/Outline.js +58 -41
- package/node/PickersTextField/PickersOutlinedInput/PickersOutlinedInput.js +31 -12
- package/node/StaticDatePicker/StaticDatePicker.js +1 -1
- package/node/StaticDateTimePicker/StaticDateTimePicker.js +1 -1
- package/node/TimeClock/Clock.js +48 -35
- package/node/TimeClock/ClockNumber.js +12 -7
- package/node/TimeClock/ClockPointer.js +23 -13
- package/node/TimePicker/TimePickerToolbar.js +25 -16
- package/node/YearCalendar/PickersYear.js +12 -6
- package/node/index.js +1 -1
- package/node/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js +11 -6
- package/node/internals/components/PickersPopper.js +13 -9
- package/node/internals/components/PickersToolbar.js +39 -18
- package/node/internals/hooks/useField/buildSectionsFromFormat.js +34 -30
- package/node/internals/hooks/useField/useField.js +4 -2
- package/node/internals/hooks/useField/useFieldV6TextField.js +8 -3
- package/node/internals/hooks/useField/useFieldV7TextField.js +1 -1
- package/node/internals/hooks/useOpenState.js +1 -1
- package/node/internals/utils/fields.js +1 -1
- package/node/locales/itIT.js +16 -20
- package/node/locales/zhHK.js +14 -17
- package/package.json +5 -5
- package/timeViewRenderers/timeViewRenderers.js +1 -1
- package/dateTimeViewRenderers/dateTimeViewRenderers.d.ts +0 -15
- package/dateTimeViewRenderers/dateTimeViewRenderers.js +0 -163
- package/dateTimeViewRenderers/index.d.ts +0 -2
- package/dateTimeViewRenderers/index.js +0 -1
- package/dateTimeViewRenderers/package.json +0 -6
- package/modern/dateTimeViewRenderers/dateTimeViewRenderers.js +0 -162
- package/modern/dateTimeViewRenderers/index.js +0 -1
- package/node/dateTimeViewRenderers/dateTimeViewRenderers.js +0 -171
- package/node/dateTimeViewRenderers/index.js +0 -12
package/TimePicker/shared.js
CHANGED
|
@@ -5,16 +5,14 @@ import { useUtils } from '../internals/hooks/useUtils';
|
|
|
5
5
|
import { TimePickerToolbar } from './TimePickerToolbar';
|
|
6
6
|
import { applyDefaultViewProps } from '../internals/utils/views';
|
|
7
7
|
export function useTimePickerDefaultizedProps(props, name) {
|
|
8
|
-
var _themeProps$ampm, _themeProps$disableFu, _themeProps$disablePa, _themeProps$slotProps;
|
|
9
8
|
const utils = useUtils();
|
|
10
9
|
const themeProps = useThemeProps({
|
|
11
10
|
props,
|
|
12
11
|
name
|
|
13
12
|
});
|
|
14
|
-
const ampm =
|
|
13
|
+
const ampm = themeProps.ampm ?? utils.is12HourCycleInCurrentLocale();
|
|
15
14
|
const localeText = React.useMemo(() => {
|
|
16
|
-
|
|
17
|
-
if (((_themeProps$localeTex = themeProps.localeText) == null ? void 0 : _themeProps$localeTex.toolbarTitle) == null) {
|
|
15
|
+
if (themeProps.localeText?.toolbarTitle == null) {
|
|
18
16
|
return themeProps.localeText;
|
|
19
17
|
}
|
|
20
18
|
return _extends({}, themeProps.localeText, {
|
|
@@ -30,8 +28,8 @@ export function useTimePickerDefaultizedProps(props, name) {
|
|
|
30
28
|
defaultViews: ['hours', 'minutes'],
|
|
31
29
|
defaultOpenTo: 'hours'
|
|
32
30
|
}), {
|
|
33
|
-
disableFuture:
|
|
34
|
-
disablePast:
|
|
31
|
+
disableFuture: themeProps.disableFuture ?? false,
|
|
32
|
+
disablePast: themeProps.disablePast ?? false,
|
|
35
33
|
slots: _extends({
|
|
36
34
|
toolbar: TimePickerToolbar
|
|
37
35
|
}, themeProps.slots),
|
|
@@ -39,7 +37,7 @@ export function useTimePickerDefaultizedProps(props, name) {
|
|
|
39
37
|
toolbar: _extends({
|
|
40
38
|
ampm,
|
|
41
39
|
ampmInClock: themeProps.ampmInClock
|
|
42
|
-
},
|
|
40
|
+
}, themeProps.slotProps?.toolbar)
|
|
43
41
|
})
|
|
44
42
|
});
|
|
45
43
|
}
|
|
@@ -23,14 +23,20 @@ const PickersYearRoot = styled('div', {
|
|
|
23
23
|
name: 'MuiPickersYear',
|
|
24
24
|
slot: 'Root',
|
|
25
25
|
overridesResolver: (_, styles) => [styles.root]
|
|
26
|
-
})(
|
|
27
|
-
ownerState
|
|
28
|
-
}) => ({
|
|
29
|
-
flexBasis: ownerState.yearsPerRow === 3 ? '33.3%' : '25%',
|
|
26
|
+
})({
|
|
30
27
|
display: 'flex',
|
|
31
28
|
alignItems: 'center',
|
|
32
|
-
justifyContent: 'center'
|
|
33
|
-
|
|
29
|
+
justifyContent: 'center',
|
|
30
|
+
flexBasis: '33.3%',
|
|
31
|
+
variants: [{
|
|
32
|
+
props: {
|
|
33
|
+
yearsPerRow: 4
|
|
34
|
+
},
|
|
35
|
+
style: {
|
|
36
|
+
flexBasis: '25%'
|
|
37
|
+
}
|
|
38
|
+
}]
|
|
39
|
+
});
|
|
34
40
|
const PickersYearButton = styled('button', {
|
|
35
41
|
name: 'MuiPickersYear',
|
|
36
42
|
slot: 'YearButton',
|
|
@@ -26,7 +26,6 @@ const useUtilityClasses = ownerState => {
|
|
|
26
26
|
return composeClasses(slots, getYearCalendarUtilityClass, classes);
|
|
27
27
|
};
|
|
28
28
|
function useYearCalendarDefaultizedProps(props, name) {
|
|
29
|
-
var _themeProps$yearsPerR;
|
|
30
29
|
const utils = useUtils();
|
|
31
30
|
const defaultDates = useDefaultDates();
|
|
32
31
|
const themeProps = useThemeProps({
|
|
@@ -37,7 +36,7 @@ function useYearCalendarDefaultizedProps(props, name) {
|
|
|
37
36
|
disablePast: false,
|
|
38
37
|
disableFuture: false
|
|
39
38
|
}, themeProps, {
|
|
40
|
-
yearsPerRow:
|
|
39
|
+
yearsPerRow: themeProps.yearsPerRow ?? 3,
|
|
41
40
|
minDate: applyDefaultDate(utils, themeProps.minDate, defaultDates.minDate),
|
|
42
41
|
maxDate: applyDefaultDate(utils, themeProps.maxDate, defaultDates.maxDate)
|
|
43
42
|
});
|
|
@@ -130,7 +129,7 @@ export const YearCalendar = /*#__PURE__*/React.forwardRef(function YearCalendar(
|
|
|
130
129
|
name: 'YearCalendar',
|
|
131
130
|
state: 'hasFocus',
|
|
132
131
|
controlled: hasFocus,
|
|
133
|
-
default: autoFocus
|
|
132
|
+
default: autoFocus ?? false
|
|
134
133
|
});
|
|
135
134
|
const changeHasFocus = useEventCallback(newHasFocus => {
|
|
136
135
|
setInternalHasFocus(newHasFocus);
|
|
@@ -161,14 +160,14 @@ export const YearCalendar = /*#__PURE__*/React.forwardRef(function YearCalendar(
|
|
|
161
160
|
if (readOnly) {
|
|
162
161
|
return;
|
|
163
162
|
}
|
|
164
|
-
const newDate = utils.setYear(value
|
|
163
|
+
const newDate = utils.setYear(value ?? referenceDate, year);
|
|
165
164
|
handleValueChange(newDate);
|
|
166
165
|
});
|
|
167
166
|
const focusYear = useEventCallback(year => {
|
|
168
|
-
if (!isYearDisabled(utils.setYear(value
|
|
167
|
+
if (!isYearDisabled(utils.setYear(value ?? referenceDate, year))) {
|
|
169
168
|
setFocusedYear(year);
|
|
170
169
|
changeHasFocus(true);
|
|
171
|
-
onYearFocus
|
|
170
|
+
onYearFocus?.(year);
|
|
172
171
|
}
|
|
173
172
|
});
|
|
174
173
|
React.useEffect(() => {
|
|
@@ -11,7 +11,6 @@ import { useLocaleText } from '../internals/hooks/useUtils';
|
|
|
11
11
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
12
12
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
13
13
|
export const useClearableField = props => {
|
|
14
|
-
var _slots$clearButton, _slots$clearIcon;
|
|
15
14
|
const localeText = useLocaleText();
|
|
16
15
|
const {
|
|
17
16
|
clearable,
|
|
@@ -22,11 +21,11 @@ export const useClearableField = props => {
|
|
|
22
21
|
slotProps
|
|
23
22
|
} = props,
|
|
24
23
|
other = _objectWithoutPropertiesLoose(props, _excluded);
|
|
25
|
-
const IconButton =
|
|
24
|
+
const IconButton = slots?.clearButton ?? MuiIconButton;
|
|
26
25
|
// The spread is here to avoid this bug mui/material-ui#34056
|
|
27
26
|
const _useSlotProps = useSlotProps({
|
|
28
27
|
elementType: IconButton,
|
|
29
|
-
externalSlotProps: slotProps
|
|
28
|
+
externalSlotProps: slotProps?.clearButton,
|
|
30
29
|
ownerState: {},
|
|
31
30
|
className: 'clearButton',
|
|
32
31
|
additionalProps: {
|
|
@@ -34,10 +33,10 @@ export const useClearableField = props => {
|
|
|
34
33
|
}
|
|
35
34
|
}),
|
|
36
35
|
iconButtonProps = _objectWithoutPropertiesLoose(_useSlotProps, _excluded2);
|
|
37
|
-
const EndClearIcon =
|
|
36
|
+
const EndClearIcon = slots?.clearIcon ?? ClearIcon;
|
|
38
37
|
const endClearIconProps = useSlotProps({
|
|
39
38
|
elementType: EndClearIcon,
|
|
40
|
-
externalSlotProps: slotProps
|
|
39
|
+
externalSlotProps: slotProps?.clearIcon,
|
|
41
40
|
ownerState: {}
|
|
42
41
|
});
|
|
43
42
|
return _extends({}, other, {
|
|
@@ -46,7 +45,7 @@ export const useClearableField = props => {
|
|
|
46
45
|
children: [clearable && /*#__PURE__*/_jsx(InputAdornment, {
|
|
47
46
|
position: "end",
|
|
48
47
|
sx: {
|
|
49
|
-
marginRight: InputProps
|
|
48
|
+
marginRight: InputProps?.endAdornment ? -1 : -1.5
|
|
50
49
|
},
|
|
51
50
|
children: /*#__PURE__*/_jsx(IconButton, _extends({}, iconButtonProps, {
|
|
52
51
|
onClick: onClear,
|
|
@@ -54,7 +53,7 @@ export const useClearableField = props => {
|
|
|
54
53
|
fontSize: "small"
|
|
55
54
|
}, endClearIconProps))
|
|
56
55
|
}))
|
|
57
|
-
}), InputProps
|
|
56
|
+
}), InputProps?.endAdornment]
|
|
58
57
|
})
|
|
59
58
|
}),
|
|
60
59
|
sx: [{
|
package/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
2
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
+
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
3
3
|
const _excluded = ["children", "className", "slots", "slotProps", "isNextDisabled", "isNextHidden", "onGoToNext", "nextLabel", "isPreviousDisabled", "isPreviousHidden", "onGoToPrevious", "previousLabel"],
|
|
4
4
|
_excluded2 = ["ownerState"],
|
|
5
5
|
_excluded3 = ["ownerState"];
|
|
@@ -34,11 +34,16 @@ const PickersArrowSwitcherButton = styled(IconButton, {
|
|
|
34
34
|
name: 'MuiPickersArrowSwitcher',
|
|
35
35
|
slot: 'Button',
|
|
36
36
|
overridesResolver: (props, styles) => styles.button
|
|
37
|
-
})(
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
}
|
|
37
|
+
})({
|
|
38
|
+
variants: [{
|
|
39
|
+
props: {
|
|
40
|
+
hidden: true
|
|
41
|
+
},
|
|
42
|
+
style: {
|
|
43
|
+
visibility: 'hidden'
|
|
44
|
+
}
|
|
45
|
+
}]
|
|
46
|
+
});
|
|
42
47
|
const useUtilityClasses = ownerState => {
|
|
43
48
|
const {
|
|
44
49
|
classes
|
|
@@ -51,7 +56,6 @@ const useUtilityClasses = ownerState => {
|
|
|
51
56
|
return composeClasses(slots, getPickersArrowSwitcherUtilityClass, classes);
|
|
52
57
|
};
|
|
53
58
|
export const PickersArrowSwitcher = /*#__PURE__*/React.forwardRef(function PickersArrowSwitcher(inProps, ref) {
|
|
54
|
-
var _slots$previousIconBu, _slots$nextIconButton, _slots$leftArrowIcon, _slots$rightArrowIcon;
|
|
55
59
|
const theme = useTheme();
|
|
56
60
|
const isRTL = theme.direction === 'rtl';
|
|
57
61
|
const props = useThemeProps({
|
|
@@ -87,10 +91,10 @@ export const PickersArrowSwitcher = /*#__PURE__*/React.forwardRef(function Picke
|
|
|
87
91
|
goTo: onGoToPrevious,
|
|
88
92
|
label: previousLabel
|
|
89
93
|
};
|
|
90
|
-
const PreviousIconButton =
|
|
94
|
+
const PreviousIconButton = slots?.previousIconButton ?? PickersArrowSwitcherButton;
|
|
91
95
|
const previousIconButtonProps = useSlotProps({
|
|
92
96
|
elementType: PreviousIconButton,
|
|
93
|
-
externalSlotProps: slotProps
|
|
97
|
+
externalSlotProps: slotProps?.previousIconButton,
|
|
94
98
|
additionalProps: {
|
|
95
99
|
size: 'medium',
|
|
96
100
|
title: previousProps.label,
|
|
@@ -104,10 +108,10 @@ export const PickersArrowSwitcher = /*#__PURE__*/React.forwardRef(function Picke
|
|
|
104
108
|
}),
|
|
105
109
|
className: classes.button
|
|
106
110
|
});
|
|
107
|
-
const NextIconButton =
|
|
111
|
+
const NextIconButton = slots?.nextIconButton ?? PickersArrowSwitcherButton;
|
|
108
112
|
const nextIconButtonProps = useSlotProps({
|
|
109
113
|
elementType: NextIconButton,
|
|
110
|
-
externalSlotProps: slotProps
|
|
114
|
+
externalSlotProps: slotProps?.nextIconButton,
|
|
111
115
|
additionalProps: {
|
|
112
116
|
size: 'medium',
|
|
113
117
|
title: nextProps.label,
|
|
@@ -121,22 +125,22 @@ export const PickersArrowSwitcher = /*#__PURE__*/React.forwardRef(function Picke
|
|
|
121
125
|
}),
|
|
122
126
|
className: classes.button
|
|
123
127
|
});
|
|
124
|
-
const LeftArrowIcon =
|
|
128
|
+
const LeftArrowIcon = slots?.leftArrowIcon ?? ArrowLeftIcon;
|
|
125
129
|
// The spread is here to avoid this bug mui/material-ui#34056
|
|
126
130
|
const _useSlotProps = useSlotProps({
|
|
127
131
|
elementType: LeftArrowIcon,
|
|
128
|
-
externalSlotProps: slotProps
|
|
132
|
+
externalSlotProps: slotProps?.leftArrowIcon,
|
|
129
133
|
additionalProps: {
|
|
130
134
|
fontSize: 'inherit'
|
|
131
135
|
},
|
|
132
136
|
ownerState: undefined
|
|
133
137
|
}),
|
|
134
138
|
leftArrowIconProps = _objectWithoutPropertiesLoose(_useSlotProps, _excluded2);
|
|
135
|
-
const RightArrowIcon =
|
|
139
|
+
const RightArrowIcon = slots?.rightArrowIcon ?? ArrowRightIcon;
|
|
136
140
|
// The spread is here to avoid this bug mui/material-ui#34056
|
|
137
141
|
const _useSlotProps2 = useSlotProps({
|
|
138
142
|
elementType: RightArrowIcon,
|
|
139
|
-
externalSlotProps: slotProps
|
|
143
|
+
externalSlotProps: slotProps?.rightArrowIcon,
|
|
140
144
|
additionalProps: {
|
|
141
145
|
fontSize: 'inherit'
|
|
142
146
|
},
|
|
@@ -21,7 +21,6 @@ const PickersModalDialogContent = styled(DialogContent)({
|
|
|
21
21
|
}
|
|
22
22
|
});
|
|
23
23
|
export function PickersModalDialog(props) {
|
|
24
|
-
var _slots$dialog, _slots$mobileTransiti;
|
|
25
24
|
const {
|
|
26
25
|
children,
|
|
27
26
|
onDismiss,
|
|
@@ -29,16 +28,16 @@ export function PickersModalDialog(props) {
|
|
|
29
28
|
slots,
|
|
30
29
|
slotProps
|
|
31
30
|
} = props;
|
|
32
|
-
const Dialog =
|
|
33
|
-
const Transition =
|
|
31
|
+
const Dialog = slots?.dialog ?? PickersModalDialogRoot;
|
|
32
|
+
const Transition = slots?.mobileTransition ?? Fade;
|
|
34
33
|
return /*#__PURE__*/_jsx(Dialog, _extends({
|
|
35
34
|
open: open,
|
|
36
35
|
onClose: onDismiss
|
|
37
|
-
}, slotProps
|
|
36
|
+
}, slotProps?.dialog, {
|
|
38
37
|
TransitionComponent: Transition,
|
|
39
|
-
TransitionProps: slotProps
|
|
40
|
-
PaperComponent: slots
|
|
41
|
-
PaperProps: slotProps
|
|
38
|
+
TransitionProps: slotProps?.mobileTransition,
|
|
39
|
+
PaperComponent: slots?.mobilePaper,
|
|
40
|
+
PaperProps: slotProps?.mobilePaper,
|
|
42
41
|
children: /*#__PURE__*/_jsx(PickersModalDialogContent, {
|
|
43
42
|
children: children
|
|
44
43
|
})
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
2
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
+
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
3
3
|
const _excluded = ["PaperComponent", "popperPlacement", "ownerState", "children", "paperSlotProps", "paperClasses", "onPaperClick", "onPaperTouchStart"];
|
|
4
4
|
import * as React from 'react';
|
|
5
5
|
import { useSlotProps } from '@mui/base/utils';
|
|
@@ -37,14 +37,18 @@ const PickersPopperPaper = styled(MuiPaper, {
|
|
|
37
37
|
name: 'MuiPickersPopper',
|
|
38
38
|
slot: 'Paper',
|
|
39
39
|
overridesResolver: (_, styles) => styles.paper
|
|
40
|
-
})(
|
|
41
|
-
ownerState
|
|
42
|
-
}) => _extends({
|
|
40
|
+
})({
|
|
43
41
|
outline: 0,
|
|
44
|
-
transformOrigin: 'top center'
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
42
|
+
transformOrigin: 'top center',
|
|
43
|
+
variants: [{
|
|
44
|
+
props: ({
|
|
45
|
+
placement
|
|
46
|
+
}) => ['top', 'top-start', 'top-end'].includes(placement),
|
|
47
|
+
style: {
|
|
48
|
+
transformOrigin: 'bottom center'
|
|
49
|
+
}
|
|
50
|
+
}]
|
|
51
|
+
});
|
|
48
52
|
function clickedRootScrollbar(event, doc) {
|
|
49
53
|
return doc.documentElement.clientWidth < event.clientX || doc.documentElement.clientHeight < event.clientY;
|
|
50
54
|
}
|
|
@@ -146,7 +150,7 @@ function useClickAwayListener(active, onClickAway) {
|
|
|
146
150
|
// TODO This behavior is not tested automatically
|
|
147
151
|
// It's unclear whether this is due to different update semantics in test (batched in act() vs discrete on click).
|
|
148
152
|
// Or if this is a timing related issues due to different Transition components
|
|
149
|
-
// Once we get rid of all the manual scheduling (
|
|
153
|
+
// Once we get rid of all the manual scheduling (for example setTimeout(update, 0)) we can revisit this code+test.
|
|
150
154
|
if (active) {
|
|
151
155
|
const doc = ownerDocument(nodeRef.current);
|
|
152
156
|
doc.addEventListener('click', handleClickAway);
|
|
@@ -190,21 +194,18 @@ const PickersPopperPaperWrapper = /*#__PURE__*/React.forwardRef((props, ref) =>
|
|
|
190
194
|
});
|
|
191
195
|
return /*#__PURE__*/_jsx(PaperComponent, _extends({}, other, paperProps, {
|
|
192
196
|
onClick: event => {
|
|
193
|
-
var _paperProps$onClick;
|
|
194
197
|
onPaperClick(event);
|
|
195
|
-
|
|
198
|
+
paperProps.onClick?.(event);
|
|
196
199
|
},
|
|
197
200
|
onTouchStart: event => {
|
|
198
|
-
var _paperProps$onTouchSt;
|
|
199
201
|
onPaperTouchStart(event);
|
|
200
|
-
|
|
202
|
+
paperProps.onTouchStart?.(event);
|
|
201
203
|
},
|
|
202
204
|
ownerState: ownerState,
|
|
203
205
|
children: children
|
|
204
206
|
}));
|
|
205
207
|
});
|
|
206
208
|
export function PickersPopper(inProps) {
|
|
207
|
-
var _slots$desktopTransit, _slots$desktopTrapFoc, _slots$desktopPaper, _slots$popper;
|
|
208
209
|
const props = useThemeProps({
|
|
209
210
|
props: inProps,
|
|
210
211
|
name: 'MuiPickersPopper'
|
|
@@ -251,14 +252,14 @@ export function PickersPopper(inProps) {
|
|
|
251
252
|
});
|
|
252
253
|
}
|
|
253
254
|
}, [open, role, shouldRestoreFocus]);
|
|
254
|
-
const [clickAwayRef, onPaperClick, onPaperTouchStart] = useClickAwayListener(open, onBlur
|
|
255
|
+
const [clickAwayRef, onPaperClick, onPaperTouchStart] = useClickAwayListener(open, onBlur ?? onDismiss);
|
|
255
256
|
const paperRef = React.useRef(null);
|
|
256
257
|
const handleRef = useForkRef(paperRef, containerRef);
|
|
257
258
|
const handlePaperRef = useForkRef(handleRef, clickAwayRef);
|
|
258
259
|
const ownerState = props;
|
|
259
260
|
const classes = useUtilityClasses(ownerState);
|
|
260
261
|
const defaultReduceAnimations = useDefaultReduceAnimations();
|
|
261
|
-
const reduceAnimations = inReduceAnimations
|
|
262
|
+
const reduceAnimations = inReduceAnimations ?? defaultReduceAnimations;
|
|
262
263
|
const handleKeyDown = event => {
|
|
263
264
|
if (event.key === 'Escape') {
|
|
264
265
|
// stop the propagation to avoid closing parent modal
|
|
@@ -266,13 +267,13 @@ export function PickersPopper(inProps) {
|
|
|
266
267
|
onDismiss();
|
|
267
268
|
}
|
|
268
269
|
};
|
|
269
|
-
const Transition =
|
|
270
|
-
const FocusTrap =
|
|
271
|
-
const Paper =
|
|
272
|
-
const Popper =
|
|
270
|
+
const Transition = slots?.desktopTransition ?? reduceAnimations ? Fade : Grow;
|
|
271
|
+
const FocusTrap = slots?.desktopTrapFocus ?? BaseFocusTrap;
|
|
272
|
+
const Paper = slots?.desktopPaper ?? PickersPopperPaper;
|
|
273
|
+
const Popper = slots?.popper ?? PickersPopperRoot;
|
|
273
274
|
const popperProps = useSlotProps({
|
|
274
275
|
elementType: Popper,
|
|
275
|
-
externalSlotProps: slotProps
|
|
276
|
+
externalSlotProps: slotProps?.popper,
|
|
276
277
|
additionalProps: {
|
|
277
278
|
transition: true,
|
|
278
279
|
role,
|
|
@@ -298,8 +299,8 @@ export function PickersPopper(inProps) {
|
|
|
298
299
|
disableRestoreFocus: true,
|
|
299
300
|
disableEnforceFocus: role === 'tooltip',
|
|
300
301
|
isEnabled: () => true
|
|
301
|
-
}, slotProps
|
|
302
|
-
children: /*#__PURE__*/_jsx(Transition, _extends({}, TransitionProps, slotProps
|
|
302
|
+
}, slotProps?.desktopTrapFocus, {
|
|
303
|
+
children: /*#__PURE__*/_jsx(Transition, _extends({}, TransitionProps, slotProps?.desktopTransition, {
|
|
303
304
|
children: /*#__PURE__*/_jsx(PickersPopperPaperWrapper, {
|
|
304
305
|
PaperComponent: Paper,
|
|
305
306
|
ownerState: ownerState,
|
|
@@ -308,7 +309,7 @@ export function PickersPopper(inProps) {
|
|
|
308
309
|
onPaperClick: onPaperClick,
|
|
309
310
|
onPaperTouchStart: onPaperTouchStart,
|
|
310
311
|
paperClasses: classes.paper,
|
|
311
|
-
paperSlotProps: slotProps
|
|
312
|
+
paperSlotProps: slotProps?.desktopPaper,
|
|
312
313
|
children: children
|
|
313
314
|
})
|
|
314
315
|
}))
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
2
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
+
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
3
3
|
const _excluded = ["children", "className", "toolbarTitle", "hidden", "titleId", "isLandscape", "classes", "landscapeDirection"];
|
|
4
4
|
import * as React from 'react';
|
|
5
5
|
import clsx from 'clsx';
|
|
@@ -26,38 +26,56 @@ const PickersToolbarRoot = styled('div', {
|
|
|
26
26
|
slot: 'Root',
|
|
27
27
|
overridesResolver: (props, styles) => styles.root
|
|
28
28
|
})(({
|
|
29
|
-
theme
|
|
30
|
-
|
|
31
|
-
}) => _extends({
|
|
29
|
+
theme
|
|
30
|
+
}) => ({
|
|
32
31
|
display: 'flex',
|
|
33
32
|
flexDirection: 'column',
|
|
34
33
|
alignItems: 'flex-start',
|
|
35
34
|
justifyContent: 'space-between',
|
|
36
|
-
padding: theme.spacing(2, 3)
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
35
|
+
padding: theme.spacing(2, 3),
|
|
36
|
+
variants: [{
|
|
37
|
+
props: {
|
|
38
|
+
isLandscape: true
|
|
39
|
+
},
|
|
40
|
+
style: {
|
|
41
|
+
height: 'auto',
|
|
42
|
+
maxWidth: 160,
|
|
43
|
+
padding: 16,
|
|
44
|
+
justifyContent: 'flex-start',
|
|
45
|
+
flexWrap: 'wrap'
|
|
46
|
+
}
|
|
47
|
+
}]
|
|
43
48
|
}));
|
|
44
49
|
const PickersToolbarContent = styled('div', {
|
|
45
50
|
name: 'MuiPickersToolbar',
|
|
46
51
|
slot: 'Content',
|
|
47
52
|
overridesResolver: (props, styles) => styles.content
|
|
48
|
-
})(
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
53
|
+
})({
|
|
54
|
+
display: 'flex',
|
|
55
|
+
flexWrap: 'wrap',
|
|
56
|
+
width: '100%',
|
|
57
|
+
flex: 1,
|
|
58
|
+
justifyContent: 'space-between',
|
|
59
|
+
alignItems: 'center',
|
|
60
|
+
flexDirection: 'row',
|
|
61
|
+
variants: [{
|
|
62
|
+
props: {
|
|
63
|
+
isLandscape: true
|
|
64
|
+
},
|
|
65
|
+
style: {
|
|
66
|
+
justifyContent: 'flex-start',
|
|
67
|
+
alignItems: 'flex-start',
|
|
68
|
+
flexDirection: 'column'
|
|
69
|
+
}
|
|
70
|
+
}, {
|
|
71
|
+
props: {
|
|
72
|
+
isLandscape: true,
|
|
73
|
+
landscapeDirection: 'row'
|
|
74
|
+
},
|
|
75
|
+
style: {
|
|
76
|
+
flexDirection: 'row'
|
|
77
|
+
}
|
|
78
|
+
}]
|
|
61
79
|
});
|
|
62
80
|
export const PickersToolbar = /*#__PURE__*/React.forwardRef(function PickersToolbar(inProps, ref) {
|
|
63
81
|
const props = useThemeProps({
|
|
@@ -30,7 +30,7 @@ export function useMeridiemMode(date, ampm, onChange, selectionState) {
|
|
|
30
30
|
const meridiemMode = getMeridiem(date, utils);
|
|
31
31
|
const handleMeridiemChange = React.useCallback(mode => {
|
|
32
32
|
const timeWithMeridiem = date == null ? null : convertToMeridiem(date, mode, Boolean(ampm), utils);
|
|
33
|
-
onChange(timeWithMeridiem, selectionState
|
|
33
|
+
onChange(timeWithMeridiem, selectionState ?? 'partial');
|
|
34
34
|
}, [ampm, date, onChange, selectionState, utils]);
|
|
35
35
|
return {
|
|
36
36
|
meridiemMode,
|
|
@@ -2,42 +2,39 @@ import _extends from "@babel/runtime/helpers/esm/extends";
|
|
|
2
2
|
import { applyDefaultDate } from '../utils/date-utils';
|
|
3
3
|
import { useUtils, useDefaultDates } from './useUtils';
|
|
4
4
|
export const useDefaultizedDateField = props => {
|
|
5
|
-
var _props$disablePast, _props$disableFuture, _props$format;
|
|
6
5
|
const utils = useUtils();
|
|
7
6
|
const defaultDates = useDefaultDates();
|
|
8
7
|
return _extends({}, props, {
|
|
9
|
-
disablePast:
|
|
10
|
-
disableFuture:
|
|
11
|
-
format:
|
|
8
|
+
disablePast: props.disablePast ?? false,
|
|
9
|
+
disableFuture: props.disableFuture ?? false,
|
|
10
|
+
format: props.format ?? utils.formats.keyboardDate,
|
|
12
11
|
minDate: applyDefaultDate(utils, props.minDate, defaultDates.minDate),
|
|
13
12
|
maxDate: applyDefaultDate(utils, props.maxDate, defaultDates.maxDate)
|
|
14
13
|
});
|
|
15
14
|
};
|
|
16
15
|
export const useDefaultizedTimeField = props => {
|
|
17
|
-
var _props$ampm, _props$disablePast2, _props$disableFuture2, _props$format2;
|
|
18
16
|
const utils = useUtils();
|
|
19
|
-
const ampm =
|
|
17
|
+
const ampm = props.ampm ?? utils.is12HourCycleInCurrentLocale();
|
|
20
18
|
const defaultFormat = ampm ? utils.formats.fullTime12h : utils.formats.fullTime24h;
|
|
21
19
|
return _extends({}, props, {
|
|
22
|
-
disablePast:
|
|
23
|
-
disableFuture:
|
|
24
|
-
format:
|
|
20
|
+
disablePast: props.disablePast ?? false,
|
|
21
|
+
disableFuture: props.disableFuture ?? false,
|
|
22
|
+
format: props.format ?? defaultFormat
|
|
25
23
|
});
|
|
26
24
|
};
|
|
27
25
|
export const useDefaultizedDateTimeField = props => {
|
|
28
|
-
var _props$ampm2, _props$disablePast3, _props$disableFuture3, _props$format3, _props$minDateTime, _props$maxDateTime, _props$minDateTime2, _props$maxDateTime2;
|
|
29
26
|
const utils = useUtils();
|
|
30
27
|
const defaultDates = useDefaultDates();
|
|
31
|
-
const ampm =
|
|
28
|
+
const ampm = props.ampm ?? utils.is12HourCycleInCurrentLocale();
|
|
32
29
|
const defaultFormat = ampm ? utils.formats.keyboardDateTime12h : utils.formats.keyboardDateTime24h;
|
|
33
30
|
return _extends({}, props, {
|
|
34
|
-
disablePast:
|
|
35
|
-
disableFuture:
|
|
36
|
-
format:
|
|
31
|
+
disablePast: props.disablePast ?? false,
|
|
32
|
+
disableFuture: props.disableFuture ?? false,
|
|
33
|
+
format: props.format ?? defaultFormat,
|
|
37
34
|
disableIgnoringDatePartForTimeValidation: Boolean(props.minDateTime || props.maxDateTime),
|
|
38
|
-
minDate: applyDefaultDate(utils,
|
|
39
|
-
maxDate: applyDefaultDate(utils,
|
|
40
|
-
minTime:
|
|
41
|
-
maxTime:
|
|
35
|
+
minDate: applyDefaultDate(utils, props.minDateTime ?? props.minDate, defaultDates.minDate),
|
|
36
|
+
maxDate: applyDefaultDate(utils, props.maxDateTime ?? props.maxDate, defaultDates.maxDate),
|
|
37
|
+
minTime: props.minDateTime ?? props.minTime,
|
|
38
|
+
maxTime: props.maxDateTime ?? props.maxTime
|
|
42
39
|
});
|
|
43
40
|
};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export { useDesktopPicker } from './useDesktopPicker';
|
|
2
|
-
export type { UseDesktopPickerSlots, UseDesktopPickerSlotProps, ExportedUseDesktopPickerSlotProps, DesktopOnlyPickerProps, } from './useDesktopPicker.types';
|
|
2
|
+
export type { UseDesktopPickerSlots, UseDesktopPickerSlotProps, ExportedUseDesktopPickerSlotProps, DesktopOnlyPickerProps, UseDesktopPickerProps, } from './useDesktopPicker.types';
|