@mui/x-date-pickers 6.10.2 → 6.11.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 (190) hide show
  1. package/AdapterDayjs/AdapterDayjs.d.ts +8 -1
  2. package/AdapterDayjs/AdapterDayjs.js +66 -38
  3. package/CHANGELOG.md +154 -0
  4. package/DateCalendar/DateCalendar.d.ts +1 -1
  5. package/DateCalendar/DateCalendar.js +48 -38
  6. package/DateCalendar/DateCalendar.types.d.ts +9 -1
  7. package/DateCalendar/index.d.ts +1 -2
  8. package/DateCalendar/index.js +3 -2
  9. package/DateCalendar/useCalendarState.d.ts +1 -1
  10. package/DateField/DateField.d.ts +1 -1
  11. package/DateField/DateField.js +3 -2
  12. package/DatePicker/DatePicker.d.ts +1 -1
  13. package/DatePicker/DatePickerToolbar.d.ts +1 -1
  14. package/DateTimeField/DateTimeField.d.ts +1 -1
  15. package/DateTimeField/DateTimeField.js +3 -2
  16. package/DateTimePicker/DateTimePicker.d.ts +1 -1
  17. package/DateTimePicker/DateTimePickerToolbar.js +4 -3
  18. package/DayCalendarSkeleton/DayCalendarSkeleton.d.ts +1 -1
  19. package/DesktopDatePicker/DesktopDatePicker.d.ts +1 -1
  20. package/DesktopDatePicker/DesktopDatePicker.js +2 -2
  21. package/DesktopDateTimePicker/DesktopDateTimePicker.d.ts +1 -1
  22. package/DesktopDateTimePicker/DesktopDateTimePicker.js +2 -2
  23. package/DesktopTimePicker/DesktopTimePicker.d.ts +1 -1
  24. package/DesktopTimePicker/DesktopTimePicker.js +2 -2
  25. package/DigitalClock/DigitalClock.d.ts +1 -1
  26. package/LocalizationProvider/LocalizationProvider.d.ts +1 -1
  27. package/MobileDatePicker/MobileDatePicker.d.ts +1 -1
  28. package/MobileDatePicker/MobileDatePicker.js +2 -2
  29. package/MobileDateTimePicker/MobileDateTimePicker.d.ts +1 -1
  30. package/MobileDateTimePicker/MobileDateTimePicker.js +2 -2
  31. package/MobileTimePicker/MobileTimePicker.d.ts +1 -1
  32. package/MobileTimePicker/MobileTimePicker.js +2 -2
  33. package/MonthCalendar/MonthCalendar.d.ts +1 -1
  34. package/MultiSectionDigitalClock/MultiSectionDigitalClock.d.ts +1 -1
  35. package/MultiSectionDigitalClock/MultiSectionDigitalClock.js +3 -2
  36. package/MultiSectionDigitalClock/MultiSectionDigitalClockSection.d.ts +1 -1
  37. package/{DateCalendar → PickersCalendarHeader}/PickersCalendarHeader.d.ts +21 -9
  38. package/{DateCalendar → PickersCalendarHeader}/PickersCalendarHeader.js +72 -28
  39. package/PickersCalendarHeader/index.d.ts +4 -0
  40. package/PickersCalendarHeader/index.js +2 -0
  41. package/PickersCalendarHeader/package.json +6 -0
  42. package/PickersDay/PickersDay.d.ts +1 -1
  43. package/PickersDay/PickersDay.js +1 -0
  44. package/PickersShortcuts/PickersShortcuts.js +1 -0
  45. package/StaticDatePicker/StaticDatePicker.d.ts +1 -1
  46. package/StaticDateTimePicker/StaticDateTimePicker.d.ts +1 -1
  47. package/StaticTimePicker/StaticTimePicker.d.ts +1 -1
  48. package/TimeClock/ClockNumbers.d.ts +1 -1
  49. package/TimeClock/TimeClock.d.ts +1 -1
  50. package/TimeField/TimeField.d.ts +1 -1
  51. package/TimeField/TimeField.js +3 -2
  52. package/TimePicker/TimePicker.d.ts +1 -1
  53. package/TimePicker/TimePickerToolbar.js +3 -2
  54. package/YearCalendar/YearCalendar.d.ts +2 -2
  55. package/index.js +1 -1
  56. package/internals/components/PickersModalDialog.d.ts +2 -2
  57. package/internals/components/PickersPopper.d.ts +3 -3
  58. package/internals/components/PickersToolbar.d.ts +1 -1
  59. package/internals/hooks/date-helpers-hooks.d.ts +1 -2
  60. package/internals/hooks/useDefaultReduceAnimations.d.ts +2 -0
  61. package/internals/hooks/useDefaultReduceAnimations.js +9 -0
  62. package/internals/hooks/useField/useField.js +10 -5
  63. package/internals/hooks/useField/useField.utils.d.ts +1 -1
  64. package/internals/hooks/useField/useField.utils.js +6 -5
  65. package/internals/hooks/usePicker/usePickerValue.js +1 -1
  66. package/internals/index.d.ts +1 -3
  67. package/internals/index.js +1 -2
  68. package/internals/utils/date-utils.d.ts +1 -0
  69. package/internals/utils/date-utils.js +4 -0
  70. package/internals/utils/valueManagers.js +1 -1
  71. package/legacy/AdapterDayjs/AdapterDayjs.js +64 -38
  72. package/legacy/DateCalendar/DateCalendar.js +50 -40
  73. package/legacy/DateCalendar/index.js +3 -2
  74. package/legacy/DateField/DateField.js +3 -2
  75. package/legacy/DateTimeField/DateTimeField.js +3 -2
  76. package/legacy/DateTimePicker/DateTimePickerToolbar.js +4 -3
  77. package/legacy/DesktopDatePicker/DesktopDatePicker.js +2 -2
  78. package/legacy/DesktopDateTimePicker/DesktopDateTimePicker.js +2 -2
  79. package/legacy/DesktopTimePicker/DesktopTimePicker.js +2 -2
  80. package/legacy/MobileDatePicker/MobileDatePicker.js +2 -2
  81. package/legacy/MobileDateTimePicker/MobileDateTimePicker.js +2 -2
  82. package/legacy/MobileTimePicker/MobileTimePicker.js +2 -2
  83. package/legacy/MultiSectionDigitalClock/MultiSectionDigitalClock.js +3 -2
  84. package/legacy/{DateCalendar → PickersCalendarHeader}/PickersCalendarHeader.js +57 -13
  85. package/legacy/PickersCalendarHeader/index.js +2 -0
  86. package/legacy/PickersDay/PickersDay.js +1 -0
  87. package/legacy/PickersShortcuts/PickersShortcuts.js +1 -0
  88. package/legacy/TimeField/TimeField.js +3 -2
  89. package/legacy/TimePicker/TimePickerToolbar.js +3 -2
  90. package/legacy/index.js +1 -1
  91. package/legacy/internals/hooks/useDefaultReduceAnimations.js +9 -0
  92. package/legacy/internals/hooks/useField/useField.js +10 -5
  93. package/legacy/internals/hooks/useField/useField.utils.js +6 -5
  94. package/legacy/internals/hooks/usePicker/usePickerValue.js +1 -1
  95. package/legacy/internals/index.js +1 -2
  96. package/legacy/internals/utils/date-utils.js +4 -0
  97. package/legacy/internals/utils/valueManagers.js +1 -1
  98. package/legacy/locales/fiFI.js +8 -5
  99. package/legacy/locales/isIS.js +33 -16
  100. package/legacy/tests/describeGregorianAdapter/testCalculations.js +63 -16
  101. package/legacy/tests/describeValue/describeValue.js +2 -1
  102. package/legacy/tests/describeValue/testPickerActionBar.js +12 -28
  103. package/legacy/tests/describeValue/testShortcuts.js +119 -0
  104. package/locales/fiFI.js +4 -5
  105. package/locales/isIS.js +13 -16
  106. package/models/adapters.d.ts +1 -0
  107. package/modern/AdapterDayjs/AdapterDayjs.js +65 -38
  108. package/modern/DateCalendar/DateCalendar.js +46 -38
  109. package/modern/DateCalendar/index.js +3 -2
  110. package/modern/DateField/DateField.js +3 -2
  111. package/modern/DateTimeField/DateTimeField.js +3 -2
  112. package/modern/DateTimePicker/DateTimePickerToolbar.js +4 -3
  113. package/modern/DesktopDatePicker/DesktopDatePicker.js +1 -1
  114. package/modern/DesktopDateTimePicker/DesktopDateTimePicker.js +1 -1
  115. package/modern/DesktopTimePicker/DesktopTimePicker.js +1 -1
  116. package/modern/MobileDatePicker/MobileDatePicker.js +1 -1
  117. package/modern/MobileDateTimePicker/MobileDateTimePicker.js +1 -1
  118. package/modern/MobileTimePicker/MobileTimePicker.js +1 -1
  119. package/modern/MultiSectionDigitalClock/MultiSectionDigitalClock.js +3 -2
  120. package/modern/{DateCalendar → PickersCalendarHeader}/PickersCalendarHeader.js +72 -28
  121. package/modern/PickersCalendarHeader/index.js +2 -0
  122. package/modern/PickersDay/PickersDay.js +1 -0
  123. package/modern/PickersShortcuts/PickersShortcuts.js +1 -0
  124. package/modern/TimeField/TimeField.js +3 -2
  125. package/modern/TimePicker/TimePickerToolbar.js +3 -2
  126. package/modern/index.js +1 -1
  127. package/modern/internals/hooks/useDefaultReduceAnimations.js +9 -0
  128. package/modern/internals/hooks/useField/useField.js +10 -5
  129. package/modern/internals/hooks/useField/useField.utils.js +6 -5
  130. package/modern/internals/hooks/usePicker/usePickerValue.js +1 -1
  131. package/modern/internals/index.js +1 -2
  132. package/modern/internals/utils/date-utils.js +4 -0
  133. package/modern/internals/utils/valueManagers.js +1 -1
  134. package/modern/locales/fiFI.js +4 -5
  135. package/modern/locales/isIS.js +13 -16
  136. package/modern/tests/describeGregorianAdapter/testCalculations.js +63 -16
  137. package/modern/tests/describeValue/describeValue.js +2 -1
  138. package/modern/tests/describeValue/testPickerActionBar.js +12 -28
  139. package/modern/tests/describeValue/testShortcuts.js +112 -0
  140. package/node/AdapterDayjs/AdapterDayjs.js +65 -38
  141. package/node/DateCalendar/DateCalendar.js +52 -44
  142. package/node/DateCalendar/index.js +21 -8
  143. package/node/DateField/DateField.js +3 -2
  144. package/node/DateTimeField/DateTimeField.js +3 -2
  145. package/node/DateTimePicker/DateTimePickerToolbar.js +4 -3
  146. package/node/DesktopDatePicker/DesktopDatePicker.js +1 -1
  147. package/node/DesktopDateTimePicker/DesktopDateTimePicker.js +1 -1
  148. package/node/DesktopTimePicker/DesktopTimePicker.js +1 -1
  149. package/node/MobileDatePicker/MobileDatePicker.js +1 -1
  150. package/node/MobileDateTimePicker/MobileDateTimePicker.js +1 -1
  151. package/node/MobileTimePicker/MobileTimePicker.js +1 -1
  152. package/node/MultiSectionDigitalClock/MultiSectionDigitalClock.js +3 -2
  153. package/node/{DateCalendar → PickersCalendarHeader}/PickersCalendarHeader.js +73 -29
  154. package/node/PickersCalendarHeader/index.js +19 -0
  155. package/node/PickersDay/PickersDay.js +1 -0
  156. package/node/PickersShortcuts/PickersShortcuts.js +1 -0
  157. package/node/TimeField/TimeField.js +3 -2
  158. package/node/TimePicker/TimePickerToolbar.js +3 -2
  159. package/node/index.js +1 -1
  160. package/node/internals/hooks/useDefaultReduceAnimations.js +18 -0
  161. package/node/internals/hooks/useField/useField.js +10 -5
  162. package/node/internals/hooks/useField/useField.utils.js +6 -5
  163. package/node/internals/hooks/usePicker/usePickerValue.js +1 -1
  164. package/node/internals/index.js +7 -14
  165. package/node/internals/utils/date-utils.js +6 -1
  166. package/node/internals/utils/valueManagers.js +1 -1
  167. package/node/locales/fiFI.js +4 -5
  168. package/node/locales/isIS.js +13 -16
  169. package/node/tests/describeGregorianAdapter/testCalculations.js +61 -16
  170. package/node/tests/describeValue/describeValue.js +2 -1
  171. package/node/tests/describeValue/testPickerActionBar.js +12 -28
  172. package/node/tests/describeValue/testShortcuts.js +122 -0
  173. package/package.json +3 -3
  174. package/tests/describeGregorianAdapter/testCalculations.js +63 -16
  175. package/tests/describeValue/describeValue.js +2 -1
  176. package/tests/describeValue/testPickerActionBar.js +12 -28
  177. package/tests/describeValue/testShortcuts.js +112 -0
  178. package/themeAugmentation/components.d.ts +6 -14
  179. package/themeAugmentation/overrides.d.ts +0 -20
  180. package/themeAugmentation/props.d.ts +6 -2
  181. package/internals/utils/defaultReduceAnimations.d.ts +0 -1
  182. package/internals/utils/defaultReduceAnimations.js +0 -1
  183. package/legacy/internals/utils/defaultReduceAnimations.js +0 -1
  184. package/modern/internals/utils/defaultReduceAnimations.js +0 -1
  185. package/node/internals/utils/defaultReduceAnimations.js +0 -8
  186. /package/{DateCalendar → PickersCalendarHeader}/pickersCalendarHeaderClasses.d.ts +0 -0
  187. /package/{DateCalendar → PickersCalendarHeader}/pickersCalendarHeaderClasses.js +0 -0
  188. /package/legacy/{DateCalendar → PickersCalendarHeader}/pickersCalendarHeaderClasses.js +0 -0
  189. /package/modern/{DateCalendar → PickersCalendarHeader}/pickersCalendarHeaderClasses.js +0 -0
  190. /package/node/{DateCalendar → PickersCalendarHeader}/pickersCalendarHeaderClasses.js +0 -0
@@ -45,13 +45,20 @@ export declare class AdapterDayjs implements MuiPickersAdapter<Dayjs, string> {
45
45
  private hasTimezonePlugin;
46
46
  private isSame;
47
47
  /**
48
- * Replace "default" by undefined before passing it to `dayjs
48
+ * Replaces "default" by undefined and "system" by the system timezone before passing it to `dayjs`.
49
49
  */
50
50
  private cleanTimezone;
51
51
  private createSystemDate;
52
52
  private createUTCDate;
53
53
  private createTZDate;
54
54
  private getLocaleFormats;
55
+ /**
56
+ * If the new day does not have the same offset as the old one (when switching to summer day time for example),
57
+ * Then dayjs will not automatically adjust the offset (moment does).
58
+ * We have to parse again the value to make sure the `fixOffset` method is applied.
59
+ * See https://github.com/iamkun/dayjs/blob/b3624de619d6e734cd0ffdbbd3502185041c1b60/src/plugin/timezone/index.js#L72
60
+ */
61
+ private adjustOffset;
55
62
  date: (value?: any) => defaultDayjs.Dayjs | null;
56
63
  dateWithTimezone: (value: string | null | undefined, timezone: PickersTimezone) => Dayjs | null;
57
64
  getTimezone: (value: Dayjs) => string;
@@ -185,9 +185,24 @@ export class AdapterDayjs {
185
185
  return value.format(comparisonTemplate) === comparingInValueTimezone.format(comparisonTemplate);
186
186
  };
187
187
  /**
188
- * Replace "default" by undefined before passing it to `dayjs
188
+ * Replaces "default" by undefined and "system" by the system timezone before passing it to `dayjs`.
189
189
  */
190
- this.cleanTimezone = timezone => timezone === 'default' ? undefined : timezone;
190
+ this.cleanTimezone = timezone => {
191
+ switch (timezone) {
192
+ case 'default':
193
+ {
194
+ return undefined;
195
+ }
196
+ case 'system':
197
+ {
198
+ return defaultDayjs.tz.guess();
199
+ }
200
+ default:
201
+ {
202
+ return timezone;
203
+ }
204
+ }
205
+ };
191
206
  this.createSystemDate = value => {
192
207
  // TODO v7: Stop using `this.rawDayJsInstance` (drop the `instance` param on the adapters)
193
208
  /* istanbul ignore next */
@@ -236,6 +251,28 @@ export class AdapterDayjs {
236
251
  }
237
252
  return localeObject.formats;
238
253
  };
254
+ /**
255
+ * If the new day does not have the same offset as the old one (when switching to summer day time for example),
256
+ * Then dayjs will not automatically adjust the offset (moment does).
257
+ * We have to parse again the value to make sure the `fixOffset` method is applied.
258
+ * See https://github.com/iamkun/dayjs/blob/b3624de619d6e734cd0ffdbbd3502185041c1b60/src/plugin/timezone/index.js#L72
259
+ */
260
+ this.adjustOffset = value => {
261
+ if (!this.hasTimezonePlugin()) {
262
+ return value;
263
+ }
264
+ const timezone = this.getTimezone(value);
265
+ if (timezone !== 'UTC') {
266
+ var _fixedValue$$offset, _value$$offset;
267
+ const fixedValue = value.tz(this.cleanTimezone(timezone), true);
268
+ // @ts-ignore
269
+ if (((_fixedValue$$offset = fixedValue.$offset) != null ? _fixedValue$$offset : 0) === ((_value$$offset = value.$offset) != null ? _value$$offset : 0)) {
270
+ return value;
271
+ }
272
+ return fixedValue;
273
+ }
274
+ return value;
275
+ };
239
276
  this.date = value => {
240
277
  if (value === null) {
241
278
  return null;
@@ -404,49 +441,49 @@ export class AdapterDayjs {
404
441
  return value >= start && value <= end;
405
442
  };
406
443
  this.startOfYear = value => {
407
- return value.startOf('year');
444
+ return this.adjustOffset(value.startOf('year'));
408
445
  };
409
446
  this.startOfMonth = value => {
410
- return value.startOf('month');
447
+ return this.adjustOffset(value.startOf('month'));
411
448
  };
412
449
  this.startOfWeek = value => {
413
- return value.startOf('week');
450
+ return this.adjustOffset(value.startOf('week'));
414
451
  };
415
452
  this.startOfDay = value => {
416
- return value.startOf('day');
453
+ return this.adjustOffset(value.startOf('day'));
417
454
  };
418
455
  this.endOfYear = value => {
419
- return value.endOf('year');
456
+ return this.adjustOffset(value.endOf('year'));
420
457
  };
421
458
  this.endOfMonth = value => {
422
- return value.endOf('month');
459
+ return this.adjustOffset(value.endOf('month'));
423
460
  };
424
461
  this.endOfWeek = value => {
425
- return value.endOf('week');
462
+ return this.adjustOffset(value.endOf('week'));
426
463
  };
427
464
  this.endOfDay = value => {
428
- return value.endOf('day');
465
+ return this.adjustOffset(value.endOf('day'));
429
466
  };
430
467
  this.addYears = (value, amount) => {
431
- return amount < 0 ? value.subtract(Math.abs(amount), 'year') : value.add(amount, 'year');
468
+ return this.adjustOffset(amount < 0 ? value.subtract(Math.abs(amount), 'year') : value.add(amount, 'year'));
432
469
  };
433
470
  this.addMonths = (value, amount) => {
434
- return amount < 0 ? value.subtract(Math.abs(amount), 'month') : value.add(amount, 'month');
471
+ return this.adjustOffset(amount < 0 ? value.subtract(Math.abs(amount), 'month') : value.add(amount, 'month'));
435
472
  };
436
473
  this.addWeeks = (value, amount) => {
437
- return amount < 0 ? value.subtract(Math.abs(amount), 'week') : value.add(amount, 'week');
474
+ return this.adjustOffset(amount < 0 ? value.subtract(Math.abs(amount), 'week') : value.add(amount, 'week'));
438
475
  };
439
476
  this.addDays = (value, amount) => {
440
- return amount < 0 ? value.subtract(Math.abs(amount), 'day') : value.add(amount, 'day');
477
+ return this.adjustOffset(amount < 0 ? value.subtract(Math.abs(amount), 'day') : value.add(amount, 'day'));
441
478
  };
442
479
  this.addHours = (value, amount) => {
443
- return amount < 0 ? value.subtract(Math.abs(amount), 'hour') : value.add(amount, 'hour');
480
+ return this.adjustOffset(amount < 0 ? value.subtract(Math.abs(amount), 'hour') : value.add(amount, 'hour'));
444
481
  };
445
482
  this.addMinutes = (value, amount) => {
446
- return amount < 0 ? value.subtract(Math.abs(amount), 'minute') : value.add(amount, 'minute');
483
+ return this.adjustOffset(amount < 0 ? value.subtract(Math.abs(amount), 'minute') : value.add(amount, 'minute'));
447
484
  };
448
485
  this.addSeconds = (value, amount) => {
449
- return amount < 0 ? value.subtract(Math.abs(amount), 'second') : value.add(amount, 'second');
486
+ return this.adjustOffset(amount < 0 ? value.subtract(Math.abs(amount), 'second') : value.add(amount, 'second'));
450
487
  };
451
488
  this.getYear = value => {
452
489
  return value.year();
@@ -470,34 +507,34 @@ export class AdapterDayjs {
470
507
  return value.millisecond();
471
508
  };
472
509
  this.setYear = (value, year) => {
473
- return value.set('year', year);
510
+ return this.adjustOffset(value.set('year', year));
474
511
  };
475
512
  this.setMonth = (value, month) => {
476
- return value.set('month', month);
513
+ return this.adjustOffset(value.set('month', month));
477
514
  };
478
515
  this.setDate = (value, date) => {
479
- return value.set('date', date);
516
+ return this.adjustOffset(value.set('date', date));
480
517
  };
481
518
  this.setHours = (value, hours) => {
482
- return value.set('hour', hours);
519
+ return this.adjustOffset(value.set('hour', hours));
483
520
  };
484
521
  this.setMinutes = (value, minutes) => {
485
- return value.set('minute', minutes);
522
+ return this.adjustOffset(value.set('minute', minutes));
486
523
  };
487
524
  this.setSeconds = (value, seconds) => {
488
- return value.set('second', seconds);
525
+ return this.adjustOffset(value.set('second', seconds));
489
526
  };
490
527
  this.setMilliseconds = (value, milliseconds) => {
491
- return value.set('millisecond', milliseconds);
528
+ return this.adjustOffset(value.set('millisecond', milliseconds));
492
529
  };
493
530
  this.getDaysInMonth = value => {
494
531
  return value.daysInMonth();
495
532
  };
496
533
  this.getNextMonth = value => {
497
- return value.add(1, 'month');
534
+ return this.addMonths(value, 1);
498
535
  };
499
536
  this.getPreviousMonth = value => {
500
- return value.subtract(1, 'month');
537
+ return this.addMonths(value, -1);
501
538
  };
502
539
  this.getMonthArray = value => {
503
540
  const firstMonth = value.startOf('year');
@@ -513,10 +550,9 @@ export class AdapterDayjs {
513
550
  };
514
551
  this.getWeekdays = () => {
515
552
  const start = this.dayjs().startOf('week');
516
- return [0, 1, 2, 3, 4, 5, 6].map(diff => this.formatByString(start.add(diff, 'day'), 'dd'));
553
+ return [0, 1, 2, 3, 4, 5, 6].map(diff => this.formatByString(this.addDays(start, diff), 'dd'));
517
554
  };
518
555
  this.getWeekArray = value => {
519
- const timezone = this.getTimezone(value);
520
556
  const cleanValue = this.setLocaleToValue(value);
521
557
  const start = cleanValue.startOf('month').startOf('week');
522
558
  const end = cleanValue.endOf('month').endOf('week');
@@ -527,15 +563,7 @@ export class AdapterDayjs {
527
563
  const weekNumber = Math.floor(count / 7);
528
564
  nestedWeeks[weekNumber] = nestedWeeks[weekNumber] || [];
529
565
  nestedWeeks[weekNumber].push(current);
530
- current = current.add(1, 'day');
531
-
532
- // If the new day does not have the same offset as the old one (when switching to summer day time for example),
533
- // Then dayjs will not automatically adjust the offset (moment does)
534
- // We have to parse again the value to make sure the `fixOffset` method is applied
535
- // See https://github.com/iamkun/dayjs/blob/b3624de619d6e734cd0ffdbbd3502185041c1b60/src/plugin/timezone/index.js#L72
536
- if (this.hasTimezonePlugin() && timezone !== 'UTC' && timezone !== 'system') {
537
- current = current.tz(this.cleanTimezone(timezone), true);
538
- }
566
+ current = this.addDays(current, 1);
539
567
  count += 1;
540
568
  }
541
569
  return nestedWeeks;
@@ -550,7 +578,7 @@ export class AdapterDayjs {
550
578
  let current = startDate;
551
579
  while (current < endDate) {
552
580
  years.push(current);
553
- current = current.add(1, 'year');
581
+ current = this.addYears(current, 1);
554
582
  }
555
583
  return years;
556
584
  };
package/CHANGELOG.md CHANGED
@@ -3,6 +3,160 @@
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.11.1
7
+
8
+ _Aug 11, 2023_
9
+
10
+ We'd like to offer a big thanks to the 8 contributors who made this release possible. Here are some highlights ✨:
11
+
12
+ - 💫 Add theme augmentation to `@mui/x-tree-view`
13
+ - 📈 Enable charts customization using `slot` and `slotProps` props
14
+ - 🌍 Improve Finnish (fi-FI) and Icelandic (is-IS) locales on the pickers
15
+ - 🐞 Bugfixes
16
+ - 📚 Documentation improvements
17
+
18
+ ### Data Grid
19
+
20
+ #### `@mui/x-data-grid@6.11.1`
21
+
22
+ - [DataGrid] `getCellAggregationResult`: Handle `null` `rowNode` case (#9915) @romgrk
23
+
24
+ #### `@mui/x-data-grid-pro@6.11.1` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link)
25
+
26
+ Same changes as in `@mui/x-data-grid@6.11.1`.
27
+
28
+ #### `@mui/x-data-grid-premium@6.11.1` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link)
29
+
30
+ Same changes as in `@mui/x-data-grid-pro@6.11.1`.
31
+
32
+ ### Date Pickers
33
+
34
+ #### `@mui/x-date-pickers@6.11.1`
35
+
36
+ - [fields] Use `numeric` `inputmode` instead of `tel` (#9918) @LukasTy
37
+ - [pickers] Always respect locale when formatting meridiem (#9979) @flaviendelangle
38
+ - [pickers] Call `onChange` when selecting a shortcut with `changeImportance="set"` (#9974) @flaviendelangle
39
+ - [pickers] Refactor `themeAugmentation` `styleOverrides` (#9978) @LukasTy
40
+ - [l10n] Improve Finnish (fi-FI) locale (#9795) @kurkle
41
+ - [l10n] Improve Icelandic (is-IS) locale (#9639) @magnimarels
42
+
43
+ #### `@mui/x-date-pickers-pro@6.11.1` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link)
44
+
45
+ Same changes as in `@mui/x-date-pickers@6.11.1`.
46
+
47
+ ### Charts / `@mui/x-charts@v6.0.0-alpha.7`
48
+
49
+ - [charts] Fix label and tick alignment (#9952) @LukasTy
50
+ - [charts] Remove not functional component `styleOverrides` (#9996) @LukasTy
51
+ - [charts] Set custom ticks number (#9922) @alexfauquette
52
+ - [charts] Use `slot`/`slotProps` for customization (#9744) @alexfauquette
53
+ - [charts] Extend cheerful fiesta palette (#9980) @noraleonte
54
+
55
+ ### Tree View / `@mui/x-tree-view@v6.0.0-alpha.1`
56
+
57
+ - [TreeView] Add theme augmentation (#9967) @flaviendelangle
58
+
59
+ ### Docs
60
+
61
+ - [docs] Clarify the `shouldDisableClock` migration code options (#9920) @LukasTy
62
+
63
+ ### Core
64
+
65
+ - [core] Port GitHub workflow for ensuring triage label is present (#9924) @DanailH
66
+ - [docs-infra] Fix the import samples in Api pages (#9898) @alexfauquette
67
+
68
+ ## 6.11.0
69
+
70
+ _Aug 4, 2023_
71
+
72
+ We'd like to offer a big thanks to the 12 contributors who made this release possible. Here are some highlights ✨:
73
+
74
+ - ⌚️ Move the tree view component from `@mui/lab` package
75
+
76
+ The `<TreeView />` component has been moved to the MUI X repository.
77
+ It is now accessible from its own package: `@mui/x-tree-view`.
78
+
79
+ - 🌍 Improve Hebrew (he-IL), Finnish (fi-FI), and Italian (it-IT) locales on the data grid
80
+ - 🐞 Bugfixes
81
+ - 📚 Documentation improvements
82
+
83
+ ### Data Grid
84
+
85
+ #### `@mui/x-data-grid@v6.11.0`
86
+
87
+ - [DataGrid] Add `ariaV7` experimental flag (#9496) @cherniavskii
88
+ - [DataGrid] Fix cell size when column width is set to `undefined` (#9871) @gitstart
89
+ - [l10n] Improve Hebrew (he-IL) locale (#9820) @itayG98
90
+ - [l10n] Improve Finnish (fi-FI) locale (#9848) @sambbaahh
91
+ - [l10n] Improve Italian (it-IT) locale (#9627) @fabio-rizzello-omnia
92
+
93
+ #### `@mui/x-data-grid-pro@v6.11.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link)
94
+
95
+ Same changes as in `@mui/x-data-grid@v6.11.0`.
96
+
97
+ #### `@mui/x-data-grid-premium@v6.11.0` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link)
98
+
99
+ Same changes as in `@mui/x-data-grid-pro@v6.11.0`.
100
+
101
+ ### Date Pickers
102
+
103
+ #### `@mui/x-date-pickers@v6.11.0`
104
+
105
+ - [fields] Correctly handle events with a complete value insertion (#9896) @LukasTy
106
+ - [fields] Fix hours editing on dayjs with timezone and DST (#9901) @flaviendelangle
107
+ - [fields] Fix section clearing with timezone (#9819) @flaviendelangle
108
+ - [pickers] Add `CalendarHeader` slot (#7784) @flaviendelangle
109
+ - [pickers] Allow to override the `InputProps` of the `TextField` using the `slotProps` (#9849) @flaviendelangle
110
+ - [pickers] Allow to override the opening aria text using the `localeText` prop on the pickers (#9870) @flaviendelangle
111
+ - [pickers] Fix `sx` and `className` props on `MobileDateRangePicker` (#9853) @flaviendelangle
112
+ - [pickers] Fix default descriptions (#9887) @LukasTy
113
+ - [pickers] Fix offset management on dayjs adapter (#9884) @flaviendelangle
114
+ - [pickers] Use device motion reduction preference (#9823) @LukasTy
115
+
116
+ #### `@mui/x-date-pickers-pro@v6.11.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link)
117
+
118
+ Same changes as in `@mui/x-date-pickers@v6.11.0`.
119
+
120
+ ### Charts / `@mui/x-charts@v6.0.0-alpha.6`
121
+
122
+ - [charts] Add TS definition to the exported elements (#9885) @alexfauquette
123
+ - [charts] Add sparkline (#9662) @alexfauquette
124
+ - [charts] Fix missing configuration types (#9886) @alexfauquette
125
+ - [charts] Introduce dataset to simplify plot of data from API (#9774) @alexfauquette
126
+
127
+ ### Tree View / `@mui/x-tree-view@v6.0.0-alpha.0`
128
+
129
+ - [TreeView] Add missing exported types (#9862) @flaviendelangle
130
+ - [TreeView] Add tree view to changelog generator script (#9903) @MBilalShafi
131
+ - [TreeView] Create the package on the X repository (#9798) @flaviendelangle
132
+ - [TreeView] Improve props typing (#9855) @flaviendelangle
133
+
134
+ ### Docs
135
+
136
+ - [docs] Add Tree View doc (#9825) @flaviendelangle
137
+ - [docs] Add charts nav item (#9821) @LukasTy
138
+ - [docs] Add charts to MUI X introduction pages (#9704) @joserodolfofreitas
139
+ - [docs] Add example for avoiding picker views layout shift (#9781) @noraleonte
140
+ - [docs] Consistency of Next.js App Router @oliviertassinari
141
+ - [docs] Fix API page regression: bring back slots section (#9866) @alexfauquette
142
+ - [docs] Fix demo using Pro while it's MIT (#9842) @oliviertassinari
143
+ - [docs] Get ready for next docs-infra change @oliviertassinari
144
+ - [docs] Improve the slots documentation `Recommended usage` section (#9892) @flaviendelangle
145
+
146
+ ### Core
147
+
148
+ - [core] Fix font loading issue dev-mode (#9843) @oliviertassinari
149
+ - [core] Fix pipeline (#9894) @LukasTy
150
+ - [core] Fix the link-check script on Windows (#9888) @alexfauquette
151
+ - [core] Fix v7 capitalization (#9878) @oliviertassinari
152
+ - [core] Regen doc (#9902) @flaviendelangle
153
+ - [core] Remove benchmark package (#9413) @LukasTy
154
+ - [core] Stop using the deprecated `JSX` global namespace (#9854) @flaviendelangle
155
+ - [core] Update monorepo (#9846) @flaviendelangle
156
+ - [core] Update tree data API docs (#9827) @cherniavskii
157
+ - [test] Add pickers e2e tests (#9747) @LukasTy
158
+ - [test] Data grid e2e tests follow-up (#9822) @cherniavskii
159
+
6
160
  ## 6.10.2
7
161
 
8
162
  _Jul 27, 2023_
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import { DateCalendarProps } from './DateCalendar.types';
3
- type DateCalendarComponent = (<TDate>(props: DateCalendarProps<TDate> & React.RefAttributes<HTMLDivElement>) => JSX.Element) & {
3
+ type DateCalendarComponent = (<TDate>(props: DateCalendarProps<TDate> & React.RefAttributes<HTMLDivElement>) => React.JSX.Element) & {
4
4
  propTypes?: any;
5
5
  };
6
6
  /**
@@ -4,6 +4,7 @@ const _excluded = ["autoFocus", "onViewChange", "value", "defaultValue", "refere
4
4
  import * as React from 'react';
5
5
  import PropTypes from 'prop-types';
6
6
  import clsx from 'clsx';
7
+ import { useSlotProps } from '@mui/base/utils';
7
8
  import { styled, useThemeProps } from '@mui/material/styles';
8
9
  import { unstable_composeClasses as composeClasses, unstable_useId as useId, unstable_useEventCallback as useEventCallback } from '@mui/utils';
9
10
  import { useCalendarState } from './useCalendarState';
@@ -13,10 +14,10 @@ import { DayCalendar } from './DayCalendar';
13
14
  import { MonthCalendar } from '../MonthCalendar';
14
15
  import { YearCalendar } from '../YearCalendar';
15
16
  import { useViews } from '../internals/hooks/useViews';
16
- import { PickersCalendarHeader } from './PickersCalendarHeader';
17
+ import { PickersCalendarHeader } from '../PickersCalendarHeader';
17
18
  import { findClosestEnabledDate, applyDefaultDate, mergeDateAndTime } from '../internals/utils/date-utils';
18
19
  import { PickerViewRoot } from '../internals/components/PickerViewRoot';
19
- import { defaultReduceAnimations } from '../internals/utils/defaultReduceAnimations';
20
+ import { useDefaultReduceAnimations } from '../internals/hooks/useDefaultReduceAnimations';
20
21
  import { getDateCalendarUtilityClass } from './dateCalendarClasses';
21
22
  import { useControlledValueWithTimezone } from '../internals/hooks/useValueWithTimezone';
22
23
  import { singleItemValueManager } from '../internals/utils/valueManagers';
@@ -33,23 +34,24 @@ const useUtilityClasses = ownerState => {
33
34
  return composeClasses(slots, getDateCalendarUtilityClass, classes);
34
35
  };
35
36
  function useDateCalendarDefaultizedProps(props, name) {
37
+ var _themeProps$loading, _themeProps$disablePa, _themeProps$disableFu, _themeProps$openTo, _themeProps$views, _themeProps$reduceAni, _themeProps$renderLoa;
36
38
  const utils = useUtils();
37
39
  const defaultDates = useDefaultDates();
40
+ const defaultReduceAnimations = useDefaultReduceAnimations();
38
41
  const themeProps = useThemeProps({
39
42
  props,
40
43
  name
41
44
  });
42
- return _extends({
43
- loading: false,
44
- disablePast: false,
45
- disableFuture: false,
46
- openTo: 'day',
47
- views: ['year', 'day'],
48
- reduceAnimations: defaultReduceAnimations,
49
- renderLoading: () => /*#__PURE__*/_jsx("span", {
45
+ return _extends({}, themeProps, {
46
+ loading: (_themeProps$loading = themeProps.loading) != null ? _themeProps$loading : false,
47
+ disablePast: (_themeProps$disablePa = themeProps.disablePast) != null ? _themeProps$disablePa : false,
48
+ disableFuture: (_themeProps$disableFu = themeProps.disableFuture) != null ? _themeProps$disableFu : false,
49
+ openTo: (_themeProps$openTo = themeProps.openTo) != null ? _themeProps$openTo : 'day',
50
+ views: (_themeProps$views = themeProps.views) != null ? _themeProps$views : ['year', 'day'],
51
+ reduceAnimations: (_themeProps$reduceAni = themeProps.reduceAnimations) != null ? _themeProps$reduceAni : defaultReduceAnimations,
52
+ renderLoading: (_themeProps$renderLoa = themeProps.renderLoading) != null ? _themeProps$renderLoa : () => /*#__PURE__*/_jsx("span", {
50
53
  children: "..."
51
- })
52
- }, themeProps, {
54
+ }),
53
55
  minDate: applyDefaultDate(utils, themeProps.minDate, defaultDates.minDate),
54
56
  maxDate: applyDefaultDate(utils, themeProps.maxDate, defaultDates.maxDate)
55
57
  });
@@ -78,6 +80,7 @@ const DateCalendarViewTransitionContainer = styled(PickersFadeTransitionGroup, {
78
80
  * - [DateCalendar API](https://mui.com/x/api/date-pickers/date-calendar/)
79
81
  */
80
82
  export const DateCalendar = /*#__PURE__*/React.forwardRef(function DateCalendar(inProps, ref) {
83
+ var _ref, _slots$calendarHeader, _slotProps$calendarHe;
81
84
  const utils = useUtils();
82
85
  const id = useId();
83
86
  const props = useDateCalendarDefaultizedProps(inProps, 'MuiDateCalendar');
@@ -173,6 +176,38 @@ export const DateCalendar = /*#__PURE__*/React.forwardRef(function DateCalendar(
173
176
  disableFuture,
174
177
  timezone
175
178
  });
179
+
180
+ // When disabled, limit the view to the selected date
181
+ const minDateWithDisabled = disabled && value || minDate;
182
+ const maxDateWithDisabled = disabled && value || maxDate;
183
+ const gridLabelId = `${id}-grid-label`;
184
+ const hasFocus = focusedView !== null;
185
+ const CalendarHeader = (_ref = (_slots$calendarHeader = slots == null ? void 0 : slots.calendarHeader) != null ? _slots$calendarHeader : components == null ? void 0 : components.CalendarHeader) != null ? _ref : PickersCalendarHeader;
186
+ const calendarHeaderProps = useSlotProps({
187
+ elementType: CalendarHeader,
188
+ externalSlotProps: (_slotProps$calendarHe = slotProps == null ? void 0 : slotProps.calendarHeader) != null ? _slotProps$calendarHe : componentsProps == null ? void 0 : componentsProps.calendarHeader,
189
+ additionalProps: {
190
+ views,
191
+ view,
192
+ currentMonth: calendarState.currentMonth,
193
+ onViewChange: setView,
194
+ onMonthChange: (newMonth, direction) => handleChangeMonth({
195
+ newMonth,
196
+ direction
197
+ }),
198
+ minDate: minDateWithDisabled,
199
+ maxDate: maxDateWithDisabled,
200
+ disabled,
201
+ disablePast,
202
+ disableFuture,
203
+ reduceAnimations,
204
+ timezone,
205
+ labelId: gridLabelId,
206
+ slots,
207
+ slotProps
208
+ },
209
+ ownerState: props
210
+ });
176
211
  const handleDateMonthChange = useEventCallback(newDate => {
177
212
  const startOfMonth = utils.startOfMonth(newDate);
178
213
  const endOfMonth = utils.endOfMonth(newDate);
@@ -238,18 +273,12 @@ export const DateCalendar = /*#__PURE__*/React.forwardRef(function DateCalendar(
238
273
  maxDate,
239
274
  minDate
240
275
  };
241
-
242
- // When disabled, limit the view to the selected date
243
- const minDateWithDisabled = disabled && value || minDate;
244
- const maxDateWithDisabled = disabled && value || maxDate;
245
276
  const commonViewProps = {
246
277
  disableHighlightToday,
247
278
  readOnly,
248
279
  disabled,
249
280
  timezone
250
281
  };
251
- const gridLabelId = `${id}-grid-label`;
252
- const hasFocus = focusedView !== null;
253
282
  const prevOpenViewRef = React.useRef(view);
254
283
  React.useEffect(() => {
255
284
  // If the view change and the focus was on the previous view
@@ -268,26 +297,7 @@ export const DateCalendar = /*#__PURE__*/React.forwardRef(function DateCalendar(
268
297
  className: clsx(classes.root, className),
269
298
  ownerState: ownerState
270
299
  }, other, {
271
- children: [/*#__PURE__*/_jsx(PickersCalendarHeader, {
272
- views: views,
273
- view: view,
274
- currentMonth: calendarState.currentMonth,
275
- onViewChange: setView,
276
- onMonthChange: (newMonth, direction) => handleChangeMonth({
277
- newMonth,
278
- direction
279
- }),
280
- minDate: minDateWithDisabled,
281
- maxDate: maxDateWithDisabled,
282
- disabled: disabled,
283
- disablePast: disablePast,
284
- disableFuture: disableFuture,
285
- reduceAnimations: reduceAnimations,
286
- labelId: gridLabelId,
287
- slots: slots,
288
- slotProps: slotProps,
289
- timezone: timezone
290
- }), /*#__PURE__*/_jsx(DateCalendarViewTransitionContainer, {
300
+ children: [/*#__PURE__*/_jsx(CalendarHeader, _extends({}, calendarHeaderProps)), /*#__PURE__*/_jsx(DateCalendarViewTransitionContainer, {
291
301
  reduceAnimations: reduceAnimations,
292
302
  className: classes.viewTransitionContainer,
293
303
  transKey: view,
@@ -1,7 +1,8 @@
1
1
  import * as React from 'react';
2
2
  import { SxProps } from '@mui/system';
3
3
  import { Theme } from '@mui/material/styles';
4
- import { PickersCalendarHeaderSlotsComponent, PickersCalendarHeaderSlotsComponentsProps } from './PickersCalendarHeader';
4
+ import { SlotComponentProps } from '@mui/base/utils';
5
+ import { PickersCalendarHeader, PickersCalendarHeaderProps, PickersCalendarHeaderSlotsComponent, PickersCalendarHeaderSlotsComponentsProps } from '../PickersCalendarHeader';
5
6
  import { DayCalendarSlotsComponent, DayCalendarSlotsComponentsProps, ExportedDayCalendarProps } from './DayCalendar';
6
7
  import { DateCalendarClasses } from './dateCalendarClasses';
7
8
  import { BaseDateValidationProps, YearValidationProps, MonthValidationProps, DayValidationProps } from '../internals/models/validation';
@@ -13,8 +14,15 @@ import { SlotsAndSlotProps } from '../internals/utils/slots-migration';
13
14
  import { ExportedYearCalendarProps } from '../YearCalendar/YearCalendar.types';
14
15
  import { ExportedMonthCalendarProps } from '../MonthCalendar/MonthCalendar.types';
15
16
  export interface DateCalendarSlotsComponent<TDate> extends PickersCalendarHeaderSlotsComponent, DayCalendarSlotsComponent<TDate> {
17
+ /**
18
+ * Custom component for calendar header.
19
+ * Check the [PickersCalendarHeader](https://mui.com/x/api/date-pickers/pickers-calendar-header/) component.
20
+ * @default PickersCalendarHeader
21
+ */
22
+ CalendarHeader?: React.ElementType<PickersCalendarHeaderProps<TDate>>;
16
23
  }
17
24
  export interface DateCalendarSlotsComponentsProps<TDate> extends PickersCalendarHeaderSlotsComponentsProps<TDate>, DayCalendarSlotsComponentsProps<TDate> {
25
+ calendarHeader?: SlotComponentProps<typeof PickersCalendarHeader, {}, DateCalendarProps<TDate>>;
18
26
  }
19
27
  export interface ExportedDateCalendarProps<TDate> extends ExportedDayCalendarProps, ExportedMonthCalendarProps, ExportedYearCalendarProps, BaseDateValidationProps<TDate>, DayValidationProps<TDate>, YearValidationProps<TDate>, MonthValidationProps<TDate>, TimezoneProps {
20
28
  /**
@@ -4,11 +4,10 @@ export { getDateCalendarUtilityClass, dateCalendarClasses } from './dateCalendar
4
4
  export type { DateCalendarClassKey, DateCalendarClasses } from './dateCalendarClasses';
5
5
  export { dayPickerClasses } from './dayCalendarClasses';
6
6
  export type { DayCalendarClassKey, DayCalendarClasses } from './dayCalendarClasses';
7
- export { pickersCalendarHeaderClasses } from './pickersCalendarHeaderClasses';
8
- export type { PickersCalendarHeaderClassKey, PickersCalendarHeaderClasses, } from './pickersCalendarHeaderClasses';
9
7
  export type { PickersFadeTransitionGroupProps } from './PickersFadeTransitionGroup';
10
8
  export { pickersFadeTransitionGroupClasses } from './pickersFadeTransitionGroupClasses';
11
9
  export type { PickersFadeTransitionGroupClassKey, PickersFadeTransitionGroupClasses, } from './pickersFadeTransitionGroupClasses';
12
10
  export { pickersSlideTransitionClasses } from './pickersSlideTransitionClasses';
13
11
  export type { PickersSlideTransitionClassKey, PickersSlideTransitionClasses, } from './pickersSlideTransitionClasses';
14
12
  export type { ExportedSlideTransitionProps } from './PickersSlideTransition';
13
+ export * from '../PickersCalendarHeader';
@@ -1,6 +1,7 @@
1
1
  export { DateCalendar } from './DateCalendar';
2
2
  export { getDateCalendarUtilityClass, dateCalendarClasses } from './dateCalendarClasses';
3
3
  export { dayPickerClasses } from './dayCalendarClasses';
4
- export { pickersCalendarHeaderClasses } from './pickersCalendarHeaderClasses';
5
4
  export { pickersFadeTransitionGroupClasses } from './pickersFadeTransitionGroupClasses';
6
- export { pickersSlideTransitionClasses } from './pickersSlideTransitionClasses';
5
+ export { pickersSlideTransitionClasses } from './pickersSlideTransitionClasses';
6
+ // TODO v7: Remove and export the `PickersCalendarHeader` folder from the root instead.
7
+ export * from '../PickersCalendarHeader';
@@ -33,7 +33,7 @@ export declare const useCalendarState: <TDate extends unknown>(params: UseCalend
33
33
  referenceDate: any;
34
34
  calendarState: CalendarState<TDate>;
35
35
  changeMonth: (newDate: TDate) => void;
36
- changeFocusedDay: (newFocusedDate: TDate | null, withoutMonthSwitchingAnimation?: boolean | undefined) => void;
36
+ changeFocusedDay: (newFocusedDate: TDate | null, withoutMonthSwitchingAnimation?: boolean) => void;
37
37
  isDateDisabled: (day: TDate | null) => boolean;
38
38
  onMonthSwitchingAnimationEnd: () => void;
39
39
  handleChangeMonth: (payload: ChangeMonthPayload<TDate>) => void;
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import { DateFieldProps } from './DateField.types';
3
- type DateFieldComponent = (<TDate>(props: DateFieldProps<TDate> & React.RefAttributes<HTMLDivElement>) => JSX.Element) & {
3
+ type DateFieldComponent = (<TDate>(props: DateFieldProps<TDate> & React.RefAttributes<HTMLDivElement>) => React.JSX.Element) & {
4
4
  propTypes?: any;
5
5
  };
6
6
  declare const DateField: DateFieldComponent;
@@ -39,8 +39,8 @@ const DateField = /*#__PURE__*/React.forwardRef(function DateField(inProps, ref)
39
39
  textFieldProps = _objectWithoutPropertiesLoose(_useSlotProps, _excluded2);
40
40
 
41
41
  // TODO: Remove when mui/material-ui#35088 will be merged
42
- textFieldProps.inputProps = _extends({}, textFieldProps.inputProps, inputProps);
43
- textFieldProps.InputProps = _extends({}, textFieldProps.InputProps, InputProps);
42
+ textFieldProps.inputProps = _extends({}, inputProps, textFieldProps.inputProps);
43
+ textFieldProps.InputProps = _extends({}, InputProps, textFieldProps.InputProps);
44
44
  const _useDateField = useDateField({
45
45
  props: textFieldProps,
46
46
  inputRef: externalInputRef
@@ -85,6 +85,7 @@ process.env.NODE_ENV !== "production" ? DateField.propTypes = {
85
85
  * @default 'primary'
86
86
  */
87
87
  color: PropTypes.oneOf(['error', 'info', 'primary', 'secondary', 'success', 'warning']),
88
+ component: PropTypes.elementType,
88
89
  /**
89
90
  * Overridable components.
90
91
  * @default {}
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import { DatePickerProps } from './DatePicker.types';
3
- type DatePickerComponent = (<TDate>(props: DatePickerProps<TDate> & React.RefAttributes<HTMLDivElement>) => JSX.Element) & {
3
+ type DatePickerComponent = (<TDate>(props: DatePickerProps<TDate> & React.RefAttributes<HTMLDivElement>) => React.JSX.Element) & {
4
4
  propTypes?: any;
5
5
  };
6
6
  declare const DatePicker: DatePickerComponent;
@@ -9,7 +9,7 @@ export interface DatePickerToolbarProps<TDate> extends BaseToolbarProps<TDate |
9
9
  }
10
10
  export interface ExportedDatePickerToolbarProps extends ExportedBaseToolbarProps {
11
11
  }
12
- type DatePickerToolbarComponent = (<TDate>(props: DatePickerToolbarProps<TDate> & React.RefAttributes<HTMLDivElement>) => JSX.Element) & {
12
+ type DatePickerToolbarComponent = (<TDate>(props: DatePickerToolbarProps<TDate> & React.RefAttributes<HTMLDivElement>) => React.JSX.Element) & {
13
13
  propTypes?: any;
14
14
  };
15
15
  declare const DatePickerToolbar: DatePickerToolbarComponent;