@douyinfe/semi-foundation 2.15.2-alpha.0 → 2.16.1

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 (59) hide show
  1. package/dropdown/menuFoundation.ts +4 -2
  2. package/input/input.scss +44 -9
  3. package/input/textarea.scss +2 -2
  4. package/lib/cjs/dropdown/menuFoundation.js +6 -3
  5. package/lib/cjs/input/input.css +32 -1
  6. package/lib/cjs/input/input.scss +44 -9
  7. package/lib/cjs/input/textarea.css +2 -2
  8. package/lib/cjs/input/textarea.scss +2 -2
  9. package/lib/cjs/radio/radio.css +75 -20
  10. package/lib/cjs/radio/radio.scss +36 -22
  11. package/lib/cjs/radio/rtl.scss +47 -0
  12. package/lib/cjs/select/select.css +2 -2
  13. package/lib/cjs/select/variables.scss +4 -4
  14. package/lib/cjs/slider/foundation.d.ts +9 -2
  15. package/lib/cjs/slider/foundation.js +195 -5
  16. package/lib/cjs/slider/slider.css +3 -0
  17. package/lib/cjs/slider/slider.scss +7 -5
  18. package/lib/cjs/slider/variables.scss +4 -4
  19. package/lib/cjs/switch/switch.css +2 -2
  20. package/lib/cjs/switch/switch.scss +2 -2
  21. package/lib/cjs/timePicker/foundation.d.ts +1 -1
  22. package/lib/cjs/timePicker/foundation.js +1 -1
  23. package/lib/cjs/tooltip/variables.scss +1 -1
  24. package/lib/cjs/treeSelect/treeSelect.css +2 -0
  25. package/lib/cjs/treeSelect/treeSelect.scss +2 -0
  26. package/lib/es/dropdown/menuFoundation.js +6 -3
  27. package/lib/es/input/input.css +32 -1
  28. package/lib/es/input/input.scss +44 -9
  29. package/lib/es/input/textarea.css +2 -2
  30. package/lib/es/input/textarea.scss +2 -2
  31. package/lib/es/radio/radio.css +75 -20
  32. package/lib/es/radio/radio.scss +36 -22
  33. package/lib/es/radio/rtl.scss +47 -0
  34. package/lib/es/select/select.css +2 -2
  35. package/lib/es/select/variables.scss +4 -4
  36. package/lib/es/slider/foundation.d.ts +9 -2
  37. package/lib/es/slider/foundation.js +192 -5
  38. package/lib/es/slider/slider.css +3 -0
  39. package/lib/es/slider/slider.scss +7 -5
  40. package/lib/es/slider/variables.scss +4 -4
  41. package/lib/es/switch/switch.css +2 -2
  42. package/lib/es/switch/switch.scss +2 -2
  43. package/lib/es/timePicker/foundation.d.ts +1 -1
  44. package/lib/es/timePicker/foundation.js +1 -1
  45. package/lib/es/tooltip/variables.scss +1 -1
  46. package/lib/es/treeSelect/treeSelect.css +2 -0
  47. package/lib/es/treeSelect/treeSelect.scss +2 -0
  48. package/package.json +2 -2
  49. package/radio/radio.scss +36 -22
  50. package/radio/rtl.scss +47 -0
  51. package/select/variables.scss +4 -4
  52. package/slider/foundation.ts +141 -9
  53. package/slider/slider.scss +7 -5
  54. package/slider/variables.scss +4 -4
  55. package/switch/switch.scss +2 -2
  56. package/timePicker/foundation.ts +1 -1
  57. package/tooltip/variables.scss +1 -1
  58. package/treeSelect/treeSelect.scss +2 -0
  59. package/utils/a11y.ts +2 -2
@@ -239,6 +239,7 @@ $module: #{$prefix}-tree-select;
239
239
  // right: 0;
240
240
  display: inline-flex;
241
241
  align-items: center;
242
+ flex-shrink: 0;
242
243
  height: 100%;
243
244
  justify-content: center;
244
245
  width: $width-treeSelect_arrow;
@@ -265,6 +266,7 @@ $module: #{$prefix}-tree-select;
265
266
  display: inline-flex;
266
267
  align-items: center;
267
268
  height: 100%;
269
+ flex-shrink: 0;
268
270
  justify-content: center;
269
271
  width: $width-treeSelect_arrow;
270
272
  color: $color-treeSelect_default-icon-default;
@@ -58,7 +58,10 @@ export default class DropdownMenuFoundation extends BaseFoundation {
58
58
  _forEachInstanceProperty(_context3 = this.menuItemNodes).call(_context3, item => {
59
59
  var _context4;
60
60
 
61
- this.firstChars.push(_trimInstanceProperty(_context4 = item.textContent).call(_context4)[0].toLowerCase());
61
+ var _a; // the menuItemNodes can be an component and not exit textContent
62
+
63
+
64
+ this.firstChars.push((_a = _trimInstanceProperty(_context4 = item.textContent).call(_context4)[0]) === null || _a === void 0 ? void 0 : _a.toLowerCase());
62
65
  });
63
66
  } // get the currently focused menu item
64
67
 
@@ -88,8 +91,8 @@ export default class DropdownMenuFoundation extends BaseFoundation {
88
91
 
89
92
  default:
90
93
  if (isPrintableCharacter(event.key)) {
91
- this.setFocusByFirstCharacter(curItem, event.key);
92
- handlePrevent(event);
94
+ this.setFocusByFirstCharacter(curItem, event.key); // it can be an input on Dropdown, handlePrevent may affect the input of the component
95
+ // handlePrevent(event);
93
96
  }
94
97
 
95
98
  break;
@@ -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-0);
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
  }
@@ -307,6 +335,9 @@
307
335
  background-color: transparent;
308
336
  box-sizing: border-box;
309
337
  }
338
+ .semi-input[type=password]::-ms-reveal, .semi-input[type=password]::-ms-clear {
339
+ display: none;
340
+ }
310
341
  .semi-input::placeholder {
311
342
  color: var(--semi-color-text-2);
312
343
  }
@@ -77,7 +77,7 @@ $module: #{$prefix}-input;
77
77
  }
78
78
 
79
79
  &:active {
80
- background-color: $color-input_default-bg-focus;
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
- // &:active {
104
- // background-color: $color-input_danger-bg-active;
105
- // border-color: $color-input_danger-border-active;
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
- // &:active {
124
- // background-color: $color-input_warning-bg-active;
125
- // border-color: $color-input_warning-border-active;
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,
@@ -415,6 +445,11 @@ $module: #{$prefix}-input;
415
445
  background-color: transparent;
416
446
  box-sizing: border-box;
417
447
 
448
+ &[type="password"]::-ms-reveal,
449
+ &[type="password"]::-ms-clear {
450
+ display: none;
451
+ }
452
+
418
453
  &::placeholder {
419
454
  color: $color-input_placeholder-text-default;
420
455
  }
@@ -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-light-active);
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-light-active);
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-active;
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-active;
113
+ border-color: $color-input_warning-border-focus;
114
114
  }
115
115
  }
116
116
 
@@ -6,8 +6,9 @@
6
6
  font-size: 14px;
7
7
  line-height: 20px;
8
8
  font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", Helvetica, Arial, sans-serif;
9
+ position: relative;
9
10
  display: inline-flex;
10
- column-gap: 8px;
11
+ flex-wrap: wrap;
11
12
  min-height: 20px;
12
13
  min-width: 16px;
13
14
  cursor: pointer;
@@ -55,7 +56,6 @@
55
56
  border-radius: var(--semi-border-radius-small);
56
57
  }
57
58
  .semi-radio-buttonRadioGroup {
58
- position: relative;
59
59
  padding: 4px;
60
60
  border-radius: var(--semi-border-radius-small);
61
61
  line-height: 16px;
@@ -79,6 +79,7 @@
79
79
  border: 1px solid transparent;
80
80
  }
81
81
  .semi-radio-cardRadioGroup .semi-radio-inner {
82
+ position: relative;
82
83
  margin-right: 8px;
83
84
  flex-shrink: 0;
84
85
  }
@@ -148,18 +149,19 @@
148
149
  border-color: var(--semi-color-primary-disabled);
149
150
  }
150
151
  .semi-radio-inner {
151
- display: inline-flex;
152
- margin-top: 2px;
153
- position: relative;
152
+ position: absolute;
153
+ display: inline-block;
154
+ top: 2px;
155
+ left: 0;
154
156
  width: 16px;
155
157
  height: 16px;
156
158
  vertical-align: sub;
157
159
  user-select: none;
158
160
  }
159
161
  .semi-radio-inner-display {
160
- display: inline-flex;
161
- align-items: center;
162
- justify-content: center;
162
+ position: absolute;
163
+ left: 0;
164
+ top: 0;
163
165
  box-sizing: border-box;
164
166
  width: 16px;
165
167
  height: 16px;
@@ -168,14 +170,11 @@
168
170
  background: transparent;
169
171
  }
170
172
  .semi-radio-inner-display .semi-icon {
173
+ position: absolute;
171
174
  width: 100%;
172
175
  height: 100%;
173
176
  font-size: 14px;
174
177
  }
175
- .semi-radio-content {
176
- display: flex;
177
- flex-direction: column;
178
- }
179
178
  .semi-radio:hover .semi-radio-inner-display {
180
179
  background: var(--semi-color-fill-0);
181
180
  }
@@ -184,6 +183,8 @@
184
183
  }
185
184
  .semi-radio-addon {
186
185
  user-select: none;
186
+ padding-left: 8px;
187
+ margin-left: 16px;
187
188
  color: var(--semi-color-text-0);
188
189
  display: inline-flex;
189
190
  align-items: center;
@@ -272,7 +273,11 @@
272
273
  color: var(--semi-color-disabled-text);
273
274
  }
274
275
  .semi-radio-extra {
276
+ flex-grow: 1;
277
+ flex-basis: 100%;
278
+ flex-shrink: 0;
275
279
  color: var(--semi-color-text-2);
280
+ padding-left: 24px;
276
281
  box-sizing: border-box;
277
282
  }
278
283
  .semi-radio-focus {
@@ -287,20 +292,25 @@
287
292
  line-height: 20px;
288
293
  font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", Helvetica, Arial, sans-serif;
289
294
  }
290
- .semi-radioGroup-vertical {
291
- display: flex;
292
- flex-direction: column;
293
- row-gap: 12px;
295
+ .semi-radioGroup-vertical .semi-radio:last-of-type {
296
+ margin-bottom: 0;
294
297
  }
295
298
  .semi-radioGroup-vertical-default .semi-radio {
296
- display: flex;
299
+ display: block;
300
+ margin-bottom: 12px;
297
301
  }
298
302
  .semi-radioGroup-vertical-card .semi-radio {
299
303
  display: flex;
304
+ margin-bottom: 16px;
300
305
  }
301
- .semi-radioGroup-horizontal {
302
- display: inline-flex;
303
- column-gap: 16px;
306
+ .semi-radioGroup-horizontal .semi-radio {
307
+ margin-right: 16px;
308
+ }
309
+ .semi-radioGroup-horizontal .semi-radio:last-of-type {
310
+ margin-right: 0;
311
+ }
312
+ .semi-radioGroup-horizontal-default {
313
+ display: inline-block;
304
314
  }
305
315
  .semi-radioGroup-buttonRadio {
306
316
  display: inline-block;
@@ -324,11 +334,56 @@
324
334
  .semi-portal-rtl .semi-radio-buttonRadioGroup:not(:last-child) {
325
335
  padding-left: 0;
326
336
  }
337
+ .semi-rtl .semi-radio-inner,
338
+ .semi-portal-rtl .semi-radio-inner {
339
+ left: auto;
340
+ right: 0;
341
+ }
342
+ .semi-rtl .semi-radio-inner-display,
343
+ .semi-portal-rtl .semi-radio-inner-display {
344
+ left: auto;
345
+ right: 0;
346
+ }
347
+ .semi-rtl .semi-radio-addon,
348
+ .semi-portal-rtl .semi-radio-addon {
349
+ padding-left: 0;
350
+ margin-left: 0;
351
+ padding-right: 8px;
352
+ margin-right: 16px;
353
+ }
327
354
  .semi-rtl .semi-radio-addon-buttonRadio,
328
355
  .semi-portal-rtl .semi-radio-addon-buttonRadio {
329
356
  margin-right: 0;
330
357
  }
358
+ .semi-rtl .semi-radio-extra,
359
+ .semi-portal-rtl .semi-radio-extra {
360
+ padding-left: 0;
361
+ padding-right: 24px;
362
+ }
363
+ .semi-rtl-isCardRadioGroup .semi-radio-inner,
364
+ .semi-portal-rtl-isCardRadioGroup .semi-radio-inner {
365
+ margin-right: 0;
366
+ margin-left: 8px;
367
+ }
368
+ .semi-rtl-isCardRadioGroup .semi-radio-addon,
369
+ .semi-portal-rtl-isCardRadioGroup .semi-radio-addon {
370
+ margin-right: 0;
371
+ padding-right: 0;
372
+ }
373
+ .semi-rtl-isCardRadioGroup .semi-radio-extra,
374
+ .semi-portal-rtl-isCardRadioGroup .semi-radio-extra {
375
+ padding-right: 0;
376
+ }
331
377
  .semi-rtl .semi-radioGroup,
332
378
  .semi-portal-rtl .semi-radioGroup {
333
379
  direction: rtl;
380
+ }
381
+ .semi-rtl .semi-radioGroup-horizontal .semi-radio,
382
+ .semi-portal-rtl .semi-radioGroup-horizontal .semi-radio {
383
+ margin-right: 0;
384
+ margin-left: 16px;
385
+ }
386
+ .semi-rtl .semi-radioGroup-horizontal .semi-radio:last-of-type,
387
+ .semi-portal-rtl .semi-radioGroup-horizontal .semi-radio:last-of-type {
388
+ margin-left: 0;
334
389
  }
@@ -6,8 +6,9 @@ $inner-width: $width-icon-medium;
6
6
  .#{$module} {
7
7
  @include box-sizing;
8
8
  @include font-size-regular;
9
+ position: relative;
9
10
  display: inline-flex;
10
- column-gap: $spacing-radio_addon-paddingLeft;
11
+ flex-wrap: wrap;
11
12
 
12
13
  &.#{$module}-vertical {
13
14
  display: block;
@@ -77,8 +78,6 @@ $inner-width: $width-icon-medium;
77
78
  }
78
79
 
79
80
  &-buttonRadioGroup {
80
- // Button needs to be positioned relative to parent
81
- position: relative;
82
81
  padding: $spacing-radio_buttonRadioGroup_middle-padding;
83
82
  border-radius: $radius-radio_buttonRadio;
84
83
  line-height: $font-radio_buttonRadioGroup_middle-lineHeight;
@@ -107,6 +106,7 @@ $inner-width: $width-icon-medium;
107
106
  border: $width-radio_cardRadioGroup_checked-border solid transparent;
108
107
 
109
108
  .#{$module}-inner {
109
+ position: relative;
110
110
  &-display {
111
111
  background: $color-radio_card-bg-default;
112
112
  }
@@ -205,19 +205,19 @@ $inner-width: $width-icon-medium;
205
205
  }
206
206
 
207
207
  &-inner {
208
- display: inline-flex;
209
- margin-top: 2px;
210
- // WARN: The absolute positioning used by the input does not occupy space, and relative cannot be removed here.
211
- position: relative;
208
+ position: absolute;
209
+ display: inline-block;
210
+ top: 2px;
211
+ left: 0;
212
212
  width: $width-radio_inner;
213
213
  height: $width-radio_inner;
214
214
  vertical-align: sub;
215
215
  user-select: none; // prevent text under it will be selected when double click
216
216
 
217
217
  &-display {
218
- display: inline-flex;
219
- align-items: center;
220
- justify-content: center;
218
+ position: absolute;
219
+ left: 0;
220
+ top: 0;
221
221
  @include box-sizing;
222
222
  width: $width-radio_inner;
223
223
  height: $width-radio_inner;
@@ -226,6 +226,7 @@ $inner-width: $width-icon-medium;
226
226
  background: $color-radio_default-bg-default;
227
227
 
228
228
  .#{$prefix}-icon {
229
+ position: absolute;
229
230
  width: 100%;
230
231
  height: 100%;
231
232
  font-size: 14px;
@@ -233,11 +234,6 @@ $inner-width: $width-icon-medium;
233
234
  }
234
235
  }
235
236
 
236
- &-content {
237
- display: flex;
238
- flex-direction: column;
239
- }
240
-
241
237
  &:hover {
242
238
  .#{$module}-inner-display {
243
239
  background: $color-radio_default-bg-hover;
@@ -252,6 +248,8 @@ $inner-width: $width-icon-medium;
252
248
 
253
249
  &-addon {
254
250
  user-select: none;
251
+ padding-left: $spacing-radio_addon-paddingLeft;
252
+ margin-left: $spacing-radio_addon-marginLeft;
255
253
  color: $color-radio_default-text-default;
256
254
  display: inline-flex;
257
255
  align-items: center;
@@ -374,7 +372,11 @@ $inner-width: $width-icon-medium;
374
372
  }
375
373
 
376
374
  &-extra {
375
+ flex-grow: 1;
376
+ flex-basis: 100%;
377
+ flex-shrink: 0;
377
378
  color: $color-radio_extra-text-default;
379
+ padding-left: $spacing-radio_extra-paddingLeft;
378
380
  box-sizing: border-box;
379
381
  }
380
382
 
@@ -391,25 +393,37 @@ $inner-width: $width-icon-medium;
391
393
  @include font-size-regular;
392
394
 
393
395
  &-vertical {
394
- display: flex;
395
- flex-direction: column;
396
- row-gap: $spacing-radio_group_vertical-marginBottom;
397
-
396
+ .#{$module} {
397
+ &:last-of-type {
398
+ margin-bottom: 0;
399
+ }
400
+ }
398
401
  &-default {
399
402
  .#{$module} {
400
- display: flex;
403
+ display: block;
404
+ margin-bottom: $spacing-radio_group_vertical-marginBottom;
405
+
401
406
  }
402
407
  }
403
408
  &-card {
404
409
  .#{$module} {
405
410
  display: flex;
411
+ margin-bottom: $spacing-radio_card_group_vertical-marginBottom;
406
412
  }
407
413
  }
408
414
  }
409
415
 
410
416
  &-horizontal {
411
- display: inline-flex;
412
- column-gap: $spacing-radio_group_horizontal-marginRight;
417
+ .#{$module} {
418
+ margin-right: $spacing-radio_group_horizontal-marginRight;
419
+
420
+ &:last-of-type {
421
+ margin-right: 0;
422
+ }
423
+ }
424
+ &-default {
425
+ display: inline-block;
426
+ }
413
427
  }
414
428
 
415
429
  &-buttonRadio {
@@ -18,14 +18,61 @@ $inner-width: $width-icon-medium;
18
18
  }
19
19
  }
20
20
 
21
+ &-inner {
22
+ left: auto;
23
+ right: 0;
24
+
25
+ &-display {
26
+ left: auto;
27
+ right: 0;
28
+ }
29
+ }
30
+
21
31
  &-addon {
32
+ padding-left: 0;
33
+ margin-left: 0;
34
+ padding-right: $spacing-radio_addon-paddingLeft;
35
+ margin-right: $spacing-radio_addon-marginLeft;
36
+
22
37
  &-buttonRadio {
23
38
  margin-right: $spacing-none;
24
39
  }
25
40
  }
41
+
42
+ &-extra {
43
+ padding-left: 0;
44
+ padding-right: $spacing-radio_extra-paddingLeft;
45
+ }
46
+ }
47
+
48
+ &-isCardRadioGroup {
49
+ .#{$module}-inner {
50
+ margin-right: 0;
51
+ margin-left: $spacing-radio_cardRadioGroup_inner-marginRight;
52
+ }
53
+
54
+ .#{$module}-addon {
55
+ margin-right: 0;
56
+ padding-right: 0;
57
+ }
58
+
59
+ .#{$module}-extra {
60
+ padding-right: 0;
61
+ }
26
62
  }
27
63
 
28
64
  .#{$module}Group {
29
65
  direction: rtl;
66
+
67
+ &-horizontal {
68
+ .#{$module} {
69
+ margin-right: 0;
70
+ margin-left: $spacing-radio_group_horizontal-marginRight;
71
+
72
+ &:last-of-type {
73
+ margin-left: 0;
74
+ }
75
+ }
76
+ }
30
77
  }
31
78
  }
@@ -283,11 +283,11 @@
283
283
  align-items: center;
284
284
  }
285
285
  .semi-select-prefix-text, .semi-select-suffix-text {
286
- margin: 0 12px;
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: 0 8px;
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 - 2; // 多项选择器标签组最小宽度
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: 0; // 选择器输入框前后缀文本垂直内边距
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: 0; // 选择器输入框前后缀图标垂直内边距
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