rsuite 5.3.0 → 5.4.3

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 (167) hide show
  1. package/Button/styles/index.less +1 -5
  2. package/CHANGELOG.md +53 -0
  3. package/Drawer/styles/index.less +3 -0
  4. package/Dropdown/styles/index.less +5 -3
  5. package/Dropdown/styles/mixin.less +0 -2
  6. package/Modal/styles/index.less +23 -22
  7. package/Nav/styles/index.less +1 -0
  8. package/Navbar/styles/index.less +27 -8
  9. package/Radio/styles/index.less +6 -0
  10. package/Sidenav/styles/index.less +8 -2
  11. package/Stack/package.json +7 -0
  12. package/Stack/styles/index.less +5 -0
  13. package/TreePicker/styles/index.less +0 -14
  14. package/cjs/@types/common.d.ts +4 -4
  15. package/cjs/Affix/Affix.js +3 -1
  16. package/cjs/AvatarGroup/AvatarGroup.js +9 -4
  17. package/cjs/ButtonGroup/ButtonGroup.js +9 -4
  18. package/cjs/Calendar/Calendar.js +21 -20
  19. package/cjs/Calendar/Header.js +1 -3
  20. package/cjs/Calendar/Table.js +1 -1
  21. package/cjs/Calendar/TableRow.js +12 -7
  22. package/cjs/Calendar/View.js +9 -5
  23. package/cjs/Cascader/utils.d.ts +7 -7
  24. package/cjs/CheckPicker/CheckPicker.d.ts +12 -4
  25. package/cjs/CheckPicker/test/CheckPicker.test.d.ts +1 -0
  26. package/cjs/CheckPicker/test/CheckPicker.test.js +84 -0
  27. package/cjs/CheckTree/index.js +6 -5
  28. package/cjs/Container/Container.js +6 -3
  29. package/cjs/DatePicker/DatePicker.js +4 -2
  30. package/cjs/DateRangePicker/DateRangePicker.js +9 -5
  31. package/cjs/Disclosure/Disclosure.d.ts +8 -5
  32. package/cjs/Disclosure/Disclosure.js +51 -11
  33. package/cjs/Disclosure/DisclosureButton.d.ts +2 -2
  34. package/cjs/Disclosure/DisclosureContext.d.ts +6 -1
  35. package/cjs/Dropdown/Dropdown.js +1 -1
  36. package/cjs/Dropdown/DropdownItem.js +9 -10
  37. package/cjs/Dropdown/DropdownMenu.js +81 -23
  38. package/cjs/Dropdown/DropdownToggle.js +8 -1
  39. package/cjs/FormGroup/FormGroup.js +9 -4
  40. package/cjs/Menu/MenuItem.js +1 -1
  41. package/cjs/Modal/Modal.js +34 -22
  42. package/cjs/MultiCascader/utils.d.ts +3 -3
  43. package/cjs/Nav/Nav.js +10 -12
  44. package/cjs/Nav/NavContext.d.ts +6 -0
  45. package/cjs/Nav/NavContext.js +1 -0
  46. package/cjs/Navbar/index.d.ts +1 -0
  47. package/cjs/Navbar/index.js +4 -3
  48. package/cjs/Overlay/Modal.js +43 -45
  49. package/cjs/Overlay/Overlay.d.ts +1 -1
  50. package/cjs/Overlay/Overlay.js +7 -1
  51. package/cjs/Overlay/OverlayContext.d.ts +6 -0
  52. package/cjs/Overlay/OverlayContext.js +14 -0
  53. package/cjs/Overlay/OverlayTrigger.js +7 -1
  54. package/cjs/Overlay/Position.d.ts +1 -1
  55. package/cjs/PanelGroup/PanelGroup.js +8 -5
  56. package/cjs/Picker/propTypes.d.ts +3 -5
  57. package/cjs/Picker/propTypes.js +4 -3
  58. package/cjs/Picker/utils.d.ts +3 -3
  59. package/cjs/SelectPicker/SelectPicker.d.ts +16 -6
  60. package/cjs/SelectPicker/SelectPicker.js +4 -4
  61. package/cjs/SelectPicker/index.d.ts +1 -1
  62. package/cjs/SelectPicker/test/SelectPicker.test.d.ts +1 -0
  63. package/cjs/SelectPicker/test/SelectPicker.test.js +70 -0
  64. package/cjs/Stack/Stack.d.ts +26 -0
  65. package/cjs/Stack/Stack.js +86 -0
  66. package/cjs/Stack/index.d.ts +3 -0
  67. package/cjs/Stack/index.js +11 -0
  68. package/cjs/Steps/StepItem.js +2 -2
  69. package/cjs/Toggle/Toggle.js +4 -3
  70. package/cjs/Tree/Tree.d.ts +0 -1
  71. package/cjs/Tree/Tree.js +6 -5
  72. package/cjs/Tree/TreeContext.d.ts +0 -1
  73. package/cjs/TreePicker/TreeNode.js +1 -14
  74. package/cjs/TreePicker/TreePicker.js +3 -29
  75. package/cjs/index.d.ts +4 -2
  76. package/cjs/index.js +9 -5
  77. package/cjs/utils/index.d.ts +1 -0
  78. package/cjs/utils/index.js +7 -2
  79. package/cjs/utils/treeUtils.d.ts +5 -5
  80. package/cjs/utils/useMount.d.ts +2 -0
  81. package/cjs/utils/useMount.js +19 -0
  82. package/cjs/utils/usePortal.d.ts +1 -1
  83. package/dist/rsuite-rtl.css +351 -188
  84. package/dist/rsuite-rtl.min.css +1 -1
  85. package/dist/rsuite-rtl.min.css.map +1 -1
  86. package/dist/rsuite.css +351 -188
  87. package/dist/rsuite.js +94 -39
  88. package/dist/rsuite.js.map +1 -1
  89. package/dist/rsuite.min.css +1 -1
  90. package/dist/rsuite.min.css.map +1 -1
  91. package/dist/rsuite.min.js +1 -1
  92. package/dist/rsuite.min.js.map +1 -1
  93. package/esm/@types/common.d.ts +4 -4
  94. package/esm/Affix/Affix.js +4 -2
  95. package/esm/AvatarGroup/AvatarGroup.js +7 -4
  96. package/esm/ButtonGroup/ButtonGroup.js +7 -4
  97. package/esm/Calendar/Calendar.js +22 -21
  98. package/esm/Calendar/Header.js +1 -3
  99. package/esm/Calendar/Table.js +1 -1
  100. package/esm/Calendar/TableRow.js +13 -8
  101. package/esm/Calendar/View.js +10 -6
  102. package/esm/Cascader/utils.d.ts +7 -7
  103. package/esm/CheckPicker/CheckPicker.d.ts +12 -4
  104. package/esm/CheckPicker/test/CheckPicker.test.d.ts +1 -0
  105. package/esm/CheckPicker/test/CheckPicker.test.js +71 -0
  106. package/esm/CheckTree/index.js +7 -6
  107. package/esm/Container/Container.js +7 -4
  108. package/esm/DatePicker/DatePicker.js +4 -2
  109. package/esm/DateRangePicker/DateRangePicker.js +9 -5
  110. package/esm/Disclosure/Disclosure.d.ts +8 -5
  111. package/esm/Disclosure/Disclosure.js +52 -13
  112. package/esm/Disclosure/DisclosureButton.d.ts +2 -2
  113. package/esm/Disclosure/DisclosureContext.d.ts +6 -1
  114. package/esm/Dropdown/Dropdown.js +1 -1
  115. package/esm/Dropdown/DropdownItem.js +9 -9
  116. package/esm/Dropdown/DropdownMenu.js +82 -24
  117. package/esm/Dropdown/DropdownToggle.js +7 -1
  118. package/esm/FormGroup/FormGroup.js +7 -4
  119. package/esm/Menu/MenuItem.js +1 -1
  120. package/esm/Modal/Modal.js +36 -24
  121. package/esm/MultiCascader/utils.d.ts +3 -3
  122. package/esm/Nav/Nav.js +11 -13
  123. package/esm/Nav/NavContext.d.ts +6 -0
  124. package/esm/Nav/NavContext.js +1 -0
  125. package/esm/Navbar/index.d.ts +1 -0
  126. package/esm/Navbar/index.js +1 -0
  127. package/esm/Overlay/Modal.js +44 -46
  128. package/esm/Overlay/Overlay.d.ts +1 -1
  129. package/esm/Overlay/Overlay.js +7 -2
  130. package/esm/Overlay/OverlayContext.d.ts +6 -0
  131. package/esm/Overlay/OverlayContext.js +4 -0
  132. package/esm/Overlay/OverlayTrigger.js +7 -2
  133. package/esm/Overlay/Position.d.ts +1 -1
  134. package/esm/PanelGroup/PanelGroup.js +9 -6
  135. package/esm/Picker/propTypes.d.ts +3 -5
  136. package/esm/Picker/propTypes.js +4 -3
  137. package/esm/Picker/utils.d.ts +3 -3
  138. package/esm/SelectPicker/SelectPicker.d.ts +16 -6
  139. package/esm/SelectPicker/SelectPicker.js +4 -4
  140. package/esm/SelectPicker/index.d.ts +1 -1
  141. package/esm/SelectPicker/test/SelectPicker.test.d.ts +1 -0
  142. package/esm/SelectPicker/test/SelectPicker.test.js +59 -0
  143. package/esm/Stack/Stack.d.ts +26 -0
  144. package/esm/Stack/Stack.js +71 -0
  145. package/esm/Stack/index.d.ts +3 -0
  146. package/esm/Stack/index.js +2 -0
  147. package/esm/Steps/StepItem.js +2 -2
  148. package/esm/Toggle/Toggle.js +4 -3
  149. package/esm/Tree/Tree.d.ts +0 -1
  150. package/esm/Tree/Tree.js +7 -6
  151. package/esm/Tree/TreeContext.d.ts +0 -1
  152. package/esm/TreePicker/TreeNode.js +2 -14
  153. package/esm/TreePicker/TreePicker.js +3 -29
  154. package/esm/index.d.ts +4 -2
  155. package/esm/index.js +2 -1
  156. package/esm/utils/index.d.ts +1 -0
  157. package/esm/utils/index.js +2 -1
  158. package/esm/utils/treeUtils.d.ts +5 -5
  159. package/esm/utils/useMount.d.ts +2 -0
  160. package/esm/utils/useMount.js +13 -0
  161. package/esm/utils/usePortal.d.ts +1 -1
  162. package/package.json +2 -2
  163. package/styles/color-modes/dark.less +1 -0
  164. package/styles/color-modes/high-contrast.less +1 -0
  165. package/styles/color-modes/light.less +1 -0
  166. package/styles/index.less +1 -0
  167. package/styles/mixins/utilities.less +17 -5
@@ -14,7 +14,6 @@
14
14
  text-align: center;
15
15
  vertical-align: middle;
16
16
  cursor: pointer;
17
- outline: 0 !important;
18
17
  white-space: nowrap;
19
18
  transition: @btn-transition;
20
19
  // Reset border style in all browser
@@ -31,10 +30,7 @@
31
30
 
32
31
  .rs-btn-md();
33
32
 
34
- &:focus {
35
- outline: 0;
36
- box-shadow: var(--rs-state-focus-shadow);
37
- }
33
+ .with-focus-ring();
38
34
 
39
35
  .button-activated({
40
36
  color: var(--rs-btn-default-hover-text);
package/CHANGELOG.md CHANGED
@@ -1,3 +1,56 @@
1
+ ## [5.4.3](https://github.com/rsuite/rsuite/compare/v5.4.2...v5.4.3) (2021-12-30)
2
+
3
+ ### Bug Fixes
4
+
5
+ - **Drawer:** fix Drawer cannot be closed when backdrop is clicked ([#2259](https://github.com/rsuite/rsuite/issues/2259)) ([a49ee03](https://github.com/rsuite/rsuite/commit/a49ee03db33c11db30597221ca61ce6daa088c4b))
6
+ - **Picker:** add ref to PickerComponentProps ([#2261](https://github.com/rsuite/rsuite/issues/2261)) ([6e3e6c5](https://github.com/rsuite/rsuite/commit/6e3e6c57932af142dc1a74da6b7fffb57ae628ca))
7
+
8
+ ## [5.4.2](https://github.com/rsuite/rsuite/compare/v5.4.1...v5.4.2) (2021-12-24)
9
+
10
+ ### Bug Fixes
11
+
12
+ - **Affix:** fix unupdated position after window size change ([#2256](https://github.com/rsuite/rsuite/issues/2256)) ([61c7b27](https://github.com/rsuite/rsuite/commit/61c7b279f136ae44b9470046344cd6e163d02589))
13
+ - **Modal:** improve the mouse scrolling experience on Modal ([#2254](https://github.com/rsuite/rsuite/issues/2254)) ([137d57e](https://github.com/rsuite/rsuite/commit/137d57ef1e79ca0055b3af8d6cd5cff2a9c4ef55))
14
+ - **Navbar:** fix dropdown submenu throwing error ([#2250](https://github.com/rsuite/rsuite/issues/2250)) ([875130d](https://github.com/rsuite/rsuite/commit/875130d342f58e4078babe428913640e0b2faa04))
15
+
16
+ ## [5.4.1](https://github.com/rsuite/rsuite/compare/v5.4.0...v5.4.1) (2021-12-23)
17
+
18
+ ### Bug Fixes
19
+
20
+ - **Dropdown:** reduce padding in noCaret variant ([#2236](https://github.com/rsuite/rsuite/issues/2236)) ([682f883](https://github.com/rsuite/rsuite/commit/682f8830601d784452c10729a369ebe91057eddb))
21
+ - **Sidenav:** fix missing highlight on selected dropdown items ([#2216](https://github.com/rsuite/rsuite/issues/2216)) ([8f79d4a](https://github.com/rsuite/rsuite/commit/8f79d4a8aafb123f75f420a3adf3f680386aae68))
22
+ - **Sidenav:** prevent text wrapping when collapsing ([#2245](https://github.com/rsuite/rsuite/issues/2245)) ([4094233](https://github.com/rsuite/rsuite/commit/409423360a5226c8a0e11bbeecea0a4316c5c8e0))
23
+ - **Toggle:** dismiss uncontrolled input warning ([#2243](https://github.com/rsuite/rsuite/issues/2243)) ([c4737d5](https://github.com/rsuite/rsuite/commit/c4737d5af2fabf88312c7ee2b84d4e9139e743f1))
24
+
25
+ ### Performance Improvements
26
+
27
+ - **Context:** use `useMemo` to memozie the values returned to the Context Provider ([#2244](https://github.com/rsuite/rsuite/issues/2244)) ([d25a719](https://github.com/rsuite/rsuite/commit/d25a71920d38bceefcf100248173121d54be8313))
28
+ - **DatePicker:** improve date grid a11y ([#2220](https://github.com/rsuite/rsuite/issues/2220)) ([655178e](https://github.com/rsuite/rsuite/commit/655178e05afe5e4b4619bda3a222dc753766e13b))
29
+
30
+ # [5.4.0](https://github.com/rsuite/rsuite/compare/v5.3.0...v5.4.0) (2021-12-17)
31
+
32
+ ### Bug Fixes
33
+
34
+ - **DatePicker,DateRangePicker:** suppress depreated caretComponent warning ([#2233](https://github.com/rsuite/rsuite/issues/2233)) ([3a79d48](https://github.com/rsuite/rsuite/commit/3a79d486268ff31ad6a620dfc17165c3be259219))
35
+ - **DateRangePicker:** fix selecting ending date not working ([#2217](https://github.com/rsuite/rsuite/issues/2217)) ([2136aa3](https://github.com/rsuite/rsuite/commit/2136aa3327f914a910fb5805b2d11a036e0f6601))
36
+ - **Modal:** fix Modal focus being reset on re-rendering ([#2208](https://github.com/rsuite/rsuite/issues/2208)) ([a931b06](https://github.com/rsuite/rsuite/commit/a931b06942e7fc011ab77e70b105f5790a33e55b))
37
+ - **Nav:** fix incorrect Dropdown button background ([#2227](https://github.com/rsuite/rsuite/issues/2227)) ([421de83](https://github.com/rsuite/rsuite/commit/421de838ed13694254cc6a178d0369e12b666202))
38
+ - **Navbar:** fix icon style in Navbar items ([#2229](https://github.com/rsuite/rsuite/issues/2229)) ([560df61](https://github.com/rsuite/rsuite/commit/560df61a44c0338b153b2c09a50e946c207c684a))
39
+ - **Overlay:** overlay is rendered inside Modal by default ([#2230](https://github.com/rsuite/rsuite/issues/2230)) ([4fac628](https://github.com/rsuite/rsuite/commit/4fac628e23e41db097ec63c2ac348a7345f3ee31))
40
+ - **Radio:** fix unclickable without children ([#2190](https://github.com/rsuite/rsuite/issues/2190)) ([cef5946](https://github.com/rsuite/rsuite/commit/cef59463e281d6aa6b4b9576204d16eed58087c8))
41
+ - **SelectPicker:** fix onChange argument type ([#2193](https://github.com/rsuite/rsuite/issues/2193)) ([db0efa9](https://github.com/rsuite/rsuite/commit/db0efa94ad33de5d02bfd81e926cf622c40ecce7))
42
+ - **Steps:** step item not rendering number ([#2202](https://github.com/rsuite/rsuite/issues/2202)) ([413880b](https://github.com/rsuite/rsuite/commit/413880be99972d8a58d5f0a0c9b6b08017ad33a2))
43
+ - **Toggle:** fix Toggle is still clickable in loading state ([#2219](https://github.com/rsuite/rsuite/issues/2219)) ([e5661fd](https://github.com/rsuite/rsuite/commit/e5661fdb4ef659527ca97c2ea2231b4025e904d3))
44
+ - **Tree:** remove dragNode Element when drag node ([#2185](https://github.com/rsuite/rsuite/issues/2185)) ([#2237](https://github.com/rsuite/rsuite/issues/2237)) ([f6e959f](https://github.com/rsuite/rsuite/commit/f6e959f4aa24f0fa87b5fa1bbc6e1aa775fecd2b))
45
+
46
+ ### Features
47
+
48
+ - **Stack:** add Stack support to the layout ([#2199](https://github.com/rsuite/rsuite/issues/2199)) ([1ac132e](https://github.com/rsuite/rsuite/commit/1ac132e0fc98a6739dee07d9e6281202530d80fa))
49
+
50
+ ### Performance Improvements
51
+
52
+ - **CheckPicker:** infer value and onChange types from data prop ([#2228](https://github.com/rsuite/rsuite/issues/2228)) ([eb4f9a8](https://github.com/rsuite/rsuite/commit/eb4f9a8f4c84cf30b3521532d95f4dc2490d0699))
53
+
1
54
  # [5.3.0](https://github.com/rsuite/rsuite/compare/5.2.4...5.3.0) (2021-12-10)
2
55
 
3
56
  ### Bug Fixes
@@ -6,6 +6,9 @@
6
6
  position: fixed;
7
7
  z-index: @zindex-drawer;
8
8
  top: 0;
9
+ left: 0;
10
+ width: 100%;
11
+ height: 100%;
9
12
  }
10
13
 
11
14
  // Container that the drawer scrolls within
@@ -1,6 +1,7 @@
1
1
  @import '../../styles/common';
2
2
  @import '../../styles/mixins/menu';
3
3
  @import 'mixin';
4
+ @import '../../Button/styles/index.less';
4
5
 
5
6
  //
6
7
  // Dropdown menus
@@ -80,10 +81,10 @@
80
81
  // Force set style even if has `.btn`.
81
82
  .dropdown-toggle();
82
83
  }
83
- }
84
84
 
85
- .rs-dropdown-toggle.rs-dropdown-no-caret {
86
- padding-right: @padding-x;
85
+ &.rs-dropdown-toggle-no-caret {
86
+ padding-right: @padding-x;
87
+ }
87
88
  }
88
89
 
89
90
  // The dropdown menu (ul)
@@ -107,6 +108,7 @@
107
108
  z-index: @zindex-dropdown + 1;
108
109
  float: left;
109
110
  box-shadow: var(--rs-dropdown-shadow);
111
+ outline: none;
110
112
 
111
113
  .high-contrast-mode({
112
114
  border: 1px solid var(--rs-border-primary);
@@ -39,8 +39,6 @@
39
39
  padding-right: @dropdown-toggle-padding-right;
40
40
  // Fixed: Content is not centered when customizing renderTitle.
41
41
  display: inline-block;
42
- // Rest `:focus` blue border.
43
- outline: none;
44
42
  cursor: pointer;
45
43
  }
46
44
 
@@ -5,6 +5,27 @@
5
5
  // Modals
6
6
  // --------------------------------------------------
7
7
 
8
+ // Modal background
9
+ .rs-modal-backdrop {
10
+ position: fixed;
11
+ top: 0;
12
+ left: 0;
13
+ width: 100vw;
14
+ height: 100vh;
15
+ z-index: @zindex-modal - 1;
16
+ background-color: var(--rs-bg-backdrop);
17
+
18
+ // Fade for backdrop
19
+ &.rs-anim-fade {
20
+ opacity: 0;
21
+ transition: opacity 0.3s ease-in;
22
+ }
23
+
24
+ &.rs-anim-in {
25
+ opacity: 1;
26
+ }
27
+ }
28
+
8
29
  // Kill the scroll on the body
9
30
  .rs-modal-open {
10
31
  overflow: hidden;
@@ -15,9 +36,9 @@
15
36
  overflow: auto;
16
37
  z-index: @zindex-modal;
17
38
  top: 0;
18
- bottom: 0;
19
- right: 0;
20
39
  left: 0;
40
+ width: 100%;
41
+ height: 100%;
21
42
  }
22
43
 
23
44
  // Container that the modal scrolls within
@@ -71,26 +92,6 @@
71
92
  padding: @modal-content-padding;
72
93
  }
73
94
 
74
- // Modal background
75
- .rs-modal-backdrop {
76
- position: fixed;
77
- top: 0;
78
- right: 0;
79
- bottom: 0;
80
- left: 0;
81
- background-color: var(--rs-bg-backdrop);
82
-
83
- // Fade for backdrop
84
- &.rs-anim-fade {
85
- opacity: 0;
86
- transition: opacity 0.3s ease-in;
87
- }
88
-
89
- &.rs-anim-in {
90
- opacity: 1;
91
- }
92
- }
93
-
94
95
  // Modal header
95
96
  // Top section of the modal w/ title and dismiss
96
97
  .rs-modal-header {
@@ -1,5 +1,6 @@
1
1
  @import '../../styles/common';
2
2
  @import '../../Ripple/styles/mixins';
3
+ @import '../../Dropdown/styles/index';
3
4
 
4
5
  //
5
6
  // Navs
@@ -1,4 +1,5 @@
1
1
  @import '../../styles/common';
2
+ @import '../../Dropdown/styles/index';
2
3
 
3
4
  // NavBar
4
5
  // --------------------------------------------------
@@ -59,14 +60,19 @@
59
60
  background-color: transparent;
60
61
  position: relative;
61
62
  overflow: hidden;
63
+ display: flex;
64
+ align-items: center;
65
+
66
+ > .rs-icon {
67
+ font-size: 16px;
68
+ margin-right: 5px;
69
+ }
62
70
  }
63
71
 
64
72
  // Focus style
65
73
  .rs-navbar-brand,
66
74
  .rs-navbar-item,
67
75
  .rs-navbar-nav > .rs-dropdown-item {
68
- outline: 0;
69
-
70
76
  &,
71
77
  &:hover,
72
78
  &:focus,
@@ -75,7 +81,9 @@
75
81
  }
76
82
 
77
83
  &:focus-visible {
78
- .focus-ring();
84
+ // Navbar is usually placed by the top edge of the page
85
+ // thus use an inset focus ring to prevent overflow clipping
86
+ .focus-ring(inset);
79
87
 
80
88
  .high-contrast-mode({
81
89
  .focus-ring(slim-inset);
@@ -90,10 +98,21 @@
90
98
  margin: 0 !important;
91
99
  }
92
100
 
93
- // DropDown
101
+ .rs-navbar-item.rs-navbar-item-active {
102
+ .high-contrast-mode({
103
+ text-decoration: underline;
104
+ });
105
+ }
106
+
107
+ // Dropdown
94
108
  .rs-navbar-nav > .rs-dropdown .rs-dropdown-toggle {
95
109
  &:extend(.rs-navbar-item);
96
110
 
111
+ &:focus,
112
+ &:focus-visible {
113
+ &:extend(.rs-navbar-item:focus-visible);
114
+ }
115
+
97
116
  padding-right: @navbar-item-padding-x+ @dropdown-caret-width+ @dropdown-caret-padding;
98
117
 
99
118
  .high-contrast-mode({
@@ -110,10 +129,10 @@
110
129
  }
111
130
  }
112
131
 
113
- .rs-navbar-item.rs-navbar-item-active {
114
- .high-contrast-mode({
115
- text-decoration: underline;
116
- });
132
+ .rs-navbar .rs-dropdown-item {
133
+ &:hover {
134
+ .menuitem-active();
135
+ }
117
136
  }
118
137
 
119
138
  // Default Navbar
@@ -30,6 +30,12 @@
30
30
 
31
31
  [type='radio'] {
32
32
  opacity: 0;
33
+ // bring to foreground
34
+ position: absolute;
35
+ z-index: 1;
36
+ width: @radio-width-height;
37
+ height: @radio-width-height;
38
+ cursor: pointer;
33
39
  }
34
40
 
35
41
  &::before,
@@ -110,6 +110,12 @@
110
110
  width: 100%;
111
111
  white-space: normal;
112
112
 
113
+ // Sidenav is usually placed by the left/right edge of the page
114
+ // thus use an inset focus ring to prevent overflow clipping
115
+ &:focus {
116
+ .focus-ring(inset);
117
+ }
118
+
113
119
  > .rs-icon:not(.rs-dropdown-toggle-caret) {
114
120
  font-size: @sidenav-level1-item-font-size;
115
121
  margin-right: @sidenav-icon-spacing;
@@ -378,6 +384,7 @@
378
384
  .rs-dropdown .rs-dropdown-toggle,
379
385
  .rs-dropdown-item,
380
386
  .rs-dropdown-item-submenu > .rs-dropdown-menu-toggle {
387
+ white-space: nowrap;
381
388
  text-overflow: clip;
382
389
  }
383
390
  }
@@ -436,7 +443,6 @@
436
443
 
437
444
  .rs-sidenav-default.rs-sidenav-collapse-in,
438
445
  .rs-sidenav-default.rs-sidenav-collapsing {
439
- .rs-dropdown-item:not(.rs-dropdown-item-submenu),
440
446
  .rs-dropdown-item > .rs-dropdown-menu-toggle,
441
447
  .rs-dropdown-item > .rs-dropdown-item-toggle {
442
448
  color: var(--rs-sidenav-default-text);
@@ -543,6 +549,7 @@
543
549
 
544
550
  // Active
545
551
  .rs-sidenav-item.rs-sidenav-item-active,
552
+ .rs-dropdown-item.rs-dropdown-item-active,
546
553
  .rs-dropdown.rs-dropdown-selected-within .rs-dropdown-toggle {
547
554
  color: var(--rs-sidenav-subtle-selected-text);
548
555
  }
@@ -559,7 +566,6 @@
559
566
 
560
567
  .rs-sidenav-subtle.rs-sidenav-collapse-in,
561
568
  .rs-sidenav-subtle.rs-sidenav-collapsing {
562
- .rs-dropdown-item:not(.rs-dropdown-item-submenu),
563
569
  .rs-dropdown-item > .rs-dropdown-menu-toggle,
564
570
  .rs-dropdown-item > .rs-dropdown-item-toggle {
565
571
  color: var(--rs-sidenav-subtle-text);
@@ -0,0 +1,7 @@
1
+ {
2
+ "name": "rsuite/Stack",
3
+ "private": true,
4
+ "main": "../cjs/Stack/index.js",
5
+ "module": "../esm/Stack/index.js",
6
+ "types": "../esm/Stack/index.d.ts"
7
+ }
@@ -0,0 +1,5 @@
1
+ @import '../../styles/common';
2
+
3
+ .rs-stack {
4
+ display: flex;
5
+ }
@@ -13,20 +13,6 @@
13
13
  overflow-y: auto;
14
14
  flex: 1 1 auto;
15
15
 
16
- &-drag-node-mover {
17
- position: absolute;
18
- top: -1000px;
19
- color: var(--rs-text-primary);
20
- background-color: var(--rs-bg-overlay);
21
- display: inline-block;
22
- margin: 0;
23
- padding: @picker-tree-node-padding-vertical @picker-tree-node-padding-horizontal;
24
- border-radius: 6px;
25
- box-shadow: 0 1px 8px rgba(0, 0, 0, 0.12);
26
- z-index: 1060;
27
- cursor: move;
28
- }
29
-
30
16
  &.rs-tree-virtualized {
31
17
  overflow: hidden;
32
18
 
@@ -134,12 +134,12 @@ export interface SVGIcon {
134
134
  viewBox: string;
135
135
  id: string;
136
136
  }
137
- export interface ItemDataType extends Record<string, any> {
137
+ export interface ItemDataType<T = number | string> extends Record<string, any> {
138
138
  label?: string | React.ReactNode;
139
- value?: string | number;
139
+ value?: T;
140
140
  groupBy?: string;
141
- parent?: ItemDataType;
142
- children?: ItemDataType[];
141
+ parent?: ItemDataType<T>;
142
+ children?: ItemDataType<T>[];
143
143
  loading?: boolean;
144
144
  }
145
145
  export interface Offset {
@@ -35,7 +35,9 @@ function useOffset(mountRef) {
35
35
  return mountRef.current;
36
36
  }, updateOffset); // Initialize after the first render
37
37
 
38
- (0, _react.useEffect)(updateOffset, [updateOffset]);
38
+ (0, _utils.useMount)(updateOffset); // Update after window size changes
39
+
40
+ (0, _utils.useEventListener)(window, 'resize', updateOffset, false);
39
41
  return offset;
40
42
  }
41
43
  /**
@@ -1,5 +1,7 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
4
+
3
5
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
6
 
5
7
  exports.__esModule = true;
@@ -9,7 +11,7 @@ var _extends3 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
9
11
 
10
12
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
11
13
 
12
- var _react = _interopRequireDefault(require("react"));
14
+ var _react = _interopRequireWildcard(require("react"));
13
15
 
14
16
  var _propTypes = _interopRequireDefault(require("prop-types"));
15
17
 
@@ -41,13 +43,16 @@ var AvatarGroup = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
41
43
  var classes = merge(className, withClassPrefix({
42
44
  stack: stack
43
45
  }));
46
+ var contextValue = (0, _react.useMemo)(function () {
47
+ return {
48
+ size: size
49
+ };
50
+ }, [size]);
44
51
  return /*#__PURE__*/_react.default.createElement(Component, (0, _extends3.default)({}, rest, {
45
52
  ref: ref,
46
53
  className: classes
47
54
  }), /*#__PURE__*/_react.default.createElement(AvatarGroupContext.Provider, {
48
- value: {
49
- size: size
50
- }
55
+ value: contextValue
51
56
  }, spacing ? _react.default.Children.map(children, function (child) {
52
57
  var _extends2;
53
58
 
@@ -1,5 +1,7 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
4
+
3
5
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
6
 
5
7
  exports.__esModule = true;
@@ -9,7 +11,7 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
9
11
 
10
12
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
11
13
 
12
- var _react = _interopRequireDefault(require("react"));
14
+ var _react = _interopRequireWildcard(require("react"));
13
15
 
14
16
  var _propTypes = _interopRequireDefault(require("prop-types"));
15
17
 
@@ -41,10 +43,13 @@ var ButtonGroup = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
41
43
  vertical: vertical,
42
44
  justified: justified
43
45
  }));
44
- return /*#__PURE__*/_react.default.createElement(_ButtonGroupContext.default.Provider, {
45
- value: {
46
+ var contextValue = (0, _react.useMemo)(function () {
47
+ return {
46
48
  size: size
47
- }
49
+ };
50
+ }, [size]);
51
+ return /*#__PURE__*/_react.default.createElement(_ButtonGroupContext.default.Provider, {
52
+ value: contextValue
48
53
  }, /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({}, rest, {
49
54
  role: role,
50
55
  ref: ref,
@@ -77,11 +77,11 @@ var Calendar = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
77
77
  withClassPrefix = _useClassNames.withClassPrefix,
78
78
  merge = _useClassNames.merge;
79
79
 
80
- var isDisabledDate = function isDisabledDate(date) {
80
+ var isDisabledDate = (0, _react.useCallback)(function (date) {
81
81
  var _disabledDate;
82
82
 
83
83
  return (_disabledDate = disabledDate === null || disabledDate === void 0 ? void 0 : disabledDate(date)) !== null && _disabledDate !== void 0 ? _disabledDate : false;
84
- };
84
+ }, [disabledDate]);
85
85
 
86
86
  var isTimeDisabled = function isTimeDisabled(date) {
87
87
  return _utils.DateUtils.disabledTime(props, date);
@@ -117,27 +117,28 @@ var Calendar = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
117
117
  'show-week-numbers': showWeekNumbers
118
118
  }));
119
119
  var timeDropdownProps = (0, _pick.default)(rest, _utils.DateUtils.calendarOnlyProps);
120
- var contextValue = {
121
- date: calendarDate,
122
- dateRange: dateRange,
123
- disabledDate: isDisabledDate,
124
- format: format,
125
- hoverRangeValue: hoverRangeValue,
126
- inSameMonth: inSameMonth !== null && inSameMonth !== void 0 ? inSameMonth : inSameThisMonthDate,
127
- isoWeek: isoWeek,
128
- locale: locale,
129
- onChangePageDate: onChangePageDate,
130
- onChangePageTime: onChangePageTime,
131
- onMouseMove: onMouseMove,
132
- onSelect: onSelect,
133
- renderCell: renderCell,
134
- showWeekNumbers: showWeekNumbers,
135
- inline: inline
136
- };
120
+ var contextValue = (0, _react.useMemo)(function () {
121
+ return {
122
+ date: calendarDate,
123
+ dateRange: dateRange,
124
+ disabledDate: isDisabledDate,
125
+ format: format,
126
+ hoverRangeValue: hoverRangeValue,
127
+ inSameMonth: inSameMonth !== null && inSameMonth !== void 0 ? inSameMonth : inSameThisMonthDate,
128
+ isoWeek: isoWeek,
129
+ locale: locale,
130
+ onChangePageDate: onChangePageDate,
131
+ onChangePageTime: onChangePageTime,
132
+ onMouseMove: onMouseMove,
133
+ onSelect: onSelect,
134
+ renderCell: renderCell,
135
+ showWeekNumbers: showWeekNumbers,
136
+ inline: inline
137
+ };
138
+ }, [calendarDate, dateRange, format, hoverRangeValue, inSameMonth, inSameThisMonthDate, inline, isDisabledDate, isoWeek, locale, onChangePageDate, onChangePageTime, onMouseMove, onSelect, renderCell, showWeekNumbers]);
137
139
  return /*#__PURE__*/_react.default.createElement(_CalendarContext.CalendarProvider, {
138
140
  value: contextValue
139
141
  }, /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({}, _utils.DateUtils.omitHideDisabledProps(rest), {
140
- role: "table",
141
142
  className: calendarClasses,
142
143
  ref: ref
143
144
  }), /*#__PURE__*/_react.default.createElement(_Header.default, {
@@ -139,9 +139,7 @@ var Header = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
139
139
  'has-month': hasMonth,
140
140
  'has-time': showTime
141
141
  }));
142
- return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({
143
- role: "row"
144
- }, rest, {
142
+ return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({}, rest, {
145
143
  ref: ref,
146
144
  className: classes
147
145
  }), hasMonth && monthToolbar, showTime && /*#__PURE__*/_react.default.createElement("div", {
@@ -35,7 +35,7 @@ var Table = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
35
35
 
36
36
  var classes = merge(className, withClassPrefix());
37
37
  return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({
38
- role: "table"
38
+ role: "grid"
39
39
  }, rest, {
40
40
  ref: ref,
41
41
  className: classes
@@ -36,16 +36,19 @@ var TableRow = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
36
36
  selected = _useCalendarContext$d === void 0 ? new Date() : _useCalendarContext$d,
37
37
  dateRange = _useCalendarContext.dateRange,
38
38
  disabledDate = _useCalendarContext.disabledDate,
39
- formatDate = _useCalendarContext.formatDate,
40
39
  hoverRangeValue = _useCalendarContext.hoverRangeValue,
41
40
  inSameMonth = _useCalendarContext.inSameMonth,
42
41
  isoWeek = _useCalendarContext.isoWeek,
43
42
  onMouseMove = _useCalendarContext.onMouseMove,
44
43
  onSelect = _useCalendarContext.onSelect,
45
44
  renderCell = _useCalendarContext.renderCell,
46
- locale = _useCalendarContext.locale,
45
+ overrideLocale = _useCalendarContext.locale,
47
46
  showWeekNumbers = _useCalendarContext.showWeekNumbers;
48
47
 
48
+ var _useCustom = (0, _utils.useCustom)('Calendar', overrideLocale),
49
+ locale = _useCustom.locale,
50
+ formatDate = _useCustom.formatDate;
51
+
49
52
  var _useClassNames = (0, _utils.useClassNames)(classPrefix),
50
53
  prefix = _useClassNames.prefix,
51
54
  merge = _useClassNames.merge;
@@ -59,7 +62,7 @@ var TableRow = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
59
62
  }, [onSelect]);
60
63
 
61
64
  var renderDays = function renderDays() {
62
- var formatStr = (locale === null || locale === void 0 ? void 0 : locale.formattedDayPattern) || 'yyyy-MM-dd';
65
+ var formatStr = locale.formattedDayPattern;
63
66
  var days = [];
64
67
 
65
68
  var _ref = dateRange || [],
@@ -86,7 +89,7 @@ var TableRow = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
86
89
 
87
90
  var isEndSelected = !unSameMonth && selectedEndDate && _utils.DateUtils.isSameDay(thisDate, selectedEndDate);
88
91
 
89
- var isSelected = isStartSelected || isEndSelected;
92
+ var isSelected = isRangeSelectionMode ? isStartSelected || isEndSelected : _utils.DateUtils.isSameDay(thisDate, selected);
90
93
  var inRange = false; // for Selected
91
94
 
92
95
  if (selectedStartDate && selectedEndDate) {
@@ -113,7 +116,7 @@ var TableRow = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
113
116
  var _classes = prefix('cell', {
114
117
  'cell-un-same-month': unSameMonth,
115
118
  'cell-is-today': isToday,
116
- 'cell-selected': isRangeSelectionMode ? isSelected : _utils.DateUtils.isSameDay(thisDate, selected),
119
+ 'cell-selected': isSelected,
117
120
  'cell-selected-start': isStartSelected,
118
121
  'cell-selected-end': isEndSelected,
119
122
  'cell-in-range': !unSameMonth && inRange,
@@ -122,8 +125,10 @@ var TableRow = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
122
125
 
123
126
  var title = formatDate ? formatDate(thisDate, formatStr) : _utils.DateUtils.format(thisDate, formatStr);
124
127
  days.push( /*#__PURE__*/_react.default.createElement("div", {
125
- role: "cell",
128
+ role: "gridcell",
126
129
  key: title,
130
+ "aria-label": title,
131
+ "aria-selected": isSelected || undefined,
127
132
  className: _classes
128
133
  }, /*#__PURE__*/_react.default.createElement("div", {
129
134
  role: "button",
@@ -147,7 +152,7 @@ var TableRow = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
147
152
  className: classes
148
153
  }), showWeekNumbers && /*#__PURE__*/_react.default.createElement("div", {
149
154
  className: prefix('cell-week-number'),
150
- role: "cell"
155
+ role: "rowheader"
151
156
  }, _utils.DateUtils.format(weekendDate, isoWeek ? 'I' : 'w')), renderDays());
152
157
  });
153
158
 
@@ -30,7 +30,12 @@ var View = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
30
30
  var _useCalendarContext = (0, _CalendarContext.useCalendarContext)(),
31
31
  _useCalendarContext$d = _useCalendarContext.date,
32
32
  date = _useCalendarContext$d === void 0 ? new Date() : _useCalendarContext$d,
33
- isoWeek = _useCalendarContext.isoWeek;
33
+ isoWeek = _useCalendarContext.isoWeek,
34
+ overrideLocale = _useCalendarContext.locale;
35
+
36
+ var _useCustom = (0, _utils.useCustom)('Calendar', overrideLocale),
37
+ locale = _useCustom.locale,
38
+ formatDate = _useCustom.formatDate;
34
39
 
35
40
  var thisMonthDate = _utils.DateUtils.setDate(date, 1);
36
41
 
@@ -39,13 +44,12 @@ var View = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
39
44
  withClassPrefix = _useClassNames.withClassPrefix;
40
45
 
41
46
  var classes = merge(className, withClassPrefix());
42
- return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({
43
- role: "row"
44
- }, rest, {
47
+ return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({}, rest, {
45
48
  ref: ref,
46
49
  className: classes
47
50
  }), /*#__PURE__*/_react.default.createElement(_Table.default, {
48
- rows: _utils.DateUtils.getMonthView(thisMonthDate, isoWeek)
51
+ rows: _utils.DateUtils.getMonthView(thisMonthDate, isoWeek),
52
+ "aria-label": formatDate(thisMonthDate, locale.formattedMonthPattern)
49
53
  }));
50
54
  });
51
55