@mui/x-date-pickers 7.17.0 → 7.19.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 (118) hide show
  1. package/AdapterDateFns/AdapterDateFns.js +1 -1
  2. package/AdapterDateFnsBase/AdapterDateFnsBase.js +1 -0
  3. package/AdapterDateFnsV3/AdapterDateFnsV3.js +1 -1
  4. package/AdapterMoment/AdapterMoment.js +1 -0
  5. package/CHANGELOG.md +208 -5
  6. package/DateCalendar/DateCalendar.js +9 -1
  7. package/DateField/useDateField.d.ts +1 -1
  8. package/DatePicker/DatePicker.js +6 -0
  9. package/DatePicker/DatePicker.types.d.ts +5 -5
  10. package/DateTimeField/useDateTimeField.d.ts +1 -1
  11. package/DateTimePicker/DateTimePicker.js +6 -0
  12. package/DateTimePicker/DateTimePicker.types.d.ts +7 -6
  13. package/DateTimePicker/DateTimePickerTabs.js +1 -1
  14. package/DesktopDatePicker/DesktopDatePicker.js +6 -0
  15. package/DesktopDatePicker/DesktopDatePicker.types.d.ts +7 -6
  16. package/DesktopDateTimePicker/DesktopDateTimePicker.js +6 -0
  17. package/DesktopDateTimePicker/DesktopDateTimePicker.types.d.ts +11 -10
  18. package/DesktopDateTimePicker/DesktopDateTimePickerLayout.js +1 -1
  19. package/MobileDatePicker/MobileDatePicker.js +6 -0
  20. package/MobileDatePicker/MobileDatePicker.types.d.ts +5 -0
  21. package/MobileDateTimePicker/MobileDateTimePicker.js +6 -0
  22. package/MonthCalendar/MonthCalendar.types.d.ts +1 -1
  23. package/PickersCalendarHeader/PickersCalendarHeader.js +1 -1
  24. package/PickersCalendarHeader/PickersCalendarHeader.types.d.ts +1 -1
  25. package/PickersLayout/PickersLayout.d.ts +2 -2
  26. package/PickersLayout/PickersLayout.js +1 -1
  27. package/PickersSectionList/PickersSectionList.d.ts +4 -4
  28. package/PickersTextField/PickersInputBase/PickersInputBase.d.ts +2 -2
  29. package/StaticDatePicker/StaticDatePicker.js +7 -1
  30. package/StaticDatePicker/StaticDatePicker.types.d.ts +5 -0
  31. package/StaticDateTimePicker/StaticDateTimePicker.js +7 -1
  32. package/StaticDateTimePicker/StaticDateTimePicker.types.d.ts +5 -0
  33. package/TimeClock/Clock.js +1 -1
  34. package/TimeClock/ClockNumber.js +1 -1
  35. package/TimeClock/ClockPointer.js +1 -1
  36. package/TimeField/useTimeField.d.ts +1 -1
  37. package/YearCalendar/YearCalendar.js +19 -6
  38. package/YearCalendar/YearCalendar.types.d.ts +7 -1
  39. package/dateViewRenderers/dateViewRenderers.d.ts +1 -1
  40. package/dateViewRenderers/dateViewRenderers.js +2 -0
  41. package/index.js +1 -1
  42. package/internals/components/PickerViewRoot/PickerViewRoot.d.ts +1 -1
  43. package/internals/components/PickersToolbarButton.js +1 -1
  44. package/internals/components/PickersToolbarText.js +1 -1
  45. package/locales/bgBG.d.ts +80 -0
  46. package/locales/bgBG.js +73 -0
  47. package/locales/csCZ.js +16 -20
  48. package/locales/hrHR.d.ts +80 -0
  49. package/locales/hrHR.js +90 -0
  50. package/locales/index.d.ts +3 -0
  51. package/locales/index.js +3 -0
  52. package/locales/ptBR.js +3 -4
  53. package/locales/ptPT.d.ts +80 -0
  54. package/locales/ptPT.js +73 -0
  55. package/models/pickers.d.ts +1 -1
  56. package/modern/AdapterDateFns/AdapterDateFns.js +1 -1
  57. package/modern/AdapterDateFnsBase/AdapterDateFnsBase.js +1 -0
  58. package/modern/AdapterDateFnsV3/AdapterDateFnsV3.js +1 -1
  59. package/modern/AdapterMoment/AdapterMoment.js +1 -0
  60. package/modern/DateCalendar/DateCalendar.js +9 -1
  61. package/modern/DatePicker/DatePicker.js +6 -0
  62. package/modern/DateTimePicker/DateTimePicker.js +6 -0
  63. package/modern/DateTimePicker/DateTimePickerTabs.js +1 -1
  64. package/modern/DesktopDatePicker/DesktopDatePicker.js +6 -0
  65. package/modern/DesktopDateTimePicker/DesktopDateTimePicker.js +6 -0
  66. package/modern/DesktopDateTimePicker/DesktopDateTimePickerLayout.js +1 -1
  67. package/modern/MobileDatePicker/MobileDatePicker.js +6 -0
  68. package/modern/MobileDateTimePicker/MobileDateTimePicker.js +6 -0
  69. package/modern/PickersCalendarHeader/PickersCalendarHeader.js +1 -1
  70. package/modern/PickersLayout/PickersLayout.js +1 -1
  71. package/modern/StaticDatePicker/StaticDatePicker.js +7 -1
  72. package/modern/StaticDateTimePicker/StaticDateTimePicker.js +7 -1
  73. package/modern/TimeClock/Clock.js +1 -1
  74. package/modern/TimeClock/ClockNumber.js +1 -1
  75. package/modern/TimeClock/ClockPointer.js +1 -1
  76. package/modern/YearCalendar/YearCalendar.js +19 -6
  77. package/modern/dateViewRenderers/dateViewRenderers.js +2 -0
  78. package/modern/index.js +1 -1
  79. package/modern/internals/components/PickersToolbarButton.js +1 -1
  80. package/modern/internals/components/PickersToolbarText.js +1 -1
  81. package/modern/locales/bgBG.js +73 -0
  82. package/modern/locales/csCZ.js +16 -20
  83. package/modern/locales/hrHR.js +90 -0
  84. package/modern/locales/index.js +3 -0
  85. package/modern/locales/ptBR.js +3 -4
  86. package/modern/locales/ptPT.js +73 -0
  87. package/node/AdapterDateFns/AdapterDateFns.js +1 -1
  88. package/node/AdapterDateFnsBase/AdapterDateFnsBase.js +1 -0
  89. package/node/AdapterDateFnsV3/AdapterDateFnsV3.js +1 -1
  90. package/node/AdapterMoment/AdapterMoment.js +1 -0
  91. package/node/DateCalendar/DateCalendar.js +9 -1
  92. package/node/DatePicker/DatePicker.js +6 -0
  93. package/node/DateTimePicker/DateTimePicker.js +6 -0
  94. package/node/DateTimePicker/DateTimePickerTabs.js +1 -1
  95. package/node/DesktopDatePicker/DesktopDatePicker.js +6 -0
  96. package/node/DesktopDateTimePicker/DesktopDateTimePicker.js +6 -0
  97. package/node/DesktopDateTimePicker/DesktopDateTimePickerLayout.js +1 -1
  98. package/node/MobileDatePicker/MobileDatePicker.js +6 -0
  99. package/node/MobileDateTimePicker/MobileDateTimePicker.js +6 -0
  100. package/node/PickersCalendarHeader/PickersCalendarHeader.js +1 -1
  101. package/node/PickersLayout/PickersLayout.js +1 -1
  102. package/node/StaticDatePicker/StaticDatePicker.js +7 -1
  103. package/node/StaticDateTimePicker/StaticDateTimePicker.js +7 -1
  104. package/node/TimeClock/Clock.js +1 -1
  105. package/node/TimeClock/ClockNumber.js +1 -1
  106. package/node/TimeClock/ClockPointer.js +1 -1
  107. package/node/YearCalendar/YearCalendar.js +19 -6
  108. package/node/dateViewRenderers/dateViewRenderers.js +2 -0
  109. package/node/index.js +1 -1
  110. package/node/internals/components/PickersToolbarButton.js +1 -1
  111. package/node/internals/components/PickersToolbarText.js +1 -1
  112. package/node/locales/bgBG.js +79 -0
  113. package/node/locales/csCZ.js +16 -20
  114. package/node/locales/hrHR.js +96 -0
  115. package/node/locales/index.js +33 -0
  116. package/node/locales/ptBR.js +3 -4
  117. package/node/locales/ptPT.js +79 -0
  118. package/package.json +4 -4
@@ -0,0 +1,90 @@
1
+ import { getPickersLocalization } from "./utils/getPickersLocalization.js";
2
+ // maps TimeView to its translation
3
+ const timeViews = {
4
+ hours: 'sati',
5
+ minutes: 'minute',
6
+ seconds: 'sekunde',
7
+ meridiem: 'meridiem'
8
+ };
9
+ const hrHRPickers = {
10
+ // Calendar navigation
11
+ previousMonth: 'Prethodni mjesec',
12
+ nextMonth: 'Naredni mjesec',
13
+ // View navigation
14
+ openPreviousView: 'Otvori prethodni prikaz',
15
+ openNextView: 'Otvori naredni prikaz',
16
+ calendarViewSwitchingButtonAriaLabel: view => view === 'year' ? 'Otvoren je godišnji prikaz, promijeni na kalendarski prikaz' : 'Otvoren je kalendarski prikaz, promijeni na godišnji prikaz',
17
+ // DateRange labels
18
+ start: 'Početak',
19
+ end: 'Kraj',
20
+ startDate: 'Početni datum',
21
+ startTime: 'Početno vrijeme',
22
+ endDate: 'Krajnji datum',
23
+ endTime: 'Krajnje vrijeme',
24
+ // Action bar
25
+ cancelButtonLabel: 'Otkaži',
26
+ clearButtonLabel: 'Izbriši',
27
+ okButtonLabel: 'U redu',
28
+ todayButtonLabel: 'Danas',
29
+ // Toolbar titles
30
+ datePickerToolbarTitle: 'Odaberi datum',
31
+ dateTimePickerToolbarTitle: 'Odaberi datum i vrijeme',
32
+ timePickerToolbarTitle: 'Odaberi vrijeme',
33
+ dateRangePickerToolbarTitle: 'Odaberi vremenski okvir',
34
+ // Clock labels
35
+ clockLabelText: (view, time, utils, formattedTime) => `Odaberi ${timeViews[view] ?? view}. ${!formattedTime && (time === null || !utils.isValid(time)) ? 'Vrijeme nije odabrano' : `Odabrano vrijeme je ${formattedTime ?? utils.format(time, 'fullTime')}`}`,
36
+ hoursClockNumberText: hours => {
37
+ let suffix = 'sati';
38
+ if (Number(hours) === 1) {
39
+ suffix = 'sat';
40
+ } else if (Number(hours) < 5) {
41
+ suffix = 'sata';
42
+ }
43
+ return `${hours} ${suffix}`;
44
+ },
45
+ minutesClockNumberText: minutes => `${minutes} ${Number(minutes) > 1 && Number(minutes) < 5 ? 'minute' : 'minuta'}`,
46
+ secondsClockNumberText: seconds => {
47
+ let suffix = 'sekundi';
48
+ if (Number(seconds) === 1) {
49
+ suffix = 'sekunda';
50
+ } else if (Number(seconds) < 5) {
51
+ suffix = 'sekunde';
52
+ }
53
+ return `${seconds} ${suffix}`;
54
+ },
55
+ // Digital clock labels
56
+ selectViewText: view => `Odaberi ${timeViews[view]}`,
57
+ // Calendar labels
58
+ calendarWeekNumberHeaderLabel: 'Broj tjedna',
59
+ calendarWeekNumberHeaderText: '#',
60
+ calendarWeekNumberAriaLabelText: weekNumber => `Tjedan ${weekNumber}`,
61
+ calendarWeekNumberText: weekNumber => `${weekNumber}`,
62
+ // Open picker labels
63
+ openDatePickerDialogue: (value, utils, formattedDate) => formattedDate || value !== null && utils.isValid(value) ? `Odaberi datum, odabrani datum je ${formattedDate ?? utils.format(value, 'fullDate')}` : 'Odaberi datum',
64
+ openTimePickerDialogue: (value, utils, formattedTime) => formattedTime || value !== null && utils.isValid(value) ? `Odaberi vrijeme, odabrano vrijeme je ${formattedTime ?? utils.format(value, 'fullTime')}` : 'Odaberi vrijeme',
65
+ fieldClearLabel: 'Izbriši',
66
+ // Table labels
67
+ timeTableLabel: 'Odaberi vrijeme',
68
+ dateTableLabel: 'Odaberi datum',
69
+ // Field section placeholders
70
+ fieldYearPlaceholder: params => 'G'.repeat(params.digitAmount),
71
+ fieldMonthPlaceholder: params => params.contentType === 'letter' ? 'MMMM' : 'MM',
72
+ fieldDayPlaceholder: () => 'DD',
73
+ fieldWeekDayPlaceholder: params => params.contentType === 'letter' ? 'EEEE' : 'EE',
74
+ fieldHoursPlaceholder: () => 'hh',
75
+ fieldMinutesPlaceholder: () => 'mm',
76
+ fieldSecondsPlaceholder: () => 'ss',
77
+ fieldMeridiemPlaceholder: () => 'aa',
78
+ // View names
79
+ year: 'Godina',
80
+ month: 'Mjesec',
81
+ day: 'Dan',
82
+ weekDay: 'Dan u tjednu',
83
+ hours: 'Sati',
84
+ minutes: 'Minute',
85
+ seconds: 'Sekunde',
86
+ meridiem: 'Meridiem',
87
+ // Common
88
+ empty: 'Isprazni'
89
+ };
90
+ export const hrHR = getPickersLocalization(hrHRPickers);
@@ -1,4 +1,5 @@
1
1
  export * from './beBY';
2
+ export * from './bgBG';
2
3
  export * from './caES';
3
4
  export * from './csCZ';
4
5
  export * from './daDK';
@@ -11,6 +12,7 @@ export * from './faIR';
11
12
  export * from './fiFI';
12
13
  export * from './frFR';
13
14
  export * from './heIL';
15
+ export * from './hrHR';
14
16
  export * from './huHU';
15
17
  export * from './isIS';
16
18
  export * from './itIT';
@@ -23,6 +25,7 @@ export * from './nlNL';
23
25
  export * from './nnNO';
24
26
  export * from './plPL';
25
27
  export * from './ptBR';
28
+ export * from './ptPT';
26
29
  export * from './roRO';
27
30
  export * from './ruRU';
28
31
  export * from './skSK';
package/locales/index.js CHANGED
@@ -1,4 +1,5 @@
1
1
  export * from "./beBY.js";
2
+ export * from "./bgBG.js";
2
3
  export * from "./caES.js";
3
4
  export * from "./csCZ.js";
4
5
  export * from "./daDK.js";
@@ -11,6 +12,7 @@ export * from "./faIR.js";
11
12
  export * from "./fiFI.js";
12
13
  export * from "./frFR.js";
13
14
  export * from "./heIL.js";
15
+ export * from "./hrHR.js";
14
16
  export * from "./huHU.js";
15
17
  export * from "./isIS.js";
16
18
  export * from "./itIT.js";
@@ -23,6 +25,7 @@ export * from "./nlNL.js";
23
25
  export * from "./nnNO.js";
24
26
  export * from "./plPL.js";
25
27
  export * from "./ptBR.js";
28
+ export * from "./ptPT.js";
26
29
  export * from "./roRO.js";
27
30
  export * from "./ruRU.js";
28
31
  export * from "./skSK.js";
package/locales/ptBR.js CHANGED
@@ -10,8 +10,8 @@ const ptBRPickers = {
10
10
  previousMonth: 'Mês anterior',
11
11
  nextMonth: 'Próximo mês',
12
12
  // View navigation
13
- openPreviousView: 'Abrir próxima seleção',
14
- openNextView: 'Abrir seleção anterior',
13
+ openPreviousView: 'Abrir seleção anterior',
14
+ openNextView: 'Abrir próxima seleção',
15
15
  calendarViewSwitchingButtonAriaLabel: view => view === 'year' ? 'Seleção de ano está aberta, alternando para seleção de calendário' : 'Seleção de calendários está aberta, alternando para seleção de ano',
16
16
  // DateRange labels
17
17
  start: 'Início',
@@ -45,8 +45,7 @@ const ptBRPickers = {
45
45
  // Open picker labels
46
46
  openDatePickerDialogue: (value, utils, formattedDate) => formattedDate || value !== null && utils.isValid(value) ? `Escolha uma data, data selecionada ${formattedDate ?? utils.format(value, 'fullDate')}` : 'Escolha uma data',
47
47
  openTimePickerDialogue: (value, utils, formattedTime) => formattedTime || value !== null && utils.isValid(value) ? `Escolha uma hora, hora selecionada ${formattedTime ?? utils.format(value, 'fullTime')}` : 'Escolha uma hora',
48
- // fieldClearLabel: 'Clear',
49
-
48
+ fieldClearLabel: 'Limpar valor',
50
49
  // Table labels
51
50
  timeTableLabel: 'escolha uma hora',
52
51
  dateTableLabel: 'escolha uma data',
@@ -0,0 +1,80 @@
1
+ import { TimeViewWithMeridiem } from '../internals/models';
2
+ export declare const ptPT: {
3
+ components: {
4
+ MuiLocalizationProvider: {
5
+ defaultProps: {
6
+ localeText: {
7
+ previousMonth?: string | undefined;
8
+ nextMonth?: string | undefined;
9
+ calendarWeekNumberHeaderLabel?: string | undefined;
10
+ calendarWeekNumberHeaderText?: string | undefined;
11
+ calendarWeekNumberAriaLabelText?: ((weekNumber: number) => string) | undefined;
12
+ calendarWeekNumberText?: ((weekNumber: number) => string) | undefined;
13
+ openPreviousView?: string | undefined;
14
+ openNextView?: string | undefined;
15
+ calendarViewSwitchingButtonAriaLabel?: ((currentView: import("@mui/x-date-pickers/models").DateView) => string) | undefined;
16
+ start?: string | undefined;
17
+ end?: string | undefined;
18
+ startDate?: string | undefined;
19
+ startTime?: string | undefined;
20
+ endDate?: string | undefined;
21
+ endTime?: string | undefined;
22
+ cancelButtonLabel?: string | undefined;
23
+ clearButtonLabel?: string | undefined;
24
+ okButtonLabel?: string | undefined;
25
+ todayButtonLabel?: string | undefined;
26
+ clockLabelText?: ((view: import("@mui/x-date-pickers/models").TimeView, time: any, utils: import("@mui/x-date-pickers/models").MuiPickersAdapter<any, any>, formattedTime?: string | null) => string) | undefined;
27
+ hoursClockNumberText?: ((hours: string) => string) | undefined;
28
+ minutesClockNumberText?: ((minutes: string) => string) | undefined;
29
+ secondsClockNumberText?: ((seconds: string) => string) | undefined;
30
+ selectViewText?: ((view: TimeViewWithMeridiem) => string) | undefined;
31
+ openDatePickerDialogue?: ((date: any, utils: import("@mui/x-date-pickers/models").MuiPickersAdapter<any, any>, formattedDate: string | null) => string) | undefined;
32
+ openTimePickerDialogue?: ((date: any, utils: import("@mui/x-date-pickers/models").MuiPickersAdapter<any, any>, formattedTime: string | null) => string) | undefined;
33
+ fieldClearLabel?: string | undefined;
34
+ timeTableLabel?: string | undefined;
35
+ dateTableLabel?: string | undefined;
36
+ fieldYearPlaceholder?: ((params: {
37
+ digitAmount: number;
38
+ format: string;
39
+ }) => string) | undefined;
40
+ fieldMonthPlaceholder?: ((params: {
41
+ contentType: import("@mui/x-date-pickers/models").FieldSectionContentType;
42
+ format: string;
43
+ }) => string) | undefined;
44
+ fieldDayPlaceholder?: ((params: {
45
+ format: string;
46
+ }) => string) | undefined;
47
+ fieldWeekDayPlaceholder?: ((params: {
48
+ contentType: import("@mui/x-date-pickers/models").FieldSectionContentType;
49
+ format: string;
50
+ }) => string) | undefined;
51
+ fieldHoursPlaceholder?: ((params: {
52
+ format: string;
53
+ }) => string) | undefined;
54
+ fieldMinutesPlaceholder?: ((params: {
55
+ format: string;
56
+ }) => string) | undefined;
57
+ fieldSecondsPlaceholder?: ((params: {
58
+ format: string;
59
+ }) => string) | undefined;
60
+ fieldMeridiemPlaceholder?: ((params: {
61
+ format: string;
62
+ }) => string) | undefined;
63
+ year?: string | undefined;
64
+ month?: string | undefined;
65
+ day?: string | undefined;
66
+ weekDay?: string | undefined;
67
+ hours?: string | undefined;
68
+ minutes?: string | undefined;
69
+ seconds?: string | undefined;
70
+ meridiem?: string | undefined;
71
+ empty?: string | undefined;
72
+ datePickerToolbarTitle?: string | undefined;
73
+ timePickerToolbarTitle?: string | undefined;
74
+ dateTimePickerToolbarTitle?: string | undefined;
75
+ dateRangePickerToolbarTitle?: string | undefined;
76
+ };
77
+ };
78
+ };
79
+ };
80
+ };
@@ -0,0 +1,73 @@
1
+ import { getPickersLocalization } from "./utils/getPickersLocalization.js";
2
+ const timeViews = {
3
+ hours: 'horas',
4
+ minutes: 'minutos',
5
+ seconds: 'segundos',
6
+ meridiem: 'meridiano'
7
+ };
8
+ const ptPTPickers = {
9
+ // Calendar navigation
10
+ previousMonth: 'Mês anterior',
11
+ nextMonth: 'Próximo mês',
12
+ // View navigation
13
+ openPreviousView: 'Abrir seleção anterior',
14
+ openNextView: 'Abrir próxima seleção',
15
+ calendarViewSwitchingButtonAriaLabel: view => view === 'year' ? 'A seleção do ano está aberta, altere para a seleção do calendário' : 'A seleção do calendários está aberta, altere para a seleção do ano',
16
+ // DateRange labels
17
+ start: 'Início',
18
+ end: 'Fim',
19
+ startDate: 'Data de início',
20
+ startTime: 'Hora de início',
21
+ endDate: 'Data de fim',
22
+ endTime: 'Hora de fim',
23
+ // Action bar
24
+ cancelButtonLabel: 'Cancelar',
25
+ clearButtonLabel: 'Limpar',
26
+ okButtonLabel: 'OK',
27
+ todayButtonLabel: 'Hoje',
28
+ // Toolbar titles
29
+ datePickerToolbarTitle: 'Selecione a data',
30
+ dateTimePickerToolbarTitle: 'Selecione a data e a hora',
31
+ timePickerToolbarTitle: 'Selecione a hora',
32
+ dateRangePickerToolbarTitle: 'Selecione o intervalo de datas',
33
+ // Clock labels
34
+ clockLabelText: (view, time, utils, formattedTime) => `Selecione ${timeViews[view]}. ${!formattedTime && (time === null || !utils.isValid(time)) ? 'Hora não selecionada' : `Selecionado a hora ${formattedTime ?? utils.format(time, 'fullTime')}`}`,
35
+ hoursClockNumberText: hours => `${hours} horas`,
36
+ minutesClockNumberText: minutes => `${minutes} minutos`,
37
+ secondsClockNumberText: seconds => `${seconds} segundos`,
38
+ // Digital clock labels
39
+ selectViewText: view => `Selecione ${timeViews[view]}`,
40
+ // Calendar labels
41
+ calendarWeekNumberHeaderLabel: 'Número da semana',
42
+ calendarWeekNumberHeaderText: 'N.º',
43
+ calendarWeekNumberAriaLabelText: weekNumber => `Semana ${weekNumber}`,
44
+ calendarWeekNumberText: weekNumber => `${weekNumber}`,
45
+ // Open picker labels
46
+ openDatePickerDialogue: (value, utils, formattedDate) => formattedDate || value !== null && utils.isValid(value) ? `Escolha uma data, a data selecionada é ${formattedDate ?? utils.format(value, 'fullDate')}` : 'Escolha uma data',
47
+ openTimePickerDialogue: (value, utils, formattedTime) => formattedTime || value !== null && utils.isValid(value) ? `Escolha uma hora, a hora selecionada é ${formattedTime ?? utils.format(value, 'fullTime')}` : 'Escolha uma hora',
48
+ fieldClearLabel: 'Limpar valor',
49
+ // Table labels
50
+ timeTableLabel: 'escolha uma hora',
51
+ dateTableLabel: 'escolha uma data',
52
+ // Field section placeholders
53
+ fieldYearPlaceholder: params => 'A'.repeat(params.digitAmount),
54
+ fieldMonthPlaceholder: params => params.contentType === 'letter' ? 'MMMM' : 'MM',
55
+ fieldDayPlaceholder: () => 'DD',
56
+ fieldWeekDayPlaceholder: params => params.contentType === 'letter' ? 'SSSS' : 'SS',
57
+ fieldHoursPlaceholder: () => 'hh',
58
+ fieldMinutesPlaceholder: () => 'mm',
59
+ fieldSecondsPlaceholder: () => 'ss',
60
+ fieldMeridiemPlaceholder: () => 'aa',
61
+ // View names
62
+ year: 'Ano',
63
+ month: 'Mês',
64
+ day: 'Dia',
65
+ weekDay: 'Dia da Semana',
66
+ hours: 'Horas',
67
+ minutes: 'Minutos',
68
+ seconds: 'Segundos',
69
+ meridiem: 'Meridiano',
70
+ // Common
71
+ empty: 'Vazio'
72
+ };
73
+ export const ptPT = getPickersLocalization(ptPTPickers);
@@ -9,4 +9,4 @@ export interface PickerChangeHandlerContext<TError> {
9
9
  }
10
10
  export interface PickerValidDateLookup {
11
11
  }
12
- export type PickerValidDate = PickerValidDateLookup[keyof PickerValidDateLookup];
12
+ export type PickerValidDate = keyof PickerValidDateLookup extends number ? any : PickerValidDateLookup[keyof PickerValidDateLookup];
@@ -78,7 +78,7 @@ export class AdapterDateFns extends AdapterDateFnsBase {
78
78
  /* istanbul ignore next */
79
79
  if (process.env.NODE_ENV !== 'production') {
80
80
  if (typeof addDays !== 'function') {
81
- throw new Error(['MUI: The `date-fns` package v3.x is not compatible with this adapter.', 'Please, install v2.x of the package or use the `AdapterDateFnsV3` instead.'].join('\n'));
81
+ throw new Error(['MUI: This adapter is only compatible with `date-fns` v2.x package versions.', 'Please, install v2.x of the package or use the `AdapterDateFnsV3` instead.'].join('\n'));
82
82
  }
83
83
  }
84
84
  super({
@@ -90,6 +90,7 @@ const formatTokenMap = {
90
90
  sectionType: 'weekDay',
91
91
  contentType: 'letter'
92
92
  },
93
+ // eslint-disable-next-line id-denylist
93
94
  e: {
94
95
  sectionType: 'weekDay',
95
96
  contentType: 'digit',
@@ -82,7 +82,7 @@ export class AdapterDateFns extends AdapterDateFnsBase {
82
82
  /* istanbul ignore next */
83
83
  if (process.env.NODE_ENV !== 'production') {
84
84
  if (typeof addDays !== 'function') {
85
- throw new Error([`MUI: The \`date-fns\` package v2.x is not compatible with this adapter.`, 'Please, install v3.x of the package or use the `AdapterDateFns` instead.'].join('\n'));
85
+ throw new Error([`MUI: The \`date-fns\` package v2.x is not compatible with this adapter.`, 'Please, install v3.x or v4.x of the package or use the `AdapterDateFns` instead.'].join('\n'));
86
86
  }
87
87
  if (!longFormatters) {
88
88
  throw new Error('MUI: The minimum supported `date-fns` package version compatible with this adapter is `3.2.x`.');
@@ -43,6 +43,7 @@ const formatTokenMap = {
43
43
  contentType: 'digit',
44
44
  maxLength: 1
45
45
  },
46
+ // eslint-disable-next-line id-denylist
46
47
  e: {
47
48
  sectionType: 'weekDay',
48
49
  contentType: 'digit',
@@ -2,7 +2,7 @@
2
2
 
3
3
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
4
4
  import _extends from "@babel/runtime/helpers/esm/extends";
5
- const _excluded = ["autoFocus", "onViewChange", "value", "defaultValue", "referenceDate", "disableFuture", "disablePast", "onChange", "onYearChange", "onMonthChange", "reduceAnimations", "shouldDisableDate", "shouldDisableMonth", "shouldDisableYear", "view", "views", "openTo", "className", "disabled", "readOnly", "minDate", "maxDate", "disableHighlightToday", "focusedView", "onFocusedViewChange", "showDaysOutsideCurrentMonth", "fixedWeekNumber", "dayOfWeekFormatter", "slots", "slotProps", "loading", "renderLoading", "displayWeekNumber", "yearsPerRow", "monthsPerRow", "timezone"];
5
+ const _excluded = ["autoFocus", "onViewChange", "value", "defaultValue", "referenceDate", "disableFuture", "disablePast", "onChange", "onYearChange", "onMonthChange", "reduceAnimations", "shouldDisableDate", "shouldDisableMonth", "shouldDisableYear", "view", "views", "openTo", "className", "disabled", "readOnly", "minDate", "maxDate", "disableHighlightToday", "focusedView", "onFocusedViewChange", "showDaysOutsideCurrentMonth", "fixedWeekNumber", "dayOfWeekFormatter", "slots", "slotProps", "loading", "renderLoading", "displayWeekNumber", "yearsOrder", "yearsPerRow", "monthsPerRow", "timezone"];
6
6
  import * as React from 'react';
7
7
  import PropTypes from 'prop-types';
8
8
  import clsx from 'clsx';
@@ -120,6 +120,7 @@ export const DateCalendar = /*#__PURE__*/React.forwardRef(function DateCalendar(
120
120
  loading,
121
121
  renderLoading,
122
122
  displayWeekNumber,
123
+ yearsOrder,
123
124
  yearsPerRow,
124
125
  monthsPerRow,
125
126
  timezone: timezoneProp
@@ -311,6 +312,7 @@ export const DateCalendar = /*#__PURE__*/React.forwardRef(function DateCalendar(
311
312
  shouldDisableYear: shouldDisableYear,
312
313
  hasFocus: hasFocus,
313
314
  onFocusedViewChange: isViewFocused => setFocusedView('year', isViewFocused),
315
+ yearsOrder: yearsOrder,
314
316
  yearsPerRow: yearsPerRow,
315
317
  referenceDate: referenceDate
316
318
  })), view === 'month' && /*#__PURE__*/_jsx(MonthCalendar, _extends({}, baseDateValidationProps, commonViewProps, {
@@ -560,6 +562,12 @@ process.env.NODE_ENV !== "production" ? DateCalendar.propTypes = {
560
562
  * Available views.
561
563
  */
562
564
  views: PropTypes.arrayOf(PropTypes.oneOf(['day', 'month', 'year']).isRequired),
565
+ /**
566
+ * Years are displayed in ascending (chronological) order by default.
567
+ * If `desc`, years are displayed in descending order.
568
+ * @default 'asc'
569
+ */
570
+ yearsOrder: PropTypes.oneOf(['asc', 'desc']),
563
571
  /**
564
572
  * Years rendered per row.
565
573
  * @default 3
@@ -351,6 +351,12 @@ process.env.NODE_ENV !== "production" ? DatePicker.propTypes = {
351
351
  * Available views.
352
352
  */
353
353
  views: PropTypes.arrayOf(PropTypes.oneOf(['day', 'month', 'year']).isRequired),
354
+ /**
355
+ * Years are displayed in ascending (chronological) order by default.
356
+ * If `desc`, years are displayed in descending order.
357
+ * @default 'asc'
358
+ */
359
+ yearsOrder: PropTypes.oneOf(['asc', 'desc']),
354
360
  /**
355
361
  * Years rendered per row.
356
362
  * @default 4 on desktop, 3 on mobile
@@ -422,6 +422,12 @@ process.env.NODE_ENV !== "production" ? DateTimePicker.propTypes = {
422
422
  * Available views.
423
423
  */
424
424
  views: PropTypes.arrayOf(PropTypes.oneOf(['day', 'hours', 'minutes', 'month', 'seconds', 'year']).isRequired),
425
+ /**
426
+ * Years are displayed in ascending (chronological) order by default.
427
+ * If `desc`, years are displayed in descending order.
428
+ * @default 'asc'
429
+ */
430
+ yearsOrder: PropTypes.oneOf(['asc', 'desc']),
425
431
  /**
426
432
  * Years rendered per row.
427
433
  * @default 4 on desktop, 3 on mobile
@@ -87,7 +87,7 @@ const DateTimePickerTabs = function DateTimePickerTabs(inProps) {
87
87
  variant: "fullWidth",
88
88
  value: viewToTab(view),
89
89
  onChange: handleChange,
90
- className: clsx(className, classes.root),
90
+ className: clsx(classes.root, className),
91
91
  sx: sx,
92
92
  children: [/*#__PURE__*/_jsx(Tab, {
93
93
  value: "date",
@@ -372,6 +372,12 @@ DesktopDatePicker.propTypes = {
372
372
  * Available views.
373
373
  */
374
374
  views: PropTypes.arrayOf(PropTypes.oneOf(['day', 'month', 'year']).isRequired),
375
+ /**
376
+ * Years are displayed in ascending (chronological) order by default.
377
+ * If `desc`, years are displayed in descending order.
378
+ * @default 'asc'
379
+ */
380
+ yearsOrder: PropTypes.oneOf(['asc', 'desc']),
375
381
  /**
376
382
  * Years rendered per row.
377
383
  * @default 4
@@ -530,6 +530,12 @@ DesktopDateTimePicker.propTypes = {
530
530
  * Available views.
531
531
  */
532
532
  views: PropTypes.arrayOf(PropTypes.oneOf(['day', 'hours', 'minutes', 'month', 'seconds', 'year']).isRequired),
533
+ /**
534
+ * Years are displayed in ascending (chronological) order by default.
535
+ * If `desc`, years are displayed in descending order.
536
+ * @default 'asc'
537
+ */
538
+ yearsOrder: PropTypes.oneOf(['asc', 'desc']),
533
539
  /**
534
540
  * Years rendered per row.
535
541
  * @default 4
@@ -30,7 +30,7 @@ const DesktopDateTimePickerLayout = /*#__PURE__*/React.forwardRef(function Deskt
30
30
  });
31
31
  return /*#__PURE__*/_jsxs(PickersLayoutRoot, {
32
32
  ref: ref,
33
- className: clsx(className, pickersLayoutClasses.root, classes?.root),
33
+ className: clsx(pickersLayoutClasses.root, classes?.root, className),
34
34
  sx: [{
35
35
  [`& .${pickersLayoutClasses.tabs}`]: {
36
36
  gridRow: 4,
@@ -369,6 +369,12 @@ MobileDatePicker.propTypes = {
369
369
  * Available views.
370
370
  */
371
371
  views: PropTypes.arrayOf(PropTypes.oneOf(['day', 'month', 'year']).isRequired),
372
+ /**
373
+ * Years are displayed in ascending (chronological) order by default.
374
+ * If `desc`, years are displayed in descending order.
375
+ * @default 'asc'
376
+ */
377
+ yearsOrder: PropTypes.oneOf(['asc', 'desc']),
372
378
  /**
373
379
  * Years rendered per row.
374
380
  * @default 3
@@ -428,6 +428,12 @@ MobileDateTimePicker.propTypes = {
428
428
  * Available views.
429
429
  */
430
430
  views: PropTypes.arrayOf(PropTypes.oneOf(['day', 'hours', 'minutes', 'month', 'seconds', 'year']).isRequired),
431
+ /**
432
+ * Years are displayed in ascending (chronological) order by default.
433
+ * If `desc`, years are displayed in descending order.
434
+ * @default 'asc'
435
+ */
436
+ yearsOrder: PropTypes.oneOf(['asc', 'desc']),
431
437
  /**
432
438
  * Years rendered per row.
433
439
  * @default 3
@@ -190,7 +190,7 @@ const PickersCalendarHeader = /*#__PURE__*/React.forwardRef(function PickersCale
190
190
  const label = utils.formatByString(month, format);
191
191
  return /*#__PURE__*/_jsxs(PickersCalendarHeaderRoot, _extends({}, other, {
192
192
  ownerState: ownerState,
193
- className: clsx(className, classes.root),
193
+ className: clsx(classes.root, className),
194
194
  ref: ref,
195
195
  children: [/*#__PURE__*/_jsxs(PickersCalendarHeaderLabelContainer, {
196
196
  role: "presentation",
@@ -122,7 +122,7 @@ const PickersLayout = /*#__PURE__*/React.forwardRef(function PickersLayout(inPro
122
122
  return /*#__PURE__*/_jsxs(PickersLayoutRoot, {
123
123
  ref: ref,
124
124
  sx: sx,
125
- className: clsx(className, classes.root),
125
+ className: clsx(classes.root, className),
126
126
  ownerState: props,
127
127
  children: [isLandscape ? shortcuts : toolbar, isLandscape ? toolbar : shortcuts, /*#__PURE__*/_jsx(PickersLayoutContentWrapper, {
128
128
  className: classes.contentWrapper,
@@ -293,9 +293,15 @@ StaticDatePicker.propTypes = {
293
293
  * Available views.
294
294
  */
295
295
  views: PropTypes.arrayOf(PropTypes.oneOf(['day', 'month', 'year']).isRequired),
296
+ /**
297
+ * Years are displayed in ascending (chronological) order by default.
298
+ * If `desc`, years are displayed in descending order.
299
+ * @default 'asc'
300
+ */
301
+ yearsOrder: PropTypes.oneOf(['asc', 'desc']),
296
302
  /**
297
303
  * Years rendered per row.
298
- * @default 3
304
+ * @default `4` when `displayStaticWrapperAs === 'desktop'`, `3` otherwise.
299
305
  */
300
306
  yearsPerRow: PropTypes.oneOf([3, 4])
301
307
  };
@@ -352,9 +352,15 @@ StaticDateTimePicker.propTypes = {
352
352
  * Available views.
353
353
  */
354
354
  views: PropTypes.arrayOf(PropTypes.oneOf(['day', 'hours', 'minutes', 'month', 'seconds', 'year']).isRequired),
355
+ /**
356
+ * Years are displayed in ascending (chronological) order by default.
357
+ * If `desc`, years are displayed in descending order.
358
+ * @default 'asc'
359
+ */
360
+ yearsOrder: PropTypes.oneOf(['asc', 'desc']),
355
361
  /**
356
362
  * Years rendered per row.
357
- * @default 3
363
+ * @default `4` when `displayStaticWrapperAs === 'desktop'`, `3` otherwise.
358
364
  */
359
365
  yearsPerRow: PropTypes.oneOf([3, 4])
360
366
  };
@@ -284,7 +284,7 @@ export function Clock(inProps) {
284
284
  }
285
285
  };
286
286
  return /*#__PURE__*/_jsxs(ClockRoot, {
287
- className: clsx(className, classes.root),
287
+ className: clsx(classes.root, className),
288
288
  children: [/*#__PURE__*/_jsxs(ClockClock, {
289
289
  className: classes.clock,
290
290
  children: [/*#__PURE__*/_jsx(ClockSquareMask, {
@@ -84,7 +84,7 @@ export function ClockNumber(inProps) {
84
84
  const x = Math.round(Math.cos(angle) * length);
85
85
  const y = Math.round(Math.sin(angle) * length);
86
86
  return /*#__PURE__*/_jsx(ClockNumberRoot, _extends({
87
- className: clsx(className, classes.root),
87
+ className: clsx(classes.root, className),
88
88
  "aria-disabled": disabled ? true : undefined,
89
89
  "aria-selected": selected ? true : undefined,
90
90
  role: "option",
@@ -102,7 +102,7 @@ export function ClockPointer(inProps) {
102
102
  };
103
103
  return /*#__PURE__*/_jsx(ClockPointerRoot, _extends({
104
104
  style: getAngleStyle(),
105
- className: clsx(className, classes.root),
105
+ className: clsx(classes.root, className),
106
106
  ownerState: ownerState
107
107
  }, other, {
108
108
  children: /*#__PURE__*/_jsx(ClockPointerThumb, {