@mui/x-date-pickers 8.0.0-beta.1 → 8.0.0-beta.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.
- package/CHANGELOG.md +94 -0
- package/DateCalendar/DateCalendar.js +4 -8
- package/DateCalendar/DayCalendar.js +2 -2
- package/DatePicker/shared.js +3 -9
- package/DateTimePicker/shared.js +3 -13
- package/MonthCalendar/MonthCalendar.js +4 -9
- package/PickersSectionList/PickersSectionList.d.ts +1 -1
- package/PickersSectionList/PickersSectionList.types.d.ts +2 -6
- package/TimePicker/shared.js +3 -3
- package/YearCalendar/YearCalendar.js +4 -10
- package/esm/DateCalendar/DateCalendar.js +6 -10
- package/esm/DateCalendar/DayCalendar.js +2 -2
- package/esm/DatePicker/shared.js +3 -9
- package/esm/DateTimePicker/shared.js +4 -14
- package/esm/MonthCalendar/MonthCalendar.js +6 -11
- package/esm/PickersSectionList/PickersSectionList.d.ts +1 -1
- package/esm/PickersSectionList/PickersSectionList.types.d.ts +2 -6
- package/esm/TimePicker/shared.js +3 -3
- package/esm/YearCalendar/YearCalendar.js +5 -11
- package/esm/index.js +1 -1
- package/esm/internals/hooks/useField/syncSelectionToDOM.d.ts +9 -0
- package/esm/internals/hooks/useField/syncSelectionToDOM.js +50 -0
- package/esm/internals/hooks/useField/useField.types.d.ts +8 -1
- package/esm/internals/hooks/useField/useField.utils.d.ts +1 -3
- package/esm/internals/hooks/useField/useField.utils.js +0 -57
- package/esm/internals/hooks/useField/useFieldHiddenInputProps.d.ts +20 -0
- package/esm/internals/hooks/useField/useFieldHiddenInputProps.js +31 -0
- package/esm/internals/hooks/useField/useFieldInternalPropsWithDefaults.js +8 -10
- package/esm/internals/hooks/useField/useFieldRootHandleKeyDown.js +1 -0
- package/esm/internals/hooks/useField/useFieldRootProps.d.ts +32 -0
- package/esm/internals/hooks/useField/useFieldRootProps.js +150 -0
- package/esm/internals/hooks/useField/useFieldSectionContainerProps.d.ts +15 -0
- package/esm/internals/hooks/useField/useFieldSectionContainerProps.js +29 -0
- package/esm/internals/hooks/useField/useFieldSectionContentProps.d.ts +23 -0
- package/esm/internals/hooks/useField/useFieldSectionContentProps.js +226 -0
- package/esm/internals/hooks/useField/useFieldV7TextField.js +76 -307
- package/esm/internals/index.d.ts +4 -4
- package/esm/internals/index.js +3 -3
- package/esm/locales/deDE.js +2 -3
- package/esm/managers/useDateManager.d.ts +4 -13
- package/esm/managers/useDateManager.js +18 -28
- package/esm/managers/useDateTimeManager.d.ts +4 -13
- package/esm/managers/useDateTimeManager.js +23 -33
- package/esm/managers/useTimeManager.d.ts +4 -13
- package/esm/managers/useTimeManager.js +14 -24
- package/esm/models/manager.d.ts +3 -8
- package/esm/validation/validateDate.js +3 -4
- package/index.js +1 -1
- package/internals/hooks/useField/syncSelectionToDOM.d.ts +9 -0
- package/internals/hooks/useField/syncSelectionToDOM.js +56 -0
- package/internals/hooks/useField/useField.types.d.ts +8 -1
- package/internals/hooks/useField/useField.utils.d.ts +1 -3
- package/internals/hooks/useField/useField.utils.js +2 -61
- package/internals/hooks/useField/useFieldHiddenInputProps.d.ts +20 -0
- package/internals/hooks/useField/useFieldHiddenInputProps.js +39 -0
- package/internals/hooks/useField/useFieldInternalPropsWithDefaults.js +8 -10
- package/internals/hooks/useField/useFieldRootHandleKeyDown.js +1 -0
- package/internals/hooks/useField/useFieldRootProps.d.ts +32 -0
- package/internals/hooks/useField/useFieldRootProps.js +156 -0
- package/internals/hooks/useField/useFieldSectionContainerProps.d.ts +15 -0
- package/internals/hooks/useField/useFieldSectionContainerProps.js +37 -0
- package/internals/hooks/useField/useFieldSectionContentProps.d.ts +23 -0
- package/internals/hooks/useField/useFieldSectionContentProps.js +234 -0
- package/internals/hooks/useField/useFieldV7TextField.js +75 -306
- package/internals/index.d.ts +4 -4
- package/internals/index.js +18 -18
- package/locales/deDE.js +2 -3
- package/managers/useDateManager.d.ts +4 -13
- package/managers/useDateManager.js +18 -28
- package/managers/useDateTimeManager.d.ts +4 -13
- package/managers/useDateTimeManager.js +23 -33
- package/managers/useTimeManager.d.ts +4 -13
- package/managers/useTimeManager.js +15 -25
- package/models/manager.d.ts +3 -8
- package/modern/DateCalendar/DateCalendar.js +6 -10
- package/modern/DateCalendar/DayCalendar.js +2 -2
- package/modern/DatePicker/shared.js +3 -9
- package/modern/DateTimePicker/shared.js +4 -14
- package/modern/MonthCalendar/MonthCalendar.js +6 -11
- package/modern/PickersSectionList/PickersSectionList.d.ts +1 -1
- package/modern/PickersSectionList/PickersSectionList.types.d.ts +2 -6
- package/modern/TimePicker/shared.js +3 -3
- package/modern/YearCalendar/YearCalendar.js +5 -11
- package/modern/index.js +1 -1
- package/modern/internals/hooks/useField/syncSelectionToDOM.d.ts +9 -0
- package/modern/internals/hooks/useField/syncSelectionToDOM.js +50 -0
- package/modern/internals/hooks/useField/useField.types.d.ts +8 -1
- package/modern/internals/hooks/useField/useField.utils.d.ts +1 -3
- package/modern/internals/hooks/useField/useField.utils.js +0 -57
- package/modern/internals/hooks/useField/useFieldHiddenInputProps.d.ts +20 -0
- package/modern/internals/hooks/useField/useFieldHiddenInputProps.js +31 -0
- package/modern/internals/hooks/useField/useFieldInternalPropsWithDefaults.js +8 -10
- package/modern/internals/hooks/useField/useFieldRootHandleKeyDown.js +1 -0
- package/modern/internals/hooks/useField/useFieldRootProps.d.ts +32 -0
- package/modern/internals/hooks/useField/useFieldRootProps.js +150 -0
- package/modern/internals/hooks/useField/useFieldSectionContainerProps.d.ts +15 -0
- package/modern/internals/hooks/useField/useFieldSectionContainerProps.js +29 -0
- package/modern/internals/hooks/useField/useFieldSectionContentProps.d.ts +23 -0
- package/modern/internals/hooks/useField/useFieldSectionContentProps.js +226 -0
- package/modern/internals/hooks/useField/useFieldV7TextField.js +76 -307
- package/modern/internals/index.d.ts +4 -4
- package/modern/internals/index.js +3 -3
- package/modern/locales/deDE.js +2 -3
- package/modern/managers/useDateManager.d.ts +4 -13
- package/modern/managers/useDateManager.js +18 -28
- package/modern/managers/useDateTimeManager.d.ts +4 -13
- package/modern/managers/useDateTimeManager.js +23 -33
- package/modern/managers/useTimeManager.d.ts +4 -13
- package/modern/managers/useTimeManager.js +14 -24
- package/modern/models/manager.d.ts +3 -8
- package/modern/validation/validateDate.js +3 -4
- package/package.json +2 -2
- package/tsconfig.build.tsbuildinfo +1 -1
- package/validation/validateDate.js +3 -4
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,100 @@
|
|
|
5
5
|
All notable changes to this project will be documented in this file.
|
|
6
6
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
7
7
|
|
|
8
|
+
## 8.0.0-beta.2
|
|
9
|
+
|
|
10
|
+
_Mar 27, 2025_
|
|
11
|
+
|
|
12
|
+
We'd like to offer a big thanks to the 12 contributors who made this release possible. Here are some highlights ✨:
|
|
13
|
+
|
|
14
|
+
- 🔍 Update the Data Grid quick filter to be collapsed when not in use
|
|
15
|
+
- 🐞 Bugfixes
|
|
16
|
+
|
|
17
|
+
Special thanks go out to the community members for their valuable contributions:
|
|
18
|
+
@lhilgert9.
|
|
19
|
+
Following are all team members who have contributed to this release:
|
|
20
|
+
@alexfauquette, @arminmeh, @flaviendelangle, @hasdfa, @JCQuintas, @KenanYusuf, @LukasTy, @MBilalShafi, @michelengelen, @mnajdova, @romgrk.
|
|
21
|
+
|
|
22
|
+
<!--/ HIGHLIGHT_ABOVE_SEPARATOR /-->
|
|
23
|
+
|
|
24
|
+
### Data Grid
|
|
25
|
+
|
|
26
|
+
#### `@mui/x-data-grid@8.0.0-beta.2`
|
|
27
|
+
|
|
28
|
+
- [DataGrid] Fix error caused by trying to render rows that are not in the state anymore (#17057) @arminmeh
|
|
29
|
+
- [DataGrid] Refactor: remove more material (#16922) @romgrk
|
|
30
|
+
- [DataGrid] Update Quick Filter component to be expandable (#16862) @KenanYusuf
|
|
31
|
+
- [DataGrid] Fix crash when used with `@mui/styled-engine-sc` (#17154) @KenanYusuf
|
|
32
|
+
|
|
33
|
+
#### `@mui/x-data-grid-pro@8.0.0-beta.2` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
34
|
+
|
|
35
|
+
Same changes as in `@mui/x-data-grid@8.0.0-beta.2`, plus:
|
|
36
|
+
|
|
37
|
+
- [DataGridPro] Data source: Allow expanding groups with unknown children (#17144) @MBilalShafi
|
|
38
|
+
|
|
39
|
+
#### `@mui/x-data-grid-premium@8.0.0-beta.2` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
40
|
+
|
|
41
|
+
Same changes as in `@mui/x-data-grid-pro@8.0.0-beta.2`.
|
|
42
|
+
|
|
43
|
+
### Date and Time Pickers
|
|
44
|
+
|
|
45
|
+
#### `@mui/x-date-pickers@8.0.0-beta.2`
|
|
46
|
+
|
|
47
|
+
- [fields] Extract the props of each field slot into a standalone hook for easier re-use (#17114) @flaviendelangle
|
|
48
|
+
- [pickers] Fix visual regression in Date Range Calendar's day (#17148) @flaviendelangle
|
|
49
|
+
- [pickers] Remove all code duplication to apply default values to validation props (#17038) @flaviendelangle
|
|
50
|
+
|
|
51
|
+
#### `@mui/x-date-pickers-pro@8.0.0-beta.2` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
52
|
+
|
|
53
|
+
Same changes as in `@mui/x-date-pickers@8.0.0-beta.2`.
|
|
54
|
+
|
|
55
|
+
### Charts
|
|
56
|
+
|
|
57
|
+
#### `@mui/x-charts@8.0.0-beta.2`
|
|
58
|
+
|
|
59
|
+
- [charts] Memoize axes and series with default (#17156) @alexfauquette
|
|
60
|
+
- [charts] Add pie benchmark (#17115) @JCQuintas
|
|
61
|
+
- [charts] Fix CSS vars support for dark theme (#17106) @alexfauquette
|
|
62
|
+
- [charts] Fix radar hover (#17134) @alexfauquette
|
|
63
|
+
- [charts] Move axis interaction to selectors (#17039) @alexfauquette
|
|
64
|
+
- [charts] Fix Pie benchmark (#17125) @JCQuintas
|
|
65
|
+
|
|
66
|
+
#### `@mui/x-charts-pro@8.0.0-beta.2` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
67
|
+
|
|
68
|
+
Same changes as in `@mui/x-charts@8.0.0-beta.2`.
|
|
69
|
+
|
|
70
|
+
### Tree View
|
|
71
|
+
|
|
72
|
+
#### `@mui/x-tree-view@8.0.0-beta.2`
|
|
73
|
+
|
|
74
|
+
Internal changes.
|
|
75
|
+
|
|
76
|
+
#### `@mui/x-tree-view-pro@8.0.0-beta.2` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
77
|
+
|
|
78
|
+
Same changes as in `@mui/x-tree-view@8.0.0-beta.2`.
|
|
79
|
+
|
|
80
|
+
### `@mui/x-codemod@8.0.0-beta.1`
|
|
81
|
+
|
|
82
|
+
- [codemod] Add Data Grid codemods (#17121, #17124) @MBilalShafi
|
|
83
|
+
|
|
84
|
+
### Docs
|
|
85
|
+
|
|
86
|
+
- [docs] Fix example import for `ExportExcel` component (#17110) @KenanYusuf
|
|
87
|
+
|
|
88
|
+
### Core
|
|
89
|
+
|
|
90
|
+
- [code-infra] Remove `@mui/styles` dependency & patches (#17071) @mnajdova
|
|
91
|
+
- [code-infra] Add more tests to slow screenshot tests (#17075) @JCQuintas
|
|
92
|
+
- [code-infra] Fix pickers codecov (#17120) @JCQuintas
|
|
93
|
+
- [code-infra] Move `isDeepEqual` to @mui/x-internals (#17129) @JCQuintas
|
|
94
|
+
- [code-infra] Remove `test_regressions` step from React 18 pipeline (#17108) @LukasTy
|
|
95
|
+
- [code-infra] Update some data-grid tests for vitest (#17078, #17104, #17146) @JCQuintas
|
|
96
|
+
- [code-infra] Update some date-pickers tests for vitest (#17083) @JCQuintas
|
|
97
|
+
- [infra] Update `issue-status-label-handler.yml` @michelengelen
|
|
98
|
+
- [infra] Added reusable issue status label handler workflow (#17145) @michelengelen
|
|
99
|
+
- [infra] Switch to reusable 'stale issues/PRs' workflow (#17107) @michelengelen
|
|
100
|
+
- [telemetry] Improve request body size, update dependencies, and optimize SSR handling (#17008) @hasdfa
|
|
101
|
+
|
|
8
102
|
## 8.0.0-beta.1
|
|
9
103
|
|
|
10
104
|
_Mar 21, 2025_
|
|
@@ -31,6 +31,7 @@ var _useControlledValue = require("../internals/hooks/useControlledValue");
|
|
|
31
31
|
var _valueManagers = require("../internals/utils/valueManagers");
|
|
32
32
|
var _dimensions = require("../internals/constants/dimensions");
|
|
33
33
|
var _usePickerPrivateContext = require("../internals/hooks/usePickerPrivateContext");
|
|
34
|
+
var _useDateManager = require("../managers/useDateManager");
|
|
34
35
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
35
36
|
const _excluded = ["autoFocus", "onViewChange", "value", "defaultValue", "referenceDate", "disableFuture", "disablePast", "onChange", "onYearChange", "onMonthChange", "reduceAnimations", "shouldDisableDate", "shouldDisableMonth", "shouldDisableYear", "view", "views", "openTo", "className", "classes", "disabled", "readOnly", "minDate", "maxDate", "disableHighlightToday", "focusedView", "onFocusedViewChange", "showDaysOutsideCurrentMonth", "fixedWeekNumber", "dayOfWeekFormatter", "slots", "slotProps", "loading", "renderLoading", "displayWeekNumber", "yearsOrder", "yearsPerRow", "monthsPerRow", "timezone"];
|
|
36
37
|
const useUtilityClasses = classes => {
|
|
@@ -41,25 +42,20 @@ const useUtilityClasses = classes => {
|
|
|
41
42
|
return (0, _utils.unstable_composeClasses)(slots, _dateCalendarClasses.getDateCalendarUtilityClass, classes);
|
|
42
43
|
};
|
|
43
44
|
function useDateCalendarDefaultizedProps(props, name) {
|
|
44
|
-
const utils = (0, _useUtils.useUtils)();
|
|
45
|
-
const defaultDates = (0, _useUtils.useDefaultDates)();
|
|
46
45
|
const themeProps = (0, _styles.useThemeProps)({
|
|
47
46
|
props,
|
|
48
47
|
name
|
|
49
48
|
});
|
|
50
49
|
const reduceAnimations = (0, _useReduceAnimations.useReduceAnimations)(themeProps.reduceAnimations);
|
|
51
|
-
|
|
50
|
+
const validationProps = (0, _useDateManager.useApplyDefaultValuesToDateValidationProps)(themeProps);
|
|
51
|
+
return (0, _extends2.default)({}, themeProps, validationProps, {
|
|
52
52
|
loading: themeProps.loading ?? false,
|
|
53
|
-
disablePast: themeProps.disablePast ?? false,
|
|
54
|
-
disableFuture: themeProps.disableFuture ?? false,
|
|
55
53
|
openTo: themeProps.openTo ?? 'day',
|
|
56
54
|
views: themeProps.views ?? ['year', 'day'],
|
|
57
55
|
reduceAnimations,
|
|
58
56
|
renderLoading: themeProps.renderLoading ?? (() => /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
59
57
|
children: "..."
|
|
60
|
-
}))
|
|
61
|
-
minDate: (0, _dateUtils.applyDefaultDate)(utils, themeProps.minDate, defaultDates.minDate),
|
|
62
|
-
maxDate: (0, _dateUtils.applyDefaultDate)(utils, themeProps.maxDate, defaultDates.maxDate)
|
|
58
|
+
}))
|
|
63
59
|
});
|
|
64
60
|
}
|
|
65
61
|
const DateCalendarRoot = (0, _styles.styled)(_PickerViewRoot.PickerViewRoot, {
|
|
@@ -88,7 +88,7 @@ const PickersCalendarWeekNumberLabel = (0, _styles.styled)(_Typography.default,
|
|
|
88
88
|
display: 'flex',
|
|
89
89
|
justifyContent: 'center',
|
|
90
90
|
alignItems: 'center',
|
|
91
|
-
color: theme.palette.text.disabled
|
|
91
|
+
color: (theme.vars || theme).palette.text.disabled
|
|
92
92
|
}));
|
|
93
93
|
const PickersCalendarWeekNumber = (0, _styles.styled)(_Typography.default, {
|
|
94
94
|
name: 'MuiDayCalendar',
|
|
@@ -101,7 +101,7 @@ const PickersCalendarWeekNumber = (0, _styles.styled)(_Typography.default, {
|
|
|
101
101
|
height: _dimensions.DAY_SIZE,
|
|
102
102
|
padding: 0,
|
|
103
103
|
margin: `0 ${_dimensions.DAY_MARGIN}px`,
|
|
104
|
-
color: theme.palette.text.disabled,
|
|
104
|
+
color: (theme.vars || theme).palette.text.disabled,
|
|
105
105
|
fontSize: '0.75rem',
|
|
106
106
|
alignItems: 'center',
|
|
107
107
|
justifyContent: 'center',
|
package/DatePicker/shared.js
CHANGED
|
@@ -9,17 +9,15 @@ exports.useDatePickerDefaultizedProps = useDatePickerDefaultizedProps;
|
|
|
9
9
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
10
10
|
var React = _interopRequireWildcard(require("react"));
|
|
11
11
|
var _styles = require("@mui/material/styles");
|
|
12
|
-
var _useUtils = require("../internals/hooks/useUtils");
|
|
13
12
|
var _views = require("../internals/utils/views");
|
|
14
|
-
var _dateUtils = require("../internals/utils/date-utils");
|
|
15
13
|
var _DatePickerToolbar = require("./DatePickerToolbar");
|
|
14
|
+
var _useDateManager = require("../managers/useDateManager");
|
|
16
15
|
function useDatePickerDefaultizedProps(props, name) {
|
|
17
|
-
const utils = (0, _useUtils.useUtils)();
|
|
18
|
-
const defaultDates = (0, _useUtils.useDefaultDates)();
|
|
19
16
|
const themeProps = (0, _styles.useThemeProps)({
|
|
20
17
|
props,
|
|
21
18
|
name
|
|
22
19
|
});
|
|
20
|
+
const validationProps = (0, _useDateManager.useApplyDefaultValuesToDateValidationProps)(themeProps);
|
|
23
21
|
const localeText = React.useMemo(() => {
|
|
24
22
|
if (themeProps.localeText?.toolbarTitle == null) {
|
|
25
23
|
return themeProps.localeText;
|
|
@@ -28,7 +26,7 @@ function useDatePickerDefaultizedProps(props, name) {
|
|
|
28
26
|
datePickerToolbarTitle: themeProps.localeText.toolbarTitle
|
|
29
27
|
});
|
|
30
28
|
}, [themeProps.localeText]);
|
|
31
|
-
return (0, _extends2.default)({}, themeProps, {
|
|
29
|
+
return (0, _extends2.default)({}, themeProps, validationProps, {
|
|
32
30
|
localeText
|
|
33
31
|
}, (0, _views.applyDefaultViewProps)({
|
|
34
32
|
views: themeProps.views,
|
|
@@ -36,10 +34,6 @@ function useDatePickerDefaultizedProps(props, name) {
|
|
|
36
34
|
defaultViews: ['year', 'day'],
|
|
37
35
|
defaultOpenTo: 'day'
|
|
38
36
|
}), {
|
|
39
|
-
disableFuture: themeProps.disableFuture ?? false,
|
|
40
|
-
disablePast: themeProps.disablePast ?? false,
|
|
41
|
-
minDate: (0, _dateUtils.applyDefaultDate)(utils, themeProps.minDate, defaultDates.minDate),
|
|
42
|
-
maxDate: (0, _dateUtils.applyDefaultDate)(utils, themeProps.maxDate, defaultDates.maxDate),
|
|
43
37
|
slots: (0, _extends2.default)({
|
|
44
38
|
toolbar: _DatePickerToolbar.DatePickerToolbar
|
|
45
39
|
}, themeProps.slots)
|
package/DateTimePicker/shared.js
CHANGED
|
@@ -10,18 +10,18 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
|
|
|
10
10
|
var React = _interopRequireWildcard(require("react"));
|
|
11
11
|
var _styles = require("@mui/material/styles");
|
|
12
12
|
var _useUtils = require("../internals/hooks/useUtils");
|
|
13
|
-
var _dateUtils = require("../internals/utils/date-utils");
|
|
14
13
|
var _DateTimePickerTabs = require("./DateTimePickerTabs");
|
|
15
14
|
var _DateTimePickerToolbar = require("./DateTimePickerToolbar");
|
|
16
15
|
var _views = require("../internals/utils/views");
|
|
17
16
|
var _dateTimeUtils = require("../internals/utils/date-time-utils");
|
|
17
|
+
var _useDateTimeManager = require("../managers/useDateTimeManager");
|
|
18
18
|
function useDateTimePickerDefaultizedProps(props, name) {
|
|
19
19
|
const utils = (0, _useUtils.useUtils)();
|
|
20
|
-
const defaultDates = (0, _useUtils.useDefaultDates)();
|
|
21
20
|
const themeProps = (0, _styles.useThemeProps)({
|
|
22
21
|
props,
|
|
23
22
|
name
|
|
24
23
|
});
|
|
24
|
+
const validationProps = (0, _useDateTimeManager.useApplyDefaultValuesToDateTimeValidationProps)(themeProps);
|
|
25
25
|
const ampm = themeProps.ampm ?? utils.is12HourCycleInCurrentLocale();
|
|
26
26
|
const localeText = React.useMemo(() => {
|
|
27
27
|
if (themeProps.localeText?.toolbarTitle == null) {
|
|
@@ -51,7 +51,7 @@ function useDateTimePickerDefaultizedProps(props, name) {
|
|
|
51
51
|
timeSteps: themeProps.timeSteps,
|
|
52
52
|
views: defaultViews
|
|
53
53
|
});
|
|
54
|
-
return (0, _extends2.default)({}, themeProps, {
|
|
54
|
+
return (0, _extends2.default)({}, themeProps, validationProps, {
|
|
55
55
|
timeSteps,
|
|
56
56
|
openTo,
|
|
57
57
|
shouldRenderTimeInASingleColumn,
|
|
@@ -60,16 +60,6 @@ function useDateTimePickerDefaultizedProps(props, name) {
|
|
|
60
60
|
ampm,
|
|
61
61
|
localeText,
|
|
62
62
|
orientation: themeProps.orientation ?? 'portrait',
|
|
63
|
-
// TODO: Remove from public API
|
|
64
|
-
disableIgnoringDatePartForTimeValidation: themeProps.disableIgnoringDatePartForTimeValidation ?? Boolean(themeProps.minDateTime || themeProps.maxDateTime ||
|
|
65
|
-
// allow time clock to correctly check time validity: https://github.com/mui/mui-x/issues/8520
|
|
66
|
-
themeProps.disablePast || themeProps.disableFuture),
|
|
67
|
-
disableFuture: themeProps.disableFuture ?? false,
|
|
68
|
-
disablePast: themeProps.disablePast ?? false,
|
|
69
|
-
minDate: (0, _dateUtils.applyDefaultDate)(utils, themeProps.minDateTime ?? themeProps.minDate, defaultDates.minDate),
|
|
70
|
-
maxDate: (0, _dateUtils.applyDefaultDate)(utils, themeProps.maxDateTime ?? themeProps.maxDate, defaultDates.maxDate),
|
|
71
|
-
minTime: themeProps.minDateTime ?? themeProps.minTime,
|
|
72
|
-
maxTime: themeProps.maxDateTime ?? themeProps.maxTime,
|
|
73
63
|
slots: (0, _extends2.default)({
|
|
74
64
|
toolbar: _DateTimePickerToolbar.DateTimePickerToolbar,
|
|
75
65
|
tabs: _DateTimePickerTabs.DateTimePickerTabs
|
|
@@ -26,6 +26,7 @@ var _getDefaultReferenceDate = require("../internals/utils/getDefaultReferenceDa
|
|
|
26
26
|
var _useControlledValue = require("../internals/hooks/useControlledValue");
|
|
27
27
|
var _dimensions = require("../internals/constants/dimensions");
|
|
28
28
|
var _usePickerPrivateContext = require("../internals/hooks/usePickerPrivateContext");
|
|
29
|
+
var _useDateManager = require("../managers/useDateManager");
|
|
29
30
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
30
31
|
const _excluded = ["autoFocus", "className", "classes", "value", "defaultValue", "referenceDate", "disabled", "disableFuture", "disablePast", "maxDate", "minDate", "onChange", "shouldDisableMonth", "readOnly", "disableHighlightToday", "onMonthFocus", "hasFocus", "onFocusedViewChange", "monthsPerRow", "timezone", "gridLabelId", "slots", "slotProps"];
|
|
31
32
|
const useUtilityClasses = classes => {
|
|
@@ -35,19 +36,13 @@ const useUtilityClasses = classes => {
|
|
|
35
36
|
return (0, _utils.unstable_composeClasses)(slots, _monthCalendarClasses.getMonthCalendarUtilityClass, classes);
|
|
36
37
|
};
|
|
37
38
|
function useMonthCalendarDefaultizedProps(props, name) {
|
|
38
|
-
const utils = (0, _useUtils.useUtils)();
|
|
39
|
-
const defaultDates = (0, _useUtils.useDefaultDates)();
|
|
40
39
|
const themeProps = (0, _styles.useThemeProps)({
|
|
41
40
|
props,
|
|
42
41
|
name
|
|
43
42
|
});
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
}, themeProps, {
|
|
48
|
-
monthsPerRow: themeProps.monthsPerRow ?? 3,
|
|
49
|
-
minDate: (0, _dateUtils.applyDefaultDate)(utils, themeProps.minDate, defaultDates.minDate),
|
|
50
|
-
maxDate: (0, _dateUtils.applyDefaultDate)(utils, themeProps.maxDate, defaultDates.maxDate)
|
|
43
|
+
const validationProps = (0, _useDateManager.useApplyDefaultValuesToDateValidationProps)(themeProps);
|
|
44
|
+
return (0, _extends2.default)({}, themeProps, validationProps, {
|
|
45
|
+
monthsPerRow: themeProps.monthsPerRow ?? 3
|
|
51
46
|
});
|
|
52
47
|
}
|
|
53
48
|
const MonthCalendarRoot = (0, _styles.styled)('div', {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { PickersSectionListProps } from
|
|
2
|
+
import type { PickersSectionListProps } from './PickersSectionList.types';
|
|
3
3
|
export declare const PickersSectionListRoot: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof React.ClassAttributes<HTMLDivElement> | keyof React.HTMLAttributes<HTMLDivElement>>, {}>;
|
|
4
4
|
export declare const PickersSectionListSection: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, keyof React.ClassAttributes<HTMLSpanElement> | keyof React.HTMLAttributes<HTMLSpanElement>>, {}>;
|
|
5
5
|
export declare const PickersSectionListSectionSeparator: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, keyof React.ClassAttributes<HTMLSpanElement> | keyof React.HTMLAttributes<HTMLSpanElement>>, {}>;
|
|
@@ -2,6 +2,7 @@ import * as React from 'react';
|
|
|
2
2
|
import { SlotComponentProps } from '@mui/utils';
|
|
3
3
|
import { PickersSectionListClasses } from "./pickersSectionListClasses.js";
|
|
4
4
|
import { PickerOwnerState } from "../models/index.js";
|
|
5
|
+
import type { UseFieldDOMGetters } from '../internals/hooks/useField/useField.types';
|
|
5
6
|
export interface PickersSectionListSlots {
|
|
6
7
|
root: React.ElementType;
|
|
7
8
|
section: React.ElementType;
|
|
@@ -28,12 +29,7 @@ export interface PickersSectionElement {
|
|
|
28
29
|
before: React.HTMLAttributes<HTMLSpanElement>;
|
|
29
30
|
after: React.HTMLAttributes<HTMLSpanElement>;
|
|
30
31
|
}
|
|
31
|
-
export interface PickersSectionListRef {
|
|
32
|
-
getRoot: () => HTMLElement;
|
|
33
|
-
getSectionContainer: (sectionIndex: number) => HTMLElement;
|
|
34
|
-
getSectionContent: (sectionIndex: number) => HTMLElement;
|
|
35
|
-
getSectionIndexFromDOMElement: (element: Element | null | undefined) => number | null;
|
|
36
|
-
}
|
|
32
|
+
export interface PickersSectionListRef extends Omit<UseFieldDOMGetters, 'isReady'> {}
|
|
37
33
|
export interface ExportedPickersSectionListProps extends Pick<React.HTMLAttributes<HTMLDivElement>, 'tabIndex'> {
|
|
38
34
|
/**
|
|
39
35
|
* The elements to render.
|
package/TimePicker/shared.js
CHANGED
|
@@ -12,12 +12,14 @@ var _styles = require("@mui/material/styles");
|
|
|
12
12
|
var _useUtils = require("../internals/hooks/useUtils");
|
|
13
13
|
var _TimePickerToolbar = require("./TimePickerToolbar");
|
|
14
14
|
var _views = require("../internals/utils/views");
|
|
15
|
+
var _useTimeManager = require("../managers/useTimeManager");
|
|
15
16
|
function useTimePickerDefaultizedProps(props, name) {
|
|
16
17
|
const utils = (0, _useUtils.useUtils)();
|
|
17
18
|
const themeProps = (0, _styles.useThemeProps)({
|
|
18
19
|
props,
|
|
19
20
|
name
|
|
20
21
|
});
|
|
22
|
+
const validationProps = (0, _useTimeManager.useApplyDefaultValuesToTimeValidationProps)(themeProps);
|
|
21
23
|
const ampm = themeProps.ampm ?? utils.is12HourCycleInCurrentLocale();
|
|
22
24
|
const localeText = React.useMemo(() => {
|
|
23
25
|
if (themeProps.localeText?.toolbarTitle == null) {
|
|
@@ -27,7 +29,7 @@ function useTimePickerDefaultizedProps(props, name) {
|
|
|
27
29
|
timePickerToolbarTitle: themeProps.localeText.toolbarTitle
|
|
28
30
|
});
|
|
29
31
|
}, [themeProps.localeText]);
|
|
30
|
-
return (0, _extends2.default)({}, themeProps, {
|
|
32
|
+
return (0, _extends2.default)({}, themeProps, validationProps, {
|
|
31
33
|
ampm,
|
|
32
34
|
localeText
|
|
33
35
|
}, (0, _views.applyDefaultViewProps)({
|
|
@@ -36,8 +38,6 @@ function useTimePickerDefaultizedProps(props, name) {
|
|
|
36
38
|
defaultViews: ['hours', 'minutes'],
|
|
37
39
|
defaultOpenTo: 'hours'
|
|
38
40
|
}), {
|
|
39
|
-
disableFuture: themeProps.disableFuture ?? false,
|
|
40
|
-
disablePast: themeProps.disablePast ?? false,
|
|
41
41
|
slots: (0, _extends2.default)({
|
|
42
42
|
toolbar: _TimePickerToolbar.TimePickerToolbar
|
|
43
43
|
}, themeProps.slots),
|
|
@@ -19,12 +19,12 @@ var _utils = require("@mui/utils");
|
|
|
19
19
|
var _YearCalendarButton = require("./YearCalendarButton");
|
|
20
20
|
var _useUtils = require("../internals/hooks/useUtils");
|
|
21
21
|
var _yearCalendarClasses = require("./yearCalendarClasses");
|
|
22
|
-
var _dateUtils = require("../internals/utils/date-utils");
|
|
23
22
|
var _valueManagers = require("../internals/utils/valueManagers");
|
|
24
23
|
var _getDefaultReferenceDate = require("../internals/utils/getDefaultReferenceDate");
|
|
25
24
|
var _useControlledValue = require("../internals/hooks/useControlledValue");
|
|
26
25
|
var _dimensions = require("../internals/constants/dimensions");
|
|
27
26
|
var _usePickerPrivateContext = require("../internals/hooks/usePickerPrivateContext");
|
|
27
|
+
var _useDateManager = require("../managers/useDateManager");
|
|
28
28
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
29
29
|
const _excluded = ["autoFocus", "className", "classes", "value", "defaultValue", "referenceDate", "disabled", "disableFuture", "disablePast", "maxDate", "minDate", "onChange", "readOnly", "shouldDisableYear", "disableHighlightToday", "onYearFocus", "hasFocus", "onFocusedViewChange", "yearsOrder", "yearsPerRow", "timezone", "gridLabelId", "slots", "slotProps"];
|
|
30
30
|
const useUtilityClasses = classes => {
|
|
@@ -34,20 +34,14 @@ const useUtilityClasses = classes => {
|
|
|
34
34
|
return (0, _utils.unstable_composeClasses)(slots, _yearCalendarClasses.getYearCalendarUtilityClass, classes);
|
|
35
35
|
};
|
|
36
36
|
function useYearCalendarDefaultizedProps(props, name) {
|
|
37
|
-
const utils = (0, _useUtils.useUtils)();
|
|
38
|
-
const defaultDates = (0, _useUtils.useDefaultDates)();
|
|
39
37
|
const themeProps = (0, _styles.useThemeProps)({
|
|
40
38
|
props,
|
|
41
39
|
name
|
|
42
40
|
});
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
disableFuture: false
|
|
46
|
-
}, themeProps, {
|
|
41
|
+
const validationProps = (0, _useDateManager.useApplyDefaultValuesToDateValidationProps)(themeProps);
|
|
42
|
+
return (0, _extends2.default)({}, themeProps, validationProps, {
|
|
47
43
|
yearsPerRow: themeProps.yearsPerRow ?? 3,
|
|
48
|
-
yearsOrder: themeProps.yearsOrder ?? 'asc'
|
|
49
|
-
minDate: (0, _dateUtils.applyDefaultDate)(utils, themeProps.minDate, defaultDates.minDate),
|
|
50
|
-
maxDate: (0, _dateUtils.applyDefaultDate)(utils, themeProps.maxDate, defaultDates.maxDate)
|
|
44
|
+
yearsOrder: themeProps.yearsOrder ?? 'asc'
|
|
51
45
|
});
|
|
52
46
|
}
|
|
53
47
|
const YearCalendarRoot = (0, _styles.styled)('div', {
|
|
@@ -10,14 +10,14 @@ import useSlotProps from '@mui/utils/useSlotProps';
|
|
|
10
10
|
import { styled, useThemeProps } from '@mui/material/styles';
|
|
11
11
|
import { unstable_composeClasses as composeClasses, unstable_useId as useId, unstable_useEventCallback as useEventCallback } from '@mui/utils';
|
|
12
12
|
import { useCalendarState } from "./useCalendarState.js";
|
|
13
|
-
import {
|
|
13
|
+
import { useUtils } from "../internals/hooks/useUtils.js";
|
|
14
14
|
import { PickersFadeTransitionGroup } from "./PickersFadeTransitionGroup.js";
|
|
15
15
|
import { DayCalendar } from "./DayCalendar.js";
|
|
16
16
|
import { MonthCalendar } from "../MonthCalendar/index.js";
|
|
17
17
|
import { YearCalendar } from "../YearCalendar/index.js";
|
|
18
18
|
import { useViews } from "../internals/hooks/useViews.js";
|
|
19
19
|
import { PickersCalendarHeader } from "../PickersCalendarHeader/index.js";
|
|
20
|
-
import { findClosestEnabledDate,
|
|
20
|
+
import { findClosestEnabledDate, mergeDateAndTime } from "../internals/utils/date-utils.js";
|
|
21
21
|
import { PickerViewRoot } from "../internals/components/PickerViewRoot/index.js";
|
|
22
22
|
import { useReduceAnimations } from "../internals/hooks/useReduceAnimations.js";
|
|
23
23
|
import { getDateCalendarUtilityClass } from "./dateCalendarClasses.js";
|
|
@@ -25,6 +25,7 @@ import { useControlledValue } from "../internals/hooks/useControlledValue.js";
|
|
|
25
25
|
import { singleItemValueManager } from "../internals/utils/valueManagers.js";
|
|
26
26
|
import { VIEW_HEIGHT } from "../internals/constants/dimensions.js";
|
|
27
27
|
import { usePickerPrivateContext } from "../internals/hooks/usePickerPrivateContext.js";
|
|
28
|
+
import { useApplyDefaultValuesToDateValidationProps } from "../managers/useDateManager.js";
|
|
28
29
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
29
30
|
const useUtilityClasses = classes => {
|
|
30
31
|
const slots = {
|
|
@@ -34,25 +35,20 @@ const useUtilityClasses = classes => {
|
|
|
34
35
|
return composeClasses(slots, getDateCalendarUtilityClass, classes);
|
|
35
36
|
};
|
|
36
37
|
function useDateCalendarDefaultizedProps(props, name) {
|
|
37
|
-
const utils = useUtils();
|
|
38
|
-
const defaultDates = useDefaultDates();
|
|
39
38
|
const themeProps = useThemeProps({
|
|
40
39
|
props,
|
|
41
40
|
name
|
|
42
41
|
});
|
|
43
42
|
const reduceAnimations = useReduceAnimations(themeProps.reduceAnimations);
|
|
44
|
-
|
|
43
|
+
const validationProps = useApplyDefaultValuesToDateValidationProps(themeProps);
|
|
44
|
+
return _extends({}, themeProps, validationProps, {
|
|
45
45
|
loading: themeProps.loading ?? false,
|
|
46
|
-
disablePast: themeProps.disablePast ?? false,
|
|
47
|
-
disableFuture: themeProps.disableFuture ?? false,
|
|
48
46
|
openTo: themeProps.openTo ?? 'day',
|
|
49
47
|
views: themeProps.views ?? ['year', 'day'],
|
|
50
48
|
reduceAnimations,
|
|
51
49
|
renderLoading: themeProps.renderLoading ?? (() => /*#__PURE__*/_jsx("span", {
|
|
52
50
|
children: "..."
|
|
53
|
-
}))
|
|
54
|
-
minDate: applyDefaultDate(utils, themeProps.minDate, defaultDates.minDate),
|
|
55
|
-
maxDate: applyDefaultDate(utils, themeProps.maxDate, defaultDates.maxDate)
|
|
51
|
+
}))
|
|
56
52
|
});
|
|
57
53
|
}
|
|
58
54
|
const DateCalendarRoot = styled(PickerViewRoot, {
|
|
@@ -81,7 +81,7 @@ const PickersCalendarWeekNumberLabel = styled(Typography, {
|
|
|
81
81
|
display: 'flex',
|
|
82
82
|
justifyContent: 'center',
|
|
83
83
|
alignItems: 'center',
|
|
84
|
-
color: theme.palette.text.disabled
|
|
84
|
+
color: (theme.vars || theme).palette.text.disabled
|
|
85
85
|
}));
|
|
86
86
|
const PickersCalendarWeekNumber = styled(Typography, {
|
|
87
87
|
name: 'MuiDayCalendar',
|
|
@@ -94,7 +94,7 @@ const PickersCalendarWeekNumber = styled(Typography, {
|
|
|
94
94
|
height: DAY_SIZE,
|
|
95
95
|
padding: 0,
|
|
96
96
|
margin: `0 ${DAY_MARGIN}px`,
|
|
97
|
-
color: theme.palette.text.disabled,
|
|
97
|
+
color: (theme.vars || theme).palette.text.disabled,
|
|
98
98
|
fontSize: '0.75rem',
|
|
99
99
|
alignItems: 'center',
|
|
100
100
|
justifyContent: 'center',
|
package/esm/DatePicker/shared.js
CHANGED
|
@@ -1,17 +1,15 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import { useThemeProps } from '@mui/material/styles';
|
|
4
|
-
import { useDefaultDates, useUtils } from "../internals/hooks/useUtils.js";
|
|
5
4
|
import { applyDefaultViewProps } from "../internals/utils/views.js";
|
|
6
|
-
import { applyDefaultDate } from "../internals/utils/date-utils.js";
|
|
7
5
|
import { DatePickerToolbar } from "./DatePickerToolbar.js";
|
|
6
|
+
import { useApplyDefaultValuesToDateValidationProps } from "../managers/useDateManager.js";
|
|
8
7
|
export function useDatePickerDefaultizedProps(props, name) {
|
|
9
|
-
const utils = useUtils();
|
|
10
|
-
const defaultDates = useDefaultDates();
|
|
11
8
|
const themeProps = useThemeProps({
|
|
12
9
|
props,
|
|
13
10
|
name
|
|
14
11
|
});
|
|
12
|
+
const validationProps = useApplyDefaultValuesToDateValidationProps(themeProps);
|
|
15
13
|
const localeText = React.useMemo(() => {
|
|
16
14
|
if (themeProps.localeText?.toolbarTitle == null) {
|
|
17
15
|
return themeProps.localeText;
|
|
@@ -20,7 +18,7 @@ export function useDatePickerDefaultizedProps(props, name) {
|
|
|
20
18
|
datePickerToolbarTitle: themeProps.localeText.toolbarTitle
|
|
21
19
|
});
|
|
22
20
|
}, [themeProps.localeText]);
|
|
23
|
-
return _extends({}, themeProps, {
|
|
21
|
+
return _extends({}, themeProps, validationProps, {
|
|
24
22
|
localeText
|
|
25
23
|
}, applyDefaultViewProps({
|
|
26
24
|
views: themeProps.views,
|
|
@@ -28,10 +26,6 @@ export function useDatePickerDefaultizedProps(props, name) {
|
|
|
28
26
|
defaultViews: ['year', 'day'],
|
|
29
27
|
defaultOpenTo: 'day'
|
|
30
28
|
}), {
|
|
31
|
-
disableFuture: themeProps.disableFuture ?? false,
|
|
32
|
-
disablePast: themeProps.disablePast ?? false,
|
|
33
|
-
minDate: applyDefaultDate(utils, themeProps.minDate, defaultDates.minDate),
|
|
34
|
-
maxDate: applyDefaultDate(utils, themeProps.maxDate, defaultDates.maxDate),
|
|
35
29
|
slots: _extends({
|
|
36
30
|
toolbar: DatePickerToolbar
|
|
37
31
|
}, themeProps.slots)
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import { useThemeProps } from '@mui/material/styles';
|
|
4
|
-
import {
|
|
5
|
-
import { applyDefaultDate } from "../internals/utils/date-utils.js";
|
|
4
|
+
import { useUtils } from "../internals/hooks/useUtils.js";
|
|
6
5
|
import { DateTimePickerTabs } from "./DateTimePickerTabs.js";
|
|
7
6
|
import { DateTimePickerToolbar } from "./DateTimePickerToolbar.js";
|
|
8
7
|
import { applyDefaultViewProps } from "../internals/utils/views.js";
|
|
9
8
|
import { resolveTimeViewsResponse } from "../internals/utils/date-time-utils.js";
|
|
9
|
+
import { useApplyDefaultValuesToDateTimeValidationProps } from "../managers/useDateTimeManager.js";
|
|
10
10
|
export function useDateTimePickerDefaultizedProps(props, name) {
|
|
11
11
|
const utils = useUtils();
|
|
12
|
-
const defaultDates = useDefaultDates();
|
|
13
12
|
const themeProps = useThemeProps({
|
|
14
13
|
props,
|
|
15
14
|
name
|
|
16
15
|
});
|
|
16
|
+
const validationProps = useApplyDefaultValuesToDateTimeValidationProps(themeProps);
|
|
17
17
|
const ampm = themeProps.ampm ?? utils.is12HourCycleInCurrentLocale();
|
|
18
18
|
const localeText = React.useMemo(() => {
|
|
19
19
|
if (themeProps.localeText?.toolbarTitle == null) {
|
|
@@ -43,7 +43,7 @@ export function useDateTimePickerDefaultizedProps(props, name) {
|
|
|
43
43
|
timeSteps: themeProps.timeSteps,
|
|
44
44
|
views: defaultViews
|
|
45
45
|
});
|
|
46
|
-
return _extends({}, themeProps, {
|
|
46
|
+
return _extends({}, themeProps, validationProps, {
|
|
47
47
|
timeSteps,
|
|
48
48
|
openTo,
|
|
49
49
|
shouldRenderTimeInASingleColumn,
|
|
@@ -52,16 +52,6 @@ export function useDateTimePickerDefaultizedProps(props, name) {
|
|
|
52
52
|
ampm,
|
|
53
53
|
localeText,
|
|
54
54
|
orientation: themeProps.orientation ?? 'portrait',
|
|
55
|
-
// TODO: Remove from public API
|
|
56
|
-
disableIgnoringDatePartForTimeValidation: themeProps.disableIgnoringDatePartForTimeValidation ?? Boolean(themeProps.minDateTime || themeProps.maxDateTime ||
|
|
57
|
-
// allow time clock to correctly check time validity: https://github.com/mui/mui-x/issues/8520
|
|
58
|
-
themeProps.disablePast || themeProps.disableFuture),
|
|
59
|
-
disableFuture: themeProps.disableFuture ?? false,
|
|
60
|
-
disablePast: themeProps.disablePast ?? false,
|
|
61
|
-
minDate: applyDefaultDate(utils, themeProps.minDateTime ?? themeProps.minDate, defaultDates.minDate),
|
|
62
|
-
maxDate: applyDefaultDate(utils, themeProps.maxDateTime ?? themeProps.maxDate, defaultDates.maxDate),
|
|
63
|
-
minTime: themeProps.minDateTime ?? themeProps.minTime,
|
|
64
|
-
maxTime: themeProps.maxDateTime ?? themeProps.maxTime,
|
|
65
55
|
slots: _extends({
|
|
66
56
|
toolbar: DateTimePickerToolbar,
|
|
67
57
|
tabs: DateTimePickerTabs
|
|
@@ -11,14 +11,15 @@ import { shouldForwardProp } from '@mui/system/createStyled';
|
|
|
11
11
|
import { styled, useThemeProps } from '@mui/material/styles';
|
|
12
12
|
import { unstable_useControlled as useControlled, unstable_composeClasses as composeClasses, unstable_useEventCallback as useEventCallback } from '@mui/utils';
|
|
13
13
|
import { MonthCalendarButton } from "./MonthCalendarButton.js";
|
|
14
|
-
import { useUtils, useNow
|
|
14
|
+
import { useUtils, useNow } from "../internals/hooks/useUtils.js";
|
|
15
15
|
import { getMonthCalendarUtilityClass } from "./monthCalendarClasses.js";
|
|
16
|
-
import {
|
|
16
|
+
import { getMonthsInYear } from "../internals/utils/date-utils.js";
|
|
17
17
|
import { singleItemValueManager } from "../internals/utils/valueManagers.js";
|
|
18
18
|
import { SECTION_TYPE_GRANULARITY } from "../internals/utils/getDefaultReferenceDate.js";
|
|
19
19
|
import { useControlledValue } from "../internals/hooks/useControlledValue.js";
|
|
20
20
|
import { DIALOG_WIDTH } from "../internals/constants/dimensions.js";
|
|
21
21
|
import { usePickerPrivateContext } from "../internals/hooks/usePickerPrivateContext.js";
|
|
22
|
+
import { useApplyDefaultValuesToDateValidationProps } from "../managers/useDateManager.js";
|
|
22
23
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
23
24
|
const useUtilityClasses = classes => {
|
|
24
25
|
const slots = {
|
|
@@ -27,19 +28,13 @@ const useUtilityClasses = classes => {
|
|
|
27
28
|
return composeClasses(slots, getMonthCalendarUtilityClass, classes);
|
|
28
29
|
};
|
|
29
30
|
export function useMonthCalendarDefaultizedProps(props, name) {
|
|
30
|
-
const utils = useUtils();
|
|
31
|
-
const defaultDates = useDefaultDates();
|
|
32
31
|
const themeProps = useThemeProps({
|
|
33
32
|
props,
|
|
34
33
|
name
|
|
35
34
|
});
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
}, themeProps, {
|
|
40
|
-
monthsPerRow: themeProps.monthsPerRow ?? 3,
|
|
41
|
-
minDate: applyDefaultDate(utils, themeProps.minDate, defaultDates.minDate),
|
|
42
|
-
maxDate: applyDefaultDate(utils, themeProps.maxDate, defaultDates.maxDate)
|
|
35
|
+
const validationProps = useApplyDefaultValuesToDateValidationProps(themeProps);
|
|
36
|
+
return _extends({}, themeProps, validationProps, {
|
|
37
|
+
monthsPerRow: themeProps.monthsPerRow ?? 3
|
|
43
38
|
});
|
|
44
39
|
}
|
|
45
40
|
const MonthCalendarRoot = styled('div', {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { PickersSectionListProps } from
|
|
2
|
+
import type { PickersSectionListProps } from './PickersSectionList.types';
|
|
3
3
|
export declare const PickersSectionListRoot: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof React.ClassAttributes<HTMLDivElement> | keyof React.HTMLAttributes<HTMLDivElement>>, {}>;
|
|
4
4
|
export declare const PickersSectionListSection: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, keyof React.ClassAttributes<HTMLSpanElement> | keyof React.HTMLAttributes<HTMLSpanElement>>, {}>;
|
|
5
5
|
export declare const PickersSectionListSectionSeparator: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, keyof React.ClassAttributes<HTMLSpanElement> | keyof React.HTMLAttributes<HTMLSpanElement>>, {}>;
|
|
@@ -2,6 +2,7 @@ import * as React from 'react';
|
|
|
2
2
|
import { SlotComponentProps } from '@mui/utils';
|
|
3
3
|
import { PickersSectionListClasses } from "./pickersSectionListClasses.js";
|
|
4
4
|
import { PickerOwnerState } from "../models/index.js";
|
|
5
|
+
import type { UseFieldDOMGetters } from '../internals/hooks/useField/useField.types';
|
|
5
6
|
export interface PickersSectionListSlots {
|
|
6
7
|
root: React.ElementType;
|
|
7
8
|
section: React.ElementType;
|
|
@@ -28,12 +29,7 @@ export interface PickersSectionElement {
|
|
|
28
29
|
before: React.HTMLAttributes<HTMLSpanElement>;
|
|
29
30
|
after: React.HTMLAttributes<HTMLSpanElement>;
|
|
30
31
|
}
|
|
31
|
-
export interface PickersSectionListRef {
|
|
32
|
-
getRoot: () => HTMLElement;
|
|
33
|
-
getSectionContainer: (sectionIndex: number) => HTMLElement;
|
|
34
|
-
getSectionContent: (sectionIndex: number) => HTMLElement;
|
|
35
|
-
getSectionIndexFromDOMElement: (element: Element | null | undefined) => number | null;
|
|
36
|
-
}
|
|
32
|
+
export interface PickersSectionListRef extends Omit<UseFieldDOMGetters, 'isReady'> {}
|
|
37
33
|
export interface ExportedPickersSectionListProps extends Pick<React.HTMLAttributes<HTMLDivElement>, 'tabIndex'> {
|
|
38
34
|
/**
|
|
39
35
|
* The elements to render.
|