@mui/x-date-pickers 9.5.0 → 9.7.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 (547) hide show
  1. package/AdapterDateFns/AdapterDateFns.d.mts +2 -2
  2. package/AdapterDateFns/AdapterDateFns.d.ts +2 -2
  3. package/AdapterDateFnsBase/AdapterDateFnsBase.d.mts +2 -2
  4. package/AdapterDateFnsBase/AdapterDateFnsBase.d.ts +2 -2
  5. package/AdapterDateFnsJalali/AdapterDateFnsJalali.d.mts +2 -2
  6. package/AdapterDateFnsJalali/AdapterDateFnsJalali.d.ts +2 -2
  7. package/AdapterDateFnsJalaliV2/AdapterDateFnsJalaliV2.d.mts +1 -1
  8. package/AdapterDateFnsJalaliV2/AdapterDateFnsJalaliV2.d.ts +1 -1
  9. package/AdapterDateFnsV2/AdapterDateFnsV2.d.mts +1 -1
  10. package/AdapterDateFnsV2/AdapterDateFnsV2.d.ts +1 -1
  11. package/AdapterDayjs/AdapterDayjs.d.mts +29 -29
  12. package/AdapterDayjs/AdapterDayjs.d.ts +29 -29
  13. package/AdapterDayjs/AdapterDayjs.mjs +1 -0
  14. package/AdapterDayjsBuddhist/AdapterDayjsBuddhist.d.mts +4 -4
  15. package/AdapterDayjsBuddhist/AdapterDayjsBuddhist.d.ts +4 -4
  16. package/AdapterDayjsBuddhist/AdapterDayjsBuddhist.mjs +1 -0
  17. package/AdapterLuxon/AdapterLuxon.d.mts +1 -1
  18. package/AdapterLuxon/AdapterLuxon.d.ts +1 -1
  19. package/AdapterMoment/AdapterMoment.d.mts +29 -28
  20. package/AdapterMoment/AdapterMoment.d.ts +29 -28
  21. package/AdapterMomentHijri/AdapterMomentHijri.d.mts +15 -13
  22. package/AdapterMomentHijri/AdapterMomentHijri.d.ts +15 -13
  23. package/AdapterMomentHijri/AdapterMomentHijri.js +3 -0
  24. package/AdapterMomentHijri/AdapterMomentHijri.mjs +4 -0
  25. package/AdapterMomentJalaali/AdapterMomentJalaali.d.mts +13 -12
  26. package/AdapterMomentJalaali/AdapterMomentJalaali.d.ts +13 -12
  27. package/AdapterMomentJalaali/AdapterMomentJalaali.mjs +1 -0
  28. package/CHANGELOG.md +261 -0
  29. package/DateCalendar/DateCalendar.d.mts +1 -1
  30. package/DateCalendar/DateCalendar.d.ts +1 -1
  31. package/DateCalendar/DateCalendar.js +1 -1
  32. package/DateCalendar/DateCalendar.mjs +1 -1
  33. package/DateCalendar/DateCalendar.types.d.mts +16 -16
  34. package/DateCalendar/DateCalendar.types.d.ts +16 -16
  35. package/DateCalendar/DayCalendar.d.mts +9 -9
  36. package/DateCalendar/DayCalendar.d.ts +9 -9
  37. package/DateCalendar/PickersFadeTransitionGroup.d.mts +1 -1
  38. package/DateCalendar/PickersFadeTransitionGroup.d.ts +1 -1
  39. package/DateCalendar/PickersSlideTransition.d.mts +3 -3
  40. package/DateCalendar/PickersSlideTransition.d.ts +3 -3
  41. package/DateCalendar/useCalendarState.d.mts +3 -3
  42. package/DateCalendar/useCalendarState.d.ts +3 -3
  43. package/DateCalendar/useIsDateDisabled.d.mts +3 -3
  44. package/DateCalendar/useIsDateDisabled.d.ts +3 -3
  45. package/DateField/DateField.d.mts +1 -1
  46. package/DateField/DateField.d.ts +1 -1
  47. package/DateField/DateField.js +2 -1
  48. package/DateField/DateField.mjs +2 -1
  49. package/DateField/DateField.types.d.mts +6 -6
  50. package/DateField/DateField.types.d.ts +6 -6
  51. package/DateField/useDateField.d.mts +1 -1
  52. package/DateField/useDateField.d.ts +1 -1
  53. package/DatePicker/DatePicker.d.mts +1 -1
  54. package/DatePicker/DatePicker.d.ts +1 -1
  55. package/DatePicker/DatePicker.js +1 -1
  56. package/DatePicker/DatePicker.mjs +1 -1
  57. package/DatePicker/DatePicker.types.d.mts +4 -4
  58. package/DatePicker/DatePicker.types.d.ts +4 -4
  59. package/DatePicker/DatePickerToolbar.d.mts +2 -2
  60. package/DatePicker/DatePickerToolbar.d.ts +2 -2
  61. package/DatePicker/DatePickerToolbar.js +1 -1
  62. package/DatePicker/DatePickerToolbar.mjs +1 -1
  63. package/DatePicker/shared.d.mts +10 -10
  64. package/DatePicker/shared.d.ts +10 -10
  65. package/DateTimeField/DateTimeField.d.mts +1 -1
  66. package/DateTimeField/DateTimeField.d.ts +1 -1
  67. package/DateTimeField/DateTimeField.js +2 -1
  68. package/DateTimeField/DateTimeField.mjs +2 -1
  69. package/DateTimeField/DateTimeField.types.d.mts +7 -7
  70. package/DateTimeField/DateTimeField.types.d.ts +7 -7
  71. package/DateTimeField/useDateTimeField.d.mts +1 -1
  72. package/DateTimeField/useDateTimeField.d.ts +1 -1
  73. package/DateTimePicker/DateTimePicker.d.mts +1 -1
  74. package/DateTimePicker/DateTimePicker.d.ts +1 -1
  75. package/DateTimePicker/DateTimePicker.js +1 -1
  76. package/DateTimePicker/DateTimePicker.mjs +1 -1
  77. package/DateTimePicker/DateTimePicker.types.d.mts +5 -5
  78. package/DateTimePicker/DateTimePicker.types.d.ts +5 -5
  79. package/DateTimePicker/DateTimePickerTabs.d.mts +2 -2
  80. package/DateTimePicker/DateTimePickerTabs.d.ts +2 -2
  81. package/DateTimePicker/DateTimePickerTabs.js +1 -1
  82. package/DateTimePicker/DateTimePickerTabs.mjs +1 -1
  83. package/DateTimePicker/DateTimePickerToolbar.d.mts +5 -5
  84. package/DateTimePicker/DateTimePickerToolbar.d.ts +5 -5
  85. package/DateTimePicker/DateTimePickerToolbar.js +1 -1
  86. package/DateTimePicker/DateTimePickerToolbar.mjs +1 -1
  87. package/DateTimePicker/shared.d.mts +15 -15
  88. package/DateTimePicker/shared.d.ts +15 -15
  89. package/DayCalendarSkeleton/DayCalendarSkeleton.d.mts +3 -3
  90. package/DayCalendarSkeleton/DayCalendarSkeleton.d.ts +3 -3
  91. package/DayCalendarSkeleton/DayCalendarSkeleton.js +1 -1
  92. package/DayCalendarSkeleton/DayCalendarSkeleton.mjs +1 -1
  93. package/DesktopDatePicker/DesktopDatePicker.d.mts +1 -1
  94. package/DesktopDatePicker/DesktopDatePicker.d.ts +1 -1
  95. package/DesktopDatePicker/DesktopDatePicker.js +2 -2
  96. package/DesktopDatePicker/DesktopDatePicker.mjs +2 -2
  97. package/DesktopDatePicker/DesktopDatePicker.types.d.mts +4 -4
  98. package/DesktopDatePicker/DesktopDatePicker.types.d.ts +4 -4
  99. package/DesktopDateTimePicker/DesktopDateTimePicker.d.mts +1 -1
  100. package/DesktopDateTimePicker/DesktopDateTimePicker.d.ts +1 -1
  101. package/DesktopDateTimePicker/DesktopDateTimePicker.js +2 -2
  102. package/DesktopDateTimePicker/DesktopDateTimePicker.mjs +2 -2
  103. package/DesktopDateTimePicker/DesktopDateTimePicker.types.d.mts +6 -6
  104. package/DesktopDateTimePicker/DesktopDateTimePicker.types.d.ts +6 -6
  105. package/DesktopDateTimePicker/DesktopDateTimePickerLayout.d.mts +2 -2
  106. package/DesktopDateTimePicker/DesktopDateTimePickerLayout.d.ts +2 -2
  107. package/DesktopDateTimePicker/DesktopDateTimePickerLayout.js +1 -1
  108. package/DesktopDateTimePicker/DesktopDateTimePickerLayout.mjs +1 -1
  109. package/DesktopTimePicker/DesktopTimePicker.d.mts +1 -1
  110. package/DesktopTimePicker/DesktopTimePicker.d.ts +1 -1
  111. package/DesktopTimePicker/DesktopTimePicker.js +2 -2
  112. package/DesktopTimePicker/DesktopTimePicker.mjs +2 -2
  113. package/DesktopTimePicker/DesktopTimePicker.types.d.mts +8 -8
  114. package/DesktopTimePicker/DesktopTimePicker.types.d.ts +8 -8
  115. package/DigitalClock/DigitalClock.d.mts +1 -1
  116. package/DigitalClock/DigitalClock.d.ts +1 -1
  117. package/DigitalClock/DigitalClock.js +1 -1
  118. package/DigitalClock/DigitalClock.mjs +1 -1
  119. package/DigitalClock/DigitalClock.types.d.mts +6 -6
  120. package/DigitalClock/DigitalClock.types.d.ts +6 -6
  121. package/LocalizationProvider/LocalizationProvider.d.mts +2 -2
  122. package/LocalizationProvider/LocalizationProvider.d.ts +2 -2
  123. package/LocalizationProvider/LocalizationProvider.js +1 -1
  124. package/LocalizationProvider/LocalizationProvider.mjs +1 -1
  125. package/MobileDatePicker/MobileDatePicker.d.mts +1 -1
  126. package/MobileDatePicker/MobileDatePicker.d.ts +1 -1
  127. package/MobileDatePicker/MobileDatePicker.js +2 -2
  128. package/MobileDatePicker/MobileDatePicker.mjs +2 -2
  129. package/MobileDatePicker/MobileDatePicker.types.d.mts +3 -3
  130. package/MobileDatePicker/MobileDatePicker.types.d.ts +3 -3
  131. package/MobileDateTimePicker/MobileDateTimePicker.d.mts +1 -1
  132. package/MobileDateTimePicker/MobileDateTimePicker.d.ts +1 -1
  133. package/MobileDateTimePicker/MobileDateTimePicker.js +2 -2
  134. package/MobileDateTimePicker/MobileDateTimePicker.mjs +2 -2
  135. package/MobileDateTimePicker/MobileDateTimePicker.types.d.mts +3 -3
  136. package/MobileDateTimePicker/MobileDateTimePicker.types.d.ts +3 -3
  137. package/MobileTimePicker/MobileTimePicker.d.mts +2 -2
  138. package/MobileTimePicker/MobileTimePicker.d.ts +2 -2
  139. package/MobileTimePicker/MobileTimePicker.js +2 -2
  140. package/MobileTimePicker/MobileTimePicker.mjs +2 -2
  141. package/MobileTimePicker/MobileTimePicker.types.d.mts +5 -5
  142. package/MobileTimePicker/MobileTimePicker.types.d.ts +5 -5
  143. package/MonthCalendar/MonthCalendar.d.mts +2 -2
  144. package/MonthCalendar/MonthCalendar.d.ts +2 -2
  145. package/MonthCalendar/MonthCalendar.js +1 -1
  146. package/MonthCalendar/MonthCalendar.mjs +1 -1
  147. package/MonthCalendar/MonthCalendar.types.d.mts +8 -8
  148. package/MonthCalendar/MonthCalendar.types.d.ts +8 -8
  149. package/MonthCalendar/MonthCalendarButton.d.mts +3 -3
  150. package/MonthCalendar/MonthCalendarButton.d.ts +3 -3
  151. package/MultiSectionDigitalClock/MultiSectionDigitalClock.d.mts +1 -1
  152. package/MultiSectionDigitalClock/MultiSectionDigitalClock.d.ts +1 -1
  153. package/MultiSectionDigitalClock/MultiSectionDigitalClock.js +1 -1
  154. package/MultiSectionDigitalClock/MultiSectionDigitalClock.mjs +1 -1
  155. package/MultiSectionDigitalClock/MultiSectionDigitalClock.types.d.mts +7 -7
  156. package/MultiSectionDigitalClock/MultiSectionDigitalClock.types.d.ts +7 -7
  157. package/MultiSectionDigitalClock/MultiSectionDigitalClock.utils.d.mts +2 -2
  158. package/MultiSectionDigitalClock/MultiSectionDigitalClock.utils.d.ts +2 -2
  159. package/MultiSectionDigitalClock/MultiSectionDigitalClockSection.d.mts +3 -3
  160. package/MultiSectionDigitalClock/MultiSectionDigitalClockSection.d.ts +3 -3
  161. package/PickerDay/PickerDay.d.mts +1 -1
  162. package/PickerDay/PickerDay.d.ts +1 -1
  163. package/PickerDay/PickerDay.js +1 -1
  164. package/PickerDay/PickerDay.mjs +1 -1
  165. package/PickerDay/PickerDay.types.d.mts +5 -5
  166. package/PickerDay/PickerDay.types.d.ts +5 -5
  167. package/PickersActionBar/PickersActionBar.d.mts +1 -1
  168. package/PickersActionBar/PickersActionBar.d.ts +1 -1
  169. package/PickersActionBar/PickersActionBar.js +1 -1
  170. package/PickersActionBar/PickersActionBar.mjs +1 -1
  171. package/PickersCalendarHeader/PickersCalendarHeader.d.mts +1 -1
  172. package/PickersCalendarHeader/PickersCalendarHeader.d.ts +1 -1
  173. package/PickersCalendarHeader/PickersCalendarHeader.js +1 -1
  174. package/PickersCalendarHeader/PickersCalendarHeader.mjs +1 -1
  175. package/PickersCalendarHeader/PickersCalendarHeader.types.d.mts +9 -9
  176. package/PickersCalendarHeader/PickersCalendarHeader.types.d.ts +9 -9
  177. package/PickersLayout/PickersLayout.d.mts +2 -2
  178. package/PickersLayout/PickersLayout.d.ts +2 -2
  179. package/PickersLayout/PickersLayout.js +1 -1
  180. package/PickersLayout/PickersLayout.mjs +1 -1
  181. package/PickersLayout/PickersLayout.types.d.mts +11 -11
  182. package/PickersLayout/PickersLayout.types.d.ts +11 -11
  183. package/PickersLayout/usePickerLayout.d.mts +2 -2
  184. package/PickersLayout/usePickerLayout.d.ts +2 -2
  185. package/PickersSectionList/PickersSectionList.js +2 -2
  186. package/PickersSectionList/PickersSectionList.mjs +2 -2
  187. package/PickersSectionList/PickersSectionList.types.d.mts +4 -4
  188. package/PickersSectionList/PickersSectionList.types.d.ts +4 -4
  189. package/PickersShortcuts/PickersShortcuts.d.mts +3 -3
  190. package/PickersShortcuts/PickersShortcuts.d.ts +3 -3
  191. package/PickersShortcuts/PickersShortcuts.js +1 -1
  192. package/PickersShortcuts/PickersShortcuts.mjs +1 -1
  193. package/PickersTextField/PickersFilledInput/PickersFilledInput.d.mts +2 -2
  194. package/PickersTextField/PickersFilledInput/PickersFilledInput.d.ts +2 -2
  195. package/PickersTextField/PickersFilledInput/PickersFilledInput.js +2 -1
  196. package/PickersTextField/PickersFilledInput/PickersFilledInput.mjs +2 -1
  197. package/PickersTextField/PickersFilledInput/pickersFilledInputClasses.d.mts +1 -1
  198. package/PickersTextField/PickersFilledInput/pickersFilledInputClasses.d.ts +1 -1
  199. package/PickersTextField/PickersInput/PickersInput.d.mts +2 -2
  200. package/PickersTextField/PickersInput/PickersInput.d.ts +2 -2
  201. package/PickersTextField/PickersInput/PickersInput.js +2 -1
  202. package/PickersTextField/PickersInput/PickersInput.mjs +2 -1
  203. package/PickersTextField/PickersInput/pickersInputClasses.d.mts +1 -1
  204. package/PickersTextField/PickersInput/pickersInputClasses.d.ts +1 -1
  205. package/PickersTextField/PickersInputBase/PickersInputBase.d.mts +2 -2
  206. package/PickersTextField/PickersInputBase/PickersInputBase.d.ts +2 -2
  207. package/PickersTextField/PickersInputBase/PickersInputBase.js +17 -2
  208. package/PickersTextField/PickersInputBase/PickersInputBase.mjs +17 -2
  209. package/PickersTextField/PickersInputBase/PickersInputBase.types.d.mts +6 -5
  210. package/PickersTextField/PickersInputBase/PickersInputBase.types.d.ts +6 -5
  211. package/PickersTextField/PickersOutlinedInput/PickersOutlinedInput.d.mts +1 -1
  212. package/PickersTextField/PickersOutlinedInput/PickersOutlinedInput.d.ts +1 -1
  213. package/PickersTextField/PickersOutlinedInput/PickersOutlinedInput.js +13 -9
  214. package/PickersTextField/PickersOutlinedInput/PickersOutlinedInput.mjs +13 -9
  215. package/PickersTextField/PickersOutlinedInput/pickersOutlinedInputClasses.d.mts +1 -1
  216. package/PickersTextField/PickersOutlinedInput/pickersOutlinedInputClasses.d.ts +1 -1
  217. package/PickersTextField/PickersTextField.js +5 -2
  218. package/PickersTextField/PickersTextField.mjs +5 -2
  219. package/PickersTextField/PickersTextField.types.d.mts +6 -6
  220. package/PickersTextField/PickersTextField.types.d.ts +6 -6
  221. package/PickersTextField/usePickerTextFieldOwnerState.d.mts +1 -1
  222. package/PickersTextField/usePickerTextFieldOwnerState.d.ts +1 -1
  223. package/StaticDatePicker/StaticDatePicker.d.mts +1 -1
  224. package/StaticDatePicker/StaticDatePicker.d.ts +1 -1
  225. package/StaticDatePicker/StaticDatePicker.js +2 -2
  226. package/StaticDatePicker/StaticDatePicker.mjs +2 -2
  227. package/StaticDatePicker/StaticDatePicker.types.d.mts +3 -3
  228. package/StaticDatePicker/StaticDatePicker.types.d.ts +3 -3
  229. package/StaticDateTimePicker/StaticDateTimePicker.d.mts +1 -1
  230. package/StaticDateTimePicker/StaticDateTimePicker.d.ts +1 -1
  231. package/StaticDateTimePicker/StaticDateTimePicker.js +2 -2
  232. package/StaticDateTimePicker/StaticDateTimePicker.mjs +2 -2
  233. package/StaticDateTimePicker/StaticDateTimePicker.types.d.mts +3 -3
  234. package/StaticDateTimePicker/StaticDateTimePicker.types.d.ts +3 -3
  235. package/StaticTimePicker/StaticTimePicker.d.mts +1 -1
  236. package/StaticTimePicker/StaticTimePicker.d.ts +1 -1
  237. package/StaticTimePicker/StaticTimePicker.js +2 -2
  238. package/StaticTimePicker/StaticTimePicker.mjs +2 -2
  239. package/StaticTimePicker/StaticTimePicker.types.d.mts +4 -4
  240. package/StaticTimePicker/StaticTimePicker.types.d.ts +4 -4
  241. package/TimeClock/Clock.d.mts +5 -5
  242. package/TimeClock/Clock.d.ts +5 -5
  243. package/TimeClock/Clock.js +76 -30
  244. package/TimeClock/Clock.mjs +76 -30
  245. package/TimeClock/ClockNumber.d.mts +2 -2
  246. package/TimeClock/ClockNumber.d.ts +2 -2
  247. package/TimeClock/ClockNumbers.d.mts +1 -1
  248. package/TimeClock/ClockNumbers.d.ts +1 -1
  249. package/TimeClock/ClockPointer.d.mts +2 -2
  250. package/TimeClock/ClockPointer.d.ts +2 -2
  251. package/TimeClock/TimeClock.d.mts +1 -1
  252. package/TimeClock/TimeClock.d.ts +1 -1
  253. package/TimeClock/TimeClock.js +1 -1
  254. package/TimeClock/TimeClock.mjs +1 -1
  255. package/TimeClock/TimeClock.types.d.mts +5 -5
  256. package/TimeClock/TimeClock.types.d.ts +5 -5
  257. package/TimeField/TimeField.d.mts +1 -1
  258. package/TimeField/TimeField.d.ts +1 -1
  259. package/TimeField/TimeField.js +2 -1
  260. package/TimeField/TimeField.mjs +2 -1
  261. package/TimeField/TimeField.types.d.mts +7 -7
  262. package/TimeField/TimeField.types.d.ts +7 -7
  263. package/TimeField/useTimeField.d.mts +1 -1
  264. package/TimeField/useTimeField.d.ts +1 -1
  265. package/TimePicker/TimePicker.d.mts +1 -1
  266. package/TimePicker/TimePicker.d.ts +1 -1
  267. package/TimePicker/TimePicker.js +1 -1
  268. package/TimePicker/TimePicker.mjs +1 -1
  269. package/TimePicker/TimePicker.types.d.mts +4 -4
  270. package/TimePicker/TimePicker.types.d.ts +4 -4
  271. package/TimePicker/TimePickerToolbar.d.mts +2 -2
  272. package/TimePicker/TimePickerToolbar.d.ts +2 -2
  273. package/TimePicker/TimePickerToolbar.js +1 -1
  274. package/TimePicker/TimePickerToolbar.mjs +1 -1
  275. package/TimePicker/shared.d.mts +11 -11
  276. package/TimePicker/shared.d.ts +11 -11
  277. package/YearCalendar/YearCalendar.d.mts +1 -1
  278. package/YearCalendar/YearCalendar.d.ts +1 -1
  279. package/YearCalendar/YearCalendar.js +1 -1
  280. package/YearCalendar/YearCalendar.mjs +1 -1
  281. package/YearCalendar/YearCalendar.types.d.mts +8 -8
  282. package/YearCalendar/YearCalendar.types.d.ts +8 -8
  283. package/YearCalendar/YearCalendarButton.d.mts +3 -3
  284. package/YearCalendar/YearCalendarButton.d.ts +3 -3
  285. package/dateViewRenderers/dateViewRenderers.d.mts +3 -3
  286. package/dateViewRenderers/dateViewRenderers.d.ts +3 -3
  287. package/hooks/useIsValidValue.d.mts +1 -1
  288. package/hooks/useIsValidValue.d.ts +1 -1
  289. package/hooks/usePickerActionsContext.d.mts +2 -2
  290. package/hooks/usePickerActionsContext.d.ts +2 -2
  291. package/hooks/usePickerAdapter.d.mts +2 -2
  292. package/hooks/usePickerAdapter.d.ts +2 -2
  293. package/hooks/usePickerContext.d.mts +1 -1
  294. package/hooks/usePickerContext.d.ts +1 -1
  295. package/hooks/useSplitFieldProps.d.mts +1 -1
  296. package/hooks/useSplitFieldProps.d.ts +1 -1
  297. package/index.js +1 -1
  298. package/index.mjs +1 -1
  299. package/internals/components/PickerFieldUI.d.mts +7 -7
  300. package/internals/components/PickerFieldUI.d.ts +7 -7
  301. package/internals/components/PickerPopper/PickerPopper.d.mts +7 -7
  302. package/internals/components/PickerPopper/PickerPopper.d.ts +7 -7
  303. package/internals/components/PickerProvider.d.mts +6 -6
  304. package/internals/components/PickerProvider.d.ts +6 -6
  305. package/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.d.mts +1 -1
  306. package/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.d.ts +1 -1
  307. package/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.types.d.mts +6 -6
  308. package/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.types.d.ts +6 -6
  309. package/internals/components/PickersModalDialog.d.mts +3 -3
  310. package/internals/components/PickersModalDialog.d.ts +3 -3
  311. package/internals/components/PickersToolbar.d.mts +2 -2
  312. package/internals/components/PickersToolbar.d.ts +2 -2
  313. package/internals/components/PickersToolbarButton.d.mts +4 -4
  314. package/internals/components/PickersToolbarButton.d.ts +4 -4
  315. package/internals/components/PickersToolbarText.d.mts +2 -2
  316. package/internals/components/PickersToolbarText.d.ts +2 -2
  317. package/internals/demo/DemoContainer.d.mts +2 -2
  318. package/internals/demo/DemoContainer.d.ts +2 -2
  319. package/internals/hooks/PickerDay.types.d.mts +1 -1
  320. package/internals/hooks/PickerDay.types.d.ts +1 -1
  321. package/internals/hooks/date-helpers-hooks.d.mts +3 -3
  322. package/internals/hooks/date-helpers-hooks.d.ts +3 -3
  323. package/internals/hooks/useClockReferenceDate.d.mts +2 -2
  324. package/internals/hooks/useClockReferenceDate.d.ts +2 -2
  325. package/internals/hooks/useControlledValue.d.mts +2 -3
  326. package/internals/hooks/useControlledValue.d.ts +2 -3
  327. package/internals/hooks/useDesktopPicker/useDesktopPicker.d.mts +2 -2
  328. package/internals/hooks/useDesktopPicker/useDesktopPicker.d.ts +2 -2
  329. package/internals/hooks/useDesktopPicker/useDesktopPicker.types.d.mts +10 -10
  330. package/internals/hooks/useDesktopPicker/useDesktopPicker.types.d.ts +10 -10
  331. package/internals/hooks/useField/buildSectionsFromFormat.d.mts +2 -2
  332. package/internals/hooks/useField/buildSectionsFromFormat.d.ts +2 -2
  333. package/internals/hooks/useField/syncSelectionToDOM.d.mts +3 -3
  334. package/internals/hooks/useField/syncSelectionToDOM.d.ts +3 -3
  335. package/internals/hooks/useField/useField.d.mts +2 -2
  336. package/internals/hooks/useField/useField.d.ts +2 -2
  337. package/internals/hooks/useField/useField.js +18 -0
  338. package/internals/hooks/useField/useField.mjs +18 -0
  339. package/internals/hooks/useField/useField.types.d.mts +5 -4
  340. package/internals/hooks/useField/useField.types.d.ts +5 -4
  341. package/internals/hooks/useField/useField.utils.d.mts +3 -4
  342. package/internals/hooks/useField/useField.utils.d.ts +3 -4
  343. package/internals/hooks/useField/useField.utils.js +1 -3
  344. package/internals/hooks/useField/useField.utils.mjs +0 -1
  345. package/internals/hooks/useField/useFieldCharacterEditing.d.mts +2 -2
  346. package/internals/hooks/useField/useFieldCharacterEditing.d.ts +2 -2
  347. package/internals/hooks/useField/useFieldHiddenInputProps.d.mts +2 -2
  348. package/internals/hooks/useField/useFieldHiddenInputProps.d.ts +2 -2
  349. package/internals/hooks/useField/useFieldInternalPropsWithDefaults.d.mts +1 -1
  350. package/internals/hooks/useField/useFieldInternalPropsWithDefaults.d.ts +1 -1
  351. package/internals/hooks/useField/useFieldRootProps.d.mts +5 -4
  352. package/internals/hooks/useField/useFieldRootProps.d.ts +5 -4
  353. package/internals/hooks/useField/useFieldRootProps.js +95 -8
  354. package/internals/hooks/useField/useFieldRootProps.mjs +95 -8
  355. package/internals/hooks/useField/useFieldSectionContainerProps.d.mts +2 -2
  356. package/internals/hooks/useField/useFieldSectionContainerProps.d.ts +2 -2
  357. package/internals/hooks/useField/useFieldSectionContainerProps.js +35 -4
  358. package/internals/hooks/useField/useFieldSectionContainerProps.mjs +34 -4
  359. package/internals/hooks/useField/useFieldSectionContentProps.d.mts +6 -6
  360. package/internals/hooks/useField/useFieldSectionContentProps.d.ts +6 -6
  361. package/internals/hooks/useField/useFieldSectionContentProps.js +3 -1
  362. package/internals/hooks/useField/useFieldSectionContentProps.mjs +3 -1
  363. package/internals/hooks/useField/useFieldState.d.mts +3 -3
  364. package/internals/hooks/useField/useFieldState.d.ts +3 -3
  365. package/internals/hooks/useFieldOwnerState.d.mts +2 -2
  366. package/internals/hooks/useFieldOwnerState.d.ts +2 -2
  367. package/internals/hooks/useMobilePicker/useMobilePicker.d.mts +2 -2
  368. package/internals/hooks/useMobilePicker/useMobilePicker.d.ts +2 -2
  369. package/internals/hooks/useMobilePicker/useMobilePicker.types.d.mts +10 -10
  370. package/internals/hooks/useMobilePicker/useMobilePicker.types.d.ts +10 -10
  371. package/internals/hooks/useNullableFieldPrivateContext.d.mts +2 -2
  372. package/internals/hooks/useNullableFieldPrivateContext.d.ts +2 -2
  373. package/internals/hooks/usePicker/hooks/useOrientation.d.mts +1 -1
  374. package/internals/hooks/usePicker/hooks/useOrientation.d.ts +1 -1
  375. package/internals/hooks/usePicker/hooks/useValueAndOpenStates.d.mts +5 -5
  376. package/internals/hooks/usePicker/hooks/useValueAndOpenStates.d.ts +5 -5
  377. package/internals/hooks/usePicker/usePicker.d.mts +2 -2
  378. package/internals/hooks/usePicker/usePicker.d.ts +2 -2
  379. package/internals/hooks/usePicker/usePicker.types.d.mts +10 -10
  380. package/internals/hooks/usePicker/usePicker.types.d.ts +10 -10
  381. package/internals/hooks/usePickerDayOwnerState.d.mts +2 -2
  382. package/internals/hooks/usePickerDayOwnerState.d.ts +2 -2
  383. package/internals/hooks/useReduceAnimations.js +4 -1
  384. package/internals/hooks/useReduceAnimations.mjs +4 -1
  385. package/internals/hooks/useStaticPicker/useStaticPicker.d.mts +2 -2
  386. package/internals/hooks/useStaticPicker/useStaticPicker.d.ts +2 -2
  387. package/internals/hooks/useStaticPicker/useStaticPicker.types.d.mts +5 -5
  388. package/internals/hooks/useStaticPicker/useStaticPicker.types.d.ts +5 -5
  389. package/internals/hooks/useToolbarOwnerState.d.mts +1 -1
  390. package/internals/hooks/useToolbarOwnerState.d.ts +1 -1
  391. package/internals/hooks/useUtils.d.mts +1 -1
  392. package/internals/hooks/useUtils.d.ts +1 -1
  393. package/internals/hooks/useViews.d.mts +4 -4
  394. package/internals/hooks/useViews.d.ts +4 -4
  395. package/internals/models/common.d.mts +1 -1
  396. package/internals/models/common.d.ts +1 -1
  397. package/internals/models/fields.d.mts +1 -1
  398. package/internals/models/fields.d.ts +1 -1
  399. package/internals/models/helpers.d.mts +2 -2
  400. package/internals/models/helpers.d.ts +2 -2
  401. package/internals/models/manager.d.mts +1 -1
  402. package/internals/models/manager.d.ts +1 -1
  403. package/internals/models/props/basePickerProps.d.mts +7 -8
  404. package/internals/models/props/basePickerProps.d.ts +7 -8
  405. package/internals/models/props/tabs.d.mts +2 -2
  406. package/internals/models/props/tabs.d.ts +2 -2
  407. package/internals/models/props/time.d.mts +6 -6
  408. package/internals/models/props/time.d.ts +6 -6
  409. package/internals/models/props/toolbar.d.mts +3 -3
  410. package/internals/models/props/toolbar.d.ts +3 -3
  411. package/internals/models/value.d.mts +1 -1
  412. package/internals/models/value.d.ts +1 -1
  413. package/internals/utils/createNonRangePickerStepNavigation.d.mts +1 -1
  414. package/internals/utils/createNonRangePickerStepNavigation.d.ts +1 -1
  415. package/internals/utils/createStepNavigation.d.mts +1 -1
  416. package/internals/utils/createStepNavigation.d.ts +1 -1
  417. package/internals/utils/date-time-utils.d.mts +4 -4
  418. package/internals/utils/date-time-utils.d.ts +4 -4
  419. package/internals/utils/date-utils.d.mts +2 -2
  420. package/internals/utils/date-utils.d.ts +2 -2
  421. package/internals/utils/getDefaultReferenceDate.d.mts +1 -1
  422. package/internals/utils/getDefaultReferenceDate.d.ts +1 -1
  423. package/internals/utils/time-utils.d.mts +2 -2
  424. package/internals/utils/time-utils.d.ts +2 -2
  425. package/internals/utils/utils.d.mts +3 -3
  426. package/internals/utils/utils.d.ts +3 -3
  427. package/internals/utils/valueManagers.d.mts +2 -3
  428. package/internals/utils/valueManagers.d.ts +2 -3
  429. package/internals/utils/views.d.mts +1 -1
  430. package/internals/utils/views.d.ts +1 -1
  431. package/locales/beBY.d.mts +1 -1
  432. package/locales/beBY.d.ts +1 -1
  433. package/locales/bgBG.d.mts +1 -1
  434. package/locales/bgBG.d.ts +1 -1
  435. package/locales/bnBD.d.mts +1 -1
  436. package/locales/bnBD.d.ts +1 -1
  437. package/locales/caES.d.mts +1 -1
  438. package/locales/caES.d.ts +1 -1
  439. package/locales/csCZ.d.mts +1 -1
  440. package/locales/csCZ.d.ts +1 -1
  441. package/locales/daDK.d.mts +1 -1
  442. package/locales/daDK.d.ts +1 -1
  443. package/locales/deDE.d.mts +1 -1
  444. package/locales/deDE.d.ts +1 -1
  445. package/locales/elGR.d.mts +1 -1
  446. package/locales/elGR.d.ts +1 -1
  447. package/locales/enUS.d.mts +1 -1
  448. package/locales/enUS.d.ts +1 -1
  449. package/locales/esES.d.mts +1 -1
  450. package/locales/esES.d.ts +1 -1
  451. package/locales/eu.d.mts +1 -1
  452. package/locales/eu.d.ts +1 -1
  453. package/locales/faIR.d.mts +1 -1
  454. package/locales/faIR.d.ts +1 -1
  455. package/locales/faIR.js +21 -22
  456. package/locales/faIR.mjs +21 -22
  457. package/locales/fiFI.d.mts +1 -1
  458. package/locales/fiFI.d.ts +1 -1
  459. package/locales/frFR.d.mts +1 -1
  460. package/locales/frFR.d.ts +1 -1
  461. package/locales/heIL.d.mts +1 -1
  462. package/locales/heIL.d.ts +1 -1
  463. package/locales/hrHR.d.mts +1 -1
  464. package/locales/hrHR.d.ts +1 -1
  465. package/locales/huHU.d.mts +1 -1
  466. package/locales/huHU.d.ts +1 -1
  467. package/locales/isIS.d.mts +1 -1
  468. package/locales/isIS.d.ts +1 -1
  469. package/locales/itIT.d.mts +1 -1
  470. package/locales/itIT.d.ts +1 -1
  471. package/locales/jaJP.d.mts +1 -1
  472. package/locales/jaJP.d.ts +1 -1
  473. package/locales/koKR.d.mts +1 -1
  474. package/locales/koKR.d.ts +1 -1
  475. package/locales/kzKZ.d.mts +1 -1
  476. package/locales/kzKZ.d.ts +1 -1
  477. package/locales/nbNO.d.mts +1 -1
  478. package/locales/nbNO.d.ts +1 -1
  479. package/locales/nlNL.d.mts +1 -1
  480. package/locales/nlNL.d.ts +1 -1
  481. package/locales/nnNO.d.mts +1 -1
  482. package/locales/nnNO.d.ts +1 -1
  483. package/locales/plPL.d.mts +1 -1
  484. package/locales/plPL.d.ts +1 -1
  485. package/locales/ptBR.d.mts +1 -1
  486. package/locales/ptBR.d.ts +1 -1
  487. package/locales/ptPT.d.mts +1 -1
  488. package/locales/ptPT.d.ts +1 -1
  489. package/locales/roRO.d.mts +1 -1
  490. package/locales/roRO.d.ts +1 -1
  491. package/locales/ruRU.d.mts +1 -1
  492. package/locales/ruRU.d.ts +1 -1
  493. package/locales/skSK.d.mts +1 -1
  494. package/locales/skSK.d.ts +1 -1
  495. package/locales/svSE.d.mts +1 -1
  496. package/locales/svSE.d.ts +1 -1
  497. package/locales/thTH.d.mts +1 -1
  498. package/locales/thTH.d.ts +1 -1
  499. package/locales/trTR.d.mts +1 -1
  500. package/locales/trTR.d.ts +1 -1
  501. package/locales/ukUA.d.mts +1 -1
  502. package/locales/ukUA.d.ts +1 -1
  503. package/locales/urPK.d.mts +1 -1
  504. package/locales/urPK.d.ts +1 -1
  505. package/locales/utils/getPickersLocalization.d.mts +1 -1
  506. package/locales/utils/getPickersLocalization.d.ts +1 -1
  507. package/locales/utils/pickersLocaleTextApi.d.mts +2 -2
  508. package/locales/utils/pickersLocaleTextApi.d.ts +2 -2
  509. package/locales/viVN.d.mts +1 -1
  510. package/locales/viVN.d.ts +1 -1
  511. package/locales/zhCN.d.mts +1 -1
  512. package/locales/zhCN.d.ts +1 -1
  513. package/locales/zhHK.d.mts +1 -1
  514. package/locales/zhHK.d.ts +1 -1
  515. package/locales/zhTW.d.mts +1 -1
  516. package/locales/zhTW.d.ts +1 -1
  517. package/managers/useDateManager.d.mts +4 -4
  518. package/managers/useDateManager.d.ts +4 -4
  519. package/managers/useDateTimeManager.d.mts +5 -5
  520. package/managers/useDateTimeManager.d.ts +5 -5
  521. package/managers/useTimeManager.d.mts +5 -5
  522. package/managers/useTimeManager.d.ts +5 -5
  523. package/models/adapters.d.mts +3 -3
  524. package/models/adapters.d.ts +3 -3
  525. package/models/fields.d.mts +4 -4
  526. package/models/fields.d.ts +4 -4
  527. package/models/pickers.d.mts +1 -1
  528. package/models/pickers.d.ts +1 -1
  529. package/package.json +6 -3
  530. package/themeAugmentation/components.d.mts +16 -16
  531. package/themeAugmentation/components.d.ts +16 -16
  532. package/themeAugmentation/overrides.d.mts +20 -20
  533. package/themeAugmentation/overrides.d.ts +20 -20
  534. package/themeAugmentation/props.d.mts +38 -38
  535. package/themeAugmentation/props.d.ts +38 -38
  536. package/timeViewRenderers/timeViewRenderers.d.mts +6 -6
  537. package/timeViewRenderers/timeViewRenderers.d.ts +6 -6
  538. package/validation/extractValidationProps.d.mts +1 -1
  539. package/validation/extractValidationProps.d.ts +1 -1
  540. package/validation/useValidation.d.mts +2 -3
  541. package/validation/useValidation.d.ts +2 -3
  542. package/validation/validateDate.d.mts +4 -4
  543. package/validation/validateDate.d.ts +4 -4
  544. package/validation/validateDateTime.d.mts +6 -6
  545. package/validation/validateDateTime.d.ts +6 -6
  546. package/validation/validateTime.d.mts +4 -4
  547. package/validation/validateTime.d.ts +4 -4
@@ -1,13 +1,13 @@
1
- import * as React from 'react';
2
- import { MakeRequired, SlotComponentPropsFromProps } from '@mui/x-internals/types';
3
- import { BasePickerProps } from "../../models/props/basePickerProps.js";
4
- import { PickerPopperSlots, PickerPopperSlotProps } from "../../components/PickerPopper/PickerPopper.js";
5
- import { UsePickerParameters, UsePickerNonStaticProps, UsePickerProps } from "../usePicker/index.js";
6
- import { PickerFieldSlotProps, PickerOwnerState } from "../../../models/index.js";
7
- import { ExportedPickersLayoutSlots, ExportedPickersLayoutSlotProps, PickersLayoutSlotProps } from "../../../PickersLayout/PickersLayout.types.js";
8
- import { DateOrTimeViewWithMeridiem, PickerValue } from "../../models/index.js";
9
- import { PickerFieldUISlotsFromContext, PickerFieldUISlotPropsFromContext } from "../../components/PickerFieldUI.js";
10
- import { PickerStep } from "../../utils/createNonRangePickerStepNavigation.js";
1
+ import type * as React from 'react';
2
+ import type { MakeRequired, SlotComponentPropsFromProps } from '@mui/x-internals/types';
3
+ import type { BasePickerProps } from "../../models/props/basePickerProps.js";
4
+ import type { PickerPopperSlots, PickerPopperSlotProps } from "../../components/PickerPopper/PickerPopper.js";
5
+ import type { UsePickerParameters, UsePickerNonStaticProps, UsePickerProps } from "../usePicker/index.js";
6
+ import type { PickerFieldSlotProps, PickerOwnerState } from "../../../models/index.js";
7
+ import type { ExportedPickersLayoutSlots, ExportedPickersLayoutSlotProps, PickersLayoutSlotProps } from "../../../PickersLayout/PickersLayout.types.js";
8
+ import type { DateOrTimeViewWithMeridiem, PickerValue } from "../../models/index.js";
9
+ import type { PickerFieldUISlotsFromContext, PickerFieldUISlotPropsFromContext } from "../../components/PickerFieldUI.js";
10
+ import type { PickerStep } from "../../utils/createNonRangePickerStepNavigation.js";
11
11
  export interface UseDesktopPickerSlots extends Pick<PickerPopperSlots, 'desktopPaper' | 'desktopTransition' | 'desktopTrapFocus' | 'popper'>, ExportedPickersLayoutSlots<PickerValue>, PickerFieldUISlotsFromContext {
12
12
  /**
13
13
  * Component used to enter the date with the keyboard.
@@ -1,5 +1,5 @@
1
- import { FieldSection, MuiPickersAdapter, PickerValidDate } from "../../../models/index.mjs";
2
- import { PickersLocaleText } from "../../../locales/index.mjs";
1
+ import type { FieldSection, MuiPickersAdapter, PickerValidDate } from "../../../models/index.mjs";
2
+ import type { PickersLocaleText } from "../../../locales/index.mjs";
3
3
  interface BuildSectionsFromFormatParameters {
4
4
  adapter: MuiPickersAdapter;
5
5
  format: string;
@@ -1,5 +1,5 @@
1
- import { FieldSection, MuiPickersAdapter, PickerValidDate } from "../../../models/index.js";
2
- import { PickersLocaleText } from "../../../locales/index.js";
1
+ import type { FieldSection, MuiPickersAdapter, PickerValidDate } from "../../../models/index.js";
2
+ import type { PickersLocaleText } from "../../../locales/index.js";
3
3
  interface BuildSectionsFromFormatParameters {
4
4
  adapter: MuiPickersAdapter;
5
5
  format: string;
@@ -1,6 +1,6 @@
1
- import { PickerValidValue } from "../../models/index.mjs";
2
- import { UseFieldDOMGetters } from "./useField.types.mjs";
3
- import { UseFieldStateReturnValue } from "./useFieldState.mjs";
1
+ import type { PickerValidValue } from "../../models/index.mjs";
2
+ import type { UseFieldDOMGetters } from "./useField.types.mjs";
3
+ import type { UseFieldStateReturnValue } from "./useFieldState.mjs";
4
4
  export declare function syncSelectionToDOM<TValue extends PickerValidValue>(parameters: SyncSelectionToDOMParameters<TValue>): void;
5
5
  export interface SyncSelectionToDOMParameters<TValue extends PickerValidValue> {
6
6
  domGetters: UseFieldDOMGetters;
@@ -1,6 +1,6 @@
1
- import { PickerValidValue } from "../../models/index.js";
2
- import { UseFieldDOMGetters } from "./useField.types.js";
3
- import { UseFieldStateReturnValue } from "./useFieldState.js";
1
+ import type { PickerValidValue } from "../../models/index.js";
2
+ import type { UseFieldDOMGetters } from "./useField.types.js";
3
+ import type { UseFieldStateReturnValue } from "./useFieldState.js";
4
4
  export declare function syncSelectionToDOM<TValue extends PickerValidValue>(parameters: SyncSelectionToDOMParameters<TValue>): void;
5
5
  export interface SyncSelectionToDOMParameters<TValue extends PickerValidValue> {
6
6
  domGetters: UseFieldDOMGetters;
@@ -1,3 +1,3 @@
1
- import { UseFieldParameters, UseFieldProps, UseFieldReturnValue } from "./useField.types.mjs";
2
- import { PickerValidValue } from "../../models/index.mjs";
1
+ import type { UseFieldParameters, UseFieldProps, UseFieldReturnValue } from "./useField.types.mjs";
2
+ import type { PickerValidValue } from "../../models/index.mjs";
3
3
  export declare const useField: <TValue extends PickerValidValue, TError, TValidationProps extends {}, TProps extends UseFieldProps>(parameters: UseFieldParameters<TValue, TError, TValidationProps, TProps>) => UseFieldReturnValue<TProps>;
@@ -1,3 +1,3 @@
1
- import { UseFieldParameters, UseFieldProps, UseFieldReturnValue } from "./useField.types.js";
2
- import { PickerValidValue } from "../../models/index.js";
1
+ import type { UseFieldParameters, UseFieldProps, UseFieldReturnValue } from "./useField.types.js";
2
+ import type { PickerValidValue } from "../../models/index.js";
3
3
  export declare const useField: <TValue extends PickerValidValue, TError, TValidationProps extends {}, TProps extends UseFieldProps>(parameters: UseFieldParameters<TValue, TError, TValidationProps, TProps>) => UseFieldReturnValue<TProps>;
@@ -53,6 +53,7 @@ const useField = parameters => {
53
53
  sectionListRef: sectionListRefProp,
54
54
  onBlur,
55
55
  onClick,
56
+ onMouseDown,
56
57
  onFocus,
57
58
  onInput,
58
59
  onPaste,
@@ -167,6 +168,22 @@ const useField = parameters => {
167
168
  onClick?.(event);
168
169
  rootProps.onClick(event);
169
170
  });
171
+ const handleRootMouseDown = (0, _useEventCallback.default)(event => {
172
+ // The `isDefaultPrevented` check skips mousedowns that have already been
173
+ // suppressed before this handler runs -- in particular, propagated events
174
+ // from the clear / open buttons whose own handlers `preventDefault`, and
175
+ // capture-phase parents that intentionally block field interactions.
176
+ // Userland `onMouseDown` calling `event.preventDefault()` does *not*
177
+ // suppress `rootProps.onMouseDown` here: the prevent fires *after* this
178
+ // check, and `rootProps.onMouseDown` is the section-selection mechanism
179
+ // for the field -- letting consumers disable it inline would leave the
180
+ // field unable to focus a section on click.
181
+ if (event.isDefaultPrevented()) {
182
+ return;
183
+ }
184
+ onMouseDown?.(event);
185
+ rootProps.onMouseDown(event);
186
+ });
170
187
  const handleRootPaste = (0, _useEventCallback.default)(event => {
171
188
  onPaste?.(event);
172
189
  rootProps.onPaste(event);
@@ -253,6 +270,7 @@ Learn more about the field accessible DOM structure on the MUI documentation: ht
253
270
  return (0, _extends2.default)({}, forwardedProps, rootProps, {
254
271
  onBlur: handleRootBlur,
255
272
  onClick: handleRootClick,
273
+ onMouseDown: handleRootMouseDown,
256
274
  onFocus: handleRootFocus,
257
275
  onInput: handleRootInput,
258
276
  onPaste: handleRootPaste,
@@ -46,6 +46,7 @@ export const useField = parameters => {
46
46
  sectionListRef: sectionListRefProp,
47
47
  onBlur,
48
48
  onClick,
49
+ onMouseDown,
49
50
  onFocus,
50
51
  onInput,
51
52
  onPaste,
@@ -160,6 +161,22 @@ export const useField = parameters => {
160
161
  onClick?.(event);
161
162
  rootProps.onClick(event);
162
163
  });
164
+ const handleRootMouseDown = useEventCallback(event => {
165
+ // The `isDefaultPrevented` check skips mousedowns that have already been
166
+ // suppressed before this handler runs -- in particular, propagated events
167
+ // from the clear / open buttons whose own handlers `preventDefault`, and
168
+ // capture-phase parents that intentionally block field interactions.
169
+ // Userland `onMouseDown` calling `event.preventDefault()` does *not*
170
+ // suppress `rootProps.onMouseDown` here: the prevent fires *after* this
171
+ // check, and `rootProps.onMouseDown` is the section-selection mechanism
172
+ // for the field -- letting consumers disable it inline would leave the
173
+ // field unable to focus a section on click.
174
+ if (event.isDefaultPrevented()) {
175
+ return;
176
+ }
177
+ onMouseDown?.(event);
178
+ rootProps.onMouseDown(event);
179
+ });
163
180
  const handleRootPaste = useEventCallback(event => {
164
181
  onPaste?.(event);
165
182
  rootProps.onPaste(event);
@@ -246,6 +263,7 @@ Learn more about the field accessible DOM structure on the MUI documentation: ht
246
263
  return _extends({}, forwardedProps, rootProps, {
247
264
  onBlur: handleRootBlur,
248
265
  onClick: handleRootClick,
266
+ onMouseDown: handleRootMouseDown,
249
267
  onFocus: handleRootFocus,
250
268
  onInput: handleRootInput,
251
269
  onPaste: handleRootPaste,
@@ -1,8 +1,8 @@
1
- import * as React from 'react';
2
- import { FieldSectionType, FieldSection, FieldSelectedSections, MuiPickersAdapter, TimezoneProps, FieldSectionContentType, PickerValidDate, FieldRef, OnErrorProps, InferFieldSection, PickerManager, PickerValueType } from "../../../models/index.mjs";
3
- import { InternalPropNames } from "../../../hooks/useSplitFieldProps.mjs";
1
+ import type * as React from 'react';
2
+ import type { FieldSectionType, FieldSection, FieldSelectedSections, MuiPickersAdapter, TimezoneProps, FieldSectionContentType, PickerValidDate, FieldRef, OnErrorProps, InferFieldSection, PickerManager, PickerValueType } from "../../../models/index.mjs";
3
+ import type { InternalPropNames } from "../../../hooks/useSplitFieldProps.mjs";
4
4
  import type { PickersSectionElement, PickersSectionListRef } from "../../../PickersSectionList/index.mjs";
5
- import { FormProps, InferNonNullablePickerValue, PickerRangeValue, PickerValidValue } from "../../models/index.mjs";
5
+ import type { FormProps, InferNonNullablePickerValue, PickerRangeValue, PickerValidValue } from "../../models/index.mjs";
6
6
  export interface UseFieldParameters<TValue extends PickerValidValue, TError, TValidationProps extends {}, TProps extends UseFieldProps> {
7
7
  manager: PickerManager<TValue, TError, TValidationProps, any>;
8
8
  props: TProps;
@@ -92,6 +92,7 @@ export interface UseFieldForwardedProps {
92
92
  focused?: boolean;
93
93
  sectionListRef?: React.Ref<PickersSectionListRef>;
94
94
  onClick?: React.MouseEventHandler;
95
+ onMouseDown?: React.MouseEventHandler;
95
96
  onKeyDown?: React.KeyboardEventHandler;
96
97
  onFocus?: React.FocusEventHandler;
97
98
  onBlur?: React.FocusEventHandler;
@@ -1,8 +1,8 @@
1
- import * as React from 'react';
2
- import { FieldSectionType, FieldSection, FieldSelectedSections, MuiPickersAdapter, TimezoneProps, FieldSectionContentType, PickerValidDate, FieldRef, OnErrorProps, InferFieldSection, PickerManager, PickerValueType } from "../../../models/index.js";
3
- import { InternalPropNames } from "../../../hooks/useSplitFieldProps.js";
1
+ import type * as React from 'react';
2
+ import type { FieldSectionType, FieldSection, FieldSelectedSections, MuiPickersAdapter, TimezoneProps, FieldSectionContentType, PickerValidDate, FieldRef, OnErrorProps, InferFieldSection, PickerManager, PickerValueType } from "../../../models/index.js";
3
+ import type { InternalPropNames } from "../../../hooks/useSplitFieldProps.js";
4
4
  import type { PickersSectionElement, PickersSectionListRef } from "../../../PickersSectionList/index.js";
5
- import { FormProps, InferNonNullablePickerValue, PickerRangeValue, PickerValidValue } from "../../models/index.js";
5
+ import type { FormProps, InferNonNullablePickerValue, PickerRangeValue, PickerValidValue } from "../../models/index.js";
6
6
  export interface UseFieldParameters<TValue extends PickerValidValue, TError, TValidationProps extends {}, TProps extends UseFieldProps> {
7
7
  manager: PickerManager<TValue, TError, TValidationProps, any>;
8
8
  props: TProps;
@@ -92,6 +92,7 @@ export interface UseFieldForwardedProps {
92
92
  focused?: boolean;
93
93
  sectionListRef?: React.Ref<PickersSectionListRef>;
94
94
  onClick?: React.MouseEventHandler;
95
+ onMouseDown?: React.MouseEventHandler;
95
96
  onKeyDown?: React.KeyboardEventHandler;
96
97
  onFocus?: React.FocusEventHandler;
97
98
  onBlur?: React.FocusEventHandler;
@@ -1,6 +1,6 @@
1
- import { FieldSectionsValueBoundaries, SectionOrdering, FieldSectionValueBoundaries, FieldParsedSelectedSections } from "./useField.types.mjs";
2
- import { FieldSectionType, FieldSection, MuiPickersAdapter, FieldSectionContentType, PickersTimezone, PickerValidDate, FieldSelectedSections, PickerValueType, InferFieldSection } from "../../../models/index.mjs";
3
- import { PickerValidValue } from "../../models/index.mjs";
1
+ import type { FieldSectionsValueBoundaries, SectionOrdering, FieldSectionValueBoundaries, FieldParsedSelectedSections } from "./useField.types.mjs";
2
+ import type { FieldSectionType, FieldSection, MuiPickersAdapter, FieldSectionContentType, PickersTimezone, PickerValidDate, FieldSelectedSections, PickerValueType, InferFieldSection } from "../../../models/index.mjs";
3
+ import type { PickerValidValue } from "../../models/index.mjs";
4
4
  export declare const getDateSectionConfigFromFormatToken: (adapter: MuiPickersAdapter, formatToken: string) => Pick<FieldSection, "type" | "contentType"> & {
5
5
  maxLength: number | undefined;
6
6
  };
@@ -30,6 +30,5 @@ export declare const createDateStrForHiddenInputFromSections: (sections: FieldSe
30
30
  export declare const getSectionsBoundaries: (adapter: MuiPickersAdapter, localizedDigits: string[], timezone: PickersTimezone) => FieldSectionsValueBoundaries;
31
31
  export declare const validateSections: <TValue extends PickerValidValue>(sections: InferFieldSection<TValue>[], valueType: PickerValueType) => void;
32
32
  export declare const mergeDateIntoReferenceDate: (adapter: MuiPickersAdapter, dateToTransferFrom: PickerValidDate, sections: FieldSection[], referenceDate: PickerValidDate, shouldLimitToEditedSections: boolean) => PickerValidDate;
33
- export declare const isAndroid: () => boolean;
34
33
  export declare const getSectionOrder: (sections: FieldSection[]) => SectionOrdering;
35
34
  export declare const parseSelectedSections: (selectedSections: FieldSelectedSections, sections: FieldSection[]) => FieldParsedSelectedSections;
@@ -1,6 +1,6 @@
1
- import { FieldSectionsValueBoundaries, SectionOrdering, FieldSectionValueBoundaries, FieldParsedSelectedSections } from "./useField.types.js";
2
- import { FieldSectionType, FieldSection, MuiPickersAdapter, FieldSectionContentType, PickersTimezone, PickerValidDate, FieldSelectedSections, PickerValueType, InferFieldSection } from "../../../models/index.js";
3
- import { PickerValidValue } from "../../models/index.js";
1
+ import type { FieldSectionsValueBoundaries, SectionOrdering, FieldSectionValueBoundaries, FieldParsedSelectedSections } from "./useField.types.js";
2
+ import type { FieldSectionType, FieldSection, MuiPickersAdapter, FieldSectionContentType, PickersTimezone, PickerValidDate, FieldSelectedSections, PickerValueType, InferFieldSection } from "../../../models/index.js";
3
+ import type { PickerValidValue } from "../../models/index.js";
4
4
  export declare const getDateSectionConfigFromFormatToken: (adapter: MuiPickersAdapter, formatToken: string) => Pick<FieldSection, "type" | "contentType"> & {
5
5
  maxLength: number | undefined;
6
6
  };
@@ -30,6 +30,5 @@ export declare const createDateStrForHiddenInputFromSections: (sections: FieldSe
30
30
  export declare const getSectionsBoundaries: (adapter: MuiPickersAdapter, localizedDigits: string[], timezone: PickersTimezone) => FieldSectionsValueBoundaries;
31
31
  export declare const validateSections: <TValue extends PickerValidValue>(sections: InferFieldSection<TValue>[], valueType: PickerValueType) => void;
32
32
  export declare const mergeDateIntoReferenceDate: (adapter: MuiPickersAdapter, dateToTransferFrom: PickerValidDate, sections: FieldSection[], referenceDate: PickerValidDate, shouldLimitToEditedSections: boolean) => PickerValidDate;
33
- export declare const isAndroid: () => boolean;
34
33
  export declare const getSectionOrder: (sections: FieldSection[]) => SectionOrdering;
35
34
  export declare const parseSelectedSections: (selectedSections: FieldSelectedSections, sections: FieldSection[]) => FieldParsedSelectedSections;
@@ -4,7 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.validateSections = exports.removeLocalizedDigits = exports.parseSelectedSections = exports.mergeDateIntoReferenceDate = exports.isStringNumber = exports.isAndroid = exports.getSectionsBoundaries = exports.getSectionVisibleValue = exports.getSectionOrder = exports.getLocalizedDigits = exports.getLetterEditingOptions = exports.getDaysInWeekStr = exports.getDateSectionConfigFromFormatToken = exports.getDateFromDateSections = exports.doesSectionFormatHaveLeadingZeros = exports.createDateStrForHiddenInputFromSections = exports.cleanLeadingZeros = exports.cleanDigitSectionValue = exports.changeSectionValueFormat = exports.applyLocalizedDigits = exports.FORMAT_SECONDS_NO_LEADING_ZEROS = void 0;
7
+ exports.validateSections = exports.removeLocalizedDigits = exports.parseSelectedSections = exports.mergeDateIntoReferenceDate = exports.isStringNumber = exports.getSectionsBoundaries = exports.getSectionVisibleValue = exports.getSectionOrder = exports.getLocalizedDigits = exports.getLetterEditingOptions = exports.getDaysInWeekStr = exports.getDateSectionConfigFromFormatToken = exports.getDateFromDateSections = exports.doesSectionFormatHaveLeadingZeros = exports.createDateStrForHiddenInputFromSections = exports.cleanLeadingZeros = exports.cleanDigitSectionValue = exports.changeSectionValueFormat = exports.applyLocalizedDigits = exports.FORMAT_SECONDS_NO_LEADING_ZEROS = void 0;
8
8
  var _formatErrorMessage2 = _interopRequireDefault(require("@mui/x-internals/formatErrorMessage"));
9
9
  var _dateUtils = require("../../utils/date-utils");
10
10
  var _timeUtils = require("../../utils/time-utils");
@@ -452,8 +452,6 @@ const mergeDateIntoReferenceDate = (adapter, dateToTransferFrom, sections, refer
452
452
  return mergedDate;
453
453
  }, referenceDate);
454
454
  exports.mergeDateIntoReferenceDate = mergeDateIntoReferenceDate;
455
- const isAndroid = () => navigator.userAgent.toLowerCase().includes('android');
456
- exports.isAndroid = isAndroid;
457
455
  const getSectionOrder = sections => {
458
456
  const neighbors = {};
459
457
  sections.forEach((_, index) => {
@@ -428,7 +428,6 @@ export const mergeDateIntoReferenceDate = (adapter, dateToTransferFrom, sections
428
428
  }
429
429
  return mergedDate;
430
430
  }, referenceDate);
431
- export const isAndroid = () => navigator.userAgent.toLowerCase().includes('android');
432
431
  export const getSectionOrder = sections => {
433
432
  const neighbors = {};
434
433
  sections.forEach((_, index) => {
@@ -1,5 +1,5 @@
1
- import { UseFieldStateReturnValue } from "./useFieldState.mjs";
2
- import { PickerValidValue } from "../../models/index.mjs";
1
+ import type { UseFieldStateReturnValue } from "./useFieldState.mjs";
2
+ import type { PickerValidValue } from "../../models/index.mjs";
3
3
  /**
4
4
  * Update the active section value when the user pressed a key that is not a navigation key (arrow key for example).
5
5
  * This hook has two main editing behaviors
@@ -1,5 +1,5 @@
1
- import { UseFieldStateReturnValue } from "./useFieldState.js";
2
- import { PickerValidValue } from "../../models/index.js";
1
+ import type { UseFieldStateReturnValue } from "./useFieldState.js";
2
+ import type { PickerValidValue } from "../../models/index.js";
3
3
  /**
4
4
  * Update the active section value when the user pressed a key that is not a navigation key (arrow key for example).
5
5
  * This hook has two main editing behaviors
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
- import { PickerAnyManager } from "../../models/manager.mjs";
3
- import { UseFieldStateReturnValue } from "./useFieldState.mjs";
2
+ import type { PickerAnyManager } from "../../models/manager.mjs";
3
+ import type { UseFieldStateReturnValue } from "./useFieldState.mjs";
4
4
  /**
5
5
  * Generate the props to pass to the hidden input element of the field.
6
6
  * @param {UseFieldHiddenInputPropsParameters} parameters The parameters of the hook.
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
- import { PickerAnyManager } from "../../models/manager.js";
3
- import { UseFieldStateReturnValue } from "./useFieldState.js";
2
+ import type { PickerAnyManager } from "../../models/manager.js";
3
+ import type { UseFieldStateReturnValue } from "./useFieldState.js";
4
4
  /**
5
5
  * Generate the props to pass to the hidden input element of the field.
6
6
  * @param {UseFieldHiddenInputPropsParameters} parameters The parameters of the hook.
@@ -1,4 +1,4 @@
1
- import { PickerAnyManager, PickerManagerFieldInternalProps, PickerManagerFieldInternalPropsWithDefaults } from "../../models/index.mjs";
1
+ import type { PickerAnyManager, PickerManagerFieldInternalProps, PickerManagerFieldInternalPropsWithDefaults } from "../../models/index.mjs";
2
2
  /**
3
3
  * Applies the default values to the field internal props.
4
4
  * This is a temporary hook that will be removed during a follow up when `useField` will receive the internal props without the defaults.
@@ -1,4 +1,4 @@
1
- import { PickerAnyManager, PickerManagerFieldInternalProps, PickerManagerFieldInternalPropsWithDefaults } from "../../models/index.js";
1
+ import type { PickerAnyManager, PickerManagerFieldInternalProps, PickerManagerFieldInternalPropsWithDefaults } from "../../models/index.js";
2
2
  /**
3
3
  * Applies the default values to the field internal props.
4
4
  * This is a temporary hook that will be removed during a follow up when `useField` will receive the internal props without the defaults.
@@ -1,7 +1,7 @@
1
- import { UseFieldDOMGetters, UseFieldInternalProps } from "./useField.types.mjs";
2
- import { UseFieldStateReturnValue } from "./useFieldState.mjs";
3
- import { UseFieldCharacterEditingReturnValue } from "./useFieldCharacterEditing.mjs";
4
- import { PickerAnyManager } from "../../models/index.mjs";
1
+ import type { UseFieldDOMGetters, UseFieldInternalProps } from "./useField.types.mjs";
2
+ import type { UseFieldStateReturnValue } from "./useFieldState.mjs";
3
+ import type { UseFieldCharacterEditingReturnValue } from "./useFieldCharacterEditing.mjs";
4
+ import type { PickerAnyManager } from "../../models/index.mjs";
5
5
  /**
6
6
  * Generate the props to pass to the root element of the field.
7
7
  * @param {UseFieldRootPropsParameters} parameters The parameters of the hook.
@@ -24,6 +24,7 @@ interface UseFieldRootPropsReturnValue {
24
24
  onBlur: React.FocusEventHandler<HTMLDivElement>;
25
25
  onFocus: React.FocusEventHandler<HTMLDivElement>;
26
26
  onClick: React.MouseEventHandler<HTMLDivElement>;
27
+ onMouseDown: React.MouseEventHandler<HTMLDivElement>;
27
28
  onPaste: React.ClipboardEventHandler<HTMLDivElement>;
28
29
  onInput: React.FormEventHandler<HTMLDivElement>;
29
30
  contentEditable: boolean;
@@ -1,7 +1,7 @@
1
- import { UseFieldDOMGetters, UseFieldInternalProps } from "./useField.types.js";
2
- import { UseFieldStateReturnValue } from "./useFieldState.js";
3
- import { UseFieldCharacterEditingReturnValue } from "./useFieldCharacterEditing.js";
4
- import { PickerAnyManager } from "../../models/index.js";
1
+ import type { UseFieldDOMGetters, UseFieldInternalProps } from "./useField.types.js";
2
+ import type { UseFieldStateReturnValue } from "./useFieldState.js";
3
+ import type { UseFieldCharacterEditingReturnValue } from "./useFieldCharacterEditing.js";
4
+ import type { PickerAnyManager } from "../../models/index.js";
5
5
  /**
6
6
  * Generate the props to pass to the root element of the field.
7
7
  * @param {UseFieldRootPropsParameters} parameters The parameters of the hook.
@@ -24,6 +24,7 @@ interface UseFieldRootPropsReturnValue {
24
24
  onBlur: React.FocusEventHandler<HTMLDivElement>;
25
25
  onFocus: React.FocusEventHandler<HTMLDivElement>;
26
26
  onClick: React.MouseEventHandler<HTMLDivElement>;
27
+ onMouseDown: React.MouseEventHandler<HTMLDivElement>;
27
28
  onPaste: React.ClipboardEventHandler<HTMLDivElement>;
28
29
  onInput: React.FormEventHandler<HTMLDivElement>;
29
30
  contentEditable: boolean;
@@ -144,14 +144,22 @@ function useFieldRootProps(parameters) {
144
144
  }
145
145
  });
146
146
  const containerClickTimeout = (0, _useTimeout.default)();
147
- const handleClick = (0, _useEventCallback.default)(event => {
147
+ const handleClick = (0, _useEventCallback.default)(() => {
148
148
  if (disabled || !domGetters.isReady()) {
149
149
  return;
150
150
  }
151
- setFocused(true);
152
151
  if (parsedSelectedSections === 'all') {
152
+ setFocused(true);
153
153
  containerClickTimeout.start(0, () => {
154
- const cursorPosition = document.getSelection().getRangeAt(0).startOffset;
154
+ // `getSelection`/`getRangeAt` can be unset transiently (e.g. focus
155
+ // moved before this 0-tick callback ran). Fall back to the first
156
+ // section in that case.
157
+ const selection = document.getSelection();
158
+ if (!selection || selection.rangeCount === 0) {
159
+ setSelectedSections(sectionOrder.startIndex);
160
+ return;
161
+ }
162
+ const cursorPosition = selection.getRangeAt(0).startOffset;
155
163
  if (cursorPosition === 0) {
156
164
  setSelectedSections(sectionOrder.startIndex);
157
165
  return;
@@ -165,16 +173,70 @@ function useFieldRootProps(parameters) {
165
173
  }
166
174
  setSelectedSections(sectionIndex - 1);
167
175
  });
168
- } else if (!focused) {
176
+ return;
177
+ }
178
+
179
+ // For trusted pointer input, `handleMouseDown` already ran and set the
180
+ // section. This branch only matters for `click` events that arrive
181
+ // without a preceding `mousedown` (programmatic `element.click()`, some
182
+ // assistive-technology activations, synthetic event sequences in tests).
183
+ // Fall back to the first section so the field doesn't enter a "focused
184
+ // but no active section" state.
185
+ if (!focused) {
169
186
  setFocused(true);
170
- setSelectedSections(sectionOrder.startIndex);
171
- } else {
172
- const hasClickedOnASection = domGetters.getRoot().contains(event.target);
173
- if (!hasClickedOnASection) {
187
+ if (parsedSelectedSections == null) {
174
188
  setSelectedSections(sectionOrder.startIndex);
175
189
  }
176
190
  }
177
191
  });
192
+
193
+ // Replaces Chromium's focus delegation with an explicit section focus on
194
+ // every primary mousedown inside the sections container. The CSS gate
195
+ // (`WebkitUserModify: read-only` while not `:focus-within`) can make the
196
+ // section's contenteditable span temporarily non-focusable, in which case
197
+ // Chromium falls back to the sections-container `tabindex=0` and our
198
+ // `handleFocus` then runs the "no active section" fallback, briefly
199
+ // selecting the first section before the click bubble corrects it.
200
+ // Setting the target section here (and letting `syncSelectionToDOM` move
201
+ // focus via `.focus()`, which works even with the user-modify rule
202
+ // active) skips that race entirely.
203
+ const handleMouseDown = (0, _useEventCallback.default)(event => {
204
+ if (disabled || !domGetters.isReady() || parsedSelectedSections === 'all') {
205
+ return;
206
+ }
207
+ if (event.button !== 0) {
208
+ return;
209
+ }
210
+ const target = event.target;
211
+ // `sectionListRoot` is the sections container (a descendant of the
212
+ // InputBase root that owns this handler). The guard rejects clicks on
213
+ // sibling adornments (open / clear buttons, etc.) which have their own
214
+ // behavior and must not get intercepted here.
215
+ const sectionListRoot = domGetters.getRoot();
216
+ if (!sectionListRoot.contains(target)) {
217
+ return;
218
+ }
219
+ // Prefer the visually-containing section (matches Chromium's
220
+ // delegation + section container `onClick`), fall back to the
221
+ // closest-by-distance section for padding / past-last-section clicks.
222
+ const sectionElement = target.closest('[data-sectionindex]');
223
+ const parsedIndex = sectionElement ? Number(sectionElement.dataset.sectionindex) : findClosestSectionIndexToPoint(sectionListRoot, event.clientX);
224
+ // `Number(undefined) === NaN` and `NaN == null === false`, so guard
225
+ // explicitly here even though `data-sectionindex` is set by
226
+ // `useFieldSectionContainerProps` for every section in practice.
227
+ if (parsedIndex == null || !Number.isInteger(parsedIndex)) {
228
+ return;
229
+ }
230
+ event.preventDefault();
231
+ setFocused(true);
232
+ // `mousedown` is now authoritative for pointer section selection. The
233
+ // section container's own `onClick` deduplicates against the resulting
234
+ // `parsedSelectedSections` on the click bubble (see
235
+ // `useFieldSectionContainerProps`), so we always select here and let that
236
+ // guard absorb the redundant call -- matching the pre-PR
237
+ // `onSelectedSectionsChange` invocation count.
238
+ setSelectedSections(parsedIndex);
239
+ });
178
240
  const handleInput = (0, _useEventCallback.default)(event => {
179
241
  if (!domGetters.isReady() || parsedSelectedSections !== 'all') {
180
242
  return;
@@ -242,6 +304,7 @@ function useFieldRootProps(parameters) {
242
304
  onBlur: handleBlur,
243
305
  onFocus: handleFocus,
244
306
  onClick: handleClick,
307
+ onMouseDown: handleMouseDown,
245
308
  onPaste: handlePaste,
246
309
  onInput: handleInput,
247
310
  // Other
@@ -249,6 +312,30 @@ function useFieldRootProps(parameters) {
249
312
  tabIndex: internalPropsWithDefaults.disabled || parsedSelectedSections === 0 ? -1 : 0 // TODO: Try to set to undefined when there is a section selected.
250
313
  };
251
314
  }
315
+
316
+ /**
317
+ * Returns the index of the section whose horizontal center is closest to `clientX`.
318
+ * Returns `null` if the field renders no `[role="spinbutton"]` descendants
319
+ * (defensive — every section content span sets `role="spinbutton"` in practice).
320
+ */
321
+ function findClosestSectionIndexToPoint(root, clientX) {
322
+ const sections = root.querySelectorAll('[role="spinbutton"]');
323
+ if (sections.length === 0) {
324
+ return null;
325
+ }
326
+ let closestIndex = 0;
327
+ let closestDistance = Infinity;
328
+ for (let i = 0; i < sections.length; i += 1) {
329
+ const rect = sections[i].getBoundingClientRect();
330
+ const center = (rect.left + rect.right) / 2;
331
+ const distance = Math.abs(clientX - center);
332
+ if (distance < closestDistance) {
333
+ closestDistance = distance;
334
+ closestIndex = i;
335
+ }
336
+ }
337
+ return closestIndex;
338
+ }
252
339
  function getDeltaFromKeyCode(keyCode) {
253
340
  switch (keyCode) {
254
341
  case 'ArrowUp':