rsuite 5.4.3 → 5.5.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 (85) hide show
  1. package/CHANGELOG.md +46 -0
  2. package/Carousel/styles/index.less +1 -0
  3. package/CheckTreePicker/styles/index.less +51 -50
  4. package/Dropdown/styles/index.less +2 -19
  5. package/Modal/styles/mixin.less +1 -0
  6. package/Picker/styles/mixin.less +3 -2
  7. package/README.md +1 -1
  8. package/Sidenav/styles/index.less +54 -59
  9. package/TreePicker/styles/index.less +3 -3
  10. package/cjs/Calendar/useCalendarDate.d.ts +1 -1
  11. package/cjs/Calendar/useCalendarDate.js +1 -1
  12. package/cjs/Carousel/Carousel.js +7 -1
  13. package/cjs/Cascader/Cascader.js +15 -4
  14. package/cjs/CheckTreePicker/CheckTreePicker.js +1 -1
  15. package/cjs/CheckTreePicker/utils.js +1 -1
  16. package/cjs/CustomProvider/CustomProvider.d.ts +14 -14
  17. package/cjs/CustomProvider/CustomProvider.js +4 -3
  18. package/cjs/DatePicker/DatePicker.d.ts +1 -1
  19. package/cjs/DatePicker/DatePicker.js +2 -4
  20. package/cjs/DateRangePicker/Calendar.js +2 -16
  21. package/cjs/Dropdown/Dropdown.d.ts +5 -0
  22. package/cjs/Dropdown/DropdownMenu.js +5 -11
  23. package/cjs/Dropdown/test/Dropdown.test.d.ts +1 -0
  24. package/cjs/Dropdown/test/Dropdown.test.js +30 -0
  25. package/cjs/InputNumber/InputNumber.d.ts +1 -1
  26. package/cjs/InputNumber/InputNumber.js +36 -6
  27. package/cjs/InputNumber/test/InputNumber.test.d.ts +1 -0
  28. package/cjs/InputNumber/test/InputNumber.test.js +14 -0
  29. package/cjs/Modal/utils.js +16 -8
  30. package/cjs/MultiCascader/MultiCascader.js +7 -3
  31. package/cjs/Nav/NavItem.js +3 -1
  32. package/cjs/Picker/DropdownMenu.js +5 -0
  33. package/cjs/Picker/PickerToggle.js +2 -4
  34. package/cjs/RangeSlider/RangeSlider.d.ts +12 -2
  35. package/cjs/RangeSlider/RangeSlider.js +35 -12
  36. package/cjs/Uploader/UploadFileItem.d.ts +1 -1
  37. package/cjs/Uploader/UploadFileItem.js +1 -1
  38. package/cjs/Uploader/Uploader.js +3 -0
  39. package/cjs/utils/propTypeChecker.d.ts +2 -6
  40. package/cjs/utils/propTypeChecker.js +7 -59
  41. package/cjs/utils/treeUtils.js +4 -3
  42. package/cjs/utils/useClickOutside.js +6 -2
  43. package/dist/rsuite-rtl.css +115 -127
  44. package/dist/rsuite-rtl.min.css +1 -1
  45. package/dist/rsuite-rtl.min.css.map +1 -1
  46. package/dist/rsuite.css +115 -127
  47. package/dist/rsuite.js +24 -24
  48. package/dist/rsuite.min.css +1 -1
  49. package/dist/rsuite.min.css.map +1 -1
  50. package/dist/rsuite.min.js +1 -1
  51. package/dist/rsuite.min.js.map +1 -1
  52. package/esm/Calendar/useCalendarDate.d.ts +1 -1
  53. package/esm/Calendar/useCalendarDate.js +1 -1
  54. package/esm/Carousel/Carousel.js +9 -3
  55. package/esm/Cascader/Cascader.js +15 -4
  56. package/esm/CheckTreePicker/CheckTreePicker.js +1 -1
  57. package/esm/CheckTreePicker/utils.js +1 -1
  58. package/esm/CustomProvider/CustomProvider.d.ts +14 -14
  59. package/esm/CustomProvider/CustomProvider.js +2 -2
  60. package/esm/DatePicker/DatePicker.d.ts +1 -1
  61. package/esm/DatePicker/DatePicker.js +2 -3
  62. package/esm/DateRangePicker/Calendar.js +2 -16
  63. package/esm/Dropdown/Dropdown.d.ts +5 -0
  64. package/esm/Dropdown/DropdownMenu.js +5 -11
  65. package/esm/Dropdown/test/Dropdown.test.d.ts +1 -0
  66. package/esm/Dropdown/test/Dropdown.test.js +22 -0
  67. package/esm/InputNumber/InputNumber.d.ts +1 -1
  68. package/esm/InputNumber/InputNumber.js +38 -7
  69. package/esm/InputNumber/test/InputNumber.test.d.ts +1 -0
  70. package/esm/InputNumber/test/InputNumber.test.js +7 -0
  71. package/esm/Modal/utils.js +16 -8
  72. package/esm/MultiCascader/MultiCascader.js +7 -3
  73. package/esm/Nav/NavItem.js +3 -1
  74. package/esm/Picker/DropdownMenu.js +5 -0
  75. package/esm/Picker/PickerToggle.js +2 -4
  76. package/esm/RangeSlider/RangeSlider.d.ts +12 -2
  77. package/esm/RangeSlider/RangeSlider.js +35 -12
  78. package/esm/Uploader/UploadFileItem.d.ts +1 -1
  79. package/esm/Uploader/UploadFileItem.js +1 -1
  80. package/esm/Uploader/Uploader.js +4 -1
  81. package/esm/utils/propTypeChecker.d.ts +2 -6
  82. package/esm/utils/propTypeChecker.js +7 -59
  83. package/esm/utils/treeUtils.js +6 -3
  84. package/esm/utils/useClickOutside.js +6 -2
  85. package/package.json +2 -2
package/CHANGELOG.md CHANGED
@@ -1,3 +1,49 @@
1
+ ## [5.5.2](https://github.com/rsuite/rsuite/compare/v5.5.1...v5.5.2) (2022-01-27)
2
+
3
+ ### Features
4
+
5
+ - **Cascader:** add parent node in serach result while parentSelectable ([#2313](https://github.com/rsuite/rsuite/issues/2313)) ([e677bb6](https://github.com/rsuite/rsuite/commit/e677bb6b75d0cc26dafedc8e5326d413969c2867))
6
+
7
+ ## [5.5.1](https://github.com/rsuite/rsuite/compare/v5.5.0...v5.5.1) (2022-01-21)
8
+
9
+ ### Bug Fixes
10
+
11
+ - **Carousel:** add a flex-wrap property on toolbar buttons ([#2302](https://github.com/rsuite/rsuite/issues/2302)) ([a9a9113](https://github.com/rsuite/rsuite/commit/a9a911378c4aaeba43233dd3acdc05913a9bf6ae))
12
+ - **CheckTreePicker:** fix CheckTreePicker label style ([#2304](https://github.com/rsuite/rsuite/issues/2304)) ([07eb5ac](https://github.com/rsuite/rsuite/commit/07eb5acd4e8283529619ad2b4d6003b0c4f8614d))
13
+ - **DateRangePicker:** fix month not selectable on calendar ([#2312](https://github.com/rsuite/rsuite/issues/2312)) ([5199845](https://github.com/rsuite/rsuite/commit/5199845ee435e923c807da5e0813f4ba06a86798))
14
+ - **Sidenav:** hide focus ring when interacting with mouse ([#2311](https://github.com/rsuite/rsuite/issues/2311)) ([9413bc9](https://github.com/rsuite/rsuite/commit/9413bc9a48fb8a3f915cc811b3392ba4e65b0b70))
15
+
16
+ ### Performance Improvements
17
+
18
+ - Responsive for small screen ([#2293](https://github.com/rsuite/rsuite/issues/2293)) ([cadc42e](https://github.com/rsuite/rsuite/commit/cadc42e39baee174ff7d5577ea933cb471ef5bd0))
19
+
20
+ # [5.5.0](https://github.com/rsuite/rsuite/compare/v5.4.4...v5.5.0) (2022-01-13)
21
+
22
+ ### Bug Fixes
23
+
24
+ - **Dropdown:** infer toggleAs component props ([#2299](https://github.com/rsuite/rsuite/issues/2299)) ([84611cc](https://github.com/rsuite/rsuite/commit/84611cc6f88e1d9cd712bc3f08be559d0a146ba0))
25
+ - **InputNumber:** inherit html input attributes ([#2298](https://github.com/rsuite/rsuite/issues/2298)) ([d7622ee](https://github.com/rsuite/rsuite/commit/d7622eed72b36ed15e91f606027d2e540391bdc7))
26
+ - **MultiCascader:** fix not rendering the count of selected values ([#2289](https://github.com/rsuite/rsuite/issues/2289)) ([324e90c](https://github.com/rsuite/rsuite/commit/324e90c8499adf58cb25083fd5c99fe98eb9ecba))
27
+ - **Tree:** fix dragNode has cyclic object ([#2281](https://github.com/rsuite/rsuite/issues/2281)) ([26cbaf2](https://github.com/rsuite/rsuite/commit/26cbaf2fd92ab562174e19cf55388c01fe22143a)), closes [#2268](https://github.com/rsuite/rsuite/issues/2268)
28
+
29
+ ### Features
30
+
31
+ - **InputNumber:** support keyboard interaction ([#2294](https://github.com/rsuite/rsuite/issues/2294)) ([46993e2](https://github.com/rsuite/rsuite/commit/46993e235ca3d3ee8b6faa16a5fa11a8ed544e3b))
32
+ - **RangeSlider:** add `constraint` prop ([#2291](https://github.com/rsuite/rsuite/issues/2291)) ([a2d38a8](https://github.com/rsuite/rsuite/commit/a2d38a8efe4f85c28ce1f4ee79a89eda1e1cf7b0))
33
+
34
+ ### Performance Improvements
35
+
36
+ - **styles:** simplify compound selectors over 4 levels ([#2282](https://github.com/rsuite/rsuite/issues/2282)) ([304e8da](https://github.com/rsuite/rsuite/commit/304e8da0c2057d148bbad36674aba33382439949))
37
+
38
+ ## [5.4.4](https://github.com/rsuite/rsuite/compare/v5.4.3...v5.4.4) (2022-01-06)
39
+
40
+ ### Bug Fixes
41
+
42
+ - **CheckTreePicker:** fix root node style incorrect ([#2279](https://github.com/rsuite/rsuite/issues/2279)) ([c09226e](https://github.com/rsuite/rsuite/commit/c09226e141f7881b11fe5594d802974f49e789a9))
43
+ - **DatePicker:** fix clear button not working ([#2273](https://github.com/rsuite/rsuite/issues/2273)) ([649362a](https://github.com/rsuite/rsuite/commit/649362aa697a292af28c5ec666e4337a7bd449c7))
44
+ - **Dropdown:** wrong submenu placement in RTL direction ([#2280](https://github.com/rsuite/rsuite/issues/2280)) ([c3735c3](https://github.com/rsuite/rsuite/commit/c3735c335d5a8ca6e9954af1e5b77c453b5bd4d2))
45
+ - **Navbar:** fix Whisper on Nav.Item within Navbar wrong positioning ([#2274](https://github.com/rsuite/rsuite/issues/2274)) ([bd0f5e3](https://github.com/rsuite/rsuite/commit/bd0f5e316e6bb910d9a41e43770b4d1a61528d9f)), closes [#2263](https://github.com/rsuite/rsuite/issues/2263)
46
+
1
47
  ## [5.4.3](https://github.com/rsuite/rsuite/compare/v5.4.2...v5.4.3) (2021-12-30)
2
48
 
3
49
  ### Bug Fixes
@@ -53,6 +53,7 @@
53
53
 
54
54
  > ul {
55
55
  display: flex;
56
+ flex-wrap: wrap;
56
57
  list-style: none;
57
58
  margin: 0;
58
59
  padding: 0;
@@ -1,6 +1,7 @@
1
1
  @import '../../styles/common';
2
- @import '../../Picker/styles/mixin';
2
+ @import '../../Picker/styles/index';
3
3
  @import '../../TreePicker/styles/mixin';
4
+ @import '../../Checkbox/styles/index';
4
5
 
5
6
  // **Check Tree Picker
6
7
  // **----------------------
@@ -23,38 +24,16 @@
23
24
  }
24
25
  }
25
26
  }
26
- }
27
-
28
- .rs-check-tree-node {
29
- position: relative;
30
- font-size: @picker-tree-node-font-size;
31
- line-height: @picker-tree-node-line-height;
32
-
33
- &-label {
34
- .rs-check-item {
35
- display: inline-block;
36
-
37
- .rs-picker-menu & {
38
- display: block;
39
- }
40
- }
41
27
 
42
- &:focus .rs-check-item .rs-checkbox-checker > label {
43
- .picker-item-hover();
44
- }
45
-
46
- .rs-check-item.rs-checkbox-checked .rs-checkbox-checker > label {
47
- .picker-item-active();
48
- }
49
-
50
- .rs-check-item .rs-checkbox-checker > label {
28
+ .rs-check-item .rs-checkbox-checker {
29
+ > label {
51
30
  text-align: left;
52
31
  position: relative;
53
32
  margin: 0;
54
33
  //padding-left: 16px;
55
34
  padding: @picker-tree-node-padding-vertical @picker-tree-node-padding-horizontal;
56
- //text gap + checkbox space
57
- padding-left: 58px; // 10px + 36px + 12px
35
+ //text gap + checkbox space + label gap
36
+ padding-left: 50px; // 10px + 36px + 4px
58
37
 
59
38
  &::before {
60
39
  content: '';
@@ -65,39 +44,61 @@
65
44
 
66
45
  height: 100%;
67
46
  top: 0;
68
- margin-left: -58px; // 10px + 36px + 12px
47
+ margin-left: -52px; // 10px + 36px + 6px
69
48
  }
49
+ }
70
50
 
71
- .rs-checkbox-wrapper {
72
- left: (@checkbox-sense-width + 10px);
73
- }
51
+ .rs-checkbox-wrapper {
52
+ left: (@checkbox-sense-width + 10px);
53
+ }
54
+ }
55
+ }
74
56
 
75
- // Only has the first level
76
- .without-children & {
77
- padding-left: 34px; //text gap + checkbox space
57
+ // Only has the first level
58
+ .rs-check-tree-without-children .rs-check-item .rs-checkbox-checker {
59
+ > label {
60
+ padding-left: 32px; //text gap + checkbox space
78
61
 
79
- &::before {
80
- width: 28px;
81
- margin-left: -36px;
82
- }
62
+ &::before {
63
+ width: 28px;
64
+ margin-left: -34px;
65
+ }
66
+ }
83
67
 
84
- .rs-checkbox-wrapper {
85
- left: 0;
86
- }
87
- }
68
+ .rs-checkbox-wrapper {
69
+ left: 0;
70
+ }
71
+ }
72
+
73
+ .rs-check-tree-node {
74
+ position: relative;
75
+ font-size: @picker-tree-node-font-size;
76
+ line-height: @picker-tree-node-line-height;
77
+
78
+ .rs-check-item {
79
+ display: inline-block;
80
+
81
+ .rs-picker-menu & {
82
+ display: block;
88
83
  }
89
84
  }
90
85
 
86
+ &:focus .rs-check-item .rs-checkbox-checker > label {
87
+ .picker-item-hover();
88
+ }
89
+
90
+ .rs-check-item.rs-checkbox-checked .rs-checkbox-checker > label {
91
+ .picker-item-active();
92
+ }
93
+
91
94
  // Uncheckable state
92
- &-all-uncheckable > .rs-check-tree-node-label {
93
- .rs-check-item .rs-checkbox-checker > label {
94
- padding-left: 22px; // 10px + 12px
95
+ &-all-uncheckable > .rs-check-item .rs-checkbox-checker > label {
96
+ padding-left: 22px; // 10px + 12px
95
97
 
96
- &::before {
97
- width: 14px;
98
- margin-left: 0;
99
- left: 0;
100
- }
98
+ &::before {
99
+ width: 14px;
100
+ margin-left: 0;
101
+ left: 0;
101
102
  }
102
103
  }
103
104
  }
@@ -220,26 +220,9 @@
220
220
  right: @dropdown-caret-icon-padding-horizontal;
221
221
  }
222
222
  }
223
- //
224
- //&.rs-dropdown-menu-pull-left {
225
- // &.rs-dropdown-item {
226
- // padding-left: @dropdown-item-padding-x+ @dropdown-item-submenu-icon-angle-spacing +
227
- // @dropdown-item-submenu-icon-angle-width;
228
- //
229
- // > .rs-dropdown-menu-toggle .rs-dropdown-menu-toggle-icon {
230
- // left: @dropdown-caret-icon-padding-horizontal;
231
- // }
232
- // }
233
- //}
234
-
235
- // Pull right
236
- .rs-dropdown-item-pull-right ~ .rs-dropdown-menu {
237
- left: 100%;
238
- }
239
223
 
240
- // Pull Left
241
- .rs-dropdown-item-pull-left ~ .rs-dropdown-menu {
242
- right: 100%;
224
+ .rs-dropdown-menu {
225
+ left: 100%;
243
226
  }
244
227
 
245
228
  // Open
@@ -1,3 +1,4 @@
1
1
  .content-width(@width) {
2
2
  width: @width;
3
+ max-width: calc(100% - 10px);
3
4
  }
@@ -265,7 +265,8 @@
265
265
  line-height: @line-height;
266
266
  }
267
267
 
268
- .rs-picker-input.rs-picker-tag & ~ .rs-picker-tag-wrapper {
268
+ // FIXME Bad design. Should not set search input styles in a mixin that is used in picker buttons.
269
+ .rs-picker-tag & ~ .rs-picker-tag-wrapper {
269
270
  padding-bottom: @padding-vertical - 3px;
270
271
 
271
272
  .rs-tag {
@@ -278,7 +279,7 @@
278
279
  font-size: @font-size;
279
280
  }
280
281
 
281
- .rs-picker-search-input input {
282
+ input {
282
283
  height: @line-height * @font-size - 2px;
283
284
  }
284
285
  }
package/README.md CHANGED
@@ -8,7 +8,7 @@ English | [中文版][readm-cn]
8
8
 
9
9
  [![npm][npm-svg]][npm-home]
10
10
  [![GitHub Actions][actions-svg]][actions-home]
11
- [![codecov](https://codecov.io/gh/rsuite/rsuite/branch/next/graph/badge.svg?token=HGeKd0BD3t)](https://codecov.io/gh/rsuite/rsuite)
11
+ [![codecov](https://codecov.io/gh/rsuite/rsuite/branch/main/graph/badge.svg?token=HGeKd0BD3t)](https://codecov.io/gh/rsuite/rsuite)
12
12
  [![Discord][discord-svg]][discord-invite]
13
13
  [![Gitter][gitter-svg]][gitter]
14
14
  [![Gitter][gitter-cn-svg]][gitter-cn]
@@ -37,34 +37,59 @@
37
37
  margin: 0 !important;
38
38
  }
39
39
 
40
- .high-contrast-mode({
41
- .rs-dropdown-toggle,
42
- .rs-dropdown-menu {
43
- border: none;
44
- }
45
- });
40
+ // <Dropdown> within <Sidenav>
41
+ > .rs-dropdown {
42
+ // Submenu toggle
43
+ .rs-dropdown-item-toggle {
44
+ display: block;
45
+ width: 100%;
46
+ text-align: start;
47
+ background: none;
48
+ padding-right: (@sidenav-padding-horizontal + @sidenav-dropdown-toggle-caret-width);
49
+ position: relative;
46
50
 
47
- .rs-dropdown-item-toggle {
48
- display: block;
49
- width: 100%;
50
- text-align: start;
51
- background: none;
51
+ .rs-sidenav-collapse-in & {
52
+ padding-left: @sidenav-level2-retract;
53
+ }
52
54
 
53
- &:focus {
54
- outline: 0;
55
- }
55
+ &:focus {
56
+ outline: 0;
57
+ }
56
58
 
57
- &:focus-visible {
58
- .focus-ring(inset);
59
+ &:focus-visible {
60
+ .focus-ring(inset);
59
61
 
60
- .high-contrast-mode({
61
- .focus-ring(slim-inset);
62
- });
62
+ .high-contrast-mode({
63
+ .focus-ring(slim-inset);
64
+ });
63
65
 
64
- z-index: 1;
66
+ z-index: 1;
67
+ }
68
+
69
+ // Submenu toggle icon
70
+ &-icon {
71
+ position: absolute;
72
+ right: @sidenav-padding-horizontal;
73
+ top: @sidenav-children-padding-vertical;
74
+ width: auto;
75
+ height: @sidenav-dropdown-toggle-caret-width;
76
+ transform: rotate(90deg);
77
+ }
78
+ }
79
+
80
+ // Expanded submenu toggle icon
81
+ .rs-dropdown-item-expand .rs-dropdown-item-toggle-icon {
82
+ transform: rotate(270deg);
65
83
  }
66
84
  }
67
85
 
86
+ .high-contrast-mode({
87
+ .rs-dropdown-toggle,
88
+ .rs-dropdown-menu {
89
+ border: none;
90
+ }
91
+ });
92
+
68
93
  .rs-sidenav-item:focus-visible {
69
94
  .focus-ring(inset);
70
95
 
@@ -112,7 +137,7 @@
112
137
 
113
138
  // Sidenav is usually placed by the left/right edge of the page
114
139
  // thus use an inset focus ring to prevent overflow clipping
115
- &:focus {
140
+ &:focus-visible {
116
141
  .focus-ring(inset);
117
142
  }
118
143
 
@@ -225,32 +250,17 @@
225
250
  transform: rotate(180deg);
226
251
  }
227
252
 
228
- .rs-dropdown-item.rs-dropdown-item-expand
229
- > .rs-dropdown-item-toggle
230
- > .rs-dropdown-item-toggle-icon {
231
- transform: rotate(270deg);
232
- }
233
-
234
253
  // Dropdown menu
235
- > .rs-dropdown-menu {
254
+ .rs-dropdown-menu {
236
255
  .reset-sidenav-dropdown-menu();
256
+ }
237
257
 
238
- // Submenu
239
- .rs-dropdown-item-submenu {
240
- padding: 0;
241
-
242
- > .rs-dropdown-menu-toggle {
243
- display: block;
244
- padding-right: (@sidenav-padding-horizontal + @sidenav-dropdown-toggle-caret-width);
245
- }
246
-
247
- > .rs-dropdown-menu {
248
- .reset-sidenav-dropdown-menu();
249
- }
258
+ // Submenu
259
+ .rs-dropdown-item-submenu {
260
+ padding: 0;
250
261
 
251
- &:hover {
252
- background-color: transparent;
253
- }
262
+ &:hover {
263
+ background-color: transparent;
254
264
  }
255
265
  }
256
266
  }
@@ -283,21 +293,6 @@
283
293
  // @warn Here we can only use absolute positioning because of the limitations of using <Dropdown/> component.
284
294
 
285
295
  .rs-dropdown-item-submenu {
286
- > .rs-dropdown-item-toggle {
287
- padding-left: @sidenav-level2-retract;
288
- padding-right: (@sidenav-padding-horizontal + @sidenav-dropdown-toggle-caret-width);
289
- position: relative;
290
-
291
- > .rs-dropdown-item-toggle-icon {
292
- position: absolute;
293
- right: @sidenav-padding-horizontal;
294
- top: @sidenav-children-padding-vertical;
295
- width: auto;
296
- height: @sidenav-dropdown-toggle-caret-width;
297
- transform: rotate(90deg);
298
- }
299
- }
300
-
301
296
  > .rs-dropdown-item-menu-icon {
302
297
  padding-top: @sidenav-children-padding-vertical;
303
298
  padding-bottom: @sidenav-children-padding-vertical;
@@ -342,7 +337,7 @@
342
337
  // supplement padding
343
338
  padding-left: @sidenav-default-width;
344
339
 
345
- &:focus {
340
+ &:focus-visible {
346
341
  .focus-ring();
347
342
 
348
343
  .high-contrast-mode({
@@ -34,7 +34,7 @@
34
34
  text-align: left;
35
35
  margin: 0 0 4px 0;
36
36
 
37
- > .rs-tree-node-label {
37
+ &-label {
38
38
  position: relative;
39
39
  margin: 0;
40
40
  //text gap
@@ -44,7 +44,7 @@
44
44
  font-size: @picker-tree-node-font-size;
45
45
  line-height: @picker-tree-node-line-height;
46
46
 
47
- > .rs-tree-node-label-content {
47
+ &-content {
48
48
  padding: @custom-picker-tree-node-padding-vertical @picker-tree-node-padding-horizontal
49
49
  @custom-picker-tree-node-padding-vertical @picker-tree-arrow-down-gap;
50
50
  display: inline-block;
@@ -59,7 +59,7 @@
59
59
  }
60
60
  }
61
61
 
62
- &&-active > .rs-tree-node-label > .rs-tree-node-label-content {
62
+ &-active &-label-content {
63
63
  .picker-item-active();
64
64
 
65
65
  color: var(--rs-text-link);
@@ -1,4 +1,4 @@
1
- declare const useCalendarDate: (value: Date | undefined, defaultDate: Date | undefined) => {
1
+ declare const useCalendarDate: (value: Date | null | undefined, defaultDate: Date | undefined) => {
2
2
  calendarDate: Date;
3
3
  setCalendarDate: (date: Date | undefined) => void;
4
4
  };
@@ -25,7 +25,7 @@ var useCalendarDate = function useCalendarDate(value, defaultDate) {
25
25
  var _valueRef$current;
26
26
 
27
27
  if ((value === null || value === void 0 ? void 0 : value.valueOf()) !== ((_valueRef$current = valueRef.current) === null || _valueRef$current === void 0 ? void 0 : _valueRef$current.valueOf())) {
28
- setCalendarDate(value);
28
+ setCalendarDate(value !== null && value !== void 0 ? value : new Date());
29
29
  valueRef.current = value;
30
30
  }
31
31
  }, [value]);
@@ -62,7 +62,13 @@ var Carousel = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
62
62
  lastIndex = _useState2[0],
63
63
  setLastIndex = _useState2[1];
64
64
 
65
+ var rootRef = (0, _react.useRef)(null);
66
+
65
67
  var handleSlide = function handleSlide(nextActiveIndex, event) {
68
+ if (!rootRef.current) {
69
+ return;
70
+ }
71
+
66
72
  clear();
67
73
  var index = nextActiveIndex !== null && nextActiveIndex !== void 0 ? nextActiveIndex : activeIndex + 1; // When index is greater than count, start from 1 again.
68
74
 
@@ -129,7 +135,7 @@ var Carousel = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
129
135
  var sliderStyles = (_sliderStyles = {}, _sliderStyles[lengthKey] = count * 100 + "%", _sliderStyles.transform = vertical ? "translate3d(0, " + activeRatio + " ,0)" : "translate3d(" + activeRatio + ", 0 ,0)", _sliderStyles);
130
136
  var showMask = count > 1 && activeIndex === 0 && activeIndex !== lastIndex;
131
137
  return /*#__PURE__*/_react.default.createElement(Component, (0, _extends4.default)({}, rest, {
132
- ref: ref,
138
+ ref: (0, _utils.mergeRefs)(ref, rootRef),
133
139
  className: classes
134
140
  }), /*#__PURE__*/_react.default.createElement("div", {
135
141
  className: prefix('content')
@@ -163,7 +163,7 @@ var Cascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
163
163
  var getSearchResult = (0, _react.useCallback)(function (keyword) {
164
164
  var items = [];
165
165
  var result = flattenData.filter(function (item) {
166
- if (item[childrenKey]) {
166
+ if (!parentSelectable && item[childrenKey]) {
167
167
  return false;
168
168
  }
169
169
 
@@ -179,7 +179,7 @@ var Cascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
179
179
  }
180
180
 
181
181
  return items;
182
- }, [childrenKey, flattenData, someKeyword]); // Used to hover the focuse item when trigger `onKeydown`
182
+ }, [childrenKey, flattenData, someKeyword, parentSelectable]); // Used to hover the focuse item when trigger `onKeydown`
183
183
 
184
184
  var _useFocusItemValue = (0, _Picker.useFocusItemValue)(value, {
185
185
  rtl: rtl,
@@ -211,10 +211,18 @@ var Cascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
211
211
  }
212
212
  }, [getSearchResult, onSearch, setFocusItemValue, setKeys, setLayer, valueKey]);
213
213
  var handleEntered = (0, _react.useCallback)(function () {
214
+ if (!targetRef.current) {
215
+ return;
216
+ }
217
+
214
218
  onOpen === null || onOpen === void 0 ? void 0 : onOpen();
215
219
  setActive(true);
216
220
  }, [onOpen]);
217
221
  var handleExited = (0, _react.useCallback)(function () {
222
+ if (!targetRef.current) {
223
+ return;
224
+ }
225
+
218
226
  onClose === null || onClose === void 0 ? void 0 : onClose();
219
227
  setActive(false);
220
228
  setSearchKeyword('');
@@ -225,7 +233,7 @@ var Cascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
225
233
  (_triggerRef$current = triggerRef.current) === null || _triggerRef$current === void 0 ? void 0 : _triggerRef$current.close();
226
234
  }, [triggerRef]);
227
235
  var handleClean = (0, _react.useCallback)(function (event) {
228
- if (disabled) {
236
+ if (disabled || !targetRef.current) {
229
237
  return;
230
238
  }
231
239
 
@@ -283,7 +291,10 @@ var Cascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
283
291
  children.then(function (data) {
284
292
  node.loading = false;
285
293
  node[childrenKey] = data;
286
- addColumn(data, cascadePaths.length);
294
+
295
+ if (targetRef.current) {
296
+ addColumn(data, cascadePaths.length);
297
+ }
287
298
  });
288
299
  } else {
289
300
  node.loading = false;
@@ -645,7 +645,7 @@ var CheckTreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
645
645
  var renderCheckTree = function renderCheckTree() {
646
646
  var _withCheckTreeClassPr, _merge2;
647
647
 
648
- var classes = withCheckTreeClassPrefix((_withCheckTreeClassPr = {}, _withCheckTreeClassPr[className !== null && className !== void 0 ? className : ''] = inline, _withCheckTreeClassPr['without-children'] = !_utils2.isSomeNodeHasChildren, _withCheckTreeClassPr.virtualized = virtualized, _withCheckTreeClassPr));
648
+ var classes = withCheckTreeClassPrefix((_withCheckTreeClassPr = {}, _withCheckTreeClassPr[className !== null && className !== void 0 ? className : ''] = inline, _withCheckTreeClassPr['without-children'] = !(0, _utils2.isSomeNodeHasChildren)(data, childrenKey), _withCheckTreeClassPr.virtualized = virtualized, _withCheckTreeClassPr));
649
649
  var formattedNodes = getFormattedNodes(renderNode);
650
650
 
651
651
  if (!formattedNodes.some(function (v) {
@@ -62,7 +62,7 @@ function isSomeChildChecked(nodes, parent, childrenKey) {
62
62
 
63
63
  function isSomeNodeHasChildren(data, childrenKey) {
64
64
  return data.some(function (node) {
65
- return node[childrenKey];
65
+ return Array.isArray(node[childrenKey]);
66
66
  });
67
67
  }
68
68
  /**
@@ -72,10 +72,10 @@ declare const CustomContext: React.Context<CustomProviderProps<{
72
72
  saturday: string;
73
73
  ok: string;
74
74
  today: string;
75
- yesterday: string; /** Language configuration */
75
+ yesterday: string;
76
76
  hours: string;
77
77
  minutes: string;
78
- seconds: string;
78
+ seconds: string; /** Support right-to-left */
79
79
  formattedMonthPattern: string;
80
80
  formattedDayPattern: string;
81
81
  dateLocale: any;
@@ -90,10 +90,10 @@ declare const CustomContext: React.Context<CustomProviderProps<{
90
90
  saturday: string;
91
91
  ok: string;
92
92
  today: string;
93
- yesterday: string; /** Language configuration */
93
+ yesterday: string;
94
94
  hours: string;
95
95
  minutes: string;
96
- seconds: string;
96
+ seconds: string; /** Support right-to-left */
97
97
  formattedMonthPattern: string;
98
98
  formattedDayPattern: string;
99
99
  dateLocale: any;
@@ -109,10 +109,10 @@ declare const CustomContext: React.Context<CustomProviderProps<{
109
109
  saturday: string;
110
110
  ok: string;
111
111
  today: string;
112
- yesterday: string; /** Language configuration */
112
+ yesterday: string;
113
113
  hours: string;
114
114
  minutes: string;
115
- seconds: string;
115
+ seconds: string; /** Support right-to-left */
116
116
  formattedMonthPattern: string;
117
117
  formattedDayPattern: string;
118
118
  dateLocale: any;
@@ -120,7 +120,7 @@ declare const CustomContext: React.Context<CustomProviderProps<{
120
120
  Picker?: {
121
121
  noResultsText: string;
122
122
  placeholder: string;
123
- searchPlaceholder: string; /** Supported themes */
123
+ searchPlaceholder: string;
124
124
  checkAll: string;
125
125
  } | undefined;
126
126
  InputPicker?: {
@@ -176,10 +176,10 @@ declare const Consumer: React.Consumer<CustomProviderProps<{
176
176
  saturday: string;
177
177
  ok: string;
178
178
  today: string;
179
- yesterday: string; /** Language configuration */
179
+ yesterday: string;
180
180
  hours: string;
181
181
  minutes: string;
182
- seconds: string;
182
+ seconds: string; /** Support right-to-left */
183
183
  formattedMonthPattern: string;
184
184
  formattedDayPattern: string;
185
185
  dateLocale: any;
@@ -194,10 +194,10 @@ declare const Consumer: React.Consumer<CustomProviderProps<{
194
194
  saturday: string;
195
195
  ok: string;
196
196
  today: string;
197
- yesterday: string; /** Language configuration */
197
+ yesterday: string;
198
198
  hours: string;
199
199
  minutes: string;
200
- seconds: string;
200
+ seconds: string; /** Support right-to-left */
201
201
  formattedMonthPattern: string;
202
202
  formattedDayPattern: string;
203
203
  dateLocale: any;
@@ -213,10 +213,10 @@ declare const Consumer: React.Consumer<CustomProviderProps<{
213
213
  saturday: string;
214
214
  ok: string;
215
215
  today: string;
216
- yesterday: string; /** Language configuration */
216
+ yesterday: string;
217
217
  hours: string;
218
218
  minutes: string;
219
- seconds: string;
219
+ seconds: string; /** Support right-to-left */
220
220
  formattedMonthPattern: string;
221
221
  formattedDayPattern: string;
222
222
  dateLocale: any;
@@ -224,7 +224,7 @@ declare const Consumer: React.Consumer<CustomProviderProps<{
224
224
  Picker?: {
225
225
  noResultsText: string;
226
226
  placeholder: string;
227
- searchPlaceholder: string; /** Supported themes */
227
+ searchPlaceholder: string;
228
228
  checkAll: string;
229
229
  } | undefined;
230
230
  InputPicker?: {