@douyinfe/semi-foundation 2.15.1 → 2.16.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/input/input.scss +39 -9
- package/input/textarea.scss +2 -2
- package/lib/cjs/input/input.css +29 -1
- package/lib/cjs/input/input.scss +39 -9
- package/lib/cjs/input/textarea.css +2 -2
- package/lib/cjs/input/textarea.scss +2 -2
- package/lib/cjs/select/select.css +2 -2
- package/lib/cjs/select/variables.scss +4 -4
- package/lib/cjs/slider/foundation.d.ts +9 -2
- package/lib/cjs/slider/foundation.js +195 -5
- package/lib/cjs/slider/slider.css +3 -0
- package/lib/cjs/slider/slider.scss +7 -5
- package/lib/cjs/slider/variables.scss +4 -4
- package/lib/cjs/tooltip/variables.scss +1 -1
- package/lib/cjs/treeSelect/treeSelect.css +2 -0
- package/lib/cjs/treeSelect/treeSelect.scss +2 -0
- package/lib/es/input/input.css +29 -1
- package/lib/es/input/input.scss +39 -9
- package/lib/es/input/textarea.css +2 -2
- package/lib/es/input/textarea.scss +2 -2
- package/lib/es/select/select.css +2 -2
- package/lib/es/select/variables.scss +4 -4
- package/lib/es/slider/foundation.d.ts +9 -2
- package/lib/es/slider/foundation.js +192 -5
- package/lib/es/slider/slider.css +3 -0
- package/lib/es/slider/slider.scss +7 -5
- package/lib/es/slider/variables.scss +4 -4
- package/lib/es/tooltip/variables.scss +1 -1
- package/lib/es/treeSelect/treeSelect.css +2 -0
- package/lib/es/treeSelect/treeSelect.scss +2 -0
- package/package.json +2 -2
- package/select/variables.scss +4 -4
- package/slider/foundation.ts +141 -9
- package/slider/slider.scss +7 -5
- package/slider/variables.scss +4 -4
- package/tooltip/variables.scss +1 -1
- package/treeSelect/treeSelect.scss +2 -0
- package/utils/a11y.ts +2 -2
package/input/input.scss
CHANGED
|
@@ -77,7 +77,7 @@ $module: #{$prefix}-input;
|
|
|
77
77
|
}
|
|
78
78
|
|
|
79
79
|
&:active {
|
|
80
|
-
background-color: $color-input_default-bg-
|
|
80
|
+
background-color: $color-input_default-bg-active;
|
|
81
81
|
border-color: $color-input_default-border-focus;
|
|
82
82
|
}
|
|
83
83
|
}
|
|
@@ -100,10 +100,10 @@ $module: #{$prefix}-input;
|
|
|
100
100
|
border-color: $color-input_danger-border-focus;
|
|
101
101
|
}
|
|
102
102
|
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
103
|
+
&:active {
|
|
104
|
+
background-color: $color-input_danger-bg-active;
|
|
105
|
+
border-color: $color-input_danger-border-focus;
|
|
106
|
+
}
|
|
107
107
|
}
|
|
108
108
|
|
|
109
109
|
&-warning {
|
|
@@ -120,10 +120,10 @@ $module: #{$prefix}-input;
|
|
|
120
120
|
border-color: $color-input_warning-border-focus;
|
|
121
121
|
}
|
|
122
122
|
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
123
|
+
&:active {
|
|
124
|
+
background-color: $color-input_warning-bg-active;
|
|
125
|
+
border-color: $color-input_warning-border-focus;
|
|
126
|
+
}
|
|
127
127
|
}
|
|
128
128
|
|
|
129
129
|
&__with-prefix {
|
|
@@ -288,6 +288,16 @@ $module: #{$prefix}-input;
|
|
|
288
288
|
}
|
|
289
289
|
}
|
|
290
290
|
|
|
291
|
+
// when have prepend and append, only make the input have active bg color
|
|
292
|
+
&:active {
|
|
293
|
+
background-color: $color-input_default-bg-active;
|
|
294
|
+
|
|
295
|
+
& + .#{$module}-clearbtn,
|
|
296
|
+
& ~ .#{$module}-modebtn {
|
|
297
|
+
background-color: $color-input_default-bg-active;
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
|
|
291
301
|
&-clearbtn,
|
|
292
302
|
&-modebtn,
|
|
293
303
|
&-clearbtn:hover,
|
|
@@ -328,6 +338,16 @@ $module: #{$prefix}-input;
|
|
|
328
338
|
}
|
|
329
339
|
}
|
|
330
340
|
|
|
341
|
+
&:active {
|
|
342
|
+
background-color: $color-input_danger-bg-active;
|
|
343
|
+
|
|
344
|
+
& + .#{$module}-clearbtn,
|
|
345
|
+
& + .#{$module}-modebtn {
|
|
346
|
+
background-color: $color-input_danger-bg-active;
|
|
347
|
+
border-color: $color-input_danger-border-focus;
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
|
|
331
351
|
&-clearbtn,
|
|
332
352
|
&-modebtn,
|
|
333
353
|
&-clearbtn:hover,
|
|
@@ -369,6 +389,16 @@ $module: #{$prefix}-input;
|
|
|
369
389
|
}
|
|
370
390
|
}
|
|
371
391
|
|
|
392
|
+
&:active {
|
|
393
|
+
background-color: $color-input_warning-bg-active;
|
|
394
|
+
|
|
395
|
+
& + .#{$module}-clearbtn,
|
|
396
|
+
& + .#{$module}-modebtn {
|
|
397
|
+
background-color: $color-input_warning-bg-active;
|
|
398
|
+
border-color: $color-input_warning-border-focus;
|
|
399
|
+
}
|
|
400
|
+
}
|
|
401
|
+
|
|
372
402
|
&-clearbtn,
|
|
373
403
|
&-modebtn,
|
|
374
404
|
&-clearbtn:hover,
|
package/input/textarea.scss
CHANGED
|
@@ -90,7 +90,7 @@ $module: #{$prefix}-input;
|
|
|
90
90
|
|
|
91
91
|
&:active {
|
|
92
92
|
background-color: $color-input_danger-bg-active;
|
|
93
|
-
border-color: $color-input_danger-border-
|
|
93
|
+
border-color: $color-input_danger-border-focus;
|
|
94
94
|
}
|
|
95
95
|
}
|
|
96
96
|
|
|
@@ -110,7 +110,7 @@ $module: #{$prefix}-input;
|
|
|
110
110
|
|
|
111
111
|
&:active {
|
|
112
112
|
background-color: $color-input_warning-bg-active;
|
|
113
|
-
border-color: $color-input_warning-border-
|
|
113
|
+
border-color: $color-input_warning-border-focus;
|
|
114
114
|
}
|
|
115
115
|
}
|
|
116
116
|
|
package/lib/cjs/input/input.css
CHANGED
|
@@ -68,7 +68,7 @@
|
|
|
68
68
|
border-color: var(--semi-color-focus-border);
|
|
69
69
|
}
|
|
70
70
|
.semi-input-wrapper-focus:active {
|
|
71
|
-
background-color: var(--semi-color-fill-
|
|
71
|
+
background-color: var(--semi-color-fill-2);
|
|
72
72
|
border-color: var(--semi-color-focus-border);
|
|
73
73
|
}
|
|
74
74
|
.semi-input-wrapper.semi-input-readonly {
|
|
@@ -86,6 +86,10 @@
|
|
|
86
86
|
background-color: var(--semi-color-danger-light-default);
|
|
87
87
|
border-color: var(--semi-color-danger);
|
|
88
88
|
}
|
|
89
|
+
.semi-input-wrapper-error:active {
|
|
90
|
+
background-color: var(--semi-color-danger-light-active);
|
|
91
|
+
border-color: var(--semi-color-danger);
|
|
92
|
+
}
|
|
89
93
|
.semi-input-wrapper-warning {
|
|
90
94
|
background-color: var(--semi-color-warning-light-default);
|
|
91
95
|
border-color: var(--semi-color-warning-light-default);
|
|
@@ -98,6 +102,10 @@
|
|
|
98
102
|
background-color: var(--semi-color-warning-light-default);
|
|
99
103
|
border-color: var(--semi-color-warning);
|
|
100
104
|
}
|
|
105
|
+
.semi-input-wrapper-warning:active {
|
|
106
|
+
background-color: var(--semi-color-warning-light-active);
|
|
107
|
+
border-color: var(--semi-color-warning);
|
|
108
|
+
}
|
|
101
109
|
.semi-input-wrapper__with-prefix {
|
|
102
110
|
display: inline-flex;
|
|
103
111
|
align-items: center;
|
|
@@ -218,6 +226,12 @@
|
|
|
218
226
|
.semi-input-wrapper.semi-input-wrapper__with-prepend .semi-input:focus ~ .semi-input-modebtn:not(:last-child), .semi-input-wrapper.semi-input-wrapper__with-append .semi-input:focus ~ .semi-input-modebtn:not(:last-child) {
|
|
219
227
|
border-radius: 0;
|
|
220
228
|
}
|
|
229
|
+
.semi-input-wrapper.semi-input-wrapper__with-prepend .semi-input:active, .semi-input-wrapper.semi-input-wrapper__with-append .semi-input:active {
|
|
230
|
+
background-color: var(--semi-color-fill-2);
|
|
231
|
+
}
|
|
232
|
+
.semi-input-wrapper.semi-input-wrapper__with-prepend .semi-input:active + .semi-input-clearbtn, .semi-input-wrapper.semi-input-wrapper__with-prepend .semi-input:active ~ .semi-input-modebtn, .semi-input-wrapper.semi-input-wrapper__with-append .semi-input:active + .semi-input-clearbtn, .semi-input-wrapper.semi-input-wrapper__with-append .semi-input:active ~ .semi-input-modebtn {
|
|
233
|
+
background-color: var(--semi-color-fill-2);
|
|
234
|
+
}
|
|
221
235
|
.semi-input-wrapper.semi-input-wrapper__with-prepend .semi-input-clearbtn, .semi-input-wrapper.semi-input-wrapper__with-prepend .semi-input-modebtn, .semi-input-wrapper.semi-input-wrapper__with-prepend .semi-input-clearbtn:hover, .semi-input-wrapper.semi-input-wrapper__with-prepend .semi-input-modebtn:hover, .semi-input-wrapper.semi-input-wrapper__with-append .semi-input-clearbtn, .semi-input-wrapper.semi-input-wrapper__with-append .semi-input-modebtn, .semi-input-wrapper.semi-input-wrapper__with-append .semi-input-clearbtn:hover, .semi-input-wrapper.semi-input-wrapper__with-append .semi-input-modebtn:hover {
|
|
222
236
|
background-color: var(--semi-color-fill-0);
|
|
223
237
|
}
|
|
@@ -246,6 +260,13 @@
|
|
|
246
260
|
background-color: var(--semi-color-danger-light-default);
|
|
247
261
|
border-color: var(--semi-color-danger);
|
|
248
262
|
}
|
|
263
|
+
.semi-input-wrapper.semi-input-wrapper__with-prepend.semi-input-wrapper-error .semi-input:active, .semi-input-wrapper.semi-input-wrapper__with-append.semi-input-wrapper-error .semi-input:active {
|
|
264
|
+
background-color: var(--semi-color-danger-light-active);
|
|
265
|
+
}
|
|
266
|
+
.semi-input-wrapper.semi-input-wrapper__with-prepend.semi-input-wrapper-error .semi-input:active + .semi-input-clearbtn, .semi-input-wrapper.semi-input-wrapper__with-prepend.semi-input-wrapper-error .semi-input:active + .semi-input-modebtn, .semi-input-wrapper.semi-input-wrapper__with-append.semi-input-wrapper-error .semi-input:active + .semi-input-clearbtn, .semi-input-wrapper.semi-input-wrapper__with-append.semi-input-wrapper-error .semi-input:active + .semi-input-modebtn {
|
|
267
|
+
background-color: var(--semi-color-danger-light-active);
|
|
268
|
+
border-color: var(--semi-color-danger);
|
|
269
|
+
}
|
|
249
270
|
.semi-input-wrapper.semi-input-wrapper__with-prepend.semi-input-wrapper-error .semi-input-clearbtn, .semi-input-wrapper.semi-input-wrapper__with-prepend.semi-input-wrapper-error .semi-input-modebtn, .semi-input-wrapper.semi-input-wrapper__with-prepend.semi-input-wrapper-error .semi-input-clearbtn:hover, .semi-input-wrapper.semi-input-wrapper__with-prepend.semi-input-wrapper-error .semi-input-modebtn:hover, .semi-input-wrapper.semi-input-wrapper__with-append.semi-input-wrapper-error .semi-input-clearbtn, .semi-input-wrapper.semi-input-wrapper__with-append.semi-input-wrapper-error .semi-input-modebtn, .semi-input-wrapper.semi-input-wrapper__with-append.semi-input-wrapper-error .semi-input-clearbtn:hover, .semi-input-wrapper.semi-input-wrapper__with-append.semi-input-wrapper-error .semi-input-modebtn:hover {
|
|
250
271
|
background-color: var(--semi-color-danger-light-default);
|
|
251
272
|
}
|
|
@@ -274,6 +295,13 @@
|
|
|
274
295
|
background-color: var(--semi-color-warning-light-default);
|
|
275
296
|
border-color: var(--semi-color-warning);
|
|
276
297
|
}
|
|
298
|
+
.semi-input-wrapper.semi-input-wrapper__with-prepend.semi-input-wrapper-warning .semi-input:active, .semi-input-wrapper.semi-input-wrapper__with-append.semi-input-wrapper-warning .semi-input:active {
|
|
299
|
+
background-color: var(--semi-color-warning-light-active);
|
|
300
|
+
}
|
|
301
|
+
.semi-input-wrapper.semi-input-wrapper__with-prepend.semi-input-wrapper-warning .semi-input:active + .semi-input-clearbtn, .semi-input-wrapper.semi-input-wrapper__with-prepend.semi-input-wrapper-warning .semi-input:active + .semi-input-modebtn, .semi-input-wrapper.semi-input-wrapper__with-append.semi-input-wrapper-warning .semi-input:active + .semi-input-clearbtn, .semi-input-wrapper.semi-input-wrapper__with-append.semi-input-wrapper-warning .semi-input:active + .semi-input-modebtn {
|
|
302
|
+
background-color: var(--semi-color-warning-light-active);
|
|
303
|
+
border-color: var(--semi-color-warning);
|
|
304
|
+
}
|
|
277
305
|
.semi-input-wrapper.semi-input-wrapper__with-prepend.semi-input-wrapper-warning .semi-input-clearbtn, .semi-input-wrapper.semi-input-wrapper__with-prepend.semi-input-wrapper-warning .semi-input-modebtn, .semi-input-wrapper.semi-input-wrapper__with-prepend.semi-input-wrapper-warning .semi-input-clearbtn:hover, .semi-input-wrapper.semi-input-wrapper__with-prepend.semi-input-wrapper-warning .semi-input-modebtn:hover, .semi-input-wrapper.semi-input-wrapper__with-append.semi-input-wrapper-warning .semi-input-clearbtn, .semi-input-wrapper.semi-input-wrapper__with-append.semi-input-wrapper-warning .semi-input-modebtn, .semi-input-wrapper.semi-input-wrapper__with-append.semi-input-wrapper-warning .semi-input-clearbtn:hover, .semi-input-wrapper.semi-input-wrapper__with-append.semi-input-wrapper-warning .semi-input-modebtn:hover {
|
|
278
306
|
background-color: var(--semi-color-warning-light-default);
|
|
279
307
|
}
|
package/lib/cjs/input/input.scss
CHANGED
|
@@ -77,7 +77,7 @@ $module: #{$prefix}-input;
|
|
|
77
77
|
}
|
|
78
78
|
|
|
79
79
|
&:active {
|
|
80
|
-
background-color: $color-input_default-bg-
|
|
80
|
+
background-color: $color-input_default-bg-active;
|
|
81
81
|
border-color: $color-input_default-border-focus;
|
|
82
82
|
}
|
|
83
83
|
}
|
|
@@ -100,10 +100,10 @@ $module: #{$prefix}-input;
|
|
|
100
100
|
border-color: $color-input_danger-border-focus;
|
|
101
101
|
}
|
|
102
102
|
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
103
|
+
&:active {
|
|
104
|
+
background-color: $color-input_danger-bg-active;
|
|
105
|
+
border-color: $color-input_danger-border-focus;
|
|
106
|
+
}
|
|
107
107
|
}
|
|
108
108
|
|
|
109
109
|
&-warning {
|
|
@@ -120,10 +120,10 @@ $module: #{$prefix}-input;
|
|
|
120
120
|
border-color: $color-input_warning-border-focus;
|
|
121
121
|
}
|
|
122
122
|
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
123
|
+
&:active {
|
|
124
|
+
background-color: $color-input_warning-bg-active;
|
|
125
|
+
border-color: $color-input_warning-border-focus;
|
|
126
|
+
}
|
|
127
127
|
}
|
|
128
128
|
|
|
129
129
|
&__with-prefix {
|
|
@@ -288,6 +288,16 @@ $module: #{$prefix}-input;
|
|
|
288
288
|
}
|
|
289
289
|
}
|
|
290
290
|
|
|
291
|
+
// when have prepend and append, only make the input have active bg color
|
|
292
|
+
&:active {
|
|
293
|
+
background-color: $color-input_default-bg-active;
|
|
294
|
+
|
|
295
|
+
& + .#{$module}-clearbtn,
|
|
296
|
+
& ~ .#{$module}-modebtn {
|
|
297
|
+
background-color: $color-input_default-bg-active;
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
|
|
291
301
|
&-clearbtn,
|
|
292
302
|
&-modebtn,
|
|
293
303
|
&-clearbtn:hover,
|
|
@@ -328,6 +338,16 @@ $module: #{$prefix}-input;
|
|
|
328
338
|
}
|
|
329
339
|
}
|
|
330
340
|
|
|
341
|
+
&:active {
|
|
342
|
+
background-color: $color-input_danger-bg-active;
|
|
343
|
+
|
|
344
|
+
& + .#{$module}-clearbtn,
|
|
345
|
+
& + .#{$module}-modebtn {
|
|
346
|
+
background-color: $color-input_danger-bg-active;
|
|
347
|
+
border-color: $color-input_danger-border-focus;
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
|
|
331
351
|
&-clearbtn,
|
|
332
352
|
&-modebtn,
|
|
333
353
|
&-clearbtn:hover,
|
|
@@ -369,6 +389,16 @@ $module: #{$prefix}-input;
|
|
|
369
389
|
}
|
|
370
390
|
}
|
|
371
391
|
|
|
392
|
+
&:active {
|
|
393
|
+
background-color: $color-input_warning-bg-active;
|
|
394
|
+
|
|
395
|
+
& + .#{$module}-clearbtn,
|
|
396
|
+
& + .#{$module}-modebtn {
|
|
397
|
+
background-color: $color-input_warning-bg-active;
|
|
398
|
+
border-color: $color-input_warning-border-focus;
|
|
399
|
+
}
|
|
400
|
+
}
|
|
401
|
+
|
|
372
402
|
&-clearbtn,
|
|
373
403
|
&-modebtn,
|
|
374
404
|
&-clearbtn:hover,
|
|
@@ -72,7 +72,7 @@
|
|
|
72
72
|
}
|
|
73
73
|
.semi-input-textarea-wrapper-error:active {
|
|
74
74
|
background-color: var(--semi-color-danger-light-active);
|
|
75
|
-
border-color: var(--semi-color-danger
|
|
75
|
+
border-color: var(--semi-color-danger);
|
|
76
76
|
}
|
|
77
77
|
.semi-input-textarea-wrapper-warning {
|
|
78
78
|
background-color: var(--semi-color-warning-light-default);
|
|
@@ -88,7 +88,7 @@
|
|
|
88
88
|
}
|
|
89
89
|
.semi-input-textarea-wrapper-warning:active {
|
|
90
90
|
background-color: var(--semi-color-warning-light-active);
|
|
91
|
-
border-color: var(--semi-color-warning
|
|
91
|
+
border-color: var(--semi-color-warning);
|
|
92
92
|
}
|
|
93
93
|
|
|
94
94
|
.semi-input-textarea {
|
|
@@ -90,7 +90,7 @@ $module: #{$prefix}-input;
|
|
|
90
90
|
|
|
91
91
|
&:active {
|
|
92
92
|
background-color: $color-input_danger-bg-active;
|
|
93
|
-
border-color: $color-input_danger-border-
|
|
93
|
+
border-color: $color-input_danger-border-focus;
|
|
94
94
|
}
|
|
95
95
|
}
|
|
96
96
|
|
|
@@ -110,7 +110,7 @@ $module: #{$prefix}-input;
|
|
|
110
110
|
|
|
111
111
|
&:active {
|
|
112
112
|
background-color: $color-input_warning-bg-active;
|
|
113
|
-
border-color: $color-input_warning-border-
|
|
113
|
+
border-color: $color-input_warning-border-focus;
|
|
114
114
|
}
|
|
115
115
|
}
|
|
116
116
|
|
|
@@ -283,11 +283,11 @@
|
|
|
283
283
|
align-items: center;
|
|
284
284
|
}
|
|
285
285
|
.semi-select-prefix-text, .semi-select-suffix-text {
|
|
286
|
-
margin:
|
|
286
|
+
margin: 0px 12px;
|
|
287
287
|
}
|
|
288
288
|
.semi-select-prefix-icon, .semi-select-suffix-icon {
|
|
289
289
|
color: var(--semi-color-text-2);
|
|
290
|
-
margin:
|
|
290
|
+
margin: 0px 8px;
|
|
291
291
|
}
|
|
292
292
|
.semi-select-suffix {
|
|
293
293
|
display: flex;
|
|
@@ -58,16 +58,16 @@ $width-select_arrow: 32px; // 选择器输入框下拉箭头宽度
|
|
|
58
58
|
$width-select_arrow_empty: 12px; // 选择器输入框下拉箭头为空时(有suffix icon)宽度
|
|
59
59
|
$width-select_clear-icon: 32px; // 选择器输入框清空按钮宽度
|
|
60
60
|
$width-select_group_top-border: $border-thickness-control; // 选择器菜单分组标题描边宽度
|
|
61
|
-
$height-select_multiple_content_wrapper-minHeight: $height-select_default -
|
|
61
|
+
$height-select_multiple_content_wrapper-minHeight: $height-select_default - 2px; // 多项选择器标签组最小宽度
|
|
62
62
|
$width-select-border-hover: $width-select-border; // 选择器输入框描边宽度 - 悬浮
|
|
63
63
|
$width-select-border-focus: $width-select-border-hover; // 选择器输入框描边宽度 - 按下
|
|
64
64
|
$width-select-border-active: $width-select-border-focus; // 选择器输入框描边宽度 - 选中
|
|
65
65
|
// Spacing
|
|
66
66
|
$spacing-select_option_tick-marginRight: $spacing-tight; // 选择器菜单选中对勾右侧外边距
|
|
67
67
|
$spacing-select_prefix_suffix_text-marginX: $spacing-base-tight; // 选择器输入框前后缀文本水平内边距
|
|
68
|
-
$spacing-select_prefix_suffix_text-marginY:
|
|
68
|
+
$spacing-select_prefix_suffix_text-marginY: 0px; // 选择器输入框前后缀文本垂直内边距
|
|
69
69
|
$spacing-select_prefix_suffix_icon-marginX: $spacing-tight; // 选择器输入框前后缀图标水平内边距
|
|
70
|
-
$spacing-select_prefix_suffix_icon-marginY:
|
|
70
|
+
$spacing-select_prefix_suffix_icon-marginY: 0px; // 选择器输入框前后缀图标垂直内边距
|
|
71
71
|
$spacing-select_create_tips-marginRight: $spacing-extra-tight; // 创建新选项右侧外边距
|
|
72
72
|
$spacing-select_group-marginTop: $spacing-extra-tight; // 选择器菜单分组标题顶部外边距
|
|
73
73
|
$spacing-select_group-paddingTop: $spacing-base-tight; // 选择器菜单分组标题顶部内边距
|
|
@@ -106,5 +106,5 @@ $font-select_inset_label-fontWeight: 600; // 选择器内嵌标签文本字重
|
|
|
106
106
|
$font-select_keyword-fontWeight: 600; // 选择器搜索结果命关键词中文本字重
|
|
107
107
|
|
|
108
108
|
// Other
|
|
109
|
-
$opacity-select_selection_text_inactive: .4;
|
|
109
|
+
$opacity-select_selection_text_inactive: 0.4;
|
|
110
110
|
|
|
@@ -26,7 +26,7 @@ export interface SliderProps {
|
|
|
26
26
|
'aria-label'?: string;
|
|
27
27
|
'aria-labelledby'?: string;
|
|
28
28
|
'aria-valuetext'?: string;
|
|
29
|
-
getAriaValueText?: (value: number) => string;
|
|
29
|
+
getAriaValueText?: (value: number, index?: number) => string;
|
|
30
30
|
}
|
|
31
31
|
export interface SliderState {
|
|
32
32
|
currentValue: number | number[];
|
|
@@ -40,6 +40,8 @@ export interface SliderState {
|
|
|
40
40
|
clickValue: 0;
|
|
41
41
|
showBoundary: boolean;
|
|
42
42
|
isInRenderTree: boolean;
|
|
43
|
+
firstDotFocusVisible: boolean;
|
|
44
|
+
secondDotFocusVisible: boolean;
|
|
43
45
|
}
|
|
44
46
|
export interface SliderLengths {
|
|
45
47
|
sliderX: number;
|
|
@@ -53,7 +55,6 @@ export interface ScrollParentVal {
|
|
|
53
55
|
}
|
|
54
56
|
export interface OverallVars {
|
|
55
57
|
dragging: boolean[];
|
|
56
|
-
chooseMovePos: 'min' | 'max';
|
|
57
58
|
}
|
|
58
59
|
export interface SliderAdapter extends DefaultAdapter<SliderProps, SliderState> {
|
|
59
60
|
getSliderLengths: () => SliderLengths;
|
|
@@ -189,7 +190,13 @@ export default class SliderFoundation extends BaseFoundation<SliderAdapter> {
|
|
|
189
190
|
onHandleEnter: (pos: SliderState['focusPos']) => void;
|
|
190
191
|
onHandleLeave: () => void;
|
|
191
192
|
onHandleUp: (e: any) => boolean;
|
|
193
|
+
_handleValueDecreaseWithKeyBoard: (step: number, handler: 'min' | 'max') => number | any[];
|
|
194
|
+
_handleValueIncreaseWithKeyBoard: (step: number, handler: 'min' | 'max') => any;
|
|
195
|
+
_handleHomeKey: (handler: 'min' | 'max') => any;
|
|
196
|
+
_handleEndKey: (handler: 'min' | 'max') => any;
|
|
197
|
+
handleKeyDown: (event: any, handler: 'min' | 'max') => void;
|
|
192
198
|
onFocus: (e: any, handler: 'min' | 'max') => void;
|
|
199
|
+
onBlur: (e: any, handler: 'min' | 'max') => void;
|
|
193
200
|
handleWrapClick: (e: any) => void;
|
|
194
201
|
/**
|
|
195
202
|
* Move the slider to the current click position
|
|
@@ -14,10 +14,16 @@ var _assign = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-sta
|
|
|
14
14
|
|
|
15
15
|
var _isArray = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/array/is-array"));
|
|
16
16
|
|
|
17
|
+
var _includes = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/includes"));
|
|
18
|
+
|
|
17
19
|
var _foundation = _interopRequireDefault(require("../base/foundation"));
|
|
18
20
|
|
|
19
21
|
var _touchPolyfill = _interopRequireDefault(require("../utils/touchPolyfill"));
|
|
20
22
|
|
|
23
|
+
var _warning = _interopRequireDefault(require("../utils/warning"));
|
|
24
|
+
|
|
25
|
+
var _a11y = require("../utils/a11y");
|
|
26
|
+
|
|
21
27
|
/* eslint-disable no-param-reassign */
|
|
22
28
|
|
|
23
29
|
/* eslint-disable max-len */
|
|
@@ -547,8 +553,7 @@ class SliderFoundation extends _foundation.default {
|
|
|
547
553
|
const handleMaxDom = this._adapter.getMaxHandleEl().current;
|
|
548
554
|
|
|
549
555
|
if (e.target === handleMinDom || e.target === handleMaxDom) {
|
|
550
|
-
|
|
551
|
-
e.stopPropagation();
|
|
556
|
+
(0, _a11y.handlePrevent)(e);
|
|
552
557
|
const touch = (0, _touchPolyfill.default)(e.touches[0], e);
|
|
553
558
|
this.onHandleDown(touch, handler);
|
|
554
559
|
}
|
|
@@ -612,18 +617,203 @@ class SliderFoundation extends _foundation.default {
|
|
|
612
617
|
this._adapter.setDragging([dragging[0], false]);
|
|
613
618
|
}
|
|
614
619
|
|
|
615
|
-
this._adapter.setStateVal('isDrag', false);
|
|
616
|
-
|
|
620
|
+
this._adapter.setStateVal('isDrag', false);
|
|
617
621
|
|
|
618
622
|
this._adapter.onHandleLeave();
|
|
619
623
|
|
|
620
624
|
this._adapter.onHandleUpAfter();
|
|
621
625
|
|
|
622
626
|
return true;
|
|
627
|
+
};
|
|
628
|
+
|
|
629
|
+
this._handleValueDecreaseWithKeyBoard = (step, handler) => {
|
|
630
|
+
const {
|
|
631
|
+
min,
|
|
632
|
+
currentValue
|
|
633
|
+
} = this.getStates();
|
|
634
|
+
const {
|
|
635
|
+
range
|
|
636
|
+
} = this.getProps();
|
|
637
|
+
|
|
638
|
+
if (handler === 'min') {
|
|
639
|
+
if (range) {
|
|
640
|
+
let newMinValue = currentValue[0] - step;
|
|
641
|
+
newMinValue = newMinValue < min ? min : newMinValue;
|
|
642
|
+
return [newMinValue, currentValue[1]];
|
|
643
|
+
} else {
|
|
644
|
+
let newMinValue = currentValue - step;
|
|
645
|
+
newMinValue = newMinValue < min ? min : newMinValue;
|
|
646
|
+
return newMinValue;
|
|
647
|
+
}
|
|
648
|
+
} else {
|
|
649
|
+
let newMaxValue = currentValue[1] - step;
|
|
650
|
+
newMaxValue = newMaxValue < currentValue[0] ? currentValue[0] : newMaxValue;
|
|
651
|
+
return [currentValue[0], newMaxValue];
|
|
652
|
+
}
|
|
653
|
+
};
|
|
654
|
+
|
|
655
|
+
this._handleValueIncreaseWithKeyBoard = (step, handler) => {
|
|
656
|
+
const {
|
|
657
|
+
max,
|
|
658
|
+
currentValue
|
|
659
|
+
} = this.getStates();
|
|
660
|
+
const {
|
|
661
|
+
range
|
|
662
|
+
} = this.getProps();
|
|
663
|
+
|
|
664
|
+
if (handler === 'min') {
|
|
665
|
+
if (range) {
|
|
666
|
+
let newMinValue = currentValue[0] + step;
|
|
667
|
+
newMinValue = newMinValue > currentValue[1] ? currentValue[1] : newMinValue;
|
|
668
|
+
return [newMinValue, currentValue[1]];
|
|
669
|
+
} else {
|
|
670
|
+
let newMinValue = currentValue + step;
|
|
671
|
+
newMinValue = newMinValue > max ? max : newMinValue;
|
|
672
|
+
return newMinValue;
|
|
673
|
+
}
|
|
674
|
+
} else {
|
|
675
|
+
let newMaxValue = currentValue[1] + step;
|
|
676
|
+
newMaxValue = newMaxValue > max ? max : newMaxValue;
|
|
677
|
+
return [currentValue[0], newMaxValue];
|
|
678
|
+
}
|
|
679
|
+
};
|
|
680
|
+
|
|
681
|
+
this._handleHomeKey = handler => {
|
|
682
|
+
const {
|
|
683
|
+
min,
|
|
684
|
+
currentValue
|
|
685
|
+
} = this.getStates();
|
|
686
|
+
const {
|
|
687
|
+
range
|
|
688
|
+
} = this.getProps();
|
|
689
|
+
|
|
690
|
+
if (handler === 'min') {
|
|
691
|
+
if (range) {
|
|
692
|
+
return [min, currentValue[1]];
|
|
693
|
+
} else {
|
|
694
|
+
return min;
|
|
695
|
+
}
|
|
696
|
+
} else {
|
|
697
|
+
return [currentValue[0], currentValue[0]];
|
|
698
|
+
}
|
|
699
|
+
};
|
|
700
|
+
|
|
701
|
+
this._handleEndKey = handler => {
|
|
702
|
+
const {
|
|
703
|
+
max,
|
|
704
|
+
currentValue
|
|
705
|
+
} = this.getStates();
|
|
706
|
+
const {
|
|
707
|
+
range
|
|
708
|
+
} = this.getProps();
|
|
709
|
+
|
|
710
|
+
if (handler === 'min') {
|
|
711
|
+
if (range) {
|
|
712
|
+
return [currentValue[1], currentValue[1]];
|
|
713
|
+
} else {
|
|
714
|
+
return max;
|
|
715
|
+
}
|
|
716
|
+
} else {
|
|
717
|
+
return [currentValue[0], max];
|
|
718
|
+
}
|
|
719
|
+
};
|
|
720
|
+
|
|
721
|
+
this.handleKeyDown = (event, handler) => {
|
|
722
|
+
var _context;
|
|
723
|
+
|
|
724
|
+
const {
|
|
725
|
+
min,
|
|
726
|
+
max,
|
|
727
|
+
currentValue
|
|
728
|
+
} = this.getStates();
|
|
729
|
+
const {
|
|
730
|
+
step,
|
|
731
|
+
range
|
|
732
|
+
} = this.getProps();
|
|
733
|
+
let outputValue;
|
|
734
|
+
|
|
735
|
+
switch (event.key) {
|
|
736
|
+
case "ArrowLeft":
|
|
737
|
+
case "ArrowDown":
|
|
738
|
+
outputValue = this._handleValueDecreaseWithKeyBoard(step, handler);
|
|
739
|
+
break;
|
|
740
|
+
|
|
741
|
+
case "ArrowRight":
|
|
742
|
+
case "ArrowUp":
|
|
743
|
+
outputValue = this._handleValueIncreaseWithKeyBoard(step, handler);
|
|
744
|
+
break;
|
|
745
|
+
|
|
746
|
+
case "PageUp":
|
|
747
|
+
outputValue = this._handleValueIncreaseWithKeyBoard(10 * step, handler);
|
|
748
|
+
break;
|
|
749
|
+
|
|
750
|
+
case "PageDown":
|
|
751
|
+
outputValue = this._handleValueDecreaseWithKeyBoard(10 * step, handler);
|
|
752
|
+
break;
|
|
753
|
+
|
|
754
|
+
case "Home":
|
|
755
|
+
outputValue = this._handleHomeKey(handler);
|
|
756
|
+
break;
|
|
757
|
+
|
|
758
|
+
case "End":
|
|
759
|
+
outputValue = this._handleEndKey(handler);
|
|
760
|
+
break;
|
|
761
|
+
|
|
762
|
+
case 'default':
|
|
763
|
+
break;
|
|
764
|
+
}
|
|
765
|
+
|
|
766
|
+
if ((0, _includes.default)(_context = ["ArrowLeft", "ArrowDown", "ArrowRight", "ArrowUp", "PageUp", "PageDown", "Home", "End"]).call(_context, event.key)) {
|
|
767
|
+
let update = true;
|
|
768
|
+
|
|
769
|
+
if ((0, _isArray.default)(currentValue)) {
|
|
770
|
+
update = !(currentValue[0] === outputValue[0] && currentValue[1] === outputValue[1]);
|
|
771
|
+
} else {
|
|
772
|
+
update = currentValue !== outputValue;
|
|
773
|
+
}
|
|
774
|
+
|
|
775
|
+
if (update) {
|
|
776
|
+
this._adapter.updateCurrentValue(outputValue);
|
|
777
|
+
|
|
778
|
+
this._adapter.notifyChange(outputValue);
|
|
779
|
+
}
|
|
780
|
+
|
|
781
|
+
(0, _a11y.handlePrevent)(event);
|
|
782
|
+
}
|
|
623
783
|
}; // eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
624
784
|
|
|
625
785
|
|
|
626
|
-
this.onFocus = (e, handler) => {
|
|
786
|
+
this.onFocus = (e, handler) => {
|
|
787
|
+
(0, _a11y.handlePrevent)(e);
|
|
788
|
+
const {
|
|
789
|
+
target
|
|
790
|
+
} = e;
|
|
791
|
+
|
|
792
|
+
try {
|
|
793
|
+
if (target.matches(':focus-visible')) {
|
|
794
|
+
if (handler === 'min') {
|
|
795
|
+
this._adapter.setStateVal('firstDotFocusVisible', true);
|
|
796
|
+
} else {
|
|
797
|
+
this._adapter.setStateVal('secondDotFocusVisible', true);
|
|
798
|
+
}
|
|
799
|
+
}
|
|
800
|
+
} catch (error) {
|
|
801
|
+
(0, _warning.default)(true, 'Warning: [Semi Slider] The current browser does not support the focus-visible');
|
|
802
|
+
}
|
|
803
|
+
};
|
|
804
|
+
|
|
805
|
+
this.onBlur = (e, handler) => {
|
|
806
|
+
const {
|
|
807
|
+
firstDotFocusVisible,
|
|
808
|
+
secondDotFocusVisible
|
|
809
|
+
} = this.getStates();
|
|
810
|
+
|
|
811
|
+
if (handler === 'min') {
|
|
812
|
+
firstDotFocusVisible && this._adapter.setStateVal('firstDotFocusVisible', false);
|
|
813
|
+
} else {
|
|
814
|
+
secondDotFocusVisible && this._adapter.setStateVal('secondDotFocusVisible', false);
|
|
815
|
+
}
|
|
816
|
+
};
|
|
627
817
|
|
|
628
818
|
this.handleWrapClick = e => {
|
|
629
819
|
const {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
//@import '../theme/variables.scss';
|
|
2
|
-
@import
|
|
2
|
+
@import './variables.scss';
|
|
3
3
|
|
|
4
4
|
$module: #{$prefix}-slider;
|
|
5
5
|
|
|
@@ -29,7 +29,7 @@ $module: #{$prefix}-slider;
|
|
|
29
29
|
font-variant: tabular-nums;
|
|
30
30
|
line-height: $font-slider_rail-lineHeight;
|
|
31
31
|
list-style: none;
|
|
32
|
-
font-feature-settings:
|
|
32
|
+
font-feature-settings: 'tnum';
|
|
33
33
|
position: absolute;
|
|
34
34
|
height: $height-slider_rail;
|
|
35
35
|
cursor: pointer;
|
|
@@ -54,7 +54,11 @@ $module: #{$prefix}-slider;
|
|
|
54
54
|
border: none;
|
|
55
55
|
border-radius: 50%;
|
|
56
56
|
cursor: pointer;
|
|
57
|
-
transition: #fff .3s;
|
|
57
|
+
transition: #fff 0.3s;
|
|
58
|
+
|
|
59
|
+
&:focus-visible {
|
|
60
|
+
outline: $width-slider_handle-focus solid $color-slider_handle-focus;
|
|
61
|
+
}
|
|
58
62
|
}
|
|
59
63
|
|
|
60
64
|
&-handle:hover {
|
|
@@ -133,10 +137,8 @@ $module: #{$prefix}-slider;
|
|
|
133
137
|
text-align: center;
|
|
134
138
|
cursor: pointer;
|
|
135
139
|
transform: translate(-50%, 0) rotate(-180deg);
|
|
136
|
-
|
|
137
140
|
}
|
|
138
141
|
|
|
139
|
-
|
|
140
142
|
&-boundary {
|
|
141
143
|
position: relative;
|
|
142
144
|
font-size: $font-size-small;
|