@douyinfe/semi-ui 2.1.4-alpha.0 → 2.2.0-beta.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.
Files changed (162) hide show
  1. package/_base/_story/a11y.jsx +1302 -0
  2. package/_base/_story/a11y.scss +49 -0
  3. package/_base/_story/index.scss +1 -0
  4. package/_base/_story/index.stories.js +3 -1
  5. package/_utils/index.ts +2 -1
  6. package/button/Button.tsx +1 -0
  7. package/button/__test__/button.test.js +15 -0
  8. package/button/_story/button.stories.js +13 -0
  9. package/button/buttonGroup.tsx +6 -4
  10. package/cascader/__test__/cascader.test.js +221 -0
  11. package/cascader/_story/cascader.stories.js +138 -0
  12. package/cascader/index.tsx +37 -21
  13. package/cascader/item.tsx +7 -2
  14. package/checkbox/__test__/checkboxGroup.test.js +37 -5
  15. package/checkbox/_story/checkbox.stories.js +78 -6
  16. package/checkbox/checkbox.tsx +3 -0
  17. package/checkbox/checkboxGroup.tsx +3 -2
  18. package/datePicker/__test__/datePicker.test.js +67 -2
  19. package/datePicker/_story/datePicker.stories.js +3 -1
  20. package/datePicker/_story/v2/YearButton.jsx +17 -0
  21. package/datePicker/_story/v2/index.js +1 -0
  22. package/datePicker/monthsGrid.tsx +12 -1
  23. package/datePicker/navigation.tsx +55 -29
  24. package/descriptions/__test__/descriptions.test.js +27 -1
  25. package/descriptions/_story/descriptions.stories.js +52 -2
  26. package/descriptions/item.tsx +1 -1
  27. package/dist/css/semi.css +105 -32
  28. package/dist/css/semi.min.css +1 -1
  29. package/dist/umd/semi-ui.js +801 -227
  30. package/dist/umd/semi-ui.js.map +1 -1
  31. package/dist/umd/semi-ui.min.js +1 -1
  32. package/dist/umd/semi-ui.min.js.map +1 -1
  33. package/form/_story/form.stories.js +0 -67
  34. package/form/_story/form.stories.tsx +2 -2
  35. package/form/hoc/withField.tsx +2 -2
  36. package/lib/cjs/_base/base.css +2 -2
  37. package/lib/cjs/_utils/index.d.ts +1 -0
  38. package/lib/cjs/_utils/index.js +3 -2
  39. package/lib/cjs/button/Button.d.ts +1 -0
  40. package/lib/cjs/button/buttonGroup.js +11 -3
  41. package/lib/cjs/cascader/index.d.ts +7 -0
  42. package/lib/cjs/cascader/index.js +35 -22
  43. package/lib/cjs/cascader/item.d.ts +2 -0
  44. package/lib/cjs/cascader/item.js +9 -2
  45. package/lib/cjs/checkbox/checkbox.js +4 -1
  46. package/lib/cjs/checkbox/checkboxGroup.d.ts +1 -0
  47. package/lib/cjs/checkbox/checkboxGroup.js +3 -1
  48. package/lib/cjs/datePicker/dateInput.d.ts +1 -1
  49. package/lib/cjs/datePicker/datePicker.d.ts +1 -1
  50. package/lib/cjs/datePicker/monthsGrid.d.ts +2 -1
  51. package/lib/cjs/datePicker/monthsGrid.js +6 -0
  52. package/lib/cjs/datePicker/navigation.js +47 -7
  53. package/lib/cjs/descriptions/item.js +1 -1
  54. package/lib/cjs/form/baseForm.d.ts +6 -0
  55. package/lib/cjs/form/field.d.ts +6 -0
  56. package/lib/cjs/form/hoc/withField.js +3 -1
  57. package/lib/cjs/locale/source/es.d.ts +7 -0
  58. package/lib/cjs/locale/source/es.js +168 -0
  59. package/lib/cjs/modal/Modal.d.ts +8 -8
  60. package/lib/cjs/modal/Modal.js +4 -4
  61. package/lib/cjs/modal/confirm.d.ts +10 -10
  62. package/lib/cjs/navigation/index.d.ts +2 -2
  63. package/lib/cjs/pagination/index.js +9 -4
  64. package/lib/cjs/radio/radio.d.ts +1 -1
  65. package/lib/cjs/radio/radio.js +1 -0
  66. package/lib/cjs/radio/radioGroup.d.ts +1 -1
  67. package/lib/cjs/rating/item.js +3 -2
  68. package/lib/cjs/select/index.d.ts +10 -0
  69. package/lib/cjs/select/index.js +15 -9
  70. package/lib/cjs/table/Table.d.ts +1 -1
  71. package/lib/cjs/timePicker/TimePicker.d.ts +2 -2
  72. package/lib/cjs/timePicker/TimeShape.d.ts +1 -1
  73. package/lib/cjs/timePicker/index.d.ts +2 -2
  74. package/lib/cjs/timeline/item.d.ts +5 -2
  75. package/lib/cjs/timeline/item.js +13 -7
  76. package/lib/cjs/tree/treeNode.js +0 -2
  77. package/lib/cjs/treeSelect/index.js +1 -0
  78. package/lib/cjs/typography/title.d.ts +1 -1
  79. package/lib/cjs/upload/fileCard.d.ts +2 -0
  80. package/lib/cjs/upload/fileCard.js +70 -45
  81. package/lib/cjs/upload/index.d.ts +34 -4
  82. package/lib/cjs/upload/index.js +141 -25
  83. package/lib/cjs/upload/interface.d.ts +3 -0
  84. package/lib/es/_base/base.css +2 -2
  85. package/lib/es/_utils/index.d.ts +1 -0
  86. package/lib/es/_utils/index.js +3 -2
  87. package/lib/es/button/Button.d.ts +1 -0
  88. package/lib/es/button/buttonGroup.js +3 -3
  89. package/lib/es/cascader/index.d.ts +7 -0
  90. package/lib/es/cascader/index.js +34 -25
  91. package/lib/es/cascader/item.d.ts +2 -0
  92. package/lib/es/cascader/item.js +9 -2
  93. package/lib/es/checkbox/checkbox.js +4 -1
  94. package/lib/es/checkbox/checkboxGroup.d.ts +1 -0
  95. package/lib/es/checkbox/checkboxGroup.js +3 -1
  96. package/lib/es/datePicker/dateInput.d.ts +1 -1
  97. package/lib/es/datePicker/datePicker.d.ts +1 -1
  98. package/lib/es/datePicker/monthsGrid.d.ts +2 -1
  99. package/lib/es/datePicker/monthsGrid.js +6 -0
  100. package/lib/es/datePicker/navigation.js +48 -8
  101. package/lib/es/descriptions/item.js +1 -1
  102. package/lib/es/form/baseForm.d.ts +6 -0
  103. package/lib/es/form/field.d.ts +6 -0
  104. package/lib/es/form/hoc/withField.js +3 -1
  105. package/lib/es/locale/source/es.d.ts +7 -0
  106. package/lib/es/locale/source/es.js +157 -0
  107. package/lib/es/modal/Modal.d.ts +8 -8
  108. package/lib/es/modal/Modal.js +4 -4
  109. package/lib/es/modal/confirm.d.ts +10 -10
  110. package/lib/es/navigation/index.d.ts +2 -2
  111. package/lib/es/pagination/index.js +8 -4
  112. package/lib/es/radio/radio.d.ts +1 -1
  113. package/lib/es/radio/radio.js +1 -0
  114. package/lib/es/radio/radioGroup.d.ts +1 -1
  115. package/lib/es/rating/item.js +3 -2
  116. package/lib/es/select/index.d.ts +10 -0
  117. package/lib/es/select/index.js +19 -9
  118. package/lib/es/table/Table.d.ts +1 -1
  119. package/lib/es/timePicker/TimePicker.d.ts +2 -2
  120. package/lib/es/timePicker/TimeShape.d.ts +1 -1
  121. package/lib/es/timePicker/index.d.ts +2 -2
  122. package/lib/es/timeline/item.d.ts +5 -2
  123. package/lib/es/timeline/item.js +12 -7
  124. package/lib/es/tree/treeNode.js +0 -2
  125. package/lib/es/treeSelect/index.js +1 -0
  126. package/lib/es/typography/title.d.ts +1 -1
  127. package/lib/es/upload/fileCard.d.ts +2 -0
  128. package/lib/es/upload/fileCard.js +69 -44
  129. package/lib/es/upload/index.d.ts +34 -4
  130. package/lib/es/upload/index.js +141 -24
  131. package/lib/es/upload/interface.d.ts +3 -0
  132. package/locale/source/es.ts +160 -0
  133. package/modal/Modal.tsx +6 -6
  134. package/navigation/__test__/navigation.test.js +4 -4
  135. package/navigation/_story/AutoOpen/index.js +1 -1
  136. package/navigation/_story/WithChildren/index.js +1 -1
  137. package/navigation/_story/navigation.stories.js +1 -1
  138. package/navigation/_story/navigation.stories.tsx +4 -4
  139. package/navigation/index.tsx +2 -2
  140. package/package.json +16 -8
  141. package/pagination/_story/pagination.stories.js +11 -0
  142. package/pagination/index.tsx +9 -4
  143. package/popover/Arrow.tsx +1 -1
  144. package/radio/__test__/radioGroup.test.jsx +41 -6
  145. package/radio/_story/radio.stories.js +22 -11
  146. package/radio/radio.tsx +1 -0
  147. package/rating/item.tsx +2 -1
  148. package/select/_story/select.stories.js +39 -14
  149. package/select/index.tsx +21 -7
  150. package/table/_story/DynamicFilters/index.js +13 -16
  151. package/timeline/__test__/timeline.test.js +17 -1
  152. package/timeline/_story/timeline.stories.js +70 -6
  153. package/timeline/item.tsx +11 -6
  154. package/tooltip/_story/tooltip.stories.js +1 -1
  155. package/tree/_story/tree.stories.js +2 -2
  156. package/tree/treeNode.tsx +0 -2
  157. package/treeSelect/index.tsx +3 -2
  158. package/tsconfig.json +2 -1
  159. package/upload/__test__/upload.test.js +50 -1
  160. package/upload/fileCard.tsx +110 -95
  161. package/upload/index.tsx +155 -54
  162. package/upload/interface.ts +3 -0
@@ -6,7 +6,7 @@ import { noop } from 'lodash';
6
6
  import IconButton from '../iconButton';
7
7
  import Button from '../button';
8
8
  import { cssClasses, strings } from '@douyinfe/semi-foundation/datePicker/constants';
9
- import { IconChevronLeft, IconChevronRight } from '@douyinfe/semi-icons';
9
+ import { IconChevronLeft, IconChevronRight, IconDoubleChevronLeft, IconDoubleChevronRight } from '@douyinfe/semi-icons';
10
10
  import { PanelType } from '@douyinfe/semi-foundation/datePicker/monthsGridFoundation';
11
11
 
12
12
  const prefixCls = cssClasses.NAVIGATION;
@@ -68,6 +68,8 @@ export default class Navigation extends PureComponent<NavigationProps> {
68
68
  onMonthClick,
69
69
  onNextMonth,
70
70
  onPrevMonth,
71
+ onPrevYear,
72
+ onNextYear,
71
73
  density,
72
74
  shouldBimonthSwitch,
73
75
  panelType
@@ -77,43 +79,67 @@ export default class Navigation extends PureComponent<NavigationProps> {
77
79
  const iconBtnSize = density === 'compact' ? 'default' : 'large';
78
80
  const btnNoHorizontalPadding = true;
79
81
  const buttonSize = density === 'compact' ? 'small' : 'default';
80
- // Enable dual-panel synchronous switching, and the current panel is the left panel
81
- const bimonthSwitchWithLeftPanel = shouldBimonthSwitch && panelType === strings.PANEL_TYPE_LEFT;
82
- // Enable dual-panel synchronous switching, and the current panel is the right panel
83
- const bimonthSwitchWithRightPanel = shouldBimonthSwitch && panelType === strings.PANEL_TYPE_RIGHT;
82
+ const isLeftPanel = panelType === strings.PANEL_TYPE_LEFT;
83
+ const isRightPanel = panelType === strings.PANEL_TYPE_RIGHT;
84
+
85
+ // syncSwitchMonth and the current panel is the left
86
+ const hiddenLeftPanelRightButtons = shouldBimonthSwitch && isLeftPanel;
87
+ // syncSwitchMonth and the current panel is the right
88
+ const hiddenRightPanelLeftButtons = shouldBimonthSwitch && isRightPanel;
89
+ // `visibility: hidden` will keep the icon in position
90
+ const leftButtonStyle: React.CSSProperties = {};
91
+ const rightButtonStyle: React.CSSProperties = {};
92
+ if (hiddenRightPanelLeftButtons) {
93
+ leftButtonStyle.visibility = 'hidden';
94
+ }
95
+ if (hiddenLeftPanelRightButtons) {
96
+ rightButtonStyle.visibility = 'hidden';
97
+ }
84
98
 
85
99
  const ref = forwardRef || this.navRef;
86
100
  return (
87
101
  <div className={prefixCls} ref={ref}>
88
- {
89
- !bimonthSwitchWithRightPanel &&
90
- (
91
- <IconButton
92
- icon={<IconChevronLeft size={iconBtnSize} />}
93
- size={buttonSize}
94
- onClick={onPrevMonth}
95
- theme={btnTheme}
96
- noHorizontalPadding={btnNoHorizontalPadding}
97
- />
98
- )
99
- }
102
+ <IconButton
103
+ key="double-chevron-left"
104
+ icon={<IconDoubleChevronLeft size={iconBtnSize}/>}
105
+ size={buttonSize}
106
+ theme={btnTheme}
107
+ noHorizontalPadding={btnNoHorizontalPadding}
108
+ onClick={onPrevYear}
109
+ style={leftButtonStyle}
110
+ />
111
+ <IconButton
112
+ key="chevron-left"
113
+ icon={<IconChevronLeft size={iconBtnSize} />}
114
+ size={buttonSize}
115
+ onClick={onPrevMonth}
116
+ theme={btnTheme}
117
+ noHorizontalPadding={btnNoHorizontalPadding}
118
+ style={leftButtonStyle}
119
+ />
100
120
  <div className={`${prefixCls}-month`}>
101
121
  <Button onClick={onMonthClick} theme={btnTheme} size={buttonSize}>
102
122
  <span>{monthText}</span>
103
123
  </Button>
104
124
  </div>
105
- {
106
- !bimonthSwitchWithLeftPanel &&
107
- (
108
- <IconButton
109
- icon={<IconChevronRight size={iconBtnSize} />}
110
- size={buttonSize}
111
- onClick={onNextMonth}
112
- theme={btnTheme}
113
- noHorizontalPadding={btnNoHorizontalPadding}
114
- />
115
- )
116
- }
125
+ <IconButton
126
+ key="chevron-right"
127
+ icon={<IconChevronRight size={iconBtnSize} />}
128
+ size={buttonSize}
129
+ onClick={onNextMonth}
130
+ theme={btnTheme}
131
+ noHorizontalPadding={btnNoHorizontalPadding}
132
+ style={rightButtonStyle}
133
+ />
134
+ <IconButton
135
+ key="double-chevron-right"
136
+ icon={<IconDoubleChevronRight size={iconBtnSize}/>}
137
+ size={buttonSize}
138
+ theme={btnTheme}
139
+ noHorizontalPadding={btnNoHorizontalPadding}
140
+ onClick={onNextYear}
141
+ style={rightButtonStyle}
142
+ />
117
143
  </div>
118
144
  );
119
145
  }
@@ -17,6 +17,14 @@ const dataWithHide = [
17
17
  { key: '认证状态', value: '未认证' },
18
18
  ];
19
19
 
20
+ const dataWithKeyIsNode = [
21
+ { key: <strong>实际用户数量</strong>, value: '1,480,000' },
22
+ { key: '7天留存', value: '98%' },
23
+ { key: '安全等级', value: '3级' },
24
+ { key: '垂类标签', value: <Tag>电商</Tag> },
25
+ { key: '认证状态', value: '未认证' },
26
+ ];
27
+
20
28
  function renderDescriptions(props) {
21
29
  const realProps = {
22
30
  data,
@@ -134,7 +142,6 @@ describe('Descriptions', () => {
134
142
  largeDesc.unmount();
135
143
  });
136
144
 
137
-
138
145
  it('Descriptions with jsx', () => {
139
146
  const desc = mount(
140
147
  <Descriptions>
@@ -164,4 +171,23 @@ describe('Descriptions', () => {
164
171
  ).toEqual('1,480,000');
165
172
  desc.unmount();
166
173
  });
174
+
175
+ it('Descriptions with key is node', () => {
176
+ const desc = renderDescriptions({ data: dataWithKeyIsNode });
177
+ expect(
178
+ desc
179
+ .find(`.${BASE_CLASS_PREFIX}-descriptions-key strong`)
180
+ .at(0)
181
+ .getDOMNode()
182
+ .textContent
183
+ ).toEqual('实际用户数量');
184
+ expect(
185
+ desc
186
+ .find(`.${BASE_CLASS_PREFIX}-descriptions-key`)
187
+ .at(1)
188
+ .getDOMNode()
189
+ .textContent
190
+ ).toEqual('7天留存');
191
+ desc.unmount();
192
+ });
167
193
  })
@@ -1,7 +1,6 @@
1
1
  import React from 'react';
2
- // import { withKnobs, text, boolean } from '@storybook/addon-knobs';
3
-
4
2
  import Descriptions from '../index';
3
+ import Tag from '../../tag';
5
4
 
6
5
  export default {
7
6
  title: 'Descriptions',
@@ -93,3 +92,54 @@ export const DescriptionsItem = () => (
93
92
  </div>
94
93
  );
95
94
 
95
+ export const DescriptionsKeyIsNode = () => {
96
+ const data = [
97
+ { key: <strong style={{color: 'red'}}>实际用户数量</strong>, value: '1,480,000' },
98
+ { key: '7天留存', value: '98%' },
99
+ { key: '安全等级', value: '3级' },
100
+ { key: '垂类标签', value: <Tag style={{ margin: 0 }}>电商</Tag> },
101
+ { key: '认证状态', value: '未认证' },
102
+ ];
103
+ const style = {
104
+ boxShadow: 'var(--shadow-elevated)',
105
+ backgroundColor: 'var(--color-bg-2)',
106
+ borderRadius: '4px',
107
+ padding: '10px',
108
+ margin: '10px',
109
+ width: '200px',
110
+ };
111
+ return (
112
+ <>
113
+ <div>data 传入的写法</div>
114
+ <div style={{ display: 'flex', flexWrap: 'wrap' }}>
115
+ <Descriptions align="center" data={data} style={style} />
116
+ <Descriptions align="justify" data={data} style={style} />
117
+ <Descriptions align="left" data={data} style={style} />
118
+ <Descriptions align="plain" data={data} style={style} />
119
+ </div>
120
+ <div>JSX 写法</div>
121
+ <div style={{ display: 'flex', flexWrap: 'wrap' }}>
122
+ <Descriptions style={style} align="center" >
123
+ <Descriptions.Item itemKey={<strong style={{ color: 'red' }}>实际用户数量</strong>}>1,480,000</Descriptions.Item>
124
+ <Descriptions.Item itemKey="7天留存">98%</Descriptions.Item>
125
+ <Descriptions.Item itemKey="认证状态">未认证</Descriptions.Item>
126
+ </Descriptions>
127
+ <Descriptions style={style} align="justify">
128
+ <Descriptions.Item itemKey={<strong style={{ color: 'red' }}>实际用户数量</strong>}>1,480,000</Descriptions.Item>
129
+ <Descriptions.Item itemKey="7天留存">98%</Descriptions.Item>
130
+ <Descriptions.Item itemKey="认证状态">未认证</Descriptions.Item>
131
+ </Descriptions>
132
+ <Descriptions style={style} align="left">
133
+ <Descriptions.Item itemKey={<strong style={{ color: 'red' }}>实际用户数量</strong>}>1,480,000</Descriptions.Item>
134
+ <Descriptions.Item itemKey="7天留存">98%</Descriptions.Item>
135
+ <Descriptions.Item itemKey="认证状态">未认证</Descriptions.Item>
136
+ </Descriptions>
137
+ <Descriptions style={style} align="plain">
138
+ <Descriptions.Item itemKey={<strong style={{ color: 'red' }}>实际用户数量</strong>}>1,480,000</Descriptions.Item>
139
+ <Descriptions.Item itemKey="7天留存">98%</Descriptions.Item>
140
+ <Descriptions.Item itemKey="认证状态">未认证</Descriptions.Item>
141
+ </Descriptions>
142
+ </div>
143
+ </>
144
+ );
145
+ };
@@ -36,7 +36,7 @@ export default class Item extends PureComponent<DescriptionsItemProps> {
36
36
  <tr className={className} style={style}>
37
37
  <td className={`${prefixCls}-item`}>
38
38
  <span className={keyCls}>
39
- {`${itemKey}:`}
39
+ {itemKey}:
40
40
  </span>
41
41
  <span className={valCls}>
42
42
  {typeof children === 'function' ? children() : children}
package/dist/css/semi.css CHANGED
@@ -1,4 +1,3 @@
1
- @charset "UTF-8";
2
1
  /* shadow */
3
2
  /* sizing */
4
3
  /* spacing */
@@ -400,7 +399,7 @@ body, body[theme-mode=dark] .semi-always-light {
400
399
  --semi-color-link-visited: rgba(var(--semi-blue-5), 1);
401
400
  --semi-color-border: rgba(var(--semi-grey-9), .08);
402
401
  --semi-color-nav-bg: rgba(var(--semi-white), 1);
403
- --semi-overlay-bg: rgba(22, 22, 26, .6);
402
+ --semi-color-overlay-bg: rgba(22, 22, 26, .6);
404
403
  --semi-color-fill-0: rgba(var(--semi-grey-8), .05);
405
404
  --semi-color-fill-1: rgba(var(--semi-grey-8), .09);
406
405
  --semi-color-fill-2: rgba(var(--semi-grey-8), .13);
@@ -487,7 +486,7 @@ body[theme-mode=dark], body .semi-always-dark {
487
486
  --semi-color-link-visited: rgba(var(--semi-blue-5), 1);
488
487
  --semi-color-nav-bg: rgba(35, 36, 41, 1);
489
488
  --semi-shadow-elevated: inset 0 0 0 1px rgba(255, 255, 255, .1), 0 4px 14px rgba(0, 0, 0, .25);
490
- --semi-overlay-bg: rgba(22, 22, 26, .6);
489
+ --semi-color-overlay-bg: rgba(22, 22, 26, .6);
491
490
  --semi-color-fill-0: rgba(var(--semi-white), .05);
492
491
  --semi-color-fill-1: rgba(var(--semi-white), .09);
493
492
  --semi-color-fill-2: rgba(var(--semi-white), .13);
@@ -2686,11 +2685,11 @@ body[theme-mode=dark], body .semi-always-dark {
2686
2685
  .semi-cascader-selection-tag:first-child {
2687
2686
  margin-left: 0;
2688
2687
  }
2689
- .semi-cascader-selection-tag-disabled {
2688
+ .semi-cascader-selection-tag-disabled.semi-tag {
2690
2689
  color: var(--semi-color-disabled-text);
2691
2690
  cursor: not-allowed;
2692
2691
  }
2693
- .semi-cascader-selection-tag-disabled .semi-tag-close {
2692
+ .semi-cascader-selection-tag-disabled.semi-tag .semi-tag-close {
2694
2693
  color: var(--semi-color-disabled-text);
2695
2694
  cursor: not-allowed;
2696
2695
  pointer-events: none;
@@ -3059,12 +3058,14 @@ body[theme-mode=dark], body .semi-always-dark {
3059
3058
  }
3060
3059
  .semi-checkbox:hover .semi-checkbox-inner-checked .semi-checkbox-inner-display {
3061
3060
  background: var(--semi-color-primary-hover);
3061
+ box-shadow: none;
3062
3062
  }
3063
3063
  .semi-checkbox:active .semi-checkbox-inner-display {
3064
3064
  background: var(--semi-color-fill-1);
3065
3065
  }
3066
3066
  .semi-checkbox:active .semi-checkbox-inner-checked .semi-checkbox-inner-display {
3067
3067
  background: var(--semi-color-primary-active);
3068
+ box-shadow: none;
3068
3069
  }
3069
3070
  .semi-checkbox.semi-checkbox-disabled:hover .semi-checkbox-inner-display, .semi-checkbox.semi-checkbox-disabled:active .semi-checkbox-inner-display {
3070
3071
  background: var(--semi-color-disabled-fill);
@@ -3072,6 +3073,7 @@ body[theme-mode=dark], body .semi-always-dark {
3072
3073
  }
3073
3074
  .semi-checkbox.semi-checkbox-disabled:hover .semi-checkbox-inner-checked .semi-checkbox-inner-display, .semi-checkbox.semi-checkbox-disabled:active .semi-checkbox-inner-checked .semi-checkbox-inner-display {
3074
3075
  background: var(--semi-color-primary-disabled);
3076
+ box-shadow: none;
3075
3077
  }
3076
3078
  .semi-checkbox-inner {
3077
3079
  position: relative;
@@ -3112,7 +3114,7 @@ body[theme-mode=dark], body .semi-always-dark {
3112
3114
  }
3113
3115
  .semi-checkbox:hover.semi-checkbox-indeterminate .semi-checkbox-inner-display {
3114
3116
  background: var(--semi-color-primary-hover);
3115
- box-shadow: inset 0 0 0 1px var(--semi-color-focus-border);
3117
+ box-shadow: none;
3116
3118
  color: var(--semi-color-white);
3117
3119
  }
3118
3120
  .semi-checkbox:hover .semi-checkbox-inner-checked .semi-checkbox-inner-display {
@@ -3130,6 +3132,7 @@ body[theme-mode=dark], body .semi-always-dark {
3130
3132
  background: var(--semi-color-primary-active);
3131
3133
  border-color: var(--semi-color-primary-active);
3132
3134
  color: var(--semi-color-white);
3135
+ box-shadow: none;
3133
3136
  }
3134
3137
  .semi-checkbox:active .semi-checkbox-inner-checked .semi-checkbox-inner-display {
3135
3138
  background: var(--semi-color-primary-active);
@@ -3181,10 +3184,18 @@ body[theme-mode=dark], body .semi-always-dark {
3181
3184
  }
3182
3185
  .semi-checkbox-cardType_checked {
3183
3186
  background: var(--semi-color-primary-light-default);
3184
- border: 1px solid var(--semi-color-focus-border);
3187
+ border: 1px solid var(--semi-color-primary);
3185
3188
  }
3186
3189
  .semi-checkbox-cardType_checked:hover {
3187
3190
  background: var(--semi-color-primary-light-default);
3191
+ border-color: var(--semi-color-primary-hover);
3192
+ }
3193
+ .semi-checkbox-cardType_checked:hover .semi-checkbox-inner-checked .semi-checkbox-inner-display {
3194
+ box-shadow: none;
3195
+ }
3196
+ .semi-checkbox-cardType_checked:active {
3197
+ background: var(--semi-color-primary-light-default);
3198
+ border-color: var(--semi-color-primary-active);
3188
3199
  }
3189
3200
  .semi-checkbox-cardType_disabled:active {
3190
3201
  background: transparent;
@@ -3192,6 +3203,13 @@ body[theme-mode=dark], body .semi-always-dark {
3192
3203
  .semi-checkbox-cardType_disabled:hover {
3193
3204
  background: transparent;
3194
3205
  }
3206
+ .semi-checkbox-cardType_checked_disabled.semi-checkbox-cardType {
3207
+ background: var(--semi-color-primary-light-default);
3208
+ border: 1px solid var(--semi-color-primary-disabled);
3209
+ }
3210
+ .semi-checkbox-cardType_checked_disabled.semi-checkbox-cardType:hover .semi-checkbox-inner-checked .semi-checkbox-inner-display {
3211
+ box-shadow: none;
3212
+ }
3195
3213
  .semi-checkbox-indeterminate .semi-checkbox-inner-display, .semi-checkbox-checked .semi-checkbox-inner-display {
3196
3214
  background: var(--semi-color-primary);
3197
3215
  color: var(--semi-color-white);
@@ -3479,6 +3497,9 @@ body[theme-mode=dark], body .semi-always-dark {
3479
3497
  font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", Helvetica, Arial, sans-serif;
3480
3498
  min-height: 24px;
3481
3499
  }
3500
+ .semi-datepicker-month-grid[x-panel-yearandmonth-open-type=left] .semi-datepicker-weeks, .semi-datepicker-month-grid[x-panel-yearandmonth-open-type=right] .semi-datepicker-weeks {
3501
+ min-height: 216px;
3502
+ }
3482
3503
  .semi-datepicker-panel-yam {
3483
3504
  max-width: 284px;
3484
3505
  }
@@ -3968,6 +3989,9 @@ body[theme-mode=dark], body .semi-always-dark {
3968
3989
  .semi-datepicker-compact .semi-datepicker-month-grid .semi-scrolllist-item-wheel .semi-scrolllist-shade-post {
3969
3990
  margin-top: 17px;
3970
3991
  }
3992
+ .semi-datepicker-compact .semi-datepicker-month-grid[x-panel-yearandmonth-open-type=left] .semi-datepicker-weeks, .semi-datepicker-compact .semi-datepicker-month-grid[x-panel-yearandmonth-open-type=right] .semi-datepicker-weeks {
3993
+ min-height: 168px;
3994
+ }
3971
3995
  .semi-datepicker-compact.semi-datepicker-panel-yam .semi-scrolllist {
3972
3996
  font-size: 12px;
3973
3997
  line-height: 16px;
@@ -11956,7 +11980,7 @@ body[theme-mode=dark], body .semi-always-dark {
11956
11980
  right: 0;
11957
11981
  left: 0;
11958
11982
  bottom: 0;
11959
- background-color: var(--semi-overlay-bg);
11983
+ background-color: var(--semi-color-overlay-bg);
11960
11984
  height: 100%;
11961
11985
  z-index: 1000;
11962
11986
  }
@@ -13658,6 +13682,7 @@ body[theme-mode=dark], body .semi-always-dark {
13658
13682
  width: 100%;
13659
13683
  height: 100%;
13660
13684
  margin: 0;
13685
+ cursor: pointer;
13661
13686
  }
13662
13687
  .semi-radio:hover .semi-radio-inner-display {
13663
13688
  background: var(--semi-color-fill-0);
@@ -13668,6 +13693,7 @@ body[theme-mode=dark], body .semi-always-dark {
13668
13693
  }
13669
13694
  .semi-radio:hover .semi-radio-inner-checked .semi-radio-inner-display {
13670
13695
  background: var(--semi-color-primary-hover);
13696
+ border-color: var(--semi-color-primary-hover);
13671
13697
  }
13672
13698
  .semi-radio:active .semi-radio-inner-display {
13673
13699
  background: var(--semi-color-fill-1);
@@ -13677,6 +13703,7 @@ body[theme-mode=dark], body .semi-always-dark {
13677
13703
  }
13678
13704
  .semi-radio:active .semi-radio-inner-checked .semi-radio-inner-display {
13679
13705
  background: var(--semi-color-primary-active);
13706
+ border-color: var(--semi-color-primary-active);
13680
13707
  }
13681
13708
  .semi-radio-buttonRadioComponent {
13682
13709
  padding: 4px;
@@ -13734,7 +13761,23 @@ body[theme-mode=dark], body .semi-always-dark {
13734
13761
  }
13735
13762
  .semi-radio-cardRadioGroup_checked {
13736
13763
  background: var(--semi-color-primary-light-default);
13737
- border: 1px solid var(--semi-color-focus-border);
13764
+ border: 1px solid var(--semi-color-primary);
13765
+ }
13766
+ .semi-radio-cardRadioGroup_checked:hover {
13767
+ border: 1px solid var(--semi-color-primary-hover);
13768
+ }
13769
+ .semi-radio-cardRadioGroup_checked:hover .semi-radio-inner-checked .semi-radio-inner-display {
13770
+ border-color: var(--semi-color-primary-hover);
13771
+ }
13772
+ .semi-radio-cardRadioGroup_checked:active {
13773
+ background: var(--semi-color-primary-light-default);
13774
+ border: 1px solid var(--semi-color-primary-active);
13775
+ }
13776
+ .semi-radio-cardRadioGroup_checked:active .semi-radio-inner-checked .semi-radio-inner-display {
13777
+ border-color: var(--semi-color-primary-active);
13778
+ }
13779
+ .semi-radio-cardRadioGroup_checked:active .semi-radio-inner-checked:hover .semi-radio-inner-display {
13780
+ background: var(--semi-color-primary-active);
13738
13781
  }
13739
13782
  .semi-radio-cardRadioGroup_hover {
13740
13783
  background: var(--semi-color-fill-0);
@@ -13742,12 +13785,23 @@ body[theme-mode=dark], body .semi-always-dark {
13742
13785
  .semi-radio-cardRadioGroup_disabled:active {
13743
13786
  background: transparent;
13744
13787
  }
13788
+ .semi-radio-cardRadioGroup_checked_disabled.semi-radio-cardRadioGroup {
13789
+ background: var(--semi-color-primary-light-default);
13790
+ border: 1px solid var(--semi-color-primary-disabled);
13791
+ }
13792
+ .semi-radio-cardRadioGroup_checked_disabled.semi-radio-cardRadioGroup .semi-radio-inner-checked .semi-radio-inner-display {
13793
+ border-color: var(--semi-color-primary-disabled);
13794
+ }
13795
+ .semi-radio-cardRadioGroup_checked_disabled.semi-radio-cardRadioGroup:hover .semi-radio-inner-checked .semi-radio-inner-display {
13796
+ border-color: var(--semi-color-primary-disabled);
13797
+ }
13745
13798
  .semi-radio.semi-radio-disabled:hover .semi-radio-inner-display, .semi-radio.semi-radio-disabled:active .semi-radio-inner-display {
13746
13799
  background: var(--semi-color-disabled-fill);
13747
13800
  border: solid 1px var(--semi-color-border);
13748
13801
  }
13749
13802
  .semi-radio.semi-radio-disabled:hover .semi-radio-inner-checked .semi-radio-inner-display, .semi-radio.semi-radio-disabled:active .semi-radio-inner-checked .semi-radio-inner-display {
13750
13803
  background: var(--semi-color-primary-disabled);
13804
+ border-color: var(--semi-color-primary-disabled);
13751
13805
  }
13752
13806
  .semi-radio-inner {
13753
13807
  position: absolute;
@@ -13855,10 +13909,11 @@ body[theme-mode=dark], body .semi-always-dark {
13855
13909
  }
13856
13910
  .semi-radio-disabled .semi-radio-inner-checked .semi-radio-inner-display {
13857
13911
  background: var(--semi-color-primary-disabled);
13858
- border-color: var(--semi-color-border);
13912
+ border-color: var(--semi-color-primary-disabled);
13859
13913
  }
13860
13914
  .semi-radio-disabled .semi-radio-inner-checked .semi-radio-inner-display:hover {
13861
13915
  background: var(--semi-color-primary-disabled);
13916
+ border-color: var(--semi-color-primary-disabled);
13862
13917
  }
13863
13918
  .semi-radio-disabled .semi-radio-addon {
13864
13919
  color: var(--semi-color-disabled-text);
@@ -14020,6 +14075,9 @@ body[theme-mode=dark], body .semi-always-dark {
14020
14075
  height: 24px;
14021
14076
  font-size: 24px;
14022
14077
  }
14078
+ .semi-rating-star-wrapper {
14079
+ position: relative;
14080
+ }
14023
14081
  .semi-rating-star-first, .semi-rating-star-second {
14024
14082
  color: var(--semi-color-fill-0);
14025
14083
  user-select: none;
@@ -14789,7 +14847,7 @@ body[theme-mode=dark], body .semi-always-dark {
14789
14847
  left: 0;
14790
14848
  width: 100%;
14791
14849
  height: 100%;
14792
- background-color: var(--semi-overlay-bg);
14850
+ background-color: var(--semi-color-overlay-bg);
14793
14851
  }
14794
14852
  .semi-sidesheet-mask-hidden {
14795
14853
  display: none;
@@ -16101,7 +16159,7 @@ body[theme-mode=dark], body .semi-always-dark {
16101
16159
  user-select: none;
16102
16160
  }
16103
16161
  .semi-table-thead > .semi-table-row > .semi-table-row-head.semi-table-cell-fixed-left, .semi-table-thead > .semi-table-row > .semi-table-row-head.semi-table-cell-fixed-right {
16104
- z-index: 1;
16162
+ z-index: 101;
16105
16163
  position: sticky;
16106
16164
  background-color: var(--semi-color-bg-2);
16107
16165
  }
@@ -16215,7 +16273,7 @@ body[theme-mode=dark], body .semi-always-dark {
16215
16273
  background-color: var(--semi-color-fill-0);
16216
16274
  }
16217
16275
  .semi-table-tbody > .semi-table-row > .semi-table-cell-fixed-left, .semi-table-tbody > .semi-table-row > .semi-table-cell-fixed-right {
16218
- z-index: 1;
16276
+ z-index: 101;
16219
16277
  position: sticky;
16220
16278
  background-color: var(--semi-color-bg-2);
16221
16279
  }
@@ -17700,6 +17758,9 @@ body[theme-mode=dark], body .semi-always-dark {
17700
17758
  .semi-timeline-alternate .semi-timeline-item-tail, .semi-timeline-alternate .semi-timeline-item-head, .semi-timeline-alternate .semi-timeline-item-head-custom, .semi-timeline-right .semi-timeline-item-tail, .semi-timeline-right .semi-timeline-item-head, .semi-timeline-right .semi-timeline-item-head-custom, .semi-timeline-center .semi-timeline-item-tail, .semi-timeline-center .semi-timeline-item-head, .semi-timeline-center .semi-timeline-item-head-custom {
17701
17759
  left: 50%;
17702
17760
  }
17761
+ .semi-timeline-alternate .semi-timeline-item-head.semi-timeline-item-head-custom, .semi-timeline-right .semi-timeline-item-head.semi-timeline-item-head-custom, .semi-timeline-center .semi-timeline-item-head.semi-timeline-item-head-custom {
17762
+ margin-left: 0;
17763
+ }
17703
17764
  .semi-timeline-alternate .semi-timeline-item-head, .semi-timeline-right .semi-timeline-item-head, .semi-timeline-center .semi-timeline-item-head {
17704
17765
  margin-left: -4px;
17705
17766
  }
@@ -19347,6 +19408,8 @@ p.semi-typography-extended,
19347
19408
  display: flex;
19348
19409
  flex-wrap: wrap;
19349
19410
  flex-shrink: 0;
19411
+ gap: 8px;
19412
+ margin-bottom: 8px;
19350
19413
  }
19351
19414
  .semi-upload-file-list-main p {
19352
19415
  display: flex;
@@ -19373,8 +19436,6 @@ p.semi-typography-extended,
19373
19436
  justify-content: space-between;
19374
19437
  height: 52px;
19375
19438
  width: 250px;
19376
- margin-right: 8px;
19377
- margin-bottom: 8px;
19378
19439
  background-color: var(--semi-color-fill-0);
19379
19440
  cursor: pointer;
19380
19441
  }
@@ -19509,16 +19570,16 @@ p.semi-typography-extended,
19509
19570
  flex-direction: column;
19510
19571
  }
19511
19572
  .semi-upload-picture[x-prompt-pos=bottom] .semi-upload-prompt {
19512
- order: 2;
19573
+ order: 1;
19513
19574
  }
19514
19575
  .semi-upload-picture[x-prompt-pos=bottom] .semi-upload-add {
19515
- order: 1;
19576
+ order: 0;
19516
19577
  }
19517
19578
  .semi-upload-picture[x-prompt-pos=right] .semi-upload-prompt {
19518
- order: 2;
19579
+ order: 1;
19519
19580
  }
19520
19581
  .semi-upload-picture[x-prompt-pos=right] .semi-upload-add {
19521
- order: 1;
19582
+ order: 0;
19522
19583
  }
19523
19584
  .semi-upload-picture-add {
19524
19585
  background-color: var(--semi-color-fill-0);
@@ -19555,11 +19616,14 @@ p.semi-typography-extended,
19555
19616
  margin-bottom: 0;
19556
19617
  }
19557
19618
  .semi-upload-picture-file-card {
19619
+ display: flex;
19620
+ align-items: center;
19621
+ justify-content: center;
19558
19622
  height: 96px;
19559
19623
  width: 96px;
19624
+ border-radius: var(--semi-border-radius-small);
19560
19625
  position: relative;
19561
- margin-right: 8px;
19562
- margin-bottom: 8px;
19626
+ overflow: hidden;
19563
19627
  }
19564
19628
  .semi-upload-picture-file-card img {
19565
19629
  height: 96px;
@@ -19570,7 +19634,7 @@ p.semi-typography-extended,
19570
19634
  .semi-upload-picture-file-card-close {
19571
19635
  width: 16px;
19572
19636
  height: 16px;
19573
- background-color: var(--semi-overlay-bg);
19637
+ background-color: var(--semi-color-overlay-bg);
19574
19638
  position: absolute;
19575
19639
  top: 8px;
19576
19640
  right: 8px;
@@ -19624,6 +19688,22 @@ p.semi-typography-extended,
19624
19688
  color: var(--semi-color-white);
19625
19689
  transform: translate3D(-50%, -50%, 0);
19626
19690
  }
19691
+ .semi-upload-picture-file-card-pic-info {
19692
+ display: inline-flex;
19693
+ box-sizing: border-box;
19694
+ justify-content: space-between;
19695
+ align-items: center;
19696
+ position: absolute;
19697
+ width: 100%;
19698
+ height: 24px;
19699
+ padding: 0 10px;
19700
+ bottom: 0;
19701
+ left: 0;
19702
+ color: var(--semi-color-white);
19703
+ font-size: 12px;
19704
+ font-weight: 600;
19705
+ background: linear-gradient(0deg, rgba(22, 22, 26, 0.3) 0%, rgba(22, 22, 26, 0) 77.08%);
19706
+ }
19627
19707
  .semi-upload-picture-file-card-icon-loading, .semi-upload-picture-file-card-icon-error {
19628
19708
  position: absolute;
19629
19709
  bottom: 6px;
@@ -19636,6 +19716,9 @@ p.semi-typography-extended,
19636
19716
  .semi-upload-picture-file-card-show-pointer {
19637
19717
  cursor: pointer;
19638
19718
  }
19719
+ .semi-upload-picture-file-card-error {
19720
+ outline: 1px solid var(--semi-color-danger);
19721
+ }
19639
19722
  .semi-upload-drag-area {
19640
19723
  border-radius: var(--semi-border-radius-small);
19641
19724
  border: 2px dashed var(--semi-color-border);
@@ -19716,11 +19799,6 @@ p.semi-typography-extended,
19716
19799
  .semi-portal-rtl .semi-upload-file-list-title-clear {
19717
19800
  display: inline-block;
19718
19801
  }
19719
- .semi-rtl .semi-upload-file-card,
19720
- .semi-portal-rtl .semi-upload-file-card {
19721
- margin-right: 0;
19722
- margin-left: 8px;
19723
- }
19724
19802
  .semi-rtl .semi-upload-file-card-info-size,
19725
19803
  .semi-portal-rtl .semi-upload-file-card-info-size {
19726
19804
  margin-left: 0;
@@ -19737,11 +19815,6 @@ p.semi-typography-extended,
19737
19815
  margin-right: 0;
19738
19816
  margin-left: 2px;
19739
19817
  }
19740
- .semi-rtl .semi-upload-picture-file-card,
19741
- .semi-portal-rtl .semi-upload-picture-file-card {
19742
- margin-right: 0;
19743
- margin-left: 8px;
19744
- }
19745
19818
  .semi-rtl .semi-upload-picture-file-card-close,
19746
19819
  .semi-portal-rtl .semi-upload-picture-file-card-close {
19747
19820
  right: auto;