@mui/x-date-pickers 8.0.0-alpha.1 → 8.0.0-alpha.2

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 (150) hide show
  1. package/AdapterMoment/AdapterMoment.js +10 -0
  2. package/CHANGELOG.md +228 -7
  3. package/DateCalendar/DateCalendar.types.d.ts +2 -1
  4. package/DateCalendar/PickersFadeTransitionGroup.js +4 -6
  5. package/DateCalendar/PickersSlideTransition.js +12 -5
  6. package/DateCalendar/useCalendarState.d.ts +6 -4
  7. package/DateField/DateField.js +5 -4
  8. package/DateField/DateField.types.d.ts +10 -9
  9. package/DatePicker/DatePicker.types.d.ts +3 -3
  10. package/DatePicker/DatePickerToolbar.d.ts +3 -2
  11. package/DatePicker/shared.d.ts +6 -5
  12. package/DateTimeField/DateTimeField.js +5 -4
  13. package/DateTimeField/DateTimeField.types.d.ts +10 -10
  14. package/DateTimePicker/DateTimePicker.types.d.ts +3 -3
  15. package/DateTimePicker/DateTimePickerTabs.js +8 -6
  16. package/DateTimePicker/DateTimePickerToolbar.d.ts +2 -3
  17. package/DateTimePicker/shared.d.ts +6 -6
  18. package/DayCalendarSkeleton/DayCalendarSkeleton.js +10 -19
  19. package/DesktopDateTimePicker/DesktopDateTimePickerLayout.d.ts +2 -1
  20. package/DesktopDateTimePicker/DesktopDateTimePickerLayout.js +10 -21
  21. package/MultiSectionDigitalClock/MultiSectionDigitalClock.types.d.ts +6 -6
  22. package/MultiSectionDigitalClock/MultiSectionDigitalClockSection.d.ts +4 -4
  23. package/PickersCalendarHeader/PickersCalendarHeader.js +8 -7
  24. package/PickersCalendarHeader/PickersCalendarHeader.types.d.ts +3 -4
  25. package/PickersLayout/PickersLayout.d.ts +7 -5
  26. package/PickersLayout/PickersLayout.js +22 -27
  27. package/PickersLayout/PickersLayout.types.d.ts +14 -15
  28. package/PickersLayout/usePickerLayout.d.ts +5 -4
  29. package/PickersLayout/usePickerLayout.js +19 -12
  30. package/PickersShortcuts/PickersShortcuts.d.ts +7 -6
  31. package/README.md +7 -4
  32. package/TimeField/TimeField.js +5 -4
  33. package/TimeField/TimeField.types.d.ts +10 -10
  34. package/TimePicker/TimePicker.types.d.ts +3 -3
  35. package/TimePicker/TimePickerToolbar.d.ts +2 -3
  36. package/TimePicker/shared.d.ts +6 -6
  37. package/hooks/useParsedFormat.d.ts +2 -2
  38. package/hooks/useParsedFormat.js +1 -1
  39. package/index.js +1 -1
  40. package/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js +11 -10
  41. package/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.types.d.ts +11 -8
  42. package/internals/components/PickersToolbar.d.ts +3 -3
  43. package/internals/hooks/useClockReferenceDate.d.ts +2 -1
  44. package/internals/hooks/useDesktopPicker/useDesktopPicker.types.d.ts +14 -14
  45. package/internals/hooks/useField/useField.d.ts +3 -3
  46. package/internals/hooks/useField/useField.types.d.ts +45 -45
  47. package/internals/hooks/useField/useField.utils.d.ts +4 -3
  48. package/internals/hooks/useField/useFieldCharacterEditing.d.ts +6 -5
  49. package/internals/hooks/useField/useFieldState.d.ts +9 -8
  50. package/internals/hooks/useField/useFieldState.js +0 -1
  51. package/internals/hooks/useField/useFieldV6TextField.d.ts +4 -3
  52. package/internals/hooks/useFieldOwnerState.d.ts +6 -0
  53. package/internals/hooks/useFieldOwnerState.js +12 -0
  54. package/internals/hooks/useMobilePicker/useMobilePicker.types.d.ts +11 -11
  55. package/internals/hooks/usePicker/usePicker.d.ts +3 -3
  56. package/internals/hooks/usePicker/usePicker.js +2 -8
  57. package/internals/hooks/usePicker/usePicker.types.d.ts +7 -7
  58. package/internals/hooks/usePicker/usePickerProvider.d.ts +4 -5
  59. package/internals/hooks/usePicker/usePickerValue.d.ts +3 -2
  60. package/internals/hooks/usePicker/usePickerValue.js +0 -1
  61. package/internals/hooks/usePicker/usePickerValue.types.d.ts +25 -24
  62. package/internals/hooks/usePicker/usePickerViews.d.ts +10 -10
  63. package/internals/hooks/useStaticPicker/useStaticPicker.types.d.ts +5 -6
  64. package/internals/hooks/useValueWithTimezone.d.ts +5 -4
  65. package/internals/hooks/useViews.d.ts +5 -5
  66. package/internals/index.d.ts +4 -2
  67. package/internals/index.js +1 -0
  68. package/internals/models/fields.d.ts +6 -1
  69. package/internals/models/pickers.d.ts +1 -0
  70. package/internals/models/pickers.js +1 -0
  71. package/internals/models/props/basePickerProps.d.ts +4 -3
  72. package/internals/models/props/time.d.ts +2 -1
  73. package/internals/models/props/toolbar.d.ts +2 -1
  74. package/internals/models/value.d.ts +9 -0
  75. package/internals/utils/date-utils.d.ts +1 -1
  76. package/internals/utils/valueManagers.d.ts +4 -3
  77. package/locales/nlNL.js +7 -7
  78. package/models/adapters.d.ts +4 -4
  79. package/models/fields.d.ts +19 -5
  80. package/models/validation.d.ts +2 -1
  81. package/modern/AdapterMoment/AdapterMoment.js +10 -0
  82. package/modern/DateCalendar/PickersFadeTransitionGroup.js +4 -6
  83. package/modern/DateCalendar/PickersSlideTransition.js +12 -5
  84. package/modern/DateField/DateField.js +5 -4
  85. package/modern/DateTimeField/DateTimeField.js +5 -4
  86. package/modern/DateTimePicker/DateTimePickerTabs.js +8 -6
  87. package/modern/DayCalendarSkeleton/DayCalendarSkeleton.js +10 -19
  88. package/modern/DesktopDateTimePicker/DesktopDateTimePickerLayout.js +10 -21
  89. package/modern/PickersCalendarHeader/PickersCalendarHeader.js +8 -7
  90. package/modern/PickersLayout/PickersLayout.js +22 -27
  91. package/modern/PickersLayout/usePickerLayout.js +19 -12
  92. package/modern/TimeField/TimeField.js +5 -4
  93. package/modern/hooks/useParsedFormat.js +1 -1
  94. package/modern/index.js +1 -1
  95. package/modern/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js +11 -10
  96. package/modern/internals/hooks/useField/useFieldState.js +0 -1
  97. package/modern/internals/hooks/useFieldOwnerState.js +12 -0
  98. package/modern/internals/hooks/usePicker/usePicker.js +2 -8
  99. package/modern/internals/hooks/usePicker/usePickerValue.js +0 -1
  100. package/modern/internals/index.js +1 -0
  101. package/modern/internals/models/pickers.js +1 -0
  102. package/modern/locales/nlNL.js +7 -7
  103. package/modern/validation/useValidation.js +1 -1
  104. package/modern/validation/validateDate.js +8 -0
  105. package/modern/validation/validateDateTime.js +8 -0
  106. package/modern/validation/validateTime.js +8 -0
  107. package/node/AdapterMoment/AdapterMoment.js +10 -0
  108. package/node/DateCalendar/PickersFadeTransitionGroup.js +4 -6
  109. package/node/DateCalendar/PickersSlideTransition.js +12 -5
  110. package/node/DateField/DateField.js +5 -4
  111. package/node/DateTimeField/DateTimeField.js +5 -4
  112. package/node/DateTimePicker/DateTimePickerTabs.js +8 -6
  113. package/node/DayCalendarSkeleton/DayCalendarSkeleton.js +10 -19
  114. package/node/DesktopDateTimePicker/DesktopDateTimePickerLayout.js +11 -22
  115. package/node/PickersCalendarHeader/PickersCalendarHeader.js +8 -7
  116. package/node/PickersLayout/PickersLayout.js +22 -27
  117. package/node/PickersLayout/usePickerLayout.js +19 -12
  118. package/node/TimeField/TimeField.js +5 -4
  119. package/node/hooks/useParsedFormat.js +1 -1
  120. package/node/index.js +1 -1
  121. package/node/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js +11 -10
  122. package/node/internals/hooks/useField/useFieldState.js +0 -1
  123. package/node/internals/hooks/useFieldOwnerState.js +20 -0
  124. package/node/internals/hooks/usePicker/usePicker.js +3 -8
  125. package/node/internals/index.js +7 -0
  126. package/node/internals/models/pickers.js +5 -0
  127. package/node/locales/nlNL.js +7 -7
  128. package/node/validation/useValidation.js +1 -1
  129. package/node/validation/validateDate.js +8 -0
  130. package/node/validation/validateDateTime.js +8 -0
  131. package/node/validation/validateTime.js +8 -0
  132. package/package.json +2 -2
  133. package/themeAugmentation/overrides.d.ts +1 -1
  134. package/themeAugmentation/props.d.ts +3 -2
  135. package/validation/useValidation.d.ts +7 -6
  136. package/validation/useValidation.js +1 -1
  137. package/validation/validateDate.d.ts +12 -3
  138. package/validation/validateDate.js +8 -0
  139. package/validation/validateDateTime.d.ts +12 -4
  140. package/validation/validateDateTime.js +8 -0
  141. package/validation/validateTime.d.ts +12 -3
  142. package/validation/validateTime.js +8 -0
  143. package/internals/hooks/useIsLandscape.d.ts +0 -4
  144. package/internals/hooks/useIsLandscape.js +0 -35
  145. package/internals/hooks/usePicker/usePickerLayoutProps.d.ts +0 -32
  146. package/internals/hooks/usePicker/usePickerLayoutProps.js +0 -31
  147. package/modern/internals/hooks/useIsLandscape.js +0 -35
  148. package/modern/internals/hooks/usePicker/usePickerLayoutProps.js +0 -31
  149. package/node/internals/hooks/useIsLandscape.js +0 -43
  150. package/node/internals/hooks/usePicker/usePickerLayoutProps.js +0 -38
@@ -1,41 +1,39 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
8
  exports.DesktopDateTimePickerLayout = void 0;
9
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
9
  var React = _interopRequireWildcard(require("react"));
11
10
  var _propTypes = _interopRequireDefault(require("prop-types"));
12
11
  var _clsx = _interopRequireDefault(require("clsx"));
13
- var _RtlProvider = require("@mui/system/RtlProvider");
14
12
  var _Divider = _interopRequireDefault(require("@mui/material/Divider"));
15
13
  var _PickersLayout = require("../PickersLayout");
14
+ var _usePickerContext = require("../hooks/usePickerContext");
16
15
  var _jsxRuntime = require("react/jsx-runtime");
17
16
  /**
18
17
  * @ignore - internal component.
19
18
  */
20
19
  const DesktopDateTimePickerLayout = exports.DesktopDateTimePickerLayout = /*#__PURE__*/React.forwardRef(function DesktopDateTimePickerLayout(props, ref) {
21
- const isRtl = (0, _RtlProvider.useRtl)();
22
20
  const {
23
21
  toolbar,
24
22
  tabs,
25
23
  content,
26
24
  actionBar,
27
- shortcuts
25
+ shortcuts,
26
+ ownerState
28
27
  } = (0, _PickersLayout.usePickerLayout)(props);
28
+ const {
29
+ orientation
30
+ } = (0, _usePickerContext.usePickerContext)();
29
31
  const {
30
32
  sx,
31
33
  className,
32
- isLandscape,
33
34
  classes
34
35
  } = props;
35
36
  const isActionBarVisible = actionBar && (actionBar.props.actions?.length ?? 0) > 0;
36
- const ownerState = (0, _extends2.default)({}, props, {
37
- isRtl
38
- });
39
37
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_PickersLayout.PickersLayoutRoot, {
40
38
  ref: ref,
41
39
  className: (0, _clsx.default)(_PickersLayout.pickersLayoutClasses.root, classes?.root, className),
@@ -49,8 +47,9 @@ const DesktopDateTimePickerLayout = exports.DesktopDateTimePickerLayout = /*#__P
49
47
  }
50
48
  }, ...(Array.isArray(sx) ? sx : [sx])],
51
49
  ownerState: ownerState,
52
- children: [isLandscape ? shortcuts : toolbar, isLandscape ? toolbar : shortcuts, /*#__PURE__*/(0, _jsxRuntime.jsxs)(_PickersLayout.PickersLayoutContentWrapper, {
50
+ children: [orientation === 'landscape' ? shortcuts : toolbar, orientation === 'landscape' ? toolbar : shortcuts, /*#__PURE__*/(0, _jsxRuntime.jsxs)(_PickersLayout.PickersLayoutContentWrapper, {
53
51
  className: (0, _clsx.default)(_PickersLayout.pickersLayoutClasses.contentWrapper, classes?.contentWrapper),
52
+ ownerState: ownerState,
54
53
  sx: {
55
54
  display: 'grid'
56
55
  },
@@ -74,11 +73,6 @@ process.env.NODE_ENV !== "production" ? DesktopDateTimePickerLayout.propTypes =
74
73
  */
75
74
  classes: _propTypes.default.object,
76
75
  className: _propTypes.default.string,
77
- isLandscape: _propTypes.default.bool.isRequired,
78
- /**
79
- * `true` if the application is in right-to-left direction.
80
- */
81
- isRtl: _propTypes.default.bool.isRequired,
82
76
  isValid: _propTypes.default.func.isRequired,
83
77
  onAccept: _propTypes.default.func.isRequired,
84
78
  onCancel: _propTypes.default.func.isRequired,
@@ -90,10 +84,6 @@ process.env.NODE_ENV !== "production" ? DesktopDateTimePickerLayout.propTypes =
90
84
  onSelectShortcut: _propTypes.default.func.isRequired,
91
85
  onSetToday: _propTypes.default.func.isRequired,
92
86
  onViewChange: _propTypes.default.func.isRequired,
93
- /**
94
- * Force rendering in particular orientation.
95
- */
96
- orientation: _propTypes.default.oneOf(['landscape', 'portrait']),
97
87
  /**
98
88
  * The props used for each component slot.
99
89
  * @default {}
@@ -108,8 +98,7 @@ process.env.NODE_ENV !== "production" ? DesktopDateTimePickerLayout.propTypes =
108
98
  * The system prop that allows defining system overrides as well as additional CSS styles.
109
99
  */
110
100
  sx: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object, _propTypes.default.bool])), _propTypes.default.func, _propTypes.default.object]),
111
- value: _propTypes.default.any,
101
+ value: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.object), _propTypes.default.object]),
112
102
  view: _propTypes.default.oneOf(['day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'year']),
113
- views: _propTypes.default.arrayOf(_propTypes.default.oneOf(['day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'year']).isRequired).isRequired,
114
- wrapperVariant: _propTypes.default.oneOf(['desktop', 'mobile'])
103
+ views: _propTypes.default.arrayOf(_propTypes.default.oneOf(['day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'year']).isRequired).isRequired
115
104
  } : void 0;
@@ -24,13 +24,11 @@ var _icons = require("../icons");
24
24
  var _PickersArrowSwitcher = require("../internals/components/PickersArrowSwitcher");
25
25
  var _dateHelpersHooks = require("../internals/hooks/date-helpers-hooks");
26
26
  var _pickersCalendarHeaderClasses = require("./pickersCalendarHeaderClasses");
27
+ var _usePickerPrivateContext = require("../internals/hooks/usePickerPrivateContext");
27
28
  var _jsxRuntime = require("react/jsx-runtime");
28
- const _excluded = ["slots", "slotProps", "currentMonth", "disabled", "disableFuture", "disablePast", "maxDate", "minDate", "onMonthChange", "onViewChange", "view", "reduceAnimations", "views", "labelId", "className", "timezone", "format"],
29
+ const _excluded = ["slots", "slotProps", "currentMonth", "disabled", "disableFuture", "disablePast", "maxDate", "minDate", "onMonthChange", "onViewChange", "view", "reduceAnimations", "views", "labelId", "className", "classes", "timezone", "format"],
29
30
  _excluded2 = ["ownerState"];
30
- const useUtilityClasses = ownerState => {
31
- const {
32
- classes
33
- } = ownerState;
31
+ const useUtilityClasses = classes => {
34
32
  const slots = {
35
33
  root: ['root'],
36
34
  labelContainer: ['labelContainer'],
@@ -139,12 +137,15 @@ const PickersCalendarHeader = exports.PickersCalendarHeader = /*#__PURE__*/React
139
137
  views,
140
138
  labelId,
141
139
  className,
140
+ classes: classesProp,
142
141
  timezone,
143
142
  format = `${utils.formats.month} ${utils.formats.year}`
144
143
  } = props,
145
144
  other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
146
- const ownerState = props;
147
- const classes = useUtilityClasses(props);
145
+ const {
146
+ ownerState
147
+ } = (0, _usePickerPrivateContext.usePickerPrivateContext)();
148
+ const classes = useUtilityClasses(classesProp);
148
149
  const SwitchViewButton = slots?.switchViewButton ?? PickersCalendarHeaderSwitchViewButton;
149
150
  const switchViewButtonProps = (0, _useSlotProps2.default)({
150
151
  elementType: SwitchViewButton,
@@ -14,14 +14,14 @@ var _styles = require("@mui/material/styles");
14
14
  var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
15
15
  var _pickersLayoutClasses = require("./pickersLayoutClasses");
16
16
  var _usePickerLayout = _interopRequireDefault(require("./usePickerLayout"));
17
+ var _usePickerContext = require("../hooks/usePickerContext");
17
18
  var _jsxRuntime = require("react/jsx-runtime");
18
- const useUtilityClasses = ownerState => {
19
+ const useUtilityClasses = (classes, ownerState) => {
19
20
  const {
20
- isLandscape,
21
- classes
21
+ pickerOrientation
22
22
  } = ownerState;
23
23
  const slots = {
24
- root: ['root', isLandscape && 'landscape'],
24
+ root: ['root', pickerOrientation === 'landscape' && 'landscape'],
25
25
  contentWrapper: ['contentWrapper']
26
26
  };
27
27
  return (0, _composeClasses.default)(slots, _pickersLayoutClasses.getPickersLayoutUtilityClass, classes);
@@ -40,7 +40,7 @@ const PickersLayoutRoot = exports.PickersLayoutRoot = (0, _styles.styled)('div',
40
40
  },
41
41
  variants: [{
42
42
  props: {
43
- isLandscape: true
43
+ pickerOrientation: 'landscape'
44
44
  },
45
45
  style: {
46
46
  [`& .${_pickersLayoutClasses.pickersLayoutClasses.toolbar}`]: {
@@ -54,7 +54,7 @@ const PickersLayoutRoot = exports.PickersLayoutRoot = (0, _styles.styled)('div',
54
54
  }
55
55
  }, {
56
56
  props: {
57
- isLandscape: true,
57
+ pickerOrientation: 'landscape',
58
58
  isRtl: true
59
59
  },
60
60
  style: {
@@ -64,7 +64,7 @@ const PickersLayoutRoot = exports.PickersLayoutRoot = (0, _styles.styled)('div',
64
64
  }
65
65
  }, {
66
66
  props: {
67
- isLandscape: false
67
+ pickerOrientation: 'portrait'
68
68
  },
69
69
  style: {
70
70
  [`& .${_pickersLayoutClasses.pickersLayoutClasses.toolbar}`]: {
@@ -78,7 +78,7 @@ const PickersLayoutRoot = exports.PickersLayoutRoot = (0, _styles.styled)('div',
78
78
  }
79
79
  }, {
80
80
  props: {
81
- isLandscape: false,
81
+ pickerOrientation: 'portrait',
82
82
  isRtl: true
83
83
  },
84
84
  style: {
@@ -117,23 +117,28 @@ const PickersLayout = exports.PickersLayout = /*#__PURE__*/React.forwardRef(func
117
117
  content,
118
118
  tabs,
119
119
  actionBar,
120
- shortcuts
120
+ shortcuts,
121
+ ownerState
121
122
  } = (0, _usePickerLayout.default)(props);
123
+ const {
124
+ orientation,
125
+ variant
126
+ } = (0, _usePickerContext.usePickerContext)();
122
127
  const {
123
128
  sx,
124
129
  className,
125
- isLandscape,
126
- wrapperVariant
130
+ classes: classesProp
127
131
  } = props;
128
- const classes = useUtilityClasses(props);
132
+ const classes = useUtilityClasses(classesProp, ownerState);
129
133
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(PickersLayoutRoot, {
130
134
  ref: ref,
131
135
  sx: sx,
132
136
  className: (0, _clsx.default)(classes.root, className),
133
- ownerState: props,
134
- children: [isLandscape ? shortcuts : toolbar, isLandscape ? toolbar : shortcuts, /*#__PURE__*/(0, _jsxRuntime.jsx)(PickersLayoutContentWrapper, {
137
+ ownerState: ownerState,
138
+ children: [orientation === 'landscape' ? shortcuts : toolbar, orientation === 'landscape' ? toolbar : shortcuts, /*#__PURE__*/(0, _jsxRuntime.jsx)(PickersLayoutContentWrapper, {
135
139
  className: classes.contentWrapper,
136
- children: wrapperVariant === 'desktop' ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(React.Fragment, {
140
+ ownerState: ownerState,
141
+ children: variant === 'desktop' ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(React.Fragment, {
137
142
  children: [content, tabs]
138
143
  }) : /*#__PURE__*/(0, _jsxRuntime.jsxs)(React.Fragment, {
139
144
  children: [tabs, content]
@@ -152,11 +157,6 @@ process.env.NODE_ENV !== "production" ? PickersLayout.propTypes = {
152
157
  */
153
158
  classes: _propTypes.default.object,
154
159
  className: _propTypes.default.string,
155
- isLandscape: _propTypes.default.bool.isRequired,
156
- /**
157
- * `true` if the application is in right-to-left direction.
158
- */
159
- isRtl: _propTypes.default.bool.isRequired,
160
160
  isValid: _propTypes.default.func.isRequired,
161
161
  onAccept: _propTypes.default.func.isRequired,
162
162
  onCancel: _propTypes.default.func.isRequired,
@@ -168,10 +168,6 @@ process.env.NODE_ENV !== "production" ? PickersLayout.propTypes = {
168
168
  onSelectShortcut: _propTypes.default.func.isRequired,
169
169
  onSetToday: _propTypes.default.func.isRequired,
170
170
  onViewChange: _propTypes.default.func.isRequired,
171
- /**
172
- * Force rendering in particular orientation.
173
- */
174
- orientation: _propTypes.default.oneOf(['landscape', 'portrait']),
175
171
  /**
176
172
  * The props used for each component slot.
177
173
  * @default {}
@@ -186,8 +182,7 @@ process.env.NODE_ENV !== "production" ? PickersLayout.propTypes = {
186
182
  * The system prop that allows defining system overrides as well as additional CSS styles.
187
183
  */
188
184
  sx: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object, _propTypes.default.bool])), _propTypes.default.func, _propTypes.default.object]),
189
- value: _propTypes.default.any,
185
+ value: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.object), _propTypes.default.object]),
190
186
  view: _propTypes.default.oneOf(['day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'year']),
191
- views: _propTypes.default.arrayOf(_propTypes.default.oneOf(['day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'year']).isRequired).isRequired,
192
- wrapperVariant: _propTypes.default.oneOf(['desktop', 'mobile'])
187
+ views: _propTypes.default.arrayOf(_propTypes.default.oneOf(['day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'year']).isRequired).isRequired
193
188
  } : void 0;
@@ -11,20 +11,22 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
11
11
  var React = _interopRequireWildcard(require("react"));
12
12
  var _useSlotProps = _interopRequireDefault(require("@mui/utils/useSlotProps"));
13
13
  var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
14
+ var _RtlProvider = require("@mui/system/RtlProvider");
14
15
  var _PickersActionBar = require("../PickersActionBar");
15
16
  var _pickersLayoutClasses = require("./pickersLayoutClasses");
16
17
  var _PickersShortcuts = require("../PickersShortcuts");
17
18
  var _usePickerPrivateContext = require("../internals/hooks/usePickerPrivateContext");
19
+ var _hooks = require("../hooks");
18
20
  var _jsxRuntime = require("react/jsx-runtime");
19
21
  function toolbarHasView(toolbarProps) {
20
22
  return toolbarProps.view !== null;
21
23
  }
22
24
  const useUtilityClasses = (classes, ownerState) => {
23
25
  const {
24
- isLandscape
26
+ pickerOrientation
25
27
  } = ownerState;
26
28
  const slots = {
27
- root: ['root', isLandscape && 'landscape'],
29
+ root: ['root', pickerOrientation === 'landscape' && 'landscape'],
28
30
  contentWrapper: ['contentWrapper'],
29
31
  toolbar: ['toolbar'],
30
32
  actionBar: ['actionBar'],
@@ -36,10 +38,14 @@ const useUtilityClasses = (classes, ownerState) => {
36
38
  };
37
39
  const usePickerLayout = props => {
38
40
  const {
39
- ownerState: pickersOwnerState
41
+ ownerState: pickerOwnerState
40
42
  } = (0, _usePickerPrivateContext.usePickerPrivateContext)();
41
43
  const {
42
- wrapperVariant,
44
+ variant,
45
+ orientation
46
+ } = (0, _hooks.usePickerContext)();
47
+ const isRtl = (0, _RtlProvider.useRtl)();
48
+ const {
43
49
  onAccept,
44
50
  onClear,
45
51
  onCancel,
@@ -51,7 +57,6 @@ const usePickerLayout = props => {
51
57
  onChange,
52
58
  onSelectShortcut,
53
59
  isValid,
54
- isLandscape,
55
60
  children,
56
61
  slots,
57
62
  slotProps,
@@ -61,9 +66,8 @@ const usePickerLayout = props => {
61
66
  // - For pickers value: PickerValidDate | null
62
67
  // - For range pickers value: [PickerValidDate | null, PickerValidDate | null]
63
68
  } = props;
64
- const ownerState = (0, _extends2.default)({}, pickersOwnerState, {
65
- wrapperVariant,
66
- isLandscape
69
+ const ownerState = (0, _extends2.default)({}, pickerOwnerState, {
70
+ isRtl
67
71
  });
68
72
  const classes = useUtilityClasses(classesProp, ownerState);
69
73
 
@@ -77,7 +81,7 @@ const usePickerLayout = props => {
77
81
  onClear,
78
82
  onCancel,
79
83
  onSetToday,
80
- actions: wrapperVariant === 'desktop' ? [] : ['cancel', 'accept']
84
+ actions: variant === 'desktop' ? [] : ['cancel', 'accept']
81
85
  },
82
86
  className: classes.actionBar,
83
87
  ownerState
@@ -90,7 +94,8 @@ const usePickerLayout = props => {
90
94
  elementType: Toolbar,
91
95
  externalSlotProps: slotProps?.toolbar,
92
96
  additionalProps: {
93
- isLandscape,
97
+ isLandscape: orientation === 'landscape',
98
+ // Will be removed in a follow up PR?
94
99
  onChange,
95
100
  value,
96
101
  view,
@@ -120,7 +125,8 @@ const usePickerLayout = props => {
120
125
  externalSlotProps: slotProps?.shortcuts,
121
126
  additionalProps: {
122
127
  isValid,
123
- isLandscape,
128
+ isLandscape: orientation === 'landscape',
129
+ // Will be removed in a follow up PR?
124
130
  onChange: onSelectShortcut
125
131
  },
126
132
  className: classes.shortcuts,
@@ -132,7 +138,8 @@ const usePickerLayout = props => {
132
138
  content,
133
139
  tabs,
134
140
  actionBar,
135
- shortcuts
141
+ shortcuts,
142
+ ownerState
136
143
  };
137
144
  };
138
145
  var _default = exports.default = usePickerLayout;
@@ -19,6 +19,7 @@ var _useTimeField = require("./useTimeField");
19
19
  var _hooks = require("../hooks");
20
20
  var _PickersTextField = require("../PickersTextField");
21
21
  var _convertFieldResponseIntoMuiTextFieldProps = require("../internals/utils/convertFieldResponseIntoMuiTextFieldProps");
22
+ var _useFieldOwnerState = require("../internals/hooks/useFieldOwnerState");
22
23
  var _jsxRuntime = require("react/jsx-runtime");
23
24
  const _excluded = ["slots", "slotProps", "InputProps", "inputProps"];
24
25
  /**
@@ -43,7 +44,7 @@ const TimeField = exports.TimeField = /*#__PURE__*/React.forwardRef(function Tim
43
44
  inputProps
44
45
  } = themeProps,
45
46
  other = (0, _objectWithoutPropertiesLoose2.default)(themeProps, _excluded);
46
- const ownerState = themeProps;
47
+ const ownerState = (0, _useFieldOwnerState.useFieldOwnerState)(themeProps);
47
48
  const TextField = slots?.textField ?? (inProps.enableAccessibleFieldDOMStructure === false ? _TextField.default : _PickersTextField.PickersTextField);
48
49
  const textFieldProps = (0, _useSlotProps.default)({
49
50
  elementType: TextField,
@@ -275,10 +276,10 @@ process.env.NODE_ENV !== "production" ? TimeField.propTypes = {
275
276
  */
276
277
  shouldDisableTime: _propTypes.default.func,
277
278
  /**
278
- * If `true`, the format will respect the leading zeroes (e.g: on dayjs, the format `M/D/YYYY` will render `8/16/2018`)
279
- * If `false`, the format will always add leading zeroes (e.g: on dayjs, the format `M/D/YYYY` will render `08/16/2018`)
279
+ * If `true`, the format will respect the leading zeroes (for example on dayjs, the format `M/D/YYYY` will render `8/16/2018`)
280
+ * If `false`, the format will always add leading zeroes (for example on dayjs, the format `M/D/YYYY` will render `08/16/2018`)
280
281
  *
281
- * Warning n°1: Luxon is not able to respect the leading zeroes when using macro tokens (e.g: "DD"), so `shouldRespectLeadingZeros={true}` might lead to inconsistencies when using `AdapterLuxon`.
282
+ * Warning n°1: Luxon is not able to respect the leading zeroes when using macro tokens (for example "DD"), so `shouldRespectLeadingZeros={true}` might lead to inconsistencies when using `AdapterLuxon`.
282
283
  *
283
284
  * Warning n°2: When `shouldRespectLeadingZeros={true}`, the field will add an invisible character on the sections containing a single digit to make sure `onChange` is fired.
284
285
  * If you need to get the clean value from the input, you can remove this character using `input.value.replace(/\u200e/g, '')`.
@@ -14,7 +14,7 @@ var _useField = require("../internals/hooks/useField/useField.utils");
14
14
  var _usePickerTranslations = require("./usePickerTranslations");
15
15
  /**
16
16
  * Returns the parsed format to be rendered in the field when there is no value or in other parts of the Picker.
17
- * This format is localized (e.g: `AAAA` for the year with the French locale) and cannot be parsed by your date library.
17
+ * This format is localized (for example `AAAA` for the year with the French locale) and cannot be parsed by your date library.
18
18
  * @param {object} The parameters needed to build the placeholder.
19
19
  * @param {string} params.format Format of the date to use.
20
20
  * @param {'dense' | 'spacious'} params.formatDensity Density of the format (setting `formatDensity` to `"spacious"` will add a space before and after each `/`, `-` and `.` character).
package/node/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-date-pickers v8.0.0-alpha.1
2
+ * @mui/x-date-pickers v8.0.0-alpha.2
3
3
  *
4
4
  * @license MIT
5
5
  * This source code is licensed under the MIT license found in the
@@ -18,8 +18,9 @@ var _useSlotProps3 = _interopRequireDefault(require("@mui/utils/useSlotProps"));
18
18
  var _IconButton = _interopRequireDefault(require("@mui/material/IconButton"));
19
19
  var _icons = require("../../../icons");
20
20
  var _pickersArrowSwitcherClasses = require("./pickersArrowSwitcherClasses");
21
+ var _usePickerPrivateContext = require("../../hooks/usePickerPrivateContext");
21
22
  var _jsxRuntime = require("react/jsx-runtime");
22
- const _excluded = ["children", "className", "slots", "slotProps", "isNextDisabled", "isNextHidden", "onGoToNext", "nextLabel", "isPreviousDisabled", "isPreviousHidden", "onGoToPrevious", "previousLabel", "labelId"],
23
+ const _excluded = ["children", "className", "slots", "slotProps", "isNextDisabled", "isNextHidden", "onGoToNext", "nextLabel", "isPreviousDisabled", "isPreviousHidden", "onGoToPrevious", "previousLabel", "labelId", "classes"],
23
24
  _excluded2 = ["ownerState"],
24
25
  _excluded3 = ["ownerState"];
25
26
  const PickersArrowSwitcherRoot = (0, _styles.styled)('div', {
@@ -52,10 +53,7 @@ const PickersArrowSwitcherButton = (0, _styles.styled)(_IconButton.default, {
52
53
  }
53
54
  }]
54
55
  });
55
- const useUtilityClasses = ownerState => {
56
- const {
57
- classes
58
- } = ownerState;
56
+ const useUtilityClasses = classes => {
59
57
  const slots = {
60
58
  root: ['root'],
61
59
  spacer: ['spacer'],
@@ -86,11 +84,14 @@ const PickersArrowSwitcher = exports.PickersArrowSwitcher = /*#__PURE__*/React.f
86
84
  isPreviousHidden,
87
85
  onGoToPrevious,
88
86
  previousLabel,
89
- labelId
87
+ labelId,
88
+ classes: classesProp
90
89
  } = props,
91
90
  other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
92
- const ownerState = props;
93
- const classes = useUtilityClasses(ownerState);
91
+ const {
92
+ ownerState
93
+ } = (0, _usePickerPrivateContext.usePickerPrivateContext)();
94
+ const classes = useUtilityClasses(classesProp);
94
95
  const nextProps = {
95
96
  isDisabled: isNextDisabled,
96
97
  isHidden: isNextHidden,
@@ -116,7 +117,7 @@ const PickersArrowSwitcher = exports.PickersArrowSwitcher = /*#__PURE__*/React.f
116
117
  onClick: previousProps.goTo
117
118
  },
118
119
  ownerState: (0, _extends2.default)({}, ownerState, {
119
- hidden: previousProps.isHidden
120
+ hidden: previousProps.isHidden ?? false
120
121
  }),
121
122
  className: (0, _clsx.default)(classes.button, classes.previousIconButton)
122
123
  });
@@ -133,7 +134,7 @@ const PickersArrowSwitcher = exports.PickersArrowSwitcher = /*#__PURE__*/React.f
133
134
  onClick: nextProps.goTo
134
135
  },
135
136
  ownerState: (0, _extends2.default)({}, ownerState, {
136
- hidden: nextProps.isHidden
137
+ hidden: nextProps.isHidden ?? false
137
138
  }),
138
139
  className: (0, _clsx.default)(classes.button, classes.nextIconButton)
139
140
  });
@@ -72,7 +72,6 @@ const useFieldState = params => {
72
72
  const stateWithoutReferenceDate = {
73
73
  sections,
74
74
  value: valueFromTheOutside,
75
- referenceValue: valueManager.emptyValue,
76
75
  tempValueStrAndroid: null
77
76
  };
78
77
  const granularity = (0, _getDefaultReferenceDate.getSectionTypeGranularity)(sections);
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+
3
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.useFieldOwnerState = useFieldOwnerState;
9
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
+ var React = _interopRequireWildcard(require("react"));
11
+ var _usePickerPrivateContext = require("./usePickerPrivateContext");
12
+ function useFieldOwnerState(parameters) {
13
+ const {
14
+ ownerState: pickerOwnerState
15
+ } = (0, _usePickerPrivateContext.usePickerPrivateContext)();
16
+ return React.useMemo(() => (0, _extends2.default)({}, pickerOwnerState, {
17
+ isFieldDisabled: parameters.disabled ?? false,
18
+ isFieldReadOnly: parameters.readOnly ?? false
19
+ }), [pickerOwnerState, parameters.disabled, parameters.readOnly]);
20
+ }
@@ -1,13 +1,14 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
3
4
  Object.defineProperty(exports, "__esModule", {
4
5
  value: true
5
6
  });
6
7
  exports.usePicker = void 0;
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
7
9
  var _warning = require("@mui/x-internals/warning");
8
10
  var _usePickerValue = require("./usePickerValue");
9
11
  var _usePickerViews = require("./usePickerViews");
10
- var _usePickerLayoutProps = require("./usePickerLayoutProps");
11
12
  var _usePickerProvider = require("./usePickerProvider");
12
13
  const usePicker = ({
13
14
  props,
@@ -41,12 +42,6 @@ const usePicker = ({
41
42
  propsFromPickerValue: pickerValueResponse.viewProps,
42
43
  rendererInterceptor
43
44
  });
44
- const pickerLayoutResponse = (0, _usePickerLayoutProps.usePickerLayoutProps)({
45
- props,
46
- variant,
47
- propsFromPickerValue: pickerValueResponse.layoutProps,
48
- propsFromPickerViews: pickerViewsResponse.layoutProps
49
- });
50
45
  const providerProps = (0, _usePickerProvider.usePickerProvider)({
51
46
  props,
52
47
  pickerValueResponse,
@@ -65,7 +60,7 @@ const usePicker = ({
65
60
  hasUIView: pickerViewsResponse.hasUIView,
66
61
  shouldRestoreFocus: pickerViewsResponse.shouldRestoreFocus,
67
62
  // Picker layout
68
- layoutProps: pickerLayoutResponse.layoutProps,
63
+ layoutProps: (0, _extends2.default)({}, pickerViewsResponse.layoutProps, pickerValueResponse.layoutProps),
69
64
  // Picker provider
70
65
  providerProps,
71
66
  // Picker owner state
@@ -261,6 +261,12 @@ Object.defineProperty(exports, "useField", {
261
261
  return _useField.useField;
262
262
  }
263
263
  });
264
+ Object.defineProperty(exports, "useFieldOwnerState", {
265
+ enumerable: true,
266
+ get: function () {
267
+ return _useFieldOwnerState.useFieldOwnerState;
268
+ }
269
+ });
264
270
  Object.defineProperty(exports, "useLocalizationContext", {
265
271
  enumerable: true,
266
272
  get: function () {
@@ -329,6 +335,7 @@ var _PickersToolbarButton = require("./components/PickersToolbarButton");
329
335
  var _dimensions = require("./constants/dimensions");
330
336
  var _useValueWithTimezone = require("./hooks/useValueWithTimezone");
331
337
  var _useField = require("./hooks/useField");
338
+ var _useFieldOwnerState = require("./hooks/useFieldOwnerState");
332
339
  var _usePicker = require("./hooks/usePicker");
333
340
  var _usePickerPrivateContext = require("./hooks/usePickerPrivateContext");
334
341
  var _useStaticPicker = require("./hooks/useStaticPicker");
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -22,10 +22,10 @@ const nlNLPickers = {
22
22
  // DateRange labels
23
23
  start: 'Start',
24
24
  end: 'Einde',
25
- startDate: 'Start datum',
26
- startTime: 'Start tijd',
27
- endDate: 'Eind datum',
28
- endTime: 'Eind tijd',
25
+ startDate: 'Startdatum',
26
+ startTime: 'Starttijd',
27
+ endDate: 'Einddatum',
28
+ endTime: 'Eindtijd',
29
29
  // Action bar
30
30
  cancelButtonLabel: 'Annuleren',
31
31
  clearButtonLabel: 'Resetten',
@@ -56,11 +56,11 @@ const nlNLPickers = {
56
56
  timeTableLabel: 'kies tijd',
57
57
  dateTableLabel: 'kies datum',
58
58
  // Field section placeholders
59
- fieldYearPlaceholder: params => 'Y'.repeat(params.digitAmount),
59
+ fieldYearPlaceholder: params => 'J'.repeat(params.digitAmount),
60
60
  fieldMonthPlaceholder: params => params.contentType === 'letter' ? 'MMMM' : 'MM',
61
61
  fieldDayPlaceholder: () => 'DD',
62
62
  fieldWeekDayPlaceholder: params => params.contentType === 'letter' ? 'EEEE' : 'EE',
63
- fieldHoursPlaceholder: () => 'hh',
63
+ fieldHoursPlaceholder: () => 'uu',
64
64
  fieldMinutesPlaceholder: () => 'mm',
65
65
  fieldSecondsPlaceholder: () => 'ss',
66
66
  fieldMeridiemPlaceholder: () => 'aa',
@@ -74,6 +74,6 @@ const nlNLPickers = {
74
74
  seconds: 'Seconden',
75
75
  meridiem: 'Middag',
76
76
  // Common
77
- empty: 'Legen'
77
+ empty: 'Leeg'
78
78
  };
79
79
  const nlNL = exports.nlNL = (0, _getPickersLocalization.getPickersLocalization)(nlNLPickers);
@@ -12,7 +12,7 @@ var _useEventCallback = _interopRequireDefault(require("@mui/utils/useEventCallb
12
12
  var _useUtils = require("../internals/hooks/useUtils");
13
13
  /**
14
14
  * Utility hook to check if a given value is valid based on the provided validation props.
15
- * @template TValue The value type. It will be either the same type as `value` or `null`. It can be in `[start, end]` format in case of range value.
15
+ * @template TValue The value type. It will be the same type as `value` or `null`. It can be in `[start, end]` format in case of range value.
16
16
  * @template TError The validation error type. It will be either `string` or a `null`. It can be in `[start, end]` format in case of range value.
17
17
  * @param {UseValidationOptions<TValue, TError, TValidationProps>} options The options to configure the hook.
18
18
  * @param {TValue} options.value The value to validate.
@@ -10,6 +10,14 @@ var _valueManagers = require("../internals/utils/valueManagers");
10
10
  * Validation props used by the Date Picker, Date Field and Date Calendar components.
11
11
  */
12
12
 
13
+ /**
14
+ * Validation props as received by the validateDate method.
15
+ */
16
+
17
+ /**
18
+ * Name of the props that should be defaulted before being passed to the validateDate method.
19
+ */
20
+
13
21
  const validateDate = ({
14
22
  props,
15
23
  value,
@@ -11,6 +11,14 @@ var _valueManagers = require("../internals/utils/valueManagers");
11
11
  * Validation props used by the Date Time Picker and Date Time Field components.
12
12
  */
13
13
 
14
+ /**
15
+ * Validation props as received by the validateDateTime method.
16
+ */
17
+
18
+ /**
19
+ * Name of the props that should be defaulted before being passed to the validateDateTime method.
20
+ */
21
+
14
22
  const validateDateTime = ({
15
23
  adapter,
16
24
  value,
@@ -10,6 +10,14 @@ var _valueManagers = require("../internals/utils/valueManagers");
10
10
  * Validation props used by the Time Picker, Time Field and Clock components.
11
11
  */
12
12
 
13
+ /**
14
+ * Validation props as received by the validateTime method.
15
+ */
16
+
17
+ /**
18
+ * Name of the props that should be defaulted before being passed to the validateTime method.
19
+ */
20
+
13
21
  const validateTime = ({
14
22
  adapter,
15
23
  value,