@mui/x-date-pickers 6.2.0 → 6.2.1

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 (88) hide show
  1. package/CHANGELOG.md +49 -1
  2. package/DesktopDatePicker/DesktopDatePicker.js +1 -0
  3. package/DesktopDateTimePicker/DesktopDateTimePicker.js +1 -0
  4. package/DesktopTimePicker/DesktopTimePicker.js +1 -0
  5. package/LocalizationProvider/LocalizationProvider.d.ts +1 -1
  6. package/LocalizationProvider/LocalizationProvider.js +1 -1
  7. package/MobileDatePicker/MobileDatePicker.js +1 -0
  8. package/MobileDateTimePicker/MobileDateTimePicker.js +1 -0
  9. package/MobileTimePicker/MobileTimePicker.js +1 -0
  10. package/StaticDatePicker/StaticDatePicker.js +1 -0
  11. package/StaticDateTimePicker/StaticDateTimePicker.js +3 -2
  12. package/StaticTimePicker/StaticTimePicker.js +3 -2
  13. package/index.js +1 -1
  14. package/internals/hooks/useDesktopPicker/useDesktopPicker.d.ts +1 -1
  15. package/internals/hooks/useDesktopPicker/useDesktopPicker.js +13 -14
  16. package/internals/hooks/useDesktopPicker/useDesktopPicker.types.d.ts +1 -1
  17. package/internals/hooks/useField/useField.types.d.ts +1 -2
  18. package/internals/hooks/useField/useField.utils.d.ts +2 -2
  19. package/internals/hooks/useField/useFieldState.js +1 -1
  20. package/internals/hooks/useMobilePicker/useMobilePicker.d.ts +1 -1
  21. package/internals/hooks/useMobilePicker/useMobilePicker.js +10 -10
  22. package/internals/hooks/useMobilePicker/useMobilePicker.types.d.ts +1 -1
  23. package/internals/hooks/usePicker/usePicker.d.ts +1 -1
  24. package/internals/hooks/usePicker/usePicker.js +2 -0
  25. package/internals/hooks/usePicker/usePicker.types.d.ts +1 -1
  26. package/internals/hooks/usePicker/usePickerValue.d.ts +1 -1
  27. package/internals/hooks/usePicker/usePickerValue.js +9 -11
  28. package/internals/hooks/usePicker/usePickerValue.types.d.ts +4 -2
  29. package/internals/hooks/useStaticPicker/useStaticPicker.d.ts +1 -1
  30. package/internals/hooks/useStaticPicker/useStaticPicker.js +10 -10
  31. package/internals/hooks/useStaticPicker/useStaticPicker.types.d.ts +1 -1
  32. package/internals/utils/valueManagers.js +1 -1
  33. package/legacy/DesktopDatePicker/DesktopDatePicker.js +1 -0
  34. package/legacy/DesktopDateTimePicker/DesktopDateTimePicker.js +1 -0
  35. package/legacy/DesktopTimePicker/DesktopTimePicker.js +1 -0
  36. package/legacy/LocalizationProvider/LocalizationProvider.js +1 -1
  37. package/legacy/MobileDatePicker/MobileDatePicker.js +1 -0
  38. package/legacy/MobileDateTimePicker/MobileDateTimePicker.js +1 -0
  39. package/legacy/MobileTimePicker/MobileTimePicker.js +1 -0
  40. package/legacy/StaticDatePicker/StaticDatePicker.js +1 -0
  41. package/legacy/StaticDateTimePicker/StaticDateTimePicker.js +3 -2
  42. package/legacy/StaticTimePicker/StaticTimePicker.js +3 -2
  43. package/legacy/index.js +1 -1
  44. package/legacy/internals/hooks/useDesktopPicker/useDesktopPicker.js +8 -10
  45. package/legacy/internals/hooks/useField/useFieldState.js +1 -1
  46. package/legacy/internals/hooks/useMobilePicker/useMobilePicker.js +5 -6
  47. package/legacy/internals/hooks/usePicker/usePicker.js +2 -0
  48. package/legacy/internals/hooks/usePicker/usePickerValue.js +9 -13
  49. package/legacy/internals/hooks/useStaticPicker/useStaticPicker.js +7 -8
  50. package/legacy/internals/utils/valueManagers.js +2 -2
  51. package/models/fields.d.ts +1 -0
  52. package/modern/DesktopDatePicker/DesktopDatePicker.js +1 -0
  53. package/modern/DesktopDateTimePicker/DesktopDateTimePicker.js +1 -0
  54. package/modern/DesktopTimePicker/DesktopTimePicker.js +1 -0
  55. package/modern/LocalizationProvider/LocalizationProvider.js +1 -1
  56. package/modern/MobileDatePicker/MobileDatePicker.js +1 -0
  57. package/modern/MobileDateTimePicker/MobileDateTimePicker.js +1 -0
  58. package/modern/MobileTimePicker/MobileTimePicker.js +1 -0
  59. package/modern/StaticDatePicker/StaticDatePicker.js +1 -0
  60. package/modern/StaticDateTimePicker/StaticDateTimePicker.js +3 -2
  61. package/modern/StaticTimePicker/StaticTimePicker.js +3 -2
  62. package/modern/index.js +1 -1
  63. package/modern/internals/hooks/useDesktopPicker/useDesktopPicker.js +13 -14
  64. package/modern/internals/hooks/useField/useFieldState.js +1 -1
  65. package/modern/internals/hooks/useMobilePicker/useMobilePicker.js +10 -10
  66. package/modern/internals/hooks/usePicker/usePicker.js +2 -0
  67. package/modern/internals/hooks/usePicker/usePickerValue.js +9 -11
  68. package/modern/internals/hooks/useStaticPicker/useStaticPicker.js +10 -10
  69. package/modern/internals/utils/valueManagers.js +1 -1
  70. package/node/DesktopDatePicker/DesktopDatePicker.js +1 -0
  71. package/node/DesktopDateTimePicker/DesktopDateTimePicker.js +1 -0
  72. package/node/DesktopTimePicker/DesktopTimePicker.js +1 -0
  73. package/node/LocalizationProvider/LocalizationProvider.js +1 -1
  74. package/node/MobileDatePicker/MobileDatePicker.js +1 -0
  75. package/node/MobileDateTimePicker/MobileDateTimePicker.js +1 -0
  76. package/node/MobileTimePicker/MobileTimePicker.js +1 -0
  77. package/node/StaticDatePicker/StaticDatePicker.js +1 -0
  78. package/node/StaticDateTimePicker/StaticDateTimePicker.js +3 -2
  79. package/node/StaticTimePicker/StaticTimePicker.js +3 -2
  80. package/node/index.js +1 -1
  81. package/node/internals/hooks/useDesktopPicker/useDesktopPicker.js +13 -14
  82. package/node/internals/hooks/useField/useFieldState.js +1 -1
  83. package/node/internals/hooks/useMobilePicker/useMobilePicker.js +10 -10
  84. package/node/internals/hooks/usePicker/usePicker.js +2 -0
  85. package/node/internals/hooks/usePicker/usePickerValue.js +9 -11
  86. package/node/internals/hooks/useStaticPicker/useStaticPicker.js +10 -10
  87. package/node/internals/utils/valueManagers.js +1 -1
  88. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -3,9 +3,57 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## 6.2.1
7
+
8
+ _Apr 20, 2023_
9
+
10
+ We'd like to offer a big thanks to the 9 contributors who made this release possible. Here are some highlights ✨:
11
+
12
+ - 🚀 Add virtualization to row detail panels (#7969) @yaredtsy
13
+ - 🐞 Bugfixes
14
+ - 📚 Documentation improvements
15
+
16
+ ### `@mui/x-data-grid@v6.2.1` / `@mui/x-data-grid-pro@v6.2.1` / `@mui/x-data-grid-premium@v6.2.1`
17
+
18
+ #### Changes
19
+
20
+ - [DataGrid] Add `getTogglableColumns` to `Hide all` and `Show all` actions (#8496) @MBilalShafi
21
+ - [DataGrid] Add Grid + Joy UI experiment page (#8067) @cherniavskii
22
+ - [DataGrid] Fix print style when rendering inside Shadow DOM (#8656) @Bwatermelon
23
+ - [DataGrid] Replace `GridAutoSizer` with `ResizeObserver` (#8091) @m4theushw
24
+ - [DataGrid] Use stable ID for the placeholder filter item (#8603) @m4theushw
25
+ - [DataGridPro] Virtualize row detail panels (#7969) @yaredtsy
26
+
27
+ ### `@mui/x-date-pickers@v6.2.1` / `@mui/x-date-pickers-pro@v6.2.1`
28
+
29
+ #### Changes
30
+
31
+ - [pickers] Do not include the time in date components when going to today (#8657) @flaviendelangle
32
+ - [pickers] Sync internal state with controlled value (#8674) @alexfauquette
33
+
34
+ ### `@mui/x-codemod@v6.0.6`
35
+
36
+ #### Changes
37
+
38
+ - [codemod] Avoid filter failures on object prototype properties (#8647) @LukasTy
39
+
40
+ ### Docs
41
+
42
+ - [docs] Add no-op service worker to fix stale cache issue (#8598) @cherniavskii
43
+ - [docs] Clarify what `AdapterDayjs` is in the Getting Started page (#8219) @flaviendelangle
44
+ - [docs] Fix typo on picker page description (#8611) @maxolasersquad
45
+ - [docs] Improve section title in Getting Started page (#8648) @flaviendelangle
46
+ - [docs] Inform about input format modification (#8458) @alexfauquette
47
+
48
+ ### Core
49
+
50
+ - [core] Fix release date (#8618) @flaviendelangle
51
+ - [core] Upgrade monorepo (#8668) @MBilalShafi
52
+ - [charts] Support Tooltip (#8356) @alexfauquette
53
+
6
54
  ## 6.2.0
7
55
 
8
- _Apr 13, 2023_
56
+ _Apr 14, 2023_
9
57
 
10
58
  We'd like to offer a big thanks to the 8 contributors who made this release possible. Here are some highlights ✨:
11
59
 
@@ -49,6 +49,7 @@ const DesktopDatePicker = /*#__PURE__*/React.forwardRef(function DesktopDatePick
49
49
  } = useDesktopPicker({
50
50
  props,
51
51
  valueManager: singleItemValueManager,
52
+ valueType: 'date',
52
53
  getOpenDialogAriaText: localeText.openDatePickerDialogue,
53
54
  validator: validateDate
54
55
  });
@@ -57,6 +57,7 @@ const DesktopDateTimePicker = /*#__PURE__*/React.forwardRef(function DesktopDate
57
57
  } = useDesktopPicker({
58
58
  props,
59
59
  valueManager: singleItemValueManager,
60
+ valueType: 'date-time',
60
61
  getOpenDialogAriaText: localeText.openDatePickerDialogue,
61
62
  validator: validateDateTime
62
63
  });
@@ -49,6 +49,7 @@ const DesktopTimePicker = /*#__PURE__*/React.forwardRef(function DesktopTimePick
49
49
  } = useDesktopPicker({
50
50
  props,
51
51
  valueManager: singleItemValueManager,
52
+ valueType: 'time',
52
53
  getOpenDialogAriaText: localeText.openTimePickerDialogue,
53
54
  validator: validateTime
54
55
  });
@@ -17,7 +17,7 @@ export interface LocalizationProviderProps<TDate> {
17
17
  children?: React.ReactNode;
18
18
  /**
19
19
  * Date library adapter class function.
20
- * @see See the localization provider {@link https://mui.com/x/react-date-pickers/getting-started/#code-setup code setup section} for more details.
20
+ * @see See the localization provider {@link https://mui.com/x/react-date-pickers/getting-started/#setup-your-date-library-adapter date adapter setup section} for more details.
21
21
  */
22
22
  dateAdapter?: new (...args: any) => MuiPickersAdapter<TDate>;
23
23
  /** Formats that are used for any child pickers */
@@ -90,7 +90,7 @@ process.env.NODE_ENV !== "production" ? LocalizationProvider.propTypes = {
90
90
  children: PropTypes.node,
91
91
  /**
92
92
  * Date library adapter class function.
93
- * @see See the localization provider {@link https://mui.com/x/react-date-pickers/getting-started/#code-setup code setup section} for more details.
93
+ * @see See the localization provider {@link https://mui.com/x/react-date-pickers/getting-started/#setup-your-date-library-adapter date adapter setup section} for more details.
94
94
  */
95
95
  dateAdapter: PropTypes.func,
96
96
  /**
@@ -46,6 +46,7 @@ const MobileDatePicker = /*#__PURE__*/React.forwardRef(function MobileDatePicker
46
46
  } = useMobilePicker({
47
47
  props,
48
48
  valueManager: singleItemValueManager,
49
+ valueType: 'date',
49
50
  getOpenDialogAriaText: localeText.openDatePickerDialogue,
50
51
  validator: validateDate
51
52
  });
@@ -55,6 +55,7 @@ const MobileDateTimePicker = /*#__PURE__*/React.forwardRef(function MobileDateTi
55
55
  } = useMobilePicker({
56
56
  props,
57
57
  valueManager: singleItemValueManager,
58
+ valueType: 'date-time',
58
59
  getOpenDialogAriaText: localeText.openDatePickerDialogue,
59
60
  validator: validateDateTime
60
61
  });
@@ -48,6 +48,7 @@ const MobileTimePicker = /*#__PURE__*/React.forwardRef(function MobileTimePicker
48
48
  } = useMobilePicker({
49
49
  props,
50
50
  valueManager: singleItemValueManager,
51
+ valueType: 'time',
51
52
  getOpenDialogAriaText: localeText.openTimePickerDialogue,
52
53
  validator: validateTime
53
54
  });
@@ -32,6 +32,7 @@ const StaticDatePicker = /*#__PURE__*/React.forwardRef(function StaticDatePicker
32
32
  } = useStaticPicker({
33
33
  props,
34
34
  valueManager: singleItemValueManager,
35
+ valueType: 'date',
35
36
  validator: validateDate,
36
37
  ref
37
38
  });
@@ -42,8 +42,9 @@ const StaticDateTimePicker = /*#__PURE__*/React.forwardRef(function StaticDateTi
42
42
  } = useStaticPicker({
43
43
  props,
44
44
  valueManager: singleItemValueManager,
45
- ref,
46
- validator: validateDateTime
45
+ valueType: 'date-time',
46
+ validator: validateDateTime,
47
+ ref
47
48
  });
48
49
  return renderPicker();
49
50
  });
@@ -34,8 +34,9 @@ const StaticTimePicker = /*#__PURE__*/React.forwardRef(function StaticTimePicker
34
34
  } = useStaticPicker({
35
35
  props,
36
36
  valueManager: singleItemValueManager,
37
- ref,
38
- validator: validateTime
37
+ valueType: 'time',
38
+ validator: validateTime,
39
+ ref
39
40
  });
40
41
  return renderPicker();
41
42
  });
package/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-date-pickers v6.2.0
2
+ * @mui/x-date-pickers v6.2.1
3
3
  *
4
4
  * @license MIT
5
5
  * This source code is licensed under the MIT license found in the
@@ -7,6 +7,6 @@ import { DateOrTimeView } from '../../../models';
7
7
  * - DesktopDateTimePicker
8
8
  * - DesktopTimePicker
9
9
  */
10
- export declare const useDesktopPicker: <TDate, TView extends DateOrTimeView, TExternalProps extends UseDesktopPickerProps<TDate, TView, any, TExternalProps>>({ props, valueManager, getOpenDialogAriaText, validator, }: UseDesktopPickerParams<TDate, TView, TExternalProps>) => {
10
+ export declare const useDesktopPicker: <TDate, TView extends DateOrTimeView, TExternalProps extends UseDesktopPickerProps<TDate, TView, any, TExternalProps>>({ props, getOpenDialogAriaText, ...pickerParams }: UseDesktopPickerParams<TDate, TView, TExternalProps>) => {
11
11
  renderPicker: () => JSX.Element;
12
12
  };
@@ -1,7 +1,8 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
- const _excluded = ["ownerState"],
4
- _excluded2 = ["ownerState"];
3
+ const _excluded = ["props", "getOpenDialogAriaText"],
4
+ _excluded2 = ["ownerState"],
5
+ _excluded3 = ["ownerState"];
5
6
  import * as React from 'react';
6
7
  import { useSlotProps } from '@mui/base/utils';
7
8
  import MuiInputAdornment from '@mui/material/InputAdornment';
@@ -21,13 +22,13 @@ import { jsxs as _jsxs } from "react/jsx-runtime";
21
22
  * - DesktopDateTimePicker
22
23
  * - DesktopTimePicker
23
24
  */
24
- export const useDesktopPicker = ({
25
- props,
26
- valueManager,
27
- getOpenDialogAriaText,
28
- validator
29
- }) => {
25
+ export const useDesktopPicker = _ref => {
30
26
  var _innerSlotProps$toolb, _innerSlotProps$toolb2, _slots$inputAdornment, _slots$openPickerButt, _slots$layout;
27
+ let {
28
+ props,
29
+ getOpenDialogAriaText
30
+ } = _ref,
31
+ pickerParams = _objectWithoutPropertiesLoose(_ref, _excluded);
31
32
  const {
32
33
  slots,
33
34
  slotProps: innerSlotProps,
@@ -55,15 +56,13 @@ export const useDesktopPicker = ({
55
56
  renderCurrentView,
56
57
  shouldRestoreFocus,
57
58
  fieldProps: pickerFieldProps
58
- } = usePicker({
59
+ } = usePicker(_extends({}, pickerParams, {
59
60
  props,
60
61
  inputRef: internalInputRef,
61
- valueManager,
62
- validator,
63
62
  autoFocusView: true,
64
63
  additionalViewProps: {},
65
64
  wrapperVariant: 'desktop'
66
- });
65
+ }));
67
66
  const InputAdornment = (_slots$inputAdornment = slots.inputAdornment) != null ? _slots$inputAdornment : MuiInputAdornment;
68
67
  const _useSlotProps = useSlotProps({
69
68
  elementType: InputAdornment,
@@ -73,7 +72,7 @@ export const useDesktopPicker = ({
73
72
  },
74
73
  ownerState: props
75
74
  }),
76
- inputAdornmentProps = _objectWithoutPropertiesLoose(_useSlotProps, _excluded);
75
+ inputAdornmentProps = _objectWithoutPropertiesLoose(_useSlotProps, _excluded2);
77
76
  const OpenPickerButton = (_slots$openPickerButt = slots.openPickerButton) != null ? _slots$openPickerButt : IconButton;
78
77
  const _useSlotProps2 = useSlotProps({
79
78
  elementType: OpenPickerButton,
@@ -86,7 +85,7 @@ export const useDesktopPicker = ({
86
85
  },
87
86
  ownerState: props
88
87
  }),
89
- openPickerButtonProps = _objectWithoutPropertiesLoose(_useSlotProps2, _excluded2);
88
+ openPickerButtonProps = _objectWithoutPropertiesLoose(_useSlotProps2, _excluded3);
90
89
  const OpenPickerIcon = slots.openPickerIcon;
91
90
  const Field = slots.field;
92
91
  const fieldProps = useSlotProps({
@@ -64,7 +64,7 @@ export interface UseDesktopPickerProps<TDate, TView extends DateOrTimeView, TErr
64
64
  */
65
65
  slotProps?: UseDesktopPickerSlotsComponentsProps<TDate, TView>;
66
66
  }
67
- export interface UseDesktopPickerParams<TDate, TView extends DateOrTimeView, TExternalProps extends UseDesktopPickerProps<TDate, TView, any, TExternalProps>> extends Pick<UsePickerParams<TDate | null, TDate, TView, FieldSection, TExternalProps, {}>, 'valueManager' | 'validator'> {
67
+ export interface UseDesktopPickerParams<TDate, TView extends DateOrTimeView, TExternalProps extends UseDesktopPickerProps<TDate, TView, any, TExternalProps>> extends Pick<UsePickerParams<TDate | null, TDate, TView, FieldSection, TExternalProps, {}>, 'valueManager' | 'valueType' | 'validator'> {
68
68
  props: TExternalProps;
69
69
  getOpenDialogAriaText: (date: TDate | null, utils: MuiPickersAdapter<TDate>) => string;
70
70
  }
@@ -1,5 +1,5 @@
1
1
  import * as React from 'react';
2
- import { FieldSectionType, FieldSection, FieldSelectedSections, MuiPickersAdapter } from '../../../models';
2
+ import { FieldSectionType, FieldSection, FieldSelectedSections, MuiPickersAdapter, FieldValueType } from '../../../models';
3
3
  import type { PickerValueManager } from '../usePicker';
4
4
  import { InferError, Validator } from '../validation/useValidation';
5
5
  export interface UseFieldParams<TValue, TDate, TSection extends FieldSection, TForwardedProps extends UseFieldForwardedProps, TInternalProps extends UseFieldInternalProps<any, any, any>> {
@@ -249,7 +249,6 @@ export type UseFieldValidationProps<TValue, TInternalProps extends {
249
249
  value: TValue;
250
250
  };
251
251
  export type AvailableAdjustKeyCode = 'ArrowUp' | 'ArrowDown' | 'PageUp' | 'PageDown' | 'Home' | 'End';
252
- export type FieldValueType = 'date' | 'time' | 'date-time';
253
252
  export type SectionNeighbors = {
254
253
  [sectionIndex: number]: {
255
254
  /**
@@ -1,5 +1,5 @@
1
- import { AvailableAdjustKeyCode, FieldSectionsValueBoundaries, SectionOrdering, FieldValueType, FieldSectionWithoutPosition, FieldSectionValueBoundaries } from './useField.types';
2
- import { FieldSectionType, FieldSection, MuiPickersAdapter } from '../../../models';
1
+ import { AvailableAdjustKeyCode, FieldSectionsValueBoundaries, SectionOrdering, FieldSectionWithoutPosition, FieldSectionValueBoundaries } from './useField.types';
2
+ import { FieldSectionType, FieldValueType, FieldSection, MuiPickersAdapter } from '../../../models';
3
3
  import { PickersLocaleText } from '../../../locales/utils/pickersLocaleTextApi';
4
4
  export declare const getDateSectionConfigFromFormatToken: <TDate>(utils: MuiPickersAdapter<TDate>, formatToken: string) => Pick<FieldSection, 'type' | 'contentType'>;
5
5
  export declare const getDaysInWeekStr: <TDate>(utils: MuiPickersAdapter<TDate>, format: string) => string[];
@@ -38,7 +38,7 @@ export const useFieldState = params => {
38
38
  return {
39
39
  sections,
40
40
  value: valueFromTheOutside,
41
- referenceValue: fieldValueManager.updateReferenceValue(utils, valueFromTheOutside, valueManager.getTodayValue(utils)),
41
+ referenceValue: fieldValueManager.updateReferenceValue(utils, valueFromTheOutside, valueManager.getTodayValue(utils, valueType)),
42
42
  tempValueStrAndroid: null
43
43
  };
44
44
  });
@@ -7,6 +7,6 @@ import { DateOrTimeView } from '../../../models';
7
7
  * - MobileDateTimePicker
8
8
  * - MobileTimePicker
9
9
  */
10
- export declare const useMobilePicker: <TDate, TView extends DateOrTimeView, TExternalProps extends UseMobilePickerProps<TDate, TView, any, TExternalProps>>({ props, valueManager, getOpenDialogAriaText, validator, }: UseMobilePickerParams<TDate, TView, TExternalProps>) => {
10
+ export declare const useMobilePicker: <TDate, TView extends DateOrTimeView, TExternalProps extends UseMobilePickerProps<TDate, TView, any, TExternalProps>>({ props, getOpenDialogAriaText, ...pickerParams }: UseMobilePickerParams<TDate, TView, TExternalProps>) => {
11
11
  renderPicker: () => JSX.Element;
12
12
  };
@@ -1,4 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
+ const _excluded = ["props", "getOpenDialogAriaText"];
2
4
  import * as React from 'react';
3
5
  import { useSlotProps } from '@mui/base/utils';
4
6
  import useForkRef from '@mui/utils/useForkRef';
@@ -17,13 +19,13 @@ import { jsxs as _jsxs } from "react/jsx-runtime";
17
19
  * - MobileDateTimePicker
18
20
  * - MobileTimePicker
19
21
  */
20
- export const useMobilePicker = ({
21
- props,
22
- valueManager,
23
- getOpenDialogAriaText,
24
- validator
25
- }) => {
22
+ export const useMobilePicker = _ref => {
26
23
  var _innerSlotProps$toolb, _innerSlotProps$toolb2, _slots$layout;
24
+ let {
25
+ props,
26
+ getOpenDialogAriaText
27
+ } = _ref,
28
+ pickerParams = _objectWithoutPropertiesLoose(_ref, _excluded);
27
29
  const {
28
30
  slots,
29
31
  slotProps: innerSlotProps,
@@ -47,15 +49,13 @@ export const useMobilePicker = ({
47
49
  layoutProps,
48
50
  renderCurrentView,
49
51
  fieldProps: pickerFieldProps
50
- } = usePicker({
52
+ } = usePicker(_extends({}, pickerParams, {
51
53
  props,
52
54
  inputRef: internalInputRef,
53
- valueManager,
54
- validator,
55
55
  autoFocusView: true,
56
56
  additionalViewProps: {},
57
57
  wrapperVariant: 'mobile'
58
- });
58
+ }));
59
59
  const Field = slots.field;
60
60
  const fieldProps = useSlotProps({
61
61
  elementType: Field,
@@ -41,7 +41,7 @@ export interface UseMobilePickerProps<TDate, TView extends DateOrTimeView, TErro
41
41
  */
42
42
  slotProps?: UseMobilePickerSlotsComponentsProps<TDate, TView>;
43
43
  }
44
- export interface UseMobilePickerParams<TDate, TView extends DateOrTimeView, TExternalProps extends UseMobilePickerProps<TDate, TView, any, TExternalProps>> extends Pick<UsePickerParams<TDate | null, TDate, TView, FieldSection, TExternalProps, {}>, 'valueManager' | 'validator'> {
44
+ export interface UseMobilePickerParams<TDate, TView extends DateOrTimeView, TExternalProps extends UseMobilePickerProps<TDate, TView, any, TExternalProps>> extends Pick<UsePickerParams<TDate | null, TDate, TView, FieldSection, TExternalProps, {}>, 'valueManager' | 'valueType' | 'validator'> {
45
45
  props: TExternalProps;
46
46
  getOpenDialogAriaText: (date: TDate | null, utils: MuiPickersAdapter<TDate>) => string;
47
47
  }
@@ -1,4 +1,4 @@
1
1
  import { UsePickerParams, UsePickerProps, UsePickerResponse } from './usePicker.types';
2
2
  import { InferError } from '../validation/useValidation';
3
3
  import { FieldSection, DateOrTimeView } from '../../../models';
4
- export declare const usePicker: <TValue, TDate, TView extends DateOrTimeView, TSection extends FieldSection, TExternalProps extends UsePickerProps<TValue, TView, TSection, any, any, any>, TAdditionalProps extends {}>({ props, valueManager, wrapperVariant, inputRef, additionalViewProps, validator, autoFocusView, }: UsePickerParams<TValue, TDate, TView, TSection, TExternalProps, TAdditionalProps>) => UsePickerResponse<TValue, TView, TSection, InferError<TExternalProps>>;
4
+ export declare const usePicker: <TValue, TDate, TView extends DateOrTimeView, TSection extends FieldSection, TExternalProps extends UsePickerProps<TValue, TView, TSection, any, any, any>, TAdditionalProps extends {}>({ props, valueManager, valueType, wrapperVariant, inputRef, additionalViewProps, validator, autoFocusView, }: UsePickerParams<TValue, TDate, TView, TSection, TExternalProps, TAdditionalProps>) => UsePickerResponse<TValue, TView, TSection, InferError<TExternalProps>>;
@@ -6,6 +6,7 @@ const warnRenderInputIsDefined = buildWarning(['The `renderInput` prop has been
6
6
  export const usePicker = ({
7
7
  props,
8
8
  valueManager,
9
+ valueType,
9
10
  wrapperVariant,
10
11
  inputRef,
11
12
  additionalViewProps,
@@ -20,6 +21,7 @@ export const usePicker = ({
20
21
  const pickerValueResponse = usePickerValue({
21
22
  props,
22
23
  valueManager,
24
+ valueType,
23
25
  wrapperVariant,
24
26
  validator
25
27
  });
@@ -9,7 +9,7 @@ export interface UsePickerBaseProps<TValue, TView extends DateOrTimeView, TError
9
9
  }
10
10
  export interface UsePickerProps<TValue, TView extends DateOrTimeView, TSection extends FieldSection, TError, TExternalProps extends UsePickerViewsProps<TValue, TView, any, any>, TAdditionalProps extends {}> extends UsePickerValueProps<TValue, TSection, TError>, UsePickerViewsProps<TValue, TView, TExternalProps, TAdditionalProps>, UsePickerLayoutProps {
11
11
  }
12
- export interface UsePickerParams<TValue, TDate, TView extends DateOrTimeView, TSection extends FieldSection, TExternalProps extends UsePickerProps<TValue, TView, TSection, any, any, any>, TAdditionalProps extends {}> extends Pick<UsePickerValueParams<TValue, TDate, TSection, TExternalProps>, 'valueManager' | 'wrapperVariant' | 'validator'>, Pick<UsePickerViewParams<TValue, TView, TExternalProps, TAdditionalProps>, 'additionalViewProps' | 'inputRef' | 'autoFocusView'> {
12
+ export interface UsePickerParams<TValue, TDate, TView extends DateOrTimeView, TSection extends FieldSection, TExternalProps extends UsePickerProps<TValue, TView, TSection, any, any, any>, TAdditionalProps extends {}> extends Pick<UsePickerValueParams<TValue, TDate, TSection, TExternalProps>, 'valueManager' | 'valueType' | 'wrapperVariant' | 'validator'>, Pick<UsePickerViewParams<TValue, TView, TExternalProps, TAdditionalProps>, 'additionalViewProps' | 'inputRef' | 'autoFocusView'> {
13
13
  props: TExternalProps;
14
14
  }
15
15
  export interface UsePickerResponse<TValue, TView extends DateOrTimeView, TSection extends FieldSection, TError> extends Omit<UsePickerValueResponse<TValue, TSection, TError>, 'viewProps' | 'layoutProps'>, Omit<UsePickerViewsResponse<TView>, 'layoutProps'>, UsePickerLayoutPropsResponse<TValue, TView> {
@@ -4,4 +4,4 @@ import { UsePickerValueProps, UsePickerValueParams, UsePickerValueResponse } fro
4
4
  /**
5
5
  * Manage the value lifecycle of all the pickers.
6
6
  */
7
- export declare const usePickerValue: <TValue, TDate, TSection extends FieldSection, TExternalProps extends UsePickerValueProps<TValue, TSection, any>>({ props, valueManager, wrapperVariant, validator, }: UsePickerValueParams<TValue, TDate, TSection, TExternalProps>) => UsePickerValueResponse<TValue, TSection, InferError<TExternalProps>>;
7
+ export declare const usePickerValue: <TValue, TDate, TSection extends FieldSection, TExternalProps extends UsePickerValueProps<TValue, TSection, any>>({ props, valueManager, valueType, wrapperVariant, validator, }: UsePickerValueParams<TValue, TDate, TSection, TExternalProps>) => UsePickerValueResponse<TValue, TSection, InferError<TExternalProps>>;
@@ -97,6 +97,7 @@ const shouldClosePicker = params => {
97
97
  export const usePickerValue = ({
98
98
  props,
99
99
  valueManager,
100
+ valueType,
100
101
  wrapperVariant,
101
102
  validator
102
103
  }) => {
@@ -200,18 +201,15 @@ export const usePickerValue = ({
200
201
  setIsOpen(false);
201
202
  }
202
203
  });
203
- React.useEffect(() => {
204
- if (isOpen) {
205
- setDateState(prev => _extends({}, prev, {
206
- lastCommittedValue: dateState.draft
207
- }));
208
- }
209
- }, [isOpen]); // eslint-disable-line react-hooks/exhaustive-deps
210
-
211
204
  if (inValue !== undefined && (dateState.lastControlledValue === undefined || !valueManager.areValuesEqual(utils, dateState.lastControlledValue, inValue))) {
205
+ const isUpdateComingFromPicker = valueManager.areValuesEqual(utils, dateState.draft, inValue);
212
206
  setDateState(prev => _extends({}, prev, {
213
- lastControlledValue: inValue,
214
- draft: inValue
207
+ lastControlledValue: inValue
208
+ }, isUpdateComingFromPicker ? {} : {
209
+ lastCommittedValue: inValue,
210
+ lastPublishedValue: inValue,
211
+ draft: inValue,
212
+ hasBeenModifiedSinceMount: true
215
213
  }));
216
214
  }
217
215
  const handleClear = useEventCallback(() => {
@@ -244,7 +242,7 @@ export const usePickerValue = ({
244
242
  });
245
243
  const handleSetToday = useEventCallback(() => {
246
244
  updateDate({
247
- value: valueManager.getTodayValue(utils),
245
+ value: valueManager.getTodayValue(utils, valueType),
248
246
  name: 'setValueFromAction',
249
247
  pickerAction: 'today'
250
248
  });
@@ -2,7 +2,7 @@ import { FieldChangeHandlerContext, UseFieldInternalProps } from '../useField';
2
2
  import { InferError, Validator } from '../validation/useValidation';
3
3
  import { UseFieldValidationProps } from '../useField/useField.types';
4
4
  import { WrapperVariant } from '../../models/common';
5
- import { FieldSection, FieldSelectedSections, MuiPickersAdapter } from '../../../models';
5
+ import { FieldSection, FieldSelectedSections, FieldValueType, MuiPickersAdapter } from '../../../models';
6
6
  export interface PickerValueManager<TValue, TDate, TError> {
7
7
  /**
8
8
  * Determines if two values are equal.
@@ -21,9 +21,10 @@ export interface PickerValueManager<TValue, TDate, TError> {
21
21
  * Method returning the value to set when clicking the "Today" button
22
22
  * @template TDate, TValue
23
23
  * @param {MuiPickersAdapter<TDate>} utils The adapter.
24
+ * @param {FieldValueType} valueType The type of the value being edited.
24
25
  * @returns {TValue} The value to set when clicking the "Today" button.
25
26
  */
26
- getTodayValue: (utils: MuiPickersAdapter<TDate>) => TValue;
27
+ getTodayValue: (utils: MuiPickersAdapter<TDate>, valueType: FieldValueType) => TValue;
27
28
  /**
28
29
  * Method parsing the input value to replace all invalid dates by `null`.
29
30
  * @template TDate, TValue
@@ -193,6 +194,7 @@ export interface UsePickerValueProps<TValue, TSection extends FieldSection, TErr
193
194
  export interface UsePickerValueParams<TValue, TDate, TSection extends FieldSection, TExternalProps extends UsePickerValueProps<TValue, TSection, any>> {
194
195
  props: TExternalProps;
195
196
  valueManager: PickerValueManager<TValue, TDate, InferError<TExternalProps>>;
197
+ valueType: FieldValueType;
196
198
  wrapperVariant: WrapperVariant;
197
199
  validator: Validator<TValue, TDate, InferError<TExternalProps>, UseFieldValidationProps<TValue, TExternalProps>>;
198
200
  }
@@ -7,6 +7,6 @@ import { DateOrTimeView } from '../../../models';
7
7
  * - StaticDateTimePicker
8
8
  * - StaticTimePicker
9
9
  */
10
- export declare const useStaticPicker: <TDate, TView extends DateOrTimeView, TExternalProps extends UseStaticPickerProps<TDate, TView, any, TExternalProps>>({ props, valueManager, validator, ref, }: UseStaticPickerParams<TDate, TView, TExternalProps>) => {
10
+ export declare const useStaticPicker: <TDate, TView extends DateOrTimeView, TExternalProps extends UseStaticPickerProps<TDate, TView, any, TExternalProps>>({ props, ref, ...pickerParams }: UseStaticPickerParams<TDate, TView, TExternalProps>) => {
11
11
  renderPicker: () => JSX.Element;
12
12
  };
@@ -1,4 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
+ const _excluded = ["props", "ref"];
2
4
  import * as React from 'react';
3
5
  import clsx from 'clsx';
4
6
  import { styled } from '@mui/material/styles';
@@ -21,13 +23,13 @@ const PickerStaticLayout = styled(PickersLayout)(({
21
23
  * - StaticDateTimePicker
22
24
  * - StaticTimePicker
23
25
  */
24
- export const useStaticPicker = ({
25
- props,
26
- valueManager,
27
- validator,
28
- ref
29
- }) => {
26
+ export const useStaticPicker = _ref => {
30
27
  var _slots$layout;
28
+ let {
29
+ props,
30
+ ref
31
+ } = _ref,
32
+ pickerParams = _objectWithoutPropertiesLoose(_ref, _excluded);
31
33
  const {
32
34
  localeText,
33
35
  slots,
@@ -40,14 +42,12 @@ export const useStaticPicker = ({
40
42
  const {
41
43
  layoutProps,
42
44
  renderCurrentView
43
- } = usePicker({
45
+ } = usePicker(_extends({}, pickerParams, {
44
46
  props,
45
- valueManager,
46
- validator,
47
47
  autoFocusView: autoFocus != null ? autoFocus : false,
48
48
  additionalViewProps: {},
49
49
  wrapperVariant: displayStaticWrapperAs
50
- });
50
+ }));
51
51
  const Layout = (_slots$layout = slots == null ? void 0 : slots.layout) != null ? _slots$layout : PickerStaticLayout;
52
52
  const renderPicker = () => {
53
53
  var _slotProps$layout, _slotProps$layout2, _slotProps$layout3;
@@ -50,7 +50,7 @@ export interface UseStaticPickerProps<TDate, TView extends DateOrTimeView, TErro
50
50
  */
51
51
  slotProps?: UseStaticPickerSlotsComponentsProps<TDate, TView>;
52
52
  }
53
- export interface UseStaticPickerParams<TDate, TView extends DateOrTimeView, TExternalProps extends UseStaticPickerProps<TDate, TView, any, TExternalProps>> extends Pick<UsePickerParams<TDate | null, TDate, TView, FieldSection, TExternalProps, {}>, 'valueManager' | 'validator'> {
53
+ export interface UseStaticPickerParams<TDate, TView extends DateOrTimeView, TExternalProps extends UseStaticPickerProps<TDate, TView, any, TExternalProps>> extends Pick<UsePickerParams<TDate | null, TDate, TView, FieldSection, TExternalProps, {}>, 'valueManager' | 'valueType' | 'validator'> {
54
54
  props: TExternalProps;
55
55
  /**
56
56
  * Ref to pass to the root element
@@ -2,7 +2,7 @@ import { areDatesEqual, replaceInvalidDateByNull } from './date-utils';
2
2
  import { addPositionPropertiesToSections, createDateStrForInputFromSections } from '../hooks/useField/useField.utils';
3
3
  export const singleItemValueManager = {
4
4
  emptyValue: null,
5
- getTodayValue: utils => utils.date(),
5
+ getTodayValue: (utils, valueType) => valueType === 'date' ? utils.startOfDay(utils.date()) : utils.date(),
6
6
  cleanValue: replaceInvalidDateByNull,
7
7
  areValuesEqual: areDatesEqual,
8
8
  isSameError: (a, b) => a === b,
@@ -47,6 +47,7 @@ var DesktopDatePicker = /*#__PURE__*/React.forwardRef(function DesktopDatePicker
47
47
  var _useDesktopPicker = useDesktopPicker({
48
48
  props: props,
49
49
  valueManager: singleItemValueManager,
50
+ valueType: 'date',
50
51
  getOpenDialogAriaText: localeText.openDatePickerDialogue,
51
52
  validator: validateDate
52
53
  }),
@@ -55,6 +55,7 @@ var DesktopDateTimePicker = /*#__PURE__*/React.forwardRef(function DesktopDateTi
55
55
  var _useDesktopPicker = useDesktopPicker({
56
56
  props: props,
57
57
  valueManager: singleItemValueManager,
58
+ valueType: 'date-time',
58
59
  getOpenDialogAriaText: localeText.openDatePickerDialogue,
59
60
  validator: validateDateTime
60
61
  }),
@@ -47,6 +47,7 @@ var DesktopTimePicker = /*#__PURE__*/React.forwardRef(function DesktopTimePicker
47
47
  var _useDesktopPicker = useDesktopPicker({
48
48
  props: props,
49
49
  valueManager: singleItemValueManager,
50
+ valueType: 'time',
50
51
  getOpenDialogAriaText: localeText.openTimePickerDialogue,
51
52
  validator: validateTime
52
53
  }),
@@ -87,7 +87,7 @@ process.env.NODE_ENV !== "production" ? LocalizationProvider.propTypes = {
87
87
  children: PropTypes.node,
88
88
  /**
89
89
  * Date library adapter class function.
90
- * @see See the localization provider {@link https://mui.com/x/react-date-pickers/getting-started/#code-setup code setup section} for more details.
90
+ * @see See the localization provider {@link https://mui.com/x/react-date-pickers/getting-started/#setup-your-date-library-adapter date adapter setup section} for more details.
91
91
  */
92
92
  dateAdapter: PropTypes.func,
93
93
  /**
@@ -44,6 +44,7 @@ var MobileDatePicker = /*#__PURE__*/React.forwardRef(function MobileDatePicker(i
44
44
  var _useMobilePicker = useMobilePicker({
45
45
  props: props,
46
46
  valueManager: singleItemValueManager,
47
+ valueType: 'date',
47
48
  getOpenDialogAriaText: localeText.openDatePickerDialogue,
48
49
  validator: validateDate
49
50
  }),
@@ -53,6 +53,7 @@ var MobileDateTimePicker = /*#__PURE__*/React.forwardRef(function MobileDateTime
53
53
  var _useMobilePicker = useMobilePicker({
54
54
  props: props,
55
55
  valueManager: singleItemValueManager,
56
+ valueType: 'date-time',
56
57
  getOpenDialogAriaText: localeText.openDatePickerDialogue,
57
58
  validator: validateDateTime
58
59
  }),
@@ -46,6 +46,7 @@ var MobileTimePicker = /*#__PURE__*/React.forwardRef(function MobileTimePicker(i
46
46
  var _useMobilePicker = useMobilePicker({
47
47
  props: props,
48
48
  valueManager: singleItemValueManager,
49
+ valueType: 'time',
49
50
  getOpenDialogAriaText: localeText.openTimePickerDialogue,
50
51
  validator: validateTime
51
52
  }),
@@ -30,6 +30,7 @@ var StaticDatePicker = /*#__PURE__*/React.forwardRef(function StaticDatePicker(i
30
30
  var _useStaticPicker = useStaticPicker({
31
31
  props: props,
32
32
  valueManager: singleItemValueManager,
33
+ valueType: 'date',
33
34
  validator: validateDate,
34
35
  ref: ref
35
36
  }),