@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
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
2
2
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
3
|
-
const _excluded = ["label", "autoFocus", "ownerState"];
|
|
3
|
+
const _excluded = ["label", "autoFocus", "disableUnderline", "ownerState"];
|
|
4
4
|
import * as React from 'react';
|
|
5
5
|
import PropTypes from 'prop-types';
|
|
6
6
|
import { useFormControl } from '@mui/material/FormControl';
|
|
7
7
|
import { styled, useThemeProps } from '@mui/material/styles';
|
|
8
|
+
import { shouldForwardProp } from '@mui/system';
|
|
8
9
|
import { refType } from '@mui/utils';
|
|
9
10
|
import composeClasses from '@mui/utils/composeClasses';
|
|
10
11
|
import { pickersFilledInputClasses, getPickersFilledInputUtilityClass } from './pickersFilledInputClasses';
|
|
@@ -14,18 +15,17 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
14
15
|
const PickersFilledInputRoot = styled(PickersInputBaseRoot, {
|
|
15
16
|
name: 'MuiPickersFilledInput',
|
|
16
17
|
slot: 'Root',
|
|
17
|
-
overridesResolver: (props, styles) => styles.root
|
|
18
|
+
overridesResolver: (props, styles) => styles.root,
|
|
19
|
+
shouldForwardProp: prop => shouldForwardProp(prop) && prop !== 'disableUnderline'
|
|
18
20
|
})(({
|
|
19
|
-
theme
|
|
20
|
-
ownerState
|
|
21
|
+
theme
|
|
21
22
|
}) => {
|
|
22
|
-
var _palette;
|
|
23
23
|
const light = theme.palette.mode === 'light';
|
|
24
24
|
const bottomLineColor = light ? 'rgba(0, 0, 0, 0.42)' : 'rgba(255, 255, 255, 0.7)';
|
|
25
25
|
const backgroundColor = light ? 'rgba(0, 0, 0, 0.06)' : 'rgba(255, 255, 255, 0.09)';
|
|
26
26
|
const hoverBackground = light ? 'rgba(0, 0, 0, 0.09)' : 'rgba(255, 255, 255, 0.13)';
|
|
27
27
|
const disabledBackground = light ? 'rgba(0, 0, 0, 0.12)' : 'rgba(255, 255, 255, 0.12)';
|
|
28
|
-
return
|
|
28
|
+
return {
|
|
29
29
|
backgroundColor: theme.vars ? theme.vars.palette.FilledInput.bg : backgroundColor,
|
|
30
30
|
borderTopLeftRadius: (theme.vars || theme).shape.borderRadius,
|
|
31
31
|
borderTopRightRadius: (theme.vars || theme).shape.borderRadius,
|
|
@@ -45,83 +45,136 @@ const PickersFilledInputRoot = styled(PickersInputBaseRoot, {
|
|
|
45
45
|
},
|
|
46
46
|
[`&.${pickersFilledInputClasses.disabled}`]: {
|
|
47
47
|
backgroundColor: theme.vars ? theme.vars.palette.FilledInput.disabledBg : disabledBackground
|
|
48
|
-
}
|
|
49
|
-
}, !ownerState.disableUnderline && {
|
|
50
|
-
'&::after': {
|
|
51
|
-
borderBottom: `2px solid ${(_palette = (theme.vars || theme).palette[ownerState.color || 'primary']) == null ? void 0 : _palette.main}`,
|
|
52
|
-
left: 0,
|
|
53
|
-
bottom: 0,
|
|
54
|
-
// Doing the other way around crash on IE11 "''" https://github.com/cssinjs/jss/issues/242
|
|
55
|
-
content: '""',
|
|
56
|
-
position: 'absolute',
|
|
57
|
-
right: 0,
|
|
58
|
-
transform: 'scaleX(0)',
|
|
59
|
-
transition: theme.transitions.create('transform', {
|
|
60
|
-
duration: theme.transitions.duration.shorter,
|
|
61
|
-
easing: theme.transitions.easing.easeOut
|
|
62
|
-
}),
|
|
63
|
-
pointerEvents: 'none' // Transparent to the hover style.
|
|
64
|
-
},
|
|
65
|
-
[`&.${pickersFilledInputClasses.focused}:after`]: {
|
|
66
|
-
// translateX(0) is a workaround for Safari transform scale bug
|
|
67
|
-
// See https://github.com/mui/material-ui/issues/31766
|
|
68
|
-
transform: 'scaleX(1) translateX(0)'
|
|
69
48
|
},
|
|
70
|
-
[
|
|
71
|
-
|
|
72
|
-
|
|
49
|
+
variants: [...Object.keys((theme.vars ?? theme).palette)
|
|
50
|
+
// @ts-ignore
|
|
51
|
+
.filter(key => (theme.vars ?? theme).palette[key].main).map(color => ({
|
|
52
|
+
props: {
|
|
53
|
+
color,
|
|
54
|
+
disableUnderline: false
|
|
55
|
+
},
|
|
56
|
+
style: {
|
|
57
|
+
'&::after': {
|
|
58
|
+
// @ts-ignore
|
|
59
|
+
borderBottom: `2px solid ${(theme.vars || theme).palette[color]?.main}`
|
|
60
|
+
}
|
|
73
61
|
}
|
|
74
|
-
},
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
62
|
+
})), {
|
|
63
|
+
props: {
|
|
64
|
+
disableUnderline: false
|
|
65
|
+
},
|
|
66
|
+
style: {
|
|
67
|
+
'&::after': {
|
|
68
|
+
left: 0,
|
|
69
|
+
bottom: 0,
|
|
70
|
+
// Doing the other way around crash on IE11 "''" https://github.com/cssinjs/jss/issues/242
|
|
71
|
+
content: '""',
|
|
72
|
+
position: 'absolute',
|
|
73
|
+
right: 0,
|
|
74
|
+
transform: 'scaleX(0)',
|
|
75
|
+
transition: theme.transitions.create('transform', {
|
|
76
|
+
duration: theme.transitions.duration.shorter,
|
|
77
|
+
easing: theme.transitions.easing.easeOut
|
|
78
|
+
}),
|
|
79
|
+
pointerEvents: 'none' // Transparent to the hover style.
|
|
80
|
+
},
|
|
81
|
+
[`&.${pickersFilledInputClasses.focused}:after`]: {
|
|
82
|
+
// translateX(0) is a workaround for Safari transform scale bug
|
|
83
|
+
// See https://github.com/mui/material-ui/issues/31766
|
|
84
|
+
transform: 'scaleX(1) translateX(0)'
|
|
85
|
+
},
|
|
86
|
+
[`&.${pickersFilledInputClasses.error}`]: {
|
|
87
|
+
'&:before, &:after': {
|
|
88
|
+
borderBottomColor: (theme.vars || theme).palette.error.main
|
|
89
|
+
}
|
|
90
|
+
},
|
|
91
|
+
'&::before': {
|
|
92
|
+
borderBottom: `1px solid ${theme.vars ? `rgba(${theme.vars.palette.common.onBackgroundChannel} / ${theme.vars.opacity.inputUnderline})` : bottomLineColor}`,
|
|
93
|
+
left: 0,
|
|
94
|
+
bottom: 0,
|
|
95
|
+
// Doing the other way around crash on IE11 "''" https://github.com/cssinjs/jss/issues/242
|
|
96
|
+
content: '"\\00a0"',
|
|
97
|
+
position: 'absolute',
|
|
98
|
+
right: 0,
|
|
99
|
+
transition: theme.transitions.create('border-bottom-color', {
|
|
100
|
+
duration: theme.transitions.duration.shorter
|
|
101
|
+
}),
|
|
102
|
+
pointerEvents: 'none' // Transparent to the hover style.
|
|
103
|
+
},
|
|
104
|
+
[`&:hover:not(.${pickersFilledInputClasses.disabled}, .${pickersFilledInputClasses.error}):before`]: {
|
|
105
|
+
borderBottom: `1px solid ${(theme.vars || theme).palette.text.primary}`
|
|
106
|
+
},
|
|
107
|
+
[`&.${pickersFilledInputClasses.disabled}:before`]: {
|
|
108
|
+
borderBottomStyle: 'dotted'
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}, {
|
|
112
|
+
props: ({
|
|
113
|
+
startAdornment
|
|
114
|
+
}) => !!startAdornment,
|
|
115
|
+
style: {
|
|
116
|
+
paddingLeft: 12
|
|
117
|
+
}
|
|
118
|
+
}, {
|
|
119
|
+
props: ({
|
|
120
|
+
endAdornment
|
|
121
|
+
}) => !!endAdornment,
|
|
122
|
+
style: {
|
|
123
|
+
paddingRight: 12
|
|
124
|
+
}
|
|
125
|
+
}]
|
|
126
|
+
};
|
|
99
127
|
});
|
|
100
128
|
const PickersFilledSectionsContainer = styled(PickersInputBaseSectionsContainer, {
|
|
101
129
|
name: 'MuiPickersFilledInput',
|
|
102
130
|
slot: 'sectionsContainer',
|
|
103
131
|
overridesResolver: (props, styles) => styles.sectionsContainer
|
|
104
|
-
})(
|
|
105
|
-
ownerState
|
|
106
|
-
}) => _extends({
|
|
132
|
+
})({
|
|
107
133
|
paddingTop: 25,
|
|
108
134
|
paddingRight: 12,
|
|
109
135
|
paddingBottom: 8,
|
|
110
|
-
paddingLeft: 12
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
},
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
136
|
+
paddingLeft: 12,
|
|
137
|
+
variants: [{
|
|
138
|
+
props: {
|
|
139
|
+
size: 'small'
|
|
140
|
+
},
|
|
141
|
+
style: {
|
|
142
|
+
paddingTop: 21,
|
|
143
|
+
paddingBottom: 4
|
|
144
|
+
}
|
|
145
|
+
}, {
|
|
146
|
+
props: ({
|
|
147
|
+
startAdornment
|
|
148
|
+
}) => !!startAdornment,
|
|
149
|
+
style: {
|
|
150
|
+
paddingLeft: 0
|
|
151
|
+
}
|
|
152
|
+
}, {
|
|
153
|
+
props: ({
|
|
154
|
+
endAdornment
|
|
155
|
+
}) => !!endAdornment,
|
|
156
|
+
style: {
|
|
157
|
+
paddingRight: 0
|
|
158
|
+
}
|
|
159
|
+
}, {
|
|
160
|
+
props: {
|
|
161
|
+
hiddenLabel: true
|
|
162
|
+
},
|
|
163
|
+
style: {
|
|
164
|
+
paddingTop: 16,
|
|
165
|
+
paddingBottom: 17
|
|
166
|
+
}
|
|
167
|
+
}, {
|
|
168
|
+
props: {
|
|
169
|
+
hiddenLabel: true,
|
|
170
|
+
size: 'small'
|
|
171
|
+
},
|
|
172
|
+
style: {
|
|
173
|
+
paddingTop: 8,
|
|
174
|
+
paddingBottom: 9
|
|
175
|
+
}
|
|
176
|
+
}]
|
|
177
|
+
});
|
|
125
178
|
const useUtilityClasses = ownerState => {
|
|
126
179
|
const {
|
|
127
180
|
classes,
|
|
@@ -144,18 +197,24 @@ const PickersFilledInput = /*#__PURE__*/React.forwardRef(function PickersFilledI
|
|
|
144
197
|
});
|
|
145
198
|
const {
|
|
146
199
|
label,
|
|
200
|
+
disableUnderline = false,
|
|
147
201
|
ownerState: ownerStateProp
|
|
148
202
|
} = props,
|
|
149
203
|
other = _objectWithoutPropertiesLoose(props, _excluded);
|
|
150
204
|
const muiFormControl = useFormControl();
|
|
151
205
|
const ownerState = _extends({}, props, ownerStateProp, muiFormControl, {
|
|
152
|
-
color:
|
|
206
|
+
color: muiFormControl?.color || 'primary'
|
|
153
207
|
});
|
|
154
208
|
const classes = useUtilityClasses(ownerState);
|
|
155
209
|
return /*#__PURE__*/_jsx(PickersInputBase, _extends({
|
|
156
210
|
slots: {
|
|
157
211
|
root: PickersFilledInputRoot,
|
|
158
212
|
input: PickersFilledSectionsContainer
|
|
213
|
+
},
|
|
214
|
+
slotProps: {
|
|
215
|
+
root: {
|
|
216
|
+
disableUnderline
|
|
217
|
+
}
|
|
159
218
|
}
|
|
160
219
|
}, other, {
|
|
161
220
|
label: label,
|
|
@@ -221,6 +280,11 @@ process.env.NODE_ENV !== "production" ? PickersFilledInput.propTypes = {
|
|
|
221
280
|
getSectionIndexFromDOMElement: PropTypes.func.isRequired
|
|
222
281
|
})
|
|
223
282
|
})]),
|
|
283
|
+
/**
|
|
284
|
+
* The props used for each component slot.
|
|
285
|
+
* @default {}
|
|
286
|
+
*/
|
|
287
|
+
slotProps: PropTypes.object,
|
|
224
288
|
/**
|
|
225
289
|
* The components used for each slot inside.
|
|
226
290
|
*
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
2
2
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
3
|
-
const _excluded = ["label", "autoFocus", "ownerState"];
|
|
3
|
+
const _excluded = ["label", "autoFocus", "disableUnderline", "ownerState"];
|
|
4
4
|
import * as React from 'react';
|
|
5
5
|
import PropTypes from 'prop-types';
|
|
6
6
|
import { useFormControl } from '@mui/material/FormControl';
|
|
@@ -16,70 +16,85 @@ const PickersInputRoot = styled(PickersInputBaseRoot, {
|
|
|
16
16
|
slot: 'Root',
|
|
17
17
|
overridesResolver: (props, styles) => styles.root
|
|
18
18
|
})(({
|
|
19
|
-
theme
|
|
20
|
-
ownerState
|
|
19
|
+
theme
|
|
21
20
|
}) => {
|
|
22
21
|
const light = theme.palette.mode === 'light';
|
|
23
22
|
let bottomLineColor = light ? 'rgba(0, 0, 0, 0.42)' : 'rgba(255, 255, 255, 0.7)';
|
|
24
23
|
if (theme.vars) {
|
|
25
24
|
bottomLineColor = `rgba(${theme.vars.palette.common.onBackgroundChannel} / ${theme.vars.opacity.inputUnderline})`;
|
|
26
25
|
}
|
|
27
|
-
return
|
|
26
|
+
return {
|
|
28
27
|
'label + &': {
|
|
29
28
|
marginTop: 16
|
|
30
|
-
}
|
|
31
|
-
}, !ownerState.disableUnderline && {
|
|
32
|
-
'&::after': {
|
|
33
|
-
background: 'red',
|
|
34
|
-
// @ts-ignore
|
|
35
|
-
borderBottom: `2px solid ${(theme.vars || theme).palette[ownerState.color].main}`,
|
|
36
|
-
left: 0,
|
|
37
|
-
bottom: 0,
|
|
38
|
-
// Doing the other way around crash on IE11 "''" https://github.com/cssinjs/jss/issues/242
|
|
39
|
-
content: '""',
|
|
40
|
-
position: 'absolute',
|
|
41
|
-
right: 0,
|
|
42
|
-
transform: 'scaleX(0)',
|
|
43
|
-
transition: theme.transitions.create('transform', {
|
|
44
|
-
duration: theme.transitions.duration.shorter,
|
|
45
|
-
easing: theme.transitions.easing.easeOut
|
|
46
|
-
}),
|
|
47
|
-
pointerEvents: 'none' // Transparent to the hover style.
|
|
48
|
-
},
|
|
49
|
-
[`&.${pickersInputClasses.focused}:after`]: {
|
|
50
|
-
// translateX(0) is a workaround for Safari transform scale bug
|
|
51
|
-
// See https://github.com/mui/material-ui/issues/31766
|
|
52
|
-
transform: 'scaleX(1) translateX(0)'
|
|
53
29
|
},
|
|
54
|
-
[
|
|
55
|
-
|
|
56
|
-
|
|
30
|
+
variants: [...Object.keys((theme.vars ?? theme).palette)
|
|
31
|
+
// @ts-ignore
|
|
32
|
+
.filter(key => (theme.vars ?? theme).palette[key].main).map(color => ({
|
|
33
|
+
props: {
|
|
34
|
+
color
|
|
35
|
+
},
|
|
36
|
+
style: {
|
|
37
|
+
'&::after': {
|
|
38
|
+
// @ts-ignore
|
|
39
|
+
borderBottom: `2px solid ${(theme.vars || theme).palette[color].main}`
|
|
40
|
+
}
|
|
57
41
|
}
|
|
58
|
-
},
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
42
|
+
})), {
|
|
43
|
+
props: {
|
|
44
|
+
disableUnderline: false
|
|
45
|
+
},
|
|
46
|
+
style: {
|
|
47
|
+
'&::after': {
|
|
48
|
+
background: 'red',
|
|
49
|
+
left: 0,
|
|
50
|
+
bottom: 0,
|
|
51
|
+
// Doing the other way around crash on IE11 "''" https://github.com/cssinjs/jss/issues/242
|
|
52
|
+
content: '""',
|
|
53
|
+
position: 'absolute',
|
|
54
|
+
right: 0,
|
|
55
|
+
transform: 'scaleX(0)',
|
|
56
|
+
transition: theme.transitions.create('transform', {
|
|
57
|
+
duration: theme.transitions.duration.shorter,
|
|
58
|
+
easing: theme.transitions.easing.easeOut
|
|
59
|
+
}),
|
|
60
|
+
pointerEvents: 'none' // Transparent to the hover style.
|
|
61
|
+
},
|
|
62
|
+
[`&.${pickersInputClasses.focused}:after`]: {
|
|
63
|
+
// translateX(0) is a workaround for Safari transform scale bug
|
|
64
|
+
// See https://github.com/mui/material-ui/issues/31766
|
|
65
|
+
transform: 'scaleX(1) translateX(0)'
|
|
66
|
+
},
|
|
67
|
+
[`&.${pickersInputClasses.error}`]: {
|
|
68
|
+
'&:before, &:after': {
|
|
69
|
+
borderBottomColor: (theme.vars || theme).palette.error.main
|
|
70
|
+
}
|
|
71
|
+
},
|
|
72
|
+
'&::before': {
|
|
73
|
+
borderBottom: `1px solid ${bottomLineColor}`,
|
|
74
|
+
left: 0,
|
|
75
|
+
bottom: 0,
|
|
76
|
+
// Doing the other way around crash on IE11 "''" https://github.com/cssinjs/jss/issues/242
|
|
77
|
+
content: '"\\00a0"',
|
|
78
|
+
position: 'absolute',
|
|
79
|
+
right: 0,
|
|
80
|
+
transition: theme.transitions.create('border-bottom-color', {
|
|
81
|
+
duration: theme.transitions.duration.shorter
|
|
82
|
+
}),
|
|
83
|
+
pointerEvents: 'none' // Transparent to the hover style.
|
|
84
|
+
},
|
|
85
|
+
[`&:hover:not(.${pickersInputClasses.disabled}, .${pickersInputClasses.error}):before`]: {
|
|
86
|
+
borderBottom: `2px solid ${(theme.vars || theme).palette.text.primary}`,
|
|
87
|
+
// Reset on touch devices, it doesn't add specificity
|
|
88
|
+
'@media (hover: none)': {
|
|
89
|
+
borderBottom: `1px solid ${bottomLineColor}`
|
|
90
|
+
}
|
|
91
|
+
},
|
|
92
|
+
[`&.${pickersInputClasses.disabled}:before`]: {
|
|
93
|
+
borderBottomStyle: 'dotted'
|
|
94
|
+
}
|
|
77
95
|
}
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
borderBottomStyle: 'dotted'
|
|
81
|
-
}
|
|
82
|
-
});
|
|
96
|
+
}]
|
|
97
|
+
};
|
|
83
98
|
});
|
|
84
99
|
const useUtilityClasses = ownerState => {
|
|
85
100
|
const {
|
|
@@ -103,12 +118,14 @@ const PickersInput = /*#__PURE__*/React.forwardRef(function PickersInput(inProps
|
|
|
103
118
|
});
|
|
104
119
|
const {
|
|
105
120
|
label,
|
|
121
|
+
disableUnderline = false,
|
|
106
122
|
ownerState: ownerStateProp
|
|
107
123
|
} = props,
|
|
108
124
|
other = _objectWithoutPropertiesLoose(props, _excluded);
|
|
109
125
|
const muiFormControl = useFormControl();
|
|
110
126
|
const ownerState = _extends({}, props, ownerStateProp, muiFormControl, {
|
|
111
|
-
|
|
127
|
+
disableUnderline,
|
|
128
|
+
color: muiFormControl?.color || 'primary'
|
|
112
129
|
});
|
|
113
130
|
const classes = useUtilityClasses(ownerState);
|
|
114
131
|
return /*#__PURE__*/_jsx(PickersInputBase, _extends({
|
|
@@ -178,6 +195,11 @@ process.env.NODE_ENV !== "production" ? PickersInput.propTypes = {
|
|
|
178
195
|
getSectionIndexFromDOMElement: PropTypes.func.isRequired
|
|
179
196
|
})
|
|
180
197
|
})]),
|
|
198
|
+
/**
|
|
199
|
+
* The props used for each component slot.
|
|
200
|
+
* @default {}
|
|
201
|
+
*/
|
|
202
|
+
slotProps: PropTypes.object,
|
|
181
203
|
/**
|
|
182
204
|
* The components used for each slot inside.
|
|
183
205
|
*
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
2
2
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
3
|
-
const _excluded = ["elements", "areAllSectionsEmpty", "defaultValue", "label", "value", "onChange", "id", "autoFocus", "endAdornment", "startAdornment", "renderSuffix", "slots", "contentEditable", "tabIndex", "onInput", "onPaste", "onKeyDown", "fullWidth", "name", "readOnly", "inputProps", "inputRef", "sectionListRef"];
|
|
3
|
+
const _excluded = ["elements", "areAllSectionsEmpty", "defaultValue", "label", "value", "onChange", "id", "autoFocus", "endAdornment", "startAdornment", "renderSuffix", "slots", "slotProps", "contentEditable", "tabIndex", "onInput", "onPaste", "onKeyDown", "fullWidth", "name", "readOnly", "inputProps", "inputRef", "sectionListRef"];
|
|
4
4
|
import * as React from 'react';
|
|
5
5
|
import PropTypes from 'prop-types';
|
|
6
6
|
import { useFormControl } from '@mui/material/FormControl';
|
|
@@ -9,6 +9,7 @@ import useForkRef from '@mui/utils/useForkRef';
|
|
|
9
9
|
import { refType } from '@mui/utils';
|
|
10
10
|
import composeClasses from '@mui/utils/composeClasses';
|
|
11
11
|
import capitalize from '@mui/utils/capitalize';
|
|
12
|
+
import { useSlotProps } from '@mui/base/utils';
|
|
12
13
|
import visuallyHidden from '@mui/utils/visuallyHidden';
|
|
13
14
|
import { pickersInputBaseClasses, getPickersInputBaseUtilityClass } from './pickersInputBaseClasses';
|
|
14
15
|
import { Unstable_PickersSectionList as PickersSectionList, Unstable_PickersSectionListRoot as PickersSectionListRoot, Unstable_PickersSectionListSection as PickersSectionListSection, Unstable_PickersSectionListSectionSeparator as PickersSectionListSectionSeparator, Unstable_PickersSectionListSectionContent as PickersSectionListSectionContent } from '../../PickersSectionList';
|
|
@@ -20,8 +21,7 @@ export const PickersInputBaseRoot = styled('div', {
|
|
|
20
21
|
slot: 'Root',
|
|
21
22
|
overridesResolver: (props, styles) => styles.root
|
|
22
23
|
})(({
|
|
23
|
-
theme
|
|
24
|
-
ownerState
|
|
24
|
+
theme
|
|
25
25
|
}) => _extends({}, theme.typography.body1, {
|
|
26
26
|
color: (theme.vars || theme).palette.text.primary,
|
|
27
27
|
cursor: 'text',
|
|
@@ -32,17 +32,22 @@ export const PickersInputBaseRoot = styled('div', {
|
|
|
32
32
|
position: 'relative',
|
|
33
33
|
boxSizing: 'border-box',
|
|
34
34
|
// Prevent padding issue with fullWidth.
|
|
35
|
-
letterSpacing: `${round(0.15 / 16)}em
|
|
36
|
-
|
|
37
|
-
|
|
35
|
+
letterSpacing: `${round(0.15 / 16)}em`,
|
|
36
|
+
variants: [{
|
|
37
|
+
props: {
|
|
38
|
+
fullWidth: true
|
|
39
|
+
},
|
|
40
|
+
style: {
|
|
41
|
+
width: '100%'
|
|
42
|
+
}
|
|
43
|
+
}]
|
|
38
44
|
}));
|
|
39
45
|
export const PickersInputBaseSectionsContainer = styled(PickersSectionListRoot, {
|
|
40
46
|
name: 'MuiPickersInputBase',
|
|
41
47
|
slot: 'SectionsContainer',
|
|
42
48
|
overridesResolver: (props, styles) => styles.sectionsContainer
|
|
43
49
|
})(({
|
|
44
|
-
theme
|
|
45
|
-
ownerState
|
|
50
|
+
theme
|
|
46
51
|
}) => _extends({
|
|
47
52
|
padding: '4px 0 5px',
|
|
48
53
|
fontFamily: theme.typography.fontFamily,
|
|
@@ -57,19 +62,41 @@ export const PickersInputBaseSectionsContainer = styled(PickersSectionListRoot,
|
|
|
57
62
|
letterSpacing: 'inherit',
|
|
58
63
|
// Baseline behavior
|
|
59
64
|
width: '182px'
|
|
60
|
-
}, ownerState.size === 'small' && {
|
|
61
|
-
paddingTop: 1
|
|
62
65
|
}, theme.direction === 'rtl' && {
|
|
63
66
|
textAlign: 'right /*! @noflip */'
|
|
64
|
-
},
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
}
|
|
67
|
+
}, {
|
|
68
|
+
variants: [{
|
|
69
|
+
props: {
|
|
70
|
+
size: 'small'
|
|
71
|
+
},
|
|
72
|
+
style: {
|
|
73
|
+
paddingTop: 1
|
|
74
|
+
}
|
|
75
|
+
}, {
|
|
76
|
+
props: {
|
|
77
|
+
adornedStart: false,
|
|
78
|
+
focused: false,
|
|
79
|
+
filled: false
|
|
80
|
+
},
|
|
81
|
+
style: {
|
|
82
|
+
color: 'currentColor',
|
|
83
|
+
opacity: 0
|
|
84
|
+
}
|
|
85
|
+
}, {
|
|
86
|
+
// Can't use the object notation because label can be null or undefined
|
|
87
|
+
props: ({
|
|
88
|
+
adornedStart,
|
|
89
|
+
focused,
|
|
90
|
+
filled,
|
|
91
|
+
label
|
|
92
|
+
}) => !adornedStart && !focused && !filled && label == null,
|
|
93
|
+
style: theme.vars ? {
|
|
94
|
+
opacity: theme.vars.opacity.inputPlaceholder
|
|
95
|
+
} : {
|
|
96
|
+
opacity: theme.palette.mode === 'light' ? 0.42 : 0.5
|
|
97
|
+
}
|
|
98
|
+
}]
|
|
99
|
+
}));
|
|
73
100
|
const PickersInputBaseSection = styled(PickersSectionListSection, {
|
|
74
101
|
name: 'MuiPickersInputBase',
|
|
75
102
|
slot: 'Section',
|
|
@@ -153,6 +180,7 @@ const PickersInputBase = /*#__PURE__*/React.forwardRef(function PickersInputBase
|
|
|
153
180
|
startAdornment,
|
|
154
181
|
renderSuffix,
|
|
155
182
|
slots,
|
|
183
|
+
slotProps,
|
|
156
184
|
contentEditable,
|
|
157
185
|
tabIndex,
|
|
158
186
|
onInput,
|
|
@@ -167,20 +195,19 @@ const PickersInputBase = /*#__PURE__*/React.forwardRef(function PickersInputBase
|
|
|
167
195
|
other = _objectWithoutPropertiesLoose(props, _excluded);
|
|
168
196
|
const rootRef = React.useRef(null);
|
|
169
197
|
const handleRootRef = useForkRef(ref, rootRef);
|
|
170
|
-
const handleInputRef = useForkRef(inputProps
|
|
198
|
+
const handleInputRef = useForkRef(inputProps?.ref, inputRef);
|
|
171
199
|
const muiFormControl = useFormControl();
|
|
172
200
|
if (!muiFormControl) {
|
|
173
201
|
throw new Error('MUI X: PickersInputBase should always be used inside a PickersTextField component');
|
|
174
202
|
}
|
|
175
203
|
const handleInputFocus = event => {
|
|
176
|
-
var _muiFormControl$onFoc;
|
|
177
204
|
// Fix a bug with IE11 where the focus/blur events are triggered
|
|
178
205
|
// while the component is disabled.
|
|
179
206
|
if (muiFormControl.disabled) {
|
|
180
207
|
event.stopPropagation();
|
|
181
208
|
return;
|
|
182
209
|
}
|
|
183
|
-
|
|
210
|
+
muiFormControl.onFocus?.(event);
|
|
184
211
|
};
|
|
185
212
|
React.useEffect(() => {
|
|
186
213
|
if (muiFormControl) {
|
|
@@ -199,13 +226,20 @@ const PickersInputBase = /*#__PURE__*/React.forwardRef(function PickersInputBase
|
|
|
199
226
|
}, [muiFormControl, areAllSectionsEmpty]);
|
|
200
227
|
const ownerState = _extends({}, props, muiFormControl);
|
|
201
228
|
const classes = useUtilityClasses(ownerState);
|
|
202
|
-
const InputRoot =
|
|
203
|
-
const
|
|
204
|
-
|
|
229
|
+
const InputRoot = slots?.root || PickersInputBaseRoot;
|
|
230
|
+
const inputRootProps = useSlotProps({
|
|
231
|
+
elementType: InputRoot,
|
|
232
|
+
externalSlotProps: slotProps?.root,
|
|
233
|
+
externalForwardedProps: other,
|
|
234
|
+
additionalProps: {
|
|
235
|
+
'aria-invalid': muiFormControl.error,
|
|
236
|
+
ref: handleRootRef
|
|
237
|
+
},
|
|
205
238
|
className: classes.root,
|
|
206
|
-
ownerState
|
|
207
|
-
|
|
208
|
-
|
|
239
|
+
ownerState
|
|
240
|
+
});
|
|
241
|
+
const InputSectionsContainer = slots?.input || PickersInputBaseSectionsContainer;
|
|
242
|
+
return /*#__PURE__*/_jsxs(InputRoot, _extends({}, inputRootProps, {
|
|
209
243
|
children: [startAdornment, /*#__PURE__*/_jsx(PickersSectionList, {
|
|
210
244
|
sectionListRef: sectionListRef,
|
|
211
245
|
elements: elements,
|
|
@@ -308,6 +342,11 @@ process.env.NODE_ENV !== "production" ? PickersInputBase.propTypes = {
|
|
|
308
342
|
getSectionIndexFromDOMElement: PropTypes.func.isRequired
|
|
309
343
|
})
|
|
310
344
|
})]),
|
|
345
|
+
/**
|
|
346
|
+
* The props used for each component slot.
|
|
347
|
+
* @default {}
|
|
348
|
+
*/
|
|
349
|
+
slotProps: PropTypes.object,
|
|
311
350
|
/**
|
|
312
351
|
* The components used for each slot inside.
|
|
313
352
|
*
|
|
@@ -48,4 +48,11 @@ export interface PickersInputBaseProps extends Omit<BoxProps, keyof PickersInput
|
|
|
48
48
|
root?: React.ElementType;
|
|
49
49
|
input?: React.ElementType;
|
|
50
50
|
};
|
|
51
|
+
/**
|
|
52
|
+
* The props used for each component slot.
|
|
53
|
+
* @default {}
|
|
54
|
+
*/
|
|
55
|
+
slotProps?: {
|
|
56
|
+
root?: any;
|
|
57
|
+
};
|
|
51
58
|
}
|