@mui/x-date-pickers 8.0.0-alpha.6 → 8.0.0-alpha.8

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 (327) hide show
  1. package/AdapterDateFns/AdapterDateFns.d.ts +2 -4
  2. package/AdapterDateFns/AdapterDateFns.js +49 -47
  3. package/AdapterDateFnsBase/AdapterDateFnsBase.d.ts +1 -1
  4. package/AdapterDateFnsJalali/AdapterDateFnsJalali.d.ts +2 -4
  5. package/AdapterDateFnsJalali/AdapterDateFnsJalali.js +48 -46
  6. package/{AdapterDateFnsJalaliV3/AdapterDateFnsJalaliV3.d.ts → AdapterDateFnsJalaliV2/AdapterDateFnsJalaliV2.d.ts} +2 -2
  7. package/{AdapterDateFnsJalaliV3/AdapterDateFnsJalaliV3.js → AdapterDateFnsJalaliV2/AdapterDateFnsJalaliV2.js} +45 -52
  8. package/AdapterDateFnsJalaliV2/index.d.ts +1 -0
  9. package/AdapterDateFnsJalaliV2/index.js +1 -0
  10. package/{AdapterDateFnsJalaliV3 → AdapterDateFnsJalaliV2}/package.json +1 -1
  11. package/{AdapterDateFnsV3/AdapterDateFnsV3.d.ts → AdapterDateFnsV2/AdapterDateFnsV2.d.ts} +2 -2
  12. package/{AdapterDateFnsV3/AdapterDateFnsV3.js → AdapterDateFnsV2/AdapterDateFnsV2.js} +46 -54
  13. package/AdapterDateFnsV2/index.d.ts +1 -0
  14. package/AdapterDateFnsV2/index.js +1 -0
  15. package/{AdapterDateFnsV3 → AdapterDateFnsV2}/package.json +1 -1
  16. package/AdapterDayjs/AdapterDayjs.d.ts +1 -1
  17. package/AdapterLuxon/AdapterLuxon.d.ts +1 -1
  18. package/AdapterMoment/AdapterMoment.d.ts +1 -1
  19. package/CHANGELOG.md +242 -1
  20. package/DateCalendar/DateCalendar.js +1 -1
  21. package/DateCalendar/PickersFadeTransitionGroup.d.ts +1 -1
  22. package/DateCalendar/PickersSlideTransition.d.ts +1 -1
  23. package/DateField/DateField.js +26 -31
  24. package/DateField/DateField.types.d.ts +6 -15
  25. package/DateField/useDateField.d.ts +1 -1
  26. package/DateField/useDateField.js +14 -11
  27. package/DatePicker/DatePicker.js +1 -1
  28. package/DatePicker/DatePicker.types.d.ts +5 -0
  29. package/DatePicker/DatePickerToolbar.d.ts +1 -2
  30. package/DatePicker/DatePickerToolbar.js +7 -11
  31. package/DatePicker/shared.d.ts +1 -1
  32. package/DateTimeField/DateTimeField.js +26 -31
  33. package/DateTimeField/DateTimeField.types.d.ts +6 -15
  34. package/DateTimeField/useDateTimeField.d.ts +1 -1
  35. package/DateTimeField/useDateTimeField.js +14 -11
  36. package/DateTimePicker/DateTimePicker.js +2 -2
  37. package/DateTimePicker/DateTimePickerTabs.js +2 -2
  38. package/DateTimePicker/DateTimePickerToolbar.d.ts +6 -2
  39. package/DateTimePicker/DateTimePickerToolbar.js +36 -31
  40. package/DateTimePicker/shared.d.ts +1 -1
  41. package/DesktopDatePicker/DesktopDatePicker.js +9 -14
  42. package/DesktopDatePicker/DesktopDatePicker.types.d.ts +5 -0
  43. package/DesktopDateTimePicker/DesktopDateTimePicker.js +14 -22
  44. package/DesktopDateTimePicker/DesktopDateTimePickerLayout.js +1 -5
  45. package/DesktopTimePicker/DesktopTimePicker.js +4 -19
  46. package/MobileDatePicker/MobileDatePicker.js +2 -11
  47. package/MobileDateTimePicker/MobileDateTimePicker.js +2 -11
  48. package/MobileTimePicker/MobileTimePicker.js +2 -11
  49. package/PickersActionBar/PickersActionBar.d.ts +6 -3
  50. package/PickersActionBar/PickersActionBar.js +6 -3
  51. package/PickersLayout/PickersLayout.js +1 -5
  52. package/PickersLayout/PickersLayout.types.d.ts +2 -3
  53. package/PickersLayout/usePickerLayout.js +12 -31
  54. package/PickersShortcuts/PickersShortcuts.d.ts +2 -5
  55. package/PickersShortcuts/PickersShortcuts.js +13 -10
  56. package/PickersShortcuts/index.d.ts +1 -1
  57. package/PickersTextField/PickersInputBase/PickersInputBase.js +7 -0
  58. package/PickersTextField/PickersTextField.js +1 -1
  59. package/TimeField/TimeField.js +25 -30
  60. package/TimeField/TimeField.types.d.ts +6 -15
  61. package/TimeField/useTimeField.d.ts +1 -1
  62. package/TimeField/useTimeField.js +14 -11
  63. package/TimePicker/TimePicker.js +2 -2
  64. package/TimePicker/TimePickerToolbar.d.ts +1 -2
  65. package/TimePicker/TimePickerToolbar.js +20 -18
  66. package/TimePicker/shared.d.ts +1 -1
  67. package/hooks/index.d.ts +1 -0
  68. package/hooks/index.js +2 -1
  69. package/hooks/useIsValidValue.d.ts +7 -0
  70. package/hooks/useIsValidValue.js +11 -0
  71. package/hooks/useParsedFormat.d.ts +8 -6
  72. package/hooks/useParsedFormat.js +10 -12
  73. package/hooks/usePickerActionsContext.d.ts +3 -1
  74. package/hooks/usePickerActionsContext.js +0 -1
  75. package/hooks/usePickerContext.d.ts +5 -3
  76. package/hooks/usePickerContext.js +3 -2
  77. package/hooks/useSplitFieldProps.d.ts +12 -3
  78. package/hooks/useSplitFieldProps.js +8 -3
  79. package/index.d.ts +1 -0
  80. package/index.js +3 -2
  81. package/internals/components/PickerFieldUI.d.ts +132 -0
  82. package/internals/components/PickerFieldUI.js +306 -0
  83. package/internals/components/PickerProvider.d.ts +34 -12
  84. package/internals/components/PickerProvider.js +14 -4
  85. package/internals/components/PickersToolbar.d.ts +2 -3
  86. package/internals/components/PickersToolbar.js +1 -1
  87. package/internals/hooks/date-helpers-hooks.js +4 -3
  88. package/internals/hooks/useDesktopPicker/useDesktopPicker.d.ts +1 -1
  89. package/internals/hooks/useDesktopPicker/useDesktopPicker.js +21 -96
  90. package/internals/hooks/useDesktopPicker/useDesktopPicker.types.d.ts +10 -33
  91. package/internals/hooks/useField/buildSectionsFromFormat.js +1 -1
  92. package/internals/hooks/useField/index.d.ts +2 -0
  93. package/internals/hooks/useField/index.js +2 -1
  94. package/internals/hooks/useField/useField.js +12 -4
  95. package/internals/hooks/useField/useField.types.d.ts +11 -4
  96. package/internals/hooks/useField/useField.utils.js +2 -2
  97. package/internals/hooks/useField/useFieldInternalPropsWithDefaults.d.ts +15 -0
  98. package/internals/hooks/useField/useFieldInternalPropsWithDefaults.js +46 -0
  99. package/internals/hooks/useField/useFieldState.js +2 -2
  100. package/internals/hooks/useField/useFieldV6TextField.js +2 -2
  101. package/internals/hooks/useField/useFieldV7TextField.js +3 -3
  102. package/internals/hooks/useFieldOwnerState.d.ts +1 -2
  103. package/internals/hooks/useMobilePicker/useMobilePicker.d.ts +1 -1
  104. package/internals/hooks/useMobilePicker/useMobilePicker.js +20 -51
  105. package/internals/hooks/useMobilePicker/useMobilePicker.types.d.ts +8 -16
  106. package/internals/hooks/useNullablePickerContext.d.ts +5 -0
  107. package/internals/hooks/useNullablePickerContext.js +10 -0
  108. package/internals/hooks/useOpenState.js +3 -2
  109. package/internals/hooks/usePicker/usePicker.d.ts +1 -2
  110. package/internals/hooks/usePicker/usePicker.js +0 -9
  111. package/internals/hooks/usePicker/usePicker.types.d.ts +7 -9
  112. package/internals/hooks/usePicker/usePickerProvider.d.ts +12 -6
  113. package/internals/hooks/usePicker/usePickerProvider.js +26 -4
  114. package/internals/hooks/usePicker/usePickerValue.d.ts +1 -1
  115. package/internals/hooks/usePicker/usePickerValue.js +62 -185
  116. package/internals/hooks/usePicker/usePickerValue.types.d.ts +52 -55
  117. package/internals/hooks/usePicker/usePickerViews.d.ts +27 -23
  118. package/internals/hooks/usePicker/usePickerViews.js +17 -11
  119. package/internals/hooks/useStaticPicker/useStaticPicker.js +1 -4
  120. package/internals/hooks/useStaticPicker/useStaticPicker.types.d.ts +2 -2
  121. package/internals/hooks/useUtils.d.ts +4 -3
  122. package/internals/hooks/useUtils.js +1 -1
  123. package/internals/index.d.ts +11 -6
  124. package/internals/index.js +6 -4
  125. package/internals/models/fields.d.ts +3 -16
  126. package/internals/models/index.d.ts +1 -0
  127. package/internals/models/index.js +2 -1
  128. package/internals/models/manager.d.ts +15 -0
  129. package/internals/models/manager.js +1 -0
  130. package/internals/models/props/basePickerProps.d.ts +2 -14
  131. package/internals/models/props/toolbar.d.ts +1 -5
  132. package/internals/utils/date-utils.js +1 -1
  133. package/internals/utils/valueManagers.js +4 -4
  134. package/locales/index.d.ts +1 -0
  135. package/locales/index.js +1 -0
  136. package/locales/nbNO.js +15 -19
  137. package/locales/utils/getPickersLocalization.d.ts +0 -7
  138. package/locales/utils/getPickersLocalization.js +0 -13
  139. package/locales/zhTW.d.ts +80 -0
  140. package/locales/zhTW.js +73 -0
  141. package/managers/index.d.ts +6 -0
  142. package/managers/index.js +3 -0
  143. package/managers/package.json +6 -0
  144. package/managers/useDateManager.d.ts +27 -0
  145. package/managers/useDateManager.js +55 -0
  146. package/managers/useDateTimeManager.d.ts +28 -0
  147. package/managers/useDateTimeManager.js +60 -0
  148. package/managers/useTimeManager.d.ts +28 -0
  149. package/managers/useTimeManager.js +51 -0
  150. package/models/adapters.d.ts +1 -1
  151. package/models/fields.d.ts +4 -4
  152. package/models/index.d.ts +1 -0
  153. package/models/index.js +1 -0
  154. package/models/manager.d.ts +87 -0
  155. package/models/manager.js +1 -0
  156. package/models/pickers.d.ts +7 -0
  157. package/modern/AdapterDateFns/AdapterDateFns.js +49 -47
  158. package/modern/AdapterDateFnsJalali/AdapterDateFnsJalali.js +48 -46
  159. package/modern/{AdapterDateFnsJalaliV3/AdapterDateFnsJalaliV3.js → AdapterDateFnsJalaliV2/AdapterDateFnsJalaliV2.js} +45 -52
  160. package/modern/AdapterDateFnsJalaliV2/index.js +1 -0
  161. package/modern/{AdapterDateFnsV3/AdapterDateFnsV3.js → AdapterDateFnsV2/AdapterDateFnsV2.js} +46 -54
  162. package/modern/AdapterDateFnsV2/index.js +1 -0
  163. package/modern/DateCalendar/DateCalendar.js +1 -1
  164. package/modern/DateField/DateField.js +26 -31
  165. package/modern/DateField/useDateField.js +14 -11
  166. package/modern/DatePicker/DatePicker.js +1 -1
  167. package/modern/DatePicker/DatePickerToolbar.js +7 -11
  168. package/modern/DateTimeField/DateTimeField.js +26 -31
  169. package/modern/DateTimeField/useDateTimeField.js +14 -11
  170. package/modern/DateTimePicker/DateTimePicker.js +2 -2
  171. package/modern/DateTimePicker/DateTimePickerTabs.js +2 -2
  172. package/modern/DateTimePicker/DateTimePickerToolbar.js +36 -31
  173. package/modern/DesktopDatePicker/DesktopDatePicker.js +9 -14
  174. package/modern/DesktopDateTimePicker/DesktopDateTimePicker.js +14 -22
  175. package/modern/DesktopDateTimePicker/DesktopDateTimePickerLayout.js +1 -5
  176. package/modern/DesktopTimePicker/DesktopTimePicker.js +4 -19
  177. package/modern/MobileDatePicker/MobileDatePicker.js +2 -11
  178. package/modern/MobileDateTimePicker/MobileDateTimePicker.js +2 -11
  179. package/modern/MobileTimePicker/MobileTimePicker.js +2 -11
  180. package/modern/PickersActionBar/PickersActionBar.js +6 -3
  181. package/modern/PickersLayout/PickersLayout.js +1 -5
  182. package/modern/PickersLayout/usePickerLayout.js +12 -31
  183. package/modern/PickersShortcuts/PickersShortcuts.js +13 -10
  184. package/modern/PickersTextField/PickersInputBase/PickersInputBase.js +7 -0
  185. package/modern/PickersTextField/PickersTextField.js +1 -1
  186. package/modern/TimeField/TimeField.js +25 -30
  187. package/modern/TimeField/useTimeField.js +14 -11
  188. package/modern/TimePicker/TimePicker.js +2 -2
  189. package/modern/TimePicker/TimePickerToolbar.js +20 -18
  190. package/modern/hooks/index.js +2 -1
  191. package/modern/hooks/useIsValidValue.js +11 -0
  192. package/modern/hooks/useParsedFormat.js +10 -12
  193. package/modern/hooks/usePickerActionsContext.js +0 -1
  194. package/modern/hooks/usePickerContext.js +3 -2
  195. package/modern/hooks/useSplitFieldProps.js +8 -3
  196. package/modern/index.js +3 -2
  197. package/modern/internals/components/PickerFieldUI.js +306 -0
  198. package/modern/internals/components/PickerProvider.js +14 -4
  199. package/modern/internals/components/PickersToolbar.js +1 -1
  200. package/modern/internals/hooks/date-helpers-hooks.js +4 -3
  201. package/modern/internals/hooks/useDesktopPicker/useDesktopPicker.js +21 -96
  202. package/modern/internals/hooks/useField/buildSectionsFromFormat.js +1 -1
  203. package/modern/internals/hooks/useField/index.js +2 -1
  204. package/modern/internals/hooks/useField/useField.js +12 -4
  205. package/modern/internals/hooks/useField/useField.utils.js +2 -2
  206. package/modern/internals/hooks/useField/useFieldInternalPropsWithDefaults.js +46 -0
  207. package/modern/internals/hooks/useField/useFieldState.js +2 -2
  208. package/modern/internals/hooks/useField/useFieldV6TextField.js +2 -2
  209. package/modern/internals/hooks/useField/useFieldV7TextField.js +3 -3
  210. package/modern/internals/hooks/useMobilePicker/useMobilePicker.js +20 -51
  211. package/modern/internals/hooks/useNullablePickerContext.js +10 -0
  212. package/modern/internals/hooks/useOpenState.js +3 -2
  213. package/modern/internals/hooks/usePicker/usePicker.js +0 -9
  214. package/modern/internals/hooks/usePicker/usePickerProvider.js +26 -4
  215. package/modern/internals/hooks/usePicker/usePickerValue.js +62 -185
  216. package/modern/internals/hooks/usePicker/usePickerViews.js +17 -11
  217. package/modern/internals/hooks/useStaticPicker/useStaticPicker.js +1 -4
  218. package/modern/internals/hooks/useUtils.js +1 -1
  219. package/modern/internals/index.js +6 -4
  220. package/modern/internals/models/index.js +2 -1
  221. package/modern/internals/models/manager.js +1 -0
  222. package/modern/internals/utils/date-utils.js +1 -1
  223. package/modern/internals/utils/valueManagers.js +4 -4
  224. package/modern/locales/index.js +1 -0
  225. package/modern/locales/nbNO.js +15 -19
  226. package/modern/locales/utils/getPickersLocalization.js +0 -13
  227. package/modern/locales/zhTW.js +73 -0
  228. package/modern/managers/index.js +3 -0
  229. package/modern/managers/useDateManager.js +55 -0
  230. package/modern/managers/useDateTimeManager.js +60 -0
  231. package/modern/managers/useTimeManager.js +51 -0
  232. package/modern/models/index.js +1 -0
  233. package/modern/models/manager.js +1 -0
  234. package/node/AdapterDateFns/AdapterDateFns.js +97 -97
  235. package/node/AdapterDateFnsJalali/AdapterDateFnsJalali.js +97 -96
  236. package/node/{AdapterDateFnsJalaliV3/AdapterDateFnsJalaliV3.js → AdapterDateFnsJalaliV2/AdapterDateFnsJalaliV2.js} +94 -101
  237. package/node/{AdapterDateFnsJalaliV3 → AdapterDateFnsJalaliV2}/index.js +1 -1
  238. package/node/AdapterDateFnsV2/AdapterDateFnsV2.js +291 -0
  239. package/node/{AdapterDateFnsV3 → AdapterDateFnsV2}/index.js +1 -1
  240. package/node/DateCalendar/DateCalendar.js +1 -1
  241. package/node/DateField/DateField.js +26 -31
  242. package/node/DateField/useDateField.js +13 -10
  243. package/node/DatePicker/DatePicker.js +1 -1
  244. package/node/DatePicker/DatePickerToolbar.js +7 -11
  245. package/node/DateTimeField/DateTimeField.js +26 -31
  246. package/node/DateTimeField/useDateTimeField.js +13 -10
  247. package/node/DateTimePicker/DateTimePicker.js +2 -2
  248. package/node/DateTimePicker/DateTimePickerTabs.js +2 -2
  249. package/node/DateTimePicker/DateTimePickerToolbar.js +36 -31
  250. package/node/DesktopDatePicker/DesktopDatePicker.js +9 -14
  251. package/node/DesktopDateTimePicker/DesktopDateTimePicker.js +14 -22
  252. package/node/DesktopDateTimePicker/DesktopDateTimePickerLayout.js +1 -5
  253. package/node/DesktopTimePicker/DesktopTimePicker.js +4 -19
  254. package/node/MobileDatePicker/MobileDatePicker.js +2 -11
  255. package/node/MobileDateTimePicker/MobileDateTimePicker.js +2 -11
  256. package/node/MobileTimePicker/MobileTimePicker.js +2 -11
  257. package/node/PickersActionBar/PickersActionBar.js +8 -5
  258. package/node/PickersLayout/PickersLayout.js +1 -5
  259. package/node/PickersLayout/usePickerLayout.js +16 -35
  260. package/node/PickersShortcuts/PickersShortcuts.js +13 -10
  261. package/node/PickersTextField/PickersInputBase/PickersInputBase.js +7 -0
  262. package/node/PickersTextField/PickersTextField.js +1 -1
  263. package/node/TimeField/TimeField.js +25 -30
  264. package/node/TimeField/useTimeField.js +13 -10
  265. package/node/TimePicker/TimePicker.js +2 -2
  266. package/node/TimePicker/TimePickerToolbar.js +20 -18
  267. package/node/hooks/index.js +8 -1
  268. package/node/hooks/useIsValidValue.js +18 -0
  269. package/node/hooks/useParsedFormat.js +10 -12
  270. package/node/hooks/usePickerContext.js +5 -4
  271. package/node/hooks/useSplitFieldProps.js +7 -2
  272. package/node/index.js +13 -1
  273. package/node/internals/components/PickerFieldUI.js +318 -0
  274. package/node/internals/components/PickerProvider.js +16 -6
  275. package/node/internals/components/PickersToolbar.js +1 -1
  276. package/node/internals/hooks/date-helpers-hooks.js +4 -3
  277. package/node/internals/hooks/useDesktopPicker/useDesktopPicker.js +23 -98
  278. package/node/internals/hooks/useField/buildSectionsFromFormat.js +1 -1
  279. package/node/internals/hooks/useField/index.js +8 -1
  280. package/node/internals/hooks/useField/useField.js +11 -3
  281. package/node/internals/hooks/useField/useField.utils.js +2 -2
  282. package/node/internals/hooks/useField/useFieldInternalPropsWithDefaults.js +55 -0
  283. package/node/internals/hooks/useField/useFieldState.js +2 -2
  284. package/node/internals/hooks/useField/useFieldV6TextField.js +2 -2
  285. package/node/internals/hooks/useField/useFieldV7TextField.js +3 -3
  286. package/node/internals/hooks/useMobilePicker/useMobilePicker.js +20 -51
  287. package/node/internals/hooks/useNullablePickerContext.js +16 -0
  288. package/node/internals/hooks/useOpenState.js +4 -2
  289. package/node/internals/hooks/usePicker/usePicker.js +0 -10
  290. package/node/internals/hooks/usePicker/usePickerProvider.js +26 -4
  291. package/node/internals/hooks/usePicker/usePickerValue.js +62 -185
  292. package/node/internals/hooks/usePicker/usePickerViews.js +17 -12
  293. package/node/internals/hooks/useStaticPicker/useStaticPicker.js +1 -4
  294. package/node/internals/hooks/useUtils.js +1 -1
  295. package/node/internals/index.js +45 -19
  296. package/node/internals/models/index.js +11 -0
  297. package/node/internals/models/manager.js +5 -0
  298. package/node/internals/utils/date-utils.js +1 -1
  299. package/node/internals/utils/valueManagers.js +4 -4
  300. package/node/locales/index.js +11 -0
  301. package/node/locales/nbNO.js +15 -19
  302. package/node/locales/utils/getPickersLocalization.js +2 -16
  303. package/node/locales/zhTW.js +79 -0
  304. package/node/managers/index.js +26 -0
  305. package/node/managers/useDateManager.js +63 -0
  306. package/node/managers/useDateTimeManager.js +68 -0
  307. package/node/managers/useTimeManager.js +59 -0
  308. package/node/models/index.js +11 -0
  309. package/node/models/manager.js +5 -0
  310. package/package.json +3 -3
  311. package/themeAugmentation/props.d.ts +1 -1
  312. package/validation/extractValidationProps.d.ts +1 -1
  313. package/AdapterDateFnsJalaliV3/index.d.ts +0 -1
  314. package/AdapterDateFnsJalaliV3/index.js +0 -1
  315. package/AdapterDateFnsV3/index.d.ts +0 -1
  316. package/AdapterDateFnsV3/index.js +0 -1
  317. package/internals/hooks/defaultizedFieldProps.d.ts +0 -18
  318. package/internals/hooks/defaultizedFieldProps.js +0 -40
  319. package/internals/utils/convertFieldResponseIntoMuiTextFieldProps.d.ts +0 -3
  320. package/internals/utils/convertFieldResponseIntoMuiTextFieldProps.js +0 -44
  321. package/modern/AdapterDateFnsJalaliV3/index.js +0 -1
  322. package/modern/AdapterDateFnsV3/index.js +0 -1
  323. package/modern/internals/hooks/defaultizedFieldProps.js +0 -40
  324. package/modern/internals/utils/convertFieldResponseIntoMuiTextFieldProps.js +0 -44
  325. package/node/AdapterDateFnsV3/AdapterDateFnsV3.js +0 -299
  326. package/node/internals/hooks/defaultizedFieldProps.js +0 -50
  327. package/node/internals/utils/convertFieldResponseIntoMuiTextFieldProps.js +0 -52
@@ -5,106 +5,6 @@ import { useOpenState } from "../useOpenState.js";
5
5
  import { useLocalizationContext, useUtils } from "../useUtils.js";
6
6
  import { useValidation } from "../../../validation/index.js";
7
7
  import { useValueWithTimezone } from "../useValueWithTimezone.js";
8
- /**
9
- * Decide if the new value should be published
10
- * The published value will be passed to `onChange` if defined.
11
- */
12
- const shouldPublishValue = params => {
13
- const {
14
- action,
15
- hasChanged,
16
- dateState,
17
- isControlled
18
- } = params;
19
- const isCurrentValueTheDefaultValue = !isControlled && !dateState.hasBeenModifiedSinceMount;
20
-
21
- // The field is responsible for only calling `onChange` when needed.
22
- if (action.name === 'setValueFromField') {
23
- return true;
24
- }
25
- if (action.name === 'setValueFromAction') {
26
- // If the component is not controlled, and the value has not been modified since the mount,
27
- // Then we want to publish the default value whenever the user pressed the "Accept", "Today" or "Clear" button.
28
- if (isCurrentValueTheDefaultValue && ['accept', 'today', 'clear'].includes(action.pickerAction)) {
29
- return true;
30
- }
31
- return hasChanged(dateState.lastPublishedValue);
32
- }
33
- if (action.name === 'setValueFromView' && action.selectionState !== 'shallow') {
34
- // On the first view,
35
- // If the value is not controlled, then clicking on any value (including the one equal to `defaultValue`) should call `onChange`
36
- if (isCurrentValueTheDefaultValue) {
37
- return true;
38
- }
39
- return hasChanged(dateState.lastPublishedValue);
40
- }
41
- if (action.name === 'setValueFromShortcut') {
42
- // On the first view,
43
- // If the value is not controlled, then clicking on any value (including the one equal to `defaultValue`) should call `onChange`
44
- if (isCurrentValueTheDefaultValue) {
45
- return true;
46
- }
47
- return hasChanged(dateState.lastPublishedValue);
48
- }
49
- return false;
50
- };
51
-
52
- /**
53
- * Decide if the new value should be committed.
54
- * The committed value will be passed to `onAccept` if defined.
55
- * It will also be used as a reset target when calling the `cancel` picker action (when clicking on the "Cancel" button).
56
- */
57
- const shouldCommitValue = params => {
58
- const {
59
- action,
60
- hasChanged,
61
- dateState,
62
- isControlled,
63
- closeOnSelect
64
- } = params;
65
- const isCurrentValueTheDefaultValue = !isControlled && !dateState.hasBeenModifiedSinceMount;
66
- if (action.name === 'setValueFromAction') {
67
- // If the component is not controlled, and the value has not been modified since the mount,
68
- // Then we want to commit the default value whenever the user pressed the "Accept", "Today" or "Clear" button.
69
- if (isCurrentValueTheDefaultValue && ['accept', 'today', 'clear'].includes(action.pickerAction)) {
70
- return true;
71
- }
72
- return hasChanged(dateState.lastCommittedValue);
73
- }
74
- if (action.name === 'setValueFromView' && action.selectionState === 'finish' && closeOnSelect) {
75
- // On picker where the 1st view is also the last view,
76
- // If the value is not controlled, then clicking on any value (including the one equal to `defaultValue`) should call `onAccept`
77
- if (isCurrentValueTheDefaultValue) {
78
- return true;
79
- }
80
- return hasChanged(dateState.lastCommittedValue);
81
- }
82
- if (action.name === 'setValueFromShortcut') {
83
- return action.changeImportance === 'accept' && hasChanged(dateState.lastCommittedValue);
84
- }
85
- return false;
86
- };
87
-
88
- /**
89
- * Decide if the picker should be closed after the value is updated.
90
- */
91
- const shouldClosePicker = params => {
92
- const {
93
- action,
94
- closeOnSelect
95
- } = params;
96
- if (action.name === 'setValueFromAction') {
97
- return true;
98
- }
99
- if (action.name === 'setValueFromView') {
100
- return action.selectionState === 'finish' && closeOnSelect;
101
- }
102
- if (action.name === 'setValueFromShortcut') {
103
- return action.changeImportance === 'accept';
104
- }
105
- return false;
106
- };
107
-
108
8
  /**
109
9
  * Manage the value lifecycle of all the pickers.
110
10
  */
@@ -112,7 +12,6 @@ export const usePickerValue = ({
112
12
  props,
113
13
  valueManager,
114
14
  valueType,
115
- variant,
116
15
  validator
117
16
  }) => {
118
17
  const {
@@ -120,7 +19,7 @@ export const usePickerValue = ({
120
19
  onChange,
121
20
  value: inValueWithoutRenderTimezone,
122
21
  defaultValue: inDefaultValue,
123
- closeOnSelect = variant === 'desktop',
22
+ closeOnSelect = false,
124
23
  timezone: timezoneProp,
125
24
  referenceDate
126
25
  } = props;
@@ -200,43 +99,49 @@ export const usePickerValue = ({
200
99
  value: dateState.draft,
201
100
  onError: props.onError
202
101
  });
203
- const updateDate = useEventCallback(action => {
204
- const updaterParams = {
205
- action,
206
- dateState,
207
- hasChanged: comparison => !valueManager.areValuesEqual(utils, action.value, comparison),
208
- isControlled,
209
- closeOnSelect
210
- };
211
- const shouldPublish = shouldPublishValue(updaterParams);
212
- const shouldCommit = shouldCommitValue(updaterParams);
213
- const shouldClose = shouldClosePicker(updaterParams);
102
+ const setValue = useEventCallback((newValue, options) => {
103
+ const {
104
+ changeImportance = 'accept',
105
+ skipPublicationIfPristine = false,
106
+ validationError,
107
+ shortcut
108
+ } = options ?? {};
109
+ let shouldPublish;
110
+ let shouldCommit;
111
+ if (!skipPublicationIfPristine && !isControlled && !dateState.hasBeenModifiedSinceMount) {
112
+ // If the value is not controlled and the value has never been modified before,
113
+ // Then clicking on any value (including the one equal to `defaultValue`) should call `onChange` and `onAccept`
114
+ shouldPublish = true;
115
+ shouldCommit = changeImportance === 'accept';
116
+ } else {
117
+ shouldPublish = !valueManager.areValuesEqual(utils, newValue, dateState.lastPublishedValue);
118
+ shouldCommit = changeImportance === 'accept' && !valueManager.areValuesEqual(utils, newValue, dateState.lastCommittedValue);
119
+ }
214
120
  setDateState(prev => _extends({}, prev, {
215
- draft: action.value,
216
- lastPublishedValue: shouldPublish ? action.value : prev.lastPublishedValue,
217
- lastCommittedValue: shouldCommit ? action.value : prev.lastCommittedValue,
121
+ draft: newValue,
122
+ lastPublishedValue: shouldPublish ? newValue : prev.lastPublishedValue,
123
+ lastCommittedValue: shouldCommit ? newValue : prev.lastCommittedValue,
218
124
  hasBeenModifiedSinceMount: true
219
125
  }));
220
126
  let cachedContext = null;
221
127
  const getContext = () => {
222
128
  if (!cachedContext) {
223
- const validationError = action.name === 'setValueFromField' ? action.context.validationError : getValidationErrorForNewValue(action.value);
224
129
  cachedContext = {
225
- validationError
130
+ validationError: validationError == null ? getValidationErrorForNewValue(newValue) : validationError
226
131
  };
227
- if (action.name === 'setValueFromShortcut') {
228
- cachedContext.shortcut = action.shortcut;
132
+ if (shortcut) {
133
+ cachedContext.shortcut = shortcut;
229
134
  }
230
135
  }
231
136
  return cachedContext;
232
137
  };
233
138
  if (shouldPublish) {
234
- handleValueChange(action.value, getContext());
139
+ handleValueChange(newValue, getContext());
235
140
  }
236
141
  if (shouldCommit && onAccept) {
237
- onAccept(action.value, getContext());
142
+ onAccept(newValue, getContext());
238
143
  }
239
- if (shouldClose) {
144
+ if (changeImportance === 'accept') {
240
145
  setOpen(false);
241
146
  }
242
147
  });
@@ -251,33 +156,6 @@ export const usePickerValue = ({
251
156
  hasBeenModifiedSinceMount: true
252
157
  }));
253
158
  }
254
- const handleChange = useEventCallback((newValue, selectionState = 'partial') => updateDate({
255
- name: 'setValueFromView',
256
- value: newValue,
257
- selectionState
258
- }));
259
- const handleSelectShortcut = useEventCallback((newValue, changeImportance, shortcut) => updateDate({
260
- name: 'setValueFromShortcut',
261
- value: newValue,
262
- changeImportance,
263
- shortcut
264
- }));
265
- const handleChangeFromField = useEventCallback((newValue, context) => updateDate({
266
- name: 'setValueFromField',
267
- value: newValue,
268
- context
269
- }));
270
- const fieldResponse = {
271
- value: dateState.draft,
272
- onChange: handleChangeFromField
273
- };
274
- const valueWithoutError = React.useMemo(() => valueManager.cleanValue(utils, dateState.draft), [utils, valueManager, dateState.draft]);
275
- const viewResponse = {
276
- value: valueWithoutError,
277
- onChange: handleChange,
278
- open,
279
- setOpen
280
- };
281
159
  const isValid = testedValue => {
282
160
  const error = validator({
283
161
  adapter,
@@ -287,62 +165,61 @@ export const usePickerValue = ({
287
165
  });
288
166
  return !valueManager.hasError(error);
289
167
  };
290
- const layoutResponse = {
291
- value: valueWithoutError,
292
- onChange: handleChange,
293
- onSelectShortcut: handleSelectShortcut,
294
- isValid
295
- };
296
- const clearValue = useEventCallback(() => updateDate({
297
- value: valueManager.emptyValue,
298
- name: 'setValueFromAction',
299
- pickerAction: 'clear'
300
- }));
301
- const setValueToToday = useEventCallback(() => updateDate({
302
- value: valueManager.getTodayValue(utils, timezone, valueType),
303
- name: 'setValueFromAction',
304
- pickerAction: 'today'
305
- }));
306
- const acceptValueChanges = useEventCallback(() => updateDate({
307
- value: dateState.lastPublishedValue,
308
- name: 'setValueFromAction',
309
- pickerAction: 'accept'
310
- }));
311
- const cancelValueChanges = useEventCallback(() => updateDate({
312
- value: dateState.lastCommittedValue,
313
- name: 'setValueFromAction',
314
- pickerAction: 'cancel'
168
+ const clearValue = useEventCallback(() => setValue(valueManager.emptyValue));
169
+ const setValueToToday = useEventCallback(() => setValue(valueManager.getTodayValue(utils, timezone, valueType)));
170
+ const acceptValueChanges = useEventCallback(() => setValue(dateState.lastPublishedValue));
171
+ const cancelValueChanges = useEventCallback(() => setValue(dateState.lastCommittedValue, {
172
+ skipPublicationIfPristine: true
315
173
  }));
316
174
  const dismissViews = useEventCallback(() => {
317
- updateDate({
318
- value: dateState.lastPublishedValue,
319
- name: 'setValueFromAction',
320
- pickerAction: 'dismiss'
175
+ setValue(dateState.lastPublishedValue, {
176
+ skipPublicationIfPristine: true
321
177
  });
322
178
  });
179
+ const setValueFromView = useEventCallback((newValue, selectionState = 'partial') => {
180
+ // TODO: Expose a new method (private?) like `setView` that only updates the draft value.
181
+ if (selectionState === 'shallow') {
182
+ setDateState(prev => _extends({}, prev, {
183
+ draft: newValue,
184
+ hasBeenModifiedSinceMount: true
185
+ }));
186
+ }
187
+ setValue(newValue, {
188
+ changeImportance: selectionState === 'finish' && closeOnSelect ? 'accept' : 'set'
189
+ });
190
+ });
191
+ const valueWithoutError = React.useMemo(() => valueManager.cleanValue(utils, dateState.draft), [utils, valueManager, dateState.draft]);
192
+ const viewResponse = {
193
+ value: valueWithoutError,
194
+ onChange: setValueFromView,
195
+ open,
196
+ setOpen
197
+ };
323
198
  const actionsContextValue = React.useMemo(() => ({
199
+ setValue,
324
200
  setOpen,
325
201
  clearValue,
326
202
  setValueToToday,
327
203
  acceptValueChanges,
328
204
  cancelValueChanges
329
- }), [setOpen, clearValue, setValueToToday, acceptValueChanges, cancelValueChanges]);
205
+ }), [setValue, setOpen, clearValue, setValueToToday, acceptValueChanges, cancelValueChanges]);
330
206
  const contextValue = React.useMemo(() => _extends({}, actionsContextValue, {
207
+ value: dateState.draft,
208
+ timezone,
331
209
  open
332
- }), [actionsContextValue, open]);
210
+ }), [actionsContextValue, timezone, open, dateState.draft]);
333
211
  const privateContextValue = React.useMemo(() => ({
334
212
  dismissViews
335
213
  }), [dismissViews]);
336
214
  const providerParams = {
337
- value: valueWithoutError,
215
+ value: dateState.draft,
338
216
  contextValue,
339
217
  actionsContextValue,
340
- privateContextValue
218
+ privateContextValue,
219
+ isValidContextValue: isValid
341
220
  };
342
221
  return {
343
- fieldProps: fieldResponse,
344
222
  viewProps: viewResponse,
345
- layoutProps: layoutResponse,
346
223
  provider: providerParams
347
224
  };
348
225
  };
@@ -14,7 +14,7 @@ import { isTimeView } from "../../utils/time-utils.js";
14
14
  /**
15
15
  * Props used to handle the value of the pickers.
16
16
  */
17
-
17
+ import { jsx as _jsx } from "react/jsx-runtime";
18
18
  /**
19
19
  * Manage the views of all the pickers:
20
20
  * - Handles the view switch
@@ -24,9 +24,8 @@ import { isTimeView } from "../../utils/time-utils.js";
24
24
  export const usePickerViews = ({
25
25
  props,
26
26
  propsFromPickerValue,
27
- additionalViewProps,
28
27
  autoFocusView,
29
- rendererInterceptor,
28
+ rendererInterceptor: RendererInterceptor,
30
29
  fieldRef
31
30
  }) => {
32
31
  const {
@@ -124,15 +123,18 @@ export const usePickerViews = ({
124
123
  setFocusedView(newView, true);
125
124
  }, [open]); // eslint-disable-line react-hooks/exhaustive-deps
126
125
 
127
- const contextValue = React.useMemo(() => ({
126
+ const actionsContextValue = React.useMemo(() => ({
127
+ setView
128
+ }), [setView]);
129
+ const contextValue = React.useMemo(() => _extends({}, actionsContextValue, {
128
130
  views,
129
- view: popperView,
130
- onViewChange: setView
131
- }), [views, popperView, setView]);
131
+ view: popperView
132
+ }), [actionsContextValue, views, popperView]);
132
133
  const providerParams = {
133
134
  hasUIView,
134
135
  views,
135
- contextValue
136
+ contextValue,
137
+ actionsContextValue
136
138
  };
137
139
  return {
138
140
  shouldRestoreFocus,
@@ -145,7 +147,7 @@ export const usePickerViews = ({
145
147
  if (renderer == null) {
146
148
  return null;
147
149
  }
148
- const rendererProps = _extends({}, propsToForwardToView, additionalViewProps, {
150
+ const rendererProps = _extends({}, propsToForwardToView, {
149
151
  views,
150
152
  timezone,
151
153
  value,
@@ -157,8 +159,12 @@ export const usePickerViews = ({
157
159
  showViewSwitcher: timeViewsCount > 1,
158
160
  timeViewsCount
159
161
  });
160
- if (rendererInterceptor) {
161
- return rendererInterceptor(viewRenderers, popperView, rendererProps);
162
+ if (RendererInterceptor) {
163
+ return /*#__PURE__*/_jsx(RendererInterceptor, {
164
+ viewRenderers: viewRenderers,
165
+ popperView: popperView,
166
+ rendererProps: rendererProps
167
+ });
162
168
  }
163
169
  return renderer(rendererProps);
164
170
  }
@@ -39,20 +39,17 @@ export const useStaticPicker = _ref => {
39
39
  autoFocus
40
40
  } = props;
41
41
  const {
42
- layoutProps,
43
42
  providerProps,
44
43
  renderCurrentView
45
44
  } = usePicker(_extends({}, pickerParams, {
46
45
  props,
47
46
  autoFocusView: autoFocus ?? false,
48
- fieldRef: undefined,
49
47
  localeText,
50
- additionalViewProps: {},
51
48
  variant: displayStaticWrapperAs
52
49
  }));
53
50
  const Layout = slots?.layout ?? PickerStaticLayout;
54
51
  const renderPicker = () => /*#__PURE__*/_jsx(PickerProvider, _extends({}, providerProps, {
55
- children: /*#__PURE__*/_jsx(Layout, _extends({}, layoutProps, slotProps?.layout, {
52
+ children: /*#__PURE__*/_jsx(Layout, _extends({}, slotProps?.layout, {
56
53
  slots: slots,
57
54
  slotProps: slotProps,
58
55
  sx: [...(Array.isArray(sx) ? sx : [sx]), ...(Array.isArray(slotProps?.layout?.sx) ? slotProps.layout.sx : [slotProps?.layout?.sx])],
@@ -19,7 +19,7 @@ export const useUtils = () => useLocalizationContext().utils;
19
19
  export const useDefaultDates = () => useLocalizationContext().defaultDates;
20
20
  export const useNow = timezone => {
21
21
  const utils = useUtils();
22
- const now = React.useRef();
22
+ const now = React.useRef(undefined);
23
23
  if (now.current === undefined) {
24
24
  now.current = utils.date(undefined, timezone);
25
25
  }
@@ -1,4 +1,5 @@
1
1
  export { PickersArrowSwitcher } from "./components/PickersArrowSwitcher/PickersArrowSwitcher.js";
2
+ export { PickerFieldUI, PickerFieldUIContextProvider, cleanFieldResponse, useFieldTextFieldProps } from "./components/PickerFieldUI.js";
2
3
  export { PickerProvider } from "./components/PickerProvider.js";
3
4
  export { PickersModalDialog } from "./components/PickersModalDialog.js";
4
5
  export { PickersPopper } from "./components/PickersPopper.js";
@@ -11,7 +12,7 @@ export { pickersPopperClasses } from "./components/pickersPopperClasses.js";
11
12
  export { PickersToolbarButton } from "./components/PickersToolbarButton.js";
12
13
  export { DAY_MARGIN, DIALOG_WIDTH, VIEW_HEIGHT } from "./constants/dimensions.js";
13
14
  export { useControlledValueWithTimezone } from "./hooks/useValueWithTimezone.js";
14
- export { useField, createDateStrForV7HiddenInputFromSections, createDateStrForV6InputFromSections } from "./hooks/useField/index.js";
15
+ export { useField, useFieldInternalPropsWithDefaults, createDateStrForV7HiddenInputFromSections, createDateStrForV6InputFromSections } from "./hooks/useField/index.js";
15
16
  export { useFieldOwnerState } from "./hooks/useFieldOwnerState.js";
16
17
  export { usePicker } from "./hooks/usePicker/index.js";
17
18
  export { usePickerPrivateContext } from "./hooks/usePickerPrivateContext.js";
@@ -20,15 +21,16 @@ export { useToolbarOwnerState } from "./hooks/useToolbarOwnerState.js";
20
21
  export { useLocalizationContext, useDefaultDates, useUtils, useNow } from "./hooks/useUtils.js";
21
22
  export { useViews } from "./hooks/useViews.js";
22
23
  export { usePreviousMonthDisabled, useNextMonthDisabled } from "./hooks/date-helpers-hooks.js";
23
- export { convertFieldResponseIntoMuiTextFieldProps } from "./utils/convertFieldResponseIntoMuiTextFieldProps.js";
24
24
  export { applyDefaultDate, replaceInvalidDateByNull, areDatesEqual, getTodayDate, isDatePickerView, mergeDateAndTime, formatMeridiem } from "./utils/date-utils.js";
25
25
  export { resolveTimeViewsResponse, resolveDateTimeFormat } from "./utils/date-time-utils.js";
26
26
  export { getDefaultReferenceDate } from "./utils/getDefaultReferenceDate.js";
27
27
  export { executeInTheNextEventLoopTick, getActiveElement, onSpaceOrEnter, DEFAULT_DESKTOP_MODE_MEDIA_QUERY } from "./utils/utils.js";
28
- export { useDefaultizedDateField, useDefaultizedTimeField, useDefaultizedDateTimeField } from "./hooks/defaultizedFieldProps.js";
29
28
  export { useDefaultReduceAnimations } from "./hooks/useDefaultReduceAnimations.js";
30
29
  export { applyDefaultViewProps } from "./utils/views.js";
31
30
  export { DayCalendar } from "../DateCalendar/DayCalendar.js";
32
31
  export { useCalendarState } from "../DateCalendar/useCalendarState.js";
33
32
  export { isInternalTimeView, isTimeView } from "./utils/time-utils.js";
34
- export { DateTimePickerToolbarOverrideContext } from "../DateTimePicker/DateTimePickerToolbar.js";
33
+ export { DateTimePickerToolbarOverrideContext } from "../DateTimePicker/DateTimePickerToolbar.js";
34
+ export { getDateFieldInternalPropsDefaults } from "../managers/useDateManager.js";
35
+ export { getTimeFieldInternalPropsDefaults } from "../managers/useTimeManager.js";
36
+ export { getDateTimeFieldInternalPropsDefaults } from "../managers/useDateTimeManager.js";
@@ -1,4 +1,5 @@
1
1
  export * from "./fields.js";
2
2
  export * from "./common.js";
3
3
  export * from "./value.js";
4
- export * from "./formProps.js";
4
+ export * from "./formProps.js";
5
+ export * from "./manager.js";
@@ -0,0 +1 @@
1
+ export {};
@@ -58,7 +58,7 @@ export const findClosestEnabledDate = ({
58
58
  }
59
59
  return null;
60
60
  };
61
- export const replaceInvalidDateByNull = (utils, value) => value == null || !utils.isValid(value) ? null : value;
61
+ export const replaceInvalidDateByNull = (utils, value) => !utils.isValid(value) ? null : value;
62
62
  export const applyDefaultDate = (utils, value, defaultValue) => {
63
63
  if (value == null || !utils.isValid(value)) {
64
64
  return defaultValue;
@@ -12,7 +12,7 @@ export const singleItemValueManager = {
12
12
  referenceDate
13
13
  } = _ref,
14
14
  params = _objectWithoutPropertiesLoose(_ref, _excluded);
15
- if (value != null && params.utils.isValid(value)) {
15
+ if (params.utils.isValid(value)) {
16
16
  return value;
17
17
  }
18
18
  if (referenceDate != null) {
@@ -25,11 +25,11 @@ export const singleItemValueManager = {
25
25
  isSameError: (a, b) => a === b,
26
26
  hasError: error => error != null,
27
27
  defaultErrorState: null,
28
- getTimezone: (utils, value) => value == null || !utils.isValid(value) ? null : utils.getTimezone(value),
28
+ getTimezone: (utils, value) => utils.isValid(value) ? utils.getTimezone(value) : null,
29
29
  setTimezone: (utils, timezone, value) => value == null ? null : utils.setTimezone(value, timezone)
30
30
  };
31
31
  export const singleItemFieldValueManager = {
32
- updateReferenceValue: (utils, value, prevReferenceValue) => value == null || !utils.isValid(value) ? prevReferenceValue : value,
32
+ updateReferenceValue: (utils, value, prevReferenceValue) => !utils.isValid(value) ? prevReferenceValue : value,
33
33
  getSectionsFromValue: (utils, date, prevSections, getSectionsFromDate) => {
34
34
  const shouldReUsePrevDateSections = !utils.isValid(date) && !!prevSections;
35
35
  if (shouldReUsePrevDateSections) {
@@ -45,7 +45,7 @@ export const singleItemFieldValueManager = {
45
45
  getSections: sections => sections,
46
46
  getNewValuesFromNewActiveDate: newActiveDate => ({
47
47
  value: newActiveDate,
48
- referenceValue: newActiveDate == null || !utils.isValid(newActiveDate) ? state.referenceValue : newActiveDate
48
+ referenceValue: utils.isValid(newActiveDate) ? newActiveDate : state.referenceValue
49
49
  })
50
50
  }),
51
51
  parseValueStr: (valueStr, referenceValue, parseDate) => parseDate(valueStr.trim(), referenceValue)
@@ -36,4 +36,5 @@ export * from "./urPK.js";
36
36
  export * from "./viVN.js";
37
37
  export * from "./zhCN.js";
38
38
  export * from "./zhHK.js";
39
+ export * from "./zhTW.js";
39
40
  export * from "./utils/pickersLocaleTextApi.js";
@@ -16,11 +16,10 @@ const nbNOPickers = {
16
16
  // DateRange labels
17
17
  start: 'Start',
18
18
  end: 'Slutt',
19
- // startDate: 'Start date',
20
- // startTime: 'Start time',
21
- // endDate: 'End date',
22
- // endTime: 'End time',
23
-
19
+ startDate: 'Startdato',
20
+ startTime: 'Starttid',
21
+ endDate: 'Sluttdato',
22
+ endTime: 'Slutttid',
24
23
  // Action bar
25
24
  cancelButtonLabel: 'Avbryt',
26
25
  clearButtonLabel: 'Fjern',
@@ -46,8 +45,7 @@ const nbNOPickers = {
46
45
  // Open picker labels
47
46
  openDatePickerDialogue: formattedDate => formattedDate ? `Velg dato, valgt dato er ${formattedDate}` : 'Velg dato',
48
47
  openTimePickerDialogue: formattedTime => formattedTime ? `Velg tid, valgt tid er ${formattedTime}` : 'Velg tid',
49
- // fieldClearLabel: 'Clear',
50
-
48
+ fieldClearLabel: 'Slett',
51
49
  // Table labels
52
50
  timeTableLabel: 'velg tid',
53
51
  dateTableLabel: 'velg dato',
@@ -59,19 +57,17 @@ const nbNOPickers = {
59
57
  fieldHoursPlaceholder: () => 'tt',
60
58
  fieldMinutesPlaceholder: () => 'mm',
61
59
  fieldSecondsPlaceholder: () => 'ss',
62
- fieldMeridiemPlaceholder: () => 'aa'
63
-
60
+ fieldMeridiemPlaceholder: () => 'aa',
64
61
  // View names
65
- // year: 'Year',
66
- // month: 'Month',
67
- // day: 'Day',
68
- // weekDay: 'Week day',
69
- // hours: 'Hours',
70
- // minutes: 'Minutes',
71
- // seconds: 'Seconds',
72
- // meridiem: 'Meridiem',
73
-
62
+ year: 'År',
63
+ month: 'Måned',
64
+ day: 'Dag',
65
+ weekDay: 'Ukedag',
66
+ hours: 'Timer',
67
+ minutes: 'Minutter',
68
+ seconds: 'Sekunder',
69
+ meridiem: 'Meridiem',
74
70
  // Common
75
- // empty: 'Empty',
71
+ empty: 'Tøm'
76
72
  };
77
73
  export const nbNO = getPickersLocalization(nbNOPickers);
@@ -9,17 +9,4 @@ export const getPickersLocalization = pickersTranslations => {
9
9
  }
10
10
  }
11
11
  };
12
- };
13
- export const buildGetOpenDialogAriaText = params => {
14
- const {
15
- utils,
16
- formatKey,
17
- contextTranslation,
18
- propsTranslation
19
- } = params;
20
- return value => {
21
- const formattedValue = value !== null && utils.isValid(value) ? utils.format(value, formatKey) : null;
22
- const translation = propsTranslation ?? contextTranslation;
23
- return translation(formattedValue);
24
- };
25
12
  };
@@ -0,0 +1,73 @@
1
+ import { getPickersLocalization } from "./utils/getPickersLocalization.js";
2
+ const views = {
3
+ hours: '小時',
4
+ minutes: '分鐘',
5
+ seconds: '秒',
6
+ meridiem: '十二小時制'
7
+ };
8
+ const zhTWPickers = {
9
+ // Calendar navigation
10
+ previousMonth: '上個月',
11
+ nextMonth: '下個月',
12
+ // View navigation
13
+ openPreviousView: '前一個視圖',
14
+ openNextView: '下一個視圖',
15
+ calendarViewSwitchingButtonAriaLabel: view => view === 'year' ? '年視圖已打開,切換為日曆視圖' : '日曆視圖已打開,切換為年視圖',
16
+ // DateRange labels
17
+ start: '開始',
18
+ end: '結束',
19
+ startDate: '開始日期',
20
+ startTime: '開始時間',
21
+ endDate: '結束日期',
22
+ endTime: '結束時間',
23
+ // Action bar
24
+ cancelButtonLabel: '取消',
25
+ clearButtonLabel: '清除',
26
+ okButtonLabel: '確認',
27
+ todayButtonLabel: '今天',
28
+ // Toolbar titles
29
+ datePickerToolbarTitle: '選擇日期',
30
+ dateTimePickerToolbarTitle: '選擇日期和時間',
31
+ timePickerToolbarTitle: '選擇時間',
32
+ dateRangePickerToolbarTitle: '選擇時間範圍',
33
+ // Clock labels
34
+ clockLabelText: (view, formattedTime) => `選擇 ${views[view]}. ${!formattedTime ? '未選擇時間' : `已選擇${formattedTime}`}`,
35
+ hoursClockNumberText: hours => `${hours}小時`,
36
+ minutesClockNumberText: minutes => `${minutes}分鐘`,
37
+ secondsClockNumberText: seconds => `${seconds}秒`,
38
+ // Digital clock labels
39
+ selectViewText: view => `選擇 ${views[view]}`,
40
+ // Calendar labels
41
+ calendarWeekNumberHeaderLabel: '週數',
42
+ calendarWeekNumberHeaderText: '#',
43
+ calendarWeekNumberAriaLabelText: weekNumber => `第${weekNumber}週`,
44
+ calendarWeekNumberText: weekNumber => `${weekNumber}`,
45
+ // Open picker labels
46
+ openDatePickerDialogue: formattedDate => formattedDate ? `選擇日期,已選擇${formattedDate}` : '選擇日期',
47
+ openTimePickerDialogue: formattedTime => formattedTime ? `選擇時間,已選擇${formattedTime}` : '選擇時間',
48
+ fieldClearLabel: '清除',
49
+ // Table labels
50
+ timeTableLabel: '選擇時間',
51
+ dateTableLabel: '選擇日期',
52
+ // Field section placeholders
53
+ fieldYearPlaceholder: params => 'Y'.repeat(params.digitAmount),
54
+ fieldMonthPlaceholder: params => params.contentType === 'letter' ? 'MMMM' : 'MM',
55
+ fieldDayPlaceholder: () => 'DD',
56
+ fieldWeekDayPlaceholder: params => params.contentType === 'letter' ? 'EEEE' : 'EE',
57
+ fieldHoursPlaceholder: () => 'hh',
58
+ fieldMinutesPlaceholder: () => 'mm',
59
+ fieldSecondsPlaceholder: () => 'ss',
60
+ fieldMeridiemPlaceholder: () => 'aa',
61
+ // View names
62
+ year: '年份',
63
+ month: '月份',
64
+ day: '日期',
65
+ weekDay: '星期',
66
+ hours: '時',
67
+ minutes: '分',
68
+ seconds: '秒',
69
+ meridiem: '十二小時制',
70
+ // Common
71
+ empty: '空'
72
+ };
73
+ export const zhTW = getPickersLocalization(zhTWPickers);