@mui/x-date-pickers 5.0.2 → 6.0.0-alpha.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 (252) hide show
  1. package/CHANGELOG.md +212 -3
  2. package/CalendarPicker/CalendarPicker.d.ts +8 -2
  3. package/CalendarPicker/CalendarPicker.js +54 -71
  4. package/CalendarPicker/DayPicker.d.ts +2 -2
  5. package/CalendarPicker/DayPicker.js +6 -2
  6. package/CalendarPicker/PickersCalendarHeader.d.ts +3 -10
  7. package/CalendarPicker/PickersCalendarHeader.js +7 -20
  8. package/CalendarPicker/useCalendarState.d.ts +2 -2
  9. package/CalendarPicker/useCalendarState.js +7 -7
  10. package/ClockPicker/Clock.d.ts +9 -4
  11. package/ClockPicker/Clock.js +13 -13
  12. package/ClockPicker/ClockNumbers.d.ts +3 -3
  13. package/ClockPicker/ClockNumbers.js +2 -2
  14. package/ClockPicker/ClockPicker.d.ts +8 -58
  15. package/ClockPicker/ClockPicker.js +52 -128
  16. package/ClockPicker/ClockPointer.d.ts +1 -1
  17. package/ClockPicker/ClockPointer.js +4 -4
  18. package/DateField/useDateField.d.ts +1 -1
  19. package/DateField/useDateField.js +5 -1
  20. package/DatePicker/DatePicker.js +10 -20
  21. package/DateTimePicker/DateTimePicker.js +10 -39
  22. package/DesktopDatePicker/DesktopDatePicker.d.ts +1 -1
  23. package/DesktopDatePicker/DesktopDatePicker.js +14 -22
  24. package/DesktopDateTimePicker/DesktopDateTimePicker.d.ts +1 -1
  25. package/DesktopDateTimePicker/DesktopDateTimePicker.js +13 -40
  26. package/DesktopTimePicker/DesktopTimePicker.d.ts +1 -1
  27. package/DesktopTimePicker/DesktopTimePicker.js +9 -21
  28. package/LocalizationProvider/LocalizationProvider.d.ts +10 -11
  29. package/LocalizationProvider/LocalizationProvider.js +31 -24
  30. package/MobileDatePicker/MobileDatePicker.d.ts +1 -1
  31. package/MobileDatePicker/MobileDatePicker.js +14 -22
  32. package/MobileDateTimePicker/MobileDateTimePicker.d.ts +1 -1
  33. package/MobileDateTimePicker/MobileDateTimePicker.js +13 -40
  34. package/MobileTimePicker/MobileTimePicker.d.ts +1 -1
  35. package/MobileTimePicker/MobileTimePicker.js +9 -21
  36. package/MonthPicker/MonthPicker.d.ts +12 -9
  37. package/MonthPicker/MonthPicker.js +60 -57
  38. package/MonthPicker/PickersMonth.d.ts +10 -7
  39. package/MonthPicker/PickersMonth.js +76 -44
  40. package/MonthPicker/pickersMonthClasses.d.ts +9 -1
  41. package/MonthPicker/pickersMonthClasses.js +1 -1
  42. package/PickersDay/PickersDay.d.ts +0 -6
  43. package/PickersDay/PickersDay.js +0 -5
  44. package/StaticDatePicker/StaticDatePicker.d.ts +1 -1
  45. package/StaticDatePicker/StaticDatePicker.js +17 -23
  46. package/StaticDateTimePicker/StaticDateTimePicker.d.ts +1 -1
  47. package/StaticDateTimePicker/StaticDateTimePicker.js +17 -42
  48. package/StaticTimePicker/StaticTimePicker.d.ts +1 -1
  49. package/StaticTimePicker/StaticTimePicker.js +17 -22
  50. package/TimePicker/TimePicker.js +5 -19
  51. package/YearPicker/PickersYear.d.ts +7 -6
  52. package/YearPicker/PickersYear.js +34 -23
  53. package/YearPicker/YearPicker.d.ts +21 -4
  54. package/YearPicker/YearPicker.js +109 -49
  55. package/YearPicker/pickersYearClasses.d.ts +1 -1
  56. package/index.js +1 -1
  57. package/internals/components/CalendarOrClockPicker/CalendarOrClockPicker.js +2 -2
  58. package/internals/components/PickerStaticWrapper/PickerStaticWrapper.d.ts +20 -6
  59. package/internals/components/PickerStaticWrapper/PickerStaticWrapper.js +38 -22
  60. package/internals/components/PickerStaticWrapper/index.d.ts +1 -1
  61. package/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.d.ts +3 -0
  62. package/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js +166 -0
  63. package/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.types.d.ts +63 -0
  64. package/internals/{models/muiPickersAdapter.js → components/PickersArrowSwitcher/PickersArrowSwitcher.types.js} +0 -0
  65. package/internals/components/PickersArrowSwitcher/index.d.ts +2 -0
  66. package/internals/components/PickersArrowSwitcher/index.js +1 -0
  67. package/internals/components/{pickersArrowSwitcherClasses.d.ts → PickersArrowSwitcher/pickersArrowSwitcherClasses.d.ts} +0 -0
  68. package/internals/components/{pickersArrowSwitcherClasses.js → PickersArrowSwitcher/pickersArrowSwitcherClasses.js} +0 -0
  69. package/internals/components/PickersPopper.d.ts +2 -6
  70. package/internals/components/PickersPopper.js +5 -5
  71. package/internals/components/PickersToolbar.d.ts +1 -1
  72. package/internals/components/PickersToolbar.js +1 -2
  73. package/internals/components/PickersToolbarText.d.ts +1 -1
  74. package/internals/components/wrappers/DesktopTooltipWrapper.d.ts +1 -1
  75. package/internals/components/wrappers/DesktopTooltipWrapper.js +29 -24
  76. package/internals/components/wrappers/DesktopWrapper.d.ts +8 -3
  77. package/internals/components/wrappers/DesktopWrapper.js +26 -21
  78. package/internals/components/wrappers/MobileWrapper.d.ts +8 -3
  79. package/internals/components/wrappers/MobileWrapper.js +23 -18
  80. package/internals/hooks/useField/useField.interfaces.d.ts +0 -1
  81. package/internals/hooks/useField/useField.js +19 -23
  82. package/internals/hooks/useField/useField.utils.js +10 -2
  83. package/internals/hooks/useUtils.d.ts +5 -2
  84. package/internals/hooks/useUtils.js +11 -2
  85. package/internals/hooks/validation/useDateValidation.d.ts +4 -4
  86. package/internals/hooks/validation/useDateValidation.js +12 -2
  87. package/internals/index.d.ts +5 -5
  88. package/internals/index.js +3 -3
  89. package/internals/models/muiPickersAdapter.d.ts +12 -7
  90. package/internals/models/props/baseToolbarProps.d.ts +0 -8
  91. package/internals/models/props/staticPickerProps.d.ts +2 -8
  92. package/legacy/CalendarPicker/CalendarPicker.js +52 -69
  93. package/legacy/CalendarPicker/DayPicker.js +6 -2
  94. package/legacy/CalendarPicker/PickersCalendarHeader.js +7 -20
  95. package/legacy/CalendarPicker/useCalendarState.js +7 -7
  96. package/legacy/ClockPicker/Clock.js +13 -13
  97. package/legacy/ClockPicker/ClockNumbers.js +2 -2
  98. package/legacy/ClockPicker/ClockPicker.js +57 -133
  99. package/legacy/ClockPicker/ClockPointer.js +4 -4
  100. package/legacy/DateField/useDateField.js +5 -1
  101. package/legacy/DatePicker/DatePicker.js +10 -20
  102. package/legacy/DateTimePicker/DateTimePicker.js +10 -39
  103. package/legacy/DesktopDatePicker/DesktopDatePicker.js +13 -21
  104. package/legacy/DesktopDateTimePicker/DesktopDateTimePicker.js +13 -40
  105. package/legacy/DesktopTimePicker/DesktopTimePicker.js +8 -20
  106. package/legacy/LocalizationProvider/LocalizationProvider.js +28 -23
  107. package/legacy/MobileDatePicker/MobileDatePicker.js +13 -21
  108. package/legacy/MobileDateTimePicker/MobileDateTimePicker.js +13 -40
  109. package/legacy/MobileTimePicker/MobileTimePicker.js +8 -20
  110. package/legacy/MonthPicker/MonthPicker.js +67 -62
  111. package/legacy/MonthPicker/PickersMonth.js +89 -57
  112. package/legacy/MonthPicker/pickersMonthClasses.js +1 -1
  113. package/legacy/PickersDay/PickersDay.js +0 -5
  114. package/legacy/StaticDatePicker/StaticDatePicker.js +17 -24
  115. package/legacy/StaticDateTimePicker/StaticDateTimePicker.js +17 -43
  116. package/legacy/StaticTimePicker/StaticTimePicker.js +17 -23
  117. package/legacy/TimePicker/TimePicker.js +5 -19
  118. package/legacy/YearPicker/PickersYear.js +35 -25
  119. package/legacy/YearPicker/YearPicker.js +111 -51
  120. package/legacy/index.js +1 -1
  121. package/legacy/internals/components/CalendarOrClockPicker/CalendarOrClockPicker.js +2 -2
  122. package/legacy/internals/components/PickerStaticWrapper/PickerStaticWrapper.js +41 -24
  123. package/legacy/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js +180 -0
  124. package/legacy/internals/{models/muiPickersAdapter.js → components/PickersArrowSwitcher/PickersArrowSwitcher.types.js} +0 -0
  125. package/legacy/internals/components/PickersArrowSwitcher/index.js +1 -0
  126. package/legacy/internals/components/{pickersArrowSwitcherClasses.js → PickersArrowSwitcher/pickersArrowSwitcherClasses.js} +0 -0
  127. package/legacy/internals/components/PickersPopper.js +5 -5
  128. package/legacy/internals/components/PickersToolbar.js +1 -2
  129. package/legacy/internals/components/wrappers/DesktopTooltipWrapper.js +29 -24
  130. package/legacy/internals/components/wrappers/DesktopWrapper.js +26 -21
  131. package/legacy/internals/components/wrappers/MobileWrapper.js +22 -17
  132. package/legacy/internals/hooks/useField/useField.js +21 -23
  133. package/legacy/internals/hooks/useField/useField.utils.js +10 -2
  134. package/legacy/internals/hooks/useUtils.js +13 -2
  135. package/legacy/internals/hooks/validation/useDateValidation.js +12 -2
  136. package/legacy/internals/index.js +3 -3
  137. package/legacy/locales/faIR.js +52 -0
  138. package/legacy/locales/fiFI.js +61 -0
  139. package/legacy/locales/index.js +2 -0
  140. package/legacy/locales/isIS.js +0 -1
  141. package/locales/faIR.d.ts +35 -0
  142. package/locales/faIR.js +36 -0
  143. package/locales/fiFI.d.ts +35 -0
  144. package/locales/fiFI.js +45 -0
  145. package/locales/index.d.ts +2 -0
  146. package/locales/index.js +2 -0
  147. package/locales/isIS.js +0 -1
  148. package/locales/utils/pickersLocaleTextApi.d.ts +1 -0
  149. package/modern/CalendarPicker/CalendarPicker.js +54 -71
  150. package/modern/CalendarPicker/DayPicker.js +6 -2
  151. package/modern/CalendarPicker/PickersCalendarHeader.js +7 -20
  152. package/modern/CalendarPicker/useCalendarState.js +7 -7
  153. package/modern/ClockPicker/Clock.js +13 -13
  154. package/modern/ClockPicker/ClockNumbers.js +2 -2
  155. package/modern/ClockPicker/ClockPicker.js +52 -128
  156. package/modern/ClockPicker/ClockPointer.js +4 -4
  157. package/modern/DateField/useDateField.js +5 -1
  158. package/modern/DatePicker/DatePicker.js +10 -20
  159. package/modern/DateTimePicker/DateTimePicker.js +10 -39
  160. package/modern/DesktopDatePicker/DesktopDatePicker.js +14 -22
  161. package/modern/DesktopDateTimePicker/DesktopDateTimePicker.js +13 -40
  162. package/modern/DesktopTimePicker/DesktopTimePicker.js +9 -21
  163. package/modern/LocalizationProvider/LocalizationProvider.js +29 -24
  164. package/modern/MobileDatePicker/MobileDatePicker.js +14 -22
  165. package/modern/MobileDateTimePicker/MobileDateTimePicker.js +13 -40
  166. package/modern/MobileTimePicker/MobileTimePicker.js +9 -21
  167. package/modern/MonthPicker/MonthPicker.js +60 -57
  168. package/modern/MonthPicker/PickersMonth.js +76 -44
  169. package/modern/MonthPicker/pickersMonthClasses.js +1 -1
  170. package/modern/PickersDay/PickersDay.js +0 -5
  171. package/modern/StaticDatePicker/StaticDatePicker.js +17 -23
  172. package/modern/StaticDateTimePicker/StaticDateTimePicker.js +17 -42
  173. package/modern/StaticTimePicker/StaticTimePicker.js +17 -22
  174. package/modern/TimePicker/TimePicker.js +5 -19
  175. package/modern/YearPicker/PickersYear.js +34 -23
  176. package/modern/YearPicker/YearPicker.js +109 -49
  177. package/modern/index.js +1 -1
  178. package/modern/internals/components/CalendarOrClockPicker/CalendarOrClockPicker.js +2 -2
  179. package/modern/internals/components/PickerStaticWrapper/PickerStaticWrapper.js +38 -22
  180. package/modern/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js +164 -0
  181. package/modern/internals/{models/muiPickersAdapter.js → components/PickersArrowSwitcher/PickersArrowSwitcher.types.js} +0 -0
  182. package/modern/internals/components/PickersArrowSwitcher/index.js +1 -0
  183. package/modern/internals/components/{pickersArrowSwitcherClasses.js → PickersArrowSwitcher/pickersArrowSwitcherClasses.js} +0 -0
  184. package/modern/internals/components/PickersPopper.js +5 -5
  185. package/modern/internals/components/PickersToolbar.js +1 -2
  186. package/modern/internals/components/wrappers/DesktopTooltipWrapper.js +29 -24
  187. package/modern/internals/components/wrappers/DesktopWrapper.js +26 -21
  188. package/modern/internals/components/wrappers/MobileWrapper.js +23 -18
  189. package/modern/internals/hooks/useField/useField.js +19 -21
  190. package/modern/internals/hooks/useField/useField.utils.js +10 -2
  191. package/modern/internals/hooks/useUtils.js +11 -2
  192. package/modern/internals/hooks/validation/useDateValidation.js +12 -2
  193. package/modern/internals/index.js +3 -3
  194. package/modern/locales/faIR.js +36 -0
  195. package/modern/locales/fiFI.js +45 -0
  196. package/modern/locales/index.js +2 -0
  197. package/modern/locales/isIS.js +0 -1
  198. package/node/CalendarPicker/CalendarPicker.js +54 -71
  199. package/node/CalendarPicker/DayPicker.js +5 -1
  200. package/node/CalendarPicker/PickersCalendarHeader.js +7 -21
  201. package/node/CalendarPicker/useCalendarState.js +6 -6
  202. package/node/ClockPicker/Clock.js +12 -12
  203. package/node/ClockPicker/ClockNumbers.js +2 -2
  204. package/node/ClockPicker/ClockPicker.js +52 -129
  205. package/node/ClockPicker/ClockPointer.js +4 -4
  206. package/node/DateField/useDateField.js +5 -1
  207. package/node/DatePicker/DatePicker.js +10 -20
  208. package/node/DateTimePicker/DateTimePicker.js +10 -39
  209. package/node/DesktopDatePicker/DesktopDatePicker.js +14 -22
  210. package/node/DesktopDateTimePicker/DesktopDateTimePicker.js +13 -40
  211. package/node/DesktopTimePicker/DesktopTimePicker.js +9 -21
  212. package/node/LocalizationProvider/LocalizationProvider.js +31 -25
  213. package/node/MobileDatePicker/MobileDatePicker.js +14 -22
  214. package/node/MobileDateTimePicker/MobileDateTimePicker.js +13 -40
  215. package/node/MobileTimePicker/MobileTimePicker.js +9 -21
  216. package/node/MonthPicker/MonthPicker.js +61 -58
  217. package/node/MonthPicker/PickersMonth.js +71 -43
  218. package/node/MonthPicker/pickersMonthClasses.js +1 -1
  219. package/node/PickersDay/PickersDay.js +0 -5
  220. package/node/StaticDatePicker/StaticDatePicker.js +17 -23
  221. package/node/StaticDateTimePicker/StaticDateTimePicker.js +17 -42
  222. package/node/StaticTimePicker/StaticTimePicker.js +17 -22
  223. package/node/TimePicker/TimePicker.js +5 -19
  224. package/node/YearPicker/PickersYear.js +33 -22
  225. package/node/YearPicker/YearPicker.js +111 -49
  226. package/node/index.js +1 -1
  227. package/node/internals/components/CalendarOrClockPicker/CalendarOrClockPicker.js +2 -2
  228. package/node/internals/components/PickerStaticWrapper/PickerStaticWrapper.js +39 -22
  229. package/node/internals/components/{PickersArrowSwitcher.js → PickersArrowSwitcher/PickersArrowSwitcher.js} +102 -58
  230. package/node/internals/{models/muiPickersAdapter.js → components/PickersArrowSwitcher/PickersArrowSwitcher.types.js} +0 -0
  231. package/node/internals/components/PickersArrowSwitcher/index.js +13 -0
  232. package/node/internals/components/{pickersArrowSwitcherClasses.js → PickersArrowSwitcher/pickersArrowSwitcherClasses.js} +0 -0
  233. package/node/internals/components/PickersPopper.js +5 -5
  234. package/node/internals/components/PickersToolbar.js +1 -2
  235. package/node/internals/components/wrappers/DesktopTooltipWrapper.js +30 -24
  236. package/node/internals/components/wrappers/DesktopWrapper.js +27 -21
  237. package/node/internals/components/wrappers/MobileWrapper.js +24 -18
  238. package/node/internals/hooks/useField/useField.js +19 -23
  239. package/node/internals/hooks/useField/useField.utils.js +10 -2
  240. package/node/internals/hooks/useUtils.js +15 -2
  241. package/node/internals/hooks/validation/useDateValidation.js +14 -4
  242. package/node/internals/index.js +8 -2
  243. package/node/locales/faIR.js +45 -0
  244. package/node/locales/fiFI.js +54 -0
  245. package/node/locales/index.js +26 -0
  246. package/node/locales/isIS.js +0 -1
  247. package/package.json +4 -4
  248. package/themeAugmentation/props.d.ts +3 -3
  249. package/internals/components/PickersArrowSwitcher.d.ts +0 -62
  250. package/internals/components/PickersArrowSwitcher.js +0 -124
  251. package/legacy/internals/components/PickersArrowSwitcher.js +0 -128
  252. package/modern/internals/components/PickersArrowSwitcher.js +0 -124
@@ -0,0 +1,63 @@
1
+ import * as React from 'react';
2
+ import { SlotComponentProps } from '@mui/base';
3
+ import IconButton from '@mui/material/IconButton';
4
+ import SvgIcon from '@mui/material/SvgIcon';
5
+ import { PickersArrowSwitcherClasses } from './pickersArrowSwitcherClasses';
6
+ export interface ExportedPickersArrowSwitcherProps {
7
+ /**
8
+ * Overrideable components.
9
+ * @default {}
10
+ */
11
+ components?: Partial<PickersArrowSwitcherSlotsComponent>;
12
+ /**
13
+ * The props used for each component slot.
14
+ * @default {}
15
+ */
16
+ componentsProps?: Partial<PickersArrowSwitcherSlotsComponentsProps>;
17
+ classes?: Partial<PickersArrowSwitcherClasses>;
18
+ }
19
+ export interface PickersArrowSwitcherProps extends ExportedPickersArrowSwitcherProps, Omit<React.HTMLProps<HTMLDivElement>, 'ref' | 'as'> {
20
+ children?: React.ReactNode;
21
+ isPreviousDisabled: boolean;
22
+ isPreviousHidden?: boolean;
23
+ onGoToPrevious: () => void;
24
+ previousLabel: string;
25
+ isNextDisabled: boolean;
26
+ isNextHidden?: boolean;
27
+ onGoToNext: () => void;
28
+ nextLabel: string;
29
+ }
30
+ export declare type PickersArrowSwitcherOwnerState = PickersArrowSwitcherProps;
31
+ export interface PickersArrowSwitcherComponentsPropsOverrides {
32
+ }
33
+ export interface PickersArrowSwitcherSlotsComponent {
34
+ /**
35
+ * Button allowing to switch to the left view.
36
+ * @default IconButton
37
+ */
38
+ PreviousIconButton: React.ElementType;
39
+ /**
40
+ * Button allowing to switch to the right view.
41
+ * @default IconButton
42
+ */
43
+ NextIconButton: React.ElementType;
44
+ /**
45
+ * Icon displayed in the left view switch button.
46
+ * @default ArrowLeft
47
+ */
48
+ LeftArrowIcon: React.ElementType;
49
+ /**
50
+ * Icon displayed in the right view switch button.
51
+ * @default ArrowRight
52
+ */
53
+ RightArrowIcon: React.ElementType;
54
+ }
55
+ export interface PickersArrowSwitcherButtonSlotOwnerState extends PickersArrowSwitcherOwnerState {
56
+ hidden?: boolean;
57
+ }
58
+ export interface PickersArrowSwitcherSlotsComponentsProps {
59
+ previousIconButton: SlotComponentProps<typeof IconButton, PickersArrowSwitcherComponentsPropsOverrides, PickersArrowSwitcherButtonSlotOwnerState>;
60
+ nextIconButton: SlotComponentProps<typeof IconButton, PickersArrowSwitcherComponentsPropsOverrides, PickersArrowSwitcherButtonSlotOwnerState>;
61
+ leftArrowIcon: SlotComponentProps<typeof SvgIcon, PickersArrowSwitcherComponentsPropsOverrides, undefined>;
62
+ rightArrowIcon: SlotComponentProps<typeof SvgIcon, PickersArrowSwitcherComponentsPropsOverrides, undefined>;
63
+ }
@@ -0,0 +1,2 @@
1
+ export { PickersArrowSwitcher } from './PickersArrowSwitcher';
2
+ export type { PickersArrowSwitcherSlotsComponent, PickersArrowSwitcherSlotsComponentsProps, ExportedPickersArrowSwitcherProps, } from './PickersArrowSwitcher.types';
@@ -0,0 +1 @@
1
+ export { PickersArrowSwitcher } from './PickersArrowSwitcher';
@@ -5,6 +5,7 @@ import { TrapFocusProps as MuiTrapFocusProps } from '@mui/material/Unstable_Trap
5
5
  import { TransitionProps as MuiTransitionProps } from '@mui/material/transitions';
6
6
  import { PickersActionBarProps } from '../../PickersActionBar';
7
7
  import { PickersSlotsComponent } from './wrappers/WrapperProps';
8
+ import { PickerStateWrapperProps } from '../hooks/usePickerState';
8
9
  import { PickersPopperClasses } from './pickersPopperClasses';
9
10
  export interface PickersPopperSlotsComponent extends PickersSlotsComponent {
10
11
  }
@@ -28,19 +29,14 @@ export interface ExportedPickerPopperProps {
28
29
  */
29
30
  TransitionComponent?: React.JSXElementConstructor<MuiTransitionProps>;
30
31
  }
31
- export interface PickerPopperProps extends ExportedPickerPopperProps, ExportedPickerPaperProps {
32
+ export interface PickerPopperProps extends ExportedPickerPopperProps, ExportedPickerPaperProps, PickerStateWrapperProps {
32
33
  role: 'tooltip' | 'dialog';
33
34
  TrapFocusProps?: Partial<MuiTrapFocusProps>;
34
35
  anchorEl: MuiPopperProps['anchorEl'];
35
36
  open: MuiPopperProps['open'];
36
37
  containerRef?: React.Ref<HTMLDivElement>;
37
38
  children?: React.ReactNode;
38
- onClose: () => void;
39
39
  onBlur?: () => void;
40
- onClear: () => void;
41
- onCancel: () => void;
42
- onAccept: () => void;
43
- onSetToday: () => void;
44
40
  components?: Partial<PickersPopperSlotsComponent>;
45
41
  componentsProps?: Partial<PickersPopperSlotsComponentsProps>;
46
42
  classes?: Partial<PickersPopperClasses>;
@@ -179,7 +179,7 @@ export function PickersPopper(inProps) {
179
179
  children,
180
180
  containerRef = null,
181
181
  onBlur,
182
- onClose,
182
+ onDismiss,
183
183
  onClear,
184
184
  onAccept,
185
185
  onCancel,
@@ -197,7 +197,7 @@ export function PickersPopper(inProps) {
197
197
  function handleKeyDown(nativeEvent) {
198
198
  // IE11, Edge (prior to using Bink?) use 'Esc'
199
199
  if (open && (nativeEvent.key === 'Escape' || nativeEvent.key === 'Esc')) {
200
- onClose();
200
+ onDismiss();
201
201
  }
202
202
  }
203
203
 
@@ -205,7 +205,7 @@ export function PickersPopper(inProps) {
205
205
  return () => {
206
206
  document.removeEventListener('keydown', handleKeyDown);
207
207
  };
208
- }, [onClose, open]);
208
+ }, [onDismiss, open]);
209
209
  const lastFocusedElementRef = React.useRef(null);
210
210
  React.useEffect(() => {
211
211
  if (role === 'tooltip') {
@@ -224,7 +224,7 @@ export function PickersPopper(inProps) {
224
224
  });
225
225
  }
226
226
  }, [open, role]);
227
- const [clickAwayRef, onPaperClick, onPaperTouchStart] = useClickAwayListener(open, onBlur != null ? onBlur : onClose);
227
+ const [clickAwayRef, onPaperClick, onPaperTouchStart] = useClickAwayListener(open, onBlur != null ? onBlur : onDismiss);
228
228
  const paperRef = React.useRef(null);
229
229
  const handleRef = useForkRef(paperRef, containerRef);
230
230
  const handlePaperRef = useForkRef(handleRef, clickAwayRef);
@@ -241,7 +241,7 @@ export function PickersPopper(inProps) {
241
241
  if (event.key === 'Escape') {
242
242
  // stop the propagation to avoid closing parent modal
243
243
  event.stopPropagation();
244
- onClose();
244
+ onDismiss();
245
245
  }
246
246
  };
247
247
 
@@ -1,7 +1,7 @@
1
1
  import * as React from 'react';
2
2
  import { BaseToolbarProps } from '../models/props/baseToolbarProps';
3
3
  import { PickersToolbarClasses } from './pickersToolbarClasses';
4
- export interface PickersToolbarProps<TDate, TValue> extends Pick<BaseToolbarProps<TDate, TValue>, 'getMobileKeyboardInputViewButtonText' | 'isMobileKeyboardViewOpen' | 'toggleMobileKeyboardView'> {
4
+ export interface PickersToolbarProps<TDate, TValue> extends Pick<BaseToolbarProps<TDate, TValue>, 'isMobileKeyboardViewOpen' | 'toggleMobileKeyboardView'> {
5
5
  className?: string;
6
6
  viewType?: 'calendar' | 'clock';
7
7
  isLandscape: boolean;
@@ -74,7 +74,6 @@ export const PickersToolbar = /*#__PURE__*/React.forwardRef(function PickersTool
74
74
  const {
75
75
  children,
76
76
  className,
77
- getMobileKeyboardInputViewButtonText,
78
77
  isLandscape,
79
78
  isMobileKeyboardViewOpen,
80
79
  landscapeDirection = 'column',
@@ -105,7 +104,7 @@ export const PickersToolbar = /*#__PURE__*/React.forwardRef(function PickersTool
105
104
  className: classes.penIconButton,
106
105
  ownerState: ownerState,
107
106
  color: "inherit",
108
- "aria-label": getMobileKeyboardInputViewButtonText ? getMobileKeyboardInputViewButtonText(isMobileKeyboardViewOpen, viewType) : localeText.inputModeToggleButtonAriaLabel(isMobileKeyboardViewOpen, viewType),
107
+ "aria-label": localeText.inputModeToggleButtonAriaLabel(isMobileKeyboardViewOpen, viewType),
109
108
  children: isMobileKeyboardViewOpen ? getViewTypeIcon(viewType) : /*#__PURE__*/_jsx(Pen, {
110
109
  color: "inherit"
111
110
  })
@@ -6,4 +6,4 @@ export interface PickersToolbarTextProps extends Omit<TypographyProps, 'classes'
6
6
  value: React.ReactNode;
7
7
  classes?: Partial<PickersToolbarTextClasses>;
8
8
  }
9
- export declare const PickersToolbarText: React.ForwardRefExoticComponent<Pick<PickersToolbarTextProps, "selected" | "p" | "slot" | "style" | "title" | "border" | "borderTop" | "borderRight" | "borderBottom" | "borderLeft" | "borderColor" | "borderRadius" | "display" | "displayPrint" | "overflow" | "textOverflow" | "visibility" | "whiteSpace" | "flexBasis" | "flexDirection" | "flexWrap" | "justifyContent" | "alignItems" | "alignContent" | "order" | "flex" | "flexGrow" | "flexShrink" | "alignSelf" | "justifyItems" | "justifySelf" | "gap" | "columnGap" | "rowGap" | "gridColumn" | "gridRow" | "gridAutoFlow" | "gridAutoColumns" | "gridAutoRows" | "gridTemplateColumns" | "gridTemplateRows" | "gridTemplateAreas" | "gridArea" | "bgcolor" | "color" | "zIndex" | "position" | "top" | "right" | "bottom" | "left" | "boxShadow" | "width" | "maxWidth" | "minWidth" | "height" | "maxHeight" | "minHeight" | "boxSizing" | "m" | "mt" | "mr" | "mb" | "ml" | "mx" | "my" | "pt" | "pr" | "pb" | "pl" | "px" | "py" | "margin" | "marginTop" | "marginRight" | "marginBottom" | "marginLeft" | "marginX" | "marginY" | "padding" | "paddingTop" | "paddingRight" | "paddingBottom" | "paddingLeft" | "paddingX" | "paddingY" | "typography" | "fontFamily" | "fontSize" | "fontStyle" | "fontWeight" | "letterSpacing" | "lineHeight" | "textAlign" | "textTransform" | "translate" | "className" | "classes" | "key" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "hidden" | "id" | "lang" | "placeholder" | "spellCheck" | "tabIndex" | "radioGroup" | "role" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "children" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "align" | "gutterBottom" | "noWrap" | "paragraph" | "sx" | "variant" | "variantMapping" | "value"> & React.RefAttributes<HTMLSpanElement>>;
9
+ export declare const PickersToolbarText: React.ForwardRefExoticComponent<Pick<PickersToolbarTextProps, "selected" | "aria-current" | "p" | "slot" | "style" | "title" | "key" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "className" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "hidden" | "id" | "lang" | "placeholder" | "spellCheck" | "tabIndex" | "translate" | "radioGroup" | "role" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "color" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "children" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "alignContent" | "alignItems" | "alignSelf" | "bottom" | "boxShadow" | "boxSizing" | "columnGap" | "display" | "flexBasis" | "flexDirection" | "flexGrow" | "flexShrink" | "flexWrap" | "fontFamily" | "fontSize" | "fontStyle" | "fontWeight" | "gridAutoColumns" | "gridAutoFlow" | "gridAutoRows" | "gridTemplateAreas" | "gridTemplateColumns" | "gridTemplateRows" | "height" | "justifyContent" | "justifyItems" | "justifySelf" | "left" | "letterSpacing" | "lineHeight" | "marginBottom" | "marginLeft" | "marginRight" | "marginTop" | "maxHeight" | "maxWidth" | "minHeight" | "minWidth" | "order" | "paddingBottom" | "paddingLeft" | "paddingRight" | "paddingTop" | "position" | "right" | "rowGap" | "textAlign" | "textOverflow" | "textTransform" | "top" | "visibility" | "whiteSpace" | "width" | "zIndex" | "border" | "borderBottom" | "borderColor" | "borderLeft" | "borderRadius" | "borderRight" | "borderTop" | "flex" | "gap" | "gridArea" | "gridColumn" | "gridRow" | "margin" | "overflow" | "padding" | "value" | "classes" | "typography" | "sx" | "bgcolor" | "m" | "mt" | "mr" | "mb" | "ml" | "mx" | "marginX" | "my" | "marginY" | "pt" | "pr" | "pb" | "pl" | "px" | "paddingX" | "py" | "paddingY" | "displayPrint" | "align" | "variant" | "gutterBottom" | "noWrap" | "paragraph" | "variantMapping"> & React.RefAttributes<HTMLSpanElement>>;
@@ -1,3 +1,3 @@
1
1
  /// <reference types="react" />
2
2
  import { InternalDesktopWrapperProps } from './DesktopWrapper';
3
- export declare function DesktopTooltipWrapper(props: InternalDesktopWrapperProps): JSX.Element;
3
+ export declare function DesktopTooltipWrapper<TDate>(props: InternalDesktopWrapperProps<TDate>): JSX.Element;
@@ -4,6 +4,7 @@ import { useForkRef } from '@mui/material/utils';
4
4
  import { WrapperVariantContext } from './WrapperVariantContext';
5
5
  import { executeInTheNextEventLoopTick } from '../../utils/utils';
6
6
  import { PickersPopper } from '../PickersPopper';
7
+ import { LocalizationProvider } from '../../../LocalizationProvider';
7
8
  import { jsx as _jsx } from "react/jsx-runtime";
8
9
  import { jsxs as _jsxs } from "react/jsx-runtime";
9
10
  export function DesktopTooltipWrapper(props) {
@@ -21,7 +22,8 @@ export function DesktopTooltipWrapper(props) {
21
22
  onAccept,
22
23
  onSetToday,
23
24
  components,
24
- componentsProps
25
+ componentsProps,
26
+ localeText
25
27
  } = props;
26
28
  const inputContainerRef = React.useRef(null);
27
29
  const popperRef = React.useRef(null);
@@ -39,28 +41,31 @@ export function DesktopTooltipWrapper(props) {
39
41
  };
40
42
 
41
43
  const inputComponentRef = useForkRef(DateInputProps.ref, inputContainerRef);
42
- return /*#__PURE__*/_jsxs(WrapperVariantContext.Provider, {
43
- value: "desktop",
44
- children: [/*#__PURE__*/_jsx(KeyboardDateInputComponent, _extends({}, DateInputProps, {
45
- ref: inputComponentRef,
46
- onBlur: handleBlur
47
- })), /*#__PURE__*/_jsx(PickersPopper, {
48
- role: "tooltip",
49
- open: open,
50
- containerRef: popperRef,
51
- anchorEl: inputContainerRef.current,
52
- TransitionComponent: TransitionComponent,
53
- PopperProps: PopperProps,
54
- PaperProps: PaperProps,
55
- onBlur: handleBlur,
56
- onClose: onDismiss,
57
- onClear: onClear,
58
- onCancel: onCancel,
59
- onAccept: onAccept,
60
- onSetToday: onSetToday,
61
- components: components,
62
- componentsProps: componentsProps,
63
- children: children
64
- })]
44
+ return /*#__PURE__*/_jsx(LocalizationProvider, {
45
+ localeText: localeText,
46
+ children: /*#__PURE__*/_jsxs(WrapperVariantContext.Provider, {
47
+ value: "desktop",
48
+ children: [/*#__PURE__*/_jsx(KeyboardDateInputComponent, _extends({}, DateInputProps, {
49
+ ref: inputComponentRef,
50
+ onBlur: handleBlur
51
+ })), /*#__PURE__*/_jsx(PickersPopper, {
52
+ role: "tooltip",
53
+ open: open,
54
+ containerRef: popperRef,
55
+ anchorEl: inputContainerRef.current,
56
+ TransitionComponent: TransitionComponent,
57
+ PopperProps: PopperProps,
58
+ PaperProps: PaperProps,
59
+ onBlur: handleBlur,
60
+ onDismiss: onDismiss,
61
+ onClear: onClear,
62
+ onCancel: onCancel,
63
+ onAccept: onAccept,
64
+ onSetToday: onSetToday,
65
+ components: components,
66
+ componentsProps: componentsProps,
67
+ children: children
68
+ })]
69
+ })
65
70
  });
66
71
  }
@@ -3,14 +3,19 @@ import { ExportedPickerPopperProps, ExportedPickerPaperProps, PickersPopperSlots
3
3
  import { DateInputPropsLike } from './WrapperProps';
4
4
  import { PickerStateWrapperProps } from '../../hooks/usePickerState';
5
5
  import { DateInputSlotsComponent } from '../PureDateInput';
6
- export interface DesktopWrapperProps extends ExportedPickerPopperProps, ExportedPickerPaperProps {
6
+ import { PickersInputLocaleText } from '../../../locales/utils/pickersLocaleTextApi';
7
+ export interface DesktopWrapperProps<TDate> extends ExportedPickerPopperProps, ExportedPickerPaperProps {
7
8
  children?: React.ReactNode;
9
+ /**
10
+ * Locale for components texts
11
+ */
12
+ localeText?: PickersInputLocaleText<TDate>;
8
13
  }
9
14
  export interface DesktopWrapperSlotsComponent extends PickersPopperSlotsComponent, DateInputSlotsComponent {
10
15
  }
11
16
  export interface DesktopWrapperSlotsComponentsProps extends PickersPopperSlotsComponentsProps {
12
17
  }
13
- export interface InternalDesktopWrapperProps extends DesktopWrapperProps, PickerStateWrapperProps {
18
+ export interface InternalDesktopWrapperProps<TDate> extends DesktopWrapperProps<TDate>, PickerStateWrapperProps {
14
19
  DateInputProps: DateInputPropsLike & {
15
20
  ref?: React.Ref<HTMLDivElement>;
16
21
  };
@@ -28,4 +33,4 @@ export interface InternalDesktopWrapperProps extends DesktopWrapperProps, Picker
28
33
  */
29
34
  componentsProps?: Partial<DesktopWrapperSlotsComponentsProps>;
30
35
  }
31
- export declare function DesktopWrapper(props: InternalDesktopWrapperProps): JSX.Element;
36
+ export declare function DesktopWrapper<TDate>(props: InternalDesktopWrapperProps<TDate>): JSX.Element;
@@ -3,6 +3,7 @@ import * as React from 'react';
3
3
  import { useForkRef } from '@mui/material/utils';
4
4
  import { WrapperVariantContext } from './WrapperVariantContext';
5
5
  import { PickersPopper } from '../PickersPopper';
6
+ import { LocalizationProvider } from '../../../LocalizationProvider';
6
7
  import { jsx as _jsx } from "react/jsx-runtime";
7
8
  import { jsxs as _jsxs } from "react/jsx-runtime";
8
9
  export function DesktopWrapper(props) {
@@ -20,29 +21,33 @@ export function DesktopWrapper(props) {
20
21
  PaperProps,
21
22
  TransitionComponent,
22
23
  components,
23
- componentsProps
24
+ componentsProps,
25
+ localeText
24
26
  } = props;
25
27
  const ownInputRef = React.useRef(null);
26
28
  const inputRef = useForkRef(DateInputProps.inputRef, ownInputRef);
27
- return /*#__PURE__*/_jsxs(WrapperVariantContext.Provider, {
28
- value: "desktop",
29
- children: [/*#__PURE__*/_jsx(KeyboardDateInputComponent, _extends({}, DateInputProps, {
30
- inputRef: inputRef
31
- })), /*#__PURE__*/_jsx(PickersPopper, {
32
- role: "dialog",
33
- open: open,
34
- anchorEl: ownInputRef.current,
35
- TransitionComponent: TransitionComponent,
36
- PopperProps: PopperProps,
37
- PaperProps: PaperProps,
38
- onClose: onDismiss,
39
- onCancel: onCancel,
40
- onClear: onClear,
41
- onAccept: onAccept,
42
- onSetToday: onSetToday,
43
- components: components,
44
- componentsProps: componentsProps,
45
- children: children
46
- })]
29
+ return /*#__PURE__*/_jsx(LocalizationProvider, {
30
+ localeText: localeText,
31
+ children: /*#__PURE__*/_jsxs(WrapperVariantContext.Provider, {
32
+ value: "desktop",
33
+ children: [/*#__PURE__*/_jsx(KeyboardDateInputComponent, _extends({}, DateInputProps, {
34
+ inputRef: inputRef
35
+ })), /*#__PURE__*/_jsx(PickersPopper, {
36
+ role: "dialog",
37
+ open: open,
38
+ anchorEl: ownInputRef.current,
39
+ TransitionComponent: TransitionComponent,
40
+ PopperProps: PopperProps,
41
+ PaperProps: PaperProps,
42
+ onDismiss: onDismiss,
43
+ onCancel: onCancel,
44
+ onClear: onClear,
45
+ onAccept: onAccept,
46
+ onSetToday: onSetToday,
47
+ components: components,
48
+ componentsProps: componentsProps,
49
+ children: children
50
+ })]
51
+ })
47
52
  });
48
53
  }
@@ -3,14 +3,19 @@ import { ExportedPickerModalProps, PickersModalDialogSlotsComponent, PickersModa
3
3
  import { DateInputPropsLike } from './WrapperProps';
4
4
  import { PickerStateWrapperProps } from '../../hooks/usePickerState';
5
5
  import { DateInputSlotsComponent } from '../PureDateInput';
6
- export interface MobileWrapperProps extends ExportedPickerModalProps {
6
+ import { PickersInputLocaleText } from '../../../locales/utils/pickersLocaleTextApi';
7
+ export interface MobileWrapperProps<TDate> extends ExportedPickerModalProps {
7
8
  children?: React.ReactNode;
9
+ /**
10
+ * Locale for components texts
11
+ */
12
+ localeText?: PickersInputLocaleText<TDate>;
8
13
  }
9
14
  export interface MobileWrapperSlotsComponent extends PickersModalDialogSlotsComponent, DateInputSlotsComponent {
10
15
  }
11
16
  export interface MobileWrapperSlotsComponentsProps extends PickersModalDialogSlotsComponentsProps {
12
17
  }
13
- export interface InternalMobileWrapperProps extends MobileWrapperProps, PickerStateWrapperProps {
18
+ export interface InternalMobileWrapperProps<TDate> extends MobileWrapperProps<TDate>, PickerStateWrapperProps {
14
19
  DateInputProps: DateInputPropsLike & {
15
20
  ref?: React.Ref<HTMLDivElement>;
16
21
  };
@@ -18,4 +23,4 @@ export interface InternalMobileWrapperProps extends MobileWrapperProps, PickerSt
18
23
  components?: Partial<MobileWrapperSlotsComponent>;
19
24
  componentsProps?: Partial<MobileWrapperSlotsComponentsProps>;
20
25
  }
21
- export declare function MobileWrapper(props: InternalMobileWrapperProps): JSX.Element;
26
+ export declare function MobileWrapper<TDate>(props: InternalMobileWrapperProps<TDate>): JSX.Element;
@@ -1,9 +1,10 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
- const _excluded = ["children", "DateInputProps", "DialogProps", "onAccept", "onClear", "onDismiss", "onCancel", "onSetToday", "open", "PureDateInputComponent", "components", "componentsProps"];
3
+ const _excluded = ["children", "DateInputProps", "DialogProps", "onAccept", "onClear", "onDismiss", "onCancel", "onSetToday", "open", "PureDateInputComponent", "components", "componentsProps", "localeText"];
4
4
  import * as React from 'react';
5
5
  import { WrapperVariantContext } from './WrapperVariantContext';
6
6
  import { PickersModalDialog } from '../PickersModalDialog';
7
+ import { LocalizationProvider } from '../../../LocalizationProvider';
7
8
  import { jsx as _jsx } from "react/jsx-runtime";
8
9
  import { jsxs as _jsxs } from "react/jsx-runtime";
9
10
  export function MobileWrapper(props) {
@@ -19,25 +20,29 @@ export function MobileWrapper(props) {
19
20
  open,
20
21
  PureDateInputComponent,
21
22
  components,
22
- componentsProps
23
+ componentsProps,
24
+ localeText
23
25
  } = props,
24
26
  other = _objectWithoutPropertiesLoose(props, _excluded);
25
27
 
26
- return /*#__PURE__*/_jsxs(WrapperVariantContext.Provider, {
27
- value: "mobile",
28
- children: [/*#__PURE__*/_jsx(PureDateInputComponent, _extends({
29
- components: components
30
- }, other, DateInputProps)), /*#__PURE__*/_jsx(PickersModalDialog, {
31
- DialogProps: DialogProps,
32
- onAccept: onAccept,
33
- onClear: onClear,
34
- onDismiss: onDismiss,
35
- onCancel: onCancel,
36
- onSetToday: onSetToday,
37
- open: open,
38
- components: components,
39
- componentsProps: componentsProps,
40
- children: children
41
- })]
28
+ return /*#__PURE__*/_jsx(LocalizationProvider, {
29
+ localeText: localeText,
30
+ children: /*#__PURE__*/_jsxs(WrapperVariantContext.Provider, {
31
+ value: "mobile",
32
+ children: [/*#__PURE__*/_jsx(PureDateInputComponent, _extends({
33
+ components: components
34
+ }, other, DateInputProps)), /*#__PURE__*/_jsx(PickersModalDialog, {
35
+ DialogProps: DialogProps,
36
+ onAccept: onAccept,
37
+ onClear: onClear,
38
+ onDismiss: onDismiss,
39
+ onCancel: onCancel,
40
+ onSetToday: onSetToday,
41
+ open: open,
42
+ components: components,
43
+ componentsProps: componentsProps,
44
+ children: children
45
+ })]
46
+ })
42
47
  });
43
48
  }
@@ -64,7 +64,6 @@ export interface FieldValueManager<TValue, TDate, TSection extends FieldSection,
64
64
  isSameError: (error: TError, prevError: TError | null) => boolean;
65
65
  }
66
66
  export interface UseFieldState<TValue, TSections> {
67
- valueStr: string;
68
67
  valueParsed: TValue;
69
68
  sections: TSections;
70
69
  selectedSectionIndexes: {
@@ -50,7 +50,6 @@ export const useField = params => {
50
50
  return {
51
51
  sections,
52
52
  valueParsed,
53
- valueStr: fieldValueManager.getValueStrFromSections(sections),
54
53
  selectedSectionIndexes: null
55
54
  };
56
55
  });
@@ -62,7 +61,6 @@ export const useField = params => {
62
61
  } = fieldValueManager.getValueFromSections(utils, state.sections, sections, format);
63
62
  setState(prevState => _extends({}, prevState, {
64
63
  sections,
65
- valueStr: fieldValueManager.getValueStrFromSections(sections),
66
64
  valueParsed: newValueParsed
67
65
  }));
68
66
 
@@ -83,28 +81,29 @@ export const useField = params => {
83
81
 
84
82
  const handleInputClick = useEventCallback((...args) => {
85
83
  onClick == null ? void 0 : onClick(...args);
86
-
87
- if (state.sections.length === 0) {
88
- return;
89
- }
90
-
91
84
  const nextSectionIndex = state.sections.findIndex(section => {
92
- var _inputRef$current$sel, _inputRef$current;
85
+ var _selectionStart;
93
86
 
94
- return section.start > ((_inputRef$current$sel = (_inputRef$current = inputRef.current) == null ? void 0 : _inputRef$current.selectionStart) != null ? _inputRef$current$sel : 0);
87
+ return section.start > ((_selectionStart = inputRef.current.selectionStart) != null ? _selectionStart : 0);
95
88
  });
96
89
  const sectionIndex = nextSectionIndex === -1 ? state.sections.length - 1 : nextSectionIndex - 1;
97
90
  updateSelectedSections(sectionIndex);
98
91
  });
99
92
  const handleInputFocus = useEventCallback((...args) => {
100
- onFocus == null ? void 0 : onFocus(...args);
93
+ onFocus == null ? void 0 : onFocus(...args); // The ref is guaranteed to be resolved that this point.
94
+
95
+ const input = inputRef.current;
96
+ clearTimeout(focusTimeoutRef.current);
101
97
  focusTimeoutRef.current = setTimeout(() => {
102
- var _inputRef$current$sel2, _inputRef$current2, _inputRef$current$sel3, _inputRef$current3;
98
+ // The ref changed, the component got remounted, the focus event is no longer relevant.
99
+ if (input !== inputRef.current) {
100
+ return;
101
+ }
103
102
 
104
- if (((_inputRef$current$sel2 = (_inputRef$current2 = inputRef.current) == null ? void 0 : _inputRef$current2.selectionEnd) != null ? _inputRef$current$sel2 : 0) - ((_inputRef$current$sel3 = (_inputRef$current3 = inputRef.current) == null ? void 0 : _inputRef$current3.selectionStart) != null ? _inputRef$current$sel3 : 0) === 0) {
105
- handleInputClick();
106
- } else {
103
+ if (Number(input.selectionEnd) - Number(input.selectionStart) === input.value.length) {
107
104
  updateSelectedSections(0, state.sections.length - 1);
105
+ } else {
106
+ handleInputClick();
108
107
  }
109
108
  });
110
109
  });
@@ -113,17 +112,14 @@ export const useField = params => {
113
112
  updateSelectedSections();
114
113
  });
115
114
  const handleInputKeyDown = useEventCallback(event => {
116
- onKeyDown == null ? void 0 : onKeyDown(event);
117
-
118
- if (!inputRef.current || state.sections.length === 0) {
119
- return;
120
- } // eslint-disable-next-line default-case
121
-
115
+ onKeyDown == null ? void 0 : onKeyDown(event); // eslint-disable-next-line default-case
122
116
 
123
117
  switch (true) {
124
118
  // Select all
125
119
  case event.key === 'a' && (event.ctrlKey || event.metaKey):
126
120
  {
121
+ // prevent default to make sure that the next line "select all" while updating
122
+ // the internal state at the same time.
127
123
  event.preventDefault();
128
124
  updateSelectedSections(0, state.sections.length - 1);
129
125
  return;
@@ -268,7 +264,7 @@ export const useField = params => {
268
264
  }
269
265
  });
270
266
  useEnhancedEffect(() => {
271
- if (!inputRef.current || state.selectedSectionIndexes == null) {
267
+ if (state.selectedSectionIndexes == null) {
272
268
  return;
273
269
  }
274
270
 
@@ -287,7 +283,6 @@ export const useField = params => {
287
283
  const sections = fieldValueManager.getSectionsFromValue(utils, state.sections, valueParsed, format);
288
284
  setState(prevState => _extends({}, prevState, {
289
285
  valueParsed,
290
- valueStr: fieldValueManager.getValueStrFromSections(sections),
291
286
  sections
292
287
  }));
293
288
  }
@@ -301,9 +296,10 @@ export const useField = params => {
301
296
  React.useEffect(() => {
302
297
  return () => window.clearTimeout(focusTimeoutRef.current);
303
298
  }, []);
299
+ const valueStr = React.useMemo(() => fieldValueManager.getValueStrFromSections(state.sections), [state.sections, fieldValueManager]);
304
300
  return {
305
301
  inputProps: _extends({}, otherForwardedProps, {
306
- value: state.valueStr,
302
+ value: valueStr,
307
303
  onClick: handleInputClick,
308
304
  onFocus: handleInputFocus,
309
305
  onBlur: handleInputBlur,