rsuite 5.0.1 → 5.2.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 (257) hide show
  1. package/Button/styles/index.less +1 -1
  2. package/CHANGELOG.md +50 -0
  3. package/MaskedInput/package.json +7 -0
  4. package/Navbar/styles/index.less +8 -0
  5. package/Picker/styles/index.less +1 -1
  6. package/Picker/styles/mixin.less +1 -1
  7. package/README.md +1 -2
  8. package/Sidenav/styles/index.less +13 -16
  9. package/Slider/styles/index.less +20 -14
  10. package/Toggle/styles/index.less +53 -12
  11. package/Toggle/styles/mixin.less +25 -11
  12. package/Uploader/styles/index.less +10 -1
  13. package/cjs/@types/common.d.ts +8 -2
  14. package/cjs/Affix/Affix.js +3 -3
  15. package/cjs/Animation/Collapse.js +9 -7
  16. package/cjs/Animation/Transition.js +4 -2
  17. package/cjs/AutoComplete/AutoComplete.d.ts +2 -2
  18. package/cjs/AutoComplete/AutoComplete.js +7 -4
  19. package/cjs/Calendar/TimeDropdown.js +5 -3
  20. package/cjs/Cascader/Cascader.d.ts +1 -1
  21. package/cjs/Cascader/Cascader.js +3 -1
  22. package/cjs/Cascader/DropdownMenu.js +6 -5
  23. package/cjs/CheckTreePicker/CheckTreeNode.d.ts +1 -1
  24. package/cjs/CheckTreePicker/CheckTreePicker.d.ts +1 -1
  25. package/cjs/Checkbox/Checkbox.d.ts +3 -3
  26. package/cjs/CheckboxGroup/CheckboxGroupContext.d.ts +1 -1
  27. package/cjs/DOMHelper/index.d.ts +13 -28
  28. package/cjs/DOMHelper/index.js +4 -3
  29. package/cjs/DOMHelper/isElement.d.ts +2 -0
  30. package/cjs/DOMHelper/isElement.js +11 -0
  31. package/cjs/DatePicker/DatePicker.d.ts +3 -3
  32. package/cjs/DatePicker/DatePicker.js +6 -3
  33. package/cjs/DateRangePicker/Calendar.d.ts +1 -1
  34. package/cjs/DateRangePicker/DateRangePicker.d.ts +2 -2
  35. package/cjs/DateRangePicker/DateRangePicker.js +15 -7
  36. package/cjs/Disclosure/Disclosure.d.ts +1 -1
  37. package/cjs/Disclosure/DisclosureContext.d.ts +1 -1
  38. package/cjs/Dropdown/DropdownItem.d.ts +1 -1
  39. package/cjs/Dropdown/DropdownItem.js +23 -16
  40. package/cjs/Dropdown/DropdownMenu.d.ts +2 -2
  41. package/cjs/Form/Form.d.ts +1 -1
  42. package/cjs/FormControl/FormControl.d.ts +9 -3
  43. package/cjs/FormControl/FormControl.js +6 -2
  44. package/cjs/Input/Input.d.ts +2 -1
  45. package/cjs/InputNumber/InputNumber.js +2 -2
  46. package/cjs/InputPicker/InputPicker.js +4 -3
  47. package/cjs/List/helper/useSortHelper.js +11 -6
  48. package/cjs/MaskedInput/MaskedInput.d.ts +43 -0
  49. package/cjs/MaskedInput/MaskedInput.js +80 -0
  50. package/cjs/MaskedInput/adjustCaretPosition.d.ts +11 -0
  51. package/cjs/MaskedInput/adjustCaretPosition.js +218 -0
  52. package/cjs/MaskedInput/conformToMask.d.ts +8 -0
  53. package/cjs/MaskedInput/conformToMask.js +247 -0
  54. package/cjs/MaskedInput/createTextMaskInputElement.d.ts +7 -0
  55. package/cjs/MaskedInput/createTextMaskInputElement.js +226 -0
  56. package/cjs/MaskedInput/index.d.ts +3 -0
  57. package/cjs/MaskedInput/index.js +11 -0
  58. package/cjs/MaskedInput/types.d.ts +10 -0
  59. package/cjs/{@types/icons.js → MaskedInput/types.js} +0 -0
  60. package/cjs/MaskedInput/utilities.d.ts +7 -0
  61. package/cjs/MaskedInput/utilities.js +47 -0
  62. package/cjs/Menu/MenuItem.d.ts +1 -1
  63. package/cjs/Menu/Menubar.d.ts +1 -1
  64. package/cjs/Message/Message.js +13 -11
  65. package/cjs/Modal/Modal.js +5 -3
  66. package/cjs/Modal/utils.js +7 -5
  67. package/cjs/MultiCascader/MultiCascader.js +3 -1
  68. package/cjs/Notification/Notification.js +6 -3
  69. package/cjs/Overlay/Modal.js +14 -11
  70. package/cjs/Overlay/ModalManager.js +19 -7
  71. package/cjs/Overlay/OverlayTrigger.js +2 -2
  72. package/cjs/Overlay/Position.js +20 -13
  73. package/cjs/Overlay/positionUtils.js +16 -8
  74. package/cjs/Panel/Panel.d.ts +1 -1
  75. package/cjs/Picker/DropdownMenu.js +10 -6
  76. package/cjs/Picker/DropdownMenuCheckItem.d.ts +3 -3
  77. package/cjs/Picker/PickerOverlay.js +5 -3
  78. package/cjs/Picker/PickerToggle.d.ts +6 -0
  79. package/cjs/Picker/PickerToggle.js +17 -8
  80. package/cjs/Picker/SearchBar.d.ts +1 -1
  81. package/cjs/Picker/utils.d.ts +2 -2
  82. package/cjs/Picker/utils.js +1 -1
  83. package/cjs/Radio/Radio.d.ts +1 -1
  84. package/cjs/RadioGroup/RadioGroup.d.ts +1 -1
  85. package/cjs/RangeSlider/RangeSlider.js +9 -5
  86. package/cjs/Rate/Character.js +2 -2
  87. package/cjs/Ripple/Ripple.js +6 -7
  88. package/cjs/SelectPicker/SelectPicker.js +2 -1
  89. package/cjs/Sidenav/SidenavDropdownItem.d.ts +1 -1
  90. package/cjs/Sidenav/SidenavDropdownMenu.d.ts +1 -1
  91. package/cjs/Slider/Graduated.js +1 -1
  92. package/cjs/Slider/Handle.js +10 -5
  93. package/cjs/Slider/ProgressBar.js +1 -1
  94. package/cjs/Slider/Slider.js +9 -5
  95. package/cjs/Table/Table.d.ts +7 -7
  96. package/cjs/TagPicker/index.d.ts +1 -1
  97. package/cjs/Toggle/Toggle.d.ts +5 -6
  98. package/cjs/Toggle/Toggle.js +42 -19
  99. package/cjs/Tree/Tree.d.ts +3 -3
  100. package/cjs/TreePicker/TreeNode.d.ts +1 -1
  101. package/cjs/TreePicker/TreeNode.js +2 -2
  102. package/cjs/TreePicker/TreePicker.d.ts +1 -1
  103. package/cjs/TreePicker/TreePicker.js +2 -1
  104. package/cjs/Uploader/UploadFileItem.d.ts +1 -0
  105. package/cjs/Uploader/UploadFileItem.js +30 -17
  106. package/cjs/Uploader/Uploader.d.ts +6 -4
  107. package/cjs/Uploader/Uploader.js +4 -1
  108. package/cjs/index.d.ts +2 -0
  109. package/cjs/index.js +5 -1
  110. package/cjs/locales/fa_IR.d.ts +105 -0
  111. package/cjs/locales/fa_IR.js +84 -0
  112. package/cjs/locales/index.d.ts +1 -0
  113. package/cjs/locales/index.js +6 -2
  114. package/cjs/utils/BrowserDetection.js +1 -1
  115. package/cjs/utils/index.d.ts +1 -0
  116. package/cjs/utils/index.js +7 -2
  117. package/cjs/utils/previewFile.d.ts +1 -0
  118. package/cjs/utils/previewFile.js +11 -0
  119. package/cjs/utils/scrollTopAnimation.js +5 -5
  120. package/cjs/utils/treeUtils.d.ts +2 -2
  121. package/cjs/utils/useEventListener.js +4 -2
  122. package/cjs/utils/useIsMounted.d.ts +2 -0
  123. package/cjs/utils/useIsMounted.js +22 -0
  124. package/cjs/utils/usePortal.js +2 -2
  125. package/cjs/utils/useRootClose.js +10 -10
  126. package/dist/rsuite-rtl.css +225 -124
  127. package/dist/rsuite-rtl.min.css +1 -1
  128. package/dist/rsuite-rtl.min.css.map +1 -1
  129. package/dist/rsuite.css +225 -124
  130. package/dist/rsuite.js +773 -508
  131. package/dist/rsuite.js.map +1 -1
  132. package/dist/rsuite.min.css +1 -1
  133. package/dist/rsuite.min.css.map +1 -1
  134. package/dist/rsuite.min.js +1 -1
  135. package/dist/rsuite.min.js.map +1 -1
  136. package/esm/@types/common.d.ts +8 -2
  137. package/esm/Affix/Affix.js +1 -1
  138. package/esm/Animation/Collapse.js +2 -1
  139. package/esm/Animation/Transition.js +3 -2
  140. package/esm/AutoComplete/AutoComplete.d.ts +2 -2
  141. package/esm/AutoComplete/AutoComplete.js +8 -5
  142. package/esm/Calendar/TimeDropdown.js +2 -1
  143. package/esm/Cascader/Cascader.d.ts +1 -1
  144. package/esm/Cascader/Cascader.js +3 -1
  145. package/esm/Cascader/DropdownMenu.js +4 -3
  146. package/esm/CheckTreePicker/CheckTreeNode.d.ts +1 -1
  147. package/esm/CheckTreePicker/CheckTreePicker.d.ts +1 -1
  148. package/esm/Checkbox/Checkbox.d.ts +3 -3
  149. package/esm/CheckboxGroup/CheckboxGroupContext.d.ts +1 -1
  150. package/esm/DOMHelper/index.d.ts +13 -28
  151. package/esm/DOMHelper/index.js +2 -3
  152. package/esm/DOMHelper/isElement.d.ts +2 -0
  153. package/esm/DOMHelper/isElement.js +5 -0
  154. package/esm/DatePicker/DatePicker.d.ts +3 -3
  155. package/esm/DatePicker/DatePicker.js +6 -3
  156. package/esm/DateRangePicker/Calendar.d.ts +1 -1
  157. package/esm/DateRangePicker/DateRangePicker.d.ts +2 -2
  158. package/esm/DateRangePicker/DateRangePicker.js +15 -7
  159. package/esm/Disclosure/Disclosure.d.ts +1 -1
  160. package/esm/Disclosure/DisclosureContext.d.ts +1 -1
  161. package/esm/Dropdown/DropdownItem.d.ts +1 -1
  162. package/esm/Dropdown/DropdownItem.js +23 -16
  163. package/esm/Dropdown/DropdownMenu.d.ts +2 -2
  164. package/esm/Form/Form.d.ts +1 -1
  165. package/esm/FormControl/FormControl.d.ts +9 -3
  166. package/esm/FormControl/FormControl.js +6 -2
  167. package/esm/Input/Input.d.ts +2 -1
  168. package/esm/InputNumber/InputNumber.js +2 -2
  169. package/esm/InputPicker/InputPicker.js +3 -2
  170. package/esm/List/helper/useSortHelper.js +8 -4
  171. package/esm/MaskedInput/MaskedInput.d.ts +43 -0
  172. package/esm/MaskedInput/MaskedInput.js +67 -0
  173. package/esm/MaskedInput/adjustCaretPosition.d.ts +11 -0
  174. package/esm/MaskedInput/adjustCaretPosition.js +213 -0
  175. package/esm/MaskedInput/conformToMask.d.ts +8 -0
  176. package/esm/MaskedInput/conformToMask.js +239 -0
  177. package/esm/MaskedInput/createTextMaskInputElement.d.ts +7 -0
  178. package/esm/MaskedInput/createTextMaskInputElement.js +212 -0
  179. package/esm/MaskedInput/index.d.ts +3 -0
  180. package/esm/MaskedInput/index.js +2 -0
  181. package/esm/MaskedInput/types.d.ts +10 -0
  182. package/esm/{@types/icons.js → MaskedInput/types.js} +0 -0
  183. package/esm/MaskedInput/utilities.d.ts +7 -0
  184. package/esm/MaskedInput/utilities.js +38 -0
  185. package/esm/Menu/MenuItem.d.ts +1 -1
  186. package/esm/Menu/Menubar.d.ts +1 -1
  187. package/esm/Message/Message.js +15 -13
  188. package/esm/Modal/Modal.js +3 -2
  189. package/esm/Modal/utils.js +6 -5
  190. package/esm/MultiCascader/MultiCascader.js +3 -1
  191. package/esm/Notification/Notification.js +7 -4
  192. package/esm/Overlay/Modal.js +11 -8
  193. package/esm/Overlay/ModalManager.js +6 -1
  194. package/esm/Overlay/OverlayTrigger.js +1 -1
  195. package/esm/Overlay/Position.js +14 -8
  196. package/esm/Overlay/positionUtils.js +6 -2
  197. package/esm/Panel/Panel.d.ts +1 -1
  198. package/esm/Picker/DropdownMenu.js +3 -1
  199. package/esm/Picker/DropdownMenuCheckItem.d.ts +3 -3
  200. package/esm/Picker/PickerOverlay.js +2 -1
  201. package/esm/Picker/PickerToggle.d.ts +6 -0
  202. package/esm/Picker/PickerToggle.js +14 -6
  203. package/esm/Picker/SearchBar.d.ts +1 -1
  204. package/esm/Picker/utils.d.ts +2 -2
  205. package/esm/Picker/utils.js +1 -1
  206. package/esm/Radio/Radio.d.ts +1 -1
  207. package/esm/RadioGroup/RadioGroup.d.ts +1 -1
  208. package/esm/RangeSlider/RangeSlider.js +4 -2
  209. package/esm/Rate/Character.js +2 -2
  210. package/esm/Ripple/Ripple.js +4 -3
  211. package/esm/SelectPicker/SelectPicker.js +2 -1
  212. package/esm/Sidenav/SidenavDropdownItem.d.ts +1 -1
  213. package/esm/Sidenav/SidenavDropdownMenu.d.ts +1 -1
  214. package/esm/Slider/Graduated.js +1 -1
  215. package/esm/Slider/Handle.js +5 -2
  216. package/esm/Slider/ProgressBar.js +1 -1
  217. package/esm/Slider/Slider.js +4 -2
  218. package/esm/Table/Table.d.ts +7 -7
  219. package/esm/TagPicker/index.d.ts +1 -1
  220. package/esm/Toggle/Toggle.d.ts +5 -6
  221. package/esm/Toggle/Toggle.js +43 -21
  222. package/esm/Tree/Tree.d.ts +3 -3
  223. package/esm/TreePicker/TreeNode.d.ts +1 -1
  224. package/esm/TreePicker/TreeNode.js +1 -1
  225. package/esm/TreePicker/TreePicker.d.ts +1 -1
  226. package/esm/TreePicker/TreePicker.js +2 -1
  227. package/esm/Uploader/UploadFileItem.d.ts +1 -0
  228. package/esm/Uploader/UploadFileItem.js +30 -17
  229. package/esm/Uploader/Uploader.d.ts +6 -4
  230. package/esm/Uploader/Uploader.js +4 -1
  231. package/esm/index.d.ts +2 -0
  232. package/esm/index.js +1 -0
  233. package/esm/locales/fa_IR.d.ts +105 -0
  234. package/esm/locales/fa_IR.js +74 -0
  235. package/esm/locales/index.d.ts +1 -0
  236. package/esm/locales/index.js +2 -1
  237. package/esm/utils/BrowserDetection.js +1 -1
  238. package/esm/utils/index.d.ts +1 -0
  239. package/esm/utils/index.js +2 -1
  240. package/esm/utils/previewFile.d.ts +1 -0
  241. package/esm/utils/previewFile.js +9 -0
  242. package/esm/utils/scrollTopAnimation.js +2 -2
  243. package/esm/utils/treeUtils.d.ts +2 -2
  244. package/esm/utils/useEventListener.js +1 -1
  245. package/esm/utils/useIsMounted.d.ts +2 -0
  246. package/esm/utils/useIsMounted.js +16 -0
  247. package/esm/utils/usePortal.js +2 -2
  248. package/esm/utils/useRootClose.js +8 -6
  249. package/locales/fa_IR/package.json +7 -0
  250. package/package.json +6 -8
  251. package/styles/color-modes/dark.less +1 -0
  252. package/styles/color-modes/high-contrast.less +1 -0
  253. package/styles/color-modes/light.less +3 -0
  254. package/styles/plugins/palette.js +10 -1
  255. package/styles/variables.less +3 -1
  256. package/cjs/@types/icons.d.ts +0 -1
  257. package/esm/@types/icons.d.ts +0 -1
@@ -23,7 +23,7 @@
23
23
  text-decoration: none;
24
24
  color: var(--rs-btn-default-text);
25
25
  background-color: var(--rs-btn-default-bg);
26
- border-radius: 6px;
26
+ border-radius: @border-radius;
27
27
 
28
28
  .high-contrast-mode({
29
29
  transition: none;
package/CHANGELOG.md CHANGED
@@ -1,3 +1,53 @@
1
+ # [5.2.0](https://github.com/rsuite/rsuite/compare/v5.1.0...v5.2.0) (2021-11-05)
2
+
3
+ ### Bug Fixes
4
+
5
+ - **Button:** Add button radius variable ([#2106](https://github.com/rsuite/rsuite/issues/2106)) ([63a61c4](https://github.com/rsuite/rsuite/commit/63a61c4eede3b22c91eef126b72fc1afb280a18e))
6
+ - **less:** palette function accepts rgb color ([#2107](https://github.com/rsuite/rsuite/issues/2107)) ([92c2dc5](https://github.com/rsuite/rsuite/commit/92c2dc5cf9273a26de189cee6e79b57740e17b49))
7
+ - can't perform a React state update on an unmounted component ([#2105](https://github.com/rsuite/rsuite/issues/2105)) ([44439af](https://github.com/rsuite/rsuite/commit/44439afdfdf481887a78fbd86f527e29eafb1a78))
8
+ - **dts:** remove redundant generics on SyntheticEvent ([#2099](https://github.com/rsuite/rsuite/issues/2099)) ([30ccd68](https://github.com/rsuite/rsuite/commit/30ccd685fb09092fb1fa693929cdba5d26967f96))
9
+ - **fa_IR:** trim long text of days to shorter ones ([#2076](https://github.com/rsuite/rsuite/issues/2076)) ([a893b82](https://github.com/rsuite/rsuite/commit/a893b82b835f9268a0053ede64565c96e6110095))
10
+ - **FormControl:** infer additional props from accepter ([#2084](https://github.com/rsuite/rsuite/issues/2084)) ([5d39fed](https://github.com/rsuite/rsuite/commit/5d39fed6e56418e85367df9dd5aeb7b49774380b))
11
+ - **Input:** correct value argument type for onChange callback ([#2087](https://github.com/rsuite/rsuite/issues/2087)) ([7a4ff02](https://github.com/rsuite/rsuite/commit/7a4ff02e1e01b40f2e2bffea105181500848d2c9))
12
+ - **Slider,RangeSlider:** reverse marks order in vertical orientation ([#2080](https://github.com/rsuite/rsuite/issues/2080)) ([07fdd09](https://github.com/rsuite/rsuite/commit/07fdd09bb504ea7e876e6e6b4da439a725f716a9))
13
+
14
+ # [5.1.0](https://github.com/rsuite/rsuite/compare/v5.0.3...v5.1.0) (2021-10-29)
15
+
16
+ ### Bug Fixes
17
+
18
+ - **DatePicker:** fix DatePicker does not change value after pressing enter ([#2055](https://github.com/rsuite/rsuite/issues/2055)) ([c775444](https://github.com/rsuite/rsuite/commit/c7754445763f2553a3cc50e195b1dc347f774415))
19
+ - **DateRangePicker:** fix DateRangePicker does not change value after pressing enter ([#2056](https://github.com/rsuite/rsuite/issues/2056)) ([8e5db2e](https://github.com/rsuite/rsuite/commit/8e5db2e54d8e6ad79f7219dc69cd1f52f32a8295))
20
+ - **Dropdown.Item:** item inside Nav not pass "as" ([#2026](https://github.com/rsuite/rsuite/issues/2026)) ([34bfffd](https://github.com/rsuite/rsuite/commit/34bfffdbcd353753912b30b38523e3b62f430e98)), closes [#2025](https://github.com/rsuite/rsuite/issues/2025)
21
+ - **Dropdown.Item:** render custom element inside li ([#2044](https://github.com/rsuite/rsuite/issues/2044)) ([a2e8a00](https://github.com/rsuite/rsuite/commit/a2e8a00c94f77028ed489a65f970264eeb9551ea))
22
+ - **Overlay:** fix position offset inside container ([#2049](https://github.com/rsuite/rsuite/issues/2049)) ([c27b19e](https://github.com/rsuite/rsuite/commit/c27b19e9c9ec0191ccf5d36d9efe6b176b0b6d84))
23
+ - **Toggle:** improve a11y (keyboard focusable + keyboard events) ([#2032](https://github.com/rsuite/rsuite/issues/2032)) ([9fdfd52](https://github.com/rsuite/rsuite/commit/9fdfd52e1eab3ad3e93569112e33ad3490335fbd))
24
+
25
+ ### Features
26
+
27
+ - **locales:** Created fa_IR locale to add support of Persian language in Rsuite locals ([#2061](https://github.com/rsuite/rsuite/issues/2061)) ([14e5946](https://github.com/rsuite/rsuite/commit/14e59466cfd285ec1098d67280338a7df1ef8f5f))
28
+ - **MaskedInput:** added support for MaskedInput to replace `react-text-mask` ([#2054](https://github.com/rsuite/rsuite/issues/2054)) ([496416a](https://github.com/rsuite/rsuite/commit/496416a2e4b32362252ef70f5c4e40f785ecf5be))
29
+ - **Toggle:** add loading prop ([#2031](https://github.com/rsuite/rsuite/issues/2031)) ([28778de](https://github.com/rsuite/rsuite/commit/28778de0af0495a1bb68479bf3c679413255ce7b))
30
+
31
+ ## [5.0.3](https://github.com/rsuite/rsuite/compare/v5.0.2...v5.0.3) (2021-10-22)
32
+
33
+ ### Bug Fixes
34
+
35
+ - **Navbar:** fix item hover style ([#2010](https://github.com/rsuite/rsuite/issues/2010)) ([8e6e13f](https://github.com/rsuite/rsuite/commit/8e6e13f3eafc1b0cd89900943e351fac817b8598))
36
+ - **pickers:** add missing default appearance ([#2004](https://github.com/rsuite/rsuite/issues/2004)) ([e0bbc45](https://github.com/rsuite/rsuite/commit/e0bbc45cfe5a1cc9978dd8e1d988294764ec321a))
37
+ - **Uploader:** fix disabled button opacity ([#2009](https://github.com/rsuite/rsuite/issues/2009)) ([a02aae7](https://github.com/rsuite/rsuite/commit/a02aae7395521a1246082e410811fe0e71b02a03))
38
+
39
+ <a name="5.0.2"></a>
40
+
41
+ ## [5.0.2](https://github.com/rsuite/rsuite/compare/v5.0.1...v5.0.2) (2021-10-15)
42
+
43
+ ### Bug Fixes
44
+
45
+ - **date-range-picker:** fix date formatting error when typing ([#1991](https://github.com/rsuite/rsuite/issues/1991)) ([f65f7f8](https://github.com/rsuite/rsuite/commit/f65f7f8))
46
+ - **pickers:** clean button overlapping with value ([#1984](https://github.com/rsuite/rsuite/issues/1984)) ([ec127dc](https://github.com/rsuite/rsuite/commit/ec127dc))
47
+ - **table:** fix the typescript type definition of Table ([#1998](https://github.com/rsuite/rsuite/issues/1998)) ([8d00b8d](https://github.com/rsuite/rsuite/commit/8d00b8d)), closes [#1958](https://github.com/rsuite/rsuite/issues/1958)
48
+ - **tag-picker:** update TagPicker trigger props declare. ([#1996](https://github.com/rsuite/rsuite/issues/1996)) ([27da381](https://github.com/rsuite/rsuite/commit/27da381))
49
+ - **uploader:** improve thumbnail rendering on file list ([#1997](https://github.com/rsuite/rsuite/issues/1997)) ([68344d7](https://github.com/rsuite/rsuite/commit/68344d7))
50
+
1
51
  <a name="5.0.1"></a>
2
52
 
3
53
  ## [5.0.1](https://github.com/rsuite/rsuite/compare/v5.0.0-beta.8...v5.0.1) (2021-10-09)
@@ -0,0 +1,7 @@
1
+ {
2
+ "name": "rsuite/MaskedInput",
3
+ "private": true,
4
+ "main": "../cjs/MaskedInput/index.js",
5
+ "module": "../esm/MaskedInput/index.js",
6
+ "types": "../esm/MaskedInput/index.d.ts"
7
+ }
@@ -67,6 +67,13 @@
67
67
  .rs-navbar-nav > .rs-dropdown-item {
68
68
  outline: 0;
69
69
 
70
+ &,
71
+ &:hover,
72
+ &:focus,
73
+ &:active {
74
+ text-decoration: none;
75
+ }
76
+
70
77
  &:focus-visible {
71
78
  .focus-ring();
72
79
 
@@ -137,6 +144,7 @@
137
144
  &:hover,
138
145
  &:focus {
139
146
  background-color: var(--rs-navbar-inverse-hover-bg);
147
+ color: var(--rs-navbar-inverse-hover-text);
140
148
  }
141
149
  }
142
150
 
@@ -218,7 +218,7 @@
218
218
  .ellipsis();
219
219
  }
220
220
 
221
- .rs-picker-cleanable & {
221
+ .rs-picker-cleanable.rs-picker-has-value & {
222
222
  padding-right: (@dropdown-toggle-padding-right + @picker-toggle-clean-width);
223
223
 
224
224
  .rs-@{date-picker-prefix}&,
@@ -122,7 +122,7 @@
122
122
  padding-right: (@padding-horizontal + @dropdown-caret-width + @dropdown-caret-padding);
123
123
  }
124
124
 
125
- .rs-picker-cleanable & {
125
+ .rs-picker-has-value.rs-picker-cleanable & {
126
126
  padding-right: (
127
127
  @padding-horizontal + @dropdown-caret-width + @dropdown-caret-padding + @clean-btn-width +
128
128
  @clean-btn-margin
package/README.md CHANGED
@@ -183,11 +183,10 @@ React Suite is [MIT licensed][license]. Copyright (c) 2016-present, HYPERS.
183
183
  [npm-home]: https://www.npmjs.com/package/rsuite
184
184
  [actions-svg]: https://github.com/rsuite/rsuite/workflows/Node.js%20CI/badge.svg?branch=master
185
185
  [actions-home]: https://github.com/rsuite/rsuite/actions?query=branch%3Amaster+workflow%3A%22Node.js+CI%22
186
- [coverage-home]: https://coveralls.io/github/rsuite/rsuite?branch=master
187
186
  [discord-svg]: https://img.shields.io/badge/Discord-Join%20chat%20%E2%86%92-738bd7.svg
188
187
  [discord-invite]: https://discord.gg/R8mnjwh
189
188
  [rsuite-design]: https://rsuitejs.com/design/default
190
- [live-preview-on-codesandbox]: https://codesandbox.io/s/mo7jxvr9x9?from-embed
189
+ [live-preview-on-codesandbox]: https://codesandbox.io/s/rsuite-template-5vq6zo2z5l
191
190
  [rsuite-doc-guide]: https://rsuitejs.com/en/guide/introduction
192
191
  [rsuite-doc-guide-themes]: https://rsuitejs.com/en/guide/themes
193
192
  [rsuite-doc-guide-intl]: https://rsuitejs.com/en/guide/intl
@@ -481,6 +481,19 @@
481
481
  }
482
482
  }
483
483
 
484
+ .rs-dropdown-item,
485
+ .rs-dropdown-item > .rs-dropdown-menu-toggle,
486
+ .rs-dropdown-item > .rs-dropdown-item-toggle {
487
+ color: var(--rs-sidenav-inverse-text);
488
+
489
+ &:hover,
490
+ &:focus,
491
+ &.rs-dropdown-item-focus {
492
+ background-color: var(--rs-sidenav-inverse-hover-bg);
493
+ color: var(--rs-sidenav-inverse-text);
494
+ }
495
+ }
496
+
484
497
  // Active
485
498
  .rs-sidenav-item.rs-sidenav-item-active,
486
499
  .rs-dropdown.rs-dropdown-selected-within .rs-dropdown-toggle {
@@ -508,22 +521,6 @@
508
521
  }
509
522
  }
510
523
 
511
- .rs-sidenav-inverse.rs-sidenav-collapse-in,
512
- .rs-sidenav-inverse.rs-sidenav-collapsing {
513
- .rs-dropdown-item:not(.rs-dropdown-item-submenu),
514
- .rs-dropdown-item > .rs-dropdown-menu-toggle,
515
- .rs-dropdown-item > .rs-dropdown-item-toggle {
516
- color: var(--rs-sidenav-inverse-text);
517
-
518
- &:hover,
519
- &:focus,
520
- &.rs-dropdown-item-focus {
521
- background-color: var(--rs-sidenav-inverse-hover-bg);
522
- color: var(--rs-sidenav-inverse-text);
523
- }
524
- }
525
- }
526
-
527
524
  // Subtle Sidenav
528
525
  .rs-sidenav-subtle {
529
526
  background-color: transparent;
@@ -83,9 +83,13 @@
83
83
  }
84
84
  }
85
85
 
86
- .rs-slider-vertical &::before {
87
- left: ((@slider-handle-diameter - @slider-bar-side-length)/2);
88
- margin-top: (-@slider-handle-diameter / 2);
86
+ .rs-slider-vertical & {
87
+ top: unset;
88
+
89
+ &::before {
90
+ left: ((@slider-handle-diameter - @slider-bar-side-length)/2);
91
+ margin-top: (-@slider-handle-diameter / 2);
92
+ }
89
93
  }
90
94
  }
91
95
 
@@ -127,12 +131,12 @@
127
131
  .rs-slider-graduator {
128
132
  width: 100%;
129
133
 
130
- ul,
134
+ ol,
131
135
  li {
132
136
  list-style: none;
133
137
  }
134
138
 
135
- > ul {
139
+ > ol {
136
140
  display: flex;
137
141
  padding-left: 0;
138
142
  width: 100%;
@@ -157,7 +161,8 @@
157
161
 
158
162
  // Vertical styles
159
163
  .rs-slider-vertical & {
160
- top: -4px;
164
+ top: unset;
165
+ bottom: -4px;
161
166
  margin-left: -1px;
162
167
  }
163
168
  }
@@ -168,8 +173,8 @@
168
173
  // Vertical styles
169
174
  .rs-slider-vertical & {
170
175
  left: 0;
171
- top: auto;
172
- bottom: -4px;
176
+ bottom: unset;
177
+ top: -4px;
173
178
  }
174
179
  }
175
180
 
@@ -188,10 +193,10 @@
188
193
  display: block;
189
194
  height: 100%;
190
195
 
191
- > ul {
196
+ > ol {
192
197
  width: @slider-bar-side-length;
193
198
  display: flex;
194
- flex-direction: column;
199
+ flex-direction: column-reverse;
195
200
  height: 100%;
196
201
  padding: 0;
197
202
 
@@ -212,7 +217,7 @@
212
217
 
213
218
  .rs-slider-vertical & {
214
219
  width: @slider-bar-side-length;
215
- border-radius: (@slider-bar-side-length / 2) (@slider-bar-side-length / 2) 0 0;
220
+ border-radius: 0 0 (@slider-bar-side-length / 2) (@slider-bar-side-length / 2);
216
221
  }
217
222
  }
218
223
 
@@ -222,7 +227,8 @@
222
227
 
223
228
  // Reset all setting
224
229
  .rs-slider-mark {
225
- top: -8px;
230
+ top: unset;
231
+ bottom: -8px;
226
232
  left: (@slider-bar-side-length + @slider-mark-margin-top);
227
233
 
228
234
  &-content {
@@ -231,7 +237,7 @@
231
237
  }
232
238
 
233
239
  .rs-slider-mark-last {
234
- top: auto;
235
- bottom: -8px;
240
+ bottom: unset;
241
+ top: -8px;
236
242
  }
237
243
  }
@@ -8,10 +8,23 @@
8
8
 
9
9
  // The switch trail
10
10
  // todo: Consider renaming as .rs-toggle
11
- .rs-btn-toggle {
11
+ .rs-toggle {
12
+ position: relative;
13
+
12
14
  // Default size is middle.
13
- .btn-toggle(md);
15
+ .toggle(md);
16
+ }
17
+
18
+ .rs-toggle-input {
19
+ position: absolute;
20
+ top: 0;
21
+ left: 0;
22
+ right: 0;
23
+ bottom: 0;
24
+ opacity: 0;
25
+ }
14
26
 
27
+ .rs-toggle-presentation {
15
28
  position: relative;
16
29
  display: inline-block;
17
30
  box-sizing: border-box;
@@ -27,6 +40,14 @@
27
40
  box-shadow: inset 0 0 0 1px var(--rs-toggle-thumb);
28
41
  });
29
42
 
43
+ .rs-toggle-input:focus-visible + & {
44
+ .focus-ring();
45
+
46
+ .high-contrast-mode({
47
+ box-shadow: inset 0 0 0 1px var(--rs-toggle-thumb), var(--rs-state-focus-shadow);;
48
+ });
49
+ }
50
+
30
51
  &:hover {
31
52
  background-color: var(--rs-toggle-hover-bg);
32
53
  }
@@ -45,7 +66,7 @@
45
66
  }
46
67
 
47
68
  // disabled state
48
- &&-disabled {
69
+ .rs-toggle-disabled & {
49
70
  background-color: var(--rs-toggle-disabled-bg);
50
71
  color: var(--rs-toggle-disabled-thumb);
51
72
  box-shadow: inset 0 0 0 1px var(--rs-toggle-disabled-thumb);
@@ -53,7 +74,7 @@
53
74
  }
54
75
 
55
76
  // checked state
56
- &&-checked {
77
+ .rs-toggle-checked & {
57
78
  background-color: var(--rs-toggle-checked-bg);
58
79
  color: var(--rs-toggle-checked-thumb);
59
80
  box-shadow: none;
@@ -63,14 +84,20 @@
63
84
  }
64
85
  }
65
86
 
66
- &&-disabled&-checked {
87
+ .rs-toggle-disabled.rs-toggle-checked & {
67
88
  background-color: var(--rs-toggle-checked-disabled-bg);
68
89
  color: var(--rs-toggle-checked-disabled-thumb);
69
90
  }
91
+
92
+ .rs-toggle-loading & {
93
+ &::after {
94
+ display: none;
95
+ }
96
+ }
70
97
  }
71
98
 
72
99
  // Label text inside the switch
73
- .rs-btn-toggle-inner {
100
+ .rs-toggle-inner {
74
101
  display: block;
75
102
  transition: margin @toggle-transition;
76
103
 
@@ -79,17 +106,31 @@
79
106
  });
80
107
  }
81
108
 
109
+ .rs-toggle-loader {
110
+ position: absolute;
111
+ transition: left @toggle-transition, margin-left @toggle-transition, width @toggle-transition;
112
+
113
+ .rs-loader-spin {
114
+ &::before {
115
+ border-color: var(--rs-toggle-loader-ring);
116
+ }
117
+ &::after {
118
+ border-top-color: var(--rs-toggle-loader-rotor);
119
+ }
120
+ }
121
+ }
122
+
82
123
  // small
83
- .rs-btn-toggle-sm {
84
- .btn-toggle(sm);
124
+ .rs-toggle-sm {
125
+ .toggle(sm);
85
126
  }
86
127
 
87
128
  // middle
88
- .rs-btn-toggle-md {
89
- .btn-toggle(md);
129
+ .rs-toggle-md {
130
+ .toggle(md);
90
131
  }
91
132
 
92
133
  // large
93
- .rs-btn-toggle-lg {
94
- .btn-toggle(lg);
134
+ .rs-toggle-lg {
135
+ .toggle(lg);
95
136
  }
@@ -1,11 +1,20 @@
1
1
  .toggle-size-variant(@toogle-height,@min-width,@toggle-handle-gap,@toggle-inner-margin,@toggle-inner-font-size) {
2
2
  @handle-diameter: (@toogle-height - @toggle-handle-gap*2);
3
3
 
4
- height: @toogle-height;
5
- min-width: @min-width;
6
- border-radius: (@toogle-height / 2);
4
+ .rs-toggle-loader {
5
+ width: @handle-diameter;
6
+ height: @handle-diameter;
7
+ left: @toggle-handle-gap;
8
+ top: @toggle-handle-gap;
9
+ }
7
10
 
8
- &::after {
11
+ .rs-toggle-presentation {
12
+ height: @toogle-height;
13
+ min-width: @min-width;
14
+ border-radius: (@toogle-height / 2);
15
+ }
16
+
17
+ .rs-toggle-presentation::after {
9
18
  width: @handle-diameter;
10
19
  height: @handle-diameter;
11
20
  left: @toggle-handle-gap;
@@ -13,11 +22,11 @@
13
22
  border-radius: (@handle-diameter / 2);
14
23
  }
15
24
 
16
- &:active::after {
25
+ .rs-toggle-presentation:active::after {
17
26
  width: (@handle-diameter * @toggle-active-scale);
18
27
  }
19
28
 
20
- .rs-btn-toggle-inner {
29
+ .rs-toggle-inner {
21
30
  margin-left: @toogle-height;
22
31
  margin-right: @toggle-inner-margin;
23
32
  height: @toogle-height;
@@ -29,7 +38,7 @@
29
38
  }
30
39
  }
31
40
 
32
- &.rs-btn-toggle-checked {
41
+ &.rs-toggle-checked .rs-toggle-presentation {
33
42
  &::after {
34
43
  left: 100%;
35
44
  margin-left: -(@handle-diameter + @toggle-handle-gap);
@@ -39,15 +48,20 @@
39
48
  margin-left: -(@handle-diameter * @toggle-active-scale + @toggle-handle-gap);
40
49
  }
41
50
 
42
- .rs-btn-toggle-inner {
51
+ .rs-toggle-inner {
43
52
  margin-right: @toogle-height;
44
53
  margin-left: @toggle-inner-margin;
45
54
  }
46
55
  }
56
+
57
+ &.rs-toggle-checked .rs-toggle-loader {
58
+ left: 100%;
59
+ margin-left: -(@handle-diameter + @toggle-handle-gap);
60
+ }
47
61
  }
48
62
 
49
63
  // Small
50
- .btn-toggle(sm) {
64
+ .toggle(sm) {
51
65
  .toggle-size-variant(
52
66
  @toggle-sm-height,
53
67
  @toggle-sm-min-width,
@@ -58,7 +72,7 @@
58
72
  }
59
73
 
60
74
  // Middle
61
- .btn-toggle(md) {
75
+ .toggle(md) {
62
76
  .toggle-size-variant(
63
77
  @toggle-md-height,
64
78
  @toggle-md-min-width,
@@ -69,7 +83,7 @@
69
83
  }
70
84
 
71
85
  // Large
72
- .btn-toggle(lg) {
86
+ .toggle(lg) {
73
87
  .toggle-size-variant(
74
88
  @toggle-lg-height,
75
89
  @toggle-lg-min-width,
@@ -14,7 +14,6 @@
14
14
  }
15
15
 
16
16
  &-disabled {
17
- opacity: 0.3;
18
17
  //cursor: not-allowed;
19
18
 
20
19
  .rs-uploader-trigger-btn {
@@ -213,6 +212,11 @@
213
212
  > img {
214
213
  .img-cover();
215
214
  }
215
+
216
+ .rs-uploader-file-item-icon {
217
+ font-size: @uploader-file-item-icon-font-size;
218
+ margin: @uploader-file-item-icon-margin-plus;
219
+ }
216
220
  }
217
221
 
218
222
  &-status {
@@ -351,6 +355,11 @@
351
355
  > img {
352
356
  .img-cover();
353
357
  }
358
+
359
+ .rs-uploader-file-item-icon {
360
+ font-size: @uploader-file-item-icon-font-size;
361
+ margin: @uploader-file-item-icon-margin;
362
+ }
354
363
  }
355
364
 
356
365
  &-content {
@@ -80,12 +80,18 @@ export interface PickerBaseProps<LocaleType = any> extends WithAsProps, Animatio
80
80
  /** Custom render extra footer */
81
81
  renderExtraFooter?: () => React.ReactNode;
82
82
  }
83
- export interface FormControlBaseProps<ValueType = any> {
83
+ export interface FormControlBaseProps<ValueType = React.InputHTMLAttributes<HTMLInputElement>['value']> {
84
+ /** Name of the form field */
85
+ name?: string;
84
86
  /** Initial value */
85
87
  defaultValue?: ValueType;
86
88
  /** Current value of the component. Creates a controlled component */
87
89
  value?: ValueType;
88
- /** Called after the value has been changed */
90
+ /**
91
+ * Called after the value has been changed
92
+ * todo Override event as React.ChangeEvent in components where onChange is delegated
93
+ * to an underlying <input> element
94
+ */
89
95
  onChange?: (value: ValueType, event: React.SyntheticEvent) => void;
90
96
  /** Set the component to be disabled and cannot be entered */
91
97
  disabled?: boolean;
@@ -15,7 +15,7 @@ var _react = _interopRequireWildcard(require("react"));
15
15
 
16
16
  var _propTypes = _interopRequireDefault(require("prop-types"));
17
17
 
18
- var _domLib = require("dom-lib");
18
+ var _getOffset = _interopRequireDefault(require("dom-lib/getOffset"));
19
19
 
20
20
  var _utils = require("../utils");
21
21
 
@@ -28,7 +28,7 @@ function useOffset(mountRef) {
28
28
  setOffset = _useState[1];
29
29
 
30
30
  var updateOffset = (0, _react.useCallback)(function () {
31
- setOffset((0, _domLib.getOffset)(mountRef.current));
31
+ setOffset((0, _getOffset.default)(mountRef.current));
32
32
  }, [mountRef]); // Update after the element size changes
33
33
 
34
34
  (0, _utils.useElementResize)(function () {
@@ -51,7 +51,7 @@ function useContainerOffset(container) {
51
51
 
52
52
  (0, _react.useEffect)(function () {
53
53
  var node = typeof container === 'function' ? container() : container;
54
- setOffset(node ? (0, _domLib.getOffset)(node) : null);
54
+ setOffset(node ? (0, _getOffset.default)(node) : null);
55
55
  }, [container]);
56
56
  return offset;
57
57
  }
@@ -15,7 +15,9 @@ var _react = _interopRequireWildcard(require("react"));
15
15
 
16
16
  var _propTypes = _interopRequireDefault(require("prop-types"));
17
17
 
18
- var _domLib = require("dom-lib");
18
+ var _getStyle = _interopRequireDefault(require("dom-lib/getStyle"));
19
+
20
+ var _addStyle = _interopRequireDefault(require("dom-lib/addStyle"));
19
21
 
20
22
  var _get = _interopRequireDefault(require("lodash/get"));
21
23
 
@@ -45,7 +47,7 @@ var MARGINS = {
45
47
  function defaultGetDimensionValue(dimension, elem) {
46
48
  var value = (0, _get.default)(elem, "offset" + (0, _capitalize.default)(dimension));
47
49
  var margins = MARGINS[dimension];
48
- return value + parseInt((0, _domLib.getStyle)(elem, margins[0]), 10) + parseInt((0, _domLib.getStyle)(elem, margins[1]), 10);
50
+ return value + parseInt((0, _getStyle.default)(elem, margins[0]), 10) + parseInt((0, _getStyle.default)(elem, margins[1]), 10);
49
51
  }
50
52
 
51
53
  function getScrollDimensionValue(elem, dimension) {
@@ -78,21 +80,21 @@ var Collapse = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
78
80
 
79
81
  var dimension = typeof dimensionProp === 'function' ? dimensionProp() : dimensionProp;
80
82
  var handleEnter = (0, _react.useCallback)(function (elem) {
81
- (0, _domLib.addStyle)(elem, dimension, 0);
83
+ (0, _addStyle.default)(elem, dimension, 0);
82
84
  }, [dimension]);
83
85
  var handleEntering = (0, _react.useCallback)(function (elem) {
84
- (0, _domLib.addStyle)(elem, dimension, getScrollDimensionValue(elem, dimension));
86
+ (0, _addStyle.default)(elem, dimension, getScrollDimensionValue(elem, dimension));
85
87
  }, [dimension]);
86
88
  var handleEntered = (0, _react.useCallback)(function (elem) {
87
- (0, _domLib.addStyle)(elem, dimension, 'auto');
89
+ (0, _addStyle.default)(elem, dimension, 'auto');
88
90
  }, [dimension]);
89
91
  var handleExit = (0, _react.useCallback)(function (elem) {
90
92
  var value = getDimensionValue ? getDimensionValue(dimension, elem) : 0;
91
- (0, _domLib.addStyle)(elem, dimension, value + "px");
93
+ (0, _addStyle.default)(elem, dimension, value + "px");
92
94
  }, [dimension, getDimensionValue]);
93
95
  var handleExiting = (0, _react.useCallback)(function (elem) {
94
96
  triggerBrowserReflow(elem);
95
- (0, _domLib.addStyle)(elem, dimension, 0);
97
+ (0, _addStyle.default)(elem, dimension, 0);
96
98
  }, [dimension]);
97
99
  return /*#__PURE__*/_react.default.createElement(_Transition.default, (0, _extends2.default)({}, rest, {
98
100
  ref: ref,
@@ -15,7 +15,9 @@ var _react = _interopRequireDefault(require("react"));
15
15
 
16
16
  var _propTypes = _interopRequireDefault(require("prop-types"));
17
17
 
18
- var _domLib = require("dom-lib");
18
+ var _getTransitionEnd = _interopRequireDefault(require("dom-lib/getTransitionEnd"));
19
+
20
+ var _on = _interopRequireDefault(require("dom-lib/on"));
19
21
 
20
22
  var _classnames = _interopRequireDefault(require("classnames"));
21
23
 
@@ -156,7 +158,7 @@ var Transition = /*#__PURE__*/function (_React$Component) {
156
158
  var _this$props = this.props,
157
159
  timeout = _this$props.timeout,
158
160
  animation = _this$props.animation;
159
- this.animationEventListener = (0, _domLib.on)(node, animation ? (0, _utils2.getAnimationEnd)() : (0, _domLib.transition)().end, this.nextCallback);
161
+ this.animationEventListener = (0, _on.default)(node, animation ? (0, _utils2.getAnimationEnd)() : (0, _getTransitionEnd.default)(), this.nextCallback);
160
162
 
161
163
  if (timeout !== null) {
162
164
  setTimeout(this.nextCallback, timeout);
@@ -18,9 +18,9 @@ export interface AutoCompleteProps<T = ValueType> extends WithAsProps, FormContr
18
18
  /** Called when a option is selected */
19
19
  onSelect?: (value: any, item: ItemDataType, event: React.SyntheticEvent) => void;
20
20
  /** Called on focus */
21
- onFocus?: (event: React.SyntheticEvent<HTMLElement>) => void;
21
+ onFocus?: React.FocusEventHandler;
22
22
  /** Called on blur */
23
- onBlur?: (event: React.SyntheticEvent<HTMLElement>) => void;
23
+ onBlur?: React.FocusEventHandler;
24
24
  /** Called on menu focus */
25
25
  onMenuFocus?: (focusItemValue: any, event: React.KeyboardEvent) => void;
26
26
  /** The callback triggered by keyboard events. */
@@ -74,7 +74,8 @@ var AutoComplete = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
74
74
 
75
75
  var items = (datalist === null || datalist === void 0 ? void 0 : datalist.filter((0, _utils3.shouldDisplay)(filterBy, value))) || [];
76
76
  var hasItems = items.length > 0;
77
- var overlayRef = (0, _react.useRef)(null); // Used to hover the focuse item when trigger `onKeydown`
77
+ var overlayRef = (0, _react.useRef)(null);
78
+ var isMounted = (0, _utils.useIsMounted)(); // Used to hover the focuse item when trigger `onKeydown`
78
79
 
79
80
  var _useFocusItemValue = (0, _Picker.useFocusItemValue)(value, {
80
81
  data: datalist,
@@ -134,9 +135,11 @@ var AutoComplete = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
134
135
  };
135
136
 
136
137
  var handleClose = (0, _react.useCallback)(function () {
137
- setFocus(false);
138
- onClose === null || onClose === void 0 ? void 0 : onClose();
139
- }, [onClose]);
138
+ if (isMounted()) {
139
+ setFocus(false);
140
+ onClose === null || onClose === void 0 ? void 0 : onClose();
141
+ }
142
+ }, [isMounted, onClose]);
140
143
  var handleOpen = (0, _react.useCallback)(function () {
141
144
  setFocus(true);
142
145
  onOpen === null || onOpen === void 0 ? void 0 : onOpen();