@mui/lab 5.0.0-alpha.65 → 5.0.0-alpha.69

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 (143) hide show
  1. package/CHANGELOG.md +300 -28
  2. package/CalendarPicker/PickersCalendar.js +6 -18
  3. package/CalendarPicker/PickersCalendarHeader.js +5 -15
  4. package/CalendarPicker/PickersFadeTransitionGroup.js +1 -3
  5. package/CalendarPicker/PickersSlideTransition.js +1 -3
  6. package/ClockPicker/Clock.js +6 -18
  7. package/ClockPicker/ClockNumber.js +2 -3
  8. package/ClockPicker/ClockPointer.js +2 -6
  9. package/DatePicker/DatePicker.js +3 -1
  10. package/DatePicker/DatePickerToolbar.js +2 -6
  11. package/DateRangePicker/DateRangePickerInput.js +1 -3
  12. package/DateRangePicker/DateRangePickerToolbar.js +2 -6
  13. package/DateRangePicker/DateRangePickerViewDesktop.js +4 -12
  14. package/DateTimePicker/DateTimePickerTabs.js +2 -4
  15. package/DateTimePicker/DateTimePickerToolbar.js +4 -12
  16. package/DesktopDatePicker/DesktopDatePicker.js +18 -2
  17. package/DesktopDateRangePicker/DesktopDateRangePicker.js +12 -0
  18. package/DesktopDateTimePicker/DesktopDateTimePicker.js +12 -0
  19. package/DesktopTimePicker/DesktopTimePicker.js +12 -0
  20. package/LoadingButton/LoadingButton.js +3 -1
  21. package/MonthPicker/PickersMonth.js +1 -3
  22. package/TimePicker/TimePickerToolbar.js +4 -12
  23. package/TreeItem/TreeItem.js +1 -1
  24. package/TreeView/TreeView.js +4 -0
  25. package/YearPicker/PickersYear.js +2 -6
  26. package/index.js +1 -1
  27. package/internal/pickers/Picker/Picker.js +1 -3
  28. package/internal/pickers/PickersArrowSwitcher.js +2 -6
  29. package/internal/pickers/PickersModalDialog.js +4 -10
  30. package/internal/pickers/PickersPopper.d.ts +11 -0
  31. package/internal/pickers/PickersPopper.js +28 -8
  32. package/internal/pickers/PickersToolbar.js +2 -6
  33. package/internal/pickers/PickersToolbarButton.js +1 -3
  34. package/internal/pickers/PickersToolbarText.js +1 -3
  35. package/internal/pickers/hooks/usePickerState.js +6 -4
  36. package/internal/pickers/wrappers/DesktopWrapper.js +7 -1
  37. package/internal/pickers/wrappers/PickerStaticWrapper.js +1 -2
  38. package/legacy/CalendarPicker/PickersCalendar.js +6 -18
  39. package/legacy/CalendarPicker/PickersCalendarHeader.js +5 -15
  40. package/legacy/CalendarPicker/PickersFadeTransitionGroup.js +1 -3
  41. package/legacy/CalendarPicker/PickersSlideTransition.js +1 -3
  42. package/legacy/ClockPicker/Clock.js +6 -18
  43. package/legacy/ClockPicker/ClockNumber.js +2 -3
  44. package/legacy/ClockPicker/ClockPointer.js +2 -6
  45. package/legacy/DatePicker/DatePicker.js +3 -1
  46. package/legacy/DatePicker/DatePickerToolbar.js +2 -6
  47. package/legacy/DateRangePicker/DateRangePickerInput.js +1 -3
  48. package/legacy/DateRangePicker/DateRangePickerToolbar.js +2 -6
  49. package/legacy/DateRangePicker/DateRangePickerViewDesktop.js +4 -12
  50. package/legacy/DateTimePicker/DateTimePickerTabs.js +2 -4
  51. package/legacy/DateTimePicker/DateTimePickerToolbar.js +4 -12
  52. package/legacy/DesktopDatePicker/DesktopDatePicker.js +17 -1
  53. package/legacy/DesktopDateRangePicker/DesktopDateRangePicker.js +12 -0
  54. package/legacy/DesktopDateTimePicker/DesktopDateTimePicker.js +12 -0
  55. package/legacy/DesktopTimePicker/DesktopTimePicker.js +12 -0
  56. package/legacy/LoadingButton/LoadingButton.js +3 -1
  57. package/legacy/MonthPicker/PickersMonth.js +1 -3
  58. package/legacy/TimePicker/TimePickerToolbar.js +4 -12
  59. package/legacy/TreeItem/TreeItem.js +1 -1
  60. package/legacy/TreeView/TreeView.js +4 -0
  61. package/legacy/YearPicker/PickersYear.js +2 -6
  62. package/legacy/index.js +1 -1
  63. package/legacy/internal/pickers/Picker/Picker.js +1 -3
  64. package/legacy/internal/pickers/PickersArrowSwitcher.js +2 -6
  65. package/legacy/internal/pickers/PickersModalDialog.js +4 -10
  66. package/legacy/internal/pickers/PickersPopper.js +34 -11
  67. package/legacy/internal/pickers/PickersToolbar.js +2 -6
  68. package/legacy/internal/pickers/PickersToolbarButton.js +1 -3
  69. package/legacy/internal/pickers/PickersToolbarText.js +1 -3
  70. package/legacy/internal/pickers/hooks/usePickerState.js +11 -6
  71. package/legacy/internal/pickers/wrappers/DesktopWrapper.js +7 -1
  72. package/legacy/internal/pickers/wrappers/PickerStaticWrapper.js +1 -2
  73. package/modern/CalendarPicker/PickersCalendar.js +6 -18
  74. package/modern/CalendarPicker/PickersCalendarHeader.js +5 -15
  75. package/modern/CalendarPicker/PickersFadeTransitionGroup.js +1 -3
  76. package/modern/CalendarPicker/PickersSlideTransition.js +1 -3
  77. package/modern/ClockPicker/Clock.js +6 -18
  78. package/modern/ClockPicker/ClockNumber.js +2 -3
  79. package/modern/ClockPicker/ClockPointer.js +2 -6
  80. package/modern/DatePicker/DatePicker.js +3 -1
  81. package/modern/DatePicker/DatePickerToolbar.js +2 -6
  82. package/modern/DateRangePicker/DateRangePickerInput.js +1 -3
  83. package/modern/DateRangePicker/DateRangePickerToolbar.js +2 -6
  84. package/modern/DateRangePicker/DateRangePickerViewDesktop.js +4 -12
  85. package/modern/DateTimePicker/DateTimePickerTabs.js +2 -4
  86. package/modern/DateTimePicker/DateTimePickerToolbar.js +4 -12
  87. package/modern/DesktopDatePicker/DesktopDatePicker.js +18 -2
  88. package/modern/DesktopDateRangePicker/DesktopDateRangePicker.js +12 -0
  89. package/modern/DesktopDateTimePicker/DesktopDateTimePicker.js +12 -0
  90. package/modern/DesktopTimePicker/DesktopTimePicker.js +12 -0
  91. package/modern/LoadingButton/LoadingButton.js +3 -1
  92. package/modern/MonthPicker/PickersMonth.js +1 -3
  93. package/modern/TimePicker/TimePickerToolbar.js +4 -12
  94. package/modern/TreeItem/TreeItem.js +1 -1
  95. package/modern/TreeView/TreeView.js +4 -0
  96. package/modern/YearPicker/PickersYear.js +2 -6
  97. package/modern/index.js +1 -1
  98. package/modern/internal/pickers/Picker/Picker.js +1 -3
  99. package/modern/internal/pickers/PickersArrowSwitcher.js +2 -6
  100. package/modern/internal/pickers/PickersModalDialog.js +4 -10
  101. package/modern/internal/pickers/PickersPopper.js +28 -8
  102. package/modern/internal/pickers/PickersToolbar.js +2 -6
  103. package/modern/internal/pickers/PickersToolbarButton.js +1 -3
  104. package/modern/internal/pickers/PickersToolbarText.js +1 -3
  105. package/modern/internal/pickers/hooks/usePickerState.js +6 -4
  106. package/modern/internal/pickers/wrappers/DesktopWrapper.js +7 -1
  107. package/modern/internal/pickers/wrappers/PickerStaticWrapper.js +1 -2
  108. package/node/CalendarPicker/PickersCalendar.js +6 -18
  109. package/node/CalendarPicker/PickersCalendarHeader.js +5 -15
  110. package/node/CalendarPicker/PickersFadeTransitionGroup.js +1 -3
  111. package/node/CalendarPicker/PickersSlideTransition.js +1 -3
  112. package/node/ClockPicker/Clock.js +6 -18
  113. package/node/ClockPicker/ClockNumber.js +2 -3
  114. package/node/ClockPicker/ClockPointer.js +2 -6
  115. package/node/DatePicker/DatePicker.js +3 -1
  116. package/node/DatePicker/DatePickerToolbar.js +2 -6
  117. package/node/DateRangePicker/DateRangePickerInput.js +1 -3
  118. package/node/DateRangePicker/DateRangePickerToolbar.js +2 -6
  119. package/node/DateRangePicker/DateRangePickerViewDesktop.js +4 -12
  120. package/node/DateTimePicker/DateTimePickerTabs.js +2 -4
  121. package/node/DateTimePicker/DateTimePickerToolbar.js +4 -12
  122. package/node/DesktopDatePicker/DesktopDatePicker.js +18 -2
  123. package/node/DesktopDateRangePicker/DesktopDateRangePicker.js +12 -0
  124. package/node/DesktopDateTimePicker/DesktopDateTimePicker.js +12 -0
  125. package/node/DesktopTimePicker/DesktopTimePicker.js +12 -0
  126. package/node/LoadingButton/LoadingButton.js +3 -1
  127. package/node/MonthPicker/PickersMonth.js +1 -3
  128. package/node/TimePicker/TimePickerToolbar.js +4 -12
  129. package/node/TreeItem/TreeItem.js +1 -1
  130. package/node/TreeView/TreeView.js +4 -0
  131. package/node/YearPicker/PickersYear.js +2 -6
  132. package/node/index.js +1 -1
  133. package/node/internal/pickers/Picker/Picker.js +1 -3
  134. package/node/internal/pickers/PickersArrowSwitcher.js +2 -6
  135. package/node/internal/pickers/PickersModalDialog.js +4 -10
  136. package/node/internal/pickers/PickersPopper.js +29 -8
  137. package/node/internal/pickers/PickersToolbar.js +2 -6
  138. package/node/internal/pickers/PickersToolbarButton.js +1 -3
  139. package/node/internal/pickers/PickersToolbarText.js +1 -3
  140. package/node/internal/pickers/hooks/usePickerState.js +6 -4
  141. package/node/internal/pickers/wrappers/DesktopWrapper.js +7 -1
  142. package/node/internal/pickers/wrappers/PickerStaticWrapper.js +1 -2
  143. package/package.json +11 -11
@@ -13,9 +13,7 @@ import { WrapperVariantContext } from '../internal/pickers/wrappers/WrapperVaria
13
13
  import { getHours, getMinutes } from './shared';
14
14
  import { jsx as _jsx } from "react/jsx-runtime";
15
15
  import { jsxs as _jsxs } from "react/jsx-runtime";
16
- const ClockRoot = styled('div', {
17
- skipSx: true
18
- })(({
16
+ const ClockRoot = styled('div')(({
19
17
  theme
20
18
  }) => ({
21
19
  display: 'flex',
@@ -23,9 +21,7 @@ const ClockRoot = styled('div', {
23
21
  alignItems: 'center',
24
22
  margin: theme.spacing(2)
25
23
  }));
26
- const ClockClock = styled('div', {
27
- skipSx: true
28
- })({
24
+ const ClockClock = styled('div')({
29
25
  backgroundColor: 'rgba(0,0,0,.07)',
30
26
  borderRadius: '50%',
31
27
  height: 220,
@@ -34,9 +30,7 @@ const ClockClock = styled('div', {
34
30
  position: 'relative',
35
31
  pointerEvents: 'none'
36
32
  });
37
- const ClockSquareMask = styled('div', {
38
- skipSx: true
39
- })({
33
+ const ClockSquareMask = styled('div')({
40
34
  width: '100%',
41
35
  height: '100%',
42
36
  position: 'absolute',
@@ -53,9 +47,7 @@ const ClockSquareMask = styled('div', {
53
47
  cursor: 'move'
54
48
  }
55
49
  });
56
- const ClockPin = styled('div', {
57
- skipSx: true
58
- })(({
50
+ const ClockPin = styled('div')(({
59
51
  theme
60
52
  }) => ({
61
53
  width: 6,
@@ -67,9 +59,7 @@ const ClockPin = styled('div', {
67
59
  left: '50%',
68
60
  transform: 'translate(-50%, -50%)'
69
61
  }));
70
- const ClockAmButton = styled(IconButton, {
71
- skipSx: true
72
- })(({
62
+ const ClockAmButton = styled(IconButton)(({
73
63
  theme,
74
64
  ownerState
75
65
  }) => _extends({
@@ -84,9 +74,7 @@ const ClockAmButton = styled(IconButton, {
84
74
  backgroundColor: theme.palette.primary.light
85
75
  }
86
76
  }));
87
- const ClockPmButton = styled(IconButton, {
88
- skipSx: true
89
- })(({
77
+ const ClockPmButton = styled(IconButton)(({
90
78
  theme,
91
79
  ownerState
92
80
  }) => _extends({
@@ -8,9 +8,7 @@ import { generateUtilityClasses } from '@mui/base';
8
8
  import { CLOCK_WIDTH, CLOCK_HOUR_WIDTH } from './shared';
9
9
  import { jsx as _jsx } from "react/jsx-runtime";
10
10
  export const classes = generateUtilityClasses('PrivateClockNumber', ['selected', 'disabled']);
11
- const ClockNumberRoot = styled('span', {
12
- skipSx: true
13
- })(({
11
+ const ClockNumberRoot = styled('span')(({
14
12
  theme,
15
13
  ownerState
16
14
  }) => _extends({
@@ -23,6 +21,7 @@ const ClockNumberRoot = styled('span', {
23
21
  alignItems: 'center',
24
22
  borderRadius: '50%',
25
23
  color: theme.palette.text.primary,
24
+ fontFamily: theme.typography.fontFamily,
26
25
  '&:focused': {
27
26
  backgroundColor: theme.palette.background.paper
28
27
  },
@@ -5,9 +5,7 @@ import * as React from 'react';
5
5
  import { styled } from '@mui/material/styles';
6
6
  import { CLOCK_WIDTH, CLOCK_HOUR_WIDTH } from './shared';
7
7
  import { jsx as _jsx } from "react/jsx-runtime";
8
- const ClockPointerRoot = styled('div', {
9
- skipSx: true
10
- })(({
8
+ const ClockPointerRoot = styled('div')(({
11
9
  theme,
12
10
  ownerState
13
11
  }) => _extends({
@@ -20,9 +18,7 @@ const ClockPointerRoot = styled('div', {
20
18
  }, ownerState.toAnimateTransform && {
21
19
  transition: theme.transitions.create(['transform', 'height'])
22
20
  }));
23
- const ClockPointerThumb = styled('div', {
24
- skipSx: true
25
- })(({
21
+ const ClockPointerThumb = styled('div')(({
26
22
  theme,
27
23
  ownerState
28
24
  }) => _extends({
@@ -44,7 +44,9 @@ const DatePicker = /*#__PURE__*/React.forwardRef(function DatePicker(inProps, re
44
44
  return isDesktop ? /*#__PURE__*/_jsx(DesktopDatePicker, _extends({
45
45
  ref: ref,
46
46
  PopperProps: PopperProps,
47
- TransitionComponent: TransitionComponent
47
+ TransitionComponent: TransitionComponent,
48
+ clearText: clearText,
49
+ clearable: clearable
48
50
  }, other)) : /*#__PURE__*/_jsx(MobileDatePicker, _extends({
49
51
  ref: ref,
50
52
  cancelText: cancelText,
@@ -10,17 +10,13 @@ import { useUtils } from '../internal/pickers/hooks/useUtils';
10
10
  import { isYearAndMonthViews, isYearOnlyView } from './shared';
11
11
  import { jsx as _jsx } from "react/jsx-runtime";
12
12
  const classes = generateUtilityClasses('PrivateDatePickerToolbar', ['penIcon']);
13
- const DatePickerToolbarRoot = styled(PickersToolbar, {
14
- skipSx: true
15
- })({
13
+ const DatePickerToolbarRoot = styled(PickersToolbar)({
16
14
  [`& .${classes.penIcon}`]: {
17
15
  position: 'relative',
18
16
  top: 4
19
17
  }
20
18
  });
21
- const DatePickerToolbarTitle = styled(Typography, {
22
- skipSx: true
23
- })(({
19
+ const DatePickerToolbarTitle = styled(Typography)(({
24
20
  ownerState
25
21
  }) => _extends({}, ownerState.isLandscape && {
26
22
  margin: 'auto 16px auto auto'
@@ -8,9 +8,7 @@ import { useMaskedInput } from '../internal/pickers/hooks/useMaskedInput';
8
8
  import { WrapperVariantContext } from '../internal/pickers/wrappers/WrapperVariantContext';
9
9
  import { executeInTheNextEventLoopTick } from '../internal/pickers/utils';
10
10
  import { jsx as _jsx } from "react/jsx-runtime";
11
- const DateRangePickerInputRoot = styled('div', {
12
- skipSx: true
13
- })(({
11
+ const DateRangePickerInputRoot = styled('div')(({
14
12
  theme
15
13
  }) => ({
16
14
  display: 'flex',
@@ -10,17 +10,13 @@ import PickersToolbarButton from '../internal/pickers/PickersToolbarButton';
10
10
  import { jsx as _jsx } from "react/jsx-runtime";
11
11
  import { jsxs as _jsxs } from "react/jsx-runtime";
12
12
  const classes = generateUtilityClasses('PrivateDateRangePickerToolbar', ['penIcon']);
13
- const DateRangePickerToolbarRoot = styled(PickersToolbar, {
14
- skipSx: true
15
- })({
13
+ const DateRangePickerToolbarRoot = styled(PickersToolbar)({
16
14
  [`& .${classes.penIcon}`]: {
17
15
  position: 'relative',
18
16
  top: 4
19
17
  }
20
18
  });
21
- const DateRangePickerToolbarContainer = styled('div', {
22
- skipSx: true
23
- })({
19
+ const DateRangePickerToolbarContainer = styled('div')({
24
20
  display: 'flex'
25
21
  });
26
22
  /**
@@ -14,30 +14,22 @@ import { doNothing } from '../internal/pickers/utils';
14
14
  import { jsx as _jsx } from "react/jsx-runtime";
15
15
  import { createElement as _createElement } from "react";
16
16
  import { jsxs as _jsxs } from "react/jsx-runtime";
17
- const DateRangePickerViewDesktopRoot = styled('div', {
18
- skipSx: true
19
- })({
17
+ const DateRangePickerViewDesktopRoot = styled('div')({
20
18
  display: 'flex',
21
19
  flexDirection: 'row'
22
20
  });
23
- const DateRangePickerViewDesktopContainer = styled('div', {
24
- skipSx: true
25
- })(({
21
+ const DateRangePickerViewDesktopContainer = styled('div')(({
26
22
  theme
27
23
  }) => ({
28
24
  '&:not(:last-of-type)': {
29
25
  borderRight: `2px solid ${theme.palette.divider}`
30
26
  }
31
27
  }));
32
- const DateRangePickerViewDesktopCalendar = styled(PickersCalendar, {
33
- skipSx: true
34
- })({
28
+ const DateRangePickerViewDesktopCalendar = styled(PickersCalendar)({
35
29
  minWidth: 312,
36
30
  minHeight: 288
37
31
  });
38
- const DateRangePickerViewDesktopArrowSwitcher = styled(PickersArrowSwitcher, {
39
- skipSx: true
40
- })({
32
+ const DateRangePickerViewDesktopArrowSwitcher = styled(PickersArrowSwitcher)({
41
33
  padding: '16px 16px 8px 16px',
42
34
  display: 'flex',
43
35
  alignItems: 'center',
@@ -14,7 +14,7 @@ import { jsxs as _jsxs } from "react/jsx-runtime";
14
14
 
15
15
  const viewToTab = openView => {
16
16
  // TODO: what happens if `openView` is `month`?
17
- if (openView === 'day' || openView === 'year') {
17
+ if (['day', 'month', 'year'].includes(openView)) {
18
18
  return 'date';
19
19
  }
20
20
 
@@ -29,9 +29,7 @@ const tabToView = tab => {
29
29
  return 'hours';
30
30
  };
31
31
 
32
- const DateTimePickerTabsRoot = styled(Tabs, {
33
- skipSx: true
34
- })(({
32
+ const DateTimePickerTabsRoot = styled(Tabs)(({
35
33
  ownerState,
36
34
  theme
37
35
  }) => _extends({
@@ -16,9 +16,7 @@ import { WrapperVariantContext } from '../internal/pickers/wrappers/WrapperVaria
16
16
  import { jsx as _jsx } from "react/jsx-runtime";
17
17
  import { jsxs as _jsxs } from "react/jsx-runtime";
18
18
  const classes = generateUtilityClasses('PrivateDateTimePickerToolbar', ['penIcon']);
19
- const DateTimePickerToolbarRoot = styled(PickersToolbar, {
20
- skipSx: true
21
- })({
19
+ const DateTimePickerToolbarRoot = styled(PickersToolbar)({
22
20
  paddingLeft: 16,
23
21
  paddingRight: 16,
24
22
  justifyContent: 'space-around',
@@ -28,21 +26,15 @@ const DateTimePickerToolbarRoot = styled(PickersToolbar, {
28
26
  right: 8
29
27
  }
30
28
  });
31
- const DateTimePickerToolbarDateContainer = styled('div', {
32
- skipSx: true
33
- })({
29
+ const DateTimePickerToolbarDateContainer = styled('div')({
34
30
  display: 'flex',
35
31
  flexDirection: 'column',
36
32
  alignItems: 'flex-start'
37
33
  });
38
- const DateTimePickerToolbarTimeContainer = styled('div', {
39
- skipSx: true
40
- })({
34
+ const DateTimePickerToolbarTimeContainer = styled('div')({
41
35
  display: 'flex'
42
36
  });
43
- const DateTimePickerToolbarSeparator = styled(PickersToolbarText, {
44
- skipSx: true
45
- })({
37
+ const DateTimePickerToolbarSeparator = styled(PickersToolbarText)({
46
38
  margin: '0 4px 0 2px',
47
39
  cursor: 'default'
48
40
  });
@@ -1,6 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
- const _excluded = ["onChange", "PopperProps", "PaperProps", "ToolbarComponent", "TransitionComponent", "value"];
3
+ const _excluded = ["onChange", "PopperProps", "PaperProps", "ToolbarComponent", "TransitionComponent", "value", "clearText", "clearable"];
4
4
  import * as React from 'react';
5
5
  import PropTypes from 'prop-types';
6
6
  import { useDatePickerDefaultizedProps } from '../DatePicker/shared';
@@ -42,7 +42,9 @@ const DesktopDatePicker = /*#__PURE__*/React.forwardRef(function DesktopDatePick
42
42
  PopperProps,
43
43
  PaperProps,
44
44
  ToolbarComponent = DatePickerToolbar,
45
- TransitionComponent
45
+ TransitionComponent,
46
+ clearText,
47
+ clearable
46
48
  } = props,
47
49
  other = _objectWithoutPropertiesLoose(props, _excluded);
48
50
 
@@ -57,6 +59,8 @@ const DesktopDatePicker = /*#__PURE__*/React.forwardRef(function DesktopDatePick
57
59
  PopperProps: PopperProps,
58
60
  PaperProps: PaperProps,
59
61
  TransitionComponent: TransitionComponent,
62
+ clearText: clearText,
63
+ clearable: clearable,
60
64
  children: /*#__PURE__*/_jsx(Picker, _extends({}, pickerProps, {
61
65
  autoFocus: true,
62
66
  toolbarTitle: props.label || props.toolbarTitle,
@@ -100,6 +104,18 @@ process.env.NODE_ENV !== "production" ? DesktopDatePicker.propTypes
100
104
  */
101
105
  className: PropTypes.string,
102
106
 
107
+ /**
108
+ * If `true`, it shows the clear action in the picker dialog.
109
+ * @default false
110
+ */
111
+ clearable: PropTypes.bool,
112
+
113
+ /**
114
+ * Clear text message.
115
+ * @default 'Clear'
116
+ */
117
+ clearText: PropTypes.node,
118
+
103
119
  /**
104
120
  * The components used for each slot.
105
121
  * Either a string to use a HTML element or a component.
@@ -141,6 +141,18 @@ process.env.NODE_ENV !== "production" ? DesktopDateRangePicker.propTypes
141
141
  */
142
142
  className: PropTypes.string,
143
143
 
144
+ /**
145
+ * If `true`, it shows the clear action in the picker dialog.
146
+ * @default false
147
+ */
148
+ clearable: PropTypes.bool,
149
+
150
+ /**
151
+ * Clear text message.
152
+ * @default 'Clear'
153
+ */
154
+ clearText: PropTypes.node,
155
+
144
156
  /**
145
157
  * The components used for each slot.
146
158
  * Either a string to use a HTML element or a component.
@@ -110,6 +110,18 @@ process.env.NODE_ENV !== "production" ? DesktopDateTimePicker.propTypes
110
110
  */
111
111
  className: PropTypes.string,
112
112
 
113
+ /**
114
+ * If `true`, it shows the clear action in the picker dialog.
115
+ * @default false
116
+ */
117
+ clearable: PropTypes.bool,
118
+
119
+ /**
120
+ * Clear text message.
121
+ * @default 'Clear'
122
+ */
123
+ clearText: PropTypes.node,
124
+
113
125
  /**
114
126
  * The components used for each slot.
115
127
  * Either a string to use a HTML element or a component.
@@ -99,6 +99,18 @@ process.env.NODE_ENV !== "production" ? DesktopTimePicker.propTypes
99
99
  */
100
100
  className: PropTypes.string,
101
101
 
102
+ /**
103
+ * If `true`, it shows the clear action in the picker dialog.
104
+ * @default false
105
+ */
106
+ clearable: PropTypes.bool,
107
+
108
+ /**
109
+ * Clear text message.
110
+ * @default 'Clear'
111
+ */
112
+ clearText: PropTypes.node,
113
+
102
114
  /**
103
115
  * The components used for each slot.
104
116
  * Either a string to use a HTML element or a component.
@@ -236,6 +236,8 @@ process.env.NODE_ENV !== "production" ? LoadingButton.propTypes
236
236
  * The variant to use.
237
237
  * @default 'text'
238
238
  */
239
- variant: PropTypes.oneOf(['contained', 'outlined', 'text'])
239
+ variant: PropTypes
240
+ /* @typescript-to-proptypes-ignore */
241
+ .oneOfType([PropTypes.oneOf(['contained', 'outlined', 'text']), PropTypes.string])
240
242
  } : void 0;
241
243
  export default LoadingButton;
@@ -9,9 +9,7 @@ import { generateUtilityClasses } from '@mui/base';
9
9
  import { onSpaceOrEnter } from '../internal/pickers/utils';
10
10
  import { jsx as _jsx } from "react/jsx-runtime";
11
11
  const classes = generateUtilityClasses('PrivatePickersMonth', ['root', 'selected']);
12
- const PickersMonthRoot = styled(Typography, {
13
- skipSx: true
14
- })(({
12
+ const PickersMonthRoot = styled(Typography)(({
15
13
  theme
16
14
  }) => _extends({
17
15
  flex: '1 0 33.33%',
@@ -34,23 +34,17 @@ const useUtilityClasses = ownerState => {
34
34
  return composeClasses(slots, getTimePickerToolbarUtilityClass, classes);
35
35
  };
36
36
 
37
- const TimePickerToolbarRoot = styled(PickersToolbar, {
38
- skipSx: true
39
- })({
37
+ const TimePickerToolbarRoot = styled(PickersToolbar)({
40
38
  [`& .${timePickerToolbarClasses.penIconLandscape}`]: {
41
39
  marginTop: 'auto'
42
40
  }
43
41
  });
44
- const TimePickerToolbarSeparator = styled(PickersToolbarText, {
45
- skipSx: true
46
- })({
42
+ const TimePickerToolbarSeparator = styled(PickersToolbarText)({
47
43
  outline: 0,
48
44
  margin: '0 4px 0 2px',
49
45
  cursor: 'default'
50
46
  });
51
- const TimePickerToolbarHourMinuteLabel = styled('div', {
52
- skipSx: true
53
- })(({
47
+ const TimePickerToolbarHourMinuteLabel = styled('div')(({
54
48
  theme,
55
49
  ownerState
56
50
  }) => _extends({
@@ -62,9 +56,7 @@ const TimePickerToolbarHourMinuteLabel = styled('div', {
62
56
  }, theme.direction === 'rtl' && {
63
57
  flexDirection: 'row-reverse'
64
58
  }));
65
- const TimePickerToolbarAmPmSelection = styled('div', {
66
- skipSx: true
67
- })(({
59
+ const TimePickerToolbarAmPmSelection = styled('div')(({
68
60
  ownerState
69
61
  }) => _extends({
70
62
  display: 'flex',
@@ -102,7 +102,7 @@ const StyledTreeItemContent = styled(TreeItemContent, {
102
102
  },
103
103
  [`& .${treeItemClasses.label}`]: _extends({
104
104
  width: '100%',
105
- // fixes overflow - see https://github.com/mui-org/material-ui/issues/27372
105
+ // fixes overflow - see https://github.com/mui/material-ui/issues/27372
106
106
  minWidth: 0,
107
107
  paddingLeft: 4,
108
108
  position: 'relative'
@@ -688,6 +688,10 @@ const TreeView = /*#__PURE__*/React.forwardRef(function TreeView(inProps, ref) {
688
688
  if (isExpandable(focusedNodeId)) {
689
689
  toggleExpansion(event);
690
690
  flag = true;
691
+ } else if (multiSelect) {
692
+ flag = selectNode(event, focusedNodeId, true);
693
+ } else {
694
+ flag = selectNode(event, focusedNodeId);
691
695
  }
692
696
  }
693
697
 
@@ -25,9 +25,7 @@ const useUtilityClasses = ownerState => {
25
25
  return composeClasses(slots, getPickersYearUtilityClass, classes);
26
26
  };
27
27
 
28
- const PickersYearRoot = styled('div', {
29
- skipSx: true
30
- })(({
28
+ const PickersYearRoot = styled('div')(({
31
29
  ownerState
32
30
  }) => _extends({
33
31
  flexBasis: '33.3%',
@@ -37,9 +35,7 @@ const PickersYearRoot = styled('div', {
37
35
  }, (ownerState == null ? void 0 : ownerState.wrapperVariant) === 'desktop' && {
38
36
  flexBasis: '25%'
39
37
  }));
40
- const PickersYearButton = styled('button', {
41
- skipSx: true
42
- })(({
38
+ const PickersYearButton = styled('button')(({
43
39
  theme
44
40
  }) => _extends({
45
41
  color: 'unset',
package/index.js CHANGED
@@ -1,4 +1,4 @@
1
- /** @license MUI v5.0.0-alpha.65
1
+ /** @license MUI v5.0.0-alpha.69
2
2
  *
3
3
  * This source code is licensed under the MIT license found in the
4
4
  * LICENSE file in the root directory of this source tree.
@@ -15,9 +15,7 @@ import { jsxs as _jsxs } from "react/jsx-runtime";
15
15
  export const MobileKeyboardInputView = styled('div')({
16
16
  padding: '16px 24px'
17
17
  });
18
- const PickerRoot = styled('div', {
19
- skipSx: true
20
- })(({
18
+ const PickerRoot = styled('div')(({
21
19
  ownerState
22
20
  }) => _extends({
23
21
  display: 'flex',
@@ -12,16 +12,12 @@ import { jsxs as _jsxs } from "react/jsx-runtime";
12
12
  const PickersArrowSwitcherRoot = styled('div')({
13
13
  display: 'flex'
14
14
  });
15
- const PickersArrowSwitcherSpacer = styled('div', {
16
- skipSx: true
17
- })(({
15
+ const PickersArrowSwitcherSpacer = styled('div')(({
18
16
  theme
19
17
  }) => ({
20
18
  width: theme.spacing(3)
21
19
  }));
22
- const PickersArrowSwitcherButton = styled(IconButton, {
23
- skipSx: true
24
- })(({
20
+ const PickersArrowSwitcherButton = styled(IconButton)(({
25
21
  ownerState
26
22
  }) => _extends({}, ownerState.hidden && {
27
23
  visibility: 'hidden'
@@ -8,9 +8,7 @@ import { styled } from '@mui/material/styles';
8
8
  import { DIALOG_WIDTH } from './constants/dimensions';
9
9
  import { jsx as _jsx } from "react/jsx-runtime";
10
10
  import { jsxs as _jsxs } from "react/jsx-runtime";
11
- const PickersModalDialogRoot = styled(Dialog, {
12
- skipSx: true
13
- })({
11
+ const PickersModalDialogRoot = styled(Dialog)({
14
12
  [`& .${dialogClasses.container}`]: {
15
13
  outline: 0
16
14
  },
@@ -19,20 +17,16 @@ const PickersModalDialogRoot = styled(Dialog, {
19
17
  minWidth: DIALOG_WIDTH
20
18
  }
21
19
  });
22
- const PickersModalDialogContent = styled(DialogContent, {
23
- skipSx: true
24
- })({
20
+ const PickersModalDialogContent = styled(DialogContent)({
25
21
  '&:first-of-type': {
26
22
  padding: 0
27
23
  }
28
24
  });
29
- const PickersModalDialogActions = styled(DialogActions, {
30
- skipSx: true
31
- })(({
25
+ const PickersModalDialogActions = styled(DialogActions)(({
32
26
  ownerState
33
27
  }) => _extends({}, (ownerState.clearable || ownerState.showTodayButton) && {
34
28
  // set justifyContent to default value to fix IE11 layout bug
35
- // see https://github.com/mui-org/material-ui-pickers/pull/267
29
+ // see https://github.com/mui/material-ui-pickers/pull/267
36
30
  justifyContent: 'flex-start',
37
31
  '& > *:first-of-type': {
38
32
  marginRight: 'auto'
@@ -4,6 +4,16 @@ import { PopperProps as MuiPopperProps } from '@mui/material/Popper';
4
4
  import { TrapFocusProps as MuiTrapFocusProps } from '@mui/material/Unstable_TrapFocus';
5
5
  import { TransitionProps as MuiTransitionProps } from '@mui/material/transitions';
6
6
  export interface ExportedPickerPaperProps {
7
+ /**
8
+ * If `true`, it shows the clear action in the picker dialog.
9
+ * @default false
10
+ */
11
+ clearable?: boolean;
12
+ /**
13
+ * Clear text message.
14
+ * @default 'Clear'
15
+ */
16
+ clearText?: React.ReactNode;
7
17
  /**
8
18
  * Paper props passed down to [Paper](https://mui.com/api/paper/) component.
9
19
  */
@@ -28,6 +38,7 @@ export interface PickerPopperProps extends ExportedPickerPopperProps, ExportedPi
28
38
  children?: React.ReactNode;
29
39
  onClose: () => void;
30
40
  onBlur?: () => void;
41
+ onClear?: () => void;
31
42
  }
32
43
  declare const PickersPopper: (props: PickerPopperProps) => JSX.Element;
33
44
  export default PickersPopper;
@@ -8,17 +8,16 @@ import Popper from '@mui/material/Popper';
8
8
  import TrapFocus from '@mui/material/Unstable_TrapFocus';
9
9
  import { useForkRef, useEventCallback, ownerDocument } from '@mui/material/utils';
10
10
  import { styled } from '@mui/material/styles';
11
+ import Button from '@mui/material/Button';
12
+ import DialogActions from '@mui/material/DialogActions';
11
13
  import { jsx as _jsx } from "react/jsx-runtime";
12
- const PickersPopperRoot = styled(Popper, {
13
- skipSx: true
14
- })(({
14
+ import { jsxs as _jsxs } from "react/jsx-runtime";
15
+ const PickersPopperRoot = styled(Popper)(({
15
16
  theme
16
17
  }) => ({
17
18
  zIndex: theme.zIndex.modal
18
19
  }));
19
- const PickersPopperPaper = styled(Paper, {
20
- skipSx: true
21
- })(({
20
+ const PickersPopperPaper = styled(Paper)(({
22
21
  ownerState
23
22
  }) => _extends({
24
23
  transformOrigin: 'top center',
@@ -26,6 +25,16 @@ const PickersPopperPaper = styled(Paper, {
26
25
  }, ownerState.placement === 'top' && {
27
26
  transformOrigin: 'bottom center'
28
27
  }));
28
+ const PickersPopperAction = styled(DialogActions)(({
29
+ ownerState
30
+ }) => _extends({}, ownerState.clearable ? {
31
+ justifyContent: 'flex-start',
32
+ '& > *:first-of-type': {
33
+ marginRight: 'auto'
34
+ }
35
+ } : {
36
+ padding: 0
37
+ }));
29
38
 
30
39
  function clickedRootScrollbar(event, doc) {
31
40
  return doc.documentElement.clientWidth < event.clientX || doc.documentElement.clientHeight < event.clientY;
@@ -149,11 +158,16 @@ function useClickAwayListener(active, onClickAway) {
149
158
  }
150
159
 
151
160
  const PickersPopper = props => {
161
+ var _Button;
162
+
152
163
  const {
153
164
  anchorEl,
154
165
  children,
155
166
  containerRef = null,
156
167
  onClose,
168
+ onClear,
169
+ clearable = false,
170
+ clearText = 'Clear',
157
171
  open,
158
172
  PopperProps,
159
173
  role,
@@ -215,7 +229,7 @@ const PickersPopper = props => {
215
229
  isEnabled: () => true
216
230
  }, TrapFocusProps, {
217
231
  children: /*#__PURE__*/_jsx(TransitionComponent, _extends({}, TransitionProps, {
218
- children: /*#__PURE__*/_jsx(PickersPopperPaper, _extends({
232
+ children: /*#__PURE__*/_jsxs(PickersPopperPaper, _extends({
219
233
  tabIndex: -1,
220
234
  elevation: 8,
221
235
  ref: handlePaperRef,
@@ -237,7 +251,13 @@ const PickersPopper = props => {
237
251
  placement
238
252
  })
239
253
  }, otherPaperProps, {
240
- children: children
254
+ children: [children, /*#__PURE__*/_jsx(PickersPopperAction, {
255
+ ownerState: ownerState,
256
+ children: clearable && (_Button || (_Button = /*#__PURE__*/_jsx(Button, {
257
+ onClick: onClear,
258
+ children: clearText
259
+ })))
260
+ })]
241
261
  }))
242
262
  }))
243
263
  }))