rsuite 5.71.0 → 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 (393) 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 +17 -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 +6 -2
  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 +21 -4
  97. package/cjs/DateRangePicker/DateRangePicker.js +97 -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/InlineEdit/renderChildren.d.ts +1 -1
  110. package/cjs/InlineEdit/renderChildren.js +13 -4
  111. package/cjs/InlineEdit/useFocusEvent.d.ts +2 -2
  112. package/cjs/InlineEdit/useFocusEvent.js +9 -4
  113. package/cjs/TimePicker/TimePicker.d.ts +81 -0
  114. package/cjs/TimePicker/TimePicker.js +31 -0
  115. package/cjs/TimePicker/index.d.ts +3 -0
  116. package/cjs/TimePicker/index.js +8 -0
  117. package/cjs/TimeRangePicker/TimeRangePicker.d.ts +77 -0
  118. package/cjs/TimeRangePicker/TimeRangePicker.js +23 -0
  119. package/cjs/TimeRangePicker/index.d.ts +3 -0
  120. package/cjs/TimeRangePicker/index.js +8 -0
  121. package/cjs/index.d.ts +4 -0
  122. package/cjs/index.js +6 -1
  123. package/cjs/internals/Picker/Listbox.js +4 -2
  124. package/cjs/internals/hooks/useCustom.js +2 -2
  125. package/cjs/internals/utils/date/extractTimeFormat.d.ts +4 -0
  126. package/cjs/internals/utils/date/extractTimeFormat.js +12 -0
  127. package/cjs/internals/utils/date/formatCheck.d.ts +4 -0
  128. package/cjs/internals/utils/date/formatCheck.js +8 -1
  129. package/cjs/internals/utils/date/index.d.ts +4 -2
  130. package/cjs/internals/utils/date/index.js +72 -7
  131. package/cjs/internals/utils/date/useDateMode.d.ts +16 -0
  132. package/cjs/internals/utils/date/useDateMode.js +57 -0
  133. package/cjs/internals/utils/index.d.ts +0 -1
  134. package/cjs/internals/utils/index.js +1 -4
  135. package/cjs/locales/ar_EG.d.ts +10 -0
  136. package/cjs/locales/ar_EG.js +8 -4
  137. package/cjs/locales/ca_ES.d.ts +10 -0
  138. package/cjs/locales/ca_ES.js +8 -4
  139. package/cjs/locales/cs_CZ.d.ts +10 -0
  140. package/cjs/locales/cs_CZ.js +8 -4
  141. package/cjs/locales/da_DK.d.ts +10 -0
  142. package/cjs/locales/da_DK.js +8 -4
  143. package/cjs/locales/de_DE.d.ts +10 -0
  144. package/cjs/locales/de_DE.js +8 -4
  145. package/cjs/locales/en_GB.d.ts +130 -2
  146. package/cjs/locales/en_GB.js +85 -2
  147. package/cjs/locales/en_US.d.ts +10 -0
  148. package/cjs/locales/en_US.js +8 -4
  149. package/cjs/locales/es_AR.d.ts +10 -0
  150. package/cjs/locales/es_AR.js +8 -4
  151. package/cjs/locales/es_ES.d.ts +10 -0
  152. package/cjs/locales/es_ES.js +8 -4
  153. package/cjs/locales/fa_IR.d.ts +10 -0
  154. package/cjs/locales/fa_IR.js +8 -4
  155. package/cjs/locales/fi_FI.d.ts +10 -0
  156. package/cjs/locales/fi_FI.js +8 -4
  157. package/cjs/locales/fr_FR.d.ts +10 -0
  158. package/cjs/locales/fr_FR.js +8 -4
  159. package/cjs/locales/hu_HU.d.ts +10 -0
  160. package/cjs/locales/hu_HU.js +8 -4
  161. package/cjs/locales/index.d.ts +1 -1
  162. package/cjs/locales/it_IT.d.ts +10 -0
  163. package/cjs/locales/it_IT.js +8 -4
  164. package/cjs/locales/ja_JP.d.ts +10 -0
  165. package/cjs/locales/ja_JP.js +8 -4
  166. package/cjs/locales/kk_KZ.d.ts +10 -0
  167. package/cjs/locales/kk_KZ.js +8 -4
  168. package/cjs/locales/ko_KR.d.ts +10 -0
  169. package/cjs/locales/ko_KR.js +8 -4
  170. package/cjs/locales/ne_NP.d.ts +10 -0
  171. package/cjs/locales/ne_NP.js +8 -4
  172. package/cjs/locales/nl_NL.d.ts +10 -0
  173. package/cjs/locales/nl_NL.js +8 -4
  174. package/cjs/locales/pt_BR.d.ts +10 -0
  175. package/cjs/locales/pt_BR.js +8 -4
  176. package/cjs/locales/ru_RU.d.ts +10 -0
  177. package/cjs/locales/ru_RU.js +8 -4
  178. package/cjs/locales/sv_SE.d.ts +10 -0
  179. package/cjs/locales/sv_SE.js +8 -4
  180. package/cjs/locales/tr_TR.d.ts +10 -0
  181. package/cjs/locales/tr_TR.js +8 -4
  182. package/cjs/locales/zh_CN.d.ts +10 -0
  183. package/cjs/locales/zh_CN.js +8 -4
  184. package/cjs/locales/zh_TW.d.ts +10 -0
  185. package/cjs/locales/zh_TW.js +8 -4
  186. package/dist/rsuite-no-reset-rtl.css +88 -21
  187. package/dist/rsuite-no-reset-rtl.min.css +1 -1
  188. package/dist/rsuite-no-reset-rtl.min.css.map +1 -1
  189. package/dist/rsuite-no-reset.css +88 -21
  190. package/dist/rsuite-no-reset.min.css +1 -1
  191. package/dist/rsuite-no-reset.min.css.map +1 -1
  192. package/dist/rsuite-rtl.css +88 -21
  193. package/dist/rsuite-rtl.min.css +1 -1
  194. package/dist/rsuite-rtl.min.css.map +1 -1
  195. package/dist/rsuite.css +88 -21
  196. package/dist/rsuite.js +361 -141
  197. package/dist/rsuite.js.map +1 -1
  198. package/dist/rsuite.min.css +1 -1
  199. package/dist/rsuite.min.css.map +1 -1
  200. package/dist/rsuite.min.js +1 -1
  201. package/dist/rsuite.min.js.map +1 -1
  202. package/esm/Calendar/Calendar.d.ts +1 -1
  203. package/esm/Calendar/Calendar.js +21 -23
  204. package/esm/Calendar/CalendarBody.js +9 -9
  205. package/esm/Calendar/CalendarContainer.d.ts +10 -2
  206. package/esm/Calendar/CalendarContainer.js +41 -69
  207. package/esm/Calendar/CalendarHeader.d.ts +0 -2
  208. package/esm/Calendar/CalendarHeader.js +25 -43
  209. package/esm/Calendar/{CalendarContext.d.ts → CalendarProvider.d.ts} +3 -22
  210. package/esm/Calendar/CalendarProvider.js +9 -0
  211. package/esm/Calendar/Grid/Grid.d.ts +6 -0
  212. package/esm/Calendar/{Table.js → Grid/Grid.js} +11 -17
  213. package/esm/Calendar/{TableCell.d.ts → Grid/GridCell.d.ts} +4 -4
  214. package/esm/Calendar/{TableCell.js → Grid/GridCell.js} +13 -13
  215. package/esm/Calendar/Grid/GridHeaderRow.d.ts +4 -0
  216. package/esm/Calendar/{TableHeaderRow.js → Grid/GridHeaderRow.js} +11 -11
  217. package/esm/Calendar/Grid/GridRow.d.ts +7 -0
  218. package/esm/Calendar/{TableRow.js → Grid/GridRow.js} +21 -21
  219. package/esm/Calendar/Grid/index.d.ts +2 -0
  220. package/esm/Calendar/Grid/index.js +3 -0
  221. package/esm/Calendar/MonthDropdown.d.ts +0 -15
  222. package/esm/Calendar/MonthDropdown.js +6 -6
  223. package/esm/Calendar/MonthDropdownItem.js +9 -9
  224. package/esm/Calendar/TimeDropdown/TimeColumn.d.ts +8 -0
  225. package/esm/Calendar/TimeDropdown/TimeColumn.js +22 -0
  226. package/{cjs/Calendar → esm/Calendar/TimeDropdown}/TimeDropdown.d.ts +2 -25
  227. package/esm/Calendar/TimeDropdown/TimeDropdown.js +161 -0
  228. package/esm/Calendar/TimeDropdown/index.d.ts +2 -0
  229. package/esm/Calendar/TimeDropdown/index.js +3 -0
  230. package/esm/Calendar/TimeDropdown/utils/formatWithLeadingZero.d.ts +1 -0
  231. package/esm/Calendar/TimeDropdown/utils/formatWithLeadingZero.js +4 -0
  232. package/esm/Calendar/TimeDropdown/utils/getClockTime.d.ts +11 -0
  233. package/esm/Calendar/TimeDropdown/utils/getClockTime.js +39 -0
  234. package/esm/Calendar/TimeDropdown/utils/getTimeLimits.d.ts +11 -0
  235. package/esm/Calendar/TimeDropdown/utils/getTimeLimits.js +20 -0
  236. package/esm/Calendar/TimeDropdown/utils/index.d.ts +4 -0
  237. package/esm/Calendar/TimeDropdown/utils/index.js +5 -0
  238. package/esm/Calendar/TimeDropdown/utils/scrollToTime.d.ts +2 -0
  239. package/esm/Calendar/TimeDropdown/utils/scrollToTime.js +23 -0
  240. package/esm/Calendar/hooks/index.d.ts +3 -0
  241. package/esm/Calendar/hooks/index.js +4 -0
  242. package/esm/Calendar/hooks/useCalendar.d.ts +2 -0
  243. package/esm/Calendar/hooks/useCalendar.js +6 -0
  244. package/esm/Calendar/{useCalendarDate.d.ts → hooks/useCalendarDate.d.ts} +1 -2
  245. package/esm/Calendar/{useCalendarDate.js → hooks/useCalendarDate.js} +7 -7
  246. package/esm/Calendar/hooks/useCalendarState.d.ts +22 -0
  247. package/esm/Calendar/hooks/useCalendarState.js +56 -0
  248. package/esm/Calendar/index.d.ts +2 -4
  249. package/esm/Calendar/index.js +2 -3
  250. package/esm/Calendar/types.d.ts +19 -0
  251. package/esm/Calendar/types.js +2 -0
  252. package/esm/Calendar/{utils.js → utils/getAriaLabel.js} +1 -1
  253. package/esm/Calendar/utils/index.d.ts +1 -0
  254. package/esm/Calendar/utils/index.js +2 -0
  255. package/esm/CustomProvider/CustomProvider.d.ts +19 -3
  256. package/esm/DateInput/DateField.js +2 -2
  257. package/esm/DateInput/DateInput.js +17 -6
  258. package/esm/DateInput/hooks/useDateInputState.js +1 -1
  259. package/esm/DatePicker/DatePicker.d.ts +6 -2
  260. package/esm/DatePicker/DatePicker.js +28 -36
  261. package/esm/DatePicker/hooks/useFocus.js +1 -1
  262. package/esm/DatePicker/utils.js +2 -2
  263. package/esm/DateRangeInput/DateRangeInput.js +16 -5
  264. package/esm/DateRangePicker/Calendar.d.ts +4 -5
  265. package/esm/DateRangePicker/Calendar.js +19 -47
  266. package/esm/DateRangePicker/DateRangePicker.d.ts +21 -4
  267. package/esm/DateRangePicker/DateRangePicker.js +98 -72
  268. package/esm/DateRangePicker/DateRangePickerProvider.d.ts +10 -0
  269. package/esm/DateRangePicker/{DateRangePickerContext.js → DateRangePickerProvider.js} +2 -2
  270. package/esm/DateRangePicker/hooks/index.d.ts +3 -0
  271. package/esm/DateRangePicker/hooks/index.js +4 -0
  272. package/esm/DateRangePicker/hooks/useCalendarHandlers.d.ts +17 -0
  273. package/esm/DateRangePicker/hooks/useCalendarHandlers.js +38 -0
  274. package/esm/DateRangePicker/hooks/useDateDisabled.d.ts +1 -1
  275. package/esm/DateRangePicker/hooks/useDateDisabled.js +1 -1
  276. package/esm/DateRangePicker/hooks/useDateRangePicker.d.ts +2 -0
  277. package/esm/DateRangePicker/hooks/useDateRangePicker.js +6 -0
  278. package/esm/DateRangePicker/utils.js +2 -2
  279. package/esm/InlineEdit/renderChildren.d.ts +1 -1
  280. package/esm/InlineEdit/renderChildren.js +13 -4
  281. package/esm/InlineEdit/useFocusEvent.d.ts +2 -2
  282. package/esm/InlineEdit/useFocusEvent.js +9 -4
  283. package/esm/TimePicker/TimePicker.d.ts +81 -0
  284. package/esm/TimePicker/TimePicker.js +24 -0
  285. package/esm/TimePicker/index.d.ts +3 -0
  286. package/esm/TimePicker/index.js +3 -0
  287. package/esm/TimeRangePicker/TimeRangePicker.d.ts +77 -0
  288. package/esm/TimeRangePicker/TimeRangePicker.js +18 -0
  289. package/esm/TimeRangePicker/index.d.ts +3 -0
  290. package/esm/TimeRangePicker/index.js +3 -0
  291. package/esm/index.d.ts +4 -0
  292. package/esm/index.js +2 -0
  293. package/esm/internals/Picker/Listbox.js +4 -2
  294. package/esm/internals/hooks/useCustom.js +1 -1
  295. package/esm/internals/utils/date/extractTimeFormat.d.ts +4 -0
  296. package/esm/internals/utils/date/extractTimeFormat.js +8 -0
  297. package/esm/internals/utils/date/formatCheck.d.ts +4 -0
  298. package/esm/internals/utils/date/formatCheck.js +7 -0
  299. package/esm/internals/utils/date/index.d.ts +4 -2
  300. package/esm/internals/utils/date/index.js +4 -2
  301. package/esm/internals/utils/date/useDateMode.d.ts +16 -0
  302. package/esm/internals/utils/date/useDateMode.js +54 -0
  303. package/esm/internals/utils/index.d.ts +0 -1
  304. package/esm/internals/utils/index.js +0 -1
  305. package/esm/locales/ar_EG.d.ts +10 -0
  306. package/esm/locales/ar_EG.js +8 -4
  307. package/esm/locales/ca_ES.d.ts +10 -0
  308. package/esm/locales/ca_ES.js +8 -4
  309. package/esm/locales/cs_CZ.d.ts +10 -0
  310. package/esm/locales/cs_CZ.js +8 -4
  311. package/esm/locales/da_DK.d.ts +10 -0
  312. package/esm/locales/da_DK.js +8 -4
  313. package/esm/locales/de_DE.d.ts +10 -0
  314. package/esm/locales/de_DE.js +8 -4
  315. package/esm/locales/en_GB.d.ts +130 -2
  316. package/esm/locales/en_GB.js +85 -2
  317. package/esm/locales/en_US.d.ts +10 -0
  318. package/esm/locales/en_US.js +8 -4
  319. package/esm/locales/es_AR.d.ts +10 -0
  320. package/esm/locales/es_AR.js +8 -4
  321. package/esm/locales/es_ES.d.ts +10 -0
  322. package/esm/locales/es_ES.js +8 -4
  323. package/esm/locales/fa_IR.d.ts +10 -0
  324. package/esm/locales/fa_IR.js +8 -4
  325. package/esm/locales/fi_FI.d.ts +10 -0
  326. package/esm/locales/fi_FI.js +8 -4
  327. package/esm/locales/fr_FR.d.ts +10 -0
  328. package/esm/locales/fr_FR.js +8 -4
  329. package/esm/locales/hu_HU.d.ts +10 -0
  330. package/esm/locales/hu_HU.js +8 -4
  331. package/esm/locales/index.d.ts +1 -1
  332. package/esm/locales/it_IT.d.ts +10 -0
  333. package/esm/locales/it_IT.js +8 -4
  334. package/esm/locales/ja_JP.d.ts +10 -0
  335. package/esm/locales/ja_JP.js +8 -4
  336. package/esm/locales/kk_KZ.d.ts +10 -0
  337. package/esm/locales/kk_KZ.js +8 -4
  338. package/esm/locales/ko_KR.d.ts +10 -0
  339. package/esm/locales/ko_KR.js +8 -4
  340. package/esm/locales/ne_NP.d.ts +10 -0
  341. package/esm/locales/ne_NP.js +8 -4
  342. package/esm/locales/nl_NL.d.ts +10 -0
  343. package/esm/locales/nl_NL.js +8 -4
  344. package/esm/locales/pt_BR.d.ts +10 -0
  345. package/esm/locales/pt_BR.js +8 -4
  346. package/esm/locales/ru_RU.d.ts +10 -0
  347. package/esm/locales/ru_RU.js +8 -4
  348. package/esm/locales/sv_SE.d.ts +10 -0
  349. package/esm/locales/sv_SE.js +8 -4
  350. package/esm/locales/tr_TR.d.ts +10 -0
  351. package/esm/locales/tr_TR.js +8 -4
  352. package/esm/locales/zh_CN.d.ts +10 -0
  353. package/esm/locales/zh_CN.js +8 -4
  354. package/esm/locales/zh_TW.d.ts +10 -0
  355. package/esm/locales/zh_TW.js +8 -4
  356. package/internals/Picker/styles/index.less +17 -0
  357. package/internals/ScrollView/styles/index.less +1 -5
  358. package/package.json +1 -1
  359. package/styles/color-modes/dark.less +5 -0
  360. package/styles/color-modes/high-contrast.less +5 -0
  361. package/styles/color-modes/light.less +5 -0
  362. package/styles/common.less +3 -3
  363. package/styles/variables.less +2 -2
  364. package/cjs/Calendar/CalendarContext.js +0 -22
  365. package/cjs/Calendar/Table.d.ts +0 -6
  366. package/cjs/Calendar/TableHeaderRow.d.ts +0 -4
  367. package/cjs/Calendar/TableRow.d.ts +0 -7
  368. package/cjs/Calendar/useCalendarState.d.ts +0 -11
  369. package/cjs/Calendar/useCalendarState.js +0 -32
  370. package/cjs/DateRangePicker/DateRangePickerContext.d.ts +0 -10
  371. package/cjs/internals/utils/date/getReversedTimeMeridian.d.ts +0 -8
  372. package/cjs/internals/utils/date/getReversedTimeMeridian.js +0 -21
  373. package/cjs/internals/utils/scrollTopAnimation.d.ts +0 -5
  374. package/cjs/internals/utils/scrollTopAnimation.js +0 -32
  375. package/cjs/locales/default.d.ts +0 -120
  376. package/cjs/locales/default.js +0 -87
  377. package/esm/Calendar/CalendarContext.js +0 -17
  378. package/esm/Calendar/Table.d.ts +0 -6
  379. package/esm/Calendar/TableHeaderRow.d.ts +0 -4
  380. package/esm/Calendar/TableRow.d.ts +0 -7
  381. package/esm/Calendar/TimeDropdown.js +0 -192
  382. package/esm/Calendar/useCalendarState.d.ts +0 -11
  383. package/esm/Calendar/useCalendarState.js +0 -28
  384. package/esm/DateRangePicker/DateRangePickerContext.d.ts +0 -10
  385. package/esm/internals/utils/date/getReversedTimeMeridian.d.ts +0 -8
  386. package/esm/internals/utils/date/getReversedTimeMeridian.js +0 -17
  387. package/esm/internals/utils/scrollTopAnimation.d.ts +0 -5
  388. package/esm/internals/utils/scrollTopAnimation.js +0 -27
  389. package/esm/locales/default.d.ts +0 -120
  390. package/esm/locales/default.js +0 -82
  391. package/locales/default/package.json +0 -7
  392. /package/cjs/Calendar/{utils.d.ts → utils/getAriaLabel.d.ts} +0 -0
  393. /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
@@ -118,6 +123,18 @@ export interface DateRangePickerProps extends PickerBaseProps<DateRangePickerLoc
118
123
  * Whether a date cell is disabled
119
124
  */
120
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;
121
138
  /**
122
139
  * Called when the option is selected
123
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", "hideHours", "hideMinutes", "hideSeconds", "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,
@@ -114,16 +118,26 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
114
118
  var _useCustom = useCustom('DateRangePicker', overrideLocale),
115
119
  locale = _useCustom.locale,
116
120
  formatDate = _useCustom.formatDate;
117
-
118
- // Default gap between two calendars, if `showOneCalendar` is set, the gap is 0
119
- var calendarGap = showOneCalendar ? 0 : 1;
121
+ var formatStr = format || locale.shortDateFormat || 'yyyy-MM-dd';
120
122
  var rangeFormatStr = "" + formatStr + character + formatStr;
121
123
  var _useControlled = useControlled(valueProp, defaultValue !== null && defaultValue !== void 0 ? defaultValue : null),
122
124
  value = _useControlled[0],
123
125
  setValue = _useControlled[1];
126
+ var _useDateMode = useDateMode(formatStr),
127
+ mode = _useDateMode.mode,
128
+ has = _useDateMode.has;
124
129
 
125
130
  // Show only the calendar month panel. formatStr = 'yyyy-MM'
126
- 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;
127
141
 
128
142
  /**
129
143
  * Whether to complete the selection.
@@ -154,10 +168,11 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
154
168
 
155
169
  // The displayed calendar panel is rendered based on this value.
156
170
  var _useState4 = useState(getSafeCalendarDate({
157
- 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
158
173
  })),
159
- calendarDate = _useState4[0],
160
- setCalendarDate = _useState4[1];
174
+ calendarDateRange = _useState4[0],
175
+ setCalendarDateRangeValue = _useState4[1];
161
176
 
162
177
  /**
163
178
  * When hoverRange is set, `selectValue` will be updated during the hover process,
@@ -180,7 +195,7 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
180
195
  */
181
196
  var getCalendarDatetime = function getCalendarDatetime(calendarKey) {
182
197
  var index = calendarKey === 'start' ? 0 : 1;
183
- 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]);
184
199
  };
185
200
 
186
201
  /**
@@ -194,7 +209,7 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
194
209
  var nextValue = dateRange;
195
210
 
196
211
  // The time should remain the same when the dates in the date range are changed.
197
- 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')) {
198
213
  var startDate = copyTime({
199
214
  from: getCalendarDatetime('start'),
200
215
  to: dateRange[0]
@@ -211,11 +226,9 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
211
226
  var nextCalendarDate = getSafeCalendarDate({
212
227
  value: nextValue,
213
228
  calendarKey: calendarKey,
214
- // When only the month is displayed and only one calendar is displayed,
215
- // there is no need to add a month and two calendar panels are allowed to display the same month
216
- allowSameMonth: onlyShowMonth || showOneCalendar
229
+ allowSameMonth: allowSameMonth
217
230
  });
218
- setCalendarDate(nextCalendarDate);
231
+ setCalendarDateRangeValue(nextCalendarDate);
219
232
  if (onlyShowMonth && eventName === 'changeMonth') {
220
233
  setSelectedDates(nextCalendarDate);
221
234
  }
@@ -354,7 +367,7 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
354
367
  if (isAfter(nextSelectDates[0], nextSelectDates[1])) {
355
368
  nextSelectDates = reverseDateRangeOmitTime(nextSelectDates);
356
369
  }
357
- if (shouldRenderTime(formatStr)) {
370
+ if (has('time')) {
358
371
  nextSelectDates = [copyTime({
359
372
  from: getCalendarDatetime('start'),
360
373
  to: nextSelectDates[0]
@@ -373,7 +386,7 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
373
386
  setActiveCalendarKey('start');
374
387
  }
375
388
  setSelectedDates(nextSelectDates);
376
- if (!isSameMonth(calendarDate[index], date) || calendarSnapping) {
389
+ if (!isSameMonth(calendarDateRange[index], date) || calendarSnapping) {
377
390
  setCalendarDateRange({
378
391
  dateRange: nextSelectDates,
379
392
  calendarKey: calendarKey,
@@ -396,7 +409,7 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
396
409
  }, [selectedDates]);
397
410
  var onChangeCalendarMonth = useEventCallback(function (index, date) {
398
411
  var calendarKey = index === 0 ? 'start' : 'end';
399
- var nextCalendarDate = Array.from(calendarDate);
412
+ var nextCalendarDate = Array.from(calendarDateRange);
400
413
  nextCalendarDate[index] = date;
401
414
  setCalendarDateRange({
402
415
  dateRange: nextCalendarDate,
@@ -406,7 +419,7 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
406
419
  });
407
420
  var onChangeCalendarTime = useEventCallback(function (index, date) {
408
421
  var calendarKey = index === 0 ? 'start' : 'end';
409
- var nextCalendarDate = Array.from(calendarDate);
422
+ var nextCalendarDate = Array.from(calendarDateRange);
410
423
  nextCalendarDate[index] = date;
411
424
  setCalendarDateRange({
412
425
  dateRange: nextCalendarDate,
@@ -424,22 +437,6 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
424
437
  return next;
425
438
  });
426
439
  });
427
-
428
- /**
429
- * The callback triggered when PM/AM is switched.
430
- */
431
- var onToggleMeridian = useEventCallback(function (index) {
432
- var nextCalendarDate = Array.from(calendarDate);
433
- nextCalendarDate[index] = getReversedTimeMeridian(nextCalendarDate[index]);
434
- setCalendarDate(nextCalendarDate);
435
-
436
- // If the value already exists, update the value again.
437
- if (selectedDates.length === 2) {
438
- var nextSelectedDates = Array.from(selectedDates);
439
- nextSelectedDates[index] = getReversedTimeMeridian(nextSelectedDates[index]);
440
- setSelectedDates(nextSelectedDates);
441
- }
442
- });
443
440
  var handleEnter = useEventCallback(function () {
444
441
  var nextCalendarDate;
445
442
  if (value && value.length) {
@@ -449,7 +446,8 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
449
446
  } else {
450
447
  // Reset the date on the calendar to the default date
451
448
  nextCalendarDate = getSafeCalendarDate({
452
- value: defaultCalendarValue !== null && defaultCalendarValue !== void 0 ? defaultCalendarValue : null
449
+ value: defaultCalendarValue !== null && defaultCalendarValue !== void 0 ? defaultCalendarValue : null,
450
+ allowSameMonth: allowSameMonth
453
451
  });
454
452
  }
455
453
  setSelectedDates(value !== null && value !== void 0 ? value : []);
@@ -480,9 +478,20 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
480
478
  // End unfinished selections.
481
479
  setSelectedIdle(true);
482
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
+ };
483
491
  var handleClickOK = useEventCallback(function (event) {
484
- setDateRange(event, selectedDates);
485
- 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);
486
495
  });
487
496
  var handleClean = useEventCallback(function (event) {
488
497
  setCalendarDateRange({
@@ -540,34 +549,48 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
540
549
  };
541
550
 
542
551
  /**
543
- * Check if the OK button is disabled
552
+ * Determine if the OK button should be disabled
544
553
  */
545
- var isOkButtonDisabled = function isOkButtonDisabled() {
546
- var start = selectedDates[0],
547
- end = selectedDates[1];
548
- 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) {
549
566
  return true;
550
567
  }
551
- if (isErrorValue([start, end])) {
568
+
569
+ // Check if there is any error in the selected date range
570
+ if (isErrorValue([startDate, endDate])) {
552
571
  return true;
553
572
  }
554
573
  return false;
555
574
  };
556
575
 
557
576
  /**
558
- * Check if the shortcut button is disabled
577
+ * Check if a shortcut is disabled based on the selected date range
559
578
  */
560
- var isShortcutDisabled = function isShortcutDisabled(value) {
561
- if (value === void 0) {
562
- value = [];
563
- }
564
- var _value = value,
565
- start = _value[0],
566
- end = _value[1];
567
- 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) {
568
589
  return true;
569
590
  }
570
- 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);
571
594
  };
572
595
  var handleClose = useEventCallback(function () {
573
596
  var _trigger$current, _trigger$current$clos;
@@ -600,7 +623,8 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
600
623
  className = positionProps.className;
601
624
  var classes = merge(className, menuClassName, prefix('popup-daterange'));
602
625
  var panelClasses = prefix('daterange-panel', {
603
- 'daterange-panel-show-one-calendar': showOneCalendar
626
+ 'daterange-panel-show-one-calendar': showOneCalendar,
627
+ 'daterange-panel-only-time': onlyShowTime
604
628
  });
605
629
 
606
630
  /**
@@ -608,7 +632,7 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
608
632
  * @see https://github.com/rsuite/rsuite/issues/3522
609
633
  */
610
634
  var panelStyles = {
611
- minWidth: showOneCalendar ? 'auto' : 528
635
+ minWidth: showOneCalendar || onlyShowTime ? 'auto' : 528
612
636
  };
613
637
  var styles = _extends({}, menuStyle, {
614
638
  left: left,
@@ -619,8 +643,8 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
619
643
  isoWeek: isoWeek,
620
644
  weekStart: weekStart,
621
645
  limitEndYear: limitEndYear,
622
- showMeridian: showMeridian,
623
- calendarDate: calendarDate,
646
+ showMeridiem: showMeridiem,
647
+ calendarDateRange: calendarDateRange,
624
648
  limitStartYear: limitStartYear,
625
649
  showWeekNumbers: showWeekNumbers,
626
650
  format: formatStr,
@@ -630,11 +654,13 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
630
654
  hideHours: hideHours,
631
655
  hideMinutes: hideMinutes,
632
656
  hideSeconds: hideSeconds,
657
+ disabledHours: shouldDisableHour,
658
+ disabledMinutes: shouldDisableMinute,
659
+ disabledSeconds: shouldDisableSecond,
633
660
  disabledDate: disableCalendarDate,
634
661
  onSelect: handleSelectDate,
635
662
  onChangeCalendarMonth: onChangeCalendarMonth,
636
663
  onChangeCalendarTime: onChangeCalendarTime,
637
- onToggleMeridian: onToggleMeridian,
638
664
  onMouseMove: onMouseMove,
639
665
  renderTitle: renderTitle
640
666
  };
@@ -674,9 +700,9 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
674
700
  spacing: 0,
675
701
  className: prefix('daterange-predefined'),
676
702
  ranges: sideRanges,
677
- calendarDate: calendarDate,
703
+ calendarDate: calendarDateRange,
678
704
  locale: locale,
679
- disableShortcut: isShortcutDisabled,
705
+ disableShortcut: shouldDisableShortcut,
680
706
  onShortcutClick: handleShortcutPageDate,
681
707
  "data-testid": "daterange-predefined-side"
682
708
  }), /*#__PURE__*/React.createElement(Stack.Item, null, /*#__PURE__*/React.createElement("div", {
@@ -690,15 +716,15 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
690
716
  onSelect: setActiveCalendarKey
691
717
  }), /*#__PURE__*/React.createElement("div", {
692
718
  className: prefix("daterange-calendar-" + (showOneCalendar ? 'single' : 'group'))
693
- }, /*#__PURE__*/React.createElement(DateRangePickerContext.Provider, {
719
+ }, /*#__PURE__*/React.createElement(DateRangePickerProvider, {
694
720
  value: {
695
721
  isSelectedIdle: isSelectedIdle
696
722
  }
697
723
  }, getCalendars()))), /*#__PURE__*/React.createElement(Toolbar, {
698
724
  locale: locale,
699
725
  calendarDate: selectedDates,
700
- disableOkBtn: isOkButtonDisabled,
701
- disableShortcut: isShortcutDisabled,
726
+ disableOkBtn: shouldDisableOkButton,
727
+ disableShortcut: shouldDisableShortcut,
702
728
  hideOkBtn: oneTap,
703
729
  onOk: handleClickOK,
704
730
  onShortcutClick: handleShortcutPageDate,
@@ -719,8 +745,8 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
719
745
  if (caretAsProp === null) {
720
746
  return null;
721
747
  }
722
- return caretAsProp || (shouldOnlyRenderTime(formatStr) ? IconClockO : IconCalendar);
723
- }, [caretAsProp, formatStr]);
748
+ return caretAsProp || (onlyShowTime ? TimeIcon : IconCalendar);
749
+ }, [caretAsProp, onlyShowTime]);
724
750
  var isErrorValue = function isErrorValue(value) {
725
751
  if (!value) {
726
752
  return false;
@@ -838,7 +864,7 @@ DateRangePicker.propTypes = _extends({}, pickerPropTypes, {
838
864
  shouldDisableDate: PropTypes.func,
839
865
  onSelect: PropTypes.func,
840
866
  showWeekNumbers: PropTypes.bool,
841
- showMeridian: PropTypes.bool,
867
+ showMeridiem: PropTypes.bool,
842
868
  showOneCalendar: PropTypes.bool
843
869
  });
844
870
  export default DateRangePicker;
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ export interface DateRangePickerContextValue {
3
+ /**
4
+ * Whether to complete the selection.
5
+ */
6
+ isSelectedIdle?: boolean;
7
+ }
8
+ export declare const DateRangePickerContext: React.Context<DateRangePickerContextValue>;
9
+ export declare const useDateRangePickerContext: () => DateRangePickerContextValue;
10
+ export declare const DateRangePickerProvider: React.Provider<DateRangePickerContextValue>;
@@ -1,7 +1,7 @@
1
1
  'use client';
2
2
  import React, { useContext } from 'react';
3
- var DateRangePickerContext = /*#__PURE__*/React.createContext({});
3
+ export var DateRangePickerContext = /*#__PURE__*/React.createContext({});
4
4
  export var useDateRangePickerContext = function useDateRangePickerContext() {
5
5
  return useContext(DateRangePickerContext) || {};
6
6
  };
7
- export default DateRangePickerContext;
7
+ export var DateRangePickerProvider = DateRangePickerContext.Provider;
@@ -0,0 +1,3 @@
1
+ export { useDateRangePicker } from './useDateRangePicker';
2
+ export { useDateDisabled } from './useDateDisabled';
3
+ export { useCalendarHandlers } from './useCalendarHandlers';
@@ -0,0 +1,4 @@
1
+ 'use client';
2
+ export { useDateRangePicker } from "./useDateRangePicker.js";
3
+ export { useDateDisabled } from "./useDateDisabled.js";
4
+ export { useCalendarHandlers } from "./useCalendarHandlers.js";