rsuite 5.0.3 → 5.2.2

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 (243) hide show
  1. package/Button/styles/index.less +7 -1
  2. package/CHANGELOG.md +50 -0
  3. package/MaskedInput/package.json +7 -0
  4. package/PanelGroup/styles/index.less +12 -12
  5. package/README.md +4 -46
  6. package/Sidenav/styles/index.less +4 -0
  7. package/Slider/styles/index.less +20 -14
  8. package/Toggle/styles/index.less +53 -12
  9. package/Toggle/styles/mixin.less +25 -11
  10. package/cjs/@types/common.d.ts +8 -2
  11. package/cjs/Affix/Affix.js +3 -3
  12. package/cjs/Animation/Collapse.js +9 -7
  13. package/cjs/Animation/Transition.js +4 -2
  14. package/cjs/AutoComplete/AutoComplete.d.ts +2 -2
  15. package/cjs/AutoComplete/AutoComplete.js +7 -4
  16. package/cjs/Calendar/TimeDropdown.js +5 -3
  17. package/cjs/Cascader/Cascader.d.ts +1 -1
  18. package/cjs/Cascader/DropdownMenu.js +6 -5
  19. package/cjs/CheckTreePicker/CheckTreeNode.d.ts +1 -1
  20. package/cjs/CheckTreePicker/CheckTreePicker.d.ts +1 -1
  21. package/cjs/CheckTreePicker/utils.d.ts +1 -1
  22. package/cjs/CheckTreePicker/utils.js +7 -6
  23. package/cjs/Checkbox/Checkbox.d.ts +3 -3
  24. package/cjs/CheckboxGroup/CheckboxGroupContext.d.ts +1 -1
  25. package/cjs/DOMHelper/index.d.ts +13 -28
  26. package/cjs/DOMHelper/index.js +4 -3
  27. package/cjs/DOMHelper/isElement.d.ts +2 -0
  28. package/cjs/DOMHelper/isElement.js +11 -0
  29. package/cjs/DatePicker/DatePicker.d.ts +3 -3
  30. package/cjs/DatePicker/DatePicker.js +3 -2
  31. package/cjs/DateRangePicker/Calendar.d.ts +1 -1
  32. package/cjs/DateRangePicker/DateRangePicker.d.ts +2 -2
  33. package/cjs/DateRangePicker/DateRangePicker.js +3 -2
  34. package/cjs/Disclosure/Disclosure.d.ts +1 -1
  35. package/cjs/Disclosure/DisclosureContext.d.ts +1 -1
  36. package/cjs/Dropdown/DropdownItem.d.ts +1 -1
  37. package/cjs/Dropdown/DropdownItem.js +23 -19
  38. package/cjs/Dropdown/DropdownMenu.d.ts +2 -2
  39. package/cjs/Dropdown/useRenderDropdownItem.d.ts +2 -0
  40. package/cjs/Dropdown/useRenderDropdownItem.js +26 -0
  41. package/cjs/Form/Form.d.ts +1 -1
  42. package/cjs/FormControl/FormControl.d.ts +9 -3
  43. package/cjs/Input/Input.d.ts +2 -1
  44. package/cjs/InputNumber/InputNumber.js +2 -2
  45. package/cjs/InputPicker/InputPicker.js +2 -2
  46. package/cjs/List/helper/useSortHelper.js +11 -6
  47. package/cjs/MaskedInput/MaskedInput.d.ts +6 -0
  48. package/cjs/MaskedInput/MaskedInput.js +26 -0
  49. package/cjs/MaskedInput/TextMask.d.ts +43 -0
  50. package/cjs/MaskedInput/TextMask.js +80 -0
  51. package/cjs/MaskedInput/adjustCaretPosition.d.ts +11 -0
  52. package/cjs/MaskedInput/adjustCaretPosition.js +218 -0
  53. package/cjs/MaskedInput/conformToMask.d.ts +8 -0
  54. package/cjs/MaskedInput/conformToMask.js +247 -0
  55. package/cjs/MaskedInput/createTextMaskInputElement.d.ts +7 -0
  56. package/cjs/MaskedInput/createTextMaskInputElement.js +226 -0
  57. package/cjs/MaskedInput/index.d.ts +3 -0
  58. package/cjs/MaskedInput/index.js +11 -0
  59. package/cjs/MaskedInput/types.d.ts +10 -0
  60. package/cjs/{@types/icons.js → MaskedInput/types.js} +0 -0
  61. package/cjs/MaskedInput/utilities.d.ts +7 -0
  62. package/cjs/MaskedInput/utilities.js +47 -0
  63. package/cjs/Menu/MenuItem.d.ts +1 -1
  64. package/cjs/Menu/Menubar.d.ts +1 -1
  65. package/cjs/Message/Message.js +13 -11
  66. package/cjs/Modal/Modal.js +5 -3
  67. package/cjs/Modal/utils.js +15 -14
  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 +27 -17
  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 +12 -6
  80. package/cjs/Picker/SearchBar.d.ts +1 -1
  81. package/cjs/Picker/utils.d.ts +2 -2
  82. package/cjs/Radio/Radio.d.ts +1 -1
  83. package/cjs/RadioGroup/RadioGroup.d.ts +1 -1
  84. package/cjs/RangeSlider/RangeSlider.js +9 -5
  85. package/cjs/Rate/Character.js +2 -2
  86. package/cjs/Ripple/Ripple.js +6 -7
  87. package/cjs/Sidenav/SidenavDropdownItem.d.ts +1 -1
  88. package/cjs/Sidenav/SidenavDropdownItem.js +17 -10
  89. package/cjs/Sidenav/SidenavDropdownMenu.d.ts +1 -1
  90. package/cjs/Slider/Graduated.js +1 -1
  91. package/cjs/Slider/Handle.js +10 -5
  92. package/cjs/Slider/ProgressBar.js +1 -1
  93. package/cjs/Slider/Slider.js +9 -5
  94. package/cjs/Toggle/Toggle.d.ts +5 -6
  95. package/cjs/Toggle/Toggle.js +42 -19
  96. package/cjs/Tree/Tree.d.ts +3 -3
  97. package/cjs/TreePicker/TreeNode.d.ts +1 -1
  98. package/cjs/TreePicker/TreeNode.js +2 -2
  99. package/cjs/TreePicker/TreePicker.d.ts +1 -1
  100. package/cjs/Uploader/Uploader.d.ts +4 -4
  101. package/cjs/index.d.ts +2 -0
  102. package/cjs/index.js +5 -1
  103. package/cjs/locales/fa_IR.d.ts +105 -0
  104. package/cjs/locales/fa_IR.js +84 -0
  105. package/cjs/locales/index.d.ts +1 -0
  106. package/cjs/locales/index.js +6 -2
  107. package/cjs/utils/BrowserDetection.js +1 -1
  108. package/cjs/utils/index.d.ts +1 -0
  109. package/cjs/utils/index.js +7 -2
  110. package/cjs/utils/scrollTopAnimation.js +5 -5
  111. package/cjs/utils/treeUtils.d.ts +2 -2
  112. package/cjs/utils/useElementResize.d.ts +1 -1
  113. package/cjs/utils/useElementResize.js +7 -5
  114. package/cjs/utils/useEventListener.js +4 -2
  115. package/cjs/utils/useIsMounted.d.ts +2 -0
  116. package/cjs/utils/useIsMounted.js +22 -0
  117. package/cjs/utils/usePortal.js +2 -2
  118. package/cjs/utils/useRootClose.js +10 -10
  119. package/dist/rsuite-rtl.css +217 -84
  120. package/dist/rsuite-rtl.min.css +1 -1
  121. package/dist/rsuite-rtl.min.css.map +1 -1
  122. package/dist/rsuite.css +217 -84
  123. package/dist/rsuite.js +769 -536
  124. package/dist/rsuite.js.map +1 -1
  125. package/dist/rsuite.min.css +1 -1
  126. package/dist/rsuite.min.css.map +1 -1
  127. package/dist/rsuite.min.js +1 -1
  128. package/dist/rsuite.min.js.map +1 -1
  129. package/esm/@types/common.d.ts +8 -2
  130. package/esm/Affix/Affix.js +1 -1
  131. package/esm/Animation/Collapse.js +2 -1
  132. package/esm/Animation/Transition.js +3 -2
  133. package/esm/AutoComplete/AutoComplete.d.ts +2 -2
  134. package/esm/AutoComplete/AutoComplete.js +8 -5
  135. package/esm/Calendar/TimeDropdown.js +2 -1
  136. package/esm/Cascader/Cascader.d.ts +1 -1
  137. package/esm/Cascader/DropdownMenu.js +4 -3
  138. package/esm/CheckTreePicker/CheckTreeNode.d.ts +1 -1
  139. package/esm/CheckTreePicker/CheckTreePicker.d.ts +1 -1
  140. package/esm/CheckTreePicker/utils.d.ts +1 -1
  141. package/esm/CheckTreePicker/utils.js +7 -6
  142. package/esm/Checkbox/Checkbox.d.ts +3 -3
  143. package/esm/CheckboxGroup/CheckboxGroupContext.d.ts +1 -1
  144. package/esm/DOMHelper/index.d.ts +13 -28
  145. package/esm/DOMHelper/index.js +2 -3
  146. package/esm/DOMHelper/isElement.d.ts +2 -0
  147. package/esm/DOMHelper/isElement.js +5 -0
  148. package/esm/DatePicker/DatePicker.d.ts +3 -3
  149. package/esm/DatePicker/DatePicker.js +3 -2
  150. package/esm/DateRangePicker/Calendar.d.ts +1 -1
  151. package/esm/DateRangePicker/DateRangePicker.d.ts +2 -2
  152. package/esm/DateRangePicker/DateRangePicker.js +3 -2
  153. package/esm/Disclosure/Disclosure.d.ts +1 -1
  154. package/esm/Disclosure/DisclosureContext.d.ts +1 -1
  155. package/esm/Dropdown/DropdownItem.d.ts +1 -1
  156. package/esm/Dropdown/DropdownItem.js +22 -19
  157. package/esm/Dropdown/DropdownMenu.d.ts +2 -2
  158. package/esm/Dropdown/useRenderDropdownItem.d.ts +2 -0
  159. package/esm/Dropdown/useRenderDropdownItem.js +18 -0
  160. package/esm/Form/Form.d.ts +1 -1
  161. package/esm/FormControl/FormControl.d.ts +9 -3
  162. package/esm/Input/Input.d.ts +2 -1
  163. package/esm/InputNumber/InputNumber.js +2 -2
  164. package/esm/InputPicker/InputPicker.js +1 -1
  165. package/esm/List/helper/useSortHelper.js +8 -4
  166. package/esm/MaskedInput/MaskedInput.d.ts +6 -0
  167. package/esm/MaskedInput/MaskedInput.js +13 -0
  168. package/esm/MaskedInput/TextMask.d.ts +43 -0
  169. package/esm/MaskedInput/TextMask.js +67 -0
  170. package/esm/MaskedInput/adjustCaretPosition.d.ts +11 -0
  171. package/esm/MaskedInput/adjustCaretPosition.js +213 -0
  172. package/esm/MaskedInput/conformToMask.d.ts +8 -0
  173. package/esm/MaskedInput/conformToMask.js +239 -0
  174. package/esm/MaskedInput/createTextMaskInputElement.d.ts +7 -0
  175. package/esm/MaskedInput/createTextMaskInputElement.js +212 -0
  176. package/esm/MaskedInput/index.d.ts +3 -0
  177. package/esm/MaskedInput/index.js +2 -0
  178. package/esm/MaskedInput/types.d.ts +10 -0
  179. package/esm/{@types/icons.js → MaskedInput/types.js} +0 -0
  180. package/esm/MaskedInput/utilities.d.ts +7 -0
  181. package/esm/MaskedInput/utilities.js +38 -0
  182. package/esm/Menu/MenuItem.d.ts +1 -1
  183. package/esm/Menu/Menubar.d.ts +1 -1
  184. package/esm/Message/Message.js +15 -13
  185. package/esm/Modal/Modal.js +3 -2
  186. package/esm/Modal/utils.js +14 -12
  187. package/esm/Notification/Notification.js +7 -4
  188. package/esm/Overlay/Modal.js +11 -8
  189. package/esm/Overlay/ModalManager.js +6 -1
  190. package/esm/Overlay/OverlayTrigger.js +1 -1
  191. package/esm/Overlay/Position.js +20 -11
  192. package/esm/Overlay/positionUtils.js +6 -2
  193. package/esm/Panel/Panel.d.ts +1 -1
  194. package/esm/Picker/DropdownMenu.js +3 -1
  195. package/esm/Picker/DropdownMenuCheckItem.d.ts +3 -3
  196. package/esm/Picker/PickerOverlay.js +2 -1
  197. package/esm/Picker/PickerToggle.d.ts +6 -0
  198. package/esm/Picker/PickerToggle.js +10 -5
  199. package/esm/Picker/SearchBar.d.ts +1 -1
  200. package/esm/Picker/utils.d.ts +2 -2
  201. package/esm/Radio/Radio.d.ts +1 -1
  202. package/esm/RadioGroup/RadioGroup.d.ts +1 -1
  203. package/esm/RangeSlider/RangeSlider.js +4 -2
  204. package/esm/Rate/Character.js +2 -2
  205. package/esm/Ripple/Ripple.js +4 -3
  206. package/esm/Sidenav/SidenavDropdownItem.d.ts +1 -1
  207. package/esm/Sidenav/SidenavDropdownItem.js +16 -10
  208. package/esm/Sidenav/SidenavDropdownMenu.d.ts +1 -1
  209. package/esm/Slider/Graduated.js +1 -1
  210. package/esm/Slider/Handle.js +5 -2
  211. package/esm/Slider/ProgressBar.js +1 -1
  212. package/esm/Slider/Slider.js +4 -2
  213. package/esm/Toggle/Toggle.d.ts +5 -6
  214. package/esm/Toggle/Toggle.js +43 -21
  215. package/esm/Tree/Tree.d.ts +3 -3
  216. package/esm/TreePicker/TreeNode.d.ts +1 -1
  217. package/esm/TreePicker/TreeNode.js +1 -1
  218. package/esm/TreePicker/TreePicker.d.ts +1 -1
  219. package/esm/Uploader/Uploader.d.ts +4 -4
  220. package/esm/index.d.ts +2 -0
  221. package/esm/index.js +1 -0
  222. package/esm/locales/fa_IR.d.ts +105 -0
  223. package/esm/locales/fa_IR.js +74 -0
  224. package/esm/locales/index.d.ts +1 -0
  225. package/esm/locales/index.js +2 -1
  226. package/esm/utils/BrowserDetection.js +1 -1
  227. package/esm/utils/index.d.ts +1 -0
  228. package/esm/utils/index.js +2 -1
  229. package/esm/utils/scrollTopAnimation.js +2 -2
  230. package/esm/utils/treeUtils.d.ts +2 -2
  231. package/esm/utils/useElementResize.d.ts +1 -1
  232. package/esm/utils/useElementResize.js +8 -4
  233. package/esm/utils/useEventListener.js +1 -1
  234. package/esm/utils/useIsMounted.d.ts +2 -0
  235. package/esm/utils/useIsMounted.js +16 -0
  236. package/esm/utils/usePortal.js +2 -2
  237. package/esm/utils/useRootClose.js +8 -6
  238. package/locales/fa_IR/package.json +7 -0
  239. package/package.json +5 -6
  240. package/styles/color-modes/light.less +2 -0
  241. package/styles/plugins/palette.js +10 -1
  242. package/cjs/@types/icons.d.ts +0 -1
  243. 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;
@@ -180,6 +180,9 @@ each(@spectrum, .(@color) {
180
180
  --rs-btn-link-text: @C700;
181
181
  --rs-btn-link-hover-text: @C800;
182
182
  --rs-btn-link-active-text: @C900;
183
+ --rs-iconbtn-primary-addon: @C600;
184
+ --rs-iconbtn-primary-activated-addon: @C700;
185
+ --rs-iconbtn-primary-pressed-addon: @C800;
183
186
 
184
187
  .dark-mode({
185
188
  --rs-btn-primary-bg: @C700;
@@ -198,6 +201,9 @@ each(@spectrum, .(@color) {
198
201
  --rs-btn-link-text: @C500;
199
202
  --rs-btn-link-hover-text: @C400;
200
203
  --rs-btn-link-active-text: @C200;
204
+ --rs-iconbtn-primary-addon: @C600;
205
+ --rs-iconbtn-primary-activated-addon: @C500;
206
+ --rs-iconbtn-primary-pressed-addon: @C400;
201
207
  });
202
208
 
203
209
  .high-contrast-mode({
package/CHANGELOG.md CHANGED
@@ -1,3 +1,53 @@
1
+ ## [5.2.2](https://github.com/rsuite/rsuite/compare/v5.2.1...v5.2.2) (2021-11-19)
2
+
3
+ ### Bug Fixes
4
+
5
+ - **Dropdown:** dropdown item panel not rendering content ([#2128](https://github.com/rsuite/rsuite/issues/2128)) ([6631500](https://github.com/rsuite/rsuite/commit/6631500c74b0305026931a6379980fda9b587c6e))
6
+ - **IconButton:** primary icon button with text wrong bg ([#2141](https://github.com/rsuite/rsuite/issues/2141)) ([fde0cd4](https://github.com/rsuite/rsuite/commit/fde0cd4bce84c8f5d054d1722e9dfa61de49a7fa))
7
+ - **PanelGroup:** missing border for nested panels ([#2142](https://github.com/rsuite/rsuite/issues/2142)) ([225821f](https://github.com/rsuite/rsuite/commit/225821f2cdeba8637d70f4626f02ae1acd93eb24))
8
+
9
+ ### Performance Improvements
10
+
11
+ - **resize:** improve the rerender performance of components after resize ([#2135](https://github.com/rsuite/rsuite/issues/2135)) ([71648ab](https://github.com/rsuite/rsuite/commit/71648ab061f7b4057675de2d0a6e08f2f8a70a61))
12
+
13
+ ## [5.2.1](https://github.com/rsuite/rsuite/compare/v5.2.0...v5.2.1) (2021-11-12)
14
+
15
+ ### Bug Fixes
16
+
17
+ - **CheckTree:** root node indeterminate state error ([#2124](https://github.com/rsuite/rsuite/issues/2124)) ([9dac0bc](https://github.com/rsuite/rsuite/commit/9dac0bc0e51b58b46aa85dac8a0348a9d73b2503))
18
+ - **Sidenav:** remove underline on hovered SidenavItem ([#2118](https://github.com/rsuite/rsuite/issues/2118)) ([56f7c3a](https://github.com/rsuite/rsuite/commit/56f7c3ad0f7ab31c7d5aef2fe2cde1661024f034))
19
+ - **Sidenav:** sidenav dropdown item accept as prop ([#2120](https://github.com/rsuite/rsuite/issues/2120)) ([5386999](https://github.com/rsuite/rsuite/commit/538699962dfd46faf41bb377833b0dcd06112039))
20
+
21
+ # [5.2.0](https://github.com/rsuite/rsuite/compare/v5.1.0...v5.2.0) (2021-11-05)
22
+
23
+ ### Bug Fixes
24
+
25
+ - **Button:** Add button radius variable ([#2106](https://github.com/rsuite/rsuite/issues/2106)) ([63a61c4](https://github.com/rsuite/rsuite/commit/63a61c4eede3b22c91eef126b72fc1afb280a18e))
26
+ - **less:** palette function accepts rgb color ([#2107](https://github.com/rsuite/rsuite/issues/2107)) ([92c2dc5](https://github.com/rsuite/rsuite/commit/92c2dc5cf9273a26de189cee6e79b57740e17b49))
27
+ - 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))
28
+ - **dts:** remove redundant generics on SyntheticEvent ([#2099](https://github.com/rsuite/rsuite/issues/2099)) ([30ccd68](https://github.com/rsuite/rsuite/commit/30ccd685fb09092fb1fa693929cdba5d26967f96))
29
+ - **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))
30
+ - **FormControl:** infer additional props from accepter ([#2084](https://github.com/rsuite/rsuite/issues/2084)) ([5d39fed](https://github.com/rsuite/rsuite/commit/5d39fed6e56418e85367df9dd5aeb7b49774380b))
31
+ - **Input:** correct value argument type for onChange callback ([#2087](https://github.com/rsuite/rsuite/issues/2087)) ([7a4ff02](https://github.com/rsuite/rsuite/commit/7a4ff02e1e01b40f2e2bffea105181500848d2c9))
32
+ - **Slider,RangeSlider:** reverse marks order in vertical orientation ([#2080](https://github.com/rsuite/rsuite/issues/2080)) ([07fdd09](https://github.com/rsuite/rsuite/commit/07fdd09bb504ea7e876e6e6b4da439a725f716a9))
33
+
34
+ # [5.1.0](https://github.com/rsuite/rsuite/compare/v5.0.3...v5.1.0) (2021-10-29)
35
+
36
+ ### Bug Fixes
37
+
38
+ - **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))
39
+ - **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))
40
+ - **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)
41
+ - **Dropdown.Item:** render custom element inside li ([#2044](https://github.com/rsuite/rsuite/issues/2044)) ([a2e8a00](https://github.com/rsuite/rsuite/commit/a2e8a00c94f77028ed489a65f970264eeb9551ea))
42
+ - **Overlay:** fix position offset inside container ([#2049](https://github.com/rsuite/rsuite/issues/2049)) ([c27b19e](https://github.com/rsuite/rsuite/commit/c27b19e9c9ec0191ccf5d36d9efe6b176b0b6d84))
43
+ - **Toggle:** improve a11y (keyboard focusable + keyboard events) ([#2032](https://github.com/rsuite/rsuite/issues/2032)) ([9fdfd52](https://github.com/rsuite/rsuite/commit/9fdfd52e1eab3ad3e93569112e33ad3490335fbd))
44
+
45
+ ### Features
46
+
47
+ - **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))
48
+ - **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))
49
+ - **Toggle:** add loading prop ([#2031](https://github.com/rsuite/rsuite/issues/2031)) ([28778de](https://github.com/rsuite/rsuite/commit/28778de0af0495a1bb68479bf3c679413255ce7b))
50
+
1
51
  ## [5.0.3](https://github.com/rsuite/rsuite/compare/v5.0.2...v5.0.3) (2021-10-22)
2
52
 
3
53
  ### Bug Fixes
@@ -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
+ }
@@ -14,21 +14,21 @@
14
14
  }
15
15
 
16
16
  // Panel in Panel group haven't border.
17
- .rs-panel {
17
+ > .rs-panel {
18
18
  border: none;
19
- }
20
19
 
21
- // Draw a split line for panel
22
- .rs-panel + .rs-panel {
23
- position: relative;
20
+ // Draw a split line for panel
21
+ & + .rs-panel {
22
+ position: relative;
24
23
 
25
- &::before {
26
- content: '';
27
- position: absolute;
28
- top: 0;
29
- border-top: 1px solid var(--rs-border-primary);
30
- left: 20px;
31
- right: 20px;
24
+ &::before {
25
+ content: '';
26
+ position: absolute;
27
+ top: 0;
28
+ border-top: 1px solid var(--rs-border-primary);
29
+ left: 20px;
30
+ right: 20px;
31
+ }
32
32
  }
33
33
  }
34
34
  }
package/README.md CHANGED
@@ -78,7 +78,8 @@ You can go through [full documentation][rsuite-doc-guide] or start with followin
78
78
  - [Right-to-left][rsuite-doc-guide-rtl]
79
79
  - [Components][rsuite-components-overview]
80
80
 
81
- ### Examples
81
+ <details>
82
+ <summary>More examples</summary>
82
83
 
83
84
  - [Management system][demo-admin]
84
85
  - [Use modularized][demo-modular-import]
@@ -96,6 +97,7 @@ You can go through [full documentation][rsuite-doc-guide] or start with followin
96
97
  - [Use in UmiJS][demo-umi-app]
97
98
  - [Use in Snowpack][demo-snowpack]
98
99
  - [Use in Vite][demo-vite]
100
+ </details>
99
101
 
100
102
  ## Previous major versions
101
103
 
@@ -113,53 +115,10 @@ and security fixes are supported until 6.x is in progress.
113
115
 
114
116
  Detailed changes for each release are documented in the [release notes][release-notes].
115
117
 
116
- ## Development
117
-
118
- ### Test-Driven Development(TDD)
119
-
120
- 1. Fork `https://github.com/rsuite/rsuite` this repo.
121
-
122
- ```bash
123
- $ git clone git@github.com:<YOUR NAME>/rsuite.git
124
- $ cd rsuite
125
- ```
126
-
127
- 2. Install it and run
128
-
129
- ```bash
130
- $ npm i
131
- $ npm run tdd
132
- ```
133
-
134
- 3. Run a single component test case.
135
-
136
- ```bash
137
- $ M=Button npm run tdd
138
- ```
139
-
140
- ### UI-Driven Development
141
-
142
- 1. Fork `https://github.com/rsuite/rsuite` this repo.
143
-
144
- ```bash
145
- $ git clone git@github.com:<YOUR NAME>/rsuite.git
146
- ```
147
-
148
- 2. Install it and run
149
-
150
- ```bash
151
- $ npm i
152
- $ npm run dev
153
- ```
154
-
155
- 3. Your show time. Open url http://127.0.0.1:3000/ in browser.
156
-
157
118
  ## Contribution
158
119
 
159
120
  Make sure you've read the [guidelines][contributing] before you start contributing.
160
121
 
161
- Editor preferences are available in the [.prettierrc][prettierrc] for easy use in common code editors. Read more and download plugins at https://prettier.io/.
162
-
163
122
  ## Supporting React Suite
164
123
 
165
124
  If you like React Suite, you can show your support by either
@@ -183,11 +142,10 @@ React Suite is [MIT licensed][license]. Copyright (c) 2016-present, HYPERS.
183
142
  [npm-home]: https://www.npmjs.com/package/rsuite
184
143
  [actions-svg]: https://github.com/rsuite/rsuite/workflows/Node.js%20CI/badge.svg?branch=master
185
144
  [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
145
  [discord-svg]: https://img.shields.io/badge/Discord-Join%20chat%20%E2%86%92-738bd7.svg
188
146
  [discord-invite]: https://discord.gg/R8mnjwh
189
147
  [rsuite-design]: https://rsuitejs.com/design/default
190
- [live-preview-on-codesandbox]: https://codesandbox.io/s/mo7jxvr9x9?from-embed
148
+ [live-preview-on-codesandbox]: https://codesandbox.io/s/rsuite-template-5vq6zo2z5l
191
149
  [rsuite-doc-guide]: https://rsuitejs.com/en/guide/introduction
192
150
  [rsuite-doc-guide-themes]: https://rsuitejs.com/en/guide/themes
193
151
  [rsuite-doc-guide-intl]: https://rsuitejs.com/en/guide/intl
@@ -139,6 +139,10 @@
139
139
  outline: 0;
140
140
  overflow: hidden;
141
141
 
142
+ &:hover {
143
+ text-decoration: none;
144
+ }
145
+
142
146
  &:focus-visible,
143
147
  &&-focus {
144
148
  .focus-ring(slim-inset);
@@ -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,
@@ -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. */