@mui/x-date-pickers 7.0.0 → 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.
Files changed (85) hide show
  1. package/CHANGELOG.md +71 -0
  2. package/DatePicker/DatePickerToolbar.js +11 -6
  3. package/DateTimePicker/DateTimePickerToolbar.js +97 -45
  4. package/DayCalendarSkeleton/DayCalendarSkeleton.js +12 -8
  5. package/DigitalClock/DigitalClock.js +14 -6
  6. package/MonthCalendar/PickersMonth.js +12 -6
  7. package/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +13 -4
  8. package/PickersCalendarHeader/PickersCalendarHeader.js +13 -9
  9. package/PickersDay/PickersDay.js +30 -15
  10. package/PickersLayout/PickersLayout.js +31 -17
  11. package/PickersTextField/PickersFilledInput/PickersFilledInput.js +137 -72
  12. package/PickersTextField/PickersInput/PickersInput.js +76 -54
  13. package/PickersTextField/PickersInputBase/PickersInputBase.js +64 -24
  14. package/PickersTextField/PickersInputBase/PickersInputBase.types.d.ts +7 -0
  15. package/PickersTextField/PickersOutlinedInput/Outline.js +58 -41
  16. package/PickersTextField/PickersOutlinedInput/PickersOutlinedInput.js +31 -12
  17. package/TimeClock/Clock.js +48 -35
  18. package/TimeClock/ClockNumber.js +12 -7
  19. package/TimeClock/ClockPointer.js +23 -13
  20. package/TimePicker/TimePickerToolbar.js +25 -16
  21. package/YearCalendar/PickersYear.js +12 -6
  22. package/index.js +1 -1
  23. package/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js +11 -6
  24. package/internals/components/PickersPopper.js +12 -8
  25. package/internals/components/PickersToolbar.js +39 -18
  26. package/internals/hooks/useField/useField.js +4 -2
  27. package/internals/hooks/useField/useField.types.d.ts +1 -0
  28. package/internals/hooks/useField/useFieldV6TextField.js +8 -3
  29. package/locales/itIT.js +16 -20
  30. package/locales/zhHK.js +14 -17
  31. package/modern/DatePicker/DatePickerToolbar.js +11 -6
  32. package/modern/DateTimePicker/DateTimePickerToolbar.js +97 -45
  33. package/modern/DayCalendarSkeleton/DayCalendarSkeleton.js +12 -8
  34. package/modern/DigitalClock/DigitalClock.js +14 -6
  35. package/modern/MonthCalendar/PickersMonth.js +12 -6
  36. package/modern/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +13 -4
  37. package/modern/PickersCalendarHeader/PickersCalendarHeader.js +13 -9
  38. package/modern/PickersDay/PickersDay.js +30 -15
  39. package/modern/PickersLayout/PickersLayout.js +31 -17
  40. package/modern/PickersTextField/PickersFilledInput/PickersFilledInput.js +137 -72
  41. package/modern/PickersTextField/PickersInput/PickersInput.js +76 -54
  42. package/modern/PickersTextField/PickersInputBase/PickersInputBase.js +64 -24
  43. package/modern/PickersTextField/PickersOutlinedInput/Outline.js +58 -41
  44. package/modern/PickersTextField/PickersOutlinedInput/PickersOutlinedInput.js +31 -12
  45. package/modern/TimeClock/Clock.js +48 -35
  46. package/modern/TimeClock/ClockNumber.js +12 -7
  47. package/modern/TimeClock/ClockPointer.js +23 -13
  48. package/modern/TimePicker/TimePickerToolbar.js +25 -16
  49. package/modern/YearCalendar/PickersYear.js +12 -6
  50. package/modern/index.js +1 -1
  51. package/modern/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js +11 -6
  52. package/modern/internals/components/PickersPopper.js +12 -8
  53. package/modern/internals/components/PickersToolbar.js +39 -18
  54. package/modern/internals/hooks/useField/useField.js +4 -2
  55. package/modern/internals/hooks/useField/useFieldV6TextField.js +8 -3
  56. package/modern/locales/itIT.js +16 -20
  57. package/modern/locales/zhHK.js +14 -17
  58. package/node/DatePicker/DatePickerToolbar.js +11 -6
  59. package/node/DateTimePicker/DateTimePickerToolbar.js +97 -45
  60. package/node/DayCalendarSkeleton/DayCalendarSkeleton.js +12 -8
  61. package/node/DigitalClock/DigitalClock.js +14 -6
  62. package/node/MonthCalendar/PickersMonth.js +12 -6
  63. package/node/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +13 -4
  64. package/node/PickersCalendarHeader/PickersCalendarHeader.js +13 -9
  65. package/node/PickersDay/PickersDay.js +30 -15
  66. package/node/PickersLayout/PickersLayout.js +31 -17
  67. package/node/PickersTextField/PickersFilledInput/PickersFilledInput.js +137 -72
  68. package/node/PickersTextField/PickersInput/PickersInput.js +76 -54
  69. package/node/PickersTextField/PickersInputBase/PickersInputBase.js +64 -24
  70. package/node/PickersTextField/PickersOutlinedInput/Outline.js +58 -41
  71. package/node/PickersTextField/PickersOutlinedInput/PickersOutlinedInput.js +31 -12
  72. package/node/TimeClock/Clock.js +48 -35
  73. package/node/TimeClock/ClockNumber.js +12 -7
  74. package/node/TimeClock/ClockPointer.js +23 -13
  75. package/node/TimePicker/TimePickerToolbar.js +25 -16
  76. package/node/YearCalendar/PickersYear.js +12 -6
  77. package/node/index.js +1 -1
  78. package/node/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js +11 -6
  79. package/node/internals/components/PickersPopper.js +12 -8
  80. package/node/internals/components/PickersToolbar.js +39 -18
  81. package/node/internals/hooks/useField/useField.js +4 -2
  82. package/node/internals/hooks/useField/useFieldV6TextField.js +8 -3
  83. package/node/locales/itIT.js +16 -20
  84. package/node/locales/zhHK.js +14 -17
  85. package/package.json +1 -1
@@ -202,9 +202,11 @@ export const useField = params => {
202
202
  event.preventDefault();
203
203
  onClear?.(event, ...args);
204
204
  clearValue();
205
- setSelectedSections(sectionOrder.startIndex);
206
- if (!interactions.isFieldFocused) {
205
+ if (!interactions.isFieldFocused()) {
206
+ // setSelectedSections is called internally
207
207
  interactions.focusField(0);
208
+ } else {
209
+ setSelectedSections(sectionOrder.startIndex);
208
210
  }
209
211
  });
210
212
  const commonForwardedProps = {
@@ -43,7 +43,8 @@ export const useFieldV6TextField = params => {
43
43
  onClick,
44
44
  onPaste,
45
45
  onBlur,
46
- inputRef: inputRefProp
46
+ inputRef: inputRefProp,
47
+ placeholder: inPlaceholder
47
48
  },
48
49
  internalProps: {
49
50
  readOnly = false
@@ -127,7 +128,6 @@ export const useFieldV6TextField = params => {
127
128
  }), [inputRef, parsedSelectedSections, sections, setSelectedSections]);
128
129
  const syncSelectionFromDOM = () => {
129
130
  if (readOnly) {
130
- setSelectedSections(null);
131
131
  return;
132
132
  }
133
133
  const browserStartIndex = inputRef.current.selectionStart ?? 0;
@@ -275,7 +275,12 @@ export const useFieldV6TextField = params => {
275
275
  sectionIndex: activeSectionIndex
276
276
  });
277
277
  });
278
- const placeholder = React.useMemo(() => fieldValueManager.getV6InputValueFromSections(getSectionsFromValue(valueManager.emptyValue), localizedDigits, isRTL), [fieldValueManager, getSectionsFromValue, valueManager.emptyValue, localizedDigits, isRTL]);
278
+ const placeholder = React.useMemo(() => {
279
+ if (inPlaceholder) {
280
+ return inPlaceholder;
281
+ }
282
+ return fieldValueManager.getV6InputValueFromSections(getSectionsFromValue(valueManager.emptyValue), localizedDigits, isRTL);
283
+ }, [inPlaceholder, fieldValueManager, getSectionsFromValue, valueManager.emptyValue, localizedDigits, isRTL]);
279
284
  const valueStr = React.useMemo(() => state.tempValueStrAndroid ?? fieldValueManager.getV6InputValueFromSections(state.sections, localizedDigits, isRTL), [state.sections, fieldValueManager, state.tempValueStrAndroid, localizedDigits, isRTL]);
280
285
  React.useEffect(() => {
281
286
  // Select all the sections when focused on mount (`autoFocus = true` on the input)
@@ -16,11 +16,10 @@ const itITPickers = {
16
16
  // DateRange labels
17
17
  start: 'Inizio',
18
18
  end: 'Fine',
19
- // startDate: 'Start date',
20
- // startTime: 'Start time',
21
- // endDate: 'End date',
22
- // endTime: 'End time',
23
-
19
+ startDate: 'Data di inizio',
20
+ startTime: 'Ora di inizio',
21
+ endDate: 'Data di fine',
22
+ endTime: 'Ora di fine',
24
23
  // Action bar
25
24
  cancelButtonLabel: 'Cancellare',
26
25
  clearButtonLabel: 'Sgomberare',
@@ -46,8 +45,7 @@ const itITPickers = {
46
45
  // Open picker labels
47
46
  openDatePickerDialogue: (value, utils) => value !== null && utils.isValid(value) ? `Scegli la data, la data selezionata è ${utils.format(value, 'fullDate')}` : 'Scegli la data',
48
47
  openTimePickerDialogue: (value, utils) => value !== null && utils.isValid(value) ? `Scegli l'ora, l'ora selezionata è ${utils.format(value, 'fullTime')}` : "Scegli l'ora",
49
- // fieldClearLabel: 'Clear value',
50
-
48
+ fieldClearLabel: 'Cancella valore',
51
49
  // Table labels
52
50
  timeTableLabel: "scegli un'ora",
53
51
  dateTableLabel: 'scegli una data',
@@ -55,23 +53,21 @@ const itITPickers = {
55
53
  fieldYearPlaceholder: params => 'A'.repeat(params.digitAmount),
56
54
  fieldMonthPlaceholder: params => params.contentType === 'letter' ? 'MMMM' : 'MM',
57
55
  fieldDayPlaceholder: () => 'GG',
58
- // fieldWeekDayPlaceholder: params => params.contentType === 'letter' ? 'EEEE' : 'EE',
56
+ fieldWeekDayPlaceholder: params => params.contentType === 'letter' ? 'GGGG' : 'GG',
59
57
  fieldHoursPlaceholder: () => 'hh',
60
58
  fieldMinutesPlaceholder: () => 'mm',
61
59
  fieldSecondsPlaceholder: () => 'ss',
62
- fieldMeridiemPlaceholder: () => 'aa'
63
-
60
+ fieldMeridiemPlaceholder: () => 'aa',
64
61
  // View names
65
- // year: 'Year',
66
- // month: 'Month',
67
- // day: 'Day',
68
- // weekDay: 'Week day',
69
- // hours: 'Hours',
70
- // minutes: 'Minutes',
71
- // seconds: 'Seconds',
72
- // meridiem: 'Meridiem',
73
-
62
+ year: 'Anno',
63
+ month: 'Mese',
64
+ day: 'Giorno',
65
+ weekDay: 'Giorno della settimana',
66
+ hours: 'Ore',
67
+ minutes: 'Minuti',
68
+ seconds: 'Secondi',
69
+ meridiem: 'Meridiano',
74
70
  // Common
75
- // empty: 'Empty',
71
+ empty: 'Vuoto'
76
72
  };
77
73
  export const itIT = getPickersLocalization(itITPickers);
@@ -16,11 +16,10 @@ const zhHKPickers = {
16
16
  // DateRange labels
17
17
  start: '開始',
18
18
  end: '結束',
19
- // startDate: 'Start date',
20
- // startTime: 'Start time',
21
- // endDate: 'End date',
22
- // endTime: 'End time',
23
-
19
+ startDate: '開始日期',
20
+ startTime: '開始時間',
21
+ endDate: '結束日期',
22
+ endTime: '結束時間',
24
23
  // Action bar
25
24
  cancelButtonLabel: '取消',
26
25
  clearButtonLabel: '清除',
@@ -59,19 +58,17 @@ const zhHKPickers = {
59
58
  fieldHoursPlaceholder: () => 'hh',
60
59
  fieldMinutesPlaceholder: () => 'mm',
61
60
  fieldSecondsPlaceholder: () => 'ss',
62
- fieldMeridiemPlaceholder: () => 'aa'
63
-
61
+ fieldMeridiemPlaceholder: () => 'aa',
64
62
  // View names
65
- // year: 'Year',
66
- // month: 'Month',
67
- // day: 'Day',
68
- // weekDay: 'Week day',
69
- // hours: 'Hours',
70
- // minutes: 'Minutes',
71
- // seconds: 'Seconds',
72
- // meridiem: 'Meridiem',
73
-
63
+ year: '',
64
+ month: '',
65
+ day: '',
66
+ weekDay: '星期',
67
+ hours: '小時',
68
+ minutes: '分鐘',
69
+ seconds: '',
70
+ meridiem: '子午線',
74
71
  // Common
75
- // empty: 'Empty',
72
+ empty: '空值'
76
73
  };
77
74
  export const zhHK = getPickersLocalization(zhHKPickers);
@@ -5,8 +5,8 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.DatePickerToolbar = void 0;
8
- var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
9
8
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+ var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
10
10
  var React = _interopRequireWildcard(require("react"));
11
11
  var _clsx = _interopRequireDefault(require("clsx"));
12
12
  var _propTypes = _interopRequireDefault(require("prop-types"));
@@ -40,11 +40,16 @@ const DatePickerToolbarTitle = (0, _styles.styled)(_Typography.default, {
40
40
  name: 'MuiDatePickerToolbar',
41
41
  slot: 'Title',
42
42
  overridesResolver: (_, styles) => styles.title
43
- })(({
44
- ownerState
45
- }) => (0, _extends2.default)({}, ownerState.isLandscape && {
46
- margin: 'auto 16px auto auto'
47
- }));
43
+ })({
44
+ variants: [{
45
+ props: {
46
+ isLandscape: true
47
+ },
48
+ style: {
49
+ margin: 'auto 16px auto auto'
50
+ }
51
+ }]
52
+ });
48
53
  /**
49
54
  * Demos:
50
55
  *
@@ -48,20 +48,41 @@ const DateTimePickerToolbarRoot = (0, _styles.styled)(_PickersToolbar.PickersToo
48
48
  slot: 'Root',
49
49
  overridesResolver: (props, styles) => styles.root
50
50
  })(({
51
- theme,
52
- ownerState
53
- }) => (0, _extends2.default)({
54
- paddingLeft: ownerState.toolbarVariant === 'desktop' && !ownerState.isLandscape ? 24 : 16,
55
- paddingRight: ownerState.toolbarVariant === 'desktop' && !ownerState.isLandscape ? 0 : 16,
56
- borderBottom: ownerState.toolbarVariant === 'desktop' ? `1px solid ${(theme.vars || theme).palette.divider}` : undefined,
57
- borderRight: ownerState.toolbarVariant === 'desktop' && ownerState.isLandscape ? `1px solid ${(theme.vars || theme).palette.divider}` : undefined,
51
+ theme
52
+ }) => ({
53
+ paddingLeft: 16,
54
+ paddingRight: 16,
58
55
  justifyContent: 'space-around',
59
- position: 'relative'
60
- }, ownerState.toolbarVariant === 'desktop' && {
61
- [`& .${_internals.pickersToolbarClasses.content} .${_pickersToolbarTextClasses.pickersToolbarTextClasses.selected}`]: {
62
- color: (theme.vars || theme).palette.primary.main,
63
- fontWeight: theme.typography.fontWeightBold
64
- }
56
+ position: 'relative',
57
+ variants: [{
58
+ props: {
59
+ toolbarVariant: 'desktop'
60
+ },
61
+ style: {
62
+ borderBottom: `1px solid ${(theme.vars || theme).palette.divider}`,
63
+ [`& .${_internals.pickersToolbarClasses.content} .${_pickersToolbarTextClasses.pickersToolbarTextClasses.selected}`]: {
64
+ color: (theme.vars || theme).palette.primary.main,
65
+ fontWeight: theme.typography.fontWeightBold
66
+ }
67
+ }
68
+ }, {
69
+ props: {
70
+ toolbarVariant: 'desktop',
71
+ isLandscape: true
72
+ },
73
+ style: {
74
+ borderRight: `1px solid ${(theme.vars || theme).palette.divider}`
75
+ }
76
+ }, {
77
+ props: {
78
+ toolbarVariant: 'desktop',
79
+ isLandscape: false
80
+ },
81
+ style: {
82
+ paddingLeft: 24,
83
+ paddingRight: 0
84
+ }
85
+ }]
65
86
  }));
66
87
  DateTimePickerToolbarRoot.propTypes = {
67
88
  // ----------------------------- Warning --------------------------------
@@ -94,19 +115,35 @@ const DateTimePickerToolbarTimeContainer = (0, _styles.styled)('div', {
94
115
  slot: 'TimeContainer',
95
116
  overridesResolver: (props, styles) => styles.timeContainer
96
117
  })(({
97
- theme,
98
- ownerState
118
+ theme
99
119
  }) => {
100
- const direction = ownerState.isLandscape && ownerState.toolbarVariant !== 'desktop' ? 'column' : 'row';
101
120
  return (0, _extends2.default)({
102
121
  display: 'flex',
103
- flexDirection: direction
104
- }, ownerState.toolbarVariant === 'desktop' && (0, _extends2.default)({}, !ownerState.isLandscape && {
105
- gap: 9,
106
- marginRight: 4,
107
- alignSelf: 'flex-end'
108
- }), theme.direction === 'rtl' && {
109
- flexDirection: `${direction}-reverse`
122
+ flexDirection: 'row'
123
+ }, theme.direction === 'rtl' && {
124
+ flexDirection: 'row-reverse'
125
+ }, {
126
+ variants: [{
127
+ props: ({
128
+ isLandscape,
129
+ toolbarVariant
130
+ }) => isLandscape && toolbarVariant !== 'desktop',
131
+ style: (0, _extends2.default)({
132
+ flexDirection: 'column'
133
+ }, theme.direction === 'rtl' && {
134
+ flexDirection: 'column-reverse'
135
+ })
136
+ }, {
137
+ props: {
138
+ toolbarVariant: 'desktop',
139
+ isLandscape: false
140
+ },
141
+ style: {
142
+ gap: 9,
143
+ marginRight: 4,
144
+ alignSelf: 'flex-end'
145
+ }
146
+ }]
110
147
  });
111
148
  });
112
149
  const DateTimePickerToolbarTimeDigitsContainer = (0, _styles.styled)('div', {
@@ -114,14 +151,20 @@ const DateTimePickerToolbarTimeDigitsContainer = (0, _styles.styled)('div', {
114
151
  slot: 'TimeDigitsContainer',
115
152
  overridesResolver: (props, styles) => styles.timeDigitsContainer
116
153
  })(({
117
- theme,
118
- ownerState
154
+ theme
119
155
  }) => (0, _extends2.default)({
120
156
  display: 'flex'
121
- }, ownerState.toolbarVariant === 'desktop' && {
122
- gap: 1.5
123
157
  }, theme.direction === 'rtl' && {
124
158
  flexDirection: 'row-reverse'
159
+ }, {
160
+ variants: [{
161
+ props: {
162
+ toolbarVariant: 'desktop'
163
+ },
164
+ style: {
165
+ gap: 1.5
166
+ }
167
+ }]
125
168
  }));
126
169
  DateTimePickerToolbarTimeContainer.propTypes = {
127
170
  // ----------------------------- Warning --------------------------------
@@ -136,12 +179,18 @@ const DateTimePickerToolbarSeparator = (0, _styles.styled)(_PickersToolbarText.P
136
179
  name: 'MuiDateTimePickerToolbar',
137
180
  slot: 'Separator',
138
181
  overridesResolver: (props, styles) => styles.separator
139
- })(({
140
- ownerState
141
- }) => ({
142
- margin: ownerState.toolbarVariant === 'desktop' ? 0 : '0 4px 0 2px',
143
- cursor: 'default'
144
- }));
182
+ })({
183
+ margin: '0 4px 0 2px',
184
+ cursor: 'default',
185
+ variants: [{
186
+ props: {
187
+ toolbarVariant: 'desktop'
188
+ },
189
+ style: {
190
+ margin: 0
191
+ }
192
+ }]
193
+ });
145
194
 
146
195
  // Taken from TimePickerToolbar
147
196
  const DateTimePickerToolbarAmPmSelection = (0, _styles.styled)('div', {
@@ -152,23 +201,26 @@ const DateTimePickerToolbarAmPmSelection = (0, _styles.styled)('div', {
152
201
  }, {
153
202
  [`&.${_dateTimePickerToolbarClasses.dateTimePickerToolbarClasses.ampmLandscape}`]: styles.ampmLandscape
154
203
  }, styles.ampmSelection]
155
- })(({
156
- ownerState
157
- }) => (0, _extends2.default)({
204
+ })({
158
205
  display: 'flex',
159
206
  flexDirection: 'column',
160
207
  marginRight: 'auto',
161
- marginLeft: 12
162
- }, ownerState.isLandscape && {
163
- margin: '4px 0 auto',
164
- flexDirection: 'row',
165
- justifyContent: 'space-around',
166
- width: '100%'
167
- }, {
208
+ marginLeft: 12,
168
209
  [`& .${_dateTimePickerToolbarClasses.dateTimePickerToolbarClasses.ampmLabel}`]: {
169
210
  fontSize: 17
170
- }
171
- }));
211
+ },
212
+ variants: [{
213
+ props: {
214
+ isLandscape: true
215
+ },
216
+ style: {
217
+ margin: '4px 0 auto',
218
+ flexDirection: 'row',
219
+ justifyContent: 'space-around',
220
+ width: '100%'
221
+ }
222
+ }]
223
+ });
172
224
 
173
225
  /**
174
226
  * Demos:
@@ -5,8 +5,8 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.DayCalendarSkeleton = DayCalendarSkeleton;
8
- var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
9
8
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+ var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
10
10
  var React = _interopRequireWildcard(require("react"));
11
11
  var _propTypes = _interopRequireDefault(require("prop-types"));
12
12
  var _clsx = _interopRequireDefault(require("clsx"));
@@ -50,13 +50,17 @@ const DayCalendarSkeletonDay = (0, _styles.styled)(_Skeleton.default, {
50
50
  name: 'MuiDayCalendarSkeleton',
51
51
  slot: 'DaySkeleton',
52
52
  overridesResolver: (props, styles) => styles.daySkeleton
53
- })(({
54
- ownerState
55
- }) => (0, _extends2.default)({
56
- margin: `0 ${_dimensions.DAY_MARGIN}px`
57
- }, ownerState.day === 0 && {
58
- visibility: 'hidden'
59
- }));
53
+ })({
54
+ margin: `0 ${_dimensions.DAY_MARGIN}px`,
55
+ variants: [{
56
+ props: {
57
+ day: 0
58
+ },
59
+ style: {
60
+ visibility: 'hidden'
61
+ }
62
+ }]
63
+ });
60
64
  DayCalendarSkeletonDay.propTypes = {
61
65
  // ----------------------------- Warning --------------------------------
62
66
  // | These PropTypes are generated from the TypeScript type definitions |
@@ -45,16 +45,24 @@ const DigitalClockRoot = (0, _styles.styled)(_PickerViewRoot.PickerViewRoot, {
45
45
  name: 'MuiDigitalClock',
46
46
  slot: 'Root',
47
47
  overridesResolver: (props, styles) => styles.root
48
- })(({
49
- ownerState
50
- }) => ({
48
+ })({
51
49
  overflowY: 'auto',
52
50
  width: '100%',
53
51
  '@media (prefers-reduced-motion: no-preference)': {
54
- scrollBehavior: ownerState.alreadyRendered ? 'smooth' : 'auto'
52
+ scrollBehavior: 'auto'
55
53
  },
56
- maxHeight: _dimensions.DIGITAL_CLOCK_VIEW_HEIGHT
57
- }));
54
+ maxHeight: _dimensions.DIGITAL_CLOCK_VIEW_HEIGHT,
55
+ variants: [{
56
+ props: {
57
+ alreadyRendered: true
58
+ },
59
+ style: {
60
+ '@media (prefers-reduced-motion: no-preference)': {
61
+ scrollBehavior: 'smooth'
62
+ }
63
+ }
64
+ }]
65
+ });
58
66
  const DigitalClockList = (0, _styles.styled)(_MenuList.default, {
59
67
  name: 'MuiDigitalClock',
60
68
  slot: 'List',
@@ -31,14 +31,20 @@ const PickersMonthRoot = (0, _styles.styled)('div', {
31
31
  name: 'MuiPickersMonth',
32
32
  slot: 'Root',
33
33
  overridesResolver: (_, styles) => [styles.root]
34
- })(({
35
- ownerState
36
- }) => ({
37
- flexBasis: ownerState.monthsPerRow === 3 ? '33.3%' : '25%',
34
+ })({
38
35
  display: 'flex',
39
36
  alignItems: 'center',
40
- justifyContent: 'center'
41
- }));
37
+ justifyContent: 'center',
38
+ flexBasis: '33.3%',
39
+ variants: [{
40
+ props: {
41
+ monthsPerRow: 4
42
+ },
43
+ style: {
44
+ flexBasis: '25%'
45
+ }
46
+ }]
47
+ });
42
48
  const PickersMonthButton = (0, _styles.styled)('button', {
43
49
  name: 'MuiPickersMonth',
44
50
  slot: 'MonthButton',
@@ -35,15 +35,14 @@ const MultiSectionDigitalClockSectionRoot = (0, _styles.styled)(_MenuList.defaul
35
35
  slot: 'Root',
36
36
  overridesResolver: (_, styles) => styles.root
37
37
  })(({
38
- theme,
39
- ownerState
38
+ theme
40
39
  }) => ({
41
40
  maxHeight: _dimensions.DIGITAL_CLOCK_VIEW_HEIGHT,
42
41
  width: 56,
43
42
  padding: 0,
44
43
  overflow: 'hidden',
45
44
  '@media (prefers-reduced-motion: no-preference)': {
46
- scrollBehavior: ownerState.alreadyRendered ? 'smooth' : 'auto'
45
+ scrollBehavior: 'auto'
47
46
  },
48
47
  '@media (pointer: fine)': {
49
48
  '&:hover': {
@@ -61,7 +60,17 @@ const MultiSectionDigitalClockSectionRoot = (0, _styles.styled)(_MenuList.defaul
61
60
  content: '""',
62
61
  // subtracting the height of one item, extra margin and borders to make sure the max height is correct
63
62
  height: 'calc(100% - 40px - 6px)'
64
- }
63
+ },
64
+ variants: [{
65
+ props: {
66
+ alreadyRendered: true
67
+ },
68
+ style: {
69
+ '@media (prefers-reduced-motion: no-preference)': {
70
+ scrollBehavior: 'smooth'
71
+ }
72
+ }
73
+ }]
65
74
  }));
66
75
  const MultiSectionDigitalClockSectionItem = (0, _styles.styled)(_MenuItem.default, {
67
76
  name: 'MuiMultiSectionDigitalClockSection',
@@ -80,15 +80,19 @@ const PickersCalendarHeaderSwitchViewButton = (0, _styles.styled)(_IconButton.de
80
80
  name: 'MuiPickersCalendarHeader',
81
81
  slot: 'SwitchViewButton',
82
82
  overridesResolver: (_, styles) => styles.switchViewButton
83
- })(({
84
- ownerState
85
- }) => (0, _extends2.default)({
86
- marginRight: 'auto'
87
- }, ownerState.view === 'year' && {
88
- [`.${_pickersCalendarHeaderClasses.pickersCalendarHeaderClasses.switchViewIcon}`]: {
89
- transform: 'rotate(180deg)'
90
- }
91
- }));
83
+ })({
84
+ marginRight: 'auto',
85
+ variants: [{
86
+ props: {
87
+ view: 'year'
88
+ },
89
+ style: {
90
+ [`.${_pickersCalendarHeaderClasses.pickersCalendarHeaderClasses.switchViewIcon}`]: {
91
+ transform: 'rotate(180deg)'
92
+ }
93
+ }
94
+ }]
95
+ });
92
96
  const PickersCalendarHeaderSwitchViewIcon = (0, _styles.styled)(_icons.ArrowDropDownIcon, {
93
97
  name: 'MuiPickersCalendarHeader',
94
98
  slot: 'SwitchViewIcon',
@@ -39,8 +39,7 @@ const useUtilityClasses = ownerState => {
39
39
  return (0, _utils.unstable_composeClasses)(slots, _pickersDayClasses.getPickersDayUtilityClass, classes);
40
40
  };
41
41
  const styleArg = ({
42
- theme,
43
- ownerState
42
+ theme
44
43
  }) => (0, _extends2.default)({}, theme.typography.caption, {
45
44
  width: _dimensions.DAY_SIZE,
46
45
  height: _dimensions.DAY_SIZE,
@@ -78,15 +77,33 @@ const styleArg = ({
78
77
  },
79
78
  [`&.${_pickersDayClasses.pickersDayClasses.disabled}&.${_pickersDayClasses.pickersDayClasses.selected}`]: {
80
79
  opacity: 0.6
81
- }
82
- }, !ownerState.disableMargin && {
83
- margin: `0 ${_dimensions.DAY_MARGIN}px`
84
- }, ownerState.outsideCurrentMonth && ownerState.showDaysOutsideCurrentMonth && {
85
- color: (theme.vars || theme).palette.text.secondary
86
- }, !ownerState.disableHighlightToday && ownerState.today && {
87
- [`&:not(.${_pickersDayClasses.pickersDayClasses.selected})`]: {
88
- border: `1px solid ${(theme.vars || theme).palette.text.secondary}`
89
- }
80
+ },
81
+ variants: [{
82
+ props: {
83
+ disableMargin: false
84
+ },
85
+ style: {
86
+ margin: `0 ${_dimensions.DAY_MARGIN}px`
87
+ }
88
+ }, {
89
+ props: {
90
+ outsideCurrentMonth: true,
91
+ showDaysOutsideCurrentMonth: true
92
+ },
93
+ style: {
94
+ color: (theme.vars || theme).palette.text.secondary
95
+ }
96
+ }, {
97
+ props: {
98
+ disableHighlightToday: false,
99
+ today: true
100
+ },
101
+ style: {
102
+ [`&:not(.${_pickersDayClasses.pickersDayClasses.selected})`]: {
103
+ border: `1px solid ${(theme.vars || theme).palette.text.secondary}`
104
+ }
105
+ }
106
+ }]
90
107
  });
91
108
  const overridesResolver = (props, styles) => {
92
109
  const {
@@ -104,11 +121,9 @@ const PickersDayFiller = (0, _styles.styled)('div', {
104
121
  slot: 'Root',
105
122
  overridesResolver
106
123
  })(({
107
- theme,
108
- ownerState
124
+ theme
109
125
  }) => (0, _extends2.default)({}, styleArg({
110
- theme,
111
- ownerState
126
+ theme
112
127
  }), {
113
128
  // visibility: 'hidden' does not work here as it hides the element from screen readers as well
114
129
  opacity: 0,
@@ -31,30 +31,44 @@ const PickersLayoutRoot = exports.PickersLayoutRoot = (0, _styles.styled)('div',
31
31
  slot: 'Root',
32
32
  overridesResolver: (props, styles) => styles.root
33
33
  })(({
34
- theme,
35
- ownerState
34
+ theme
36
35
  }) => ({
37
36
  display: 'grid',
38
37
  gridAutoColumns: 'max-content auto max-content',
39
38
  gridAutoRows: 'max-content auto max-content',
40
- [`& .${_pickersLayoutClasses.pickersLayoutClasses.toolbar}`]: ownerState.isLandscape ? {
41
- gridColumn: theme.direction === 'rtl' ? 3 : 1,
42
- gridRow: '2 / 3'
43
- } : {
44
- gridColumn: '2 / 4',
45
- gridRow: 1
46
- },
47
- [`.${_pickersLayoutClasses.pickersLayoutClasses.shortcuts}`]: ownerState.isLandscape ? {
48
- gridColumn: '2 / 4',
49
- gridRow: 1
50
- } : {
51
- gridColumn: theme.direction === 'rtl' ? 3 : 1,
52
- gridRow: '2 / 3'
53
- },
54
39
  [`& .${_pickersLayoutClasses.pickersLayoutClasses.actionBar}`]: {
55
40
  gridColumn: '1 / 4',
56
41
  gridRow: 3
57
- }
42
+ },
43
+ variants: [{
44
+ props: {
45
+ isLandscape: true
46
+ },
47
+ style: {
48
+ [`& .${_pickersLayoutClasses.pickersLayoutClasses.toolbar}`]: {
49
+ gridColumn: theme.direction === 'rtl' ? 3 : 1,
50
+ gridRow: '2 / 3'
51
+ },
52
+ [`.${_pickersLayoutClasses.pickersLayoutClasses.shortcuts}`]: {
53
+ gridColumn: '2 / 4',
54
+ gridRow: 1
55
+ }
56
+ }
57
+ }, {
58
+ props: {
59
+ isLandscape: false
60
+ },
61
+ style: {
62
+ [`& .${_pickersLayoutClasses.pickersLayoutClasses.toolbar}`]: {
63
+ gridColumn: '2 / 4',
64
+ gridRow: 1
65
+ },
66
+ [`& .${_pickersLayoutClasses.pickersLayoutClasses.shortcuts}`]: {
67
+ gridColumn: theme.direction === 'rtl' ? 3 : 1,
68
+ gridRow: '2 / 3'
69
+ }
70
+ }
71
+ }]
58
72
  }));
59
73
  PickersLayoutRoot.propTypes = {
60
74
  // ----------------------------- Warning --------------------------------