@douyinfe/semi-ui 2.27.0-alpha.2 → 2.27.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 (45) hide show
  1. package/dist/css/semi.css +19 -196
  2. package/dist/css/semi.min.css +1 -1
  3. package/dist/umd/semi-ui.js +243 -297
  4. package/dist/umd/semi-ui.js.map +1 -1
  5. package/dist/umd/semi-ui.min.js +1 -1
  6. package/dist/umd/semi-ui.min.js.map +1 -1
  7. package/lib/cjs/button/Button.d.ts +1 -1
  8. package/lib/cjs/button/index.d.ts +1 -1
  9. package/lib/cjs/carousel/index.d.ts +1 -1
  10. package/lib/cjs/datePicker/dateInput.d.ts +1 -1
  11. package/lib/cjs/datePicker/datePicker.d.ts +1 -1
  12. package/lib/cjs/datePicker/monthsGrid.d.ts +1 -1
  13. package/lib/cjs/form/baseForm.d.ts +1 -1
  14. package/lib/cjs/form/field.d.ts +1 -1
  15. package/lib/cjs/tabs/TabBar.d.ts +2 -1
  16. package/lib/cjs/tabs/TabBar.js +48 -22
  17. package/lib/cjs/tabs/index.d.ts +1 -2
  18. package/lib/cjs/tabs/index.js +0 -3
  19. package/lib/cjs/typography/base.d.ts +1 -1
  20. package/lib/cjs/typography/numeral.d.ts +1 -1
  21. package/lib/cjs/typography/paragraph.d.ts +1 -1
  22. package/lib/cjs/typography/text.d.ts +1 -1
  23. package/lib/cjs/typography/title.d.ts +1 -1
  24. package/lib/es/button/Button.d.ts +1 -1
  25. package/lib/es/button/index.d.ts +1 -1
  26. package/lib/es/carousel/index.d.ts +1 -1
  27. package/lib/es/datePicker/dateInput.d.ts +1 -1
  28. package/lib/es/datePicker/datePicker.d.ts +1 -1
  29. package/lib/es/datePicker/monthsGrid.d.ts +1 -1
  30. package/lib/es/form/baseForm.d.ts +1 -1
  31. package/lib/es/form/field.d.ts +1 -1
  32. package/lib/es/tabs/TabBar.d.ts +2 -1
  33. package/lib/es/tabs/TabBar.js +49 -22
  34. package/lib/es/tabs/index.d.ts +1 -2
  35. package/lib/es/tabs/index.js +0 -2
  36. package/lib/es/typography/base.d.ts +1 -1
  37. package/lib/es/typography/numeral.d.ts +1 -1
  38. package/lib/es/typography/paragraph.d.ts +1 -1
  39. package/lib/es/typography/text.d.ts +1 -1
  40. package/lib/es/typography/title.d.ts +1 -1
  41. package/package.json +8 -8
  42. package/lib/cjs/tabs/TabItem.d.ts +0 -18
  43. package/lib/cjs/tabs/TabItem.js +0 -95
  44. package/lib/es/tabs/TabItem.d.ts +0 -18
  45. package/lib/es/tabs/TabItem.js +0 -78
@@ -48,7 +48,7 @@ export default class Button extends PureComponent<ButtonProps> {
48
48
  prefixCls: PropTypes.Requireable<string>;
49
49
  style: PropTypes.Requireable<object>;
50
50
  size: PropTypes.Requireable<"default" | "small" | "large">;
51
- type: PropTypes.Requireable<"warning" | "primary" | "secondary" | "tertiary" | "danger">;
51
+ type: PropTypes.Requireable<"warning" | "primary" | "tertiary" | "secondary" | "danger">;
52
52
  block: PropTypes.Requireable<boolean>;
53
53
  onClick: PropTypes.Requireable<(...args: any[]) => any>;
54
54
  onMouseDown: PropTypes.Requireable<(...args: any[]) => any>;
@@ -23,7 +23,7 @@ declare class Button extends React.PureComponent<ButtonProps> {
23
23
  onMouseLeave: import("prop-types").Requireable<(...args: any[]) => any>;
24
24
  disabled: import("prop-types").Requireable<boolean>;
25
25
  size: import("prop-types").Requireable<"default" | "small" | "large">;
26
- type: import("prop-types").Requireable<"warning" | "primary" | "secondary" | "tertiary" | "danger">;
26
+ type: import("prop-types").Requireable<"warning" | "primary" | "tertiary" | "secondary" | "danger">;
27
27
  block: import("prop-types").Requireable<boolean>;
28
28
  onClick: import("prop-types").Requireable<(...args: any[]) => any>;
29
29
  onMouseDown: import("prop-types").Requireable<(...args: any[]) => any>;
@@ -14,7 +14,7 @@ export interface CarouselState {
14
14
  declare class Carousel extends BaseComponent<CarouselProps, CarouselState> {
15
15
  static propTypes: {
16
16
  activeIndex: PropTypes.Requireable<number>;
17
- animation: PropTypes.Requireable<"fade" | "slide">;
17
+ animation: PropTypes.Requireable<"slide" | "fade">;
18
18
  arrowProps: PropTypes.Requireable<object>;
19
19
  autoPlay: PropTypes.Requireable<NonNullable<boolean | object>>;
20
20
  className: PropTypes.Requireable<string>;
@@ -26,7 +26,7 @@ export default class DateInput extends BaseComponent<DateInputProps, {}> {
26
26
  onFocus: PropTypes.Requireable<(...args: any[]) => any>;
27
27
  value: PropTypes.Requireable<any[]>;
28
28
  disabled: PropTypes.Requireable<boolean>;
29
- type: PropTypes.Requireable<"date" | "month" | "dateTime" | "dateRange" | "year" | "dateTimeRange">;
29
+ type: PropTypes.Requireable<"dateTime" | "date" | "month" | "dateRange" | "year" | "dateTimeRange">;
30
30
  showClear: PropTypes.Requireable<boolean>;
31
31
  format: PropTypes.Requireable<string>;
32
32
  inputStyle: PropTypes.Requireable<object>;
@@ -46,7 +46,7 @@ export default class DatePicker extends BaseComponent<DatePickerProps, DatePicke
46
46
  'aria-invalid': PropTypes.Requireable<boolean>;
47
47
  'aria-labelledby': PropTypes.Requireable<string>;
48
48
  'aria-required': PropTypes.Requireable<boolean>;
49
- type: PropTypes.Requireable<"date" | "month" | "dateTime" | "dateRange" | "year" | "dateTimeRange">;
49
+ type: PropTypes.Requireable<"dateTime" | "date" | "month" | "dateRange" | "year" | "dateTimeRange">;
50
50
  size: PropTypes.Requireable<"default" | "small" | "large">;
51
51
  clearIcon: PropTypes.Requireable<PropTypes.ReactNodeLike>;
52
52
  density: PropTypes.Requireable<"default" | "compact">;
@@ -19,7 +19,7 @@ export interface MonthsGridProps extends MonthsGridFoundationProps, BaseProps {
19
19
  export declare type MonthsGridState = MonthsGridFoundationState;
20
20
  export default class MonthsGrid extends BaseComponent<MonthsGridProps, MonthsGridState> {
21
21
  static propTypes: {
22
- type: PropTypes.Requireable<"date" | "month" | "dateTime" | "dateRange" | "year" | "dateTimeRange">;
22
+ type: PropTypes.Requireable<"dateTime" | "date" | "month" | "dateRange" | "year" | "dateTimeRange">;
23
23
  defaultValue: PropTypes.Requireable<NonNullable<string | number | object>>;
24
24
  defaultPickerValue: PropTypes.Requireable<NonNullable<string | number | object>>;
25
25
  multiple: PropTypes.Requireable<boolean>;
@@ -135,7 +135,7 @@ declare class Form<Values extends Record<string, any> = any> extends BaseCompone
135
135
  preventScroll?: boolean;
136
136
  showRestTagsPopover?: boolean;
137
137
  restTagsPopoverProps?: import("../popover").PopoverProps;
138
- } & Pick<import("../tooltip").TooltipProps, "stopPropagation" | "getPopupContainer" | "motion" | "spacing" | "mouseEnterDelay" | "autoAdjustOverflow" | "mouseLeaveDelay"> & React.RefAttributes<any> & import("./interface").CommonFieldProps, import("./interface").CommonexcludeType>> & import("./interface").SelectStatic;
138
+ } & Pick<import("../tooltip").TooltipProps, "stopPropagation" | "motion" | "getPopupContainer" | "spacing" | "mouseEnterDelay" | "autoAdjustOverflow" | "mouseLeaveDelay"> & React.RefAttributes<any> & import("./interface").CommonFieldProps, import("./interface").CommonexcludeType>> & import("./interface").SelectStatic;
139
139
  static Checkbox: React.ComponentType<import("utility-types").Subtract<import("./interface").CommonFieldProps, import("./interface").RadioCheckboxExcludeProps> & import("../checkbox").CheckboxProps & import("./interface").RCIncludeType>;
140
140
  static CheckboxGroup: React.ComponentType<import("utility-types").Subtract<import("../checkbox").CheckboxGroupProps, import("./interface").CommonexcludeType> & import("./interface").CommonFieldProps & React.RefAttributes<any>>;
141
141
  static Radio: React.ComponentType<import("utility-types").Subtract<import("./interface").CommonFieldProps, import("./interface").RadioCheckboxExcludeProps> & import("../radio").RadioProps & import("./interface").RCIncludeType>;
@@ -83,7 +83,7 @@ declare const FormSelect: import("react").ComponentType<import("utility-types").
83
83
  preventScroll?: boolean;
84
84
  showRestTagsPopover?: boolean;
85
85
  restTagsPopoverProps?: import("../popover").PopoverProps;
86
- } & Pick<import("../tooltip").TooltipProps, "stopPropagation" | "getPopupContainer" | "motion" | "spacing" | "mouseEnterDelay" | "autoAdjustOverflow" | "mouseLeaveDelay"> & import("react").RefAttributes<any> & import("./interface").CommonFieldProps, import("./interface").CommonexcludeType>> & import("./interface").SelectStatic;
86
+ } & Pick<import("../tooltip").TooltipProps, "stopPropagation" | "motion" | "getPopupContainer" | "spacing" | "mouseEnterDelay" | "autoAdjustOverflow" | "mouseLeaveDelay"> & import("react").RefAttributes<any> & import("./interface").CommonFieldProps, import("./interface").CommonexcludeType>> & import("./interface").SelectStatic;
87
87
  declare const FormCheckboxGroup: import("react").ComponentType<import("utility-types").Subtract<import("../checkbox/checkboxGroup").CheckboxGroupProps, import("./interface").CommonexcludeType> & import("./interface").CommonFieldProps & import("react").RefAttributes<any>>;
88
88
  declare const FormCheckbox: import("react").ComponentType<import("utility-types").Subtract<import("./interface").CommonFieldProps, import("./interface").RadioCheckboxExcludeProps> & import("../checkbox/checkbox").CheckboxProps & import("./interface").RCIncludeType>;
89
89
  declare const FormRadioGroup: import("react").ComponentType<import("utility-types").Subtract<import("../radio/radioGroup").RadioGroupProps, import("./interface").CommonexcludeType> & import("./interface").CommonFieldProps & import("react").RefAttributes<any>>;
@@ -5,6 +5,7 @@ export interface TabBarState {
5
5
  endInd: number;
6
6
  rePosKey: number;
7
7
  startInd: number;
8
+ uuid: string;
8
9
  }
9
10
  export interface OverflowItem extends PlainTab {
10
11
  key: string;
@@ -25,8 +26,8 @@ declare class TabBar extends React.Component<TabBarProps, TabBarState> {
25
26
  closable: PropTypes.Requireable<boolean>;
26
27
  deleteTabItem: PropTypes.Requireable<(...args: any[]) => any>;
27
28
  };
28
- uuid: string;
29
29
  constructor(props: TabBarProps);
30
+ componentDidMount(): void;
30
31
  renderIcon(icon: ReactNode): ReactNode;
31
32
  renderExtra(): ReactNode;
32
33
  handleItemClick: (itemKey: string, e: MouseEvent<Element>) => void;
@@ -27,8 +27,6 @@ var _semiIcons = require("@douyinfe/semi-icons");
27
27
 
28
28
  var _uuid = require("@douyinfe/semi-foundation/lib/cjs/utils/uuid");
29
29
 
30
- var _TabItem = _interopRequireDefault(require("./TabItem"));
31
-
32
30
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
33
31
 
34
32
  var __rest = void 0 && (void 0).__rest || function (s, e) {
@@ -53,7 +51,7 @@ class TabBar extends _react.default.Component {
53
51
  const key = this._getItemKey(itemKey); // eslint-disable-next-line max-len
54
52
 
55
53
 
56
- const tabItem = document.querySelector("[data-uuid=\"".concat(this.uuid, "\"] .").concat(_constants.cssClasses.TABS_TAB, "[data-scrollkey=\"").concat(key, "\"]"));
54
+ const tabItem = document.querySelector("[data-uuid=\"".concat(this.state.uuid, "\"] .").concat(_constants.cssClasses.TABS_TAB, "[data-scrollkey=\"").concat(key, "\"]"));
57
55
  tabItem.scrollIntoView({
58
56
  behavior: 'smooth',
59
57
  block: 'nearest',
@@ -70,23 +68,45 @@ class TabBar extends _react.default.Component {
70
68
  const {
71
69
  size,
72
70
  type,
73
- deleteTabItem,
74
- handleKeyDown,
75
- tabPosition
71
+ deleteTabItem
76
72
  } = this.props;
73
+ const panelIcon = panel.icon ? this.renderIcon(panel.icon) : null;
74
+ const closableIcon = type === 'card' && panel.closable ? /*#__PURE__*/_react.default.createElement(_semiIcons.IconClose, {
75
+ "aria-label": "Close",
76
+ role: "button",
77
+ className: "".concat(_constants.cssClasses.TABS_TAB, "-icon-close"),
78
+ onClick: e => deleteTabItem(panel.itemKey, e)
79
+ }) : null;
80
+ let events = {};
81
+ const key = panel.itemKey;
82
+
83
+ if (!panel.disabled) {
84
+ events = {
85
+ onClick: e => this.handleItemClick(key, e)
86
+ };
87
+ }
77
88
 
78
- const isSelected = this._isActive(panel.itemKey);
79
-
80
- return /*#__PURE__*/_react.default.createElement(_TabItem.default, Object.assign({}, panel, {
81
- key: this._getItemKey(panel.itemKey),
82
- selected: isSelected,
83
- size: size,
84
- type: type,
85
- tabPosition: tabPosition,
86
- handleKeyDown: handleKeyDown,
87
- deleteTabItem: deleteTabItem,
88
- onClick: this.handleItemClick
89
- }));
89
+ const isSelected = this._isActive(key);
90
+
91
+ const className = (0, _classnames.default)(_constants.cssClasses.TABS_TAB, {
92
+ [_constants.cssClasses.TABS_TAB_ACTIVE]: isSelected,
93
+ [_constants.cssClasses.TABS_TAB_DISABLED]: panel.disabled,
94
+ ["".concat(_constants.cssClasses.TABS_TAB, "-small")]: size === 'small',
95
+ ["".concat(_constants.cssClasses.TABS_TAB, "-medium")]: size === 'medium'
96
+ });
97
+ return /*#__PURE__*/_react.default.createElement("div", Object.assign({
98
+ role: "tab",
99
+ id: "semiTab".concat(key),
100
+ "data-tabkey": "semiTab".concat(key),
101
+ "aria-controls": "semiTabPanel".concat(key),
102
+ "aria-disabled": panel.disabled ? 'true' : 'false',
103
+ "aria-selected": isSelected ? 'true' : 'false',
104
+ tabIndex: isSelected ? 0 : -1,
105
+ onKeyDown: e => this.handleKeyDown(e, key, panel.closable)
106
+ }, events, {
107
+ className: className,
108
+ key: this._getItemKey(key)
109
+ }), panelIcon, panel.tab, closableIcon);
90
110
  };
91
111
 
92
112
  this.renderTabComponents = list => list.map(panel => this.renderTabItem(panel));
@@ -101,7 +121,7 @@ class TabBar extends _react.default.Component {
101
121
  const key = this._getItemKey(lastItem.itemKey); // eslint-disable-next-line max-len
102
122
 
103
123
 
104
- const tabItem = document.querySelector("[data-uuid=\"".concat(this.uuid, "\"] .").concat(_constants.cssClasses.TABS_TAB, "[data-scrollkey=\"").concat(key, "\"]"));
124
+ const tabItem = document.querySelector("[data-uuid=\"".concat(this.state.uuid, "\"] .").concat(_constants.cssClasses.TABS_TAB, "[data-scrollkey=\"").concat(key, "\"]"));
105
125
  tabItem.scrollIntoView({
106
126
  behavior: 'smooth',
107
127
  block: 'nearest',
@@ -205,9 +225,15 @@ class TabBar extends _react.default.Component {
205
225
  this.state = {
206
226
  endInd: props.list.length,
207
227
  rePosKey: 0,
208
- startInd: 0
228
+ startInd: 0,
229
+ uuid: ''
209
230
  };
210
- this.uuid = (0, _uuid.getUuidv4)();
231
+ }
232
+
233
+ componentDidMount() {
234
+ this.setState({
235
+ uuid: (0, _uuid.getUuidv4)()
236
+ });
211
237
  }
212
238
 
213
239
  renderIcon(icon) {
@@ -269,7 +295,7 @@ class TabBar extends _react.default.Component {
269
295
  className: classNames,
270
296
  style: style
271
297
  }, (0, _getDataAttr.default)(restProps), {
272
- "data-uuid": this.uuid
298
+ "data-uuid": this.state.uuid
273
299
  }), contents, extra);
274
300
  }
275
301
 
@@ -1,4 +1,4 @@
1
- import React, { MouseEvent, ReactElement, ReactNode, RefCallback, RefObject } from 'react';
1
+ import { MouseEvent, ReactElement, ReactNode, RefCallback, RefObject } from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  import TabsFoundation, { TabsAdapter } from '@douyinfe/semi-foundation/lib/cjs/tabs/foundation';
4
4
  import BaseComponent from '../_base/baseComponent';
@@ -14,7 +14,6 @@ export interface TabsState {
14
14
  }
15
15
  declare class Tabs extends BaseComponent<TabsProps, TabsState> {
16
16
  static TabPane: typeof TabPane;
17
- static TabItem: React.ForwardRefExoticComponent<import("./TabItem").TabItemProps & React.RefAttributes<HTMLDivElement>>;
18
17
  static propTypes: {
19
18
  activeKey: PropTypes.Requireable<string>;
20
19
  className: PropTypes.Requireable<string>;
@@ -32,8 +32,6 @@ var _TabBar = _interopRequireDefault(require("./TabBar"));
32
32
 
33
33
  var _TabPane = _interopRequireDefault(require("./TabPane"));
34
34
 
35
- var _TabItem = _interopRequireDefault(require("./TabItem"));
36
-
37
35
  var _tabsContext = _interopRequireDefault(require("./tabs-context"));
38
36
 
39
37
  var _interface = require("./interface");
@@ -381,7 +379,6 @@ class Tabs extends _baseComponent.default {
381
379
  }
382
380
 
383
381
  Tabs.TabPane = _TabPane.default;
384
- Tabs.TabItem = _TabItem.default;
385
382
  Tabs.propTypes = {
386
383
  activeKey: _propTypes.default.string,
387
384
  className: _propTypes.default.string,
@@ -64,7 +64,7 @@ export default class Base extends Component<BaseTypographyProps, BaseTypographyS
64
64
  spacing: PropTypes.Requireable<"normal" | "extended">;
65
65
  strong: PropTypes.Requireable<boolean>;
66
66
  size: PropTypes.Requireable<"small" | "normal">;
67
- type: PropTypes.Requireable<"warning" | "success" | "primary" | "secondary" | "tertiary" | "danger" | "quaternary">;
67
+ type: PropTypes.Requireable<"warning" | "success" | "primary" | "tertiary" | "secondary" | "danger" | "quaternary">;
68
68
  style: PropTypes.Requireable<object>;
69
69
  className: PropTypes.Requireable<string>;
70
70
  icon: PropTypes.Requireable<NonNullable<PropTypes.ReactNodeLike>>;
@@ -38,7 +38,7 @@ export default class Numeral extends PureComponent<NumeralProps> {
38
38
  underline: PropTypes.Requireable<boolean>;
39
39
  link: PropTypes.Requireable<NonNullable<boolean | object>>;
40
40
  strong: PropTypes.Requireable<boolean>;
41
- type: PropTypes.Requireable<"warning" | "success" | "primary" | "secondary" | "tertiary" | "danger" | "quaternary">;
41
+ type: PropTypes.Requireable<"warning" | "success" | "primary" | "tertiary" | "secondary" | "danger" | "quaternary">;
42
42
  size: PropTypes.Requireable<"small" | "normal">;
43
43
  style: PropTypes.Requireable<object>;
44
44
  className: PropTypes.Requireable<string>;
@@ -29,7 +29,7 @@ export default class Paragraph extends PureComponent<ParagraphProps> {
29
29
  link: PropTypes.Requireable<NonNullable<boolean | object>>;
30
30
  underline: PropTypes.Requireable<boolean>;
31
31
  strong: PropTypes.Requireable<boolean>;
32
- type: PropTypes.Requireable<"warning" | "success" | "primary" | "secondary" | "tertiary" | "danger" | "quaternary">;
32
+ type: PropTypes.Requireable<"warning" | "success" | "primary" | "tertiary" | "secondary" | "danger" | "quaternary">;
33
33
  size: PropTypes.Requireable<"small" | "normal">;
34
34
  spacing: PropTypes.Requireable<"normal" | "extended">;
35
35
  style: PropTypes.Requireable<object>;
@@ -32,7 +32,7 @@ export default class Text extends PureComponent<TextProps> {
32
32
  underline: PropTypes.Requireable<boolean>;
33
33
  link: PropTypes.Requireable<NonNullable<boolean | object>>;
34
34
  strong: PropTypes.Requireable<boolean>;
35
- type: PropTypes.Requireable<"warning" | "success" | "primary" | "secondary" | "tertiary" | "danger" | "quaternary">;
35
+ type: PropTypes.Requireable<"warning" | "success" | "primary" | "tertiary" | "secondary" | "danger" | "quaternary">;
36
36
  size: PropTypes.Requireable<"small" | "normal">;
37
37
  style: PropTypes.Requireable<object>;
38
38
  className: PropTypes.Requireable<string>;
@@ -36,7 +36,7 @@ export default class Title extends PureComponent<TitleProps> {
36
36
  link: PropTypes.Requireable<NonNullable<boolean | object>>;
37
37
  underline: PropTypes.Requireable<boolean>;
38
38
  strong: PropTypes.Requireable<boolean>;
39
- type: PropTypes.Requireable<"warning" | "success" | "primary" | "secondary" | "tertiary" | "danger" | "quaternary">;
39
+ type: PropTypes.Requireable<"warning" | "success" | "primary" | "tertiary" | "secondary" | "danger" | "quaternary">;
40
40
  heading: PropTypes.Requireable<1 | 2 | 3 | 4 | 6 | 5>;
41
41
  style: PropTypes.Requireable<object>;
42
42
  className: PropTypes.Requireable<string>;
@@ -48,7 +48,7 @@ export default class Button extends PureComponent<ButtonProps> {
48
48
  prefixCls: PropTypes.Requireable<string>;
49
49
  style: PropTypes.Requireable<object>;
50
50
  size: PropTypes.Requireable<"default" | "small" | "large">;
51
- type: PropTypes.Requireable<"warning" | "primary" | "secondary" | "tertiary" | "danger">;
51
+ type: PropTypes.Requireable<"warning" | "primary" | "tertiary" | "secondary" | "danger">;
52
52
  block: PropTypes.Requireable<boolean>;
53
53
  onClick: PropTypes.Requireable<(...args: any[]) => any>;
54
54
  onMouseDown: PropTypes.Requireable<(...args: any[]) => any>;
@@ -23,7 +23,7 @@ declare class Button extends React.PureComponent<ButtonProps> {
23
23
  onMouseLeave: import("prop-types").Requireable<(...args: any[]) => any>;
24
24
  disabled: import("prop-types").Requireable<boolean>;
25
25
  size: import("prop-types").Requireable<"default" | "small" | "large">;
26
- type: import("prop-types").Requireable<"warning" | "primary" | "secondary" | "tertiary" | "danger">;
26
+ type: import("prop-types").Requireable<"warning" | "primary" | "tertiary" | "secondary" | "danger">;
27
27
  block: import("prop-types").Requireable<boolean>;
28
28
  onClick: import("prop-types").Requireable<(...args: any[]) => any>;
29
29
  onMouseDown: import("prop-types").Requireable<(...args: any[]) => any>;
@@ -14,7 +14,7 @@ export interface CarouselState {
14
14
  declare class Carousel extends BaseComponent<CarouselProps, CarouselState> {
15
15
  static propTypes: {
16
16
  activeIndex: PropTypes.Requireable<number>;
17
- animation: PropTypes.Requireable<"fade" | "slide">;
17
+ animation: PropTypes.Requireable<"slide" | "fade">;
18
18
  arrowProps: PropTypes.Requireable<object>;
19
19
  autoPlay: PropTypes.Requireable<NonNullable<boolean | object>>;
20
20
  className: PropTypes.Requireable<string>;
@@ -26,7 +26,7 @@ export default class DateInput extends BaseComponent<DateInputProps, {}> {
26
26
  onFocus: PropTypes.Requireable<(...args: any[]) => any>;
27
27
  value: PropTypes.Requireable<any[]>;
28
28
  disabled: PropTypes.Requireable<boolean>;
29
- type: PropTypes.Requireable<"date" | "month" | "dateTime" | "dateRange" | "year" | "dateTimeRange">;
29
+ type: PropTypes.Requireable<"dateTime" | "date" | "month" | "dateRange" | "year" | "dateTimeRange">;
30
30
  showClear: PropTypes.Requireable<boolean>;
31
31
  format: PropTypes.Requireable<string>;
32
32
  inputStyle: PropTypes.Requireable<object>;
@@ -46,7 +46,7 @@ export default class DatePicker extends BaseComponent<DatePickerProps, DatePicke
46
46
  'aria-invalid': PropTypes.Requireable<boolean>;
47
47
  'aria-labelledby': PropTypes.Requireable<string>;
48
48
  'aria-required': PropTypes.Requireable<boolean>;
49
- type: PropTypes.Requireable<"date" | "month" | "dateTime" | "dateRange" | "year" | "dateTimeRange">;
49
+ type: PropTypes.Requireable<"dateTime" | "date" | "month" | "dateRange" | "year" | "dateTimeRange">;
50
50
  size: PropTypes.Requireable<"default" | "small" | "large">;
51
51
  clearIcon: PropTypes.Requireable<PropTypes.ReactNodeLike>;
52
52
  density: PropTypes.Requireable<"default" | "compact">;
@@ -19,7 +19,7 @@ export interface MonthsGridProps extends MonthsGridFoundationProps, BaseProps {
19
19
  export declare type MonthsGridState = MonthsGridFoundationState;
20
20
  export default class MonthsGrid extends BaseComponent<MonthsGridProps, MonthsGridState> {
21
21
  static propTypes: {
22
- type: PropTypes.Requireable<"date" | "month" | "dateTime" | "dateRange" | "year" | "dateTimeRange">;
22
+ type: PropTypes.Requireable<"dateTime" | "date" | "month" | "dateRange" | "year" | "dateTimeRange">;
23
23
  defaultValue: PropTypes.Requireable<NonNullable<string | number | object>>;
24
24
  defaultPickerValue: PropTypes.Requireable<NonNullable<string | number | object>>;
25
25
  multiple: PropTypes.Requireable<boolean>;
@@ -135,7 +135,7 @@ declare class Form<Values extends Record<string, any> = any> extends BaseCompone
135
135
  preventScroll?: boolean;
136
136
  showRestTagsPopover?: boolean;
137
137
  restTagsPopoverProps?: import("../popover").PopoverProps;
138
- } & Pick<import("../tooltip").TooltipProps, "stopPropagation" | "getPopupContainer" | "motion" | "spacing" | "mouseEnterDelay" | "autoAdjustOverflow" | "mouseLeaveDelay"> & React.RefAttributes<any> & import("./interface").CommonFieldProps, import("./interface").CommonexcludeType>> & import("./interface").SelectStatic;
138
+ } & Pick<import("../tooltip").TooltipProps, "stopPropagation" | "motion" | "getPopupContainer" | "spacing" | "mouseEnterDelay" | "autoAdjustOverflow" | "mouseLeaveDelay"> & React.RefAttributes<any> & import("./interface").CommonFieldProps, import("./interface").CommonexcludeType>> & import("./interface").SelectStatic;
139
139
  static Checkbox: React.ComponentType<import("utility-types").Subtract<import("./interface").CommonFieldProps, import("./interface").RadioCheckboxExcludeProps> & import("../checkbox").CheckboxProps & import("./interface").RCIncludeType>;
140
140
  static CheckboxGroup: React.ComponentType<import("utility-types").Subtract<import("../checkbox").CheckboxGroupProps, import("./interface").CommonexcludeType> & import("./interface").CommonFieldProps & React.RefAttributes<any>>;
141
141
  static Radio: React.ComponentType<import("utility-types").Subtract<import("./interface").CommonFieldProps, import("./interface").RadioCheckboxExcludeProps> & import("../radio").RadioProps & import("./interface").RCIncludeType>;
@@ -83,7 +83,7 @@ declare const FormSelect: import("react").ComponentType<import("utility-types").
83
83
  preventScroll?: boolean;
84
84
  showRestTagsPopover?: boolean;
85
85
  restTagsPopoverProps?: import("../popover").PopoverProps;
86
- } & Pick<import("../tooltip").TooltipProps, "stopPropagation" | "getPopupContainer" | "motion" | "spacing" | "mouseEnterDelay" | "autoAdjustOverflow" | "mouseLeaveDelay"> & import("react").RefAttributes<any> & import("./interface").CommonFieldProps, import("./interface").CommonexcludeType>> & import("./interface").SelectStatic;
86
+ } & Pick<import("../tooltip").TooltipProps, "stopPropagation" | "motion" | "getPopupContainer" | "spacing" | "mouseEnterDelay" | "autoAdjustOverflow" | "mouseLeaveDelay"> & import("react").RefAttributes<any> & import("./interface").CommonFieldProps, import("./interface").CommonexcludeType>> & import("./interface").SelectStatic;
87
87
  declare const FormCheckboxGroup: import("react").ComponentType<import("utility-types").Subtract<import("../checkbox/checkboxGroup").CheckboxGroupProps, import("./interface").CommonexcludeType> & import("./interface").CommonFieldProps & import("react").RefAttributes<any>>;
88
88
  declare const FormCheckbox: import("react").ComponentType<import("utility-types").Subtract<import("./interface").CommonFieldProps, import("./interface").RadioCheckboxExcludeProps> & import("../checkbox/checkbox").CheckboxProps & import("./interface").RCIncludeType>;
89
89
  declare const FormRadioGroup: import("react").ComponentType<import("utility-types").Subtract<import("../radio/radioGroup").RadioGroupProps, import("./interface").CommonexcludeType> & import("./interface").CommonFieldProps & import("react").RefAttributes<any>>;
@@ -5,6 +5,7 @@ export interface TabBarState {
5
5
  endInd: number;
6
6
  rePosKey: number;
7
7
  startInd: number;
8
+ uuid: string;
8
9
  }
9
10
  export interface OverflowItem extends PlainTab {
10
11
  key: string;
@@ -25,8 +26,8 @@ declare class TabBar extends React.Component<TabBarProps, TabBarState> {
25
26
  closable: PropTypes.Requireable<boolean>;
26
27
  deleteTabItem: PropTypes.Requireable<(...args: any[]) => any>;
27
28
  };
28
- uuid: string;
29
29
  constructor(props: TabBarProps);
30
+ componentDidMount(): void;
30
31
  renderIcon(icon: ReactNode): ReactNode;
31
32
  renderExtra(): ReactNode;
32
33
  handleItemClick: (itemKey: string, e: MouseEvent<Element>) => void;
@@ -19,9 +19,8 @@ import getDataAttr from '@douyinfe/semi-foundation/lib/es/utils/getDataAttr';
19
19
  import OverflowList from '../overflowList';
20
20
  import Dropdown from '../dropdown';
21
21
  import Button from '../button';
22
- import { IconChevronRight, IconChevronLeft } from '@douyinfe/semi-icons';
22
+ import { IconChevronRight, IconChevronLeft, IconClose } from '@douyinfe/semi-icons';
23
23
  import { getUuidv4 } from '@douyinfe/semi-foundation/lib/es/utils/uuid';
24
- import TabItem from './TabItem';
25
24
 
26
25
  class TabBar extends React.Component {
27
26
  constructor(props) {
@@ -34,7 +33,7 @@ class TabBar extends React.Component {
34
33
  const key = this._getItemKey(itemKey); // eslint-disable-next-line max-len
35
34
 
36
35
 
37
- const tabItem = document.querySelector("[data-uuid=\"".concat(this.uuid, "\"] .").concat(cssClasses.TABS_TAB, "[data-scrollkey=\"").concat(key, "\"]"));
36
+ const tabItem = document.querySelector("[data-uuid=\"".concat(this.state.uuid, "\"] .").concat(cssClasses.TABS_TAB, "[data-scrollkey=\"").concat(key, "\"]"));
38
37
  tabItem.scrollIntoView({
39
38
  behavior: 'smooth',
40
39
  block: 'nearest',
@@ -51,23 +50,45 @@ class TabBar extends React.Component {
51
50
  const {
52
51
  size,
53
52
  type,
54
- deleteTabItem,
55
- handleKeyDown,
56
- tabPosition
53
+ deleteTabItem
57
54
  } = this.props;
55
+ const panelIcon = panel.icon ? this.renderIcon(panel.icon) : null;
56
+ const closableIcon = type === 'card' && panel.closable ? /*#__PURE__*/React.createElement(IconClose, {
57
+ "aria-label": "Close",
58
+ role: "button",
59
+ className: "".concat(cssClasses.TABS_TAB, "-icon-close"),
60
+ onClick: e => deleteTabItem(panel.itemKey, e)
61
+ }) : null;
62
+ let events = {};
63
+ const key = panel.itemKey;
64
+
65
+ if (!panel.disabled) {
66
+ events = {
67
+ onClick: e => this.handleItemClick(key, e)
68
+ };
69
+ }
58
70
 
59
- const isSelected = this._isActive(panel.itemKey);
60
-
61
- return /*#__PURE__*/React.createElement(TabItem, Object.assign({}, panel, {
62
- key: this._getItemKey(panel.itemKey),
63
- selected: isSelected,
64
- size: size,
65
- type: type,
66
- tabPosition: tabPosition,
67
- handleKeyDown: handleKeyDown,
68
- deleteTabItem: deleteTabItem,
69
- onClick: this.handleItemClick
70
- }));
71
+ const isSelected = this._isActive(key);
72
+
73
+ const className = cls(cssClasses.TABS_TAB, {
74
+ [cssClasses.TABS_TAB_ACTIVE]: isSelected,
75
+ [cssClasses.TABS_TAB_DISABLED]: panel.disabled,
76
+ ["".concat(cssClasses.TABS_TAB, "-small")]: size === 'small',
77
+ ["".concat(cssClasses.TABS_TAB, "-medium")]: size === 'medium'
78
+ });
79
+ return /*#__PURE__*/React.createElement("div", Object.assign({
80
+ role: "tab",
81
+ id: "semiTab".concat(key),
82
+ "data-tabkey": "semiTab".concat(key),
83
+ "aria-controls": "semiTabPanel".concat(key),
84
+ "aria-disabled": panel.disabled ? 'true' : 'false',
85
+ "aria-selected": isSelected ? 'true' : 'false',
86
+ tabIndex: isSelected ? 0 : -1,
87
+ onKeyDown: e => this.handleKeyDown(e, key, panel.closable)
88
+ }, events, {
89
+ className: className,
90
+ key: this._getItemKey(key)
91
+ }), panelIcon, panel.tab, closableIcon);
71
92
  };
72
93
 
73
94
  this.renderTabComponents = list => list.map(panel => this.renderTabItem(panel));
@@ -82,7 +103,7 @@ class TabBar extends React.Component {
82
103
  const key = this._getItemKey(lastItem.itemKey); // eslint-disable-next-line max-len
83
104
 
84
105
 
85
- const tabItem = document.querySelector("[data-uuid=\"".concat(this.uuid, "\"] .").concat(cssClasses.TABS_TAB, "[data-scrollkey=\"").concat(key, "\"]"));
106
+ const tabItem = document.querySelector("[data-uuid=\"".concat(this.state.uuid, "\"] .").concat(cssClasses.TABS_TAB, "[data-scrollkey=\"").concat(key, "\"]"));
86
107
  tabItem.scrollIntoView({
87
108
  behavior: 'smooth',
88
109
  block: 'nearest',
@@ -184,9 +205,15 @@ class TabBar extends React.Component {
184
205
  this.state = {
185
206
  endInd: props.list.length,
186
207
  rePosKey: 0,
187
- startInd: 0
208
+ startInd: 0,
209
+ uuid: ''
188
210
  };
189
- this.uuid = getUuidv4();
211
+ }
212
+
213
+ componentDidMount() {
214
+ this.setState({
215
+ uuid: getUuidv4()
216
+ });
190
217
  }
191
218
 
192
219
  renderIcon(icon) {
@@ -248,7 +275,7 @@ class TabBar extends React.Component {
248
275
  className: classNames,
249
276
  style: style
250
277
  }, getDataAttr(restProps), {
251
- "data-uuid": this.uuid
278
+ "data-uuid": this.state.uuid
252
279
  }), contents, extra);
253
280
  }
254
281
 
@@ -1,4 +1,4 @@
1
- import React, { MouseEvent, ReactElement, ReactNode, RefCallback, RefObject } from 'react';
1
+ import { MouseEvent, ReactElement, ReactNode, RefCallback, RefObject } from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  import TabsFoundation, { TabsAdapter } from '@douyinfe/semi-foundation/lib/es/tabs/foundation';
4
4
  import BaseComponent from '../_base/baseComponent';
@@ -14,7 +14,6 @@ export interface TabsState {
14
14
  }
15
15
  declare class Tabs extends BaseComponent<TabsProps, TabsState> {
16
16
  static TabPane: typeof TabPane;
17
- static TabItem: React.ForwardRefExoticComponent<import("./TabItem").TabItemProps & React.RefAttributes<HTMLDivElement>>;
18
17
  static propTypes: {
19
18
  activeKey: PropTypes.Requireable<string>;
20
19
  className: PropTypes.Requireable<string>;
@@ -23,7 +23,6 @@ import BaseComponent from '../_base/baseComponent';
23
23
  import '@douyinfe/semi-foundation/lib/es/tabs/tabs.css';
24
24
  import TabBar from './TabBar';
25
25
  import TabPane from './TabPane';
26
- import TabItem from './TabItem';
27
26
  import TabsContext from './tabs-context';
28
27
  const panePickKeys = ['className', 'style', 'disabled', 'itemKey', 'tab', 'icon'];
29
28
  export * from './interface';
@@ -336,7 +335,6 @@ class Tabs extends BaseComponent {
336
335
  }
337
336
 
338
337
  Tabs.TabPane = TabPane;
339
- Tabs.TabItem = TabItem;
340
338
  Tabs.propTypes = {
341
339
  activeKey: PropTypes.string,
342
340
  className: PropTypes.string,
@@ -64,7 +64,7 @@ export default class Base extends Component<BaseTypographyProps, BaseTypographyS
64
64
  spacing: PropTypes.Requireable<"normal" | "extended">;
65
65
  strong: PropTypes.Requireable<boolean>;
66
66
  size: PropTypes.Requireable<"small" | "normal">;
67
- type: PropTypes.Requireable<"warning" | "success" | "primary" | "secondary" | "tertiary" | "danger" | "quaternary">;
67
+ type: PropTypes.Requireable<"warning" | "success" | "primary" | "tertiary" | "secondary" | "danger" | "quaternary">;
68
68
  style: PropTypes.Requireable<object>;
69
69
  className: PropTypes.Requireable<string>;
70
70
  icon: PropTypes.Requireable<NonNullable<PropTypes.ReactNodeLike>>;
@@ -38,7 +38,7 @@ export default class Numeral extends PureComponent<NumeralProps> {
38
38
  underline: PropTypes.Requireable<boolean>;
39
39
  link: PropTypes.Requireable<NonNullable<boolean | object>>;
40
40
  strong: PropTypes.Requireable<boolean>;
41
- type: PropTypes.Requireable<"warning" | "success" | "primary" | "secondary" | "tertiary" | "danger" | "quaternary">;
41
+ type: PropTypes.Requireable<"warning" | "success" | "primary" | "tertiary" | "secondary" | "danger" | "quaternary">;
42
42
  size: PropTypes.Requireable<"small" | "normal">;
43
43
  style: PropTypes.Requireable<object>;
44
44
  className: PropTypes.Requireable<string>;
@@ -29,7 +29,7 @@ export default class Paragraph extends PureComponent<ParagraphProps> {
29
29
  link: PropTypes.Requireable<NonNullable<boolean | object>>;
30
30
  underline: PropTypes.Requireable<boolean>;
31
31
  strong: PropTypes.Requireable<boolean>;
32
- type: PropTypes.Requireable<"warning" | "success" | "primary" | "secondary" | "tertiary" | "danger" | "quaternary">;
32
+ type: PropTypes.Requireable<"warning" | "success" | "primary" | "tertiary" | "secondary" | "danger" | "quaternary">;
33
33
  size: PropTypes.Requireable<"small" | "normal">;
34
34
  spacing: PropTypes.Requireable<"normal" | "extended">;
35
35
  style: PropTypes.Requireable<object>;
@@ -32,7 +32,7 @@ export default class Text extends PureComponent<TextProps> {
32
32
  underline: PropTypes.Requireable<boolean>;
33
33
  link: PropTypes.Requireable<NonNullable<boolean | object>>;
34
34
  strong: PropTypes.Requireable<boolean>;
35
- type: PropTypes.Requireable<"warning" | "success" | "primary" | "secondary" | "tertiary" | "danger" | "quaternary">;
35
+ type: PropTypes.Requireable<"warning" | "success" | "primary" | "tertiary" | "secondary" | "danger" | "quaternary">;
36
36
  size: PropTypes.Requireable<"small" | "normal">;
37
37
  style: PropTypes.Requireable<object>;
38
38
  className: PropTypes.Requireable<string>;
@@ -36,7 +36,7 @@ export default class Title extends PureComponent<TitleProps> {
36
36
  link: PropTypes.Requireable<NonNullable<boolean | object>>;
37
37
  underline: PropTypes.Requireable<boolean>;
38
38
  strong: PropTypes.Requireable<boolean>;
39
- type: PropTypes.Requireable<"warning" | "success" | "primary" | "secondary" | "tertiary" | "danger" | "quaternary">;
39
+ type: PropTypes.Requireable<"warning" | "success" | "primary" | "tertiary" | "secondary" | "danger" | "quaternary">;
40
40
  heading: PropTypes.Requireable<1 | 2 | 3 | 4 | 6 | 5>;
41
41
  style: PropTypes.Requireable<object>;
42
42
  className: PropTypes.Requireable<string>;