rsuite 5.67.0 → 5.68.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +17 -0
- package/Nav/styles/index.css +68 -0
- package/Nav/styles/index.less +37 -0
- package/Tabs/styles/index.css +68 -3
- package/Tabs/styles/index.less +0 -4
- package/cjs/DateInput/DateInput.js +18 -2
- package/cjs/DateInput/hooks/useDateInputState.d.ts +1 -0
- package/cjs/DateInput/hooks/useDateInputState.js +10 -9
- package/cjs/DateInput/hooks/useKeyboardInputEvent.js +5 -0
- package/cjs/DateRangeInput/DateRangeInput.js +24 -2
- package/cjs/Form/Form.js +4 -10
- package/cjs/Form/FormContext.d.ts +2 -4
- package/cjs/Form/hooks/useFormValidate.d.ts +2 -2
- package/cjs/Form/hooks/useFormValidate.js +99 -35
- package/cjs/FormControl/FormControl.js +6 -22
- package/cjs/Nav/AdaptiveNavItem.d.ts +1 -1
- package/cjs/Nav/Nav.d.ts +28 -9
- package/cjs/Nav/Nav.js +1 -1
- package/cjs/Nav/NavContext.d.ts +2 -2
- package/cjs/Nav/NavItem.d.ts +1 -1
- package/cjs/Navbar/NavbarItem.d.ts +1 -1
- package/cjs/Sidenav/Sidenav.d.ts +3 -3
- package/cjs/Tabs/Tabs.d.ts +20 -17
- package/cjs/Tabs/Tabs.js +5 -1
- package/cjs/internals/Overlay/OverlayTrigger.d.ts +2 -2
- package/cjs/internals/Overlay/OverlayTrigger.js +17 -8
- package/cjs/internals/utils/BrowserDetection.js +6 -0
- package/cjs/internals/utils/ReactChildren.d.ts +6 -0
- package/cjs/internals/utils/ReactChildren.js +1 -0
- package/dist/rsuite-no-reset-rtl.css +65 -3
- package/dist/rsuite-no-reset-rtl.min.css +1 -1
- package/dist/rsuite-no-reset-rtl.min.css.map +1 -1
- package/dist/rsuite-no-reset.css +65 -3
- package/dist/rsuite-no-reset.min.css +1 -1
- package/dist/rsuite-no-reset.min.css.map +1 -1
- package/dist/rsuite-rtl.css +65 -3
- package/dist/rsuite-rtl.min.css +1 -1
- package/dist/rsuite-rtl.min.css.map +1 -1
- package/dist/rsuite.css +65 -3
- package/dist/rsuite.js +12 -12
- package/dist/rsuite.min.css +1 -1
- package/dist/rsuite.min.css.map +1 -1
- package/dist/rsuite.min.js +1 -1
- package/dist/rsuite.min.js.map +1 -1
- package/esm/DateInput/DateInput.js +18 -2
- package/esm/DateInput/hooks/useDateInputState.d.ts +1 -0
- package/esm/DateInput/hooks/useDateInputState.js +11 -10
- package/esm/DateInput/hooks/useKeyboardInputEvent.js +5 -0
- package/esm/DateRangeInput/DateRangeInput.js +24 -2
- package/esm/Form/Form.js +4 -10
- package/esm/Form/FormContext.d.ts +2 -4
- package/esm/Form/hooks/useFormValidate.d.ts +2 -2
- package/esm/Form/hooks/useFormValidate.js +98 -34
- package/esm/FormControl/FormControl.js +6 -22
- package/esm/Nav/AdaptiveNavItem.d.ts +1 -1
- package/esm/Nav/Nav.d.ts +28 -9
- package/esm/Nav/Nav.js +1 -1
- package/esm/Nav/NavContext.d.ts +2 -2
- package/esm/Nav/NavItem.d.ts +1 -1
- package/esm/Navbar/NavbarItem.d.ts +1 -1
- package/esm/Sidenav/Sidenav.d.ts +3 -3
- package/esm/Tabs/Tabs.d.ts +20 -17
- package/esm/Tabs/Tabs.js +6 -1
- package/esm/internals/Overlay/OverlayTrigger.d.ts +2 -2
- package/esm/internals/Overlay/OverlayTrigger.js +18 -9
- package/esm/internals/utils/BrowserDetection.js +6 -0
- package/esm/internals/utils/ReactChildren.d.ts +6 -0
- package/esm/internals/utils/ReactChildren.js +1 -1
- package/package.json +1 -1
- package/styles/color-modes/dark.less +7 -0
- package/styles/color-modes/high-contrast.less +7 -0
- package/styles/color-modes/light.less +8 -0
- package/styles/plugins/palette.js +34 -6
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,20 @@
|
|
|
1
|
+
# [5.68.0](https://github.com/rsuite/rsuite/compare/v5.67.0...v5.68.0) (2024-07-26)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* **DateInput,DateRangeInput:** fix the date in the text box cannot be copied ([#3888](https://github.com/rsuite/rsuite/issues/3888)) ([1d95107](https://github.com/rsuite/rsuite/commit/1d95107d96ebe5bacb73c3fee8427efc59b1f673))
|
|
7
|
+
* **Form:** fix `proxy` function in `schema-typed` not work in form ([#3863](https://github.com/rsuite/rsuite/issues/3863)) ([63c0e3a](https://github.com/rsuite/rsuite/commit/63c0e3a07a17eeb1158c75b49fb8fc3a65199e16))
|
|
8
|
+
* **Stack:** fix the compatibility of spacing in Linux Firefox ([#3889](https://github.com/rsuite/rsuite/issues/3889)) ([44ed16f](https://github.com/rsuite/rsuite/commit/44ed16f7f1f41c7beda063a86588cbe9c52c6496))
|
|
9
|
+
* **Whisper:** fix Whisper children not support string and other basic types ([#3893](https://github.com/rsuite/rsuite/issues/3893)) ([70fb61d](https://github.com/rsuite/rsuite/commit/70fb61da619ce0a94129eb6f02972b4ce16c5016))
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
### Features
|
|
13
|
+
|
|
14
|
+
* **Nav,Tabs:** add `pills` value to the appearance property ([#3890](https://github.com/rsuite/rsuite/issues/3890)) ([eae279f](https://github.com/rsuite/rsuite/commit/eae279fa5ede8c6ce2c3676585f1cc85c9644b8e))
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
1
18
|
# [5.67.0](https://github.com/rsuite/rsuite/compare/v5.66.0...v5.67.0) (2024-07-19)
|
|
2
19
|
|
|
3
20
|
|
package/Nav/styles/index.css
CHANGED
|
@@ -70,6 +70,7 @@
|
|
|
70
70
|
--rs-violet-800: #470c99;
|
|
71
71
|
--rs-violet-900: #390085;
|
|
72
72
|
--rs-text-primary: var(--rs-gray-800);
|
|
73
|
+
--rs-text-secondary: var(--rs-gray-600);
|
|
73
74
|
--rs-text-disabled: var(--rs-gray-600);
|
|
74
75
|
--rs-border-primary: var(--rs-gray-200);
|
|
75
76
|
--rs-bg-card: var(--rs-gray-0);
|
|
@@ -119,6 +120,12 @@
|
|
|
119
120
|
--rs-navs-tab-border: var(--rs-gray-300);
|
|
120
121
|
--rs-navs-subtle-border: var(--rs-gray-50);
|
|
121
122
|
--rs-navs-selected: var(--rs-primary-700);
|
|
123
|
+
--rs-navs-pills-bg: var(--rs-gray-100);
|
|
124
|
+
--rs-navs-pills-item-color: var(--rs-text-secondary);
|
|
125
|
+
--rs-navs-pills-item-active-bg: var(--rs-gray-0);
|
|
126
|
+
--rs-navs-pills-item-active-color: var(--rs-gray-900);
|
|
127
|
+
--rs-navs-pills-item-disabled-color: var(--rs-gray-400);
|
|
128
|
+
--rs-navs-pills-item-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1);
|
|
122
129
|
}
|
|
123
130
|
@supports not (color: rgb(from white r g b)) {
|
|
124
131
|
:root,
|
|
@@ -200,6 +207,7 @@
|
|
|
200
207
|
--rs-violet-800: #470c99;
|
|
201
208
|
--rs-violet-900: #390085;
|
|
202
209
|
--rs-text-primary: var(--rs-gray-50);
|
|
210
|
+
--rs-text-secondary: var(--rs-gray-200);
|
|
203
211
|
--rs-text-disabled: var(--rs-gray-400);
|
|
204
212
|
--rs-border-primary: var(--rs-gray-600);
|
|
205
213
|
--rs-bg-card: var(--rs-gray-800);
|
|
@@ -249,6 +257,11 @@
|
|
|
249
257
|
--rs-navs-tab-border: var(--rs-gray-600);
|
|
250
258
|
--rs-navs-subtle-border: var(--rs-gray-600);
|
|
251
259
|
--rs-navs-selected: var(--rs-primary-500);
|
|
260
|
+
--rs-navs-pills-bg: var(--rs-gray-700);
|
|
261
|
+
--rs-navs-pills-item-color: var(--rs-text-secondary);
|
|
262
|
+
--rs-navs-pills-item-active-bg: var(--rs-gray-600);
|
|
263
|
+
--rs-navs-pills-item-active-color: var(--rs-gray-0);
|
|
264
|
+
--rs-navs-pills-item-disabled-color: var(--rs-gray-400);
|
|
252
265
|
}
|
|
253
266
|
@supports not (color: rgb(from white r g b)) {
|
|
254
267
|
.rs-theme-dark {
|
|
@@ -329,6 +342,7 @@
|
|
|
329
342
|
--rs-violet-800: #470c99;
|
|
330
343
|
--rs-violet-900: #390085;
|
|
331
344
|
--rs-text-primary: var(--rs-gray-50);
|
|
345
|
+
--rs-text-secondary: var(--rs-gray-200);
|
|
332
346
|
--rs-text-disabled: var(--rs-gray-400);
|
|
333
347
|
--rs-border-primary: var(--rs-gray-100);
|
|
334
348
|
--rs-bg-card: var(--rs-gray-800);
|
|
@@ -381,6 +395,11 @@
|
|
|
381
395
|
--rs-navs-tab-border: var(--rs-gray-600);
|
|
382
396
|
--rs-navs-subtle-border: var(--rs-gray-600);
|
|
383
397
|
--rs-navs-selected: var(--rs-primary-500);
|
|
398
|
+
--rs-navs-pills-bg: var(--rs-gray-700);
|
|
399
|
+
--rs-navs-pills-item-color: var(--rs-text-secondary);
|
|
400
|
+
--rs-navs-pills-item-active-bg: var(--rs-gray-600);
|
|
401
|
+
--rs-navs-pills-item-active-color: var(--rs-primary-500);
|
|
402
|
+
--rs-navs-pills-item-disabled-color: var(--rs-gray-400);
|
|
384
403
|
}
|
|
385
404
|
@supports not (color: rgb(from white r g b)) {
|
|
386
405
|
.rs-theme-high-contrast {
|
|
@@ -1664,6 +1683,7 @@
|
|
|
1664
1683
|
cursor: pointer;
|
|
1665
1684
|
color: #343434;
|
|
1666
1685
|
color: var(--rs-navs-text);
|
|
1686
|
+
background: transparent;
|
|
1667
1687
|
-webkit-transition: color 0.15s ease-out, background-color 0.15s ease-out;
|
|
1668
1688
|
transition: color 0.15s ease-out, background-color 0.15s ease-out;
|
|
1669
1689
|
overflow: hidden;
|
|
@@ -1749,6 +1769,9 @@
|
|
|
1749
1769
|
-webkit-box-align: center;
|
|
1750
1770
|
-ms-flex-align: center;
|
|
1751
1771
|
align-items: center;
|
|
1772
|
+
-webkit-box-pack: center;
|
|
1773
|
+
-ms-flex-pack: center;
|
|
1774
|
+
justify-content: center;
|
|
1752
1775
|
vertical-align: top;
|
|
1753
1776
|
}
|
|
1754
1777
|
.rs-nav-horizontal .rs-nav-bar {
|
|
@@ -1889,6 +1912,51 @@
|
|
|
1889
1912
|
right: auto;
|
|
1890
1913
|
left: 0;
|
|
1891
1914
|
}
|
|
1915
|
+
.rs-nav-pills {
|
|
1916
|
+
display: -webkit-inline-box;
|
|
1917
|
+
display: -ms-inline-flexbox;
|
|
1918
|
+
display: inline-flex;
|
|
1919
|
+
background-color: #f2f2f5;
|
|
1920
|
+
background-color: var(--rs-navs-pills-bg);
|
|
1921
|
+
border-radius: 6px;
|
|
1922
|
+
padding: 4px;
|
|
1923
|
+
width: -webkit-max-content;
|
|
1924
|
+
width: -moz-max-content;
|
|
1925
|
+
width: max-content;
|
|
1926
|
+
}
|
|
1927
|
+
.rs-nav-pills .rs-nav-item {
|
|
1928
|
+
border-radius: 6px;
|
|
1929
|
+
position: relative;
|
|
1930
|
+
padding: 4px 12px;
|
|
1931
|
+
color: #717273;
|
|
1932
|
+
color: var(--rs-navs-pills-item-color);
|
|
1933
|
+
}
|
|
1934
|
+
.rs-nav-pills .rs-nav-item-active {
|
|
1935
|
+
background-color: #fff;
|
|
1936
|
+
background-color: var(--rs-navs-pills-item-active-bg);
|
|
1937
|
+
color: #121212;
|
|
1938
|
+
color: var(--rs-navs-pills-item-active-color);
|
|
1939
|
+
-webkit-box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1);
|
|
1940
|
+
-webkit-box-shadow: var(--rs-navs-pills-item-shadow);
|
|
1941
|
+
box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1);
|
|
1942
|
+
box-shadow: var(--rs-navs-pills-item-shadow);
|
|
1943
|
+
}
|
|
1944
|
+
.rs-nav-pills .rs-nav-item-disabled {
|
|
1945
|
+
color: #b6b7b8;
|
|
1946
|
+
color: var(--rs-navs-pills-item-disabled-color);
|
|
1947
|
+
}
|
|
1948
|
+
.rs-nav-pills.rs-nav-vertical {
|
|
1949
|
+
-webkit-box-orient: vertical;
|
|
1950
|
+
-webkit-box-direction: normal;
|
|
1951
|
+
-ms-flex-direction: column;
|
|
1952
|
+
flex-direction: column;
|
|
1953
|
+
}
|
|
1954
|
+
.rs-nav-pills.rs-nav-vertical .rs-nav-item {
|
|
1955
|
+
padding: 6px 12px;
|
|
1956
|
+
-webkit-box-pack: center;
|
|
1957
|
+
-ms-flex-pack: center;
|
|
1958
|
+
justify-content: center;
|
|
1959
|
+
}
|
|
1892
1960
|
.rs-nav-justified {
|
|
1893
1961
|
display: -webkit-box;
|
|
1894
1962
|
display: -ms-flexbox;
|
package/Nav/styles/index.less
CHANGED
|
@@ -32,6 +32,7 @@
|
|
|
32
32
|
padding: 8px 12px;
|
|
33
33
|
cursor: pointer;
|
|
34
34
|
color: var(--rs-navs-text);
|
|
35
|
+
background: transparent;
|
|
35
36
|
transition: @nav-item-transition;
|
|
36
37
|
.ellipsis-basic();
|
|
37
38
|
.safari-border-radius-overflow-hidden();
|
|
@@ -101,6 +102,7 @@
|
|
|
101
102
|
> .rs-nav-item {
|
|
102
103
|
display: inline-flex;
|
|
103
104
|
align-items: center;
|
|
105
|
+
justify-content: center;
|
|
104
106
|
vertical-align: top;
|
|
105
107
|
}
|
|
106
108
|
|
|
@@ -300,6 +302,41 @@
|
|
|
300
302
|
}
|
|
301
303
|
}
|
|
302
304
|
|
|
305
|
+
// Pills Nav
|
|
306
|
+
.rs-nav-pills {
|
|
307
|
+
display: inline-flex;
|
|
308
|
+
background-color: var(--rs-navs-pills-bg);
|
|
309
|
+
border-radius: 6px;
|
|
310
|
+
padding: 4px;
|
|
311
|
+
width: max-content;
|
|
312
|
+
|
|
313
|
+
.rs-nav-item {
|
|
314
|
+
border-radius: 6px;
|
|
315
|
+
position: relative;
|
|
316
|
+
padding: 4px 12px;
|
|
317
|
+
color: var(--rs-navs-pills-item-color);
|
|
318
|
+
|
|
319
|
+
&-active {
|
|
320
|
+
background-color: var(--rs-navs-pills-item-active-bg);
|
|
321
|
+
color: var(--rs-navs-pills-item-active-color);
|
|
322
|
+
box-shadow: var(--rs-navs-pills-item-shadow);
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
&-disabled {
|
|
326
|
+
color: var(--rs-navs-pills-item-disabled-color);
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
&.rs-nav-vertical {
|
|
331
|
+
flex-direction: column;
|
|
332
|
+
|
|
333
|
+
.rs-nav-item {
|
|
334
|
+
padding: 6px 12px;
|
|
335
|
+
justify-content: center;
|
|
336
|
+
}
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
|
|
303
340
|
// Justified
|
|
304
341
|
.rs-nav-justified {
|
|
305
342
|
display: flex;
|
package/Tabs/styles/index.css
CHANGED
|
@@ -70,6 +70,7 @@
|
|
|
70
70
|
--rs-violet-800: #470c99;
|
|
71
71
|
--rs-violet-900: #390085;
|
|
72
72
|
--rs-text-primary: var(--rs-gray-800);
|
|
73
|
+
--rs-text-secondary: var(--rs-gray-600);
|
|
73
74
|
--rs-text-disabled: var(--rs-gray-600);
|
|
74
75
|
--rs-border-primary: var(--rs-gray-200);
|
|
75
76
|
--rs-bg-card: var(--rs-gray-0);
|
|
@@ -119,6 +120,12 @@
|
|
|
119
120
|
--rs-navs-tab-border: var(--rs-gray-300);
|
|
120
121
|
--rs-navs-subtle-border: var(--rs-gray-50);
|
|
121
122
|
--rs-navs-selected: var(--rs-primary-700);
|
|
123
|
+
--rs-navs-pills-bg: var(--rs-gray-100);
|
|
124
|
+
--rs-navs-pills-item-color: var(--rs-text-secondary);
|
|
125
|
+
--rs-navs-pills-item-active-bg: var(--rs-gray-0);
|
|
126
|
+
--rs-navs-pills-item-active-color: var(--rs-gray-900);
|
|
127
|
+
--rs-navs-pills-item-disabled-color: var(--rs-gray-400);
|
|
128
|
+
--rs-navs-pills-item-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1);
|
|
122
129
|
}
|
|
123
130
|
@supports not (color: rgb(from white r g b)) {
|
|
124
131
|
:root,
|
|
@@ -200,6 +207,7 @@
|
|
|
200
207
|
--rs-violet-800: #470c99;
|
|
201
208
|
--rs-violet-900: #390085;
|
|
202
209
|
--rs-text-primary: var(--rs-gray-50);
|
|
210
|
+
--rs-text-secondary: var(--rs-gray-200);
|
|
203
211
|
--rs-text-disabled: var(--rs-gray-400);
|
|
204
212
|
--rs-border-primary: var(--rs-gray-600);
|
|
205
213
|
--rs-bg-card: var(--rs-gray-800);
|
|
@@ -249,6 +257,11 @@
|
|
|
249
257
|
--rs-navs-tab-border: var(--rs-gray-600);
|
|
250
258
|
--rs-navs-subtle-border: var(--rs-gray-600);
|
|
251
259
|
--rs-navs-selected: var(--rs-primary-500);
|
|
260
|
+
--rs-navs-pills-bg: var(--rs-gray-700);
|
|
261
|
+
--rs-navs-pills-item-color: var(--rs-text-secondary);
|
|
262
|
+
--rs-navs-pills-item-active-bg: var(--rs-gray-600);
|
|
263
|
+
--rs-navs-pills-item-active-color: var(--rs-gray-0);
|
|
264
|
+
--rs-navs-pills-item-disabled-color: var(--rs-gray-400);
|
|
252
265
|
}
|
|
253
266
|
@supports not (color: rgb(from white r g b)) {
|
|
254
267
|
.rs-theme-dark {
|
|
@@ -329,6 +342,7 @@
|
|
|
329
342
|
--rs-violet-800: #470c99;
|
|
330
343
|
--rs-violet-900: #390085;
|
|
331
344
|
--rs-text-primary: var(--rs-gray-50);
|
|
345
|
+
--rs-text-secondary: var(--rs-gray-200);
|
|
332
346
|
--rs-text-disabled: var(--rs-gray-400);
|
|
333
347
|
--rs-border-primary: var(--rs-gray-100);
|
|
334
348
|
--rs-bg-card: var(--rs-gray-800);
|
|
@@ -381,6 +395,11 @@
|
|
|
381
395
|
--rs-navs-tab-border: var(--rs-gray-600);
|
|
382
396
|
--rs-navs-subtle-border: var(--rs-gray-600);
|
|
383
397
|
--rs-navs-selected: var(--rs-primary-500);
|
|
398
|
+
--rs-navs-pills-bg: var(--rs-gray-700);
|
|
399
|
+
--rs-navs-pills-item-color: var(--rs-text-secondary);
|
|
400
|
+
--rs-navs-pills-item-active-bg: var(--rs-gray-600);
|
|
401
|
+
--rs-navs-pills-item-active-color: var(--rs-primary-500);
|
|
402
|
+
--rs-navs-pills-item-disabled-color: var(--rs-gray-400);
|
|
384
403
|
}
|
|
385
404
|
@supports not (color: rgb(from white r g b)) {
|
|
386
405
|
.rs-theme-high-contrast {
|
|
@@ -1664,6 +1683,7 @@
|
|
|
1664
1683
|
cursor: pointer;
|
|
1665
1684
|
color: #343434;
|
|
1666
1685
|
color: var(--rs-navs-text);
|
|
1686
|
+
background: transparent;
|
|
1667
1687
|
-webkit-transition: color 0.15s ease-out, background-color 0.15s ease-out;
|
|
1668
1688
|
transition: color 0.15s ease-out, background-color 0.15s ease-out;
|
|
1669
1689
|
overflow: hidden;
|
|
@@ -1749,6 +1769,9 @@
|
|
|
1749
1769
|
-webkit-box-align: center;
|
|
1750
1770
|
-ms-flex-align: center;
|
|
1751
1771
|
align-items: center;
|
|
1772
|
+
-webkit-box-pack: center;
|
|
1773
|
+
-ms-flex-pack: center;
|
|
1774
|
+
justify-content: center;
|
|
1752
1775
|
vertical-align: top;
|
|
1753
1776
|
}
|
|
1754
1777
|
.rs-nav-horizontal .rs-nav-bar {
|
|
@@ -1889,6 +1912,51 @@
|
|
|
1889
1912
|
right: auto;
|
|
1890
1913
|
left: 0;
|
|
1891
1914
|
}
|
|
1915
|
+
.rs-nav-pills {
|
|
1916
|
+
display: -webkit-inline-box;
|
|
1917
|
+
display: -ms-inline-flexbox;
|
|
1918
|
+
display: inline-flex;
|
|
1919
|
+
background-color: #f2f2f5;
|
|
1920
|
+
background-color: var(--rs-navs-pills-bg);
|
|
1921
|
+
border-radius: 6px;
|
|
1922
|
+
padding: 4px;
|
|
1923
|
+
width: -webkit-max-content;
|
|
1924
|
+
width: -moz-max-content;
|
|
1925
|
+
width: max-content;
|
|
1926
|
+
}
|
|
1927
|
+
.rs-nav-pills .rs-nav-item {
|
|
1928
|
+
border-radius: 6px;
|
|
1929
|
+
position: relative;
|
|
1930
|
+
padding: 4px 12px;
|
|
1931
|
+
color: #717273;
|
|
1932
|
+
color: var(--rs-navs-pills-item-color);
|
|
1933
|
+
}
|
|
1934
|
+
.rs-nav-pills .rs-nav-item-active {
|
|
1935
|
+
background-color: #fff;
|
|
1936
|
+
background-color: var(--rs-navs-pills-item-active-bg);
|
|
1937
|
+
color: #121212;
|
|
1938
|
+
color: var(--rs-navs-pills-item-active-color);
|
|
1939
|
+
-webkit-box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1);
|
|
1940
|
+
-webkit-box-shadow: var(--rs-navs-pills-item-shadow);
|
|
1941
|
+
box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1);
|
|
1942
|
+
box-shadow: var(--rs-navs-pills-item-shadow);
|
|
1943
|
+
}
|
|
1944
|
+
.rs-nav-pills .rs-nav-item-disabled {
|
|
1945
|
+
color: #b6b7b8;
|
|
1946
|
+
color: var(--rs-navs-pills-item-disabled-color);
|
|
1947
|
+
}
|
|
1948
|
+
.rs-nav-pills.rs-nav-vertical {
|
|
1949
|
+
-webkit-box-orient: vertical;
|
|
1950
|
+
-webkit-box-direction: normal;
|
|
1951
|
+
-ms-flex-direction: column;
|
|
1952
|
+
flex-direction: column;
|
|
1953
|
+
}
|
|
1954
|
+
.rs-nav-pills.rs-nav-vertical .rs-nav-item {
|
|
1955
|
+
padding: 6px 12px;
|
|
1956
|
+
-webkit-box-pack: center;
|
|
1957
|
+
-ms-flex-pack: center;
|
|
1958
|
+
justify-content: center;
|
|
1959
|
+
}
|
|
1892
1960
|
.rs-nav-justified {
|
|
1893
1961
|
display: -webkit-box;
|
|
1894
1962
|
display: -ms-flexbox;
|
|
@@ -1931,9 +1999,6 @@
|
|
|
1931
1999
|
-ms-flex: 1;
|
|
1932
2000
|
flex: 1;
|
|
1933
2001
|
}
|
|
1934
|
-
.rs-tabs .rs-nav-item {
|
|
1935
|
-
background: none;
|
|
1936
|
-
}
|
|
1937
2002
|
.rs-tabs .rs-nav-vertical {
|
|
1938
2003
|
display: -webkit-box;
|
|
1939
2004
|
display: -ms-flexbox;
|
package/Tabs/styles/index.less
CHANGED
|
@@ -11,13 +11,14 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
|
11
11
|
var _Input = _interopRequireDefault(require("../Input"));
|
|
12
12
|
var _hooks = require("../internals/hooks");
|
|
13
13
|
var _utils = require("../internals/utils");
|
|
14
|
+
var _date = require("../internals/utils/date");
|
|
14
15
|
var _utils2 = require("./utils");
|
|
15
16
|
var _useDateInputState2 = _interopRequireDefault(require("./hooks/useDateInputState"));
|
|
16
17
|
var _useKeyboardInputEvent = _interopRequireDefault(require("./hooks/useKeyboardInputEvent"));
|
|
17
18
|
var _useIsFocused2 = _interopRequireDefault(require("./hooks/useIsFocused"));
|
|
18
19
|
var _useFieldCursor2 = _interopRequireDefault(require("./hooks/useFieldCursor"));
|
|
19
20
|
var _useSelectedState2 = _interopRequireDefault(require("./hooks/useSelectedState"));
|
|
20
|
-
var _excluded = ["format", "value", "defaultValue", "placeholder", "onChange", "onKeyDown", "onBlur", "onFocus"];
|
|
21
|
+
var _excluded = ["format", "value", "defaultValue", "placeholder", "onChange", "onKeyDown", "onBlur", "onFocus", "onPaste"];
|
|
21
22
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
22
23
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
23
24
|
/**
|
|
@@ -35,13 +36,15 @@ var DateInput = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
35
36
|
onKeyDown = props.onKeyDown,
|
|
36
37
|
onBlur = props.onBlur,
|
|
37
38
|
onFocus = props.onFocus,
|
|
39
|
+
onPaste = props.onPaste,
|
|
38
40
|
rest = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
|
|
39
41
|
var inputRef = (0, _react.useRef)();
|
|
40
42
|
var _useSelectedState = (0, _useSelectedState2.default)(),
|
|
41
43
|
selectedState = _useSelectedState.selectedState,
|
|
42
44
|
setSelectedState = _useSelectedState.setSelectedState;
|
|
43
45
|
var _useCustom = (0, _hooks.useCustom)('Calendar'),
|
|
44
|
-
locale = _useCustom.locale
|
|
46
|
+
locale = _useCustom.locale,
|
|
47
|
+
parseDate = _useCustom.parseDate;
|
|
45
48
|
var dateLocale = locale.dateLocale;
|
|
46
49
|
var _useControlled = (0, _hooks.useControlled)(valueProp, defaultValue),
|
|
47
50
|
value = _useControlled[0],
|
|
@@ -56,6 +59,7 @@ var DateInput = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
56
59
|
dateField = _useDateInputState.dateField,
|
|
57
60
|
setDateOffset = _useDateInputState.setDateOffset,
|
|
58
61
|
setDateField = _useDateInputState.setDateField,
|
|
62
|
+
setNewDate = _useDateInputState.setNewDate,
|
|
59
63
|
getDateField = _useDateInputState.getDateField,
|
|
60
64
|
toDateString = _useDateInputState.toDateString,
|
|
61
65
|
isEmptyValue = _useDateInputState.isEmptyValue;
|
|
@@ -169,6 +173,17 @@ var DateInput = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
169
173
|
reset();
|
|
170
174
|
}
|
|
171
175
|
});
|
|
176
|
+
var handlePaste = (0, _hooks.useEventCallback)(function (event) {
|
|
177
|
+
var _event$clipboardData;
|
|
178
|
+
event.preventDefault();
|
|
179
|
+
var pasteText = (_event$clipboardData = event.clipboardData) === null || _event$clipboardData === void 0 ? void 0 : _event$clipboardData.getData('text');
|
|
180
|
+
var nextDate = parseDate(pasteText, formatStr);
|
|
181
|
+
if ((0, _date.isValid)(nextDate)) {
|
|
182
|
+
handleChange(nextDate, event);
|
|
183
|
+
setNewDate(nextDate);
|
|
184
|
+
}
|
|
185
|
+
onPaste === null || onPaste === void 0 ? void 0 : onPaste(event);
|
|
186
|
+
});
|
|
172
187
|
var onKeyboardInput = (0, _useKeyboardInputEvent.default)({
|
|
173
188
|
onSegmentChange: onSegmentChange,
|
|
174
189
|
onSegmentValueChange: onSegmentValueChange,
|
|
@@ -196,6 +211,7 @@ var DateInput = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
196
211
|
ref: (0, _utils.mergeRefs)(inputRef, ref),
|
|
197
212
|
onKeyDown: onKeyboardInput,
|
|
198
213
|
onClick: handleClick,
|
|
214
|
+
onPaste: handlePaste,
|
|
199
215
|
value: renderedValue,
|
|
200
216
|
placeholder: placeholder || formatStr
|
|
201
217
|
}, focusEventProps, rest));
|
|
@@ -131,6 +131,7 @@ export declare function useDateInputState({ formatStr, locale, date, isControlle
|
|
|
131
131
|
};
|
|
132
132
|
setDateOffset: (pattern: string, offset: number, callback?: ((newDate: Date | null) => void) | undefined) => void;
|
|
133
133
|
setDateField: (pattern: string, value: number | null, callback?: ((newDate: Date | null) => void) | undefined) => void;
|
|
134
|
+
setNewDate: (value: Date | null) => void;
|
|
134
135
|
getDateField: (pattern: string) => {
|
|
135
136
|
name: any;
|
|
136
137
|
value: any;
|
|
@@ -101,25 +101,26 @@ function useDateInputState(_ref) {
|
|
|
101
101
|
// if date is not valid, return uncontrolled date string
|
|
102
102
|
return toDateString();
|
|
103
103
|
};
|
|
104
|
+
var setNewDate = (0, _react.useCallback)(function (value) {
|
|
105
|
+
dispatch({
|
|
106
|
+
type: 'setNewDate',
|
|
107
|
+
value: value
|
|
108
|
+
});
|
|
109
|
+
}, [dispatch]);
|
|
104
110
|
(0, _react.useEffect)(function () {
|
|
105
111
|
if (isControlledDate) {
|
|
106
112
|
if (date && (0, _date.isValid)(date)) {
|
|
107
|
-
|
|
108
|
-
type: 'setNewDate',
|
|
109
|
-
value: date
|
|
110
|
-
});
|
|
113
|
+
setNewDate(date);
|
|
111
114
|
} else if (date === null) {
|
|
112
|
-
|
|
113
|
-
type: 'setNewDate',
|
|
114
|
-
value: null
|
|
115
|
-
});
|
|
115
|
+
setNewDate(null);
|
|
116
116
|
}
|
|
117
117
|
}
|
|
118
|
-
}, [date, dispatch, isControlledDate]);
|
|
118
|
+
}, [date, dispatch, isControlledDate, setNewDate]);
|
|
119
119
|
return {
|
|
120
120
|
dateField: dateField,
|
|
121
121
|
setDateOffset: setDateOffset,
|
|
122
122
|
setDateField: setDateField,
|
|
123
|
+
setNewDate: setNewDate,
|
|
123
124
|
getDateField: getDateField,
|
|
124
125
|
toDateString: isControlledDate ? toControlledDateString : toDateString,
|
|
125
126
|
isEmptyValue: isEmptyValue
|
|
@@ -33,6 +33,11 @@ function useKeyboardInputEvent(_ref) {
|
|
|
33
33
|
onSegmentValueChangeWithNumericKeys === null || onSegmentValueChangeWithNumericKeys === void 0 ? void 0 : onSegmentValueChangeWithNumericKeys(event);
|
|
34
34
|
event.preventDefault();
|
|
35
35
|
case (_key$match2 = key.match(/[a-z]/)) === null || _key$match2 === void 0 ? void 0 : _key$match2[0]:
|
|
36
|
+
// Determine whether the Ctrl or Command key is pressed, does not affect user copy and paste
|
|
37
|
+
if (event.ctrlKey || event.metaKey) {
|
|
38
|
+
break;
|
|
39
|
+
}
|
|
40
|
+
|
|
36
41
|
// Prevent letters from being entered
|
|
37
42
|
event.preventDefault();
|
|
38
43
|
break;
|
|
@@ -9,11 +9,12 @@ var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runt
|
|
|
9
9
|
var _react = _interopRequireWildcard(require("react"));
|
|
10
10
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
11
|
var _Input = _interopRequireDefault(require("../Input"));
|
|
12
|
+
var _date = require("../internals/utils/date");
|
|
12
13
|
var _hooks = require("../internals/hooks");
|
|
13
14
|
var _utils = require("../internals/utils");
|
|
14
15
|
var _DateInput = require("../DateInput");
|
|
15
16
|
var _utils2 = require("./utils");
|
|
16
|
-
var _excluded = ["className", "classPrefix", "character", "format", "value", "defaultValue", "placeholder", "onChange", "onKeyDown", "onBlur", "onFocus"];
|
|
17
|
+
var _excluded = ["className", "classPrefix", "character", "format", "value", "defaultValue", "placeholder", "onChange", "onKeyDown", "onBlur", "onFocus", "onPaste"];
|
|
17
18
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
18
19
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
19
20
|
/**
|
|
@@ -37,6 +38,7 @@ var DateRangeInput = /*#__PURE__*/_react.default.forwardRef(function (props, ref
|
|
|
37
38
|
onKeyDown = props.onKeyDown,
|
|
38
39
|
onBlur = props.onBlur,
|
|
39
40
|
onFocus = props.onFocus,
|
|
41
|
+
onPaste = props.onPaste,
|
|
40
42
|
rest = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
|
|
41
43
|
var _useClassNames = (0, _hooks.useClassNames)(classPrefix),
|
|
42
44
|
withClassPrefix = _useClassNames.withClassPrefix,
|
|
@@ -47,7 +49,8 @@ var DateRangeInput = /*#__PURE__*/_react.default.forwardRef(function (props, ref
|
|
|
47
49
|
selectedState = _useSelectedState.selectedState,
|
|
48
50
|
setSelectedState = _useSelectedState.setSelectedState;
|
|
49
51
|
var _useCustom = (0, _hooks.useCustom)('Calendar'),
|
|
50
|
-
locale = _useCustom.locale
|
|
52
|
+
locale = _useCustom.locale,
|
|
53
|
+
parseDate = _useCustom.parseDate;
|
|
51
54
|
var rangeFormatStr = "" + formatStr + character + formatStr;
|
|
52
55
|
var dateLocale = locale.dateLocale;
|
|
53
56
|
var _useControlled = (0, _hooks.useControlled)(valueProp, defaultValue),
|
|
@@ -218,6 +221,24 @@ var DateRangeInput = /*#__PURE__*/_react.default.forwardRef(function (props, ref
|
|
|
218
221
|
reset();
|
|
219
222
|
}
|
|
220
223
|
});
|
|
224
|
+
var handlePaste = (0, _hooks.useEventCallback)(function (event) {
|
|
225
|
+
var _event$clipboardData;
|
|
226
|
+
event.preventDefault();
|
|
227
|
+
var pasteText = (_event$clipboardData = event.clipboardData) === null || _event$clipboardData === void 0 ? void 0 : _event$clipboardData.getData('text');
|
|
228
|
+
var _ref = pasteText.split(character).map(function (date) {
|
|
229
|
+
return parseDate(date, formatStr);
|
|
230
|
+
}),
|
|
231
|
+
start = _ref[0],
|
|
232
|
+
end = _ref[1];
|
|
233
|
+
if ((0, _date.isValid)(start) && (0, _date.isValid)(end)) {
|
|
234
|
+
var nextValue = [start, end];
|
|
235
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(nextValue, event);
|
|
236
|
+
setValue(nextValue);
|
|
237
|
+
startDateState.setNewDate(start);
|
|
238
|
+
endDateState.setNewDate(end);
|
|
239
|
+
}
|
|
240
|
+
onPaste === null || onPaste === void 0 ? void 0 : onPaste(event);
|
|
241
|
+
});
|
|
221
242
|
var onKeyboardInput = (0, _DateInput.useKeyboardInputEvent)({
|
|
222
243
|
onSegmentChange: onSegmentChange,
|
|
223
244
|
onSegmentValueChange: onSegmentValueChange,
|
|
@@ -234,6 +255,7 @@ var DateRangeInput = /*#__PURE__*/_react.default.forwardRef(function (props, ref
|
|
|
234
255
|
ref: (0, _utils.mergeRefs)(inputRef, ref),
|
|
235
256
|
onKeyDown: onKeyboardInput,
|
|
236
257
|
onClick: handleClick,
|
|
258
|
+
onPaste: handlePaste,
|
|
237
259
|
value: renderedValue,
|
|
238
260
|
placeholder: placeholder || rangeFormatStr
|
|
239
261
|
}, focusEventProps, rest));
|
package/cjs/Form/Form.js
CHANGED
|
@@ -79,12 +79,13 @@ var Form = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
79
79
|
};
|
|
80
80
|
var _useFormValidate = (0, _useFormValidate2.default)(controlledFormError, formValidateProps),
|
|
81
81
|
formError = _useFormValidate.formError,
|
|
82
|
-
setFieldError = _useFormValidate.setFieldError,
|
|
83
82
|
onRemoveError = _useFormValidate.onRemoveError,
|
|
84
83
|
check = _useFormValidate.check,
|
|
85
84
|
checkAsync = _useFormValidate.checkAsync,
|
|
86
85
|
checkForField = _useFormValidate.checkForField,
|
|
86
|
+
checkFieldForNextValue = _useFormValidate.checkFieldForNextValue,
|
|
87
87
|
checkForFieldAsync = _useFormValidate.checkForFieldAsync,
|
|
88
|
+
checkFieldAsyncForNextValue = _useFormValidate.checkFieldAsyncForNextValue,
|
|
88
89
|
cleanErrors = _useFormValidate.cleanErrors,
|
|
89
90
|
resetErrors = _useFormValidate.resetErrors,
|
|
90
91
|
cleanErrorForField = _useFormValidate.cleanErrorForField;
|
|
@@ -150,12 +151,6 @@ var Form = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
150
151
|
var removeFieldError = (0, _hooks.useEventCallback)(function (name) {
|
|
151
152
|
onRemoveError(name);
|
|
152
153
|
});
|
|
153
|
-
var onFieldError = (0, _hooks.useEventCallback)(function (name, checkResult) {
|
|
154
|
-
setFieldError(name, checkResult);
|
|
155
|
-
});
|
|
156
|
-
var onFieldSuccess = (0, _hooks.useEventCallback)(function (name) {
|
|
157
|
-
removeFieldError(name);
|
|
158
|
-
});
|
|
159
154
|
var onFieldChange = (0, _hooks.useEventCallback)(function (name, value, event) {
|
|
160
155
|
var nextFormValue = setFieldValue(name, value);
|
|
161
156
|
onChange === null || onChange === void 0 ? void 0 : onChange(nextFormValue, event);
|
|
@@ -169,13 +164,12 @@ var Form = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
169
164
|
formError: formError,
|
|
170
165
|
nestedField: nestedField,
|
|
171
166
|
pushFieldRule: pushFieldRule,
|
|
172
|
-
getCombinedModel: getCombinedModel,
|
|
173
167
|
removeFieldValue: removeFieldValue,
|
|
174
168
|
removeFieldError: removeFieldError,
|
|
175
169
|
removeFieldRule: removeFieldRule,
|
|
176
|
-
onFieldSuccess: onFieldSuccess,
|
|
177
170
|
onFieldChange: onFieldChange,
|
|
178
|
-
|
|
171
|
+
checkFieldForNextValue: checkFieldForNextValue,
|
|
172
|
+
checkFieldAsyncForNextValue: checkFieldAsyncForNextValue
|
|
179
173
|
};
|
|
180
174
|
return /*#__PURE__*/_react.default.createElement("form", (0, _extends2.default)({}, rest, {
|
|
181
175
|
ref: formRef,
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { TypeAttributes } from '../internals/types';
|
|
3
|
-
import type { Schema, CheckResult } from 'schema-typed';
|
|
4
3
|
import type { FieldRuleType } from './hooks/useSchemaModel';
|
|
5
4
|
type RecordAny = Record<string, any>;
|
|
6
5
|
interface TrulyFormContextValue<T = RecordAny, M = any, E = {
|
|
@@ -8,14 +7,13 @@ interface TrulyFormContextValue<T = RecordAny, M = any, E = {
|
|
|
8
7
|
}> {
|
|
9
8
|
formError: E;
|
|
10
9
|
nestedField: boolean;
|
|
11
|
-
getCombinedModel: () => Schema;
|
|
12
10
|
removeFieldValue: (name: string) => void;
|
|
13
11
|
removeFieldError: (name: string) => void;
|
|
14
12
|
removeFieldRule: (name: string) => void;
|
|
15
13
|
pushFieldRule: (name: string, fieldRule: FieldRuleType) => void;
|
|
16
|
-
onFieldError: (name: string, fieldError: string | CheckResult) => void;
|
|
17
14
|
onFieldChange: (name: string, value: any, event: React.SyntheticEvent) => void;
|
|
18
|
-
|
|
15
|
+
checkFieldForNextValue: (name: string, nextValue: Record<string, unknown>, callback?: (checkResult: Record<string, unknown>) => void) => boolean;
|
|
16
|
+
checkFieldAsyncForNextValue: (name: string, nextValue: Record<string, unknown>) => Promise<Record<string, unknown>>;
|
|
19
17
|
}
|
|
20
18
|
type ExternalPropsContextValue = {
|
|
21
19
|
checkTrigger?: TypeAttributes.CheckTrigger;
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
/// <reference types="lodash" />
|
|
2
|
-
import type { CheckResult } from 'schema-typed';
|
|
3
2
|
export interface FormErrorProps {
|
|
4
3
|
formValue: any;
|
|
5
4
|
getCombinedModel: () => any;
|
|
@@ -11,11 +10,12 @@ export default function useFormValidate(formError: any, props: FormErrorProps):
|
|
|
11
10
|
formError: any;
|
|
12
11
|
check: (...args: any[]) => any;
|
|
13
12
|
checkForField: (...args: any[]) => any;
|
|
13
|
+
checkFieldForNextValue: (...args: any[]) => any;
|
|
14
14
|
checkAsync: (...args: any[]) => any;
|
|
15
15
|
checkForFieldAsync: (...args: any[]) => any;
|
|
16
|
+
checkFieldAsyncForNextValue: (...args: any[]) => any;
|
|
16
17
|
cleanErrors: (...args: any[]) => any;
|
|
17
18
|
resetErrors: (...args: any[]) => any;
|
|
18
19
|
cleanErrorForField: (...args: any[]) => any;
|
|
19
|
-
setFieldError: (fieldName: string, checkResult: string | CheckResult) => any;
|
|
20
20
|
onRemoveError: (name: string) => import("lodash").Omit<any, string>;
|
|
21
21
|
};
|