rsuite 5.4.0 → 5.4.4

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 (139) hide show
  1. package/Button/styles/index.less +1 -5
  2. package/CHANGELOG.md +38 -0
  3. package/CheckTreePicker/styles/index.less +1 -1
  4. package/Drawer/styles/index.less +3 -0
  5. package/Dropdown/styles/index.less +6 -22
  6. package/Dropdown/styles/mixin.less +0 -2
  7. package/Modal/styles/index.less +23 -22
  8. package/Navbar/styles/index.less +20 -8
  9. package/README.md +1 -1
  10. package/Sidenav/styles/index.less +8 -2
  11. package/cjs/Affix/Affix.js +3 -1
  12. package/cjs/AvatarGroup/AvatarGroup.js +9 -4
  13. package/cjs/ButtonGroup/ButtonGroup.js +9 -4
  14. package/cjs/Calendar/Calendar.js +21 -20
  15. package/cjs/Calendar/Header.js +1 -3
  16. package/cjs/Calendar/Table.js +1 -1
  17. package/cjs/Calendar/TableRow.js +12 -7
  18. package/cjs/Calendar/View.js +9 -5
  19. package/cjs/Calendar/useCalendarDate.d.ts +1 -1
  20. package/cjs/Calendar/useCalendarDate.js +1 -1
  21. package/cjs/Carousel/Carousel.js +7 -1
  22. package/cjs/Cascader/Cascader.js +13 -2
  23. package/cjs/CheckPicker/CheckPicker.d.ts +5 -2
  24. package/cjs/CheckPicker/test/CheckPicker.test.js +8 -0
  25. package/cjs/CheckTree/index.js +9 -4
  26. package/cjs/CheckTreePicker/CheckTreePicker.js +1 -1
  27. package/cjs/CheckTreePicker/utils.js +1 -1
  28. package/cjs/Container/Container.js +6 -3
  29. package/cjs/CustomProvider/CustomProvider.d.ts +14 -14
  30. package/cjs/CustomProvider/CustomProvider.js +4 -3
  31. package/cjs/DatePicker/DatePicker.d.ts +1 -1
  32. package/cjs/DatePicker/DatePicker.js +5 -5
  33. package/cjs/DateRangePicker/DateRangePicker.js +3 -3
  34. package/cjs/Disclosure/Disclosure.d.ts +8 -5
  35. package/cjs/Disclosure/Disclosure.js +51 -11
  36. package/cjs/Disclosure/DisclosureButton.d.ts +2 -2
  37. package/cjs/Disclosure/DisclosureContext.d.ts +6 -1
  38. package/cjs/Dropdown/Dropdown.js +1 -1
  39. package/cjs/Dropdown/DropdownItem.js +9 -10
  40. package/cjs/Dropdown/DropdownMenu.js +78 -26
  41. package/cjs/FormGroup/FormGroup.js +9 -4
  42. package/cjs/Menu/MenuItem.js +1 -1
  43. package/cjs/Modal/Modal.js +34 -22
  44. package/cjs/Modal/utils.js +16 -8
  45. package/cjs/MultiCascader/MultiCascader.js +6 -3
  46. package/cjs/Nav/Nav.js +10 -15
  47. package/cjs/Nav/NavItem.js +3 -1
  48. package/cjs/Navbar/index.d.ts +1 -0
  49. package/cjs/Navbar/index.js +4 -3
  50. package/cjs/Overlay/Modal.js +18 -32
  51. package/cjs/PanelGroup/PanelGroup.js +8 -5
  52. package/cjs/Picker/DropdownMenu.js +5 -0
  53. package/cjs/Picker/PickerToggle.js +2 -4
  54. package/cjs/SelectPicker/SelectPicker.d.ts +5 -2
  55. package/cjs/SelectPicker/test/SelectPicker.test.js +8 -0
  56. package/cjs/Toggle/Toggle.js +2 -1
  57. package/cjs/Tree/Tree.js +9 -4
  58. package/cjs/Uploader/UploadFileItem.d.ts +1 -1
  59. package/cjs/Uploader/UploadFileItem.js +1 -1
  60. package/cjs/Uploader/Uploader.js +3 -0
  61. package/cjs/utils/index.d.ts +1 -0
  62. package/cjs/utils/index.js +7 -2
  63. package/cjs/utils/propTypeChecker.d.ts +2 -6
  64. package/cjs/utils/propTypeChecker.js +7 -59
  65. package/cjs/utils/useClickOutside.js +6 -2
  66. package/cjs/utils/useMount.d.ts +2 -0
  67. package/cjs/utils/useMount.js +19 -0
  68. package/dist/rsuite-rtl.css +336 -180
  69. package/dist/rsuite-rtl.min.css +1 -1
  70. package/dist/rsuite-rtl.min.css.map +1 -1
  71. package/dist/rsuite.css +336 -180
  72. package/dist/rsuite.js +67 -45
  73. package/dist/rsuite.js.map +1 -1
  74. package/dist/rsuite.min.css +1 -1
  75. package/dist/rsuite.min.css.map +1 -1
  76. package/dist/rsuite.min.js +1 -1
  77. package/dist/rsuite.min.js.map +1 -1
  78. package/esm/Affix/Affix.js +4 -2
  79. package/esm/AvatarGroup/AvatarGroup.js +7 -4
  80. package/esm/ButtonGroup/ButtonGroup.js +7 -4
  81. package/esm/Calendar/Calendar.js +22 -21
  82. package/esm/Calendar/Header.js +1 -3
  83. package/esm/Calendar/Table.js +1 -1
  84. package/esm/Calendar/TableRow.js +13 -8
  85. package/esm/Calendar/View.js +10 -6
  86. package/esm/Calendar/useCalendarDate.d.ts +1 -1
  87. package/esm/Calendar/useCalendarDate.js +1 -1
  88. package/esm/Carousel/Carousel.js +9 -3
  89. package/esm/Cascader/Cascader.js +13 -2
  90. package/esm/CheckPicker/CheckPicker.d.ts +5 -2
  91. package/esm/CheckPicker/test/CheckPicker.test.js +7 -0
  92. package/esm/CheckTree/index.js +7 -4
  93. package/esm/CheckTreePicker/CheckTreePicker.js +1 -1
  94. package/esm/CheckTreePicker/utils.js +1 -1
  95. package/esm/Container/Container.js +7 -4
  96. package/esm/CustomProvider/CustomProvider.d.ts +14 -14
  97. package/esm/CustomProvider/CustomProvider.js +2 -2
  98. package/esm/DatePicker/DatePicker.d.ts +1 -1
  99. package/esm/DatePicker/DatePicker.js +5 -4
  100. package/esm/DateRangePicker/DateRangePicker.js +3 -3
  101. package/esm/Disclosure/Disclosure.d.ts +8 -5
  102. package/esm/Disclosure/Disclosure.js +52 -13
  103. package/esm/Disclosure/DisclosureButton.d.ts +2 -2
  104. package/esm/Disclosure/DisclosureContext.d.ts +6 -1
  105. package/esm/Dropdown/Dropdown.js +1 -1
  106. package/esm/Dropdown/DropdownItem.js +9 -9
  107. package/esm/Dropdown/DropdownMenu.js +79 -27
  108. package/esm/FormGroup/FormGroup.js +7 -4
  109. package/esm/Menu/MenuItem.js +1 -1
  110. package/esm/Modal/Modal.js +36 -24
  111. package/esm/Modal/utils.js +16 -8
  112. package/esm/MultiCascader/MultiCascader.js +6 -3
  113. package/esm/Nav/Nav.js +11 -16
  114. package/esm/Nav/NavItem.js +3 -1
  115. package/esm/Navbar/index.d.ts +1 -0
  116. package/esm/Navbar/index.js +1 -0
  117. package/esm/Overlay/Modal.js +19 -33
  118. package/esm/PanelGroup/PanelGroup.js +9 -6
  119. package/esm/Picker/DropdownMenu.js +5 -0
  120. package/esm/Picker/PickerToggle.js +2 -4
  121. package/esm/SelectPicker/SelectPicker.d.ts +5 -2
  122. package/esm/SelectPicker/test/SelectPicker.test.js +7 -0
  123. package/esm/Toggle/Toggle.js +2 -1
  124. package/esm/Tree/Tree.js +7 -4
  125. package/esm/Uploader/UploadFileItem.d.ts +1 -1
  126. package/esm/Uploader/UploadFileItem.js +1 -1
  127. package/esm/Uploader/Uploader.js +4 -1
  128. package/esm/utils/index.d.ts +1 -0
  129. package/esm/utils/index.js +2 -1
  130. package/esm/utils/propTypeChecker.d.ts +2 -6
  131. package/esm/utils/propTypeChecker.js +7 -59
  132. package/esm/utils/useClickOutside.js +6 -2
  133. package/esm/utils/useMount.d.ts +2 -0
  134. package/esm/utils/useMount.js +13 -0
  135. package/package.json +2 -2
  136. package/styles/color-modes/dark.less +1 -0
  137. package/styles/color-modes/high-contrast.less +1 -0
  138. package/styles/color-modes/light.less +1 -0
  139. 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,41 @@
1
+ ## [5.4.4](https://github.com/rsuite/rsuite/compare/v5.4.3...v5.4.4) (2022-01-06)
2
+
3
+ ### Bug Fixes
4
+
5
+ - **CheckTreePicker:** fix root node style incorrect ([#2279](https://github.com/rsuite/rsuite/issues/2279)) ([c09226e](https://github.com/rsuite/rsuite/commit/c09226e141f7881b11fe5594d802974f49e789a9))
6
+ - **DatePicker:** fix clear button not working ([#2273](https://github.com/rsuite/rsuite/issues/2273)) ([649362a](https://github.com/rsuite/rsuite/commit/649362aa697a292af28c5ec666e4337a7bd449c7))
7
+ - **Dropdown:** wrong submenu placement in RTL direction ([#2280](https://github.com/rsuite/rsuite/issues/2280)) ([c3735c3](https://github.com/rsuite/rsuite/commit/c3735c335d5a8ca6e9954af1e5b77c453b5bd4d2))
8
+ - **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)
9
+
10
+ ## [5.4.3](https://github.com/rsuite/rsuite/compare/v5.4.2...v5.4.3) (2021-12-30)
11
+
12
+ ### Bug Fixes
13
+
14
+ - **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))
15
+ - **Picker:** add ref to PickerComponentProps ([#2261](https://github.com/rsuite/rsuite/issues/2261)) ([6e3e6c5](https://github.com/rsuite/rsuite/commit/6e3e6c57932af142dc1a74da6b7fffb57ae628ca))
16
+
17
+ ## [5.4.2](https://github.com/rsuite/rsuite/compare/v5.4.1...v5.4.2) (2021-12-24)
18
+
19
+ ### Bug Fixes
20
+
21
+ - **Affix:** fix unupdated position after window size change ([#2256](https://github.com/rsuite/rsuite/issues/2256)) ([61c7b27](https://github.com/rsuite/rsuite/commit/61c7b279f136ae44b9470046344cd6e163d02589))
22
+ - **Modal:** improve the mouse scrolling experience on Modal ([#2254](https://github.com/rsuite/rsuite/issues/2254)) ([137d57e](https://github.com/rsuite/rsuite/commit/137d57ef1e79ca0055b3af8d6cd5cff2a9c4ef55))
23
+ - **Navbar:** fix dropdown submenu throwing error ([#2250](https://github.com/rsuite/rsuite/issues/2250)) ([875130d](https://github.com/rsuite/rsuite/commit/875130d342f58e4078babe428913640e0b2faa04))
24
+
25
+ ## [5.4.1](https://github.com/rsuite/rsuite/compare/v5.4.0...v5.4.1) (2021-12-23)
26
+
27
+ ### Bug Fixes
28
+
29
+ - **Dropdown:** reduce padding in noCaret variant ([#2236](https://github.com/rsuite/rsuite/issues/2236)) ([682f883](https://github.com/rsuite/rsuite/commit/682f8830601d784452c10729a369ebe91057eddb))
30
+ - **Sidenav:** fix missing highlight on selected dropdown items ([#2216](https://github.com/rsuite/rsuite/issues/2216)) ([8f79d4a](https://github.com/rsuite/rsuite/commit/8f79d4a8aafb123f75f420a3adf3f680386aae68))
31
+ - **Sidenav:** prevent text wrapping when collapsing ([#2245](https://github.com/rsuite/rsuite/issues/2245)) ([4094233](https://github.com/rsuite/rsuite/commit/409423360a5226c8a0e11bbeecea0a4316c5c8e0))
32
+ - **Toggle:** dismiss uncontrolled input warning ([#2243](https://github.com/rsuite/rsuite/issues/2243)) ([c4737d5](https://github.com/rsuite/rsuite/commit/c4737d5af2fabf88312c7ee2b84d4e9139e743f1))
33
+
34
+ ### Performance Improvements
35
+
36
+ - **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))
37
+ - **DatePicker:** improve date grid a11y ([#2220](https://github.com/rsuite/rsuite/issues/2220)) ([655178e](https://github.com/rsuite/rsuite/commit/655178e05afe5e4b4619bda3a222dc753766e13b))
38
+
1
39
  # [5.4.0](https://github.com/rsuite/rsuite/compare/v5.3.0...v5.4.0) (2021-12-17)
2
40
 
3
41
  ### Bug Fixes
@@ -73,7 +73,7 @@
73
73
  }
74
74
 
75
75
  // Only has the first level
76
- .without-children & {
76
+ .rs-check-tree-without-children & {
77
77
  padding-left: 34px; //text gap + checkbox space
78
78
 
79
79
  &::before {
@@ -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
@@ -81,10 +81,10 @@
81
81
  // Force set style even if has `.btn`.
82
82
  .dropdown-toggle();
83
83
  }
84
- }
85
84
 
86
- .rs-dropdown-toggle.rs-dropdown-no-caret {
87
- padding-right: @padding-x;
85
+ &.rs-dropdown-toggle-no-caret {
86
+ padding-right: @padding-x;
87
+ }
88
88
  }
89
89
 
90
90
  // The dropdown menu (ul)
@@ -108,6 +108,7 @@
108
108
  z-index: @zindex-dropdown + 1;
109
109
  float: left;
110
110
  box-shadow: var(--rs-dropdown-shadow);
111
+ outline: none;
111
112
 
112
113
  .high-contrast-mode({
113
114
  border: 1px solid var(--rs-border-primary);
@@ -219,26 +220,9 @@
219
220
  right: @dropdown-caret-icon-padding-horizontal;
220
221
  }
221
222
  }
222
- //
223
- //&.rs-dropdown-menu-pull-left {
224
- // &.rs-dropdown-item {
225
- // padding-left: @dropdown-item-padding-x+ @dropdown-item-submenu-icon-angle-spacing +
226
- // @dropdown-item-submenu-icon-angle-width;
227
- //
228
- // > .rs-dropdown-menu-toggle .rs-dropdown-menu-toggle-icon {
229
- // left: @dropdown-caret-icon-padding-horizontal;
230
- // }
231
- // }
232
- //}
233
-
234
- // Pull right
235
- .rs-dropdown-item-pull-right ~ .rs-dropdown-menu {
236
- left: 100%;
237
- }
238
223
 
239
- // Pull Left
240
- .rs-dropdown-item-pull-left ~ .rs-dropdown-menu {
241
- right: 100%;
224
+ .rs-dropdown-menu {
225
+ left: 100%;
242
226
  }
243
227
 
244
228
  // Open
@@ -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,4 +1,5 @@
1
1
  @import '../../styles/common';
2
+ @import '../../Dropdown/styles/index';
2
3
 
3
4
  // NavBar
4
5
  // --------------------------------------------------
@@ -72,8 +73,6 @@
72
73
  .rs-navbar-brand,
73
74
  .rs-navbar-item,
74
75
  .rs-navbar-nav > .rs-dropdown-item {
75
- outline: 0;
76
-
77
76
  &,
78
77
  &:hover,
79
78
  &:focus,
@@ -82,7 +81,9 @@
82
81
  }
83
82
 
84
83
  &:focus-visible {
85
- .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);
86
87
 
87
88
  .high-contrast-mode({
88
89
  .focus-ring(slim-inset);
@@ -97,10 +98,21 @@
97
98
  margin: 0 !important;
98
99
  }
99
100
 
100
- // DropDown
101
+ .rs-navbar-item.rs-navbar-item-active {
102
+ .high-contrast-mode({
103
+ text-decoration: underline;
104
+ });
105
+ }
106
+
107
+ // Dropdown
101
108
  .rs-navbar-nav > .rs-dropdown .rs-dropdown-toggle {
102
109
  &:extend(.rs-navbar-item);
103
110
 
111
+ &:focus,
112
+ &:focus-visible {
113
+ &:extend(.rs-navbar-item:focus-visible);
114
+ }
115
+
104
116
  padding-right: @navbar-item-padding-x+ @dropdown-caret-width+ @dropdown-caret-padding;
105
117
 
106
118
  .high-contrast-mode({
@@ -117,10 +129,10 @@
117
129
  }
118
130
  }
119
131
 
120
- .rs-navbar-item.rs-navbar-item-active {
121
- .high-contrast-mode({
122
- text-decoration: underline;
123
- });
132
+ .rs-navbar .rs-dropdown-item {
133
+ &:hover {
134
+ .menuitem-active();
135
+ }
124
136
  }
125
137
 
126
138
  // Default Navbar
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]
@@ -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);
@@ -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
 
@@ -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')