@mui/x-date-pickers 7.7.0 → 7.8.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 (96) hide show
  1. package/AdapterDateFns/AdapterDateFns.d.ts +0 -1
  2. package/AdapterDateFnsJalali/AdapterDateFnsJalali.d.ts +0 -1
  3. package/AdapterDateFnsJalaliV3/AdapterDateFnsJalaliV3.d.ts +48 -48
  4. package/AdapterDateFnsJalaliV3/AdapterDateFnsJalaliV3.js +1 -0
  5. package/AdapterDateFnsV3/AdapterDateFnsV3.d.ts +47 -47
  6. package/AdapterDateFnsV3/AdapterDateFnsV3.js +1 -0
  7. package/CHANGELOG.md +181 -0
  8. package/DateCalendar/useCalendarState.d.ts +1 -1
  9. package/DatePicker/DatePicker.js +2 -0
  10. package/DateTimePicker/DateTimePicker.js +2 -0
  11. package/DateTimePicker/DateTimePickerToolbar.js +1 -1
  12. package/DesktopDatePicker/DesktopDatePicker.js +2 -0
  13. package/DesktopDateTimePicker/DesktopDateTimePicker.js +5 -1
  14. package/DesktopDateTimePicker/DesktopDateTimePickerLayout.d.ts +1 -1
  15. package/DesktopTimePicker/DesktopTimePicker.js +2 -0
  16. package/MobileDatePicker/MobileDatePicker.js +2 -0
  17. package/MobileDateTimePicker/MobileDateTimePicker.js +2 -0
  18. package/MobileTimePicker/MobileTimePicker.js +2 -0
  19. package/MultiSectionDigitalClock/MultiSectionDigitalClock.js +16 -3
  20. package/PickersCalendarHeader/PickersCalendarHeader.js +4 -0
  21. package/PickersCalendarHeader/PickersCalendarHeader.types.d.ts +4 -0
  22. package/PickersLayout/usePickerLayout.js +0 -5
  23. package/StaticDatePicker/StaticDatePicker.js +2 -0
  24. package/StaticDateTimePicker/StaticDateTimePicker.js +2 -0
  25. package/StaticTimePicker/StaticTimePicker.js +2 -0
  26. package/TimeClock/ClockNumbers.d.ts +1 -1
  27. package/TimePicker/TimePicker.js +2 -0
  28. package/index.js +1 -1
  29. package/internals/components/PickerViewRoot/PickerViewRoot.d.ts +0 -1
  30. package/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js +4 -2
  31. package/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.types.d.ts +1 -0
  32. package/internals/hooks/date-helpers-hooks.d.ts +1 -1
  33. package/internals/hooks/defaultizedFieldProps.d.ts +2 -2
  34. package/internals/hooks/useField/useField.d.ts +3 -3
  35. package/internals/hooks/useField/useField.utils.d.ts +3 -3
  36. package/internals/hooks/useField/useField.utils.js +2 -1
  37. package/internals/hooks/useField/useFieldV6TextField.js +9 -3
  38. package/internals/hooks/usePicker/usePickerValue.js +45 -38
  39. package/internals/hooks/usePicker/usePickerValue.types.d.ts +3 -2
  40. package/internals/hooks/usePicker/usePickerViews.js +2 -1
  41. package/internals/utils/date-utils.d.ts +1 -1
  42. package/internals/utils/views.d.ts +1 -1
  43. package/internals/utils/warning.d.ts +1 -1
  44. package/locales/daDK.js +15 -19
  45. package/modern/AdapterDateFnsJalaliV3/AdapterDateFnsJalaliV3.js +1 -0
  46. package/modern/AdapterDateFnsV3/AdapterDateFnsV3.js +1 -0
  47. package/modern/DatePicker/DatePicker.js +2 -0
  48. package/modern/DateTimePicker/DateTimePicker.js +2 -0
  49. package/modern/DateTimePicker/DateTimePickerToolbar.js +1 -1
  50. package/modern/DesktopDatePicker/DesktopDatePicker.js +2 -0
  51. package/modern/DesktopDateTimePicker/DesktopDateTimePicker.js +5 -1
  52. package/modern/DesktopTimePicker/DesktopTimePicker.js +2 -0
  53. package/modern/MobileDatePicker/MobileDatePicker.js +2 -0
  54. package/modern/MobileDateTimePicker/MobileDateTimePicker.js +2 -0
  55. package/modern/MobileTimePicker/MobileTimePicker.js +2 -0
  56. package/modern/MultiSectionDigitalClock/MultiSectionDigitalClock.js +16 -3
  57. package/modern/PickersCalendarHeader/PickersCalendarHeader.js +4 -0
  58. package/modern/PickersLayout/usePickerLayout.js +0 -5
  59. package/modern/StaticDatePicker/StaticDatePicker.js +2 -0
  60. package/modern/StaticDateTimePicker/StaticDateTimePicker.js +2 -0
  61. package/modern/StaticTimePicker/StaticTimePicker.js +2 -0
  62. package/modern/TimePicker/TimePicker.js +2 -0
  63. package/modern/index.js +1 -1
  64. package/modern/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js +4 -2
  65. package/modern/internals/hooks/useField/useField.utils.js +2 -1
  66. package/modern/internals/hooks/useField/useFieldV6TextField.js +9 -3
  67. package/modern/internals/hooks/usePicker/usePickerValue.js +45 -38
  68. package/modern/internals/hooks/usePicker/usePickerViews.js +2 -1
  69. package/modern/locales/daDK.js +15 -19
  70. package/node/AdapterDateFnsJalaliV3/AdapterDateFnsJalaliV3.js +1 -0
  71. package/node/AdapterDateFnsV3/AdapterDateFnsV3.js +1 -0
  72. package/node/DatePicker/DatePicker.js +2 -0
  73. package/node/DateTimePicker/DateTimePicker.js +2 -0
  74. package/node/DateTimePicker/DateTimePickerToolbar.js +2 -2
  75. package/node/DesktopDatePicker/DesktopDatePicker.js +2 -0
  76. package/node/DesktopDateTimePicker/DesktopDateTimePicker.js +12 -8
  77. package/node/DesktopTimePicker/DesktopTimePicker.js +2 -0
  78. package/node/MobileDatePicker/MobileDatePicker.js +2 -0
  79. package/node/MobileDateTimePicker/MobileDateTimePicker.js +2 -0
  80. package/node/MobileTimePicker/MobileTimePicker.js +2 -0
  81. package/node/MultiSectionDigitalClock/MultiSectionDigitalClock.js +16 -3
  82. package/node/PickersCalendarHeader/PickersCalendarHeader.js +4 -0
  83. package/node/PickersLayout/usePickerLayout.js +0 -5
  84. package/node/StaticDatePicker/StaticDatePicker.js +2 -0
  85. package/node/StaticDateTimePicker/StaticDateTimePicker.js +2 -0
  86. package/node/StaticTimePicker/StaticTimePicker.js +2 -0
  87. package/node/TimePicker/TimePicker.js +2 -0
  88. package/node/index.js +1 -1
  89. package/node/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js +4 -2
  90. package/node/internals/hooks/useField/useField.utils.js +2 -1
  91. package/node/internals/hooks/useField/useFieldV6TextField.js +9 -3
  92. package/node/internals/hooks/usePicker/usePickerValue.js +45 -38
  93. package/node/internals/hooks/usePicker/usePickerViews.js +2 -1
  94. package/node/locales/daDK.js +15 -19
  95. package/package.json +3 -3
  96. package/timeViewRenderers/timeViewRenderers.d.ts +1 -1
@@ -1,4 +1,3 @@
1
- /// <reference types="date-fns" />
2
1
  import defaultLocale from 'date-fns/locale/en-US';
3
2
  import { AdapterFormats, AdapterOptions, MuiPickersAdapter } from '../models';
4
3
  import { AdapterDateFnsBase } from '../AdapterDateFnsBase';
@@ -1,4 +1,3 @@
1
- /// <reference types="date-fns-jalali" />
2
1
  import defaultLocale from 'date-fns-jalali/locale/fa-IR';
3
2
  import { AdapterFormats, AdapterOptions, MuiPickersAdapter } from '../models';
4
3
  import { AdapterDateFnsBase } from '../AdapterDateFnsBase';
@@ -33,55 +33,55 @@ declare module '@mui/x-date-pickers/models' {
33
33
  */
34
34
  export declare class AdapterDateFnsJalali extends AdapterDateFnsBase<DateFnsLocale> implements MuiPickersAdapter<Date, DateFnsLocale> {
35
35
  constructor({ locale, formats }?: AdapterOptions<DateFnsLocale, never>);
36
- parse: (value: string, format: string) => any;
37
- getCurrentLocaleCode: () => any;
38
- isValid: (value: Date | null) => any;
39
- format: (value: Date, formatKey: keyof AdapterFormats) => any;
40
- formatByString: (value: Date, formatString: string) => any;
36
+ parse: (value: string, format: string) => Date | null;
37
+ getCurrentLocaleCode: () => string;
38
+ isValid: (value: Date | null) => boolean;
39
+ format: (value: Date, formatKey: keyof AdapterFormats) => string;
40
+ formatByString: (value: Date, formatString: string) => string;
41
41
  formatNumber: (numberToFormat: string) => string;
42
- isEqual: (value: Date | null, comparing: Date | null) => any;
43
- isSameYear: (value: Date, comparing: Date) => any;
44
- isSameMonth: (value: Date, comparing: Date) => any;
45
- isSameDay: (value: Date, comparing: Date) => any;
46
- isSameHour: (value: Date, comparing: Date) => any;
47
- isAfter: (value: Date, comparing: Date) => any;
48
- isAfterYear: (value: Date, comparing: Date) => any;
49
- isAfterDay: (value: Date, comparing: Date) => any;
50
- isBefore: (value: Date, comparing: Date) => any;
51
- isBeforeYear: (value: Date, comparing: Date) => any;
52
- isBeforeDay: (value: Date, comparing: Date) => any;
53
- isWithinRange: (value: Date, [start, end]: [Date, Date]) => any;
54
- startOfYear: (value: Date) => any;
55
- startOfMonth: (value: Date) => any;
56
- startOfWeek: (value: Date) => any;
57
- startOfDay: (value: Date) => any;
58
- endOfYear: (value: Date) => any;
59
- endOfMonth: (value: Date) => any;
60
- endOfWeek: (value: Date) => any;
61
- endOfDay: (value: Date) => any;
62
- addYears: (value: Date, amount: number) => any;
63
- addMonths: (value: Date, amount: number) => any;
64
- addWeeks: (value: Date, amount: number) => any;
65
- addDays: (value: Date, amount: number) => any;
66
- addHours: (value: Date, amount: number) => any;
67
- addMinutes: (value: Date, amount: number) => any;
68
- addSeconds: (value: Date, amount: number) => any;
69
- getYear: (value: Date) => any;
70
- getMonth: (value: Date) => any;
71
- getDate: (value: Date) => any;
72
- getHours: (value: Date) => any;
73
- getMinutes: (value: Date) => any;
74
- getSeconds: (value: Date) => any;
75
- getMilliseconds: (value: Date) => any;
76
- setYear: (value: Date, year: number) => any;
77
- setMonth: (value: Date, month: number) => any;
78
- setDate: (value: Date, date: number) => any;
79
- setHours: (value: Date, hours: number) => any;
80
- setMinutes: (value: Date, minutes: number) => any;
81
- setSeconds: (value: Date, seconds: number) => any;
82
- setMilliseconds: (value: Date, milliseconds: number) => any;
83
- getDaysInMonth: (value: Date) => any;
42
+ isEqual: (value: Date | null, comparing: Date | null) => boolean;
43
+ isSameYear: (value: Date, comparing: Date) => boolean;
44
+ isSameMonth: (value: Date, comparing: Date) => boolean;
45
+ isSameDay: (value: Date, comparing: Date) => boolean;
46
+ isSameHour: (value: Date, comparing: Date) => boolean;
47
+ isAfter: (value: Date, comparing: Date) => boolean;
48
+ isAfterYear: (value: Date, comparing: Date) => boolean;
49
+ isAfterDay: (value: Date, comparing: Date) => boolean;
50
+ isBefore: (value: Date, comparing: Date) => boolean;
51
+ isBeforeYear: (value: Date, comparing: Date) => boolean;
52
+ isBeforeDay: (value: Date, comparing: Date) => boolean;
53
+ isWithinRange: (value: Date, [start, end]: [Date, Date]) => boolean;
54
+ startOfYear: (value: Date) => Date;
55
+ startOfMonth: (value: Date) => Date;
56
+ startOfWeek: (value: Date) => Date;
57
+ startOfDay: (value: Date) => Date;
58
+ endOfYear: (value: Date) => Date;
59
+ endOfMonth: (value: Date) => Date;
60
+ endOfWeek: (value: Date) => Date;
61
+ endOfDay: (value: Date) => Date;
62
+ addYears: (value: Date, amount: number) => Date;
63
+ addMonths: (value: Date, amount: number) => Date;
64
+ addWeeks: (value: Date, amount: number) => Date;
65
+ addDays: (value: Date, amount: number) => Date;
66
+ addHours: (value: Date, amount: number) => Date;
67
+ addMinutes: (value: Date, amount: number) => Date;
68
+ addSeconds: (value: Date, amount: number) => Date;
69
+ getYear: (value: Date) => number;
70
+ getMonth: (value: Date) => number;
71
+ getDate: (value: Date) => number;
72
+ getHours: (value: Date) => number;
73
+ getMinutes: (value: Date) => number;
74
+ getSeconds: (value: Date) => number;
75
+ getMilliseconds: (value: Date) => number;
76
+ setYear: (value: Date, year: number) => Date;
77
+ setMonth: (value: Date, month: number) => Date;
78
+ setDate: (value: Date, date: number) => Date;
79
+ setHours: (value: Date, hours: number) => Date;
80
+ setMinutes: (value: Date, minutes: number) => Date;
81
+ setSeconds: (value: Date, seconds: number) => Date;
82
+ setMilliseconds: (value: Date, milliseconds: number) => Date;
83
+ getDaysInMonth: (value: Date) => number;
84
84
  getWeekArray: (value: Date) => Date[][];
85
- getWeekNumber: (date: Date) => any;
85
+ getWeekNumber: (date: Date) => number;
86
86
  getYearRange: ([start, end]: [Date, Date]) => Date[];
87
87
  }
@@ -130,6 +130,7 @@ export class AdapterDateFnsJalali extends AdapterDateFnsBase {
130
130
  longFormatters,
131
131
  lib: 'date-fns-jalali'
132
132
  });
133
+ // TODO: explicit return types can be removed once there is only one date-fns version supported
133
134
  this.parse = (value, format) => {
134
135
  if (value === '') {
135
136
  return null;
@@ -33,53 +33,53 @@ declare module '@mui/x-date-pickers/models' {
33
33
  */
34
34
  export declare class AdapterDateFns extends AdapterDateFnsBase<DateFnsLocale> implements MuiPickersAdapter<Date, DateFnsLocale> {
35
35
  constructor({ locale, formats }?: AdapterOptions<DateFnsLocale, never>);
36
- parse: (value: string, format: string) => any;
37
- isValid: (value: Date | null) => any;
38
- format: (value: Date, formatKey: keyof AdapterFormats) => any;
39
- formatByString: (value: Date, formatString: string) => any;
40
- isEqual: (value: Date | null, comparing: Date | null) => any;
41
- isSameYear: (value: Date, comparing: Date) => any;
42
- isSameMonth: (value: Date, comparing: Date) => any;
43
- isSameDay: (value: Date, comparing: Date) => any;
44
- isSameHour: (value: Date, comparing: Date) => any;
45
- isAfter: (value: Date, comparing: Date) => any;
46
- isAfterYear: (value: Date, comparing: Date) => any;
47
- isAfterDay: (value: Date, comparing: Date) => any;
48
- isBefore: (value: Date, comparing: Date) => any;
49
- isBeforeYear: (value: Date, comparing: Date) => any;
50
- isBeforeDay: (value: Date, comparing: Date) => any;
51
- isWithinRange: (value: Date, [start, end]: [Date, Date]) => any;
52
- startOfYear: (value: Date) => any;
53
- startOfMonth: (value: Date) => any;
54
- startOfWeek: (value: Date) => any;
55
- startOfDay: (value: Date) => any;
56
- endOfYear: (value: Date) => any;
57
- endOfMonth: (value: Date) => any;
58
- endOfWeek: (value: Date) => any;
59
- endOfDay: (value: Date) => any;
60
- addYears: (value: Date, amount: number) => any;
61
- addMonths: (value: Date, amount: number) => any;
62
- addWeeks: (value: Date, amount: number) => any;
63
- addDays: (value: Date, amount: number) => any;
64
- addHours: (value: Date, amount: number) => any;
65
- addMinutes: (value: Date, amount: number) => any;
66
- addSeconds: (value: Date, amount: number) => any;
67
- getYear: (value: Date) => any;
68
- getMonth: (value: Date) => any;
69
- getDate: (value: Date) => any;
70
- getHours: (value: Date) => any;
71
- getMinutes: (value: Date) => any;
72
- getSeconds: (value: Date) => any;
73
- getMilliseconds: (value: Date) => any;
74
- setYear: (value: Date, year: number) => any;
75
- setMonth: (value: Date, month: number) => any;
76
- setDate: (value: Date, date: number) => any;
77
- setHours: (value: Date, hours: number) => any;
78
- setMinutes: (value: Date, minutes: number) => any;
79
- setSeconds: (value: Date, seconds: number) => any;
80
- setMilliseconds: (value: Date, milliseconds: number) => any;
81
- getDaysInMonth: (value: Date) => any;
36
+ parse: (value: string, format: string) => Date | null;
37
+ isValid: (value: Date | null) => boolean;
38
+ format: (value: Date, formatKey: keyof AdapterFormats) => string;
39
+ formatByString: (value: Date, formatString: string) => string;
40
+ isEqual: (value: Date | null, comparing: Date | null) => boolean;
41
+ isSameYear: (value: Date, comparing: Date) => boolean;
42
+ isSameMonth: (value: Date, comparing: Date) => boolean;
43
+ isSameDay: (value: Date, comparing: Date) => boolean;
44
+ isSameHour: (value: Date, comparing: Date) => boolean;
45
+ isAfter: (value: Date, comparing: Date) => boolean;
46
+ isAfterYear: (value: Date, comparing: Date) => boolean;
47
+ isAfterDay: (value: Date, comparing: Date) => boolean;
48
+ isBefore: (value: Date, comparing: Date) => boolean;
49
+ isBeforeYear: (value: Date, comparing: Date) => boolean;
50
+ isBeforeDay: (value: Date, comparing: Date) => boolean;
51
+ isWithinRange: (value: Date, [start, end]: [Date, Date]) => boolean;
52
+ startOfYear: (value: Date) => Date;
53
+ startOfMonth: (value: Date) => Date;
54
+ startOfWeek: (value: Date) => Date;
55
+ startOfDay: (value: Date) => Date;
56
+ endOfYear: (value: Date) => Date;
57
+ endOfMonth: (value: Date) => Date;
58
+ endOfWeek: (value: Date) => Date;
59
+ endOfDay: (value: Date) => Date;
60
+ addYears: (value: Date, amount: number) => Date;
61
+ addMonths: (value: Date, amount: number) => Date;
62
+ addWeeks: (value: Date, amount: number) => Date;
63
+ addDays: (value: Date, amount: number) => Date;
64
+ addHours: (value: Date, amount: number) => Date;
65
+ addMinutes: (value: Date, amount: number) => Date;
66
+ addSeconds: (value: Date, amount: number) => Date;
67
+ getYear: (value: Date) => number;
68
+ getMonth: (value: Date) => number;
69
+ getDate: (value: Date) => number;
70
+ getHours: (value: Date) => number;
71
+ getMinutes: (value: Date) => number;
72
+ getSeconds: (value: Date) => number;
73
+ getMilliseconds: (value: Date) => number;
74
+ setYear: (value: Date, year: number) => Date;
75
+ setMonth: (value: Date, month: number) => Date;
76
+ setDate: (value: Date, date: number) => Date;
77
+ setHours: (value: Date, hours: number) => Date;
78
+ setMinutes: (value: Date, minutes: number) => Date;
79
+ setSeconds: (value: Date, seconds: number) => Date;
80
+ setMilliseconds: (value: Date, milliseconds: number) => Date;
81
+ getDaysInMonth: (value: Date) => number;
82
82
  getWeekArray: (value: Date) => Date[][];
83
- getWeekNumber: (value: Date) => any;
83
+ getWeekNumber: (value: Date) => number;
84
84
  getYearRange: ([start, end]: [Date, Date]) => Date[];
85
85
  }
@@ -90,6 +90,7 @@ export class AdapterDateFns extends AdapterDateFnsBase {
90
90
  formats,
91
91
  longFormatters
92
92
  });
93
+ // TODO: explicit return types can be removed once there is only one date-fns version supported
93
94
  this.parse = (value, format) => {
94
95
  if (value === '') {
95
96
  return null;
package/CHANGELOG.md CHANGED
@@ -3,6 +3,187 @@
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
+ ## 7.8.0
7
+
8
+ _Jun 28, 2024_
9
+
10
+ We'd like to offer a big thanks to the 10 contributors who made this release possible. Here are some highlights ✨:
11
+
12
+ - 🛰 Introduce server-side data source for improved server integration in the Data Grid.
13
+
14
+ Supports server-side pagination, sorting and filtering on plain and tree data, and automatic caching.
15
+
16
+ To enable, provide a `getRows` function to the `unstable_dataSource` prop on the Data Grid component.
17
+
18
+ ```tsx
19
+ const dataSource = {
20
+ getRows: async (params: GridServerGetRowsParams) => {
21
+ const data = await fetch(
22
+ `https://api.example.com/data?${new URLSearchParams({
23
+ page: params.page,
24
+ pageSize: params.pageSize,
25
+ sortModel: JSON.stringify(params.sortModel),
26
+ filterModel: JSON.stringify(params.filterModel),
27
+ }).toString()}`,
28
+ );
29
+ return {
30
+ rows: data.rows,
31
+ totalRows: data.totalRows,
32
+ };
33
+ },
34
+ }
35
+ <DataGridPro
36
+ unstable_dataSource={dataSource}
37
+ {...otherProps}
38
+ />
39
+ ```
40
+
41
+ See [server-side data documentation](https://mui.com/x/react-data-grid/server-side-data/) for more details.
42
+
43
+ - 📈 Support Date data on the BarChart component
44
+ - ↕️ Support custom column sort icons on the Data Grid
45
+ - 🖱️ Support modifying the expansion trigger on the Tree View components
46
+
47
+ <!--/ HIGHLIGHT_ABOVE_SEPARATOR /-->
48
+
49
+ ### Data Grid
50
+
51
+ #### `@mui/x-data-grid@7.8.0`
52
+
53
+ - [DataGrid] Add `columnHeaderSortIcon` slot (#13563) @arminmeh
54
+ - [DataGrid] Fix dimensions lag issue after autosize (#13587) @MBilalShafi
55
+ - [DataGrid] Fix print export failure when `hideFooter` option is set (#13034) @tarunrajput
56
+
57
+ #### `@mui/x-data-grid-pro@7.8.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
58
+
59
+ Same changes as in `@mui/x-data-grid@7.8.0`, plus:
60
+
61
+ - [DataGridPro] Fix multi-sorting indicator being cut off (#13625) @KenanYusuf
62
+ - [DataGridPro] Server-side tree data support (#12317) @MBilalShafi
63
+
64
+ #### `@mui/x-data-grid-premium@7.8.0` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
65
+
66
+ Same changes as in `@mui/x-data-grid-pro@7.8.0`.
67
+
68
+ ### Date and Time Pickers
69
+
70
+ #### `@mui/x-date-pickers@7.8.0`
71
+
72
+ - [fields] Fix section clearing behavior on Android (#13652) @LukasTy
73
+
74
+ #### `@mui/x-date-pickers-pro@7.8.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
75
+
76
+ Same changes as in `@mui/x-date-pickers@7.8.0`.
77
+
78
+ ### Charts
79
+
80
+ #### `@mui/x-charts@7.8.0`
81
+
82
+ - [charts] Fix line chart props not passing correct event handlers (#13609) @JCQuintas
83
+ - [charts] Support BarChart with `Date` data (#13471) @alexfauquette
84
+ - [charts] Support RTL for y-axis (#13614) @alexfauquette
85
+ - [charts] Use default values instead of non-null assertion to prevent error being thrown (#13637) @JCQuintas
86
+
87
+ ### Tree View
88
+
89
+ #### `@mui/x-tree-view@7.8.0`
90
+
91
+ - [TreeView] Add `expansionTrigger` prop (#13533) @noraleonte
92
+ - [TreeView] Support experimental features from plugin's dependencies (#13632) @flaviendelangle
93
+
94
+ ### Docs
95
+
96
+ - [docs] Add callout for `Luxon` `throwOnInvalid` support (#13621) @LukasTy
97
+ - [docs] Add "Overlays" section to the Data Grid documentation (#13624) @KenanYusuf
98
+
99
+ ### Core
100
+
101
+ - [core] Add eslint rule to restrict import from `../internals` root (#13633) @JCQuintas
102
+ - [docs-infra] Sync `\_app` folder with monorepo (#13582) @Janpot
103
+ - [license] Allow usage of charts and tree view pro package for old premium licenses (#13619) @flaviendelangle
104
+
105
+ ## 7.7.1
106
+
107
+ _Jun 21, 2024_
108
+
109
+ We'd like to offer a big thanks to the 14 contributors who made this release possible. Here are some highlights ✨:
110
+
111
+ - 🌍 Improve Portuguese (pt-PT) locale on the Data Grid
112
+ - 🌍 Improve Danish (da-DK) locale on the Date and Time Pickers
113
+ - 🐞 Bugfixes
114
+ - 📚 Documentation improvements
115
+
116
+ <!--/ HIGHLIGHT_ABOVE_SEPARATOR /-->
117
+
118
+ ### Data Grid
119
+
120
+ #### `@mui/x-data-grid@7.7.1`
121
+
122
+ - [DataGrid][docs] Clarify enabling pagination (#13350) @oliviertassinari
123
+ - [DataGrid] Fix CSV export escaping for non-string values (#13560) @joeycumines-scw
124
+ - [l10n] Improve Portuguese (pt-PT) locale (#13348) @joaosreis
125
+
126
+ #### `@mui/x-data-grid-pro@7.7.1` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
127
+
128
+ Same changes as in `@mui/x-data-grid@7.7.1`, plus:
129
+
130
+ - [DataGrid] Warn about `getTreeDataPath` reference (#13519) @cherniavskii
131
+
132
+ #### `@mui/x-data-grid-premium@7.7.1` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
133
+
134
+ Same changes as in `@mui/x-data-grid-pro@7.7.1`.
135
+
136
+ ### Date and Time Pickers
137
+
138
+ #### `@mui/x-date-pickers@7.7.1`
139
+
140
+ - [fields] Prevent digit editing on the `Space` key down (#13510) @flaviendelangle
141
+ - [l10n] Improve Danish (da-DK) locale (#13375) @jacrowland1
142
+ - [pickers] Add context to `onAccept` callback (#13511) @flaviendelangle
143
+ - [pickers] Always use the same timezone in the field, the view and the layout components (#13481) @flaviendelangle
144
+ - [pickers] Fix `AdapterDateFnsV3` generated method types (#13464) @alexey-kozlenkov
145
+ - [pickers] Fix controlled `view` behavior (#13552) @LukasTy
146
+ - [TimePicker] Improves RTL verification for the time pickers default views (#13447) @arthurbalduini
147
+
148
+ #### `@mui/x-date-pickers-pro@7.7.1` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
149
+
150
+ Same changes as in `@mui/x-date-pickers@7.7.1`, plus:
151
+
152
+ - [DateRangePicker] Add accessible name to calendar grid (#13538) @LukasTy
153
+
154
+ ### Charts
155
+
156
+ #### `@mui/x-charts@7.7.1`
157
+
158
+ - [charts] Divide `CartesianProvider` to use logic in Pro package (#13531) @JCQuintas
159
+ - [charts] Do not publish the pro package (#13539) @alexfauquette
160
+ - [charts] Export `Pro` versions of regular charts (#13547) @JCQuintas
161
+ - [charts] Prepare `ChartContainerPro` for future Zoom changes (#13532) @JCQuintas
162
+ - [charts] Remove unnecessary proptypes from internal component (#13518) @JCQuintas
163
+
164
+ ### Tree View
165
+
166
+ #### `@mui/x-tree-view@7.7.1`
167
+
168
+ - [TreeView] Improve typing to support optional dependencies in plugins and in the item (#13523) @flaviendelangle
169
+ - [TreeView] Move `useTreeViewId` to the core plugins (#13566) @flaviendelangle
170
+ - [TreeView] Remove unused state from `useTreeViewId` (#13579) @flaviendelangle
171
+ - [TreeView] Support `itemId` with escaping characters when using `SimpleTreeView` (#13487) @oukunan
172
+
173
+ ### Docs
174
+
175
+ - [docs] Add section about the new uncovered product watermark (#13568) @michelengelen
176
+ - [docs] Document the `PickerValidDate` type override (#13476) @flaviendelangle
177
+ - [docs] Fix typo (#13507) @anshtiwatne
178
+ - [docs] Remove "-" in heat-map and tree-map urls (#13569) @alexfauquette
179
+ - [docs] Use dedicated tab for weather dataset (#13513) @alexfauquette
180
+ - [x-license] license update proposal (#13459) @michelengelen
181
+
182
+ ### Core
183
+
184
+ - [core] Fix failing CI test (#13574) @alexfauquette
185
+ - [infra] Remove explicit `@testing-library/react` dependency (#13478) @LukasTy
186
+
6
187
  ## 7.7.0
7
188
 
8
189
  _Jun 13, 2024_
@@ -22,7 +22,7 @@ interface ChangeFocusedDayPayload<TDate extends PickerValidDate> {
22
22
  */
23
23
  withoutMonthSwitchingAnimation?: boolean;
24
24
  }
25
- export declare const createCalendarStateReducer: <TDate extends PickerValidDate>(reduceAnimations: boolean, disableSwitchToMonthOnDayFocus: boolean, utils: MuiPickersAdapter<TDate>) => (state: CalendarState<TDate>, action: ReducerAction<'finishMonthSwitchingAnimation'> | ReducerAction<'changeMonth', ChangeMonthPayload<TDate>> | ReducerAction<'changeFocusedDay', ChangeFocusedDayPayload<TDate>>) => CalendarState<TDate>;
25
+ export declare const createCalendarStateReducer: <TDate extends PickerValidDate>(reduceAnimations: boolean, disableSwitchToMonthOnDayFocus: boolean, utils: MuiPickersAdapter<TDate>) => (state: CalendarState<TDate>, action: ReducerAction<"finishMonthSwitchingAnimation"> | ReducerAction<"changeMonth", ChangeMonthPayload<TDate>> | ReducerAction<"changeFocusedDay", ChangeFocusedDayPayload<TDate>>) => CalendarState<TDate>;
26
26
  interface UseCalendarStateParams<TDate extends PickerValidDate> extends Pick<DateCalendarDefaultizedProps<TDate>, 'value' | 'referenceDate' | 'disableFuture' | 'disablePast' | 'minDate' | 'maxDate' | 'onMonthChange' | 'reduceAnimations' | 'shouldDisableDate'> {
27
27
  disableSwitchToMonthOnDayFocus?: boolean;
28
28
  timezone: PickersTimezone;
@@ -167,7 +167,9 @@ process.env.NODE_ENV !== "production" ? DatePicker.propTypes = {
167
167
  /**
168
168
  * Callback fired when the value is accepted.
169
169
  * @template TValue The value type. Will be either the same type as `value` or `null`. Can be in `[start, end]` format in case of range value.
170
+ * @template TError The validation error type. Will be either `string` or a `null`. Can be in `[start, end]` format in case of range value.
170
171
  * @param {TValue} value The value that was just accepted.
172
+ * @param {FieldChangeHandlerContext<TError>} context The context containing the validation result of the current value.
171
173
  */
172
174
  onAccept: PropTypes.func,
173
175
  /**
@@ -205,7 +205,9 @@ process.env.NODE_ENV !== "production" ? DateTimePicker.propTypes = {
205
205
  /**
206
206
  * Callback fired when the value is accepted.
207
207
  * @template TValue The value type. Will be either the same type as `value` or `null`. Can be in `[start, end]` format in case of range value.
208
+ * @template TError The validation error type. Will be either `string` or a `null`. Can be in `[start, end]` format in case of range value.
208
209
  * @param {TValue} value The value that was just accepted.
210
+ * @param {FieldChangeHandlerContext<TError>} context The context containing the validation result of the current value.
209
211
  */
210
212
  onAccept: PropTypes.func,
211
213
  /**
@@ -16,7 +16,7 @@ import { useMeridiemMode } from '../internals/hooks/date-helpers-hooks';
16
16
  import { MULTI_SECTION_CLOCK_SECTION_WIDTH } from '../internals/constants/dimensions';
17
17
  import { formatMeridiem } from '../internals/utils/date-utils';
18
18
  import { pickersToolbarTextClasses } from '../internals/components/pickersToolbarTextClasses';
19
- import { pickersToolbarClasses } from '../internals';
19
+ import { pickersToolbarClasses } from '../internals/components/pickersToolbarClasses';
20
20
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
21
21
  const useUtilityClasses = ownerState => {
22
22
  const {
@@ -182,7 +182,9 @@ DesktopDatePicker.propTypes = {
182
182
  /**
183
183
  * Callback fired when the value is accepted.
184
184
  * @template TValue The value type. Will be either the same type as `value` or `null`. Can be in `[start, end]` format in case of range value.
185
+ * @template TError The validation error type. Will be either `string` or a `null`. Can be in `[start, end]` format in case of range value.
185
186
  * @param {TValue} value The value that was just accepted.
187
+ * @param {FieldChangeHandlerContext<TError>} context The context containing the validation result of the current value.
186
188
  */
187
189
  onAccept: PropTypes.func,
188
190
  /**
@@ -17,10 +17,12 @@ import { useDesktopPicker } from '../internals/hooks/useDesktopPicker';
17
17
  import { extractValidationProps } from '../internals/utils/validation/extractValidationProps';
18
18
  import { resolveDateTimeFormat, resolveTimeViewsResponse } from '../internals/utils/date-time-utils';
19
19
  import { renderDigitalClockTimeView, renderMultiSectionDigitalClockTimeView } from '../timeViewRenderers';
20
- import { VIEW_HEIGHT, isDatePickerView, isInternalTimeView } from '../internals';
21
20
  import { multiSectionDigitalClockClasses, multiSectionDigitalClockSectionClasses } from '../MultiSectionDigitalClock';
22
21
  import { digitalClockClasses } from '../DigitalClock';
23
22
  import { DesktopDateTimePickerLayout } from './DesktopDateTimePickerLayout';
23
+ import { VIEW_HEIGHT } from '../internals/constants/dimensions';
24
+ import { isInternalTimeView } from '../internals/utils/time-utils';
25
+ import { isDatePickerView } from '../internals/utils/date-utils';
24
26
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
25
27
  const rendererInterceptor = function rendererInterceptor(inViewRenderers, popperView, rendererProps) {
26
28
  const {
@@ -305,7 +307,9 @@ DesktopDateTimePicker.propTypes = {
305
307
  /**
306
308
  * Callback fired when the value is accepted.
307
309
  * @template TValue The value type. Will be either the same type as `value` or `null`. Can be in `[start, end]` format in case of range value.
310
+ * @template TError The validation error type. Will be either `string` or a `null`. Can be in `[start, end]` format in case of range value.
308
311
  * @param {TValue} value The value that was just accepted.
312
+ * @param {FieldChangeHandlerContext<TError>} context The context containing the validation result of the current value.
309
313
  */
310
314
  onAccept: PropTypes.func,
311
315
  /**
@@ -1,7 +1,7 @@
1
1
  import * as React from 'react';
2
2
  import { PickersLayoutProps } from '../PickersLayout';
3
3
  import { PickerValidDate } from '../models';
4
- import { DateOrTimeViewWithMeridiem } from '../internals';
4
+ import { DateOrTimeViewWithMeridiem } from '../internals/models/common';
5
5
  /**
6
6
  * @ignore - internal component.
7
7
  */
@@ -193,7 +193,9 @@ DesktopTimePicker.propTypes = {
193
193
  /**
194
194
  * Callback fired when the value is accepted.
195
195
  * @template TValue The value type. Will be either the same type as `value` or `null`. Can be in `[start, end]` format in case of range value.
196
+ * @template TError The validation error type. Will be either `string` or a `null`. Can be in `[start, end]` format in case of range value.
196
197
  * @param {TValue} value The value that was just accepted.
198
+ * @param {FieldChangeHandlerContext<TError>} context The context containing the validation result of the current value.
197
199
  */
198
200
  onAccept: PropTypes.func,
199
201
  /**
@@ -179,7 +179,9 @@ MobileDatePicker.propTypes = {
179
179
  /**
180
180
  * Callback fired when the value is accepted.
181
181
  * @template TValue The value type. Will be either the same type as `value` or `null`. Can be in `[start, end]` format in case of range value.
182
+ * @template TError The validation error type. Will be either `string` or a `null`. Can be in `[start, end]` format in case of range value.
182
183
  * @param {TValue} value The value that was just accepted.
184
+ * @param {FieldChangeHandlerContext<TError>} context The context containing the validation result of the current value.
183
185
  */
184
186
  onAccept: PropTypes.func,
185
187
  /**
@@ -227,7 +227,9 @@ MobileDateTimePicker.propTypes = {
227
227
  /**
228
228
  * Callback fired when the value is accepted.
229
229
  * @template TValue The value type. Will be either the same type as `value` or `null`. Can be in `[start, end]` format in case of range value.
230
+ * @template TError The validation error type. Will be either `string` or a `null`. Can be in `[start, end]` format in case of range value.
230
231
  * @param {TValue} value The value that was just accepted.
232
+ * @param {FieldChangeHandlerContext<TError>} context The context containing the validation result of the current value.
231
233
  */
232
234
  onAccept: PropTypes.func,
233
235
  /**
@@ -172,7 +172,9 @@ MobileTimePicker.propTypes = {
172
172
  /**
173
173
  * Callback fired when the value is accepted.
174
174
  * @template TValue The value type. Will be either the same type as `value` or `null`. Can be in `[start, end]` format in case of range value.
175
+ * @template TError The validation error type. Will be either `string` or a `null`. Can be in `[start, end]` format in case of range value.
175
176
  * @param {TValue} value The value that was just accepted.
177
+ * @param {FieldChangeHandlerContext<TError>} context The context containing the validation result of the current value.
176
178
  */
177
179
  onAccept: PropTypes.func,
178
180
  /**
@@ -4,6 +4,7 @@ const _excluded = ["ampm", "timeSteps", "autoFocus", "slots", "slotProps", "valu
4
4
  import * as React from 'react';
5
5
  import clsx from 'clsx';
6
6
  import PropTypes from 'prop-types';
7
+ import { useRtl } from '@mui/system/RtlProvider';
7
8
  import { styled, useThemeProps } from '@mui/material/styles';
8
9
  import useEventCallback from '@mui/utils/useEventCallback';
9
10
  import composeClasses from '@mui/utils/composeClasses';
@@ -53,6 +54,7 @@ const MultiSectionDigitalClockRoot = styled(PickerViewRoot, {
53
54
  */
54
55
  export const MultiSectionDigitalClock = /*#__PURE__*/React.forwardRef(function MultiSectionDigitalClock(inProps, ref) {
55
56
  const utils = useUtils();
57
+ const isRtl = useRtl();
56
58
  const props = useThemeProps({
57
59
  props: inProps,
58
60
  name: 'MuiMultiSectionDigitalClock'
@@ -295,6 +297,17 @@ export const MultiSectionDigitalClock = /*#__PURE__*/React.forwardRef(function M
295
297
  throw new Error(`Unknown view: ${viewToBuild} found.`);
296
298
  }
297
299
  }, [now, value, ampm, utils, timeSteps.hours, timeSteps.minutes, timeSteps.seconds, localeText.hoursClockNumberText, localeText.minutesClockNumberText, localeText.secondsClockNumberText, meridiemMode, setValueAndGoToNextView, valueOrReferenceDate, isTimeDisabled, handleMeridiemChange]);
300
+ const viewsToRender = React.useMemo(() => {
301
+ if (!isRtl) {
302
+ return views;
303
+ }
304
+ const digitViews = views.filter(v => v !== 'meridiem');
305
+ const result = digitViews.toReversed();
306
+ if (views.includes('meridiem')) {
307
+ result.push('meridiem');
308
+ }
309
+ return result;
310
+ }, [isRtl, views]);
298
311
  const viewTimeOptions = React.useMemo(() => {
299
312
  return views.reduce((result, currentView) => {
300
313
  return _extends({}, result, {
@@ -310,9 +323,9 @@ export const MultiSectionDigitalClock = /*#__PURE__*/React.forwardRef(function M
310
323
  ownerState: ownerState,
311
324
  role: "group"
312
325
  }, other, {
313
- children: Object.entries(viewTimeOptions).map(([timeView, viewOptions]) => /*#__PURE__*/_jsx(MultiSectionDigitalClockSection, {
314
- items: viewOptions.items,
315
- onChange: viewOptions.onChange,
326
+ children: viewsToRender.map(timeView => /*#__PURE__*/_jsx(MultiSectionDigitalClockSection, {
327
+ items: viewTimeOptions[timeView].items,
328
+ onChange: viewTimeOptions[timeView].onChange,
316
329
  active: view === timeView,
317
330
  autoFocus: autoFocus ?? focusedView === timeView,
318
331
  disabled: disabled,
@@ -243,6 +243,10 @@ process.env.NODE_ENV !== "production" ? PickersCalendarHeader.propTypes = {
243
243
  * @default `${adapter.formats.month} ${adapter.formats.year}`
244
244
  */
245
245
  format: PropTypes.string,
246
+ /**
247
+ * Id of the calendar text element.
248
+ * It is used to establish an `aria-labelledby` relationship with the calendar `grid` element.
249
+ */
246
250
  labelId: PropTypes.string,
247
251
  maxDate: PropTypes.object.isRequired,
248
252
  minDate: PropTypes.object.isRequired,
@@ -45,6 +45,10 @@ export interface PickersCalendarHeaderProps<TDate extends PickerValidDate> exten
45
45
  view: DateView;
46
46
  reduceAnimations: boolean;
47
47
  onViewChange?: (view: DateView) => void;
48
+ /**
49
+ * Id of the calendar text element.
50
+ * It is used to establish an `aria-labelledby` relationship with the calendar `grid` element.
51
+ */
48
52
  labelId?: string;
49
53
  /**
50
54
  * Override or extend the styles applied to the component.