@mui/x-date-pickers-pro 8.0.0-beta.0 → 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.
Files changed (99) hide show
  1. package/CHANGELOG.md +171 -0
  2. package/DateRangeCalendar/DateRangeCalendar.js +2 -7
  3. package/DateRangeCalendar/DateRangeCalendar.types.d.ts +1 -1
  4. package/DateRangePicker/DateRangePicker.js +3 -1
  5. package/DateRangePicker/shared.js +2 -7
  6. package/DateRangePickerDay/DateRangePickerDay.d.ts +1 -41
  7. package/DateRangePickerDay/DateRangePickerDay.js +89 -57
  8. package/DateRangePickerDay/DateRangePickerDay.types.d.ts +91 -0
  9. package/DateRangePickerDay/DateRangePickerDay.types.js +5 -0
  10. package/DateRangePickerDay/index.d.ts +1 -1
  11. package/DateTimeRangePicker/DateTimeRangePicker.js +3 -1
  12. package/DateTimeRangePicker/shared.js +2 -11
  13. package/DesktopDateRangePicker/DesktopDateRangePicker.js +1 -0
  14. package/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.js +1 -0
  15. package/DesktopTimeRangePicker/DesktopTimeRangePicker.js +1 -0
  16. package/MobileDateRangePicker/MobileDateRangePicker.js +1 -0
  17. package/MobileDateTimeRangePicker/MobileDateTimeRangePicker.js +1 -0
  18. package/MobileTimeRangePicker/MobileTimeRangePicker.js +1 -0
  19. package/SingleInputDateRangeField/useSingleInputDateRangeField.d.ts +1 -1
  20. package/SingleInputDateRangeField/useSingleInputDateRangeField.js +2 -16
  21. package/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.d.ts +1 -1
  22. package/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.js +2 -16
  23. package/SingleInputTimeRangeField/useSingleInputTimeRangeField.d.ts +1 -1
  24. package/SingleInputTimeRangeField/useSingleInputTimeRangeField.js +2 -16
  25. package/TimeRangePicker/TimeRangePicker.js +3 -1
  26. package/TimeRangePicker/shared.js +2 -3
  27. package/esm/DateRangeCalendar/DateRangeCalendar.js +3 -8
  28. package/esm/DateRangeCalendar/DateRangeCalendar.types.d.ts +1 -1
  29. package/esm/DateRangePicker/DateRangePicker.js +3 -1
  30. package/esm/DateRangePicker/shared.js +3 -8
  31. package/esm/DateRangePickerDay/DateRangePickerDay.d.ts +1 -41
  32. package/esm/DateRangePickerDay/DateRangePickerDay.js +90 -58
  33. package/esm/DateRangePickerDay/DateRangePickerDay.types.d.ts +91 -0
  34. package/esm/DateRangePickerDay/DateRangePickerDay.types.js +1 -0
  35. package/esm/DateRangePickerDay/index.d.ts +1 -1
  36. package/esm/DateTimeRangePicker/DateTimeRangePicker.js +3 -1
  37. package/esm/DateTimeRangePicker/shared.js +3 -12
  38. package/esm/DesktopDateRangePicker/DesktopDateRangePicker.js +1 -0
  39. package/esm/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.js +1 -0
  40. package/esm/DesktopTimeRangePicker/DesktopTimeRangePicker.js +1 -0
  41. package/esm/MobileDateRangePicker/MobileDateRangePicker.js +1 -0
  42. package/esm/MobileDateTimeRangePicker/MobileDateTimeRangePicker.js +1 -0
  43. package/esm/MobileTimeRangePicker/MobileTimeRangePicker.js +1 -0
  44. package/esm/SingleInputDateRangeField/useSingleInputDateRangeField.d.ts +1 -1
  45. package/esm/SingleInputDateRangeField/useSingleInputDateRangeField.js +3 -17
  46. package/esm/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.d.ts +1 -1
  47. package/esm/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.js +3 -17
  48. package/esm/SingleInputTimeRangeField/useSingleInputTimeRangeField.d.ts +1 -1
  49. package/esm/SingleInputTimeRangeField/useSingleInputTimeRangeField.js +3 -17
  50. package/esm/TimeRangePicker/TimeRangePicker.js +3 -1
  51. package/esm/TimeRangePicker/shared.js +3 -4
  52. package/esm/hooks/useMultiInputRangeField/useMultiInputRangeField.d.ts +2 -2
  53. package/esm/hooks/useMultiInputRangeField/useTextFieldProps.js +4 -16
  54. package/esm/index.js +1 -1
  55. package/esm/internals/utils/releaseInfo.js +1 -1
  56. package/esm/managers/useDateRangeManager.js +12 -13
  57. package/esm/managers/useDateTimeRangeManager.js +13 -13
  58. package/esm/managers/useTimeRangeManager.js +13 -11
  59. package/hooks/useMultiInputRangeField/useMultiInputRangeField.d.ts +2 -2
  60. package/hooks/useMultiInputRangeField/useTextFieldProps.js +3 -15
  61. package/index.js +1 -1
  62. package/internals/utils/releaseInfo.js +1 -1
  63. package/managers/useDateRangeManager.js +11 -12
  64. package/managers/useDateTimeRangeManager.js +12 -12
  65. package/managers/useTimeRangeManager.js +12 -10
  66. package/modern/DateRangeCalendar/DateRangeCalendar.js +3 -8
  67. package/modern/DateRangeCalendar/DateRangeCalendar.types.d.ts +1 -1
  68. package/modern/DateRangePicker/DateRangePicker.js +3 -1
  69. package/modern/DateRangePicker/shared.js +3 -8
  70. package/modern/DateRangePickerDay/DateRangePickerDay.d.ts +1 -41
  71. package/modern/DateRangePickerDay/DateRangePickerDay.js +90 -58
  72. package/modern/DateRangePickerDay/DateRangePickerDay.types.d.ts +91 -0
  73. package/modern/DateRangePickerDay/DateRangePickerDay.types.js +1 -0
  74. package/modern/DateRangePickerDay/index.d.ts +1 -1
  75. package/modern/DateTimeRangePicker/DateTimeRangePicker.js +3 -1
  76. package/modern/DateTimeRangePicker/shared.js +3 -12
  77. package/modern/DesktopDateRangePicker/DesktopDateRangePicker.js +1 -0
  78. package/modern/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.js +1 -0
  79. package/modern/DesktopTimeRangePicker/DesktopTimeRangePicker.js +1 -0
  80. package/modern/MobileDateRangePicker/MobileDateRangePicker.js +1 -0
  81. package/modern/MobileDateTimeRangePicker/MobileDateTimeRangePicker.js +1 -0
  82. package/modern/MobileTimeRangePicker/MobileTimeRangePicker.js +1 -0
  83. package/modern/SingleInputDateRangeField/useSingleInputDateRangeField.d.ts +1 -1
  84. package/modern/SingleInputDateRangeField/useSingleInputDateRangeField.js +3 -17
  85. package/modern/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.d.ts +1 -1
  86. package/modern/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.js +3 -17
  87. package/modern/SingleInputTimeRangeField/useSingleInputTimeRangeField.d.ts +1 -1
  88. package/modern/SingleInputTimeRangeField/useSingleInputTimeRangeField.js +3 -17
  89. package/modern/TimeRangePicker/TimeRangePicker.js +3 -1
  90. package/modern/TimeRangePicker/shared.js +3 -4
  91. package/modern/hooks/useMultiInputRangeField/useMultiInputRangeField.d.ts +2 -2
  92. package/modern/hooks/useMultiInputRangeField/useTextFieldProps.js +4 -16
  93. package/modern/index.js +1 -1
  94. package/modern/internals/utils/releaseInfo.js +1 -1
  95. package/modern/managers/useDateRangeManager.js +12 -13
  96. package/modern/managers/useDateTimeRangeManager.js +13 -13
  97. package/modern/managers/useTimeRangeManager.js +13 -11
  98. package/package.json +4 -4
  99. package/tsconfig.build.tsbuildinfo +1 -1
@@ -1,4 +1,4 @@
1
- import { PickerManagerEnableAccessibleFieldDOMStructure, PickerManagerFieldInternalProps, UseFieldResponse } from '@mui/x-date-pickers/internals';
1
+ import { PickerManagerEnableAccessibleFieldDOMStructure, PickerManagerFieldInternalProps, UseFieldReturnValue } from '@mui/x-date-pickers/internals';
2
2
  import { UseTextFieldBaseForwardedProps } from "./useTextFieldProps.js";
3
3
  import { PickerAnyRangeManager } from "../../internals/models/managers.js";
4
4
  import { UseMultiInputRangeFieldRootPropsReturnValue } from "./useMultiInputRangeFieldRootProps.js";
@@ -63,7 +63,7 @@ interface UseMultiInputRangeFieldReturnValue<TManager extends PickerAnyRangeMana
63
63
  endTextField: UseMultiInputRangeFieldTextFieldProps<PickerManagerEnableAccessibleFieldDOMStructure<TManager>, TTextFieldProps>;
64
64
  enableAccessibleFieldDOMStructure: PickerManagerEnableAccessibleFieldDOMStructure<TManager>;
65
65
  }
66
- export type UseMultiInputRangeFieldTextFieldProps<TEnableAccessibleFieldDOMStructure extends boolean, TForwardedProps extends UseTextFieldBaseForwardedProps> = Omit<UseFieldResponse<TEnableAccessibleFieldDOMStructure, TForwardedProps & {
66
+ export type UseMultiInputRangeFieldTextFieldProps<TEnableAccessibleFieldDOMStructure extends boolean, TForwardedProps extends UseTextFieldBaseForwardedProps> = Omit<UseFieldReturnValue<TEnableAccessibleFieldDOMStructure, TForwardedProps & {
67
67
  onKeyDown: React.KeyboardEventHandler;
68
68
  onClick: React.MouseEventHandler;
69
69
  onFocus: React.FocusEventHandler;
@@ -4,8 +4,7 @@ const _excluded = ["clearable", "onClear", "openPickerAriaLabel"];
4
4
  import * as React from 'react';
5
5
  import useEventCallback from '@mui/utils/useEventCallback';
6
6
  import { useDateManager, useDateTimeManager, useTimeManager } from '@mui/x-date-pickers/managers';
7
- import { useSplitFieldProps } from '@mui/x-date-pickers/hooks';
8
- import { useField, useFieldInternalPropsWithDefaults, useNullableFieldPrivateContext, useNullablePickerContext, usePickerPrivateContext } from '@mui/x-date-pickers/internals';
7
+ import { useField, useNullableFieldPrivateContext, useNullablePickerContext, usePickerPrivateContext } from '@mui/x-date-pickers/internals';
9
8
  import { useNullablePickerRangePositionContext } from "../../internals/hooks/useNullablePickerRangePositionContext.js";
10
9
  /**
11
10
  * @ignore - internal hook.
@@ -102,21 +101,10 @@ export function useTextFieldProps(parameters) {
102
101
  onKeyDown: handleKeyDown,
103
102
  onChange: handleChange
104
103
  });
105
- const splittedProps = useSplitFieldProps(allProps, valueType);
106
- const internalPropsWithDefaults = useFieldInternalPropsWithDefaults({
107
- manager,
108
- internalProps: splittedProps.internalProps,
109
- skipContextFieldRefAssignment: rangePosition !== position
110
- });
111
104
  const _ref = useField({
112
- forwardedProps: splittedProps.forwardedProps,
113
- internalProps: internalPropsWithDefaults,
114
- valueManager: manager.internal_valueManager,
115
- fieldValueManager: manager.internal_fieldValueManager,
116
- validator: manager.validator,
117
- valueType: manager.valueType,
118
- // TODO v8: Add a real aria label before moving the opening logic to the field on range pickers.
119
- getOpenPickerButtonAriaLabel: () => ''
105
+ manager,
106
+ props: allProps,
107
+ skipContextFieldRefAssignment: rangePosition !== position
120
108
  }),
121
109
  fieldResponse = _objectWithoutPropertiesLoose(_ref, _excluded);
122
110
  React.useEffect(() => {
package/modern/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-date-pickers-pro v8.0.0-beta.0
2
+ * @mui/x-date-pickers-pro v8.0.0-beta.2
3
3
  *
4
4
  * @license MUI X Commercial
5
5
  * This source code is licensed under the commercial license found in the
@@ -1,6 +1,6 @@
1
1
  import { ponyfillGlobal } from '@mui/utils';
2
2
  export const getReleaseInfo = () => {
3
- const releaseInfo = "MTc0MjI0ODgwMDAwMA==";
3
+ const releaseInfo = "MTc0MzExMjgwMDAwMA==";
4
4
  if (process.env.NODE_ENV !== 'production') {
5
5
  // A simple hack to set the value in the test environment (has no build step).
6
6
  // eslint-disable-next-line no-useless-concat
@@ -3,7 +3,7 @@
3
3
  import _extends from "@babel/runtime/helpers/esm/extends";
4
4
  import * as React from 'react';
5
5
  import { usePickerTranslations } from '@mui/x-date-pickers/hooks';
6
- import { getDateFieldInternalPropsDefaults, useUtils } from '@mui/x-date-pickers/internals';
6
+ import { useApplyDefaultValuesToDateValidationProps, useUtils } from '@mui/x-date-pickers/internals';
7
7
  import { getRangeFieldValueManager, rangeValueManager } from "../internals/utils/valueManagers.js";
8
8
  import { validateDateRange } from "../validation/index.js";
9
9
  import { formatRange } from "../internals/utils/date-utils.js";
@@ -20,22 +20,21 @@ export function useDateRangeManager(parameters = {}) {
20
20
  dateSeparator
21
21
  }),
22
22
  internal_enableAccessibleFieldDOMStructure: enableAccessibleFieldDOMStructure,
23
- internal_applyDefaultsToFieldInternalProps: ({
24
- internalProps,
25
- utils,
26
- defaultDates
27
- }) => _extends({}, internalProps, getDateFieldInternalPropsDefaults({
28
- defaultDates,
29
- utils,
30
- internalProps
31
- })),
23
+ internal_useApplyDefaultValuesToFieldInternalProps: useApplyDefaultValuesToDateRangeFieldInternalProps,
32
24
  internal_useOpenPickerButtonAriaLabel: useOpenPickerButtonAriaLabel
33
25
  }), [enableAccessibleFieldDOMStructure, dateSeparator]);
34
26
  }
35
- function useOpenPickerButtonAriaLabel() {
27
+ function useOpenPickerButtonAriaLabel(value) {
36
28
  const utils = useUtils();
37
29
  const translations = usePickerTranslations();
38
- return React.useCallback(value => {
30
+ return React.useMemo(() => {
39
31
  return translations.openRangePickerDialogue(formatRange(utils, value, 'fullDate'));
40
- }, [translations, utils]);
32
+ }, [value, translations, utils]);
33
+ }
34
+ function useApplyDefaultValuesToDateRangeFieldInternalProps(internalProps) {
35
+ const utils = useUtils();
36
+ const validationProps = useApplyDefaultValuesToDateValidationProps(internalProps);
37
+ return React.useMemo(() => _extends({}, internalProps, validationProps, {
38
+ format: internalProps.format ?? utils.formats.keyboardDate
39
+ }), [internalProps, validationProps, utils]);
41
40
  }
@@ -3,7 +3,7 @@
3
3
  import _extends from "@babel/runtime/helpers/esm/extends";
4
4
  import * as React from 'react';
5
5
  import { usePickerTranslations } from '@mui/x-date-pickers/hooks';
6
- import { getDateTimeFieldInternalPropsDefaults, useUtils } from '@mui/x-date-pickers/internals';
6
+ import { useApplyDefaultValuesToDateTimeValidationProps, useUtils } from '@mui/x-date-pickers/internals';
7
7
  import { getRangeFieldValueManager, rangeValueManager } from "../internals/utils/valueManagers.js";
8
8
  import { validateDateTimeRange } from "../validation/index.js";
9
9
  import { formatRange } from "../internals/utils/date-utils.js";
@@ -20,22 +20,22 @@ export function useDateTimeRangeManager(parameters = {}) {
20
20
  dateSeparator
21
21
  }),
22
22
  internal_enableAccessibleFieldDOMStructure: enableAccessibleFieldDOMStructure,
23
- internal_applyDefaultsToFieldInternalProps: ({
24
- internalProps,
25
- utils,
26
- defaultDates
27
- }) => _extends({}, internalProps, getDateTimeFieldInternalPropsDefaults({
28
- internalProps,
29
- utils,
30
- defaultDates
31
- })),
23
+ internal_useApplyDefaultValuesToFieldInternalProps: useApplyDefaultValuesToDateTimeRangeFieldInternalProps,
32
24
  internal_useOpenPickerButtonAriaLabel: useOpenPickerButtonAriaLabel
33
25
  }), [enableAccessibleFieldDOMStructure, dateSeparator]);
34
26
  }
35
- function useOpenPickerButtonAriaLabel() {
27
+ function useOpenPickerButtonAriaLabel(value) {
36
28
  const utils = useUtils();
37
29
  const translations = usePickerTranslations();
38
- return React.useCallback(value => {
30
+ return React.useMemo(() => {
39
31
  return translations.openRangePickerDialogue(formatRange(utils, value, 'fullDate'));
40
- }, [translations, utils]);
32
+ }, [value, translations, utils]);
33
+ }
34
+ function useApplyDefaultValuesToDateTimeRangeFieldInternalProps(internalProps) {
35
+ const utils = useUtils();
36
+ const validationProps = useApplyDefaultValuesToDateTimeValidationProps(internalProps);
37
+ const ampm = React.useMemo(() => internalProps.ampm ?? utils.is12HourCycleInCurrentLocale(), [internalProps.ampm, utils]);
38
+ return React.useMemo(() => _extends({}, internalProps, validationProps, {
39
+ format: internalProps.format ?? (ampm ? utils.formats.keyboardDateTime12h : utils.formats.keyboardDateTime24h)
40
+ }), [internalProps, validationProps, ampm, utils]);
41
41
  }
@@ -3,7 +3,7 @@
3
3
  import _extends from "@babel/runtime/helpers/esm/extends";
4
4
  import * as React from 'react';
5
5
  import { usePickerTranslations } from '@mui/x-date-pickers/hooks';
6
- import { getTimeFieldInternalPropsDefaults, useUtils } from '@mui/x-date-pickers/internals';
6
+ import { useApplyDefaultValuesToTimeValidationProps, useUtils } from '@mui/x-date-pickers/internals';
7
7
  import { getRangeFieldValueManager, rangeValueManager } from "../internals/utils/valueManagers.js";
8
8
  import { validateTimeRange } from "../validation/index.js";
9
9
  import { formatRange } from "../internals/utils/date-utils.js";
@@ -21,23 +21,25 @@ export function useTimeRangeManager(parameters = {}) {
21
21
  dateSeparator
22
22
  }),
23
23
  internal_enableAccessibleFieldDOMStructure: enableAccessibleFieldDOMStructure,
24
- internal_applyDefaultsToFieldInternalProps: ({
25
- internalProps,
26
- utils
27
- }) => _extends({}, internalProps, getTimeFieldInternalPropsDefaults({
28
- utils,
29
- internalProps
30
- })),
24
+ internal_useApplyDefaultValuesToFieldInternalProps: useApplyDefaultValuesToTimeRangeFieldInternalProps,
31
25
  internal_useOpenPickerButtonAriaLabel: createUseOpenPickerButtonAriaLabel(ampm)
32
26
  }), [enableAccessibleFieldDOMStructure, dateSeparator, ampm]);
33
27
  }
34
28
  function createUseOpenPickerButtonAriaLabel(ampm) {
35
- return function useOpenPickerButtonAriaLabel() {
29
+ return function useOpenPickerButtonAriaLabel(value) {
36
30
  const utils = useUtils();
37
31
  const translations = usePickerTranslations();
38
- return React.useCallback(value => {
32
+ return React.useMemo(() => {
39
33
  const formatKey = ampm ?? utils.is12HourCycleInCurrentLocale() ? 'fullTime12h' : 'fullTime24h';
40
34
  return translations.openRangePickerDialogue(formatRange(utils, value, formatKey));
41
- }, [translations, utils]);
35
+ }, [value, translations, utils]);
42
36
  };
37
+ }
38
+ function useApplyDefaultValuesToTimeRangeFieldInternalProps(internalProps) {
39
+ const utils = useUtils();
40
+ const validationProps = useApplyDefaultValuesToTimeValidationProps(internalProps);
41
+ const ampm = React.useMemo(() => internalProps.ampm ?? utils.is12HourCycleInCurrentLocale(), [internalProps.ampm, utils]);
42
+ return React.useMemo(() => _extends({}, internalProps, validationProps, {
43
+ format: internalProps.format ?? (ampm ? utils.formats.fullTime12h : utils.formats.fullTime24h)
44
+ }), [internalProps, validationProps, ampm, utils]);
43
45
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mui/x-date-pickers-pro",
3
- "version": "8.0.0-beta.0",
3
+ "version": "8.0.0-beta.2",
4
4
  "description": "The Pro plan edition of the Date and Time Picker components (MUI X).",
5
5
  "author": "MUI Team",
6
6
  "main": "./index.js",
@@ -37,9 +37,9 @@
37
37
  "clsx": "^2.1.1",
38
38
  "prop-types": "^15.8.1",
39
39
  "react-transition-group": "^4.4.5",
40
- "@mui/x-license": "8.0.0-beta.0",
41
- "@mui/x-date-pickers": "8.0.0-beta.0",
42
- "@mui/x-internals": "8.0.0-beta.0"
40
+ "@mui/x-internals": "8.0.0-beta.2",
41
+ "@mui/x-license": "8.0.0-beta.2",
42
+ "@mui/x-date-pickers": "8.0.0-beta.2"
43
43
  },
44
44
  "peerDependencies": {
45
45
  "@emotion/react": "^11.9.0",