@douyinfe/semi-foundation 2.59.0-beta.0 → 2.59.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/form/interface.ts CHANGED
@@ -36,12 +36,22 @@ export interface setValuesConfig {
36
36
  isOverride: boolean
37
37
  }
38
38
 
39
+ type ExcludeStringNumberKeys<T> = {
40
+ [K in keyof T as string extends K ? never : number extends K ? never : K]: T[K]
41
+ }
42
+
43
+ type CustomKeys<T> = { [K in keyof T]: string extends K ? never : number extends K ? never : K; } extends { [K in keyof T]: infer U } ? U : never;
44
+
45
+ type FieldPath<T, K extends CustomKeys<T> = CustomKeys<T>> = K extends string ? T[K] extends Record<string, any> ? `${K}.${FieldPath<T[K], CustomKeys<T[K]>>}` | K : K : never;
46
+
39
47
  // use object replace Record<string, any>, fix issue 933
40
48
  export interface BaseFormApi<T extends object = any> {
49
+ // export interface BaseFormApi<T extends object = any> {
41
50
  /** get value of field */
42
51
  getValue: <K extends keyof T>(field?: K) => T[K];
43
52
  /** set value of field */
44
- setValue: <K extends keyof T>(field: K, newFieldValue: T[K]) => void;
53
+ setValue: <K extends CustomKeys<T>>(field: FieldPath<T, K> | FieldPath<K>, newFieldValue: any) => void;
54
+ // setValue: <K extends keyof T>(field: K, newFieldValue: T[K]) => void;
45
55
  /** get error of field */
46
56
  getError: <K extends keyof T>(field: K) => any;
47
57
  /** set error of field */
@@ -31,11 +31,17 @@ export interface FormState<T extends Record<string, any> = any> {
31
31
  export interface setValuesConfig {
32
32
  isOverride: boolean;
33
33
  }
34
+ type CustomKeys<T> = {
35
+ [K in keyof T]: string extends K ? never : number extends K ? never : K;
36
+ } extends {
37
+ [K in keyof T]: infer U;
38
+ } ? U : never;
39
+ type FieldPath<T, K extends CustomKeys<T> = CustomKeys<T>> = K extends string ? T[K] extends Record<string, any> ? `${K}.${FieldPath<T[K], CustomKeys<T[K]>>}` | K : K : never;
34
40
  export interface BaseFormApi<T extends object = any> {
35
41
  /** get value of field */
36
42
  getValue: <K extends keyof T>(field?: K) => T[K];
37
43
  /** set value of field */
38
- setValue: <K extends keyof T>(field: K, newFieldValue: T[K]) => void;
44
+ setValue: <K extends CustomKeys<T>>(field: FieldPath<T, K> | FieldPath<K>, newFieldValue: any) => void;
39
45
  /** get error of field */
40
46
  getError: <K extends keyof T>(field: K) => any;
41
47
  /** set error of field */
@@ -122,3 +128,4 @@ export interface FormUpdaterContextType {
122
128
  getArrayField: (arrayField: string) => ArrayFieldStaff;
123
129
  updateArrayField: (arrayField: string, updateValue: any) => void;
124
130
  }
131
+ export {};
@@ -500,6 +500,7 @@
500
500
  animation-fill-mode: forwards;
501
501
  }
502
502
  .semi-tabs-tab-line.semi-tabs-tab-top.semi-tabs-tab {
503
+ font-size: 14px;
503
504
  padding: 16px 4px 14px 4px;
504
505
  transition: border-bottom-color var(--semi-transition_duration-none) var(--semi-transition_function-easeIn) var(--semi-transition_delay-none), color var(--semi-transition_duration-none) var(--semi-transition_function-easeIn) var(--semi-transition_delay-none);
505
506
  border-bottom: 2px solid transparent;
@@ -518,9 +519,11 @@
518
519
  border-bottom: 2px solid var(--semi-color-fill-1);
519
520
  }
520
521
  .semi-tabs-tab-line.semi-tabs-tab-top.semi-tabs-tab-small {
522
+ font-size: 14px;
521
523
  padding: 8px 4px 6px 4px;
522
524
  }
523
525
  .semi-tabs-tab-line.semi-tabs-tab-top.semi-tabs-tab-medium {
526
+ font-size: 14px;
524
527
  padding: 12px 4px 10px 4px;
525
528
  }
526
529
  .semi-tabs-tab-line.semi-tabs-tab-top.semi-tabs-tab-active, .semi-tabs-tab-line.semi-tabs-tab-top.semi-tabs-tab-active:hover {
@@ -690,6 +690,7 @@ $ignoreIcon: '.#{$prefix}-icon-checkbox_tick, .#{$prefix}-icon-radio, .#{$prefix
690
690
  &.#{$module}-tab-top {
691
691
 
692
692
  &.#{$module}-tab {
693
+ font-size: $font-tabs_bar_large-fontSize;
693
694
  padding: $spacing-tabs_bar_line_tab-paddingTop $spacing-tabs_bar_line_tab-paddingRight $spacing-tabs_bar_line_tab-paddingBottom $spacing-tabs_bar_line_tab-paddingLeft;
694
695
  transition: border-bottom-color $transition_duration-tabs_tab_line-border $transition_function-tabs_tab_line-border $transition_delay-tabs_tab_line-border,
695
696
  color $transition_duration-tabs_tab_line-text $transition_function-tabs_tab_line-text $transition_delay-tabs_tab_line-text; //线条式tabs的border-color 的 transition
@@ -718,10 +719,12 @@ $ignoreIcon: '.#{$prefix}-icon-checkbox_tick, .#{$prefix}-icon-radio, .#{$prefix
718
719
  // }
719
720
 
720
721
  &-small {
722
+ font-size: $font-tabs_bar_small-fontSize;
721
723
  padding: $spacing-tabs_bar_line_tab_small-paddingTop $spacing-tabs_bar_line_tab_small-paddingRight $spacing-tabs_bar_line_tab_small-paddingBottom $spacing-tabs_bar_line_tab_small-paddingLeft;
722
724
  }
723
725
 
724
726
  &-medium {
727
+ font-size: $font-tabs_bar_medium-fontSize;
725
728
  padding: $spacing-tabs_bar_line_tab_medium-paddingTop $spacing-tabs_bar_line_tab_medium-paddingRight $spacing-tabs_bar_line_tab_medium-paddingBottom $spacing-tabs_bar_line_tab_medium-paddingLeft;
726
729
  }
727
730
  }
@@ -144,3 +144,9 @@ $radius-tabs_tab_card: var(--semi-border-radius-small) var(--semi-border-radius-
144
144
  $radius-tabs_tab_card_left: var(--semi-border-radius-small) 0 0 var(--semi-border-radius-small); // 垂直卡片式页签四向圆角
145
145
  $radius-tabs_tab_button: var(--semi-border-radius-small); // 按钮式页签圆角
146
146
 
147
+
148
+ $font-tabs_bar_large-fontSize: $font-size-regular; // 大号模式 字体大小
149
+ $font-tabs_bar_small-fontSize: $font-size-regular; // 小号模式 字体大小
150
+ $font-tabs_bar_medium-fontSize: $font-size-regular; // 中等模式 字体大小
151
+
152
+
@@ -31,11 +31,17 @@ export interface FormState<T extends Record<string, any> = any> {
31
31
  export interface setValuesConfig {
32
32
  isOverride: boolean;
33
33
  }
34
+ type CustomKeys<T> = {
35
+ [K in keyof T]: string extends K ? never : number extends K ? never : K;
36
+ } extends {
37
+ [K in keyof T]: infer U;
38
+ } ? U : never;
39
+ type FieldPath<T, K extends CustomKeys<T> = CustomKeys<T>> = K extends string ? T[K] extends Record<string, any> ? `${K}.${FieldPath<T[K], CustomKeys<T[K]>>}` | K : K : never;
34
40
  export interface BaseFormApi<T extends object = any> {
35
41
  /** get value of field */
36
42
  getValue: <K extends keyof T>(field?: K) => T[K];
37
43
  /** set value of field */
38
- setValue: <K extends keyof T>(field: K, newFieldValue: T[K]) => void;
44
+ setValue: <K extends CustomKeys<T>>(field: FieldPath<T, K> | FieldPath<K>, newFieldValue: any) => void;
39
45
  /** get error of field */
40
46
  getError: <K extends keyof T>(field: K) => any;
41
47
  /** set error of field */
@@ -122,3 +128,4 @@ export interface FormUpdaterContextType {
122
128
  getArrayField: (arrayField: string) => ArrayFieldStaff;
123
129
  updateArrayField: (arrayField: string, updateValue: any) => void;
124
130
  }
131
+ export {};
@@ -500,6 +500,7 @@
500
500
  animation-fill-mode: forwards;
501
501
  }
502
502
  .semi-tabs-tab-line.semi-tabs-tab-top.semi-tabs-tab {
503
+ font-size: 14px;
503
504
  padding: 16px 4px 14px 4px;
504
505
  transition: border-bottom-color var(--semi-transition_duration-none) var(--semi-transition_function-easeIn) var(--semi-transition_delay-none), color var(--semi-transition_duration-none) var(--semi-transition_function-easeIn) var(--semi-transition_delay-none);
505
506
  border-bottom: 2px solid transparent;
@@ -518,9 +519,11 @@
518
519
  border-bottom: 2px solid var(--semi-color-fill-1);
519
520
  }
520
521
  .semi-tabs-tab-line.semi-tabs-tab-top.semi-tabs-tab-small {
522
+ font-size: 14px;
521
523
  padding: 8px 4px 6px 4px;
522
524
  }
523
525
  .semi-tabs-tab-line.semi-tabs-tab-top.semi-tabs-tab-medium {
526
+ font-size: 14px;
524
527
  padding: 12px 4px 10px 4px;
525
528
  }
526
529
  .semi-tabs-tab-line.semi-tabs-tab-top.semi-tabs-tab-active, .semi-tabs-tab-line.semi-tabs-tab-top.semi-tabs-tab-active:hover {
@@ -690,6 +690,7 @@ $ignoreIcon: '.#{$prefix}-icon-checkbox_tick, .#{$prefix}-icon-radio, .#{$prefix
690
690
  &.#{$module}-tab-top {
691
691
 
692
692
  &.#{$module}-tab {
693
+ font-size: $font-tabs_bar_large-fontSize;
693
694
  padding: $spacing-tabs_bar_line_tab-paddingTop $spacing-tabs_bar_line_tab-paddingRight $spacing-tabs_bar_line_tab-paddingBottom $spacing-tabs_bar_line_tab-paddingLeft;
694
695
  transition: border-bottom-color $transition_duration-tabs_tab_line-border $transition_function-tabs_tab_line-border $transition_delay-tabs_tab_line-border,
695
696
  color $transition_duration-tabs_tab_line-text $transition_function-tabs_tab_line-text $transition_delay-tabs_tab_line-text; //线条式tabs的border-color 的 transition
@@ -718,10 +719,12 @@ $ignoreIcon: '.#{$prefix}-icon-checkbox_tick, .#{$prefix}-icon-radio, .#{$prefix
718
719
  // }
719
720
 
720
721
  &-small {
722
+ font-size: $font-tabs_bar_small-fontSize;
721
723
  padding: $spacing-tabs_bar_line_tab_small-paddingTop $spacing-tabs_bar_line_tab_small-paddingRight $spacing-tabs_bar_line_tab_small-paddingBottom $spacing-tabs_bar_line_tab_small-paddingLeft;
722
724
  }
723
725
 
724
726
  &-medium {
727
+ font-size: $font-tabs_bar_medium-fontSize;
725
728
  padding: $spacing-tabs_bar_line_tab_medium-paddingTop $spacing-tabs_bar_line_tab_medium-paddingRight $spacing-tabs_bar_line_tab_medium-paddingBottom $spacing-tabs_bar_line_tab_medium-paddingLeft;
726
729
  }
727
730
  }
@@ -144,3 +144,9 @@ $radius-tabs_tab_card: var(--semi-border-radius-small) var(--semi-border-radius-
144
144
  $radius-tabs_tab_card_left: var(--semi-border-radius-small) 0 0 var(--semi-border-radius-small); // 垂直卡片式页签四向圆角
145
145
  $radius-tabs_tab_button: var(--semi-border-radius-small); // 按钮式页签圆角
146
146
 
147
+
148
+ $font-tabs_bar_large-fontSize: $font-size-regular; // 大号模式 字体大小
149
+ $font-tabs_bar_small-fontSize: $font-size-regular; // 小号模式 字体大小
150
+ $font-tabs_bar_medium-fontSize: $font-size-regular; // 中等模式 字体大小
151
+
152
+
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "@douyinfe/semi-foundation",
3
- "version": "2.59.0-beta.0",
3
+ "version": "2.59.0",
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.59.0-beta.0",
10
+ "@douyinfe/semi-animation": "2.59.0",
11
11
  "async-validator": "^3.5.0",
12
12
  "classnames": "^2.2.6",
13
13
  "date-fns": "^2.29.3",
@@ -24,7 +24,7 @@
24
24
  "*.scss",
25
25
  "*.css"
26
26
  ],
27
- "gitHead": "cafc3d7cf008cd4fd117c3d55cc48e0b4430c4a9",
27
+ "gitHead": "b9a08d8581277fdc6ae9c33cdfc78b39938e5de1",
28
28
  "devDependencies": {
29
29
  "@babel/plugin-transform-runtime": "^7.15.8",
30
30
  "@babel/preset-env": "^7.15.8",
package/tabs/tabs.scss CHANGED
@@ -690,6 +690,7 @@ $ignoreIcon: '.#{$prefix}-icon-checkbox_tick, .#{$prefix}-icon-radio, .#{$prefix
690
690
  &.#{$module}-tab-top {
691
691
 
692
692
  &.#{$module}-tab {
693
+ font-size: $font-tabs_bar_large-fontSize;
693
694
  padding: $spacing-tabs_bar_line_tab-paddingTop $spacing-tabs_bar_line_tab-paddingRight $spacing-tabs_bar_line_tab-paddingBottom $spacing-tabs_bar_line_tab-paddingLeft;
694
695
  transition: border-bottom-color $transition_duration-tabs_tab_line-border $transition_function-tabs_tab_line-border $transition_delay-tabs_tab_line-border,
695
696
  color $transition_duration-tabs_tab_line-text $transition_function-tabs_tab_line-text $transition_delay-tabs_tab_line-text; //线条式tabs的border-color 的 transition
@@ -718,10 +719,12 @@ $ignoreIcon: '.#{$prefix}-icon-checkbox_tick, .#{$prefix}-icon-radio, .#{$prefix
718
719
  // }
719
720
 
720
721
  &-small {
722
+ font-size: $font-tabs_bar_small-fontSize;
721
723
  padding: $spacing-tabs_bar_line_tab_small-paddingTop $spacing-tabs_bar_line_tab_small-paddingRight $spacing-tabs_bar_line_tab_small-paddingBottom $spacing-tabs_bar_line_tab_small-paddingLeft;
722
724
  }
723
725
 
724
726
  &-medium {
727
+ font-size: $font-tabs_bar_medium-fontSize;
725
728
  padding: $spacing-tabs_bar_line_tab_medium-paddingTop $spacing-tabs_bar_line_tab_medium-paddingRight $spacing-tabs_bar_line_tab_medium-paddingBottom $spacing-tabs_bar_line_tab_medium-paddingLeft;
726
729
  }
727
730
  }
@@ -144,3 +144,9 @@ $radius-tabs_tab_card: var(--semi-border-radius-small) var(--semi-border-radius-
144
144
  $radius-tabs_tab_card_left: var(--semi-border-radius-small) 0 0 var(--semi-border-radius-small); // 垂直卡片式页签四向圆角
145
145
  $radius-tabs_tab_button: var(--semi-border-radius-small); // 按钮式页签圆角
146
146
 
147
+
148
+ $font-tabs_bar_large-fontSize: $font-size-regular; // 大号模式 字体大小
149
+ $font-tabs_bar_small-fontSize: $font-size-regular; // 小号模式 字体大小
150
+ $font-tabs_bar_medium-fontSize: $font-size-regular; // 中等模式 字体大小
151
+
152
+
package/tsconfig.json CHANGED
@@ -9,7 +9,6 @@
9
9
  "lib": ["es7", "dom", "es2017"],
10
10
  "moduleResolution": "node",
11
11
  "noImplicitAny": false,
12
- "suppressImplicitAnyIndexErrors": true,
13
12
  "forceConsistentCasingInFileNames": true,
14
13
  "allowSyntheticDefaultImports": true,
15
14
  "experimentalDecorators": true,