@mui/x-date-pickers 7.16.0 → 7.17.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 (370) hide show
  1. package/AdapterDayjs/AdapterDayjs.js +1 -1
  2. package/CHANGELOG.md +87 -0
  3. package/DateCalendar/DateCalendar.js +2 -0
  4. package/DateCalendar/useCalendarState.js +2 -0
  5. package/DateCalendar/useIsDateDisabled.d.ts +4 -3
  6. package/DateCalendar/useIsDateDisabled.js +5 -3
  7. package/DateField/DateField.js +2 -0
  8. package/DateField/DateField.types.d.ts +7 -2
  9. package/DateField/index.d.ts +1 -1
  10. package/DateField/useDateField.d.ts +1 -1
  11. package/DateField/useDateField.js +5 -3
  12. package/DatePicker/DatePicker.js +2 -0
  13. package/DatePicker/DatePickerToolbar.js +2 -0
  14. package/DateTimeField/DateTimeField.js +2 -0
  15. package/DateTimeField/DateTimeField.types.d.ts +7 -2
  16. package/DateTimeField/index.d.ts +1 -1
  17. package/DateTimeField/useDateTimeField.d.ts +1 -1
  18. package/DateTimeField/useDateTimeField.js +5 -3
  19. package/DateTimePicker/DateTimePicker.js +2 -0
  20. package/DateTimePicker/DateTimePickerTabs.js +2 -0
  21. package/DateTimePicker/DateTimePickerToolbar.js +2 -0
  22. package/DayCalendarSkeleton/DayCalendarSkeleton.js +2 -0
  23. package/DesktopDatePicker/DesktopDatePicker.js +10 -3
  24. package/DesktopDateTimePicker/DesktopDateTimePicker.js +10 -3
  25. package/DesktopTimePicker/DesktopTimePicker.js +10 -3
  26. package/DigitalClock/DigitalClock.js +2 -0
  27. package/LocalizationProvider/LocalizationProvider.js +2 -0
  28. package/MobileDatePicker/MobileDatePicker.js +10 -3
  29. package/MobileDateTimePicker/MobileDateTimePicker.js +10 -3
  30. package/MobileTimePicker/MobileTimePicker.js +10 -3
  31. package/MonthCalendar/MonthCalendar.js +2 -0
  32. package/MultiSectionDigitalClock/MultiSectionDigitalClock.js +2 -0
  33. package/PickersActionBar/PickersActionBar.js +2 -0
  34. package/PickersCalendarHeader/PickersCalendarHeader.js +2 -0
  35. package/PickersDay/PickersDay.js +2 -0
  36. package/PickersLayout/PickersLayout.js +2 -0
  37. package/PickersLayout/usePickerLayout.js +2 -0
  38. package/PickersSectionList/PickersSectionList.js +2 -0
  39. package/PickersShortcuts/PickersShortcuts.js +2 -0
  40. package/PickersTextField/PickersTextField.js +2 -0
  41. package/StaticDatePicker/StaticDatePicker.js +3 -1
  42. package/StaticDateTimePicker/StaticDateTimePicker.js +3 -1
  43. package/StaticTimePicker/StaticTimePicker.js +3 -1
  44. package/TimeClock/Clock.js +1 -1
  45. package/TimeClock/TimeClock.js +2 -0
  46. package/TimeField/TimeField.js +2 -0
  47. package/TimeField/TimeField.types.d.ts +7 -2
  48. package/TimeField/index.d.ts +1 -1
  49. package/TimeField/useTimeField.d.ts +1 -1
  50. package/TimeField/useTimeField.js +5 -3
  51. package/TimePicker/TimePicker.js +2 -0
  52. package/TimePicker/TimePickerToolbar.js +2 -0
  53. package/YearCalendar/YearCalendar.js +2 -0
  54. package/hooks/index.d.ts +1 -0
  55. package/hooks/index.js +2 -1
  56. package/hooks/useClearableField.js +2 -0
  57. package/hooks/usePickersTranslations.js +2 -0
  58. package/hooks/useSplitFieldProps.d.ts +19 -0
  59. package/hooks/useSplitFieldProps.js +43 -0
  60. package/index.d.ts +1 -0
  61. package/index.js +3 -2
  62. package/internals/hooks/useDesktopPicker/useDesktopPicker.js +1 -3
  63. package/internals/hooks/useDesktopPicker/useDesktopPicker.types.d.ts +2 -2
  64. package/internals/hooks/useField/useField.js +11 -6
  65. package/internals/hooks/useField/useField.types.d.ts +4 -22
  66. package/internals/hooks/useField/useFieldState.js +2 -4
  67. package/internals/hooks/useMobilePicker/useMobilePicker.js +1 -3
  68. package/internals/hooks/useMobilePicker/useMobilePicker.types.d.ts +2 -2
  69. package/internals/hooks/usePicker/usePicker.d.ts +1 -2
  70. package/internals/hooks/usePicker/usePicker.js +1 -1
  71. package/internals/hooks/usePicker/usePickerValue.d.ts +1 -2
  72. package/internals/hooks/usePicker/usePickerValue.js +12 -16
  73. package/internals/hooks/usePicker/usePickerValue.types.d.ts +4 -15
  74. package/internals/index.d.ts +0 -8
  75. package/internals/index.js +0 -7
  76. package/locales/beBY.d.ts +3 -3
  77. package/locales/beBY.js +4 -4
  78. package/locales/caES.d.ts +3 -3
  79. package/locales/caES.js +3 -3
  80. package/locales/csCZ.d.ts +3 -3
  81. package/locales/csCZ.js +4 -4
  82. package/locales/daDK.d.ts +3 -3
  83. package/locales/daDK.js +3 -3
  84. package/locales/deDE.d.ts +3 -3
  85. package/locales/deDE.js +3 -3
  86. package/locales/elGR.d.ts +3 -3
  87. package/locales/elGR.js +4 -4
  88. package/locales/enUS.d.ts +3 -3
  89. package/locales/enUS.js +4 -4
  90. package/locales/esES.d.ts +3 -3
  91. package/locales/esES.js +3 -3
  92. package/locales/eu.d.ts +3 -3
  93. package/locales/eu.js +3 -3
  94. package/locales/faIR.d.ts +3 -3
  95. package/locales/faIR.js +3 -3
  96. package/locales/fiFI.d.ts +3 -3
  97. package/locales/fiFI.js +3 -3
  98. package/locales/frFR.d.ts +3 -3
  99. package/locales/frFR.js +3 -3
  100. package/locales/heIL.d.ts +3 -3
  101. package/locales/heIL.js +3 -3
  102. package/locales/huHU.d.ts +3 -3
  103. package/locales/huHU.js +3 -3
  104. package/locales/isIS.d.ts +3 -3
  105. package/locales/isIS.js +4 -4
  106. package/locales/itIT.d.ts +3 -3
  107. package/locales/itIT.js +3 -3
  108. package/locales/jaJP.d.ts +3 -3
  109. package/locales/jaJP.js +3 -3
  110. package/locales/koKR.d.ts +3 -3
  111. package/locales/koKR.js +3 -3
  112. package/locales/kzKZ.d.ts +3 -3
  113. package/locales/kzKZ.js +4 -4
  114. package/locales/mk.d.ts +3 -3
  115. package/locales/mk.js +3 -3
  116. package/locales/nbNO.d.ts +3 -3
  117. package/locales/nbNO.js +4 -4
  118. package/locales/nlNL.d.ts +3 -3
  119. package/locales/nlNL.js +3 -3
  120. package/locales/nnNO.d.ts +3 -3
  121. package/locales/nnNO.js +3 -3
  122. package/locales/plPL.d.ts +3 -3
  123. package/locales/plPL.js +4 -4
  124. package/locales/ptBR.d.ts +3 -3
  125. package/locales/ptBR.js +4 -4
  126. package/locales/roRO.d.ts +3 -3
  127. package/locales/roRO.js +3 -3
  128. package/locales/ruRU.d.ts +3 -3
  129. package/locales/ruRU.js +3 -3
  130. package/locales/skSK.d.ts +3 -3
  131. package/locales/skSK.js +4 -4
  132. package/locales/svSE.d.ts +3 -3
  133. package/locales/svSE.js +3 -3
  134. package/locales/trTR.d.ts +3 -3
  135. package/locales/trTR.js +4 -4
  136. package/locales/ukUA.d.ts +3 -3
  137. package/locales/ukUA.js +3 -3
  138. package/locales/urPK.d.ts +3 -3
  139. package/locales/urPK.js +4 -4
  140. package/locales/utils/getPickersLocalization.d.ts +10 -3
  141. package/locales/utils/getPickersLocalization.js +13 -0
  142. package/locales/utils/pickersLocaleTextApi.d.ts +27 -3
  143. package/locales/viVN.d.ts +3 -3
  144. package/locales/viVN.js +3 -3
  145. package/locales/zhCN.d.ts +3 -3
  146. package/locales/zhCN.js +3 -3
  147. package/locales/zhHK.d.ts +3 -3
  148. package/locales/zhHK.js +3 -3
  149. package/models/validation.d.ts +13 -0
  150. package/modern/AdapterDayjs/AdapterDayjs.js +1 -1
  151. package/modern/DateCalendar/DateCalendar.js +2 -0
  152. package/modern/DateCalendar/useCalendarState.js +2 -0
  153. package/modern/DateCalendar/useIsDateDisabled.js +5 -3
  154. package/modern/DateField/DateField.js +2 -0
  155. package/modern/DateField/useDateField.js +5 -3
  156. package/modern/DatePicker/DatePicker.js +2 -0
  157. package/modern/DatePicker/DatePickerToolbar.js +2 -0
  158. package/modern/DateTimeField/DateTimeField.js +2 -0
  159. package/modern/DateTimeField/useDateTimeField.js +5 -3
  160. package/modern/DateTimePicker/DateTimePicker.js +2 -0
  161. package/modern/DateTimePicker/DateTimePickerTabs.js +2 -0
  162. package/modern/DateTimePicker/DateTimePickerToolbar.js +2 -0
  163. package/modern/DayCalendarSkeleton/DayCalendarSkeleton.js +2 -0
  164. package/modern/DesktopDatePicker/DesktopDatePicker.js +10 -3
  165. package/modern/DesktopDateTimePicker/DesktopDateTimePicker.js +10 -3
  166. package/modern/DesktopTimePicker/DesktopTimePicker.js +10 -3
  167. package/modern/DigitalClock/DigitalClock.js +2 -0
  168. package/modern/LocalizationProvider/LocalizationProvider.js +2 -0
  169. package/modern/MobileDatePicker/MobileDatePicker.js +10 -3
  170. package/modern/MobileDateTimePicker/MobileDateTimePicker.js +10 -3
  171. package/modern/MobileTimePicker/MobileTimePicker.js +10 -3
  172. package/modern/MonthCalendar/MonthCalendar.js +2 -0
  173. package/modern/MultiSectionDigitalClock/MultiSectionDigitalClock.js +2 -0
  174. package/modern/PickersActionBar/PickersActionBar.js +2 -0
  175. package/modern/PickersCalendarHeader/PickersCalendarHeader.js +2 -0
  176. package/modern/PickersDay/PickersDay.js +2 -0
  177. package/modern/PickersLayout/PickersLayout.js +2 -0
  178. package/modern/PickersLayout/usePickerLayout.js +2 -0
  179. package/modern/PickersSectionList/PickersSectionList.js +2 -0
  180. package/modern/PickersShortcuts/PickersShortcuts.js +2 -0
  181. package/modern/PickersTextField/PickersTextField.js +2 -0
  182. package/modern/StaticDatePicker/StaticDatePicker.js +3 -1
  183. package/modern/StaticDateTimePicker/StaticDateTimePicker.js +3 -1
  184. package/modern/StaticTimePicker/StaticTimePicker.js +3 -1
  185. package/modern/TimeClock/Clock.js +1 -1
  186. package/modern/TimeClock/TimeClock.js +2 -0
  187. package/modern/TimeField/TimeField.js +2 -0
  188. package/modern/TimeField/useTimeField.js +5 -3
  189. package/modern/TimePicker/TimePicker.js +2 -0
  190. package/modern/TimePicker/TimePickerToolbar.js +2 -0
  191. package/modern/YearCalendar/YearCalendar.js +2 -0
  192. package/modern/hooks/index.js +2 -1
  193. package/modern/hooks/useClearableField.js +2 -0
  194. package/modern/hooks/usePickersTranslations.js +2 -0
  195. package/modern/hooks/useSplitFieldProps.js +43 -0
  196. package/modern/index.js +3 -2
  197. package/modern/internals/hooks/useDesktopPicker/useDesktopPicker.js +1 -3
  198. package/modern/internals/hooks/useField/useField.js +11 -6
  199. package/modern/internals/hooks/useField/useFieldState.js +2 -4
  200. package/modern/internals/hooks/useMobilePicker/useMobilePicker.js +1 -3
  201. package/modern/internals/hooks/usePicker/usePicker.js +1 -1
  202. package/modern/internals/hooks/usePicker/usePickerValue.js +12 -16
  203. package/modern/internals/index.js +0 -7
  204. package/modern/locales/beBY.js +4 -4
  205. package/modern/locales/caES.js +3 -3
  206. package/modern/locales/csCZ.js +4 -4
  207. package/modern/locales/daDK.js +3 -3
  208. package/modern/locales/deDE.js +3 -3
  209. package/modern/locales/elGR.js +4 -4
  210. package/modern/locales/enUS.js +4 -4
  211. package/modern/locales/esES.js +3 -3
  212. package/modern/locales/eu.js +3 -3
  213. package/modern/locales/faIR.js +3 -3
  214. package/modern/locales/fiFI.js +3 -3
  215. package/modern/locales/frFR.js +3 -3
  216. package/modern/locales/heIL.js +3 -3
  217. package/modern/locales/huHU.js +3 -3
  218. package/modern/locales/isIS.js +4 -4
  219. package/modern/locales/itIT.js +3 -3
  220. package/modern/locales/jaJP.js +3 -3
  221. package/modern/locales/koKR.js +3 -3
  222. package/modern/locales/kzKZ.js +4 -4
  223. package/modern/locales/mk.js +3 -3
  224. package/modern/locales/nbNO.js +4 -4
  225. package/modern/locales/nlNL.js +3 -3
  226. package/modern/locales/nnNO.js +3 -3
  227. package/modern/locales/plPL.js +4 -4
  228. package/modern/locales/ptBR.js +4 -4
  229. package/modern/locales/roRO.js +3 -3
  230. package/modern/locales/ruRU.js +3 -3
  231. package/modern/locales/skSK.js +4 -4
  232. package/modern/locales/svSE.js +3 -3
  233. package/modern/locales/trTR.js +4 -4
  234. package/modern/locales/ukUA.js +3 -3
  235. package/modern/locales/urPK.js +4 -4
  236. package/modern/locales/utils/getPickersLocalization.js +13 -0
  237. package/modern/locales/viVN.js +3 -3
  238. package/modern/locales/zhCN.js +3 -3
  239. package/modern/locales/zhHK.js +3 -3
  240. package/modern/validation/index.js +5 -0
  241. package/modern/validation/useValidation.js +54 -0
  242. package/{internals/utils → modern}/validation/validateDate.js +6 -4
  243. package/modern/{internals/utils/validation → validation}/validateDateTime.js +8 -3
  244. package/{internals/utils → modern}/validation/validateTime.js +6 -4
  245. package/node/AdapterDayjs/AdapterDayjs.js +1 -1
  246. package/node/DateCalendar/DateCalendar.js +1 -0
  247. package/node/DateCalendar/useCalendarState.js +1 -0
  248. package/node/DateCalendar/useIsDateDisabled.js +5 -4
  249. package/node/DateField/DateField.js +1 -0
  250. package/node/DateField/useDateField.js +5 -4
  251. package/node/DatePicker/DatePicker.js +1 -0
  252. package/node/DatePicker/DatePickerToolbar.js +1 -0
  253. package/node/DateTimeField/DateTimeField.js +1 -0
  254. package/node/DateTimeField/useDateTimeField.js +5 -4
  255. package/node/DateTimePicker/DateTimePicker.js +1 -0
  256. package/node/DateTimePicker/DateTimePickerTabs.js +1 -0
  257. package/node/DateTimePicker/DateTimePickerToolbar.js +1 -0
  258. package/node/DayCalendarSkeleton/DayCalendarSkeleton.js +1 -0
  259. package/node/DesktopDatePicker/DesktopDatePicker.js +11 -5
  260. package/node/DesktopDateTimePicker/DesktopDateTimePicker.js +11 -5
  261. package/node/DesktopTimePicker/DesktopTimePicker.js +11 -5
  262. package/node/DigitalClock/DigitalClock.js +1 -0
  263. package/node/LocalizationProvider/LocalizationProvider.js +1 -0
  264. package/node/MobileDatePicker/MobileDatePicker.js +11 -5
  265. package/node/MobileDateTimePicker/MobileDateTimePicker.js +11 -5
  266. package/node/MobileTimePicker/MobileTimePicker.js +11 -5
  267. package/node/MonthCalendar/MonthCalendar.js +1 -0
  268. package/node/MultiSectionDigitalClock/MultiSectionDigitalClock.js +1 -0
  269. package/node/PickersActionBar/PickersActionBar.js +1 -0
  270. package/node/PickersCalendarHeader/PickersCalendarHeader.js +1 -0
  271. package/node/PickersDay/PickersDay.js +1 -0
  272. package/node/PickersLayout/PickersLayout.js +1 -0
  273. package/node/PickersLayout/usePickerLayout.js +1 -0
  274. package/node/PickersSectionList/PickersSectionList.js +1 -0
  275. package/node/PickersShortcuts/PickersShortcuts.js +1 -0
  276. package/node/PickersTextField/PickersTextField.js +1 -0
  277. package/node/StaticDatePicker/StaticDatePicker.js +3 -2
  278. package/node/StaticDateTimePicker/StaticDateTimePicker.js +3 -2
  279. package/node/StaticTimePicker/StaticTimePicker.js +3 -2
  280. package/node/TimeClock/Clock.js +1 -1
  281. package/node/TimeClock/TimeClock.js +1 -0
  282. package/node/TimeField/TimeField.js +1 -0
  283. package/node/TimeField/useTimeField.js +5 -4
  284. package/node/TimePicker/TimePicker.js +1 -0
  285. package/node/TimePicker/TimePickerToolbar.js +1 -0
  286. package/node/YearCalendar/YearCalendar.js +1 -0
  287. package/node/hooks/index.js +8 -1
  288. package/node/hooks/useClearableField.js +1 -0
  289. package/node/hooks/usePickersTranslations.js +1 -0
  290. package/node/hooks/useSplitFieldProps.js +51 -0
  291. package/node/index.js +13 -1
  292. package/node/internals/hooks/useDesktopPicker/useDesktopPicker.js +1 -3
  293. package/node/internals/hooks/useField/useField.js +11 -6
  294. package/node/internals/hooks/useField/useFieldState.js +2 -4
  295. package/node/internals/hooks/useMobilePicker/useMobilePicker.js +1 -3
  296. package/node/internals/hooks/usePicker/usePicker.js +1 -1
  297. package/node/internals/hooks/usePicker/usePickerValue.js +12 -16
  298. package/node/internals/index.js +0 -49
  299. package/node/locales/beBY.js +4 -4
  300. package/node/locales/caES.js +3 -3
  301. package/node/locales/csCZ.js +4 -4
  302. package/node/locales/daDK.js +3 -3
  303. package/node/locales/deDE.js +3 -3
  304. package/node/locales/elGR.js +4 -4
  305. package/node/locales/enUS.js +4 -4
  306. package/node/locales/esES.js +3 -3
  307. package/node/locales/eu.js +3 -3
  308. package/node/locales/faIR.js +3 -3
  309. package/node/locales/fiFI.js +3 -3
  310. package/node/locales/frFR.js +3 -3
  311. package/node/locales/heIL.js +3 -3
  312. package/node/locales/huHU.js +3 -3
  313. package/node/locales/isIS.js +4 -4
  314. package/node/locales/itIT.js +3 -3
  315. package/node/locales/jaJP.js +3 -3
  316. package/node/locales/koKR.js +3 -3
  317. package/node/locales/kzKZ.js +4 -4
  318. package/node/locales/mk.js +3 -3
  319. package/node/locales/nbNO.js +4 -4
  320. package/node/locales/nlNL.js +3 -3
  321. package/node/locales/nnNO.js +3 -3
  322. package/node/locales/plPL.js +4 -4
  323. package/node/locales/ptBR.js +4 -4
  324. package/node/locales/roRO.js +3 -3
  325. package/node/locales/ruRU.js +3 -3
  326. package/node/locales/skSK.js +4 -4
  327. package/node/locales/svSE.js +3 -3
  328. package/node/locales/trTR.js +4 -4
  329. package/node/locales/ukUA.js +3 -3
  330. package/node/locales/urPK.js +4 -4
  331. package/node/locales/utils/getPickersLocalization.js +16 -2
  332. package/node/locales/viVN.js +3 -3
  333. package/node/locales/zhCN.js +3 -3
  334. package/node/locales/zhHK.js +3 -3
  335. package/node/validation/index.js +40 -0
  336. package/node/validation/useValidation.js +61 -0
  337. package/node/{internals/utils/validation → validation}/validateDate.js +6 -4
  338. package/node/{internals/utils/validation → validation}/validateDateTime.js +8 -3
  339. package/node/{internals/utils/validation → validation}/validateTime.js +6 -4
  340. package/package.json +2 -2
  341. package/{internals/utils/validation → validation}/extractValidationProps.d.ts +1 -1
  342. package/validation/index.d.ts +9 -0
  343. package/validation/index.js +5 -0
  344. package/validation/package.json +6 -0
  345. package/validation/useValidation.d.ts +68 -0
  346. package/validation/useValidation.js +54 -0
  347. package/validation/validateDate.d.ts +6 -0
  348. package/{modern/internals/utils/validation → validation}/validateDate.js +6 -4
  349. package/validation/validateDateTime.d.ts +7 -0
  350. package/{internals/utils/validation → validation}/validateDateTime.js +8 -3
  351. package/validation/validateTime.d.ts +6 -0
  352. package/{modern/internals/utils/validation → validation}/validateTime.js +6 -4
  353. package/internals/hooks/useValidation.d.ts +0 -24
  354. package/internals/hooks/useValidation.js +0 -22
  355. package/internals/utils/fields.d.ts +0 -5
  356. package/internals/utils/fields.js +0 -28
  357. package/internals/utils/validation/validateDate.d.ts +0 -7
  358. package/internals/utils/validation/validateDateTime.d.ts +0 -7
  359. package/internals/utils/validation/validateTime.d.ts +0 -7
  360. package/internals/utils/warning.d.ts +0 -2
  361. package/internals/utils/warning.js +0 -21
  362. package/modern/internals/hooks/useValidation.js +0 -22
  363. package/modern/internals/utils/fields.js +0 -28
  364. package/modern/internals/utils/warning.js +0 -21
  365. package/node/internals/hooks/useValidation.js +0 -29
  366. package/node/internals/utils/fields.js +0 -36
  367. package/node/internals/utils/warning.js +0 -28
  368. /package/{internals/utils → modern}/validation/extractValidationProps.js +0 -0
  369. /package/node/{internals/utils/validation → validation}/extractValidationProps.js +0 -0
  370. /package/{modern/internals/utils/validation → validation}/extractValidationProps.js +0 -0
@@ -3,7 +3,7 @@ import * as React from 'react';
3
3
  import useEnhancedEffect from '@mui/utils/useEnhancedEffect';
4
4
  import useEventCallback from '@mui/utils/useEventCallback';
5
5
  import { useRtl } from '@mui/system/RtlProvider';
6
- import { useValidation } from "../useValidation.js";
6
+ import { useValidation } from "../../../validation/index.js";
7
7
  import { useUtils } from "../useUtils.js";
8
8
  import { adjustSectionValue, getSectionOrder } from "./useField.utils.js";
9
9
  import { useFieldState } from "./useFieldState.js";
@@ -158,18 +158,23 @@ export const useField = params => {
158
158
  useEnhancedEffect(() => {
159
159
  interactions.syncSelectionToDOM();
160
160
  });
161
- const validationError = useValidation(_extends({}, internalProps, {
161
+ const {
162
+ hasValidationError
163
+ } = useValidation({
164
+ props: internalProps,
165
+ validator,
166
+ timezone,
162
167
  value: state.value,
163
- timezone
164
- }), validator, valueManager.isSameError, valueManager.defaultErrorState);
168
+ onError: internalProps.onError
169
+ });
165
170
  const inputError = React.useMemo(() => {
166
171
  // only override when `error` is undefined.
167
172
  // in case of multi input fields, the `error` value is provided externally and will always be defined.
168
173
  if (error !== undefined) {
169
174
  return error;
170
175
  }
171
- return valueManager.hasError(validationError);
172
- }, [valueManager, validationError, error]);
176
+ return hasValidationError;
177
+ }, [hasValidationError, error]);
173
178
  React.useEffect(() => {
174
179
  if (!inputError && activeSectionIndex == null) {
175
180
  resetCharacterQuery();
@@ -110,10 +110,8 @@ export const useFieldState = params => {
110
110
  validationError: validator({
111
111
  adapter,
112
112
  value,
113
- props: _extends({}, internalProps, {
114
- value,
115
- timezone
116
- })
113
+ timezone,
114
+ props: internalProps
117
115
  })
118
116
  };
119
117
  handleValueChange(value, context);
@@ -8,7 +8,6 @@ import useId from '@mui/utils/useId';
8
8
  import { PickersModalDialog } from "../../components/PickersModalDialog.js";
9
9
  import { usePicker } from "../usePicker/index.js";
10
10
  import { onSpaceOrEnter } from "../../utils/utils.js";
11
- import { useUtils } from "../useUtils.js";
12
11
  import { LocalizationProvider } from "../../../LocalizationProvider/index.js";
13
12
  import { PickersLayout } from "../../../PickersLayout/index.js";
14
13
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
@@ -42,7 +41,6 @@ export const useMobilePicker = _ref => {
42
41
  disabled,
43
42
  localeText
44
43
  } = props;
45
- const utils = useUtils();
46
44
  const fieldRef = React.useRef(null);
47
45
  const labelId = useId();
48
46
  const isToolbarHidden = innerSlotProps?.toolbar?.hidden ?? false;
@@ -89,7 +87,7 @@ export const useMobilePicker = _ref => {
89
87
 
90
88
  // TODO: Move to `useSlotProps` when https://github.com/mui/material-ui/pull/35088 will be merged
91
89
  fieldProps.inputProps = _extends({}, fieldProps.inputProps, {
92
- 'aria-label': getOpenDialogAriaText(pickerFieldProps.value, utils)
90
+ 'aria-label': getOpenDialogAriaText(pickerFieldProps.value)
93
91
  });
94
92
  const slotsForField = _extends({
95
93
  textField: slots.textField
@@ -1,7 +1,7 @@
1
+ import { warnOnce } from '@mui/x-internals/warning';
1
2
  import { usePickerValue } from "./usePickerValue.js";
2
3
  import { usePickerViews } from "./usePickerViews.js";
3
4
  import { usePickerLayoutProps } from "./usePickerLayoutProps.js";
4
- import { warnOnce } from "../../utils/warning.js";
5
5
  export const usePicker = ({
6
6
  props,
7
7
  valueManager,
@@ -3,7 +3,7 @@ import * as React from 'react';
3
3
  import useEventCallback from '@mui/utils/useEventCallback';
4
4
  import { useOpenState } from "../useOpenState.js";
5
5
  import { useLocalizationContext, useUtils } from "../useUtils.js";
6
- import { useValidation } from "../useValidation.js";
6
+ import { useValidation } from "../../../validation/index.js";
7
7
  import { useValueWithTimezone } from "../useValueWithTimezone.js";
8
8
 
9
9
  /**
@@ -180,10 +180,15 @@ export const usePickerValue = ({
180
180
  hasBeenModifiedSinceMount: false
181
181
  };
182
182
  });
183
- useValidation(_extends({}, props, {
183
+ const {
184
+ getValidationErrorForNewValue
185
+ } = useValidation({
186
+ props,
187
+ validator,
188
+ timezone,
184
189
  value: dateState.draft,
185
- timezone
186
- }), validator, valueManager.isSameError, valueManager.defaultErrorState);
190
+ onError: props.onError
191
+ });
187
192
  const updateDate = useEventCallback(action => {
188
193
  const updaterParams = {
189
194
  action,
@@ -204,14 +209,7 @@ export const usePickerValue = ({
204
209
  let cachedContext = null;
205
210
  const getContext = () => {
206
211
  if (!cachedContext) {
207
- const validationError = action.name === 'setValueFromField' ? action.context.validationError : validator({
208
- adapter,
209
- value: action.value,
210
- props: _extends({}, props, {
211
- value: action.value,
212
- timezone
213
- })
214
- });
212
+ const validationError = action.name === 'setValueFromField' ? action.context.validationError : getValidationErrorForNewValue(action.value);
215
213
  cachedContext = {
216
214
  validationError
217
215
  };
@@ -325,10 +323,8 @@ export const usePickerValue = ({
325
323
  const error = validator({
326
324
  adapter,
327
325
  value: testedValue,
328
- props: _extends({}, props, {
329
- value: testedValue,
330
- timezone
331
- })
326
+ timezone,
327
+ props
332
328
  });
333
329
  return !valueManager.hasError(error);
334
330
  };
@@ -15,22 +15,15 @@ export { usePicker } from "./hooks/usePicker/index.js";
15
15
  export { useStaticPicker } from "./hooks/useStaticPicker/index.js";
16
16
  export { useLocalizationContext, useDefaultDates, useUtils, useNow } from "./hooks/useUtils.js";
17
17
  export { useViews } from "./hooks/useViews.js";
18
- export { useValidation } from "./hooks/useValidation.js";
19
18
  export { usePreviousMonthDisabled, useNextMonthDisabled } from "./hooks/date-helpers-hooks.js";
20
19
  export { convertFieldResponseIntoMuiTextFieldProps } from "./utils/convertFieldResponseIntoMuiTextFieldProps.js";
21
20
  export { applyDefaultDate, replaceInvalidDateByNull, areDatesEqual, getTodayDate, isDatePickerView, mergeDateAndTime, formatMeridiem } from "./utils/date-utils.js";
22
21
  export { resolveTimeViewsResponse, resolveDateTimeFormat } from "./utils/date-time-utils.js";
23
- export { splitFieldInternalAndForwardedProps } from "./utils/fields.js";
24
22
  export { getDefaultReferenceDate } from "./utils/getDefaultReferenceDate.js";
25
23
  export { executeInTheNextEventLoopTick, getActiveElement, onSpaceOrEnter, DEFAULT_DESKTOP_MODE_MEDIA_QUERY } from "./utils/utils.js";
26
24
  export { useDefaultizedDateField, useDefaultizedTimeField, useDefaultizedDateTimeField } from "./hooks/defaultizedFieldProps.js";
27
25
  export { useDefaultReduceAnimations } from "./hooks/useDefaultReduceAnimations.js";
28
- export { extractValidationProps } from "./utils/validation/extractValidationProps.js";
29
- export { validateDate } from "./utils/validation/validateDate.js";
30
- export { validateDateTime } from "./utils/validation/validateDateTime.js";
31
- export { validateTime } from "./utils/validation/validateTime.js";
32
26
  export { applyDefaultViewProps } from "./utils/views.js";
33
- export { warnOnce } from "./utils/warning.js";
34
27
  export { DayCalendar } from "../DateCalendar/DayCalendar.js";
35
28
  export { useCalendarState } from "../DateCalendar/useCalendarState.js";
36
29
  export { isInternalTimeView, isTimeView } from "./utils/time-utils.js";
@@ -33,7 +33,7 @@ const beBYPickers = {
33
33
  timePickerToolbarTitle: 'Абраць час',
34
34
  dateRangePickerToolbarTitle: 'Абраць каляндарны перыяд',
35
35
  // Clock labels
36
- clockLabelText: (view, time, adapter) => `Абярыце ${views[view]}. ${time === null ? 'Час не абраны' : `Абраны час ${adapter.format(time, 'fullTime')}`}`,
36
+ clockLabelText: (view, time, utils, formattedTime) => `Абярыце ${views[view]}. ${!formattedTime && (time === null || !utils.isValid(time)) ? 'Час не абраны' : `Абраны час ${formattedTime ?? utils.format(time, 'fullTime')}`}`,
37
37
  hoursClockNumberText: hours => `${hours} гадзін`,
38
38
  minutesClockNumberText: minutes => `${minutes} хвілін`,
39
39
  secondsClockNumberText: seconds => `${seconds} секунд`,
@@ -45,9 +45,9 @@ const beBYPickers = {
45
45
  calendarWeekNumberAriaLabelText: weekNumber => `Тыдзень ${weekNumber}`,
46
46
  calendarWeekNumberText: weekNumber => `${weekNumber}`,
47
47
  // Open picker labels
48
- openDatePickerDialogue: (value, utils) => value !== null && utils.isValid(value) ? `Абраць дату, абрана дата ${utils.format(value, 'fullDate')}` : 'Абраць дату',
49
- openTimePickerDialogue: (value, utils) => value !== null && utils.isValid(value) ? `Абраць час, абрыны час ${utils.format(value, 'fullTime')}` : 'Абраць час',
50
- // fieldClearLabel: 'Clear value',
48
+ openDatePickerDialogue: (value, utils, formattedDate) => formattedDate || value !== null && utils.isValid(value) ? `Абраць дату, абрана дата ${formattedDate ?? utils.format(value, 'fullDate')}` : 'Абраць дату',
49
+ openTimePickerDialogue: (value, utils, formattedTime) => formattedTime || value !== null && utils.isValid(value) ? `Абраць час, абрыны час ${formattedTime ?? utils.format(value, 'fullTime')}` : 'Абраць час',
50
+ // fieldClearLabel: 'Clear',
51
51
 
52
52
  // Table labels
53
53
  timeTableLabel: 'абраць час',
@@ -31,7 +31,7 @@ const caESPickers = {
31
31
  timePickerToolbarTitle: 'Seleccionar hora',
32
32
  dateRangePickerToolbarTitle: 'Seleccionar rang de dates',
33
33
  // Clock labels
34
- clockLabelText: (view, time, adapter) => `Selecciona ${views[view]}. ${time === null ? 'Hora no seleccionada' : `L'hora seleccionada és ${adapter.format(time, 'fullTime')}`}`,
34
+ clockLabelText: (view, time, utils, formattedTime) => `Selecciona ${views[view]}. ${!formattedTime && (time === null || !utils.isValid(time)) ? 'Hora no seleccionada' : `L'hora seleccionada és ${formattedTime ?? utils.format(time, 'fullTime')}`}`,
35
35
  hoursClockNumberText: hours => `${hours} hores`,
36
36
  minutesClockNumberText: minutes => `${minutes} minuts`,
37
37
  secondsClockNumberText: seconds => `${seconds} segons`,
@@ -43,8 +43,8 @@ const caESPickers = {
43
43
  calendarWeekNumberAriaLabelText: weekNumber => `Setmana ${weekNumber}`,
44
44
  calendarWeekNumberText: weekNumber => `${weekNumber}`,
45
45
  // Open picker labels
46
- openDatePickerDialogue: (value, utils) => value !== null && utils.isValid(value) ? `Tria la data, la data triada és ${utils.format(value, 'fullDate')}` : 'Tria la data',
47
- openTimePickerDialogue: (value, utils) => value !== null && utils.isValid(value) ? `Tria l'hora, l'hora triada és ${utils.format(value, 'fullTime')}` : "Tria l'hora",
46
+ openDatePickerDialogue: (value, utils, formattedDate) => formattedDate || value !== null && utils.isValid(value) ? `Tria la data, la data triada és ${formattedDate ?? utils.format(value, 'fullDate')}` : 'Tria la data',
47
+ openTimePickerDialogue: (value, utils, formattedTime) => formattedTime || value !== null && utils.isValid(value) ? `Tria l'hora, l'hora triada és ${formattedTime ?? utils.format(value, 'fullTime')}` : "Tria l'hora",
48
48
  fieldClearLabel: 'Netega el valor',
49
49
  // Table labels
50
50
  timeTableLabel: 'tria la data',
@@ -33,7 +33,7 @@ const csCZPickers = {
33
33
  timePickerToolbarTitle: 'Vyberte čas',
34
34
  dateRangePickerToolbarTitle: 'Vyberete rozmezí dat',
35
35
  // Clock labels
36
- clockLabelText: (view, time, adapter) => `${timeViews[view] ?? view} vybrány. ${time === null ? 'Není vybrán čas' : `Vybraný čas je ${adapter.format(time, 'fullTime')}`}`,
36
+ clockLabelText: (view, time, utils, formattedTime) => `${timeViews[view] ?? view} vybrány. ${!formattedTime && (time === null || !utils.isValid(time)) ? 'Není vybrán čas' : `Vybraný čas je ${formattedTime ?? utils.format(time, 'fullTime')}`}`,
37
37
  hoursClockNumberText: hours => `${hours} hodin`,
38
38
  minutesClockNumberText: minutes => `${minutes} minut`,
39
39
  secondsClockNumberText: seconds => `${seconds} sekund`,
@@ -45,9 +45,9 @@ const csCZPickers = {
45
45
  calendarWeekNumberAriaLabelText: weekNumber => `${weekNumber} týden v roce`,
46
46
  calendarWeekNumberText: weekNumber => `${weekNumber}`,
47
47
  // Open picker labels
48
- openDatePickerDialogue: (value, utils) => value !== null && utils.isValid(value) ? `Vyberte datum, vybrané datum je ${utils.format(value, 'fullDate')}` : 'Vyberte datum',
49
- openTimePickerDialogue: (value, utils) => value !== null && utils.isValid(value) ? `Vyberte čas, vybraný čas je ${utils.format(value, 'fullTime')}` : 'Vyberte čas',
50
- // fieldClearLabel: 'Clear value',
48
+ openDatePickerDialogue: (value, utils, formattedDate) => formattedDate || value !== null && utils.isValid(value) ? `Vyberte datum, vybrané datum je ${formattedDate ?? utils.format(value, 'fullDate')}` : 'Vyberte datum',
49
+ openTimePickerDialogue: (value, utils, formattedTime) => formattedTime || value !== null && utils.isValid(value) ? `Vyberte čas, vybraný čas je ${formattedTime ?? utils.format(value, 'fullTime')}` : 'Vyberte čas',
50
+ // fieldClearLabel: 'Clear',
51
51
 
52
52
  // Table labels
53
53
  timeTableLabel: 'vyberte čas',
@@ -32,7 +32,7 @@ const daDKPickers = {
32
32
  timePickerToolbarTitle: 'Vælg tidspunkt',
33
33
  dateRangePickerToolbarTitle: 'Vælg datointerval',
34
34
  // Clock labels
35
- clockLabelText: (view, time, adapter) => `Vælg ${timeViews[view] ?? view}. ${time === null ? 'Intet tidspunkt valgt' : `Valgte tidspunkt er ${adapter.format(time, 'fullTime')}`}`,
35
+ clockLabelText: (view, time, utils, formattedTime) => `Vælg ${timeViews[view] ?? view}. ${!formattedTime && (time === null || !utils.isValid(time)) ? 'Intet tidspunkt valgt' : `Valgte tidspunkt er ${formattedTime ?? utils.format(time, 'fullTime')}`}`,
36
36
  hoursClockNumberText: hours => `${hours} timer`,
37
37
  minutesClockNumberText: minutes => `${minutes} minutter`,
38
38
  secondsClockNumberText: seconds => `${seconds} sekunder`,
@@ -44,8 +44,8 @@ const daDKPickers = {
44
44
  calendarWeekNumberAriaLabelText: weekNumber => `Uge ${weekNumber}`,
45
45
  calendarWeekNumberText: weekNumber => `${weekNumber}`,
46
46
  // Open picker labels
47
- openDatePickerDialogue: (value, utils) => value !== null && utils.isValid(value) ? `Vælg dato, valgte dato er ${utils.format(value, 'fullDate')}` : 'Vælg dato',
48
- openTimePickerDialogue: (value, utils) => value !== null && utils.isValid(value) ? `Vælg tidspunkt, valgte tidspunkt er ${utils.format(value, 'fullTime')}` : 'Vælg tidspunkt',
47
+ openDatePickerDialogue: (value, utils, formattedDate) => formattedDate || value !== null && utils.isValid(value) ? `Vælg dato, valgte dato er ${formattedDate ?? utils.format(value, 'fullDate')}` : 'Vælg dato',
48
+ openTimePickerDialogue: (value, utils, formattedTime) => formattedTime || value !== null && utils.isValid(value) ? `Vælg tidspunkt, valgte tidspunkt er ${formattedTime ?? utils.format(value, 'fullTime')}` : 'Vælg tidspunkt',
49
49
  fieldClearLabel: 'ryd felt',
50
50
  // Table labels
51
51
  timeTableLabel: 'vælg tidspunkt',
@@ -32,7 +32,7 @@ const deDEPickers = {
32
32
  timePickerToolbarTitle: 'Uhrzeit auswählen',
33
33
  dateRangePickerToolbarTitle: 'Datumsbereich auswählen',
34
34
  // Clock labels
35
- clockLabelText: (view, time, adapter) => `${timeViews[view] ?? view} auswählen. ${time === null ? 'Keine Uhrzeit ausgewählt' : `Gewählte Uhrzeit ist ${adapter.format(time, 'fullTime')}`}`,
35
+ clockLabelText: (view, time, utils, formattedTime) => `${timeViews[view] ?? view} auswählen. ${!formattedTime && (time === null || !utils.isValid(time)) ? 'Keine Uhrzeit ausgewählt' : `Gewählte Uhrzeit ist ${formattedTime ?? utils.format(time, 'fullTime')}`}`,
36
36
  hoursClockNumberText: hours => `${hours} ${timeViews.hours}`,
37
37
  minutesClockNumberText: minutes => `${minutes} ${timeViews.minutes}`,
38
38
  secondsClockNumberText: seconds => `${seconds} ${timeViews.seconds}`,
@@ -44,8 +44,8 @@ const deDEPickers = {
44
44
  calendarWeekNumberAriaLabelText: weekNumber => `Woche ${weekNumber}`,
45
45
  calendarWeekNumberText: weekNumber => `${weekNumber}`,
46
46
  // Open picker labels
47
- openDatePickerDialogue: (value, utils) => value !== null && utils.isValid(value) ? `Datum auswählen, gewähltes Datum ist ${utils.format(value, 'fullDate')}` : 'Datum auswählen',
48
- openTimePickerDialogue: (value, utils) => value !== null && utils.isValid(value) ? `Uhrzeit auswählen, gewählte Uhrzeit ist ${utils.format(value, 'fullTime')}` : 'Uhrzeit auswählen',
47
+ openDatePickerDialogue: (value, utils, formattedDate) => formattedDate || value !== null && utils.isValid(value) ? `Datum auswählen, gewähltes Datum ist ${formattedDate ?? utils.format(value, 'fullDate')}` : 'Datum auswählen',
48
+ openTimePickerDialogue: (value, utils, formattedTime) => formattedTime || value !== null && utils.isValid(value) ? `Uhrzeit auswählen, gewählte Uhrzeit ist ${formattedTime ?? utils.format(value, 'fullTime')}` : 'Uhrzeit auswählen',
49
49
  fieldClearLabel: 'Wert leeren',
50
50
  // Table labels
51
51
  timeTableLabel: 'Uhrzeit auswählen',
@@ -32,7 +32,7 @@ const elGRPickers = {
32
32
  timePickerToolbarTitle: 'Επιλέξτε ώρα',
33
33
  dateRangePickerToolbarTitle: 'Επιλέξτε εύρος ημερομηνιών',
34
34
  // Clock labels
35
- clockLabelText: (view, time, adapter) => `Επιλέξτε ${views[view]}. ${time === null ? 'Δεν έχει επιλεγεί ώρα' : `Η επιλεγμένη ώρα είναι ${adapter.format(time, 'fullTime')}`}`,
35
+ clockLabelText: (view, time, utils, formattedTime) => `Επιλέξτε ${views[view]}. ${!formattedTime && (time === null || !utils.isValid(time)) ? 'Δεν έχει επιλεγεί ώρα' : `Η επιλεγμένη ώρα είναι ${formattedTime ?? utils.format(time, 'fullTime')}`}`,
36
36
  hoursClockNumberText: hours => `${hours} ώρες`,
37
37
  minutesClockNumberText: minutes => `${minutes} λεπτά`,
38
38
  secondsClockNumberText: seconds => `${seconds} δευτερόλεπτα`,
@@ -44,9 +44,9 @@ const elGRPickers = {
44
44
  calendarWeekNumberAriaLabelText: weekNumber => `Εβδομάδα ${weekNumber}`,
45
45
  calendarWeekNumberText: weekNumber => `${weekNumber}`,
46
46
  // Open picker labels
47
- openDatePickerDialogue: (value, utils) => value !== null && utils.isValid(value) ? `Επιλέξτε ημερομηνία, η επιλεγμένη ημερομηνία είναι ${utils.format(value, 'fullDate')}` : 'Επιλέξτε ημερομηνία',
48
- openTimePickerDialogue: (value, utils) => value !== null && utils.isValid(value) ? `Επιλέξτε ώρα, η επιλεγμένη ώρα είναι ${utils.format(value, 'fullTime')}` : 'Επιλέξτε ώρα',
49
- // fieldClearLabel: 'Clear value',
47
+ openDatePickerDialogue: (value, utils, formattedDate) => formattedDate || value !== null && utils.isValid(value) ? `Επιλέξτε ημερομηνία, η επιλεγμένη ημερομηνία είναι ${formattedDate ?? utils.format(value, 'fullDate')}` : 'Επιλέξτε ημερομηνία',
48
+ openTimePickerDialogue: (value, utils, formattedTime) => formattedTime || value !== null && utils.isValid(value) ? `Επιλέξτε ώρα, η επιλεγμένη ώρα είναι ${formattedTime ?? utils.format(value, 'fullTime')}` : 'Επιλέξτε ώρα',
49
+ // fieldClearLabel: 'Clear',
50
50
 
51
51
  // Table labels
52
52
  timeTableLabel: 'επιλέξτε ώρα',
@@ -28,7 +28,7 @@ const enUSPickers = {
28
28
  timePickerToolbarTitle: 'Select time',
29
29
  dateRangePickerToolbarTitle: 'Select date range',
30
30
  // Clock labels
31
- clockLabelText: (view, time, adapter) => `Select ${view}. ${time === null ? 'No time selected' : `Selected time is ${adapter.format(time, 'fullTime')}`}`,
31
+ clockLabelText: (view, time, utils, formattedTime) => `Select ${view}. ${!formattedTime && (time === null || !utils.isValid(time)) ? 'No time selected' : `Selected time is ${formattedTime ?? utils.format(time, 'fullTime')}`}`,
32
32
  hoursClockNumberText: hours => `${hours} hours`,
33
33
  minutesClockNumberText: minutes => `${minutes} minutes`,
34
34
  secondsClockNumberText: seconds => `${seconds} seconds`,
@@ -40,9 +40,9 @@ const enUSPickers = {
40
40
  calendarWeekNumberAriaLabelText: weekNumber => `Week ${weekNumber}`,
41
41
  calendarWeekNumberText: weekNumber => `${weekNumber}`,
42
42
  // Open picker labels
43
- openDatePickerDialogue: (value, utils) => value !== null && utils.isValid(value) ? `Choose date, selected date is ${utils.format(value, 'fullDate')}` : 'Choose date',
44
- openTimePickerDialogue: (value, utils) => value !== null && utils.isValid(value) ? `Choose time, selected time is ${utils.format(value, 'fullTime')}` : 'Choose time',
45
- fieldClearLabel: 'Clear value',
43
+ openDatePickerDialogue: (value, utils, formattedDate) => formattedDate || value !== null && utils.isValid(value) ? `Choose date, selected date is ${formattedDate ?? utils.format(value, 'fullDate')}` : 'Choose date',
44
+ openTimePickerDialogue: (value, utils, formattedTime) => formattedTime || value !== null && utils.isValid(value) ? `Choose time, selected time is ${formattedTime ?? utils.format(value, 'fullTime')}` : 'Choose time',
45
+ fieldClearLabel: 'Clear',
46
46
  // Table labels
47
47
  timeTableLabel: 'pick time',
48
48
  dateTableLabel: 'pick date',
@@ -31,7 +31,7 @@ const esESPickers = {
31
31
  timePickerToolbarTitle: 'Seleccionar hora',
32
32
  dateRangePickerToolbarTitle: 'Seleccionar rango de fecha',
33
33
  // Clock labels
34
- clockLabelText: (view, time, adapter) => `Seleccione ${views[view]}. ${time === null ? 'No hay hora seleccionada' : `La hora seleccionada es ${adapter.format(time, 'fullTime')}`}`,
34
+ clockLabelText: (view, time, utils, formattedTime) => `Seleccione ${views[view]}. ${!formattedTime && (time === null || !utils.isValid(time)) ? 'No hay hora seleccionada' : `La hora seleccionada es ${formattedTime ?? utils.format(time, 'fullTime')}`}`,
35
35
  hoursClockNumberText: hours => `${hours} horas`,
36
36
  minutesClockNumberText: minutes => `${minutes} minutos`,
37
37
  secondsClockNumberText: seconds => `${seconds} segundos`,
@@ -43,8 +43,8 @@ const esESPickers = {
43
43
  calendarWeekNumberAriaLabelText: weekNumber => `Semana ${weekNumber}`,
44
44
  calendarWeekNumberText: weekNumber => `${weekNumber}`,
45
45
  // Open picker labels
46
- openDatePickerDialogue: (value, utils) => value !== null && utils.isValid(value) ? `Elige fecha, la fecha elegida es ${utils.format(value, 'fullDate')}` : 'Elige fecha',
47
- openTimePickerDialogue: (value, utils) => value !== null && utils.isValid(value) ? `Elige hora, la hora elegida es ${utils.format(value, 'fullTime')}` : 'Elige hora',
46
+ openDatePickerDialogue: (value, utils, formattedDate) => formattedDate || value !== null && utils.isValid(value) ? `Elige fecha, la fecha elegida es ${formattedDate ?? utils.format(value, 'fullDate')}` : 'Elige fecha',
47
+ openTimePickerDialogue: (value, utils, formattedTime) => formattedTime || value !== null && utils.isValid(value) ? `Elige hora, la hora elegida es ${formattedTime ?? utils.format(value, 'fullTime')}` : 'Elige hora',
48
48
  fieldClearLabel: 'Limpiar valor',
49
49
  // Table labels
50
50
  timeTableLabel: 'elige hora',
@@ -32,7 +32,7 @@ const euPickers = {
32
32
  timePickerToolbarTitle: 'Ordua aukeratu',
33
33
  dateRangePickerToolbarTitle: 'Data tartea aukeratu',
34
34
  // Clock labels
35
- clockLabelText: (view, time, adapter) => `Aukeratu ${views[view]}. ${time === null ? 'Ez da ordurik aukertau' : `Aukeratutako ordua ${adapter.format(time, 'fullTime')} da`}`,
35
+ clockLabelText: (view, time, utils, formattedTime) => `Aukeratu ${views[view]}. ${!formattedTime && (time === null || !utils.isValid(time)) ? 'Ez da ordurik aukertau' : `Aukeratutako ordua ${formattedTime ?? utils.format(time, 'fullTime')} da`}`,
36
36
  hoursClockNumberText: hours => `${hours} ordu`,
37
37
  minutesClockNumberText: minutes => `${minutes} minutu`,
38
38
  secondsClockNumberText: seconds => `${seconds} segundu`,
@@ -44,8 +44,8 @@ const euPickers = {
44
44
  calendarWeekNumberAriaLabelText: weekNumber => `${weekNumber} astea`,
45
45
  calendarWeekNumberText: weekNumber => `${weekNumber}`,
46
46
  // Open picker labels
47
- openDatePickerDialogue: (value, utils) => value !== null && utils.isValid(value) ? `Data aukeratu, aukeratutako data ${utils.format(value, 'fullDate')} da` : 'Data aukeratu',
48
- openTimePickerDialogue: (value, utils) => value !== null && utils.isValid(value) ? `Ordua aukeratu, aukeratutako ordua ${utils.format(value, 'fullTime')} da` : 'Ordua aukeratu',
47
+ openDatePickerDialogue: (value, utils, formattedDate) => formattedDate || value !== null && utils.isValid(value) ? `Data aukeratu, aukeratutako data ${formattedDate ?? utils.format(value, 'fullDate')} da` : 'Data aukeratu',
48
+ openTimePickerDialogue: (value, utils, formattedTime) => formattedTime || value !== null && utils.isValid(value) ? `Ordua aukeratu, aukeratutako ordua ${formattedTime ?? utils.format(value, 'fullTime')} da` : 'Ordua aukeratu',
49
49
  fieldClearLabel: 'Balioa garbitu',
50
50
  // Table labels
51
51
  timeTableLabel: 'ordua aukeratu',
@@ -31,7 +31,7 @@ const faIRPickers = {
31
31
  timePickerToolbarTitle: 'ساعت را انتخاب کنید',
32
32
  dateRangePickerToolbarTitle: 'محدوده تاریخ را انتخاب کنید',
33
33
  // Clock labels
34
- clockLabelText: (view, time, adapter) => ` را انتخاب کنید ${timeViews[view]}. ${time === null ? 'هیچ ساعتی انتخاب نشده است' : `ساعت انتخاب ${adapter.format(time, 'fullTime')} می باشد`}`,
34
+ clockLabelText: (view, time, utils, formattedTime) => ` را انتخاب کنید ${timeViews[view]}. ${!formattedTime && (time === null || !utils.isValid(time)) ? 'هیچ ساعتی انتخاب نشده است' : `ساعت انتخاب ${formattedTime ?? utils.format(time, 'fullTime')} می باشد`}`,
35
35
  hoursClockNumberText: hours => `${hours} ساعت‌ها`,
36
36
  minutesClockNumberText: minutes => `${minutes} دقیقه‌ها`,
37
37
  secondsClockNumberText: seconds => `${seconds} ثانیه‌ها`,
@@ -43,8 +43,8 @@ const faIRPickers = {
43
43
  calendarWeekNumberAriaLabelText: weekNumber => `هفته ${weekNumber}`,
44
44
  calendarWeekNumberText: weekNumber => `${weekNumber}`,
45
45
  // Open picker labels
46
- openDatePickerDialogue: (value, utils) => value !== null && utils.isValid(value) ? `تاریخ را انتخاب کنید، تاریخ انتخاب شده ${utils.format(value, 'fullDate')} می‌باشد` : 'تاریخ را انتخاب کنید',
47
- openTimePickerDialogue: (value, utils) => value !== null && utils.isValid(value) ? `ساعت را انتخاب کنید، ساعت انتخاب شده ${utils.format(value, 'fullTime')} می‌باشد` : 'ساعت را انتخاب کنید',
46
+ openDatePickerDialogue: (value, utils, formattedDate) => formattedDate || value !== null && utils.isValid(value) ? `تاریخ را انتخاب کنید، تاریخ انتخاب شده ${formattedDate ?? utils.format(value, 'fullDate')} می‌باشد` : 'تاریخ را انتخاب کنید',
47
+ openTimePickerDialogue: (value, utils, formattedTime) => formattedTime || value !== null && utils.isValid(value) ? `ساعت را انتخاب کنید، ساعت انتخاب شده ${formattedTime ?? utils.format(value, 'fullTime')} می‌باشد` : 'ساعت را انتخاب کنید',
48
48
  fieldClearLabel: 'پاک کردن مقدار',
49
49
  // Table labels
50
50
  timeTableLabel: 'انتخاب تاریخ',
@@ -31,7 +31,7 @@ const fiFIPickers = {
31
31
  timePickerToolbarTitle: 'Valitse aika',
32
32
  dateRangePickerToolbarTitle: 'Valitse aikaväli',
33
33
  // Clock labels
34
- clockLabelText: (view, time, adapter) => `Valitse ${views[view]}. ${time === null ? 'Ei aikaa valittuna' : `Valittu aika on ${adapter.format(time, 'fullTime')}`}`,
34
+ clockLabelText: (view, time, utils, formattedTime) => `Valitse ${views[view]}. ${!formattedTime && (time === null || !utils.isValid(time)) ? 'Ei aikaa valittuna' : `Valittu aika on ${formattedTime ?? utils.format(time, 'fullTime')}`}`,
35
35
  hoursClockNumberText: hours => `${hours} tuntia`,
36
36
  minutesClockNumberText: minutes => `${minutes} minuuttia`,
37
37
  secondsClockNumberText: seconds => `${seconds} sekuntia`,
@@ -43,8 +43,8 @@ const fiFIPickers = {
43
43
  calendarWeekNumberAriaLabelText: weekNumber => `Viikko ${weekNumber}`,
44
44
  calendarWeekNumberText: weekNumber => `${weekNumber}`,
45
45
  // Open picker labels
46
- openDatePickerDialogue: (value, utils) => value !== null && utils.isValid(value) ? `Valitse päivä, valittu päivä on ${utils.format(value, 'fullDate')}` : 'Valitse päivä',
47
- openTimePickerDialogue: (value, utils) => value !== null && utils.isValid(value) ? `Valitse aika, valittu aika on ${utils.format(value, 'fullTime')}` : 'Valitse aika',
46
+ openDatePickerDialogue: (value, utils, formattedDate) => formattedDate || value !== null && utils.isValid(value) ? `Valitse päivä, valittu päivä on ${formattedDate ?? utils.format(value, 'fullDate')}` : 'Valitse päivä',
47
+ openTimePickerDialogue: (value, utils, formattedTime) => formattedTime || value !== null && utils.isValid(value) ? `Valitse aika, valittu aika on ${formattedTime ?? utils.format(value, 'fullTime')}` : 'Valitse aika',
48
48
  fieldClearLabel: 'Tyhjennä arvo',
49
49
  // Table labels
50
50
  timeTableLabel: 'valitse aika',
@@ -31,7 +31,7 @@ const frFRPickers = {
31
31
  timePickerToolbarTitle: "Choisir l'heure",
32
32
  dateRangePickerToolbarTitle: 'Choisir la plage de dates',
33
33
  // Clock labels
34
- clockLabelText: (view, time, adapter) => `Choix des ${views[view]}. ${time === null ? 'Aucune heure choisie' : `L'heure choisie est ${adapter.format(time, 'fullTime')}`}`,
34
+ clockLabelText: (view, time, utils, formattedTime) => `Choix des ${views[view]}. ${!formattedTime && (time === null || !utils.isValid(time)) ? 'Aucune heure choisie' : `L'heure choisie est ${formattedTime ?? utils.format(time, 'fullTime')}`}`,
35
35
  hoursClockNumberText: hours => `${hours} heures`,
36
36
  minutesClockNumberText: minutes => `${minutes} minutes`,
37
37
  secondsClockNumberText: seconds => `${seconds} secondes`,
@@ -43,8 +43,8 @@ const frFRPickers = {
43
43
  calendarWeekNumberAriaLabelText: weekNumber => `Semaine ${weekNumber}`,
44
44
  calendarWeekNumberText: weekNumber => `${weekNumber}`,
45
45
  // Open picker labels
46
- openDatePickerDialogue: (value, utils) => value !== null && utils.isValid(value) ? `Choisir la date, la date sélectionnée est ${utils.format(value, 'fullDate')}` : 'Choisir la date',
47
- openTimePickerDialogue: (value, utils) => value !== null && utils.isValid(value) ? `Choisir l'heure, l'heure sélectionnée est ${utils.format(value, 'fullTime')}` : "Choisir l'heure",
46
+ openDatePickerDialogue: (value, utils, formattedDate) => formattedDate || value !== null && utils.isValid(value) ? `Choisir la date, la date sélectionnée est ${formattedDate ?? utils.format(value, 'fullDate')}` : 'Choisir la date',
47
+ openTimePickerDialogue: (value, utils, formattedTime) => formattedTime ? `Choisir l'heure, l'heure sélectionnée est ${formattedTime ?? utils.format(value, 'fullTime')}` : "Choisir l'heure",
48
48
  fieldClearLabel: 'Effacer la valeur',
49
49
  // Table labels
50
50
  timeTableLabel: "choix de l'heure",
@@ -31,7 +31,7 @@ const heILPickers = {
31
31
  timePickerToolbarTitle: 'בחירת שעה',
32
32
  dateRangePickerToolbarTitle: 'בחירת טווח תאריכים',
33
33
  // Clock labels
34
- clockLabelText: (view, time, adapter) => `בחירת ${views[view]}. ${time === null ? 'לא נבחרה שעה' : `השעה הנבחרת היא ${adapter.format(time, 'fullTime')}`}`,
34
+ clockLabelText: (view, time, utils, formattedTime) => `בחירת ${views[view]}. ${!formattedTime && (time === null || !utils.isValid(time)) ? 'לא נבחרה שעה' : `השעה הנבחרת היא ${formattedTime ?? utils.format(time, 'fullTime')}`}`,
35
35
  hoursClockNumberText: hours => `${hours} שעות`,
36
36
  minutesClockNumberText: minutes => `${minutes} דקות`,
37
37
  secondsClockNumberText: seconds => `${seconds} שניות`,
@@ -43,8 +43,8 @@ const heILPickers = {
43
43
  calendarWeekNumberAriaLabelText: weekNumber => `שבוע ${weekNumber}`,
44
44
  calendarWeekNumberText: weekNumber => `${weekNumber}`,
45
45
  // Open picker labels
46
- openDatePickerDialogue: (value, utils) => value !== null && utils.isValid(value) ? `בחירת תאריך, התאריך שנבחר הוא ${utils.format(value, 'fullDate')}` : 'בחירת תאריך',
47
- openTimePickerDialogue: (value, utils) => value !== null && utils.isValid(value) ? `בחירת שעה, השעה שנבחרה היא ${utils.format(value, 'fullTime')}` : 'בחירת שעה',
46
+ openDatePickerDialogue: (value, utils, formattedDate) => formattedDate || value !== null && utils.isValid(value) ? `בחירת תאריך, התאריך שנבחר הוא ${formattedDate ?? utils.format(value, 'fullDate')}` : 'בחירת תאריך',
47
+ openTimePickerDialogue: (value, utils, formattedTime) => formattedTime || value !== null && utils.isValid(value) ? `בחירת שעה, השעה שנבחרה היא ${formattedTime ?? utils.format(value, 'fullTime')}` : 'בחירת שעה',
48
48
  fieldClearLabel: 'נקה ערך',
49
49
  // Table labels
50
50
  timeTableLabel: 'בחירת שעה',
@@ -32,7 +32,7 @@ const huHUPickers = {
32
32
  timePickerToolbarTitle: 'Idő kiválasztása',
33
33
  dateRangePickerToolbarTitle: 'Dátumhatárok kiválasztása',
34
34
  // Clock labels
35
- clockLabelText: (view, time, adapter) => `${timeViews[view] ?? view} kiválasztása. ${time === null ? 'Nincs kiválasztva idő' : `A kiválasztott idő ${adapter.format(time, 'fullTime')}`}`,
35
+ clockLabelText: (view, time, utils, formattedTime) => `${timeViews[view] ?? view} kiválasztása. ${!formattedTime && (time === null || !utils.isValid(time)) ? 'Nincs kiválasztva idő' : `A kiválasztott idő ${formattedTime ?? utils.format(time, 'fullTime')}`}`,
36
36
  hoursClockNumberText: hours => `${hours} ${timeViews.hours.toLowerCase()}`,
37
37
  minutesClockNumberText: minutes => `${minutes} ${timeViews.minutes.toLowerCase()}`,
38
38
  secondsClockNumberText: seconds => `${seconds} ${timeViews.seconds.toLowerCase()}`,
@@ -44,8 +44,8 @@ const huHUPickers = {
44
44
  calendarWeekNumberAriaLabelText: weekNumber => `${weekNumber}. hét`,
45
45
  calendarWeekNumberText: weekNumber => `${weekNumber}`,
46
46
  // Open picker labels
47
- openDatePickerDialogue: (value, utils) => value !== null && utils.isValid(value) ? `Válasszon dátumot, a kiválasztott dátum: ${utils.format(value, 'fullDate')}` : 'Válasszon dátumot',
48
- openTimePickerDialogue: (value, utils) => value !== null && utils.isValid(value) ? `Válasszon időt, a kiválasztott idő: ${utils.format(value, 'fullTime')}` : 'Válasszon időt',
47
+ openDatePickerDialogue: (value, utils, formattedDate) => formattedDate || value !== null && utils.isValid(value) ? `Válasszon dátumot, a kiválasztott dátum: ${formattedDate ?? utils.format(value, 'fullDate')}` : 'Válasszon dátumot',
48
+ openTimePickerDialogue: (value, utils, formattedTime) => formattedTime || value !== null && utils.isValid(value) ? `Válasszon időt, a kiválasztott idő: ${formattedTime ?? utils.format(value, 'fullTime')}` : 'Válasszon időt',
49
49
  fieldClearLabel: 'Tartalom ürítése',
50
50
  // Table labels
51
51
  timeTableLabel: 'válasszon időt',
@@ -32,7 +32,7 @@ const isISPickers = {
32
32
  timePickerToolbarTitle: 'Velja tíma',
33
33
  dateRangePickerToolbarTitle: 'Velja tímabil',
34
34
  // Clock labels
35
- clockLabelText: (view, time, adapter) => `Velja ${timeViews[view]}. ${time === null ? 'Enginn tími valinn' : `Valinn tími er ${adapter.format(time, 'fullTime')}`}`,
35
+ clockLabelText: (view, time, utils, formattedTime) => `Velja ${timeViews[view]}. ${!formattedTime && (time === null || !utils.isValid(time)) ? 'Enginn tími valinn' : `Valinn tími er ${formattedTime ?? utils.format(time, 'fullTime')}`}`,
36
36
  hoursClockNumberText: hours => `${hours} klukkustundir`,
37
37
  minutesClockNumberText: minutes => `${minutes} mínútur`,
38
38
  secondsClockNumberText: seconds => `${seconds} sekúndur`,
@@ -44,9 +44,9 @@ const isISPickers = {
44
44
  calendarWeekNumberAriaLabelText: weekNumber => `Vika ${weekNumber}`,
45
45
  calendarWeekNumberText: weekNumber => `${weekNumber}`,
46
46
  // Open picker labels
47
- openDatePickerDialogue: (value, utils) => value !== null && utils.isValid(value) ? `Velja dagsetningu, valin dagsetning er ${utils.format(value, 'fullDate')}` : 'Velja dagsetningu',
48
- openTimePickerDialogue: (value, utils) => value !== null && utils.isValid(value) ? `Velja tíma, valinn tími er ${utils.format(value, 'fullTime')}` : 'Velja tíma',
49
- // fieldClearLabel: 'Clear value',
47
+ openDatePickerDialogue: (value, utils, formattedDate) => formattedDate || value !== null && utils.isValid(value) ? `Velja dagsetningu, valin dagsetning er ${formattedDate ?? utils.format(value, 'fullDate')}` : 'Velja dagsetningu',
48
+ openTimePickerDialogue: (value, utils, formattedTime) => formattedTime || value !== null && utils.isValid(value) ? `Velja tíma, valinn tími er ${formattedTime ?? utils.format(value, 'fullTime')}` : 'Velja tíma',
49
+ // fieldClearLabel: 'Clear',
50
50
 
51
51
  // Table labels
52
52
  timeTableLabel: 'velja tíma',
@@ -31,7 +31,7 @@ const itITPickers = {
31
31
  timePickerToolbarTitle: 'Seleziona orario',
32
32
  dateRangePickerToolbarTitle: 'Seleziona intervallo di date',
33
33
  // Clock labels
34
- clockLabelText: (view, time, adapter) => `Seleziona ${views[view]}. ${time === null ? 'Nessun orario selezionato' : `L'ora selezionata è ${adapter.format(time, 'fullTime')}`}`,
34
+ clockLabelText: (view, time, utils, formattedTime) => `Seleziona ${views[view]}. ${!formattedTime && (time === null || !utils.isValid(time)) ? 'Nessun orario selezionato' : `L'ora selezionata è ${formattedTime ?? utils.format(time, 'fullTime')}`}`,
35
35
  hoursClockNumberText: hours => `${hours} ore`,
36
36
  minutesClockNumberText: minutes => `${minutes} minuti`,
37
37
  secondsClockNumberText: seconds => `${seconds} secondi`,
@@ -43,8 +43,8 @@ const itITPickers = {
43
43
  calendarWeekNumberAriaLabelText: weekNumber => `Settimana ${weekNumber}`,
44
44
  calendarWeekNumberText: weekNumber => `${weekNumber}`,
45
45
  // Open picker labels
46
- openDatePickerDialogue: (value, utils) => value !== null && utils.isValid(value) ? `Scegli la data, la data selezionata è ${utils.format(value, 'fullDate')}` : 'Scegli la data',
47
- openTimePickerDialogue: (value, utils) => value !== null && utils.isValid(value) ? `Scegli l'ora, l'ora selezionata è ${utils.format(value, 'fullTime')}` : "Scegli l'ora",
46
+ openDatePickerDialogue: (value, utils, formattedDate) => formattedDate || value !== null && utils.isValid(value) ? `Scegli la data, la data selezionata è ${formattedDate ?? utils.format(value, 'fullDate')}` : 'Scegli la data',
47
+ openTimePickerDialogue: (value, utils, formattedTime) => formattedTime || value !== null && utils.isValid(value) ? `Scegli l'ora, l'ora selezionata è ${formattedTime ?? utils.format(value, 'fullTime')}` : "Scegli l'ora",
48
48
  fieldClearLabel: 'Cancella valore',
49
49
  // Table labels
50
50
  timeTableLabel: "scegli un'ora",
@@ -32,7 +32,7 @@ const jaJPPickers = {
32
32
  timePickerToolbarTitle: '時間を選択',
33
33
  dateRangePickerToolbarTitle: '日付の範囲を選択',
34
34
  // Clock labels
35
- clockLabelText: (view, time, adapter) => `${timeViews[view] ?? view}を選択してください ${time === null ? '時間が選択されていません' : `選択した時間は ${adapter.format(time, 'fullTime')} です`}`,
35
+ clockLabelText: (view, time, utils, formattedTime) => `${timeViews[view] ?? view}を選択してください ${!formattedTime && (time === null || !utils.isValid(time)) ? '時間が選択されていません' : `選択した時間は ${formattedTime ?? utils.format(time, 'fullTime')} です`}`,
36
36
  hoursClockNumberText: hours => `${hours} ${timeViews.hours}`,
37
37
  minutesClockNumberText: minutes => `${minutes} ${timeViews.minutes}`,
38
38
  secondsClockNumberText: seconds => `${seconds} ${timeViews.seconds}`,
@@ -44,8 +44,8 @@ const jaJPPickers = {
44
44
  calendarWeekNumberAriaLabelText: weekNumber => `${weekNumber}週目`,
45
45
  calendarWeekNumberText: weekNumber => `${weekNumber}`,
46
46
  // Open picker labels
47
- openDatePickerDialogue: (value, utils) => value !== null && utils.isValid(value) ? `日付を選択してください。選択した日付は ${utils.format(value, 'fullDate')} です` : '日付を選択してください',
48
- openTimePickerDialogue: (value, utils) => value !== null && utils.isValid(value) ? `時間を選択してください。選択した時間は ${utils.format(value, 'fullTime')} です` : '時間を選択してください',
47
+ openDatePickerDialogue: (value, utils, formattedDate) => formattedDate || value !== null && utils.isValid(value) ? `日付を選択してください。選択した日付は ${formattedDate ?? utils.format(value, 'fullDate')} です` : '日付を選択してください',
48
+ openTimePickerDialogue: (value, utils, formattedTime) => formattedTime || value !== null && utils.isValid(value) ? `時間を選択してください。選択した時間は ${formattedTime ?? utils.format(value, 'fullTime')} です` : '時間を選択してください',
49
49
  fieldClearLabel: 'クリア',
50
50
  // Table labels
51
51
  timeTableLabel: '時間を選択',
@@ -31,7 +31,7 @@ const koKRPickers = {
31
31
  timePickerToolbarTitle: '시간 선택하기',
32
32
  dateRangePickerToolbarTitle: '날짜 범위 선택하기',
33
33
  // Clock labels
34
- clockLabelText: (view, time, adapter) => `${views[view]} 선택하세요. ${time === null ? '시간을 선택하지 않았습니다.' : `현재 선택된 시간은 ${adapter.format(time, 'fullTime')}입니다.`}`,
34
+ clockLabelText: (view, time, utils, formattedTime) => `${views[view]} 선택하세요. ${!formattedTime && (time === null || !utils.isValid(time)) ? '시간을 선택하지 않았습니다.' : `현재 선택된 시간은 ${formattedTime ?? utils.format(time, 'fullTime')}입니다.`}`,
35
35
  hoursClockNumberText: hours => `${hours}시`,
36
36
  minutesClockNumberText: minutes => `${minutes}분`,
37
37
  secondsClockNumberText: seconds => `${seconds}초`,
@@ -43,8 +43,8 @@ const koKRPickers = {
43
43
  calendarWeekNumberAriaLabelText: weekNumber => `${weekNumber}번째 주`,
44
44
  calendarWeekNumberText: weekNumber => `${weekNumber}`,
45
45
  // Open picker labels
46
- openDatePickerDialogue: (value, utils) => value !== null && utils.isValid(value) ? `날짜를 선택하세요. 현재 선택된 날짜는 ${utils.format(value, 'fullDate')}입니다.` : '날짜를 선택하세요',
47
- openTimePickerDialogue: (value, utils) => value !== null && utils.isValid(value) ? `시간을 선택하세요. 현재 선택된 시간은 ${utils.format(value, 'fullTime')}입니다.` : '시간을 선택하세요',
46
+ openDatePickerDialogue: (value, utils, formattedDate) => formattedDate || value !== null && utils.isValid(value) ? `날짜를 선택하세요. 현재 선택된 날짜는 ${formattedDate ?? utils.format(value, 'fullDate')}입니다.` : '날짜를 선택하세요',
47
+ openTimePickerDialogue: (value, utils, formattedTime) => formattedTime || value !== null && utils.isValid(value) ? `시간을 선택하세요. 현재 선택된 시간은 ${formattedTime ?? utils.format(value, 'fullTime')}입니다.` : '시간을 선택하세요',
48
48
  fieldClearLabel: '지우기',
49
49
  // Table labels
50
50
  timeTableLabel: '선택한 시간',
@@ -33,7 +33,7 @@ const kzKZPickers = {
33
33
  timePickerToolbarTitle: 'Уақытты таңдау',
34
34
  dateRangePickerToolbarTitle: 'Кезеңді таңдаңыз',
35
35
  // Clock labels
36
- clockLabelText: (view, time, adapter) => `${timeViews[view]} таңдау. ${time === null ? 'Уақыт таңдалмаған' : `Таңдалған уақыт ${adapter.format(time, 'fullTime')}`}`,
36
+ clockLabelText: (view, time, utils, formattedTime) => `${timeViews[view]} таңдау. ${!formattedTime && (time === null || !utils.isValid(time)) ? 'Уақыт таңдалмаған' : `Таңдалған уақыт ${formattedTime ?? utils.format(time, 'fullTime')}`}`,
37
37
  hoursClockNumberText: hours => `${hours} сағат`,
38
38
  minutesClockNumberText: minutes => `${minutes} минут`,
39
39
  secondsClockNumberText: seconds => `${seconds} секунд`,
@@ -45,9 +45,9 @@ const kzKZPickers = {
45
45
  calendarWeekNumberAriaLabelText: weekNumber => `Апта ${weekNumber}`,
46
46
  calendarWeekNumberText: weekNumber => `${weekNumber}`,
47
47
  // Open picker labels
48
- openDatePickerDialogue: (value, utils) => value !== null && utils.isValid(value) ? `Күнді таңдаңыз, таңдалған күн ${utils.format(value, 'fullDate')}` : 'Күнді таңдаңыз',
49
- openTimePickerDialogue: (value, utils) => value !== null && utils.isValid(value) ? `Уақытты таңдаңыз, таңдалған уақыт ${utils.format(value, 'fullTime')}` : 'Уақытты таңдаңыз',
50
- // fieldClearLabel: 'Clear value',
48
+ openDatePickerDialogue: (value, utils, formattedDate) => formattedDate || value !== null && utils.isValid(value) ? `Күнді таңдаңыз, таңдалған күн ${formattedDate ?? utils.format(value, 'fullDate')}` : 'Күнді таңдаңыз',
49
+ openTimePickerDialogue: (value, utils, formattedTime) => formattedTime || value !== null && utils.isValid(value) ? `Уақытты таңдаңыз, таңдалған уақыт ${formattedTime ?? utils.format(value, 'fullTime')}` : 'Уақытты таңдаңыз',
50
+ // fieldClearLabel: 'Clear',
51
51
 
52
52
  // Table labels
53
53
  timeTableLabel: 'уақытты таңдау',