@mui/x-date-pickers 8.0.0-alpha.4 → 8.0.0-alpha.6

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 (205) hide show
  1. package/CHANGELOG.md +182 -0
  2. package/DatePicker/DatePickerToolbar.d.ts +1 -2
  3. package/DatePicker/DatePickerToolbar.js +6 -17
  4. package/DateTimePicker/DateTimePicker.types.d.ts +2 -2
  5. package/DateTimePicker/DateTimePickerTabs.d.ts +2 -5
  6. package/DateTimePicker/DateTimePickerTabs.js +6 -13
  7. package/DateTimePicker/DateTimePickerToolbar.d.ts +8 -4
  8. package/DateTimePicker/DateTimePickerToolbar.js +13 -24
  9. package/DateTimePicker/shared.d.ts +2 -2
  10. package/DesktopDatePicker/DesktopDatePicker.types.d.ts +2 -3
  11. package/DesktopDateTimePicker/DesktopDateTimePicker.types.d.ts +2 -2
  12. package/DesktopDateTimePicker/DesktopDateTimePickerLayout.d.ts +1 -2
  13. package/DesktopDateTimePicker/DesktopDateTimePickerLayout.js +1 -11
  14. package/DesktopTimePicker/DesktopTimePicker.types.d.ts +2 -2
  15. package/MobileDatePicker/MobileDatePicker.types.d.ts +2 -3
  16. package/MobileDateTimePicker/MobileDateTimePicker.types.d.ts +4 -4
  17. package/MobileTimePicker/MobileTimePicker.types.d.ts +4 -4
  18. package/MonthCalendar/MonthCalendar.d.ts +1 -1
  19. package/MonthCalendar/MonthCalendar.js +31 -11
  20. package/MonthCalendar/MonthCalendar.types.d.ts +2 -2
  21. package/MonthCalendar/MonthCalendarButton.d.ts +24 -0
  22. package/MonthCalendar/{PickersMonth.js → MonthCalendarButton.js} +20 -61
  23. package/MonthCalendar/index.d.ts +0 -3
  24. package/MonthCalendar/index.js +1 -2
  25. package/MonthCalendar/monthCalendarClasses.d.ts +7 -1
  26. package/MonthCalendar/monthCalendarClasses.js +1 -1
  27. package/MultiSectionDigitalClock/MultiSectionDigitalClock.js +3 -0
  28. package/PickersActionBar/PickersActionBar.d.ts +0 -4
  29. package/PickersActionBar/PickersActionBar.js +12 -13
  30. package/PickersLayout/PickersLayout.d.ts +2 -2
  31. package/PickersLayout/PickersLayout.js +1 -11
  32. package/PickersLayout/PickersLayout.types.d.ts +12 -14
  33. package/PickersLayout/usePickerLayout.d.ts +2 -2
  34. package/PickersLayout/usePickerLayout.js +3 -18
  35. package/PickersSectionList/PickersSectionList.js +21 -16
  36. package/PickersSectionList/PickersSectionList.types.d.ts +13 -6
  37. package/PickersTextField/PickersFilledInput/PickersFilledInput.d.ts +7 -0
  38. package/PickersTextField/PickersFilledInput/PickersFilledInput.js +34 -28
  39. package/PickersTextField/PickersFilledInput/pickersFilledInputClasses.d.ts +1 -1
  40. package/PickersTextField/PickersInput/PickersInput.js +20 -14
  41. package/PickersTextField/PickersInput/pickersInputClasses.d.ts +3 -2
  42. package/PickersTextField/PickersInput/pickersInputClasses.js +1 -1
  43. package/PickersTextField/PickersInputBase/PickersInputBase.d.ts +3 -6
  44. package/PickersTextField/PickersInputBase/PickersInputBase.js +36 -37
  45. package/PickersTextField/PickersInputBase/PickersInputBase.types.d.ts +1 -0
  46. package/PickersTextField/PickersOutlinedInput/Outline.d.ts +0 -1
  47. package/PickersTextField/PickersOutlinedInput/Outline.js +13 -10
  48. package/PickersTextField/PickersOutlinedInput/PickersOutlinedInput.js +8 -14
  49. package/PickersTextField/PickersTextField.js +75 -62
  50. package/PickersTextField/PickersTextField.types.d.ts +43 -4
  51. package/PickersTextField/usePickerTextFieldOwnerState.d.ts +4 -0
  52. package/PickersTextField/usePickerTextFieldOwnerState.js +11 -0
  53. package/StaticDatePicker/StaticDatePicker.types.d.ts +2 -3
  54. package/StaticDateTimePicker/StaticDateTimePicker.types.d.ts +2 -2
  55. package/StaticTimePicker/StaticTimePicker.types.d.ts +2 -2
  56. package/TimeClock/Clock.d.ts +4 -0
  57. package/TimeClock/Clock.js +9 -6
  58. package/TimeClock/TimeClock.js +21 -4
  59. package/TimePicker/TimePicker.types.d.ts +2 -2
  60. package/TimePicker/TimePickerToolbar.d.ts +2 -2
  61. package/TimePicker/TimePickerToolbar.js +6 -20
  62. package/YearCalendar/YearCalendar.js +46 -13
  63. package/YearCalendar/YearCalendar.types.d.ts +2 -2
  64. package/YearCalendar/YearCalendarButton.d.ts +23 -0
  65. package/YearCalendar/{PickersYear.js → YearCalendarButton.js} +20 -59
  66. package/YearCalendar/index.d.ts +0 -3
  67. package/YearCalendar/index.js +1 -2
  68. package/YearCalendar/yearCalendarClasses.d.ts +7 -1
  69. package/YearCalendar/yearCalendarClasses.js +1 -1
  70. package/hooks/index.d.ts +1 -0
  71. package/hooks/index.js +2 -1
  72. package/hooks/usePickerActionsContext.d.ts +5 -0
  73. package/hooks/usePickerActionsContext.js +16 -0
  74. package/hooks/usePickerContext.d.ts +3 -1
  75. package/hooks/usePickerContext.js +0 -1
  76. package/index.js +1 -1
  77. package/internals/components/PickerProvider.d.ts +11 -6
  78. package/internals/components/PickerProvider.js +12 -6
  79. package/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js +3 -3
  80. package/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.types.d.ts +1 -1
  81. package/internals/components/PickersModalDialog.d.ts +1 -3
  82. package/internals/components/PickersModalDialog.js +9 -3
  83. package/internals/components/PickersPopper.d.ts +1 -3
  84. package/internals/components/PickersPopper.js +11 -6
  85. package/internals/components/PickersToolbar.d.ts +3 -3
  86. package/internals/hooks/useDesktopPicker/useDesktopPicker.js +9 -9
  87. package/internals/hooks/useDesktopPicker/useDesktopPicker.types.d.ts +5 -5
  88. package/internals/hooks/useFieldOwnerState.d.ts +1 -0
  89. package/internals/hooks/useFieldOwnerState.js +6 -2
  90. package/internals/hooks/useMobilePicker/useMobilePicker.js +8 -7
  91. package/internals/hooks/useMobilePicker/useMobilePicker.types.d.ts +5 -5
  92. package/internals/hooks/usePicker/usePicker.js +1 -3
  93. package/internals/hooks/usePicker/usePicker.types.d.ts +2 -2
  94. package/internals/hooks/usePicker/usePickerProvider.js +5 -4
  95. package/internals/hooks/usePicker/usePickerValue.js +46 -64
  96. package/internals/hooks/usePicker/usePickerValue.types.d.ts +38 -17
  97. package/internals/hooks/usePicker/usePickerViews.d.ts +15 -4
  98. package/internals/hooks/usePicker/usePickerViews.js +9 -7
  99. package/internals/hooks/useStaticPicker/useStaticPicker.types.d.ts +4 -4
  100. package/internals/index.d.ts +4 -4
  101. package/internals/index.js +1 -1
  102. package/internals/models/props/tabs.d.ts +0 -13
  103. package/internals/models/props/toolbar.d.ts +1 -16
  104. package/models/fields.d.ts +11 -1
  105. package/modern/DatePicker/DatePickerToolbar.js +6 -17
  106. package/modern/DateTimePicker/DateTimePickerTabs.js +6 -13
  107. package/modern/DateTimePicker/DateTimePickerToolbar.js +13 -24
  108. package/modern/DesktopDateTimePicker/DesktopDateTimePickerLayout.js +1 -11
  109. package/modern/MonthCalendar/MonthCalendar.js +31 -11
  110. package/modern/MonthCalendar/{PickersMonth.js → MonthCalendarButton.js} +20 -61
  111. package/modern/MonthCalendar/index.js +1 -2
  112. package/modern/MonthCalendar/monthCalendarClasses.js +1 -1
  113. package/modern/MultiSectionDigitalClock/MultiSectionDigitalClock.js +3 -0
  114. package/modern/PickersActionBar/PickersActionBar.js +12 -13
  115. package/modern/PickersLayout/PickersLayout.js +1 -11
  116. package/modern/PickersLayout/usePickerLayout.js +3 -18
  117. package/modern/PickersSectionList/PickersSectionList.js +21 -16
  118. package/modern/PickersTextField/PickersFilledInput/PickersFilledInput.js +34 -28
  119. package/modern/PickersTextField/PickersInput/PickersInput.js +20 -14
  120. package/modern/PickersTextField/PickersInput/pickersInputClasses.js +1 -1
  121. package/modern/PickersTextField/PickersInputBase/PickersInputBase.js +36 -37
  122. package/modern/PickersTextField/PickersOutlinedInput/Outline.js +13 -10
  123. package/modern/PickersTextField/PickersOutlinedInput/PickersOutlinedInput.js +8 -14
  124. package/modern/PickersTextField/PickersTextField.js +75 -62
  125. package/modern/PickersTextField/usePickerTextFieldOwnerState.js +11 -0
  126. package/modern/TimeClock/Clock.js +9 -6
  127. package/modern/TimeClock/TimeClock.js +21 -4
  128. package/modern/TimePicker/TimePickerToolbar.js +6 -20
  129. package/modern/YearCalendar/YearCalendar.js +46 -13
  130. package/modern/YearCalendar/{PickersYear.js → YearCalendarButton.js} +20 -59
  131. package/modern/YearCalendar/index.js +1 -2
  132. package/modern/YearCalendar/yearCalendarClasses.js +1 -1
  133. package/modern/hooks/index.js +2 -1
  134. package/modern/hooks/usePickerActionsContext.js +16 -0
  135. package/modern/hooks/usePickerContext.js +0 -1
  136. package/modern/index.js +1 -1
  137. package/modern/internals/components/PickerProvider.js +12 -6
  138. package/modern/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js +3 -3
  139. package/modern/internals/components/PickersModalDialog.js +9 -3
  140. package/modern/internals/components/PickersPopper.js +11 -6
  141. package/modern/internals/hooks/useDesktopPicker/useDesktopPicker.js +9 -9
  142. package/modern/internals/hooks/useFieldOwnerState.js +6 -2
  143. package/modern/internals/hooks/useMobilePicker/useMobilePicker.js +8 -7
  144. package/modern/internals/hooks/usePicker/usePicker.js +1 -3
  145. package/modern/internals/hooks/usePicker/usePickerProvider.js +5 -4
  146. package/modern/internals/hooks/usePicker/usePickerValue.js +46 -64
  147. package/modern/internals/hooks/usePicker/usePickerViews.js +9 -7
  148. package/modern/internals/index.js +1 -1
  149. package/node/DatePicker/DatePickerToolbar.js +6 -17
  150. package/node/DateTimePicker/DateTimePickerTabs.js +6 -13
  151. package/node/DateTimePicker/DateTimePickerToolbar.js +14 -25
  152. package/node/DesktopDateTimePicker/DesktopDateTimePickerLayout.js +1 -11
  153. package/node/MonthCalendar/MonthCalendar.js +31 -11
  154. package/node/MonthCalendar/{PickersMonth.js → MonthCalendarButton.js} +20 -61
  155. package/node/MonthCalendar/index.js +1 -8
  156. package/node/MonthCalendar/monthCalendarClasses.js +1 -1
  157. package/node/MultiSectionDigitalClock/MultiSectionDigitalClock.js +3 -0
  158. package/node/PickersActionBar/PickersActionBar.js +12 -13
  159. package/node/PickersLayout/PickersLayout.js +1 -11
  160. package/node/PickersLayout/usePickerLayout.js +3 -18
  161. package/node/PickersSectionList/PickersSectionList.js +21 -16
  162. package/node/PickersTextField/PickersFilledInput/PickersFilledInput.js +34 -28
  163. package/node/PickersTextField/PickersInput/PickersInput.js +20 -14
  164. package/node/PickersTextField/PickersInput/pickersInputClasses.js +1 -1
  165. package/node/PickersTextField/PickersInputBase/PickersInputBase.js +36 -37
  166. package/node/PickersTextField/PickersOutlinedInput/Outline.js +13 -10
  167. package/node/PickersTextField/PickersOutlinedInput/PickersOutlinedInput.js +8 -14
  168. package/node/PickersTextField/PickersTextField.js +75 -62
  169. package/node/PickersTextField/usePickerTextFieldOwnerState.js +18 -0
  170. package/node/TimeClock/Clock.js +9 -6
  171. package/node/TimeClock/TimeClock.js +21 -4
  172. package/node/TimePicker/TimePickerToolbar.js +6 -20
  173. package/node/YearCalendar/YearCalendar.js +45 -12
  174. package/node/YearCalendar/{PickersYear.js → YearCalendarButton.js} +20 -59
  175. package/node/YearCalendar/index.js +1 -8
  176. package/node/YearCalendar/yearCalendarClasses.js +1 -1
  177. package/node/hooks/index.js +8 -1
  178. package/node/hooks/usePickerActionsContext.js +22 -0
  179. package/node/index.js +1 -1
  180. package/node/internals/components/PickerProvider.js +13 -7
  181. package/node/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js +3 -3
  182. package/node/internals/components/PickersModalDialog.js +9 -3
  183. package/node/internals/components/PickersPopper.js +11 -6
  184. package/node/internals/hooks/useDesktopPicker/useDesktopPicker.js +9 -9
  185. package/node/internals/hooks/useFieldOwnerState.js +6 -2
  186. package/node/internals/hooks/useMobilePicker/useMobilePicker.js +8 -7
  187. package/node/internals/hooks/usePicker/usePicker.js +1 -3
  188. package/node/internals/hooks/usePicker/usePickerProvider.js +5 -4
  189. package/node/internals/hooks/usePicker/usePickerValue.js +46 -64
  190. package/node/internals/hooks/usePicker/usePickerViews.js +9 -7
  191. package/node/internals/index.js +2 -2
  192. package/package.json +3 -3
  193. package/themeAugmentation/components.d.ts +0 -8
  194. package/themeAugmentation/overrides.d.ts +2 -4
  195. package/themeAugmentation/props.d.ts +4 -7
  196. package/MonthCalendar/PickersMonth.d.ts +0 -28
  197. package/MonthCalendar/pickersMonthClasses.d.ts +0 -13
  198. package/MonthCalendar/pickersMonthClasses.js +0 -5
  199. package/YearCalendar/PickersYear.d.ts +0 -27
  200. package/YearCalendar/pickersYearClasses.d.ts +0 -13
  201. package/YearCalendar/pickersYearClasses.js +0 -5
  202. package/modern/MonthCalendar/pickersMonthClasses.js +0 -5
  203. package/modern/YearCalendar/pickersYearClasses.js +0 -5
  204. package/node/MonthCalendar/pickersMonthClasses.js +0 -12
  205. package/node/YearCalendar/pickersYearClasses.js +0 -12
@@ -1,47 +1,27 @@
1
1
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
2
2
  import _extends from "@babel/runtime/helpers/esm/extends";
3
- const _excluded = ["autoFocus", "className", "classes", "children", "disabled", "selected", "value", "tabIndex", "onClick", "onKeyDown", "onFocus", "onBlur", "aria-current", "aria-label", "monthsPerRow", "slots", "slotProps"];
3
+ const _excluded = ["autoFocus", "classes", "disabled", "selected", "value", "onClick", "onKeyDown", "onFocus", "onBlur", "slots", "slotProps"];
4
4
  import * as React from 'react';
5
- import clsx from 'clsx';
6
- import { styled, alpha, useThemeProps } from '@mui/material/styles';
5
+ import { styled, alpha } from '@mui/material/styles';
7
6
  import useSlotProps from '@mui/utils/useSlotProps';
8
7
  import composeClasses from '@mui/utils/composeClasses';
9
8
  import useEnhancedEffect from '@mui/utils/useEnhancedEffect';
10
- import { getPickersMonthUtilityClass, pickersMonthClasses } from "./pickersMonthClasses.js";
11
9
  import { usePickerPrivateContext } from "../internals/hooks/usePickerPrivateContext.js";
10
+ import { getMonthCalendarUtilityClass, monthCalendarClasses } from "./monthCalendarClasses.js";
12
11
  import { jsx as _jsx } from "react/jsx-runtime";
13
12
  const useUtilityClasses = (classes, ownerState) => {
14
13
  const slots = {
15
- root: ['root'],
16
- monthButton: ['monthButton', ownerState.isMonthDisabled && 'disabled', ownerState.isMonthSelected && 'selected']
14
+ button: ['button', ownerState.isMonthDisabled && 'disabled', ownerState.isMonthSelected && 'selected']
17
15
  };
18
- return composeClasses(slots, getPickersMonthUtilityClass, classes);
16
+ return composeClasses(slots, getMonthCalendarUtilityClass, classes);
19
17
  };
20
- const PickersMonthRoot = styled('div', {
21
- name: 'MuiPickersMonth',
22
- slot: 'Root',
23
- overridesResolver: (_, styles) => [styles.root]
24
- })({
25
- display: 'flex',
26
- alignItems: 'center',
27
- justifyContent: 'center',
28
- flexBasis: '33.3%',
29
- variants: [{
30
- props: {
31
- monthsPerRow: 4
32
- },
33
- style: {
34
- flexBasis: '25%'
35
- }
36
- }]
37
- });
38
- const MonthCalendarButton = styled('button', {
39
- name: 'MuiPickersMonth',
40
- slot: 'MonthButton',
41
- overridesResolver: (_, styles) => [styles.monthButton, {
42
- [`&.${pickersMonthClasses.disabled}`]: styles.disabled
18
+ const DefaultMonthButton = styled('button', {
19
+ name: 'MuiMonthCalendar',
20
+ slot: 'Button',
21
+ overridesResolver: (_, styles) => [styles.button, {
22
+ [`&.${monthCalendarClasses.disabled}`]: styles.disabled
43
23
  }, {
44
- [`&.${pickersMonthClasses.selected}`]: styles.selected
24
+ [`&.${monthCalendarClasses.selected}`]: styles.selected
45
25
  }]
46
26
  })(({
47
27
  theme
@@ -51,7 +31,6 @@ const MonthCalendarButton = styled('button', {
51
31
  border: 0,
52
32
  outline: 0
53
33
  }, theme.typography.subtitle1, {
54
- margin: '8px 0',
55
34
  height: 36,
56
35
  width: 72,
57
36
  borderRadius: 18,
@@ -66,10 +45,10 @@ const MonthCalendarButton = styled('button', {
66
45
  cursor: 'auto',
67
46
  pointerEvents: 'none'
68
47
  },
69
- [`&.${pickersMonthClasses.disabled}`]: {
48
+ [`&.${monthCalendarClasses.disabled}`]: {
70
49
  color: (theme.vars || theme).palette.text.secondary
71
50
  },
72
- [`&.${pickersMonthClasses.selected}`]: {
51
+ [`&.${monthCalendarClasses.selected}`]: {
73
52
  color: (theme.vars || theme).palette.primary.contrastText,
74
53
  backgroundColor: (theme.vars || theme).palette.primary.main,
75
54
  '&:focus, &:hover': {
@@ -81,29 +60,17 @@ const MonthCalendarButton = styled('button', {
81
60
  /**
82
61
  * @ignore - do not document.
83
62
  */
84
- export const PickersMonth = /*#__PURE__*/React.memo(function PickersMonth(inProps) {
85
- const props = useThemeProps({
86
- props: inProps,
87
- name: 'MuiPickersMonth'
88
- });
63
+ export const MonthCalendarButton = /*#__PURE__*/React.memo(function MonthCalendarButton(props) {
89
64
  const {
90
65
  autoFocus,
91
- className,
92
66
  classes: classesProp,
93
- children,
94
- disabled = false,
95
- selected = false,
67
+ disabled,
68
+ selected,
96
69
  value,
97
- tabIndex,
98
70
  onClick,
99
71
  onKeyDown,
100
72
  onFocus,
101
73
  onBlur,
102
- 'aria-current': ariaCurrent,
103
- 'aria-label': ariaLabel
104
- // We don't want to forward this prop to the root element
105
- ,
106
-
107
74
  slots,
108
75
  slotProps
109
76
  } = props,
@@ -125,32 +92,24 @@ export const PickersMonth = /*#__PURE__*/React.memo(function PickersMonth(inProp
125
92
  ref.current?.focus();
126
93
  }
127
94
  }, [autoFocus]);
128
- const MonthButton = slots?.monthButton ?? MonthCalendarButton;
95
+ const MonthButton = slots?.monthButton ?? DefaultMonthButton;
129
96
  const monthButtonProps = useSlotProps({
130
97
  elementType: MonthButton,
131
98
  externalSlotProps: slotProps?.monthButton,
99
+ externalForwardedProps: other,
132
100
  additionalProps: {
133
- children,
134
101
  disabled,
135
- tabIndex,
136
102
  ref,
137
103
  type: 'button',
138
104
  role: 'radio',
139
- 'aria-current': ariaCurrent,
140
105
  'aria-checked': selected,
141
- 'aria-label': ariaLabel,
142
106
  onClick: event => onClick(event, value),
143
107
  onKeyDown: event => onKeyDown(event, value),
144
108
  onFocus: event => onFocus(event, value),
145
109
  onBlur: event => onBlur(event, value)
146
110
  },
147
111
  ownerState,
148
- className: classes.monthButton
112
+ className: classes.button
149
113
  });
150
- return /*#__PURE__*/_jsx(PickersMonthRoot, _extends({
151
- className: clsx(classes.root, className),
152
- ownerState: ownerState
153
- }, other, {
154
- children: /*#__PURE__*/_jsx(MonthButton, _extends({}, monthButtonProps))
155
- }));
114
+ return /*#__PURE__*/_jsx(MonthButton, _extends({}, monthButtonProps));
156
115
  });
@@ -1,3 +1,2 @@
1
1
  export { MonthCalendar } from "./MonthCalendar.js";
2
- export { monthCalendarClasses, getMonthCalendarUtilityClass } from "./monthCalendarClasses.js";
3
- export { pickersMonthClasses } from "./pickersMonthClasses.js";
2
+ export { monthCalendarClasses, getMonthCalendarUtilityClass } from "./monthCalendarClasses.js";
@@ -2,4 +2,4 @@ import { unstable_generateUtilityClass as generateUtilityClass, unstable_generat
2
2
  export function getMonthCalendarUtilityClass(slot) {
3
3
  return generateUtilityClass('MuiMonthCalendar', slot);
4
4
  }
5
- export const monthCalendarClasses = generateUtilityClasses('MuiMonthCalendar', ['root']);
5
+ export const monthCalendarClasses = generateUtilityClasses('MuiMonthCalendar', ['root', 'button', 'disabled', 'selected']);
@@ -189,6 +189,9 @@ export const MultiSectionDigitalClock = /*#__PURE__*/React.forwardRef(function M
189
189
  {
190
190
  const valueWithMeridiem = convertValueToMeridiem(rawValue, meridiemMode, ampm);
191
191
  const dateWithNewHours = utils.setHours(valueOrReferenceDate, valueWithMeridiem);
192
+ if (utils.getHours(dateWithNewHours) !== valueWithMeridiem) {
193
+ return true;
194
+ }
192
195
  const start = utils.setSeconds(utils.setMinutes(dateWithNewHours, 0), 0);
193
196
  const end = utils.setSeconds(utils.setMinutes(dateWithNewHours, 59), 59);
194
197
  return !containsValidTime({
@@ -2,13 +2,14 @@
2
2
 
3
3
  import _extends from "@babel/runtime/helpers/esm/extends";
4
4
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
5
- const _excluded = ["onAccept", "onClear", "onCancel", "onSetToday", "actions"];
5
+ const _excluded = ["actions"];
6
6
  import * as React from 'react';
7
7
  import PropTypes from 'prop-types';
8
8
  import { styled } from '@mui/material/styles';
9
9
  import Button from '@mui/material/Button';
10
10
  import DialogActions from '@mui/material/DialogActions';
11
11
  import { usePickerTranslations } from "../hooks/usePickerTranslations.js";
12
+ import { usePickerActionsContext } from "../hooks/index.js";
12
13
  import { jsx as _jsx } from "react/jsx-runtime";
13
14
  const PickersActionBarRoot = styled(DialogActions, {
14
15
  name: 'MuiPickersLayout',
@@ -28,14 +29,16 @@ const PickersActionBarRoot = styled(DialogActions, {
28
29
  */
29
30
  function PickersActionBar(props) {
30
31
  const {
31
- onAccept,
32
- onClear,
33
- onCancel,
34
- onSetToday,
35
32
  actions
36
33
  } = props,
37
34
  other = _objectWithoutPropertiesLoose(props, _excluded);
38
35
  const translations = usePickerTranslations();
36
+ const {
37
+ clearValue,
38
+ setValueToToday,
39
+ acceptValueChanges,
40
+ cancelValueChanges
41
+ } = usePickerActionsContext();
39
42
  if (actions == null || actions.length === 0) {
40
43
  return null;
41
44
  }
@@ -43,22 +46,22 @@ function PickersActionBar(props) {
43
46
  switch (actionType) {
44
47
  case 'clear':
45
48
  return /*#__PURE__*/_jsx(Button, {
46
- onClick: onClear,
49
+ onClick: clearValue,
47
50
  children: translations.clearButtonLabel
48
51
  }, actionType);
49
52
  case 'cancel':
50
53
  return /*#__PURE__*/_jsx(Button, {
51
- onClick: onCancel,
54
+ onClick: cancelValueChanges,
52
55
  children: translations.cancelButtonLabel
53
56
  }, actionType);
54
57
  case 'accept':
55
58
  return /*#__PURE__*/_jsx(Button, {
56
- onClick: onAccept,
59
+ onClick: acceptValueChanges,
57
60
  children: translations.okButtonLabel
58
61
  }, actionType);
59
62
  case 'today':
60
63
  return /*#__PURE__*/_jsx(Button, {
61
- onClick: onSetToday,
64
+ onClick: setValueToToday,
62
65
  children: translations.todayButtonLabel
63
66
  }, actionType);
64
67
  default:
@@ -85,10 +88,6 @@ process.env.NODE_ENV !== "production" ? PickersActionBar.propTypes = {
85
88
  * @default false
86
89
  */
87
90
  disableSpacing: PropTypes.bool,
88
- onAccept: PropTypes.func.isRequired,
89
- onCancel: PropTypes.func.isRequired,
90
- onClear: PropTypes.func.isRequired,
91
- onSetToday: PropTypes.func.isRequired,
92
91
  /**
93
92
  * The system prop that allows defining system overrides as well as additional CSS styles.
94
93
  */
@@ -151,16 +151,8 @@ process.env.NODE_ENV !== "production" ? PickersLayout.propTypes = {
151
151
  classes: PropTypes.object,
152
152
  className: PropTypes.string,
153
153
  isValid: PropTypes.func.isRequired,
154
- onAccept: PropTypes.func.isRequired,
155
- onCancel: PropTypes.func.isRequired,
156
154
  onChange: PropTypes.func.isRequired,
157
- onClear: PropTypes.func.isRequired,
158
- onClose: PropTypes.func.isRequired,
159
- onDismiss: PropTypes.func.isRequired,
160
- onOpen: PropTypes.func.isRequired,
161
155
  onSelectShortcut: PropTypes.func.isRequired,
162
- onSetToday: PropTypes.func.isRequired,
163
- onViewChange: PropTypes.func.isRequired,
164
156
  /**
165
157
  * The props used for each component slot.
166
158
  * @default {}
@@ -175,8 +167,6 @@ process.env.NODE_ENV !== "production" ? PickersLayout.propTypes = {
175
167
  * The system prop that allows defining system overrides as well as additional CSS styles.
176
168
  */
177
169
  sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),
178
- value: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.object), PropTypes.object]),
179
- view: PropTypes.oneOf(['day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'year']),
180
- views: PropTypes.arrayOf(PropTypes.oneOf(['day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'year']).isRequired).isRequired
170
+ value: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.object), PropTypes.object])
181
171
  } : void 0;
182
172
  export { PickersLayout };
@@ -35,17 +35,11 @@ const usePickerLayout = props => {
35
35
  } = usePickerPrivateContext();
36
36
  const {
37
37
  variant,
38
- orientation
38
+ orientation,
39
+ view
39
40
  } = usePickerContext();
40
41
  const isRtl = useRtl();
41
42
  const {
42
- onAccept,
43
- onClear,
44
- onCancel,
45
- onSetToday,
46
- view,
47
- views,
48
- onViewChange,
49
43
  value,
50
44
  onChange,
51
45
  onSelectShortcut,
@@ -70,10 +64,6 @@ const usePickerLayout = props => {
70
64
  elementType: ActionBar,
71
65
  externalSlotProps: slotProps?.actionBar,
72
66
  additionalProps: {
73
- onAccept,
74
- onClear,
75
- onCancel,
76
- onSetToday,
77
67
  actions: variant === 'desktop' ? [] : ['cancel', 'accept']
78
68
  },
79
69
  className: classes.actionBar,
@@ -90,10 +80,7 @@ const usePickerLayout = props => {
90
80
  isLandscape: orientation === 'landscape',
91
81
  // Will be removed in a follow up PR?
92
82
  onChange,
93
- value,
94
- view,
95
- onViewChange,
96
- views
83
+ value
97
84
  },
98
85
  className: classes.toolbar,
99
86
  ownerState
@@ -106,8 +93,6 @@ const usePickerLayout = props => {
106
93
  // Tabs
107
94
  const Tabs = slots?.tabs;
108
95
  const tabs = view && Tabs ? /*#__PURE__*/_jsx(Tabs, _extends({
109
- view: view,
110
- onViewChange: onViewChange,
111
96
  className: classes.tabs
112
97
  }, slotProps?.tabs)) : null;
113
98
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
4
4
  import _extends from "@babel/runtime/helpers/esm/extends";
5
- const _excluded = ["slots", "slotProps", "elements", "sectionListRef"];
5
+ const _excluded = ["slots", "slotProps", "elements", "sectionListRef", "classes"];
6
6
  import * as React from 'react';
7
7
  import PropTypes from 'prop-types';
8
8
  import useSlotProps from '@mui/utils/useSlotProps';
@@ -10,6 +10,7 @@ import composeClasses from '@mui/utils/composeClasses';
10
10
  import useForkRef from '@mui/utils/useForkRef';
11
11
  import { styled, useThemeProps } from '@mui/material/styles';
12
12
  import { getPickersSectionListUtilityClass, pickersSectionListClasses } from "./pickersSectionListClasses.js";
13
+ import { usePickerPrivateContext } from "../internals/hooks/usePickerPrivateContext.js";
13
14
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
14
15
  export const PickersSectionListRoot = styled('div', {
15
16
  name: 'MuiPickersSectionList',
@@ -38,10 +39,7 @@ export const PickersSectionListSectionContent = styled('span', {
38
39
  })({
39
40
  outline: 'none'
40
41
  });
41
- const useUtilityClasses = ownerState => {
42
- const {
43
- classes
44
- } = ownerState;
42
+ const useUtilityClasses = classes => {
45
43
  const slots = {
46
44
  root: ['root'],
47
45
  section: ['section'],
@@ -56,13 +54,16 @@ function PickersSection(props) {
56
54
  element,
57
55
  classes
58
56
  } = props;
57
+ const {
58
+ ownerState
59
+ } = usePickerPrivateContext();
59
60
  const Section = slots?.section ?? PickersSectionListSection;
60
61
  const sectionProps = useSlotProps({
61
62
  elementType: Section,
62
63
  externalSlotProps: slotProps?.section,
63
64
  externalForwardedProps: element.container,
64
65
  className: classes.section,
65
- ownerState: {}
66
+ ownerState
66
67
  });
67
68
  const SectionContent = slots?.sectionContent ?? PickersSectionListSectionContent;
68
69
  const sectionContentProps = useSlotProps({
@@ -73,24 +74,24 @@ function PickersSection(props) {
73
74
  suppressContentEditableWarning: true
74
75
  },
75
76
  className: classes.sectionContent,
76
- ownerState: {}
77
+ ownerState
77
78
  });
78
79
  const SectionSeparator = slots?.sectionSeparator ?? PickersSectionListSectionSeparator;
79
80
  const sectionSeparatorBeforeProps = useSlotProps({
80
81
  elementType: SectionSeparator,
81
82
  externalSlotProps: slotProps?.sectionSeparator,
82
83
  externalForwardedProps: element.before,
83
- ownerState: {
84
- position: 'before'
85
- }
84
+ ownerState: _extends({}, ownerState, {
85
+ separatorPosition: 'before'
86
+ })
86
87
  });
87
88
  const sectionSeparatorAfterProps = useSlotProps({
88
89
  elementType: SectionSeparator,
89
90
  externalSlotProps: slotProps?.sectionSeparator,
90
91
  externalForwardedProps: element.after,
91
- ownerState: {
92
- position: 'after'
93
- }
92
+ ownerState: _extends({}, ownerState, {
93
+ separatorPosition: 'after'
94
+ })
94
95
  });
95
96
  return /*#__PURE__*/_jsxs(Section, _extends({}, sectionProps, {
96
97
  children: [/*#__PURE__*/_jsx(SectionSeparator, _extends({}, sectionSeparatorBeforeProps)), /*#__PURE__*/_jsx(SectionContent, _extends({}, sectionContentProps)), /*#__PURE__*/_jsx(SectionSeparator, _extends({}, sectionSeparatorAfterProps))]
@@ -135,10 +136,14 @@ const PickersSectionList = /*#__PURE__*/React.forwardRef(function PickersSection
135
136
  slots,
136
137
  slotProps,
137
138
  elements,
138
- sectionListRef
139
+ sectionListRef,
140
+ classes: classesProp
139
141
  } = props,
140
142
  other = _objectWithoutPropertiesLoose(props, _excluded);
141
- const classes = useUtilityClasses(props);
143
+ const classes = useUtilityClasses(classesProp);
144
+ const {
145
+ ownerState
146
+ } = usePickerPrivateContext();
142
147
  const rootRef = React.useRef(null);
143
148
  const handleRootRef = useForkRef(ref, rootRef);
144
149
  const getRoot = methodName => {
@@ -186,7 +191,7 @@ const PickersSectionList = /*#__PURE__*/React.forwardRef(function PickersSection
186
191
  suppressContentEditableWarning: true
187
192
  },
188
193
  className: classes.root,
189
- ownerState: {}
194
+ ownerState
190
195
  });
191
196
  return /*#__PURE__*/_jsx(Root, _extends({}, rootProps, {
192
197
  children: rootProps.contentEditable ? elements.map(({
@@ -1,9 +1,8 @@
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", "disableUnderline", "ownerState"];
3
+ const _excluded = ["label", "autoFocus", "disableUnderline", "hiddenLabel", "classes"];
4
4
  import * as React from 'react';
5
5
  import PropTypes from 'prop-types';
6
- import { useFormControl } from '@mui/material/FormControl';
7
6
  import { styled, useThemeProps } from '@mui/material/styles';
8
7
  import { shouldForwardProp } from '@mui/system';
9
8
  import { refType } from '@mui/utils';
@@ -11,6 +10,7 @@ import composeClasses from '@mui/utils/composeClasses';
11
10
  import { pickersFilledInputClasses, getPickersFilledInputUtilityClass } from "./pickersFilledInputClasses.js";
12
11
  import { PickersInputBase } from "../PickersInputBase/index.js";
13
12
  import { PickersInputBaseRoot, PickersInputBaseSectionsContainer } from "../PickersInputBase/PickersInputBase.js";
13
+ import { usePickerTextFieldOwnerState } from "../usePickerTextFieldOwnerState.js";
14
14
  import { jsx as _jsx } from "react/jsx-runtime";
15
15
  const PickersFilledInputRoot = styled(PickersInputBaseRoot, {
16
16
  name: 'MuiPickersFilledInput',
@@ -50,7 +50,7 @@ const PickersFilledInputRoot = styled(PickersInputBaseRoot, {
50
50
  // @ts-ignore
51
51
  .filter(key => (theme.vars ?? theme).palette[key].main).map(color => ({
52
52
  props: {
53
- color,
53
+ inputColor: color,
54
54
  disableUnderline: false
55
55
  },
56
56
  style: {
@@ -109,16 +109,16 @@ const PickersFilledInputRoot = styled(PickersInputBaseRoot, {
109
109
  }
110
110
  }
111
111
  }, {
112
- props: ({
113
- startAdornment
114
- }) => !!startAdornment,
112
+ props: {
113
+ hasStartAdornment: true
114
+ },
115
115
  style: {
116
116
  paddingLeft: 12
117
117
  }
118
118
  }, {
119
- props: ({
120
- endAdornment
121
- }) => !!endAdornment,
119
+ props: {
120
+ hasEndAdornment: true
121
+ },
122
122
  style: {
123
123
  paddingRight: 12
124
124
  }
@@ -128,7 +128,8 @@ const PickersFilledInputRoot = styled(PickersInputBaseRoot, {
128
128
  const PickersFilledSectionsContainer = styled(PickersInputBaseSectionsContainer, {
129
129
  name: 'MuiPickersFilledInput',
130
130
  slot: 'sectionsContainer',
131
- overridesResolver: (props, styles) => styles.sectionsContainer
131
+ overridesResolver: (props, styles) => styles.sectionsContainer,
132
+ shouldForwardProp: prop => shouldForwardProp(prop) && prop !== 'hiddenLabel'
132
133
  })({
133
134
  paddingTop: 25,
134
135
  paddingRight: 12,
@@ -136,23 +137,23 @@ const PickersFilledSectionsContainer = styled(PickersInputBaseSectionsContainer,
136
137
  paddingLeft: 12,
137
138
  variants: [{
138
139
  props: {
139
- size: 'small'
140
+ inputSize: 'small'
140
141
  },
141
142
  style: {
142
143
  paddingTop: 21,
143
144
  paddingBottom: 4
144
145
  }
145
146
  }, {
146
- props: ({
147
- startAdornment
148
- }) => !!startAdornment,
147
+ props: {
148
+ hasStartAdornment: true
149
+ },
149
150
  style: {
150
151
  paddingLeft: 0
151
152
  }
152
153
  }, {
153
- props: ({
154
- endAdornment
155
- }) => !!endAdornment,
154
+ props: {
155
+ hasEndAdornment: true
156
+ },
156
157
  style: {
157
158
  paddingRight: 0
158
159
  }
@@ -167,7 +168,7 @@ const PickersFilledSectionsContainer = styled(PickersInputBaseSectionsContainer,
167
168
  }, {
168
169
  props: {
169
170
  hiddenLabel: true,
170
- size: 'small'
171
+ inputSize: 'small'
171
172
  },
172
173
  style: {
173
174
  paddingTop: 8,
@@ -175,18 +176,18 @@ const PickersFilledSectionsContainer = styled(PickersInputBaseSectionsContainer,
175
176
  }
176
177
  }]
177
178
  });
178
- const useUtilityClasses = ownerState => {
179
+ const useUtilityClasses = (classes, ownerState) => {
179
180
  const {
180
- classes,
181
- disableUnderline
181
+ inputHasUnderline
182
182
  } = ownerState;
183
183
  const slots = {
184
- root: ['root', !disableUnderline && 'underline'],
184
+ root: ['root', inputHasUnderline && 'underline'],
185
185
  input: ['input']
186
186
  };
187
187
  const composedClasses = composeClasses(slots, getPickersFilledInputUtilityClass, classes);
188
188
  return _extends({}, classes, composedClasses);
189
189
  };
190
+
190
191
  /**
191
192
  * @ignore - internal component.
192
193
  */
@@ -198,14 +199,15 @@ const PickersFilledInput = /*#__PURE__*/React.forwardRef(function PickersFilledI
198
199
  const {
199
200
  label,
200
201
  disableUnderline = false,
201
- ownerState: ownerStateProp
202
+ hiddenLabel = false,
203
+ classes: classesProp
202
204
  } = props,
203
205
  other = _objectWithoutPropertiesLoose(props, _excluded);
204
- const muiFormControl = useFormControl();
205
- const ownerState = _extends({}, props, ownerStateProp, muiFormControl, {
206
- color: muiFormControl?.color || 'primary'
206
+ const pickerTextFieldOwnerState = usePickerTextFieldOwnerState();
207
+ const ownerState = _extends({}, pickerTextFieldOwnerState, {
208
+ inputHasUnderline: !disableUnderline
207
209
  });
208
- const classes = useUtilityClasses(ownerState);
210
+ const classes = useUtilityClasses(classesProp, ownerState);
209
211
  return /*#__PURE__*/_jsx(PickersInputBase, _extends({
210
212
  slots: {
211
213
  root: PickersFilledInputRoot,
@@ -214,12 +216,16 @@ const PickersFilledInput = /*#__PURE__*/React.forwardRef(function PickersFilledI
214
216
  slotProps: {
215
217
  root: {
216
218
  disableUnderline
219
+ },
220
+ input: {
221
+ hiddenLabel
217
222
  }
218
223
  }
219
224
  }, other, {
220
225
  label: label,
221
226
  classes: classes,
222
- ref: ref
227
+ ref: ref,
228
+ ownerState: ownerState
223
229
  }));
224
230
  });
225
231
  process.env.NODE_ENV !== "production" ? PickersFilledInput.propTypes = {
@@ -1,20 +1,22 @@
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", "disableUnderline", "ownerState"];
3
+ const _excluded = ["label", "autoFocus", "disableUnderline", "ownerState", "classes"];
4
4
  import * as React from 'react';
5
5
  import PropTypes from 'prop-types';
6
- import { useFormControl } from '@mui/material/FormControl';
7
6
  import { styled, useThemeProps } from '@mui/material/styles';
7
+ import { shouldForwardProp } from '@mui/system/createStyled';
8
8
  import { refType } from '@mui/utils';
9
9
  import composeClasses from '@mui/utils/composeClasses';
10
10
  import { pickersInputClasses, getPickersInputUtilityClass } from "./pickersInputClasses.js";
11
11
  import { PickersInputBase } from "../PickersInputBase/index.js";
12
12
  import { PickersInputBaseRoot } from "../PickersInputBase/PickersInputBase.js";
13
+ import { usePickerTextFieldOwnerState } from "../usePickerTextFieldOwnerState.js";
13
14
  import { jsx as _jsx } from "react/jsx-runtime";
14
15
  const PickersInputRoot = styled(PickersInputBaseRoot, {
15
16
  name: 'MuiPickersInput',
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
21
  theme
20
22
  }) => {
@@ -31,7 +33,7 @@ const PickersInputRoot = styled(PickersInputBaseRoot, {
31
33
  // @ts-ignore
32
34
  .filter(key => (theme.vars ?? theme).palette[key].main).map(color => ({
33
35
  props: {
34
- color
36
+ inputColor: color
35
37
  },
36
38
  style: {
37
39
  '&::after': {
@@ -96,18 +98,18 @@ const PickersInputRoot = styled(PickersInputBaseRoot, {
96
98
  }]
97
99
  };
98
100
  });
99
- const useUtilityClasses = ownerState => {
101
+ const useUtilityClasses = (classes, ownerState) => {
100
102
  const {
101
- classes,
102
- disableUnderline
103
+ inputHasUnderline
103
104
  } = ownerState;
104
105
  const slots = {
105
- root: ['root', !disableUnderline && 'underline'],
106
+ root: ['root', !inputHasUnderline && 'underline'],
106
107
  input: ['input']
107
108
  };
108
109
  const composedClasses = composeClasses(slots, getPickersInputUtilityClass, classes);
109
110
  return _extends({}, classes, composedClasses);
110
111
  };
112
+
111
113
  /**
112
114
  * @ignore - internal component.
113
115
  */
@@ -119,18 +121,22 @@ const PickersInput = /*#__PURE__*/React.forwardRef(function PickersInput(inProps
119
121
  const {
120
122
  label,
121
123
  disableUnderline = false,
122
- ownerState: ownerStateProp
124
+ classes: classesProp
123
125
  } = props,
124
126
  other = _objectWithoutPropertiesLoose(props, _excluded);
125
- const muiFormControl = useFormControl();
126
- const ownerState = _extends({}, props, ownerStateProp, muiFormControl, {
127
- disableUnderline,
128
- color: muiFormControl?.color || 'primary'
127
+ const pickerTextFieldOwnerState = usePickerTextFieldOwnerState();
128
+ const ownerState = _extends({}, pickerTextFieldOwnerState, {
129
+ inputHasUnderline: !disableUnderline
129
130
  });
130
- const classes = useUtilityClasses(ownerState);
131
+ const classes = useUtilityClasses(classesProp, ownerState);
131
132
  return /*#__PURE__*/_jsx(PickersInputBase, _extends({
132
133
  slots: {
133
134
  root: PickersInputRoot
135
+ },
136
+ slotProps: {
137
+ root: {
138
+ disableUnderline
139
+ }
134
140
  }
135
141
  }, other, {
136
142
  label: label,