@douyinfe/semi-foundation 2.37.0 → 2.37.2

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.
@@ -25,7 +25,7 @@ $module: #{$prefix}-cascader;
25
25
  border: $width-cascader_hover-border $color-cascader_default-border-hover solid;
26
26
  }
27
27
 
28
- &:focus {
28
+ &:focus:not(&-disabled) {
29
29
  border: $width-cascader_focus-border solid $color-cascader_default-border-focus;
30
30
  background-color: $color-cascader_default-bg-default;
31
31
  outline: 0;
@@ -21,7 +21,7 @@
21
21
  background-color: var(--semi-color-fill-1);
22
22
  border: 1px transparent solid;
23
23
  }
24
- .semi-cascader:focus {
24
+ .semi-cascader:focus:not(.semi-cascader-disabled) {
25
25
  border: 1px solid var(--semi-color-focus-border);
26
26
  background-color: var(--semi-color-fill-0);
27
27
  outline: 0;
@@ -25,7 +25,7 @@ $module: #{$prefix}-cascader;
25
25
  border: $width-cascader_hover-border $color-cascader_default-border-hover solid;
26
26
  }
27
27
 
28
- &:focus {
28
+ &:focus:not(&-disabled) {
29
29
  border: $width-cascader_focus-border solid $color-cascader_default-border-focus;
30
30
  background-color: $color-cascader_default-bg-default;
31
31
  outline: 0;
@@ -107,8 +107,8 @@ $inner-width: $width-icon-medium;
107
107
  flex-wrap: nowrap;
108
108
  border-radius: $radius-radio_cardRadioGroup;
109
109
  padding: $spacing-radio_cardRadioGroup-paddingY $spacing-radio_cardRadioGroup-paddingX;
110
- background: transparent;
111
- border: $width-radio_cardRadioGroup_checked-border solid transparent;
110
+ background: $color-radio_cardRadioGroup-bg-default;
111
+ border: $width-radio_cardRadioGroup_checked-border solid $color-radio_cardRadioGroup_border-default;
112
112
  transition: background-color $transition_duration_radio-bg $transition_function-radio-bg $transition_delay-radio-bg,
113
113
  border $transition_duration-radio-border $transition_function-radio-border $transition_delay-radio-border;
114
114
 
@@ -172,7 +172,7 @@ $inner-width: $width-icon-medium;
172
172
 
173
173
  &_disabled {
174
174
  &:active {
175
- background: transparent;
175
+ background: $color-radio_cardRadioGroup_disabled-bg-active;
176
176
  }
177
177
  }
178
178
 
@@ -32,10 +32,13 @@ $color-radio_buttonRadio-text-disabled: var(--semi-color-disabled-text); // 按
32
32
  $color-radio_addon_buttonRadio-bg-hover: var(--semi-color-fill-1); // 按钮样式单选悬浮态背景色
33
33
  $color-radio_addon_buttonRadio-text-checked: var(--semi-color-primary); // 按钮样式单选选中项文字颜色
34
34
  $color-radio_addon_buttonRadio-bg-checked: var(--semi-color-bg-3); // 按钮样式单选选中项背景颜色
35
+ $color-radio_cardRadioGroup-bg-default: transparent; // 卡片样式单选默认背景色
35
36
  $color-radio_cardRadioGroup-bg-checked: var(--semi-color-primary-light-default); // 卡片样式单选选中态背景色
36
37
  $color-radio_cardRadioGroup_disabled-bg-checked: var(--semi-color-primary-light-default); // 卡片样式单选选中且禁用时的背景色
38
+ $color-radio_cardRadioGroup_disabled-bg-active: transparent; // 卡片样式单选禁用时的背景色 - 按下态
37
39
  $color-radio_cardRadioGroup-bg-hover: var(--semi-color-fill-0); // 卡片样式单选悬浮态背景色
38
40
  $color-radio_cardRadioGroup-bg-active: var(--semi-color-fill-1); // 卡片样式单选按下态背景色
41
+ $color-radio_cardRadioGroup_border-default: transparent; // 卡片样式单选默认描边颜色
39
42
  $color-radio_cardRadioGroup_border-active: var(--semi-color-primary); // 卡片样式单选选中态描边颜色
40
43
  $color-radio_cardRadioGroup_checked_border-active: var(--semi-color-primary-active); // 卡片样式单选选中态描边颜色 - 按下态
41
44
  $color-radio_cardRadioGroup_checked_border-hover: var(--semi-color-primary-hover); // 卡片样式单选选中态描边颜色 - 悬浮态
@@ -135,7 +135,7 @@ export default class TreeSelectFoundation<P = Record<string, any>, S = Record<st
135
135
  focusInput(bool: boolean): void;
136
136
  _notifyMultipleChange(key: string[], e: any): void;
137
137
  _notifyChange(key: any, e: any): void;
138
- _registerClickOutsideHandler: (e: any) => void;
138
+ _registerClickOutsideHandler: () => void;
139
139
  _notifyFocus(e: any): void;
140
140
  handleTriggerFocus(e: any): void;
141
141
  _notifyBlur(e: any): void;
@@ -21,7 +21,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
21
21
  class TreeSelectFoundation extends _foundation.default {
22
22
  constructor(adapter) {
23
23
  super(Object.assign({}, adapter));
24
- this._registerClickOutsideHandler = e => {
24
+ this._registerClickOutsideHandler = () => {
25
25
  this._adapter.registerClickOutsideHandler(e => {
26
26
  this.handlerTriggerBlur(e);
27
27
  this.close(e);
@@ -37,11 +37,13 @@ class TreeSelectFoundation extends _foundation.default {
37
37
  const triggerSearch = searchPosition === _constants.strings.SEARCH_POSITION_TRIGGER && filterTreeNode;
38
38
  const triggerSearchAutoFocus = searchAutoFocus && triggerSearch;
39
39
  this._setDropdownWidth();
40
- const isOpen = (this.getProp('defaultOpen') || triggerSearchAutoFocus) && !this._isDisabled();
40
+ const able = !this._isDisabled();
41
+ const isOpen = (this.getProp('defaultOpen') || triggerSearchAutoFocus) && able;
41
42
  if (isOpen) {
42
43
  this.open();
44
+ this._registerClickOutsideHandler();
43
45
  }
44
- if (triggerSearchAutoFocus) {
46
+ if (triggerSearchAutoFocus && able) {
45
47
  this.handleTriggerFocus(null);
46
48
  }
47
49
  }
@@ -272,7 +274,7 @@ class TreeSelectFoundation extends _foundation.default {
272
274
  handleTriggerFocus(e) {
273
275
  this._adapter.updateIsFocus(true);
274
276
  this._notifyFocus(e);
275
- this._registerClickOutsideHandler(e);
277
+ this._registerClickOutsideHandler();
276
278
  }
277
279
  // Scenes that may trigger blur
278
280
  // 1、clickOutSide
@@ -282,6 +284,10 @@ class TreeSelectFoundation extends _foundation.default {
282
284
  this._adapter.notifyBlur(e);
283
285
  }
284
286
  handlerTriggerBlur(e) {
287
+ const isFocus = this.getState('isFocus');
288
+ if (!isFocus) {
289
+ return;
290
+ }
285
291
  this._adapter.updateIsFocus(false);
286
292
  this._notifyBlur(e);
287
293
  this._adapter.unregisterClickOutsideHandler();
@@ -21,7 +21,7 @@
21
21
  background-color: var(--semi-color-fill-1);
22
22
  border: 1px transparent solid;
23
23
  }
24
- .semi-cascader:focus {
24
+ .semi-cascader:focus:not(.semi-cascader-disabled) {
25
25
  border: 1px solid var(--semi-color-focus-border);
26
26
  background-color: var(--semi-color-fill-0);
27
27
  outline: 0;
@@ -25,7 +25,7 @@ $module: #{$prefix}-cascader;
25
25
  border: $width-cascader_hover-border $color-cascader_default-border-hover solid;
26
26
  }
27
27
 
28
- &:focus {
28
+ &:focus:not(&-disabled) {
29
29
  border: $width-cascader_focus-border solid $color-cascader_default-border-focus;
30
30
  background-color: $color-cascader_default-bg-default;
31
31
  outline: 0;
@@ -107,8 +107,8 @@ $inner-width: $width-icon-medium;
107
107
  flex-wrap: nowrap;
108
108
  border-radius: $radius-radio_cardRadioGroup;
109
109
  padding: $spacing-radio_cardRadioGroup-paddingY $spacing-radio_cardRadioGroup-paddingX;
110
- background: transparent;
111
- border: $width-radio_cardRadioGroup_checked-border solid transparent;
110
+ background: $color-radio_cardRadioGroup-bg-default;
111
+ border: $width-radio_cardRadioGroup_checked-border solid $color-radio_cardRadioGroup_border-default;
112
112
  transition: background-color $transition_duration_radio-bg $transition_function-radio-bg $transition_delay-radio-bg,
113
113
  border $transition_duration-radio-border $transition_function-radio-border $transition_delay-radio-border;
114
114
 
@@ -172,7 +172,7 @@ $inner-width: $width-icon-medium;
172
172
 
173
173
  &_disabled {
174
174
  &:active {
175
- background: transparent;
175
+ background: $color-radio_cardRadioGroup_disabled-bg-active;
176
176
  }
177
177
  }
178
178
 
@@ -32,10 +32,13 @@ $color-radio_buttonRadio-text-disabled: var(--semi-color-disabled-text); // 按
32
32
  $color-radio_addon_buttonRadio-bg-hover: var(--semi-color-fill-1); // 按钮样式单选悬浮态背景色
33
33
  $color-radio_addon_buttonRadio-text-checked: var(--semi-color-primary); // 按钮样式单选选中项文字颜色
34
34
  $color-radio_addon_buttonRadio-bg-checked: var(--semi-color-bg-3); // 按钮样式单选选中项背景颜色
35
+ $color-radio_cardRadioGroup-bg-default: transparent; // 卡片样式单选默认背景色
35
36
  $color-radio_cardRadioGroup-bg-checked: var(--semi-color-primary-light-default); // 卡片样式单选选中态背景色
36
37
  $color-radio_cardRadioGroup_disabled-bg-checked: var(--semi-color-primary-light-default); // 卡片样式单选选中且禁用时的背景色
38
+ $color-radio_cardRadioGroup_disabled-bg-active: transparent; // 卡片样式单选禁用时的背景色 - 按下态
37
39
  $color-radio_cardRadioGroup-bg-hover: var(--semi-color-fill-0); // 卡片样式单选悬浮态背景色
38
40
  $color-radio_cardRadioGroup-bg-active: var(--semi-color-fill-1); // 卡片样式单选按下态背景色
41
+ $color-radio_cardRadioGroup_border-default: transparent; // 卡片样式单选默认描边颜色
39
42
  $color-radio_cardRadioGroup_border-active: var(--semi-color-primary); // 卡片样式单选选中态描边颜色
40
43
  $color-radio_cardRadioGroup_checked_border-active: var(--semi-color-primary-active); // 卡片样式单选选中态描边颜色 - 按下态
41
44
  $color-radio_cardRadioGroup_checked_border-hover: var(--semi-color-primary-hover); // 卡片样式单选选中态描边颜色 - 悬浮态
@@ -135,7 +135,7 @@ export default class TreeSelectFoundation<P = Record<string, any>, S = Record<st
135
135
  focusInput(bool: boolean): void;
136
136
  _notifyMultipleChange(key: string[], e: any): void;
137
137
  _notifyChange(key: any, e: any): void;
138
- _registerClickOutsideHandler: (e: any) => void;
138
+ _registerClickOutsideHandler: () => void;
139
139
  _notifyFocus(e: any): void;
140
140
  handleTriggerFocus(e: any): void;
141
141
  _notifyBlur(e: any): void;
@@ -14,7 +14,7 @@ import isEnterPress from '../utils/isEnterPress';
14
14
  export default class TreeSelectFoundation extends BaseFoundation {
15
15
  constructor(adapter) {
16
16
  super(Object.assign({}, adapter));
17
- this._registerClickOutsideHandler = e => {
17
+ this._registerClickOutsideHandler = () => {
18
18
  this._adapter.registerClickOutsideHandler(e => {
19
19
  this.handlerTriggerBlur(e);
20
20
  this.close(e);
@@ -30,11 +30,13 @@ export default class TreeSelectFoundation extends BaseFoundation {
30
30
  const triggerSearch = searchPosition === strings.SEARCH_POSITION_TRIGGER && filterTreeNode;
31
31
  const triggerSearchAutoFocus = searchAutoFocus && triggerSearch;
32
32
  this._setDropdownWidth();
33
- const isOpen = (this.getProp('defaultOpen') || triggerSearchAutoFocus) && !this._isDisabled();
33
+ const able = !this._isDisabled();
34
+ const isOpen = (this.getProp('defaultOpen') || triggerSearchAutoFocus) && able;
34
35
  if (isOpen) {
35
36
  this.open();
37
+ this._registerClickOutsideHandler();
36
38
  }
37
- if (triggerSearchAutoFocus) {
39
+ if (triggerSearchAutoFocus && able) {
38
40
  this.handleTriggerFocus(null);
39
41
  }
40
42
  }
@@ -265,7 +267,7 @@ export default class TreeSelectFoundation extends BaseFoundation {
265
267
  handleTriggerFocus(e) {
266
268
  this._adapter.updateIsFocus(true);
267
269
  this._notifyFocus(e);
268
- this._registerClickOutsideHandler(e);
270
+ this._registerClickOutsideHandler();
269
271
  }
270
272
  // Scenes that may trigger blur
271
273
  // 1、clickOutSide
@@ -275,6 +277,10 @@ export default class TreeSelectFoundation extends BaseFoundation {
275
277
  this._adapter.notifyBlur(e);
276
278
  }
277
279
  handlerTriggerBlur(e) {
280
+ const isFocus = this.getState('isFocus');
281
+ if (!isFocus) {
282
+ return;
283
+ }
278
284
  this._adapter.updateIsFocus(false);
279
285
  this._notifyBlur(e);
280
286
  this._adapter.unregisterClickOutsideHandler();
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "@douyinfe/semi-foundation",
3
- "version": "2.37.0",
3
+ "version": "2.37.2",
4
4
  "description": "",
5
5
  "scripts": {
6
6
  "build:lib": "node ./scripts/compileLib.js",
7
7
  "prepublishOnly": "npm run build:lib"
8
8
  },
9
9
  "dependencies": {
10
- "@douyinfe/semi-animation": "2.12.0",
10
+ "@douyinfe/semi-animation": "2.37.2",
11
11
  "async-validator": "^3.5.0",
12
12
  "classnames": "^2.2.6",
13
13
  "date-fns": "^2.29.3",
@@ -23,7 +23,7 @@
23
23
  "*.scss",
24
24
  "*.css"
25
25
  ],
26
- "gitHead": "3d2a2680186785f167b1bb0f9c719a2945c3c1f0",
26
+ "gitHead": "a60ba17cdb9b16ace637706583ea31dbf3a6a255",
27
27
  "devDependencies": {
28
28
  "@babel/plugin-transform-runtime": "^7.15.8",
29
29
  "@babel/preset-env": "^7.15.8",
package/radio/radio.scss CHANGED
@@ -107,8 +107,8 @@ $inner-width: $width-icon-medium;
107
107
  flex-wrap: nowrap;
108
108
  border-radius: $radius-radio_cardRadioGroup;
109
109
  padding: $spacing-radio_cardRadioGroup-paddingY $spacing-radio_cardRadioGroup-paddingX;
110
- background: transparent;
111
- border: $width-radio_cardRadioGroup_checked-border solid transparent;
110
+ background: $color-radio_cardRadioGroup-bg-default;
111
+ border: $width-radio_cardRadioGroup_checked-border solid $color-radio_cardRadioGroup_border-default;
112
112
  transition: background-color $transition_duration_radio-bg $transition_function-radio-bg $transition_delay-radio-bg,
113
113
  border $transition_duration-radio-border $transition_function-radio-border $transition_delay-radio-border;
114
114
 
@@ -172,7 +172,7 @@ $inner-width: $width-icon-medium;
172
172
 
173
173
  &_disabled {
174
174
  &:active {
175
- background: transparent;
175
+ background: $color-radio_cardRadioGroup_disabled-bg-active;
176
176
  }
177
177
  }
178
178
 
@@ -32,7 +32,7 @@ export default class RadioFoundation extends BaseFoundation<RadioAdapter> {
32
32
  if (target.matches(':focus-visible')) {
33
33
  this._adapter.setFocusVisible(true);
34
34
  }
35
- } catch (error){
35
+ } catch (error) {
36
36
  warning(true, 'Warning: [Semi Radio] The current browser does not support the focus-visible');
37
37
  }
38
38
  }
@@ -32,10 +32,13 @@ $color-radio_buttonRadio-text-disabled: var(--semi-color-disabled-text); // 按
32
32
  $color-radio_addon_buttonRadio-bg-hover: var(--semi-color-fill-1); // 按钮样式单选悬浮态背景色
33
33
  $color-radio_addon_buttonRadio-text-checked: var(--semi-color-primary); // 按钮样式单选选中项文字颜色
34
34
  $color-radio_addon_buttonRadio-bg-checked: var(--semi-color-bg-3); // 按钮样式单选选中项背景颜色
35
+ $color-radio_cardRadioGroup-bg-default: transparent; // 卡片样式单选默认背景色
35
36
  $color-radio_cardRadioGroup-bg-checked: var(--semi-color-primary-light-default); // 卡片样式单选选中态背景色
36
37
  $color-radio_cardRadioGroup_disabled-bg-checked: var(--semi-color-primary-light-default); // 卡片样式单选选中且禁用时的背景色
38
+ $color-radio_cardRadioGroup_disabled-bg-active: transparent; // 卡片样式单选禁用时的背景色 - 按下态
37
39
  $color-radio_cardRadioGroup-bg-hover: var(--semi-color-fill-0); // 卡片样式单选悬浮态背景色
38
40
  $color-radio_cardRadioGroup-bg-active: var(--semi-color-fill-1); // 卡片样式单选按下态背景色
41
+ $color-radio_cardRadioGroup_border-default: transparent; // 卡片样式单选默认描边颜色
39
42
  $color-radio_cardRadioGroup_border-active: var(--semi-color-primary); // 卡片样式单选选中态描边颜色
40
43
  $color-radio_cardRadioGroup_checked_border-active: var(--semi-color-primary-active); // 卡片样式单选选中态描边颜色 - 按下态
41
44
  $color-radio_cardRadioGroup_checked_border-hover: var(--semi-color-primary-hover); // 卡片样式单选选中态描边颜色 - 悬浮态
@@ -212,11 +212,13 @@ export default class TreeSelectFoundation<P = Record<string, any>, S = Record<st
212
212
  const triggerSearch = searchPosition === strings.SEARCH_POSITION_TRIGGER && filterTreeNode;
213
213
  const triggerSearchAutoFocus = searchAutoFocus && triggerSearch;
214
214
  this._setDropdownWidth();
215
- const isOpen = (this.getProp('defaultOpen') || triggerSearchAutoFocus) && !this._isDisabled();
215
+ const able = !this._isDisabled();
216
+ const isOpen = (this.getProp('defaultOpen') || triggerSearchAutoFocus) && able;
216
217
  if (isOpen) {
217
218
  this.open();
219
+ this._registerClickOutsideHandler();
218
220
  }
219
- if (triggerSearchAutoFocus) {
221
+ if (triggerSearchAutoFocus && able) {
220
222
  this.handleTriggerFocus(null);
221
223
  }
222
224
  }
@@ -433,7 +435,7 @@ export default class TreeSelectFoundation<P = Record<string, any>, S = Record<st
433
435
  }
434
436
  }
435
437
 
436
- _registerClickOutsideHandler = (e) => {
438
+ _registerClickOutsideHandler = () => {
437
439
  this._adapter.registerClickOutsideHandler(e => {
438
440
  this.handlerTriggerBlur(e);
439
441
  this.close(e);
@@ -449,7 +451,7 @@ export default class TreeSelectFoundation<P = Record<string, any>, S = Record<st
449
451
  handleTriggerFocus(e: any) {
450
452
  this._adapter.updateIsFocus(true);
451
453
  this._notifyFocus(e);
452
- this._registerClickOutsideHandler(e);
454
+ this._registerClickOutsideHandler();
453
455
  }
454
456
 
455
457
  // Scenes that may trigger blur
@@ -461,6 +463,10 @@ export default class TreeSelectFoundation<P = Record<string, any>, S = Record<st
461
463
  }
462
464
 
463
465
  handlerTriggerBlur(e) {
466
+ const isFocus = this.getState('isFocus');
467
+ if (!isFocus) {
468
+ return;
469
+ }
464
470
  this._adapter.updateIsFocus(false);
465
471
  this._notifyBlur(e);
466
472
  this._adapter.unregisterClickOutsideHandler();