@mui/x-date-pickers 7.19.0 → 7.20.0

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 (109) hide show
  1. package/CHANGELOG.md +105 -13
  2. package/DateCalendar/DateCalendar.js +1 -1
  3. package/DateCalendar/DateCalendar.types.d.ts +1 -1
  4. package/DateField/DateField.types.d.ts +2 -7
  5. package/DateField/index.d.ts +1 -1
  6. package/DatePicker/DatePicker.js +1 -1
  7. package/DatePicker/DatePicker.types.d.ts +8 -1
  8. package/DatePicker/index.d.ts +1 -1
  9. package/DateTimeField/DateTimeField.types.d.ts +2 -7
  10. package/DateTimeField/index.d.ts +1 -1
  11. package/DateTimePicker/DateTimePicker.js +1 -1
  12. package/DateTimePicker/DateTimePicker.types.d.ts +9 -1
  13. package/DateTimePicker/DateTimePickerTabs.js +1 -1
  14. package/DateTimePicker/index.d.ts +1 -1
  15. package/DesktopDatePicker/DesktopDatePicker.js +1 -1
  16. package/DesktopDateTimePicker/DesktopDateTimePicker.js +1 -1
  17. package/DigitalClock/DigitalClock.js +39 -0
  18. package/MobileDatePicker/MobileDatePicker.js +1 -1
  19. package/MobileDateTimePicker/MobileDateTimePicker.js +1 -1
  20. package/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +38 -1
  21. package/StaticDatePicker/StaticDatePicker.js +1 -1
  22. package/StaticDateTimePicker/StaticDateTimePicker.js +1 -1
  23. package/TimeClock/Clock.js +8 -0
  24. package/TimeField/TimeField.types.d.ts +2 -7
  25. package/TimeField/index.d.ts +1 -1
  26. package/TimePicker/TimePicker.types.d.ts +9 -1
  27. package/TimePicker/index.d.ts +1 -1
  28. package/hooks/index.d.ts +2 -0
  29. package/hooks/index.js +3 -1
  30. package/hooks/useParsedFormat.d.ts +15 -0
  31. package/hooks/useParsedFormat.js +43 -0
  32. package/hooks/usePickersContext.d.ts +4 -0
  33. package/hooks/usePickersContext.js +15 -0
  34. package/index.js +1 -1
  35. package/internals/components/PickersProvider.d.ts +34 -0
  36. package/internals/components/PickersProvider.js +26 -0
  37. package/internals/hooks/useDesktopPicker/useDesktopPicker.js +7 -4
  38. package/internals/hooks/useField/buildSectionsFromFormat.d.ts +1 -2
  39. package/internals/hooks/useField/buildSectionsFromFormat.js +4 -5
  40. package/internals/hooks/useField/useField.utils.d.ts +3 -3
  41. package/internals/hooks/useField/useField.utils.js +13 -13
  42. package/internals/hooks/useField/useFieldCharacterEditing.js +2 -2
  43. package/internals/hooks/useField/useFieldState.js +3 -5
  44. package/internals/hooks/useMobilePicker/useMobilePicker.js +7 -4
  45. package/internals/hooks/usePicker/usePicker.js +3 -1
  46. package/internals/hooks/usePicker/usePickerValue.js +7 -2
  47. package/internals/hooks/usePicker/usePickerValue.types.d.ts +2 -0
  48. package/internals/index.d.ts +1 -0
  49. package/internals/index.js +1 -0
  50. package/internals/utils/utils.d.ts +7 -0
  51. package/internals/utils/utils.js +11 -0
  52. package/models/pickers.d.ts +1 -1
  53. package/modern/DateCalendar/DateCalendar.js +1 -1
  54. package/modern/DatePicker/DatePicker.js +1 -1
  55. package/modern/DateTimePicker/DateTimePicker.js +1 -1
  56. package/modern/DateTimePicker/DateTimePickerTabs.js +1 -1
  57. package/modern/DesktopDatePicker/DesktopDatePicker.js +1 -1
  58. package/modern/DesktopDateTimePicker/DesktopDateTimePicker.js +1 -1
  59. package/modern/DigitalClock/DigitalClock.js +39 -0
  60. package/modern/MobileDatePicker/MobileDatePicker.js +1 -1
  61. package/modern/MobileDateTimePicker/MobileDateTimePicker.js +1 -1
  62. package/modern/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +38 -1
  63. package/modern/StaticDatePicker/StaticDatePicker.js +1 -1
  64. package/modern/StaticDateTimePicker/StaticDateTimePicker.js +1 -1
  65. package/modern/TimeClock/Clock.js +8 -0
  66. package/modern/hooks/index.js +3 -1
  67. package/modern/hooks/useParsedFormat.js +43 -0
  68. package/modern/hooks/usePickersContext.js +15 -0
  69. package/modern/index.js +1 -1
  70. package/modern/internals/components/PickersProvider.js +26 -0
  71. package/modern/internals/hooks/useDesktopPicker/useDesktopPicker.js +7 -4
  72. package/modern/internals/hooks/useField/buildSectionsFromFormat.js +4 -5
  73. package/modern/internals/hooks/useField/useField.utils.js +13 -13
  74. package/modern/internals/hooks/useField/useFieldCharacterEditing.js +2 -2
  75. package/modern/internals/hooks/useField/useFieldState.js +3 -5
  76. package/modern/internals/hooks/useMobilePicker/useMobilePicker.js +7 -4
  77. package/modern/internals/hooks/usePicker/usePicker.js +3 -1
  78. package/modern/internals/hooks/usePicker/usePickerValue.js +7 -2
  79. package/modern/internals/index.js +1 -0
  80. package/modern/internals/utils/utils.js +11 -0
  81. package/node/DateCalendar/DateCalendar.js +1 -1
  82. package/node/DatePicker/DatePicker.js +1 -1
  83. package/node/DateTimePicker/DateTimePicker.js +1 -1
  84. package/node/DateTimePicker/DateTimePickerTabs.js +1 -1
  85. package/node/DesktopDatePicker/DesktopDatePicker.js +1 -1
  86. package/node/DesktopDateTimePicker/DesktopDateTimePicker.js +1 -1
  87. package/node/DigitalClock/DigitalClock.js +39 -0
  88. package/node/MobileDatePicker/MobileDatePicker.js +1 -1
  89. package/node/MobileDateTimePicker/MobileDateTimePicker.js +1 -1
  90. package/node/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +38 -1
  91. package/node/StaticDatePicker/StaticDatePicker.js +1 -1
  92. package/node/StaticDateTimePicker/StaticDateTimePicker.js +1 -1
  93. package/node/TimeClock/Clock.js +8 -0
  94. package/node/hooks/index.js +15 -1
  95. package/node/hooks/useParsedFormat.js +50 -0
  96. package/node/hooks/usePickersContext.js +21 -0
  97. package/node/index.js +1 -1
  98. package/node/internals/components/PickersProvider.js +34 -0
  99. package/node/internals/hooks/useDesktopPicker/useDesktopPicker.js +5 -3
  100. package/node/internals/hooks/useField/buildSectionsFromFormat.js +4 -5
  101. package/node/internals/hooks/useField/useField.utils.js +13 -13
  102. package/node/internals/hooks/useField/useFieldCharacterEditing.js +2 -2
  103. package/node/internals/hooks/useField/useFieldState.js +3 -5
  104. package/node/internals/hooks/useMobilePicker/useMobilePicker.js +5 -3
  105. package/node/internals/hooks/usePicker/usePicker.js +3 -1
  106. package/node/internals/hooks/usePicker/usePickerValue.js +7 -1
  107. package/node/internals/index.js +7 -0
  108. package/node/internals/utils/utils.js +13 -1
  109. package/package.json +4 -4
@@ -15,8 +15,8 @@ var _useId = _interopRequireDefault(require("@mui/utils/useId"));
15
15
  var _PickersModalDialog = require("../../components/PickersModalDialog");
16
16
  var _usePicker = require("../usePicker");
17
17
  var _utils = require("../../utils/utils");
18
- var _LocalizationProvider = require("../../../LocalizationProvider");
19
18
  var _PickersLayout = require("../../../PickersLayout");
19
+ var _PickersProvider = require("../../components/PickersProvider");
20
20
  var _jsxRuntime = require("react/jsx-runtime");
21
21
  const _excluded = ["props", "getOpenDialogAriaText"];
22
22
  /**
@@ -57,7 +57,8 @@ const useMobilePicker = _ref => {
57
57
  actions,
58
58
  layoutProps,
59
59
  renderCurrentView,
60
- fieldProps: pickerFieldProps
60
+ fieldProps: pickerFieldProps,
61
+ contextValue
61
62
  } = (0, _usePicker.usePicker)((0, _extends2.default)({}, pickerParams, {
62
63
  props,
63
64
  fieldRef,
@@ -118,7 +119,8 @@ const useMobilePicker = _ref => {
118
119
  }, innerSlotProps?.mobilePaper)
119
120
  });
120
121
  const handleFieldRef = (0, _useForkRef.default)(fieldRef, fieldProps.unstableFieldRef);
121
- const renderPicker = () => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_LocalizationProvider.LocalizationProvider, {
122
+ const renderPicker = () => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_PickersProvider.PickersProvider, {
123
+ contextValue: contextValue,
122
124
  localeText: localeText,
123
125
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(Field, (0, _extends2.default)({}, fieldProps, {
124
126
  slots: slotsForField,
@@ -55,7 +55,9 @@ const usePicker = ({
55
55
  hasUIView: pickerViewsResponse.hasUIView,
56
56
  shouldRestoreFocus: pickerViewsResponse.shouldRestoreFocus,
57
57
  // Picker layout
58
- layoutProps: pickerLayoutResponse.layoutProps
58
+ layoutProps: pickerLayoutResponse.layoutProps,
59
+ // Picker context
60
+ contextValue: pickerValueResponse.contextValue
59
61
  };
60
62
  };
61
63
  exports.usePicker = usePicker;
@@ -341,12 +341,18 @@ const usePickerValue = ({
341
341
  onSelectShortcut: handleSelectShortcut,
342
342
  isValid
343
343
  });
344
+ const contextValue = React.useMemo(() => ({
345
+ onOpen: handleOpen,
346
+ onClose: handleClose,
347
+ open: isOpen
348
+ }), [isOpen, handleClose, handleOpen]);
344
349
  return {
345
350
  open: isOpen,
346
351
  fieldProps: fieldResponse,
347
352
  viewProps: viewResponse,
348
353
  layoutProps: layoutResponse,
349
- actions
354
+ actions,
355
+ contextValue
350
356
  };
351
357
  };
352
358
  exports.usePickerValue = usePickerValue;
@@ -45,6 +45,12 @@ Object.defineProperty(exports, "PickersPopper", {
45
45
  return _PickersPopper.PickersPopper;
46
46
  }
47
47
  });
48
+ Object.defineProperty(exports, "PickersProvider", {
49
+ enumerable: true,
50
+ get: function () {
51
+ return _PickersProvider.PickersProvider;
52
+ }
53
+ });
48
54
  Object.defineProperty(exports, "PickersToolbar", {
49
55
  enumerable: true,
50
56
  get: function () {
@@ -304,6 +310,7 @@ Object.defineProperty(exports, "useViews", {
304
310
  }
305
311
  });
306
312
  var _PickersArrowSwitcher = require("./components/PickersArrowSwitcher/PickersArrowSwitcher");
313
+ var _PickersProvider = require("./components/PickersProvider");
307
314
  var _PickersModalDialog = require("./components/PickersModalDialog");
308
315
  var _PickersPopper = require("./components/PickersPopper");
309
316
  var _PickersToolbar = require("./components/PickersToolbar");
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.DEFAULT_DESKTOP_MODE_MEDIA_QUERY = void 0;
7
7
  exports.arrayIncludes = arrayIncludes;
8
- exports.onSpaceOrEnter = exports.getActiveElement = exports.executeInTheNextEventLoopTick = void 0;
8
+ exports.onSpaceOrEnter = exports.getFocusedListItemIndex = exports.getActiveElement = exports.executeInTheNextEventLoopTick = void 0;
9
9
  /* Use it instead of .includes method for IE support */
10
10
  function arrayIncludes(array, itemOrItems) {
11
11
  if (Array.isArray(itemOrItems)) {
@@ -42,5 +42,17 @@ const getActiveElement = (root = document) => {
42
42
  }
43
43
  return activeEl;
44
44
  };
45
+
46
+ /**
47
+ * Gets the index of the focused list item in a given ul list element.
48
+ *
49
+ * @param {HTMLUListElement} listElement - The list element to search within.
50
+ * @returns {number} The index of the focused list item, or -1 if none is focused.
51
+ */
45
52
  exports.getActiveElement = getActiveElement;
53
+ const getFocusedListItemIndex = listElement => {
54
+ const children = listElement.children;
55
+ return Array.from(children).findIndex(child => child === getActiveElement(document));
56
+ };
57
+ exports.getFocusedListItemIndex = getFocusedListItemIndex;
46
58
  const DEFAULT_DESKTOP_MODE_MEDIA_QUERY = exports.DEFAULT_DESKTOP_MODE_MEDIA_QUERY = '@media (pointer: fine)';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mui/x-date-pickers",
3
- "version": "7.19.0",
3
+ "version": "7.20.0",
4
4
  "description": "The community edition of the Date and Time Picker components (MUI X).",
5
5
  "author": "MUI Team",
6
6
  "main": "./node/index.js",
@@ -35,13 +35,13 @@
35
35
  "directory": "packages/x-date-pickers"
36
36
  },
37
37
  "dependencies": {
38
- "@babel/runtime": "^7.25.6",
39
- "@mui/utils": "^5.16.6",
38
+ "@babel/runtime": "^7.25.7",
39
+ "@mui/utils": "^5.16.6 || ^6.0.0",
40
40
  "@types/react-transition-group": "^4.4.11",
41
41
  "clsx": "^2.1.1",
42
42
  "prop-types": "^15.8.1",
43
43
  "react-transition-group": "^4.4.5",
44
- "@mui/x-internals": "7.18.0"
44
+ "@mui/x-internals": "7.20.0"
45
45
  },
46
46
  "peerDependencies": {
47
47
  "@emotion/react": "^11.9.0",