rsuite 5.70.3 → 5.72.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 (395) hide show
  1. package/Accordion/styles/index.css +20 -6
  2. package/Animation/styles/collapse.less +2 -1
  3. package/Animation/styles/fade.less +1 -1
  4. package/Animation/styles/index.css +8 -0
  5. package/Animation/styles/index.less +1 -0
  6. package/Animation/styles/variables.less +4 -0
  7. package/AutoComplete/styles/index.css +11 -0
  8. package/CHANGELOG.md +31 -0
  9. package/Calendar/styles/index.css +43 -13
  10. package/Calendar/styles/index.less +34 -2
  11. package/Cascader/styles/index.css +11 -0
  12. package/CheckPicker/styles/index.css +11 -0
  13. package/CheckTree/styles/index.css +11 -0
  14. package/CheckTreePicker/styles/index.css +11 -0
  15. package/DatePicker/styles/index.css +61 -15
  16. package/DatePicker/styles/index.less +8 -1
  17. package/DateRangePicker/styles/index.css +65 -17
  18. package/DateRangePicker/styles/index.less +7 -2
  19. package/InputPicker/styles/index.css +11 -0
  20. package/MultiCascadeTree/styles/index.css +11 -0
  21. package/MultiCascader/styles/index.css +11 -0
  22. package/Pagination/styles/index.css +11 -0
  23. package/Panel/styles/index.css +20 -6
  24. package/SelectPicker/styles/index.css +11 -0
  25. package/TagInput/styles/index.css +11 -0
  26. package/TagPicker/styles/index.css +11 -0
  27. package/TimePicker/package.json +7 -0
  28. package/TimePicker/styles/index.css +4161 -0
  29. package/TimePicker/styles/index.less +1 -0
  30. package/TimeRangePicker/package.json +7 -0
  31. package/TimeRangePicker/styles/index.css +4264 -0
  32. package/TimeRangePicker/styles/index.less +1 -0
  33. package/cjs/Calendar/Calendar.d.ts +1 -1
  34. package/cjs/Calendar/Calendar.js +22 -26
  35. package/cjs/Calendar/CalendarBody.js +9 -9
  36. package/cjs/Calendar/CalendarContainer.d.ts +10 -2
  37. package/cjs/Calendar/CalendarContainer.js +40 -68
  38. package/cjs/Calendar/CalendarHeader.d.ts +0 -2
  39. package/cjs/Calendar/CalendarHeader.js +24 -42
  40. package/cjs/Calendar/{CalendarContext.d.ts → CalendarProvider.d.ts} +3 -22
  41. package/cjs/Calendar/CalendarProvider.js +13 -0
  42. package/cjs/Calendar/Grid/Grid.d.ts +6 -0
  43. package/cjs/Calendar/{Table.js → Grid/Grid.js} +11 -17
  44. package/cjs/Calendar/{TableCell.d.ts → Grid/GridCell.d.ts} +4 -4
  45. package/cjs/Calendar/{TableCell.js → Grid/GridCell.js} +13 -13
  46. package/cjs/Calendar/Grid/GridHeaderRow.d.ts +4 -0
  47. package/cjs/Calendar/{TableHeaderRow.js → Grid/GridHeaderRow.js} +11 -11
  48. package/cjs/Calendar/Grid/GridRow.d.ts +7 -0
  49. package/cjs/Calendar/{TableRow.js → Grid/GridRow.js} +21 -21
  50. package/cjs/Calendar/Grid/index.d.ts +2 -0
  51. package/cjs/Calendar/Grid/index.js +8 -0
  52. package/cjs/Calendar/MonthDropdown.d.ts +0 -15
  53. package/cjs/Calendar/MonthDropdown.js +6 -6
  54. package/cjs/Calendar/MonthDropdownItem.js +6 -6
  55. package/cjs/Calendar/TimeDropdown/TimeColumn.d.ts +8 -0
  56. package/cjs/Calendar/TimeDropdown/TimeColumn.js +27 -0
  57. package/{esm/Calendar → cjs/Calendar/TimeDropdown}/TimeDropdown.d.ts +2 -25
  58. package/cjs/Calendar/{TimeDropdown.js → TimeDropdown/TimeDropdown.js} +79 -112
  59. package/cjs/Calendar/TimeDropdown/index.d.ts +2 -0
  60. package/cjs/Calendar/TimeDropdown/index.js +8 -0
  61. package/cjs/Calendar/TimeDropdown/utils/formatWithLeadingZero.d.ts +1 -0
  62. package/cjs/Calendar/TimeDropdown/utils/formatWithLeadingZero.js +8 -0
  63. package/cjs/Calendar/TimeDropdown/utils/getClockTime.d.ts +11 -0
  64. package/cjs/Calendar/TimeDropdown/utils/getClockTime.js +43 -0
  65. package/cjs/Calendar/TimeDropdown/utils/getTimeLimits.d.ts +11 -0
  66. package/cjs/Calendar/TimeDropdown/utils/getTimeLimits.js +24 -0
  67. package/cjs/Calendar/TimeDropdown/utils/index.d.ts +4 -0
  68. package/cjs/Calendar/TimeDropdown/utils/index.js +23 -0
  69. package/cjs/Calendar/TimeDropdown/utils/scrollToTime.d.ts +2 -0
  70. package/cjs/Calendar/TimeDropdown/utils/scrollToTime.js +28 -0
  71. package/cjs/Calendar/hooks/index.d.ts +3 -0
  72. package/cjs/Calendar/hooks/index.js +24 -0
  73. package/cjs/Calendar/hooks/useCalendar.d.ts +2 -0
  74. package/cjs/Calendar/hooks/useCalendar.js +10 -0
  75. package/cjs/Calendar/{useCalendarDate.d.ts → hooks/useCalendarDate.d.ts} +1 -2
  76. package/cjs/Calendar/{useCalendarDate.js → hooks/useCalendarDate.js} +8 -8
  77. package/cjs/Calendar/hooks/useCalendarState.d.ts +22 -0
  78. package/cjs/Calendar/hooks/useCalendarState.js +60 -0
  79. package/cjs/Calendar/index.d.ts +2 -4
  80. package/cjs/Calendar/index.js +2 -4
  81. package/cjs/Calendar/types.d.ts +19 -0
  82. package/cjs/Calendar/types.js +4 -0
  83. package/cjs/Calendar/{utils.js → utils/getAriaLabel.js} +1 -1
  84. package/cjs/Calendar/utils/index.d.ts +1 -0
  85. package/cjs/Calendar/utils/index.js +7 -0
  86. package/cjs/CustomProvider/CustomProvider.d.ts +19 -3
  87. package/cjs/DateInput/DateField.js +2 -2
  88. package/cjs/DateInput/DateInput.js +17 -6
  89. package/cjs/DateInput/hooks/useDateInputState.js +1 -1
  90. package/cjs/DatePicker/DatePicker.d.ts +9 -5
  91. package/cjs/DatePicker/DatePicker.js +46 -55
  92. package/cjs/DatePicker/utils.js +1 -1
  93. package/cjs/DateRangeInput/DateRangeInput.js +16 -5
  94. package/cjs/DateRangePicker/Calendar.d.ts +4 -5
  95. package/cjs/DateRangePicker/Calendar.js +18 -44
  96. package/cjs/DateRangePicker/DateRangePicker.d.ts +33 -4
  97. package/cjs/DateRangePicker/DateRangePicker.js +106 -71
  98. package/cjs/DateRangePicker/DateRangePickerProvider.d.ts +10 -0
  99. package/cjs/DateRangePicker/{DateRangePickerContext.js → DateRangePickerProvider.js} +3 -3
  100. package/cjs/DateRangePicker/hooks/index.d.ts +3 -0
  101. package/cjs/DateRangePicker/hooks/index.js +11 -0
  102. package/cjs/DateRangePicker/hooks/useCalendarHandlers.d.ts +17 -0
  103. package/cjs/DateRangePicker/hooks/useCalendarHandlers.js +43 -0
  104. package/cjs/DateRangePicker/hooks/useDateDisabled.d.ts +1 -1
  105. package/cjs/DateRangePicker/hooks/useDateDisabled.js +1 -0
  106. package/cjs/DateRangePicker/hooks/useDateRangePicker.d.ts +2 -0
  107. package/cjs/DateRangePicker/hooks/useDateRangePicker.js +10 -0
  108. package/cjs/DateRangePicker/utils.js +1 -1
  109. package/cjs/Form/hooks/useFormValidate.js +2 -1
  110. package/cjs/InlineEdit/renderChildren.d.ts +1 -1
  111. package/cjs/InlineEdit/renderChildren.js +13 -4
  112. package/cjs/InlineEdit/useFocusEvent.d.ts +2 -2
  113. package/cjs/InlineEdit/useFocusEvent.js +9 -4
  114. package/cjs/TimePicker/TimePicker.d.ts +81 -0
  115. package/cjs/TimePicker/TimePicker.js +31 -0
  116. package/cjs/TimePicker/index.d.ts +3 -0
  117. package/cjs/TimePicker/index.js +8 -0
  118. package/cjs/TimeRangePicker/TimeRangePicker.d.ts +77 -0
  119. package/cjs/TimeRangePicker/TimeRangePicker.js +23 -0
  120. package/cjs/TimeRangePicker/index.d.ts +3 -0
  121. package/cjs/TimeRangePicker/index.js +8 -0
  122. package/cjs/index.d.ts +4 -0
  123. package/cjs/index.js +6 -1
  124. package/cjs/internals/Picker/Listbox.js +4 -2
  125. package/cjs/internals/hooks/useCustom.js +2 -2
  126. package/cjs/internals/utils/date/extractTimeFormat.d.ts +4 -0
  127. package/cjs/internals/utils/date/extractTimeFormat.js +12 -0
  128. package/cjs/internals/utils/date/formatCheck.d.ts +4 -0
  129. package/cjs/internals/utils/date/formatCheck.js +8 -1
  130. package/cjs/internals/utils/date/index.d.ts +4 -2
  131. package/cjs/internals/utils/date/index.js +72 -7
  132. package/cjs/internals/utils/date/useDateMode.d.ts +16 -0
  133. package/cjs/internals/utils/date/useDateMode.js +57 -0
  134. package/cjs/internals/utils/index.d.ts +0 -1
  135. package/cjs/internals/utils/index.js +1 -4
  136. package/cjs/locales/ar_EG.d.ts +10 -0
  137. package/cjs/locales/ar_EG.js +8 -4
  138. package/cjs/locales/ca_ES.d.ts +10 -0
  139. package/cjs/locales/ca_ES.js +8 -4
  140. package/cjs/locales/cs_CZ.d.ts +10 -0
  141. package/cjs/locales/cs_CZ.js +8 -4
  142. package/cjs/locales/da_DK.d.ts +10 -0
  143. package/cjs/locales/da_DK.js +8 -4
  144. package/cjs/locales/de_DE.d.ts +10 -0
  145. package/cjs/locales/de_DE.js +8 -4
  146. package/cjs/locales/en_GB.d.ts +130 -2
  147. package/cjs/locales/en_GB.js +85 -2
  148. package/cjs/locales/en_US.d.ts +10 -0
  149. package/cjs/locales/en_US.js +8 -4
  150. package/cjs/locales/es_AR.d.ts +10 -0
  151. package/cjs/locales/es_AR.js +8 -4
  152. package/cjs/locales/es_ES.d.ts +10 -0
  153. package/cjs/locales/es_ES.js +8 -4
  154. package/cjs/locales/fa_IR.d.ts +10 -0
  155. package/cjs/locales/fa_IR.js +8 -4
  156. package/cjs/locales/fi_FI.d.ts +10 -0
  157. package/cjs/locales/fi_FI.js +8 -4
  158. package/cjs/locales/fr_FR.d.ts +10 -0
  159. package/cjs/locales/fr_FR.js +8 -4
  160. package/cjs/locales/hu_HU.d.ts +10 -0
  161. package/cjs/locales/hu_HU.js +8 -4
  162. package/cjs/locales/index.d.ts +1 -1
  163. package/cjs/locales/it_IT.d.ts +10 -0
  164. package/cjs/locales/it_IT.js +8 -4
  165. package/cjs/locales/ja_JP.d.ts +10 -0
  166. package/cjs/locales/ja_JP.js +8 -4
  167. package/cjs/locales/kk_KZ.d.ts +10 -0
  168. package/cjs/locales/kk_KZ.js +8 -4
  169. package/cjs/locales/ko_KR.d.ts +10 -0
  170. package/cjs/locales/ko_KR.js +8 -4
  171. package/cjs/locales/ne_NP.d.ts +10 -0
  172. package/cjs/locales/ne_NP.js +8 -4
  173. package/cjs/locales/nl_NL.d.ts +10 -0
  174. package/cjs/locales/nl_NL.js +8 -4
  175. package/cjs/locales/pt_BR.d.ts +10 -0
  176. package/cjs/locales/pt_BR.js +8 -4
  177. package/cjs/locales/ru_RU.d.ts +10 -0
  178. package/cjs/locales/ru_RU.js +8 -4
  179. package/cjs/locales/sv_SE.d.ts +10 -0
  180. package/cjs/locales/sv_SE.js +8 -4
  181. package/cjs/locales/tr_TR.d.ts +10 -0
  182. package/cjs/locales/tr_TR.js +8 -4
  183. package/cjs/locales/zh_CN.d.ts +10 -0
  184. package/cjs/locales/zh_CN.js +8 -4
  185. package/cjs/locales/zh_TW.d.ts +10 -0
  186. package/cjs/locales/zh_TW.js +8 -4
  187. package/dist/rsuite-no-reset-rtl.css +88 -21
  188. package/dist/rsuite-no-reset-rtl.min.css +1 -1
  189. package/dist/rsuite-no-reset-rtl.min.css.map +1 -1
  190. package/dist/rsuite-no-reset.css +88 -21
  191. package/dist/rsuite-no-reset.min.css +1 -1
  192. package/dist/rsuite-no-reset.min.css.map +1 -1
  193. package/dist/rsuite-rtl.css +88 -21
  194. package/dist/rsuite-rtl.min.css +1 -1
  195. package/dist/rsuite-rtl.min.css.map +1 -1
  196. package/dist/rsuite.css +88 -21
  197. package/dist/rsuite.js +362 -142
  198. package/dist/rsuite.js.map +1 -1
  199. package/dist/rsuite.min.css +1 -1
  200. package/dist/rsuite.min.css.map +1 -1
  201. package/dist/rsuite.min.js +1 -1
  202. package/dist/rsuite.min.js.map +1 -1
  203. package/esm/Calendar/Calendar.d.ts +1 -1
  204. package/esm/Calendar/Calendar.js +21 -23
  205. package/esm/Calendar/CalendarBody.js +9 -9
  206. package/esm/Calendar/CalendarContainer.d.ts +10 -2
  207. package/esm/Calendar/CalendarContainer.js +41 -69
  208. package/esm/Calendar/CalendarHeader.d.ts +0 -2
  209. package/esm/Calendar/CalendarHeader.js +25 -43
  210. package/esm/Calendar/{CalendarContext.d.ts → CalendarProvider.d.ts} +3 -22
  211. package/esm/Calendar/CalendarProvider.js +9 -0
  212. package/esm/Calendar/Grid/Grid.d.ts +6 -0
  213. package/esm/Calendar/{Table.js → Grid/Grid.js} +11 -17
  214. package/esm/Calendar/{TableCell.d.ts → Grid/GridCell.d.ts} +4 -4
  215. package/esm/Calendar/{TableCell.js → Grid/GridCell.js} +13 -13
  216. package/esm/Calendar/Grid/GridHeaderRow.d.ts +4 -0
  217. package/esm/Calendar/{TableHeaderRow.js → Grid/GridHeaderRow.js} +11 -11
  218. package/esm/Calendar/Grid/GridRow.d.ts +7 -0
  219. package/esm/Calendar/{TableRow.js → Grid/GridRow.js} +21 -21
  220. package/esm/Calendar/Grid/index.d.ts +2 -0
  221. package/esm/Calendar/Grid/index.js +3 -0
  222. package/esm/Calendar/MonthDropdown.d.ts +0 -15
  223. package/esm/Calendar/MonthDropdown.js +6 -6
  224. package/esm/Calendar/MonthDropdownItem.js +9 -9
  225. package/esm/Calendar/TimeDropdown/TimeColumn.d.ts +8 -0
  226. package/esm/Calendar/TimeDropdown/TimeColumn.js +22 -0
  227. package/{cjs/Calendar → esm/Calendar/TimeDropdown}/TimeDropdown.d.ts +2 -25
  228. package/esm/Calendar/TimeDropdown/TimeDropdown.js +161 -0
  229. package/esm/Calendar/TimeDropdown/index.d.ts +2 -0
  230. package/esm/Calendar/TimeDropdown/index.js +3 -0
  231. package/esm/Calendar/TimeDropdown/utils/formatWithLeadingZero.d.ts +1 -0
  232. package/esm/Calendar/TimeDropdown/utils/formatWithLeadingZero.js +4 -0
  233. package/esm/Calendar/TimeDropdown/utils/getClockTime.d.ts +11 -0
  234. package/esm/Calendar/TimeDropdown/utils/getClockTime.js +39 -0
  235. package/esm/Calendar/TimeDropdown/utils/getTimeLimits.d.ts +11 -0
  236. package/esm/Calendar/TimeDropdown/utils/getTimeLimits.js +20 -0
  237. package/esm/Calendar/TimeDropdown/utils/index.d.ts +4 -0
  238. package/esm/Calendar/TimeDropdown/utils/index.js +5 -0
  239. package/esm/Calendar/TimeDropdown/utils/scrollToTime.d.ts +2 -0
  240. package/esm/Calendar/TimeDropdown/utils/scrollToTime.js +23 -0
  241. package/esm/Calendar/hooks/index.d.ts +3 -0
  242. package/esm/Calendar/hooks/index.js +4 -0
  243. package/esm/Calendar/hooks/useCalendar.d.ts +2 -0
  244. package/esm/Calendar/hooks/useCalendar.js +6 -0
  245. package/esm/Calendar/{useCalendarDate.d.ts → hooks/useCalendarDate.d.ts} +1 -2
  246. package/esm/Calendar/{useCalendarDate.js → hooks/useCalendarDate.js} +7 -7
  247. package/esm/Calendar/hooks/useCalendarState.d.ts +22 -0
  248. package/esm/Calendar/hooks/useCalendarState.js +56 -0
  249. package/esm/Calendar/index.d.ts +2 -4
  250. package/esm/Calendar/index.js +2 -3
  251. package/esm/Calendar/types.d.ts +19 -0
  252. package/esm/Calendar/types.js +2 -0
  253. package/esm/Calendar/{utils.js → utils/getAriaLabel.js} +1 -1
  254. package/esm/Calendar/utils/index.d.ts +1 -0
  255. package/esm/Calendar/utils/index.js +2 -0
  256. package/esm/CustomProvider/CustomProvider.d.ts +19 -3
  257. package/esm/DateInput/DateField.js +2 -2
  258. package/esm/DateInput/DateInput.js +17 -6
  259. package/esm/DateInput/hooks/useDateInputState.js +1 -1
  260. package/esm/DatePicker/DatePicker.d.ts +9 -5
  261. package/esm/DatePicker/DatePicker.js +28 -36
  262. package/esm/DatePicker/hooks/useFocus.js +1 -1
  263. package/esm/DatePicker/utils.js +2 -2
  264. package/esm/DateRangeInput/DateRangeInput.js +16 -5
  265. package/esm/DateRangePicker/Calendar.d.ts +4 -5
  266. package/esm/DateRangePicker/Calendar.js +19 -47
  267. package/esm/DateRangePicker/DateRangePicker.d.ts +33 -4
  268. package/esm/DateRangePicker/DateRangePicker.js +107 -72
  269. package/esm/DateRangePicker/DateRangePickerProvider.d.ts +10 -0
  270. package/esm/DateRangePicker/{DateRangePickerContext.js → DateRangePickerProvider.js} +2 -2
  271. package/esm/DateRangePicker/hooks/index.d.ts +3 -0
  272. package/esm/DateRangePicker/hooks/index.js +4 -0
  273. package/esm/DateRangePicker/hooks/useCalendarHandlers.d.ts +17 -0
  274. package/esm/DateRangePicker/hooks/useCalendarHandlers.js +38 -0
  275. package/esm/DateRangePicker/hooks/useDateDisabled.d.ts +1 -1
  276. package/esm/DateRangePicker/hooks/useDateDisabled.js +1 -1
  277. package/esm/DateRangePicker/hooks/useDateRangePicker.d.ts +2 -0
  278. package/esm/DateRangePicker/hooks/useDateRangePicker.js +6 -0
  279. package/esm/DateRangePicker/utils.js +2 -2
  280. package/esm/Form/hooks/useFormValidate.js +2 -1
  281. package/esm/InlineEdit/renderChildren.d.ts +1 -1
  282. package/esm/InlineEdit/renderChildren.js +13 -4
  283. package/esm/InlineEdit/useFocusEvent.d.ts +2 -2
  284. package/esm/InlineEdit/useFocusEvent.js +9 -4
  285. package/esm/TimePicker/TimePicker.d.ts +81 -0
  286. package/esm/TimePicker/TimePicker.js +24 -0
  287. package/esm/TimePicker/index.d.ts +3 -0
  288. package/esm/TimePicker/index.js +3 -0
  289. package/esm/TimeRangePicker/TimeRangePicker.d.ts +77 -0
  290. package/esm/TimeRangePicker/TimeRangePicker.js +18 -0
  291. package/esm/TimeRangePicker/index.d.ts +3 -0
  292. package/esm/TimeRangePicker/index.js +3 -0
  293. package/esm/index.d.ts +4 -0
  294. package/esm/index.js +2 -0
  295. package/esm/internals/Picker/Listbox.js +4 -2
  296. package/esm/internals/hooks/useCustom.js +1 -1
  297. package/esm/internals/utils/date/extractTimeFormat.d.ts +4 -0
  298. package/esm/internals/utils/date/extractTimeFormat.js +8 -0
  299. package/esm/internals/utils/date/formatCheck.d.ts +4 -0
  300. package/esm/internals/utils/date/formatCheck.js +7 -0
  301. package/esm/internals/utils/date/index.d.ts +4 -2
  302. package/esm/internals/utils/date/index.js +4 -2
  303. package/esm/internals/utils/date/useDateMode.d.ts +16 -0
  304. package/esm/internals/utils/date/useDateMode.js +54 -0
  305. package/esm/internals/utils/index.d.ts +0 -1
  306. package/esm/internals/utils/index.js +0 -1
  307. package/esm/locales/ar_EG.d.ts +10 -0
  308. package/esm/locales/ar_EG.js +8 -4
  309. package/esm/locales/ca_ES.d.ts +10 -0
  310. package/esm/locales/ca_ES.js +8 -4
  311. package/esm/locales/cs_CZ.d.ts +10 -0
  312. package/esm/locales/cs_CZ.js +8 -4
  313. package/esm/locales/da_DK.d.ts +10 -0
  314. package/esm/locales/da_DK.js +8 -4
  315. package/esm/locales/de_DE.d.ts +10 -0
  316. package/esm/locales/de_DE.js +8 -4
  317. package/esm/locales/en_GB.d.ts +130 -2
  318. package/esm/locales/en_GB.js +85 -2
  319. package/esm/locales/en_US.d.ts +10 -0
  320. package/esm/locales/en_US.js +8 -4
  321. package/esm/locales/es_AR.d.ts +10 -0
  322. package/esm/locales/es_AR.js +8 -4
  323. package/esm/locales/es_ES.d.ts +10 -0
  324. package/esm/locales/es_ES.js +8 -4
  325. package/esm/locales/fa_IR.d.ts +10 -0
  326. package/esm/locales/fa_IR.js +8 -4
  327. package/esm/locales/fi_FI.d.ts +10 -0
  328. package/esm/locales/fi_FI.js +8 -4
  329. package/esm/locales/fr_FR.d.ts +10 -0
  330. package/esm/locales/fr_FR.js +8 -4
  331. package/esm/locales/hu_HU.d.ts +10 -0
  332. package/esm/locales/hu_HU.js +8 -4
  333. package/esm/locales/index.d.ts +1 -1
  334. package/esm/locales/it_IT.d.ts +10 -0
  335. package/esm/locales/it_IT.js +8 -4
  336. package/esm/locales/ja_JP.d.ts +10 -0
  337. package/esm/locales/ja_JP.js +8 -4
  338. package/esm/locales/kk_KZ.d.ts +10 -0
  339. package/esm/locales/kk_KZ.js +8 -4
  340. package/esm/locales/ko_KR.d.ts +10 -0
  341. package/esm/locales/ko_KR.js +8 -4
  342. package/esm/locales/ne_NP.d.ts +10 -0
  343. package/esm/locales/ne_NP.js +8 -4
  344. package/esm/locales/nl_NL.d.ts +10 -0
  345. package/esm/locales/nl_NL.js +8 -4
  346. package/esm/locales/pt_BR.d.ts +10 -0
  347. package/esm/locales/pt_BR.js +8 -4
  348. package/esm/locales/ru_RU.d.ts +10 -0
  349. package/esm/locales/ru_RU.js +8 -4
  350. package/esm/locales/sv_SE.d.ts +10 -0
  351. package/esm/locales/sv_SE.js +8 -4
  352. package/esm/locales/tr_TR.d.ts +10 -0
  353. package/esm/locales/tr_TR.js +8 -4
  354. package/esm/locales/zh_CN.d.ts +10 -0
  355. package/esm/locales/zh_CN.js +8 -4
  356. package/esm/locales/zh_TW.d.ts +10 -0
  357. package/esm/locales/zh_TW.js +8 -4
  358. package/internals/Picker/styles/index.less +17 -0
  359. package/internals/ScrollView/styles/index.less +1 -5
  360. package/package.json +1 -1
  361. package/styles/color-modes/dark.less +5 -0
  362. package/styles/color-modes/high-contrast.less +5 -0
  363. package/styles/color-modes/light.less +5 -0
  364. package/styles/common.less +3 -3
  365. package/styles/variables.less +2 -2
  366. package/cjs/Calendar/CalendarContext.js +0 -22
  367. package/cjs/Calendar/Table.d.ts +0 -6
  368. package/cjs/Calendar/TableHeaderRow.d.ts +0 -4
  369. package/cjs/Calendar/TableRow.d.ts +0 -7
  370. package/cjs/Calendar/useCalendarState.d.ts +0 -11
  371. package/cjs/Calendar/useCalendarState.js +0 -32
  372. package/cjs/DateRangePicker/DateRangePickerContext.d.ts +0 -10
  373. package/cjs/internals/utils/date/getReversedTimeMeridian.d.ts +0 -8
  374. package/cjs/internals/utils/date/getReversedTimeMeridian.js +0 -21
  375. package/cjs/internals/utils/scrollTopAnimation.d.ts +0 -5
  376. package/cjs/internals/utils/scrollTopAnimation.js +0 -32
  377. package/cjs/locales/default.d.ts +0 -120
  378. package/cjs/locales/default.js +0 -87
  379. package/esm/Calendar/CalendarContext.js +0 -17
  380. package/esm/Calendar/Table.d.ts +0 -6
  381. package/esm/Calendar/TableHeaderRow.d.ts +0 -4
  382. package/esm/Calendar/TableRow.d.ts +0 -7
  383. package/esm/Calendar/TimeDropdown.js +0 -192
  384. package/esm/Calendar/useCalendarState.d.ts +0 -11
  385. package/esm/Calendar/useCalendarState.js +0 -28
  386. package/esm/DateRangePicker/DateRangePickerContext.d.ts +0 -10
  387. package/esm/internals/utils/date/getReversedTimeMeridian.d.ts +0 -8
  388. package/esm/internals/utils/date/getReversedTimeMeridian.js +0 -17
  389. package/esm/internals/utils/scrollTopAnimation.d.ts +0 -5
  390. package/esm/internals/utils/scrollTopAnimation.js +0 -27
  391. package/esm/locales/default.d.ts +0 -120
  392. package/esm/locales/default.js +0 -82
  393. package/locales/default/package.json +0 -7
  394. /package/cjs/Calendar/{utils.d.ts → utils/getAriaLabel.d.ts} +0 -0
  395. /package/esm/Calendar/{utils.d.ts → utils/getAriaLabel.d.ts} +0 -0
@@ -16,13 +16,16 @@ import { getInputSelectedState, DateType, getDateType, isSwitchDateType } from "
16
16
  * @see https://rsuitejs.com/components/date-range-input/
17
17
  */
18
18
  var DateRangeInput = /*#__PURE__*/React.forwardRef(function (props, ref) {
19
+ var _useCustom = useCustom('Calendar'),
20
+ locale = _useCustom.locale,
21
+ parseDate = _useCustom.parseDate;
19
22
  var className = props.className,
20
23
  _props$classPrefix = props.classPrefix,
21
24
  classPrefix = _props$classPrefix === void 0 ? 'date-range-input' : _props$classPrefix,
22
25
  _props$character = props.character,
23
26
  character = _props$character === void 0 ? ' ~ ' : _props$character,
24
27
  _props$format = props.format,
25
- formatStr = _props$format === void 0 ? 'yyyy-MM-dd' : _props$format,
28
+ formatStr = _props$format === void 0 ? locale.shortDateFormat : _props$format,
26
29
  valueProp = props.value,
27
30
  _props$defaultValue = props.defaultValue,
28
31
  defaultValue = _props$defaultValue === void 0 ? [] : _props$defaultValue,
@@ -41,9 +44,6 @@ var DateRangeInput = /*#__PURE__*/React.forwardRef(function (props, ref) {
41
44
  var _useSelectedState = useSelectedState(),
42
45
  selectedState = _useSelectedState.selectedState,
43
46
  setSelectedState = _useSelectedState.setSelectedState;
44
- var _useCustom = useCustom('Calendar'),
45
- locale = _useCustom.locale,
46
- parseDate = _useCustom.parseDate;
47
47
  var rangeFormatStr = "" + formatStr + character + formatStr;
48
48
  var dateLocale = locale.dateLocale;
49
49
  var _useControlled = useControlled(valueProp, defaultValue),
@@ -103,6 +103,14 @@ var DateRangeInput = /*#__PURE__*/React.forwardRef(function (props, ref) {
103
103
  onChange === null || onChange === void 0 ? void 0 : onChange(nextValue, event);
104
104
  setValue(nextValue);
105
105
  });
106
+ var handleClear = useEventCallback(function (event) {
107
+ startDateState.setNewDate(null);
108
+ endDateState.setNewDate(null);
109
+ setSelectionRange(0, 0);
110
+ reset();
111
+ setValue(null);
112
+ onChange === null || onChange === void 0 ? void 0 : onChange(null, event);
113
+ });
106
114
  var onSegmentChange = useEventCallback(function (event, nextDirection) {
107
115
  var input = event.target;
108
116
  var key = event.key;
@@ -182,7 +190,10 @@ var DateRangeInput = /*#__PURE__*/React.forwardRef(function (props, ref) {
182
190
  });
183
191
  var onSegmentValueRemove = useEventCallback(function (event) {
184
192
  var input = event.target;
185
- if (selectedState.selectedPattern) {
193
+ var value = input.value;
194
+ if (input.selectionStart === 0 && value && input.selectionEnd === value.length) {
195
+ handleClear(event);
196
+ } else if (selectedState.selectedPattern) {
186
197
  var nextState = getInputSelectedState(_extends({}, keyPressOptions, {
187
198
  input: input,
188
199
  valueOffset: null
@@ -1,12 +1,12 @@
1
1
  import React from 'react';
2
- import { CalendarProps as CalendarCoreProps } from '../Calendar/CalendarContainer';
2
+ import { CalendarProps as CalendarContainerProps } from '../Calendar/CalendarContainer';
3
3
  import { DATERANGE_DISABLED_TARGET } from '../internals/constants';
4
4
  import { DateRange } from './types';
5
5
  import { RsRefForwardingComponent, WithAsProps } from '../internals/types';
6
6
  import { DatePickerLocale } from '../locales';
7
- type OmitCalendarCoreTypes = 'disabledDate' | 'onSelect' | 'onMouseMove' | 'calendarDate' | 'format' | 'locale' | 'onToggleMeridian';
8
- export interface CalendarProps extends WithAsProps, Omit<CalendarCoreProps, OmitCalendarCoreTypes> {
9
- calendarDate?: DateRange;
7
+ type OmitCalendarCoreTypes = 'disabledDate' | 'onSelect' | 'onMouseMove' | 'calendarDate' | 'format' | 'locale';
8
+ export interface CalendarProps extends WithAsProps, Omit<CalendarContainerProps, OmitCalendarCoreTypes> {
9
+ calendarDateRange?: DateRange;
10
10
  disabledDate?: (date: Date, selectValue: [] | [Date] | [Date, Date], type: DATERANGE_DISABLED_TARGET) => boolean;
11
11
  format?: string;
12
12
  hoverRangeValue?: DateRange;
@@ -20,7 +20,6 @@ export interface CalendarProps extends WithAsProps, Omit<CalendarCoreProps, Omit
20
20
  value?: [] | [Date] | [Date, Date];
21
21
  onChangeCalendarMonth?: (index: number, date: Date) => void;
22
22
  onChangeCalendarTime?: (index: number, date: Date) => void;
23
- onToggleMeridian: (index: number, event: React.MouseEvent) => void;
24
23
  onSelect?: (index: number, date: Date, event: React.SyntheticEvent) => void;
25
24
  onMouseMove?: (date: Date) => void;
26
25
  }
@@ -1,17 +1,17 @@
1
1
  'use client';
2
2
  import _extends from "@babel/runtime/helpers/esm/extends";
3
3
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
4
- var _excluded = ["as", "calendarDate", "format", "disabledDate", "index", "limitEndYear", "limitStartYear", "onChangeCalendarMonth", "onChangeCalendarTime", "onToggleMeridian", "onSelect", "value"];
5
- import React from 'react';
6
- import CalendarCore from "../Calendar/CalendarContainer.js";
7
- import { addMonths } from "../internals/utils/date/index.js";
4
+ var _excluded = ["as", "calendarDateRange", "format", "disabledDate", "index", "limitEndYear", "limitStartYear", "onChangeCalendarMonth", "onChangeCalendarTime", "onSelect", "value"];
5
+ import React, { useCallback } from 'react';
6
+ import CalendarContainer from "../Calendar/CalendarContainer.js";
7
+ import { addMonths, startOfToday } from "../internals/utils/date/index.js";
8
8
  import { DATERANGE_DISABLED_TARGET } from "../internals/constants/index.js";
9
- import { useEventCallback } from "../internals/hooks/index.js";
9
+ import { useCalendarHandlers } from "./hooks/index.js";
10
10
  var Calendar = /*#__PURE__*/React.forwardRef(function (props, ref) {
11
11
  var _props$as = props.as,
12
- Component = _props$as === void 0 ? CalendarCore : _props$as,
13
- _props$calendarDate = props.calendarDate,
14
- calendarDate = _props$calendarDate === void 0 ? [new Date(), addMonths(new Date(), 1)] : _props$calendarDate,
12
+ Component = _props$as === void 0 ? CalendarContainer : _props$as,
13
+ _props$calendarDateRa = props.calendarDateRange,
14
+ calendarDateRange = _props$calendarDateRa === void 0 ? [startOfToday(), addMonths(startOfToday(), 1)] : _props$calendarDateRa,
15
15
  _props$format = props.format,
16
16
  format = _props$format === void 0 ? 'yyyy-MM-dd' : _props$format,
17
17
  disabledDate = props.disabledDate,
@@ -21,57 +21,29 @@ var Calendar = /*#__PURE__*/React.forwardRef(function (props, ref) {
21
21
  limitStartYear = props.limitStartYear,
22
22
  onChangeCalendarMonth = props.onChangeCalendarMonth,
23
23
  onChangeCalendarTime = props.onChangeCalendarTime,
24
- onToggleMeridian = props.onToggleMeridian,
25
24
  onSelect = props.onSelect,
26
25
  _props$value = props.value,
27
26
  value = _props$value === void 0 ? [] : _props$value,
28
27
  rest = _objectWithoutPropertiesLoose(props, _excluded);
29
- var onMoveForward = useEventCallback(function (nextPageDate) {
30
- onChangeCalendarMonth === null || onChangeCalendarMonth === void 0 ? void 0 : onChangeCalendarMonth(index, nextPageDate);
31
- });
32
- var onMoveBackward = useEventCallback(function (nextPageDate) {
33
- onChangeCalendarMonth === null || onChangeCalendarMonth === void 0 ? void 0 : onChangeCalendarMonth(index, nextPageDate);
34
- });
35
- var handleSelect = useEventCallback(function (date, event) {
36
- onSelect === null || onSelect === void 0 ? void 0 : onSelect(index, date, event);
37
- });
38
- var handleChangeMonth = useEventCallback(function (nextPageDate) {
39
- onChangeCalendarMonth === null || onChangeCalendarMonth === void 0 ? void 0 : onChangeCalendarMonth(index, nextPageDate);
40
- });
41
- var handleChangeTime = useEventCallback(function (nextPageDate) {
42
- onChangeCalendarTime === null || onChangeCalendarTime === void 0 ? void 0 : onChangeCalendarTime(index, nextPageDate);
43
- });
44
- var handleToggleMeridian = useEventCallback(function (event) {
45
- onToggleMeridian(index, event);
46
- });
47
- var getCalendarDate = function getCalendarDate() {
48
- return calendarDate[index];
49
- };
50
- var handleMoveForward = useEventCallback(function () {
51
- onMoveForward === null || onMoveForward === void 0 ? void 0 : onMoveForward(addMonths(getCalendarDate(), 1));
52
- });
53
- var handleMoveBackward = useEventCallback(function () {
54
- onMoveBackward === null || onMoveBackward === void 0 ? void 0 : onMoveBackward(addMonths(getCalendarDate(), -1));
28
+ var calendarHandlers = useCalendarHandlers({
29
+ index: index,
30
+ calendarDateRange: calendarDateRange,
31
+ onChangeCalendarMonth: onChangeCalendarMonth,
32
+ onChangeCalendarTime: onChangeCalendarTime,
33
+ onSelect: onSelect
55
34
  });
56
- var disabledMonth = function disabledMonth(date) {
35
+ var disableCalendarDate = useCallback(function (date) {
57
36
  return disabledDate === null || disabledDate === void 0 ? void 0 : disabledDate(date, value, DATERANGE_DISABLED_TARGET.CALENDAR);
58
- };
37
+ }, [disabledDate, value]);
59
38
  return /*#__PURE__*/React.createElement(Component, _extends({
60
39
  "data-testid": "calendar-" + (index === 0 ? 'start' : 'end')
61
- }, rest, {
40
+ }, rest, calendarHandlers, {
41
+ index: index,
62
42
  format: format,
63
43
  dateRange: value,
64
- disabledDate: disabledMonth,
65
- index: index,
44
+ disabledDate: disableCalendarDate,
66
45
  limitEndYear: limitEndYear,
67
46
  limitStartYear: limitStartYear,
68
- onChangeMonth: handleChangeMonth,
69
- onChangeTime: handleChangeTime,
70
- onMoveBackward: handleMoveBackward,
71
- onMoveForward: handleMoveForward,
72
- onToggleMeridian: handleToggleMeridian,
73
- onSelect: handleSelect,
74
- calendarDate: getCalendarDate(),
75
47
  ref: ref
76
48
  }));
77
49
  });
@@ -3,17 +3,18 @@ import { PickerComponent } from '../internals/Picker';
3
3
  import type { DisabledDateFunction, RangeType, DateRange } from './types';
4
4
  import type { FormControlBaseProps, PickerBaseProps } from '../internals/types';
5
5
  import type { DateRangePickerLocale } from '../locales';
6
- import type { MonthDropdownProps } from '../Calendar/CalendarContext';
6
+ import type { MonthDropdownProps } from '../Calendar/types';
7
7
  export interface DateRangePickerProps extends PickerBaseProps<DateRangePickerLocale>, FormControlBaseProps<DateRange | null> {
8
8
  /**
9
9
  * Custom caret component
10
10
  */
11
11
  caretAs?: React.ElementType | null;
12
- /** Predefined date ranges */
12
+ /**
13
+ * Predefined date ranges
14
+ */
13
15
  ranges?: RangeType[];
14
16
  /**
15
17
  * Format of the date displayed in the input box
16
- * @default 'yyyy-MM-dd'
17
18
  */
18
19
  format?: string;
19
20
  /**
@@ -68,9 +69,13 @@ export interface DateRangePickerProps extends PickerBaseProps<DateRangePickerLoc
68
69
  */
69
70
  showOneCalendar?: boolean;
70
71
  /**
71
- * Meridian format
72
+ * @deprecated Use `showMeridiem` instead
72
73
  */
73
74
  showMeridian?: boolean;
75
+ /**
76
+ * Meridiem format for 12-hour time
77
+ */
78
+ showMeridiem?: boolean;
74
79
  /**
75
80
  * Whether to display the formatted date range at the header of the calendar
76
81
  * @default true
@@ -97,6 +102,18 @@ export interface DateRangePickerProps extends PickerBaseProps<DateRangePickerLoc
97
102
  * @version 5.69.0
98
103
  */
99
104
  calendarSnapping?: boolean;
105
+ /**
106
+ * Hide specific hour options
107
+ */
108
+ hideHours?: (hour: number, date: Date) => boolean;
109
+ /**
110
+ * Hide specific minute options
111
+ */
112
+ hideMinutes?: (minute: number, date: Date) => boolean;
113
+ /**
114
+ * Hide specific second options
115
+ */
116
+ hideSeconds?: (second: number, date: Date) => boolean;
100
117
  /**
101
118
  * Disabled date
102
119
  * @deprecated Use {@link shouldDisableDate} instead
@@ -106,6 +123,18 @@ export interface DateRangePickerProps extends PickerBaseProps<DateRangePickerLoc
106
123
  * Whether a date cell is disabled
107
124
  */
108
125
  shouldDisableDate?: DisabledDateFunction;
126
+ /**
127
+ * Disabled hours on the time view
128
+ */
129
+ shouldDisableHour?: (hour: number, date: Date) => boolean;
130
+ /**
131
+ * Disabled minutes on the time view
132
+ */
133
+ shouldDisableMinute?: (minute: number, date: Date) => boolean;
134
+ /**
135
+ * Disabled seconds on the time view
136
+ */
137
+ shouldDisableSecond?: (second: number, date: Date) => boolean;
109
138
  /**
110
139
  * Called when the option is selected
111
140
  */
@@ -3,18 +3,18 @@ import _taggedTemplateLiteralLoose from "@babel/runtime/helpers/esm/taggedTempla
3
3
  import _extends from "@babel/runtime/helpers/esm/extends";
4
4
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
5
5
  var _templateObject, _templateObject2;
6
- var _excluded = ["as", "classPrefix", "className", "appearance", "editable", "cleanable", "character", "calendarSnapping", "defaultCalendarValue", "defaultValue", "plaintext", "disabled", "disabledDate", "shouldDisableDate", "format", "hoverRange", "id", "isoWeek", "weekStart", "limitEndYear", "limitStartYear", "locale", "loading", "label", "menuClassName", "menuStyle", "oneTap", "placeholder", "placement", "ranges", "readOnly", "showOneCalendar", "showWeekNumbers", "showMeridian", "showHeader", "style", "size", "caretAs", "value", "monthDropdownProps", "onChange", "onClean", "onEnter", "onExit", "onOk", "onSelect", "onShortcutClick", "renderTitle", "renderValue"];
6
+ var _excluded = ["as", "classPrefix", "className", "appearance", "editable", "cleanable", "character", "calendarSnapping", "defaultCalendarValue", "defaultValue", "plaintext", "disabled", "disabledDate", "shouldDisableDate", "shouldDisableHour", "shouldDisableMinute", "shouldDisableSecond", "format", "hoverRange", "id", "isoWeek", "weekStart", "limitEndYear", "limitStartYear", "locale", "loading", "label", "menuClassName", "menuStyle", "oneTap", "placeholder", "placement", "ranges", "readOnly", "showOneCalendar", "showWeekNumbers", "showMeridian", "showMeridiem", "showHeader", "style", "size", "caretAs", "value", "monthDropdownProps", "hideHours", "hideMinutes", "hideSeconds", "onChange", "onClean", "onEnter", "onExit", "onOk", "onSelect", "onShortcutClick", "renderTitle", "renderValue"];
7
7
  import React, { useEffect, useRef, useState, useMemo } from 'react';
8
8
  import isNil from 'lodash/isNil';
9
9
  import omit from 'lodash/omit';
10
10
  import pick from 'lodash/pick';
11
11
  import PropTypes from 'prop-types';
12
12
  import IconCalendar from '@rsuite/icons/legacy/Calendar';
13
- import IconClockO from '@rsuite/icons/legacy/ClockO';
13
+ import TimeIcon from '@rsuite/icons/Time';
14
14
  import Toolbar from "../DatePicker/Toolbar.js";
15
15
  import PredefinedRanges from "../DatePicker/PredefinedRanges.js";
16
16
  import Stack from "../Stack/index.js";
17
- import DateRangePickerContext from "./DateRangePickerContext.js";
17
+ import { DateRangePickerProvider } from "./DateRangePickerProvider.js";
18
18
  import DateRangeInput from "../DateRangeInput/index.js";
19
19
  import InputGroup from "../InputGroup/index.js";
20
20
  import Header from "./Header.js";
@@ -27,7 +27,7 @@ import { DATERANGE_DISABLED_TARGET as TARGET } from "../internals/constants/inde
27
27
  import { omitTriggerPropKeys, PickerPopup, pickerPropTypes, PickerToggleTrigger, PickerIndicator, PickerLabel, pickTriggerPropKeys, usePickerClassName, usePickerRef, onMenuKeyDown } from "../internals/Picker/index.js";
28
28
  import { useClassNames, useControlled, useCustom, useUniqueId, useEventCallback } from "../internals/hooks/index.js";
29
29
  import { createChainedFunction, mergeRefs, partitionHTMLProps, getStringLength } from "../internals/utils/index.js";
30
- import { addMonths, isValid, isBefore, isSameDay, addDays, startOfDay, endOfDay, shouldRenderTime, isAfter, isSameMonth, shouldRenderMonth, shouldRenderDate, calendarOnlyProps, getReversedTimeMeridian, reverseDateRangeOmitTime, copyTime, shouldOnlyRenderTime } from "../internals/utils/date/index.js";
30
+ import { addMonths, addDays, copyTime, calendarOnlyProps, endOfDay, isValid, isBefore, isSameDay, isAfter, isSameMonth, reverseDateRangeOmitTime, startOfDay, DateMode, useDateMode } from "../internals/utils/date/index.js";
31
31
  /**
32
32
  * A date range picker allows you to select a date range from a calendar.
33
33
  *
@@ -55,8 +55,10 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
55
55
  disabled = props.disabled,
56
56
  DEPRECATED_disabledDate = props.disabledDate,
57
57
  shouldDisableDate = props.shouldDisableDate,
58
- _props$format = props.format,
59
- formatStr = _props$format === void 0 ? 'yyyy-MM-dd' : _props$format,
58
+ shouldDisableHour = props.shouldDisableHour,
59
+ shouldDisableMinute = props.shouldDisableMinute,
60
+ shouldDisableSecond = props.shouldDisableSecond,
61
+ format = props.format,
60
62
  hoverRange = props.hoverRange,
61
63
  idProp = props.id,
62
64
  _props$isoWeek = props.isoWeek,
@@ -81,7 +83,9 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
81
83
  _props$showOneCalenda = props.showOneCalendar,
82
84
  showOneCalendar = _props$showOneCalenda === void 0 ? false : _props$showOneCalenda,
83
85
  showWeekNumbers = props.showWeekNumbers,
84
- showMeridian = props.showMeridian,
86
+ DEPRECATED_showMeridian = props.showMeridian,
87
+ _props$showMeridiem = props.showMeridiem,
88
+ showMeridiem = _props$showMeridiem === void 0 ? DEPRECATED_showMeridian : _props$showMeridiem,
85
89
  _props$showHeader = props.showHeader,
86
90
  showHeader = _props$showHeader === void 0 ? true : _props$showHeader,
87
91
  style = props.style,
@@ -89,6 +93,9 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
89
93
  caretAsProp = props.caretAs,
90
94
  valueProp = props.value,
91
95
  monthDropdownProps = props.monthDropdownProps,
96
+ hideHours = props.hideHours,
97
+ hideMinutes = props.hideMinutes,
98
+ hideSeconds = props.hideSeconds,
92
99
  onChange = props.onChange,
93
100
  onClean = props.onClean,
94
101
  onEnter = props.onEnter,
@@ -111,16 +118,26 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
111
118
  var _useCustom = useCustom('DateRangePicker', overrideLocale),
112
119
  locale = _useCustom.locale,
113
120
  formatDate = _useCustom.formatDate;
114
-
115
- // Default gap between two calendars, if `showOneCalendar` is set, the gap is 0
116
- var calendarGap = showOneCalendar ? 0 : 1;
121
+ var formatStr = format || locale.shortDateFormat || 'yyyy-MM-dd';
117
122
  var rangeFormatStr = "" + formatStr + character + formatStr;
118
123
  var _useControlled = useControlled(valueProp, defaultValue !== null && defaultValue !== void 0 ? defaultValue : null),
119
124
  value = _useControlled[0],
120
125
  setValue = _useControlled[1];
126
+ var _useDateMode = useDateMode(formatStr),
127
+ mode = _useDateMode.mode,
128
+ has = _useDateMode.has;
121
129
 
122
130
  // Show only the calendar month panel. formatStr = 'yyyy-MM'
123
- var onlyShowMonth = shouldRenderMonth(formatStr) && !shouldRenderDate(formatStr);
131
+ var onlyShowMonth = mode === DateMode.Month;
132
+
133
+ // Only show the time panel. formatStr = 'HH:mm:ss'
134
+ var onlyShowTime = mode === DateMode.Time;
135
+
136
+ // Allows two calendar panels to display the same month.
137
+ var allowSameMonth = onlyShowMonth || showOneCalendar || onlyShowTime;
138
+
139
+ // Default gap between two calendars, if `showOneCalendar` is set, the gap is 0
140
+ var calendarGap = allowSameMonth ? 0 : 1;
124
141
 
125
142
  /**
126
143
  * Whether to complete the selection.
@@ -151,10 +168,11 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
151
168
 
152
169
  // The displayed calendar panel is rendered based on this value.
153
170
  var _useState4 = useState(getSafeCalendarDate({
154
- value: (_ref2 = value !== null && value !== void 0 ? value : defaultCalendarValue) !== null && _ref2 !== void 0 ? _ref2 : null
171
+ value: (_ref2 = value !== null && value !== void 0 ? value : defaultCalendarValue) !== null && _ref2 !== void 0 ? _ref2 : null,
172
+ allowSameMonth: allowSameMonth
155
173
  })),
156
- calendarDate = _useState4[0],
157
- setCalendarDate = _useState4[1];
174
+ calendarDateRange = _useState4[0],
175
+ setCalendarDateRangeValue = _useState4[1];
158
176
 
159
177
  /**
160
178
  * When hoverRange is set, `selectValue` will be updated during the hover process,
@@ -177,7 +195,7 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
177
195
  */
178
196
  var getCalendarDatetime = function getCalendarDatetime(calendarKey) {
179
197
  var index = calendarKey === 'start' ? 0 : 1;
180
- return (calendarDate === null || calendarDate === void 0 ? void 0 : calendarDate[index]) || (defaultCalendarValue === null || defaultCalendarValue === void 0 ? void 0 : defaultCalendarValue[index]);
198
+ return (calendarDateRange === null || calendarDateRange === void 0 ? void 0 : calendarDateRange[index]) || (defaultCalendarValue === null || defaultCalendarValue === void 0 ? void 0 : defaultCalendarValue[index]);
181
199
  };
182
200
 
183
201
  /**
@@ -191,7 +209,7 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
191
209
  var nextValue = dateRange;
192
210
 
193
211
  // The time should remain the same when the dates in the date range are changed.
194
- if (shouldRenderTime(formatStr) && dateRange !== null && dateRange !== void 0 && dateRange.length && (eventName === 'changeDate' || eventName === 'changeMonth')) {
212
+ if (has('time') && dateRange !== null && dateRange !== void 0 && dateRange.length && (eventName === 'changeDate' || eventName === 'changeMonth')) {
195
213
  var startDate = copyTime({
196
214
  from: getCalendarDatetime('start'),
197
215
  to: dateRange[0]
@@ -208,11 +226,9 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
208
226
  var nextCalendarDate = getSafeCalendarDate({
209
227
  value: nextValue,
210
228
  calendarKey: calendarKey,
211
- // When only the month is displayed and only one calendar is displayed,
212
- // there is no need to add a month and two calendar panels are allowed to display the same month
213
- allowSameMonth: onlyShowMonth || showOneCalendar
229
+ allowSameMonth: allowSameMonth
214
230
  });
215
- setCalendarDate(nextCalendarDate);
231
+ setCalendarDateRangeValue(nextCalendarDate);
216
232
  if (onlyShowMonth && eventName === 'changeMonth') {
217
233
  setSelectedDates(nextCalendarDate);
218
234
  }
@@ -351,7 +367,7 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
351
367
  if (isAfter(nextSelectDates[0], nextSelectDates[1])) {
352
368
  nextSelectDates = reverseDateRangeOmitTime(nextSelectDates);
353
369
  }
354
- if (shouldRenderTime(formatStr)) {
370
+ if (has('time')) {
355
371
  nextSelectDates = [copyTime({
356
372
  from: getCalendarDatetime('start'),
357
373
  to: nextSelectDates[0]
@@ -370,7 +386,7 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
370
386
  setActiveCalendarKey('start');
371
387
  }
372
388
  setSelectedDates(nextSelectDates);
373
- if (!isSameMonth(calendarDate[index], date) || calendarSnapping) {
389
+ if (!isSameMonth(calendarDateRange[index], date) || calendarSnapping) {
374
390
  setCalendarDateRange({
375
391
  dateRange: nextSelectDates,
376
392
  calendarKey: calendarKey,
@@ -393,7 +409,7 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
393
409
  }, [selectedDates]);
394
410
  var onChangeCalendarMonth = useEventCallback(function (index, date) {
395
411
  var calendarKey = index === 0 ? 'start' : 'end';
396
- var nextCalendarDate = Array.from(calendarDate);
412
+ var nextCalendarDate = Array.from(calendarDateRange);
397
413
  nextCalendarDate[index] = date;
398
414
  setCalendarDateRange({
399
415
  dateRange: nextCalendarDate,
@@ -403,7 +419,7 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
403
419
  });
404
420
  var onChangeCalendarTime = useEventCallback(function (index, date) {
405
421
  var calendarKey = index === 0 ? 'start' : 'end';
406
- var nextCalendarDate = Array.from(calendarDate);
422
+ var nextCalendarDate = Array.from(calendarDateRange);
407
423
  nextCalendarDate[index] = date;
408
424
  setCalendarDateRange({
409
425
  dateRange: nextCalendarDate,
@@ -421,22 +437,6 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
421
437
  return next;
422
438
  });
423
439
  });
424
-
425
- /**
426
- * The callback triggered when PM/AM is switched.
427
- */
428
- var onToggleMeridian = useEventCallback(function (index) {
429
- var nextCalendarDate = Array.from(calendarDate);
430
- nextCalendarDate[index] = getReversedTimeMeridian(nextCalendarDate[index]);
431
- setCalendarDate(nextCalendarDate);
432
-
433
- // If the value already exists, update the value again.
434
- if (selectedDates.length === 2) {
435
- var nextSelectedDates = Array.from(selectedDates);
436
- nextSelectedDates[index] = getReversedTimeMeridian(nextSelectedDates[index]);
437
- setSelectedDates(nextSelectedDates);
438
- }
439
- });
440
440
  var handleEnter = useEventCallback(function () {
441
441
  var nextCalendarDate;
442
442
  if (value && value.length) {
@@ -446,7 +446,8 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
446
446
  } else {
447
447
  // Reset the date on the calendar to the default date
448
448
  nextCalendarDate = getSafeCalendarDate({
449
- value: defaultCalendarValue !== null && defaultCalendarValue !== void 0 ? defaultCalendarValue : null
449
+ value: defaultCalendarValue !== null && defaultCalendarValue !== void 0 ? defaultCalendarValue : null,
450
+ allowSameMonth: allowSameMonth
450
451
  });
451
452
  }
452
453
  setSelectedDates(value !== null && value !== void 0 ? value : []);
@@ -477,9 +478,20 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
477
478
  // End unfinished selections.
478
479
  setSelectedIdle(true);
479
480
  });
481
+ var calculateDateRange = function calculateDateRange() {
482
+ var _selectedDates$ = selectedDates[0],
483
+ start = _selectedDates$ === void 0 ? calendarDateRange[0] : _selectedDates$,
484
+ _selectedDates$2 = selectedDates[1],
485
+ end = _selectedDates$2 === void 0 ? calendarDateRange[1] : _selectedDates$2;
486
+ if (onlyShowTime) {
487
+ return [start, end];
488
+ }
489
+ return selectedDates;
490
+ };
480
491
  var handleClickOK = useEventCallback(function (event) {
481
- setDateRange(event, selectedDates);
482
- onOk === null || onOk === void 0 ? void 0 : onOk(selectedDates, event);
492
+ var nextValue = calculateDateRange();
493
+ setDateRange(event, nextValue);
494
+ onOk === null || onOk === void 0 ? void 0 : onOk(nextValue, event);
483
495
  });
484
496
  var handleClean = useEventCallback(function (event) {
485
497
  setCalendarDateRange({
@@ -537,34 +549,48 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
537
549
  };
538
550
 
539
551
  /**
540
- * Check if the OK button is disabled
552
+ * Determine if the OK button should be disabled
541
553
  */
542
- var isOkButtonDisabled = function isOkButtonDisabled() {
543
- var start = selectedDates[0],
544
- end = selectedDates[1];
545
- if (!start || !end || !isSelectedIdle) {
554
+ var shouldDisableOkButton = function shouldDisableOkButton() {
555
+ var _calculateDateRange = calculateDateRange(),
556
+ startDate = _calculateDateRange[0],
557
+ endDate = _calculateDateRange[1];
558
+
559
+ // Check if start or end dates are missing
560
+ if (!startDate || !endDate) {
561
+ return true;
562
+ }
563
+
564
+ // Additional condition if only showing time
565
+ if (!onlyShowTime && !isSelectedIdle) {
546
566
  return true;
547
567
  }
548
- if (isErrorValue([start, end])) {
568
+
569
+ // Check if there is any error in the selected date range
570
+ if (isErrorValue([startDate, endDate])) {
549
571
  return true;
550
572
  }
551
573
  return false;
552
574
  };
553
575
 
554
576
  /**
555
- * Check if the shortcut button is disabled
577
+ * Check if a shortcut is disabled based on the selected date range
556
578
  */
557
- var isShortcutDisabled = function isShortcutDisabled(value) {
558
- if (value === void 0) {
559
- value = [];
560
- }
561
- var _value = value,
562
- start = _value[0],
563
- end = _value[1];
564
- if (!start || !end) {
579
+ var shouldDisableShortcut = function shouldDisableShortcut(selectedDates) {
580
+ if (selectedDates === void 0) {
581
+ selectedDates = [];
582
+ }
583
+ var _selectedDates = selectedDates,
584
+ startDate = _selectedDates[0],
585
+ endDate = _selectedDates[1];
586
+
587
+ // Disable if either start or end date is missing
588
+ if (!startDate || !endDate) {
565
589
  return true;
566
590
  }
567
- return isRangeDisabled(start, end, TARGET.TOOLBAR_SHORTCUT);
591
+
592
+ // Check if the date range is disabled for the shortcut
593
+ return isRangeDisabled(startDate, endDate, TARGET.TOOLBAR_SHORTCUT);
568
594
  };
569
595
  var handleClose = useEventCallback(function () {
570
596
  var _trigger$current, _trigger$current$clos;
@@ -597,7 +623,8 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
597
623
  className = positionProps.className;
598
624
  var classes = merge(className, menuClassName, prefix('popup-daterange'));
599
625
  var panelClasses = prefix('daterange-panel', {
600
- 'daterange-panel-show-one-calendar': showOneCalendar
626
+ 'daterange-panel-show-one-calendar': showOneCalendar,
627
+ 'daterange-panel-only-time': onlyShowTime
601
628
  });
602
629
 
603
630
  /**
@@ -605,7 +632,7 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
605
632
  * @see https://github.com/rsuite/rsuite/issues/3522
606
633
  */
607
634
  var panelStyles = {
608
- minWidth: showOneCalendar ? 'auto' : 528
635
+ minWidth: showOneCalendar || onlyShowTime ? 'auto' : 528
609
636
  };
610
637
  var styles = _extends({}, menuStyle, {
611
638
  left: left,
@@ -616,19 +643,24 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
616
643
  isoWeek: isoWeek,
617
644
  weekStart: weekStart,
618
645
  limitEndYear: limitEndYear,
619
- showMeridian: showMeridian,
620
- calendarDate: calendarDate,
646
+ showMeridiem: showMeridiem,
647
+ calendarDateRange: calendarDateRange,
621
648
  limitStartYear: limitStartYear,
622
649
  showWeekNumbers: showWeekNumbers,
623
650
  format: formatStr,
624
651
  value: selectedDates,
625
652
  monthDropdownProps: monthDropdownProps,
626
653
  hoverRangeValue: hoverDateRange !== null && hoverDateRange !== void 0 ? hoverDateRange : undefined,
654
+ hideHours: hideHours,
655
+ hideMinutes: hideMinutes,
656
+ hideSeconds: hideSeconds,
657
+ disabledHours: shouldDisableHour,
658
+ disabledMinutes: shouldDisableMinute,
659
+ disabledSeconds: shouldDisableSecond,
627
660
  disabledDate: disableCalendarDate,
628
661
  onSelect: handleSelectDate,
629
662
  onChangeCalendarMonth: onChangeCalendarMonth,
630
663
  onChangeCalendarTime: onChangeCalendarTime,
631
- onToggleMeridian: onToggleMeridian,
632
664
  onMouseMove: onMouseMove,
633
665
  renderTitle: renderTitle
634
666
  };
@@ -668,9 +700,9 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
668
700
  spacing: 0,
669
701
  className: prefix('daterange-predefined'),
670
702
  ranges: sideRanges,
671
- calendarDate: calendarDate,
703
+ calendarDate: calendarDateRange,
672
704
  locale: locale,
673
- disableShortcut: isShortcutDisabled,
705
+ disableShortcut: shouldDisableShortcut,
674
706
  onShortcutClick: handleShortcutPageDate,
675
707
  "data-testid": "daterange-predefined-side"
676
708
  }), /*#__PURE__*/React.createElement(Stack.Item, null, /*#__PURE__*/React.createElement("div", {
@@ -684,15 +716,15 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
684
716
  onSelect: setActiveCalendarKey
685
717
  }), /*#__PURE__*/React.createElement("div", {
686
718
  className: prefix("daterange-calendar-" + (showOneCalendar ? 'single' : 'group'))
687
- }, /*#__PURE__*/React.createElement(DateRangePickerContext.Provider, {
719
+ }, /*#__PURE__*/React.createElement(DateRangePickerProvider, {
688
720
  value: {
689
721
  isSelectedIdle: isSelectedIdle
690
722
  }
691
723
  }, getCalendars()))), /*#__PURE__*/React.createElement(Toolbar, {
692
724
  locale: locale,
693
725
  calendarDate: selectedDates,
694
- disableOkBtn: isOkButtonDisabled,
695
- disableShortcut: isShortcutDisabled,
726
+ disableOkBtn: shouldDisableOkButton,
727
+ disableShortcut: shouldDisableShortcut,
696
728
  hideOkBtn: oneTap,
697
729
  onOk: handleClickOK,
698
730
  onShortcutClick: handleShortcutPageDate,
@@ -713,8 +745,8 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
713
745
  if (caretAsProp === null) {
714
746
  return null;
715
747
  }
716
- return caretAsProp || (shouldOnlyRenderTime(formatStr) ? IconClockO : IconCalendar);
717
- }, [caretAsProp, formatStr]);
748
+ return caretAsProp || (onlyShowTime ? TimeIcon : IconCalendar);
749
+ }, [caretAsProp, onlyShowTime]);
718
750
  var isErrorValue = function isErrorValue(value) {
719
751
  if (!value) {
720
752
  return false;
@@ -818,6 +850,9 @@ DateRangePicker.propTypes = _extends({}, pickerPropTypes, {
818
850
  defaultCalendarValue: PropTypes.arrayOf(PropTypes.instanceOf(Date)),
819
851
  hoverRange: PropTypes.oneOfType([oneOf(['week', 'month']), PropTypes.func]),
820
852
  format: PropTypes.string,
853
+ hideHours: PropTypes.func,
854
+ hideMinutes: PropTypes.func,
855
+ hideSeconds: PropTypes.func,
821
856
  isoWeek: PropTypes.bool,
822
857
  weekStart: PropTypes.oneOf([0, 1, 2, 3, 4, 5, 6]),
823
858
  oneTap: PropTypes.bool,
@@ -829,7 +864,7 @@ DateRangePicker.propTypes = _extends({}, pickerPropTypes, {
829
864
  shouldDisableDate: PropTypes.func,
830
865
  onSelect: PropTypes.func,
831
866
  showWeekNumbers: PropTypes.bool,
832
- showMeridian: PropTypes.bool,
867
+ showMeridiem: PropTypes.bool,
833
868
  showOneCalendar: PropTypes.bool
834
869
  });
835
870
  export default DateRangePicker;