@douyinfe/semi-ui 2.26.0 → 2.27.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/dist/css/semi.css +207 -0
  2. package/dist/css/semi.min.css +1 -1
  3. package/dist/umd/semi-ui.js +292 -232
  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/anchor/index.d.ts +1 -1
  8. package/lib/cjs/autoComplete/index.d.ts +1 -1
  9. package/lib/cjs/button/Button.d.ts +1 -1
  10. package/lib/cjs/button/buttonGroup.d.ts +1 -1
  11. package/lib/cjs/button/index.d.ts +1 -1
  12. package/lib/cjs/datePicker/datePicker.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/input/index.d.ts +1 -1
  16. package/lib/cjs/input/inputGroup.d.ts +1 -1
  17. package/lib/cjs/rating/index.d.ts +1 -1
  18. package/lib/cjs/rating/item.d.ts +1 -1
  19. package/lib/cjs/switch/index.d.ts +1 -1
  20. package/lib/cjs/table/Table.d.ts +2 -2
  21. package/lib/cjs/table/index.d.ts +1 -1
  22. package/lib/cjs/tabs/TabBar.js +17 -37
  23. package/lib/cjs/tabs/TabItem.d.ts +18 -0
  24. package/lib/cjs/tabs/TabItem.js +95 -0
  25. package/lib/cjs/tabs/index.d.ts +2 -1
  26. package/lib/cjs/tabs/index.js +3 -0
  27. package/lib/cjs/tagInput/index.d.ts +1 -1
  28. package/lib/cjs/timePicker/TimePicker.d.ts +1 -1
  29. package/lib/cjs/timePicker/index.d.ts +1 -1
  30. package/lib/es/anchor/index.d.ts +1 -1
  31. package/lib/es/autoComplete/index.d.ts +1 -1
  32. package/lib/es/button/Button.d.ts +1 -1
  33. package/lib/es/button/buttonGroup.d.ts +1 -1
  34. package/lib/es/button/index.d.ts +1 -1
  35. package/lib/es/datePicker/datePicker.d.ts +1 -1
  36. package/lib/es/form/baseForm.d.ts +1 -1
  37. package/lib/es/form/field.d.ts +1 -1
  38. package/lib/es/input/index.d.ts +1 -1
  39. package/lib/es/input/inputGroup.d.ts +1 -1
  40. package/lib/es/rating/index.d.ts +1 -1
  41. package/lib/es/rating/item.d.ts +1 -1
  42. package/lib/es/switch/index.d.ts +1 -1
  43. package/lib/es/table/Table.d.ts +2 -2
  44. package/lib/es/table/index.d.ts +1 -1
  45. package/lib/es/tabs/TabBar.js +17 -38
  46. package/lib/es/tabs/TabItem.d.ts +18 -0
  47. package/lib/es/tabs/TabItem.js +78 -0
  48. package/lib/es/tabs/index.d.ts +2 -1
  49. package/lib/es/tabs/index.js +2 -0
  50. package/lib/es/tagInput/index.d.ts +1 -1
  51. package/lib/es/timePicker/TimePicker.d.ts +1 -1
  52. package/lib/es/timePicker/index.d.ts +1 -1
  53. package/package.json +8 -8
@@ -39,7 +39,7 @@ declare class Anchor extends BaseComponent<AnchorProps, AnchorState> {
39
39
  static contextType: React.Context<ContextValue>;
40
40
  static Link: typeof Link;
41
41
  static PropTypes: {
42
- size: PropTypes.Requireable<"default" | "small">;
42
+ size: PropTypes.Requireable<"small" | "default">;
43
43
  railTheme: PropTypes.Requireable<"primary" | "tertiary" | "muted">;
44
44
  className: PropTypes.Requireable<string>;
45
45
  style: PropTypes.Requireable<object>;
@@ -125,7 +125,7 @@ declare class AutoComplete<T extends AutoCompleteItems> extends BaseComponent<Au
125
125
  renderSelectedItem: PropTypes.Requireable<(...args: any[]) => any>;
126
126
  suffix: PropTypes.Requireable<PropTypes.ReactNodeLike>;
127
127
  showClear: PropTypes.Requireable<boolean>;
128
- size: PropTypes.Requireable<"default" | "small" | "large">;
128
+ size: PropTypes.Requireable<"small" | "default" | "large">;
129
129
  style: PropTypes.Requireable<object>;
130
130
  stopPropagation: PropTypes.Requireable<NonNullable<string | boolean>>;
131
131
  maxHeight: PropTypes.Requireable<NonNullable<string | number>>;
@@ -47,7 +47,7 @@ export default class Button extends PureComponent<ButtonProps> {
47
47
  disabled: PropTypes.Requireable<boolean>;
48
48
  prefixCls: PropTypes.Requireable<string>;
49
49
  style: PropTypes.Requireable<object>;
50
- size: PropTypes.Requireable<"default" | "small" | "large">;
50
+ size: PropTypes.Requireable<"small" | "default" | "large">;
51
51
  type: PropTypes.Requireable<"warning" | "primary" | "tertiary" | "secondary" | "danger">;
52
52
  block: PropTypes.Requireable<boolean>;
53
53
  onClick: PropTypes.Requireable<(...args: any[]) => any>;
@@ -18,7 +18,7 @@ export default class ButtonGroup extends BaseComponent<ButtonGroupProps> {
18
18
  children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
19
19
  disabled: PropTypes.Requireable<boolean>;
20
20
  type: PropTypes.Requireable<string>;
21
- size: PropTypes.Requireable<"default" | "small" | "large">;
21
+ size: PropTypes.Requireable<"small" | "default" | "large">;
22
22
  theme: PropTypes.Requireable<"solid" | "light" | "borderless">;
23
23
  'aria-label': PropTypes.Requireable<string>;
24
24
  };
@@ -22,7 +22,7 @@ declare class Button extends React.PureComponent<ButtonProps> {
22
22
  onMouseEnter: import("prop-types").Requireable<(...args: any[]) => any>;
23
23
  onMouseLeave: import("prop-types").Requireable<(...args: any[]) => any>;
24
24
  disabled: import("prop-types").Requireable<boolean>;
25
- size: import("prop-types").Requireable<"default" | "small" | "large">;
25
+ size: import("prop-types").Requireable<"small" | "default" | "large">;
26
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>;
@@ -47,7 +47,7 @@ export default class DatePicker extends BaseComponent<DatePickerProps, DatePicke
47
47
  'aria-labelledby': PropTypes.Requireable<string>;
48
48
  'aria-required': PropTypes.Requireable<boolean>;
49
49
  type: PropTypes.Requireable<"dateTime" | "date" | "month" | "dateRange" | "year" | "dateTimeRange">;
50
- size: PropTypes.Requireable<"default" | "small" | "large">;
50
+ size: PropTypes.Requireable<"small" | "default" | "large">;
51
51
  clearIcon: PropTypes.Requireable<PropTypes.ReactNodeLike>;
52
52
  density: PropTypes.Requireable<"default" | "compact">;
53
53
  defaultValue: PropTypes.Requireable<NonNullable<string | number | object>>;
@@ -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" | "motion" | "getPopupContainer" | "spacing" | "mouseEnterDelay" | "autoAdjustOverflow" | "mouseLeaveDelay"> & React.RefAttributes<any> & import("./interface").CommonFieldProps, import("./interface").CommonexcludeType>> & import("./interface").SelectStatic;
138
+ } & Pick<import("../tooltip").TooltipProps, "motion" | "stopPropagation" | "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" | "motion" | "getPopupContainer" | "spacing" | "mouseEnterDelay" | "autoAdjustOverflow" | "mouseLeaveDelay"> & import("react").RefAttributes<any> & import("./interface").CommonFieldProps, import("./interface").CommonexcludeType>> & import("./interface").SelectStatic;
86
+ } & Pick<import("../tooltip").TooltipProps, "motion" | "stopPropagation" | "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>>;
@@ -83,7 +83,7 @@ declare class Input extends BaseComponent<InputProps, InputState> {
83
83
  showClear: PropTypes.Requireable<boolean>;
84
84
  hideSuffix: PropTypes.Requireable<boolean>;
85
85
  placeholder: PropTypes.Requireable<any>;
86
- size: PropTypes.Requireable<"default" | "small" | "large">;
86
+ size: PropTypes.Requireable<"small" | "default" | "large">;
87
87
  className: PropTypes.Requireable<string>;
88
88
  style: PropTypes.Requireable<object>;
89
89
  validateStatus: PropTypes.Requireable<"default" | "error" | "warning" | "success">;
@@ -21,7 +21,7 @@ export default class inputGroup extends BaseComponent<InputGroupProps, InputGrou
21
21
  static propTypes: {
22
22
  className: PropTypes.Requireable<string>;
23
23
  children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
24
- size: PropTypes.Requireable<"default" | "small" | "large">;
24
+ size: PropTypes.Requireable<"small" | "default" | "large">;
25
25
  style: PropTypes.Requireable<object>;
26
26
  onBlur: PropTypes.Requireable<(...args: any[]) => any>;
27
27
  onFocus: PropTypes.Requireable<(...args: any[]) => any>;
@@ -69,7 +69,7 @@ export default class Rating extends BaseComponent<RatingProps, RatingState> {
69
69
  onBlur: PropTypes.Requireable<(...args: any[]) => any>;
70
70
  onKeyDown: PropTypes.Requireable<(...args: any[]) => any>;
71
71
  autoFocus: PropTypes.Requireable<boolean>;
72
- size: PropTypes.Requireable<NonNullable<number | "default" | "small">>;
72
+ size: PropTypes.Requireable<NonNullable<number | "small" | "default">>;
73
73
  tooltips: PropTypes.Requireable<string[]>;
74
74
  id: PropTypes.Requireable<string>;
75
75
  preventScroll: PropTypes.Requireable<boolean>;
@@ -40,7 +40,7 @@ export default class Item extends BaseComponent<RatingItemProps, RatingItemState
40
40
  disabled: PropTypes.Requireable<boolean>;
41
41
  count: PropTypes.Requireable<number>;
42
42
  ariaLabelPrefix: PropTypes.Requireable<string>;
43
- size: PropTypes.Requireable<NonNullable<number | "default" | "small">>;
43
+ size: PropTypes.Requireable<NonNullable<number | "small" | "default">>;
44
44
  'aria-describedby': PropTypes.Requireable<string>;
45
45
  onFocus: PropTypes.Requireable<(...args: any[]) => any>;
46
46
  onBlur: PropTypes.Requireable<(...args: any[]) => any>;
@@ -45,7 +45,7 @@ declare class Switch extends BaseComponent<SwitchProps, SwitchState> {
45
45
  onMouseEnter: PropTypes.Requireable<(...args: any[]) => any>;
46
46
  onMouseLeave: PropTypes.Requireable<(...args: any[]) => any>;
47
47
  style: PropTypes.Requireable<object>;
48
- size: PropTypes.Requireable<"default" | "small" | "large">;
48
+ size: PropTypes.Requireable<"small" | "default" | "large">;
49
49
  uncheckedText: PropTypes.Requireable<PropTypes.ReactNodeLike>;
50
50
  id: PropTypes.Requireable<string>;
51
51
  };
@@ -52,7 +52,7 @@ declare class Table<RecordType extends Record<string, any>> extends BaseComponen
52
52
  components: PropTypes.Requireable<any>;
53
53
  bordered: PropTypes.Requireable<boolean>;
54
54
  loading: PropTypes.Requireable<boolean>;
55
- size: PropTypes.Requireable<"default" | "small" | "middle">;
55
+ size: PropTypes.Requireable<"small" | "default" | "middle">;
56
56
  tableLayout: PropTypes.Requireable<"" | "fixed" | "auto">;
57
57
  columns: PropTypes.Requireable<PropTypes.InferProps<{
58
58
  align: PropTypes.Requireable<"left" | "right" | "center">;
@@ -289,7 +289,7 @@ declare class Table<RecordType extends Record<string, any>> extends BaseComponen
289
289
  showTotal?: boolean;
290
290
  pageSize?: number;
291
291
  pageSizeOpts?: number[];
292
- size?: "default" | "small";
292
+ size?: "small" | "default";
293
293
  currentPage?: number;
294
294
  defaultCurrentPage?: number;
295
295
  onPageChange?: (currentPage: number) => void;
@@ -15,7 +15,7 @@ declare class Table<RecordType extends Record<string, any> = Data> extends React
15
15
  components: PropTypes.Requireable<any>;
16
16
  bordered: PropTypes.Requireable<boolean>;
17
17
  loading: PropTypes.Requireable<boolean>;
18
- size: PropTypes.Requireable<"default" | "small" | "middle">;
18
+ size: PropTypes.Requireable<"small" | "default" | "middle">;
19
19
  tableLayout: PropTypes.Requireable<"" | "fixed" | "auto">;
20
20
  columns: PropTypes.Requireable<PropTypes.InferProps<{
21
21
  align: PropTypes.Requireable<"left" | "right" | "center">;
@@ -27,6 +27,8 @@ 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
+
30
32
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
31
33
 
32
34
  var __rest = void 0 && (void 0).__rest || function (s, e) {
@@ -68,45 +70,23 @@ class TabBar extends _react.default.Component {
68
70
  const {
69
71
  size,
70
72
  type,
71
- deleteTabItem
73
+ deleteTabItem,
74
+ handleKeyDown,
75
+ tabPosition
72
76
  } = 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
- }
88
-
89
- const isSelected = this._isActive(key);
90
77
 
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);
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
+ }));
110
90
  };
111
91
 
112
92
  this.renderTabComponents = list => list.map(panel => this.renderTabItem(panel));
@@ -0,0 +1,18 @@
1
+ import React, { ReactNode, MouseEvent } from 'react';
2
+ import { TabType, TabSize, TabPosition } from './interface';
3
+ export interface TabItemProps {
4
+ tab?: ReactNode;
5
+ icon?: ReactNode;
6
+ size?: TabSize;
7
+ type?: TabType;
8
+ tabPosition?: TabPosition;
9
+ selected?: boolean;
10
+ closable?: boolean;
11
+ disabled?: boolean;
12
+ itemKey?: string;
13
+ handleKeyDown?: (event: React.KeyboardEvent, itemKey: string, closable: boolean) => void;
14
+ deleteTabItem?: (tabKey: string, event: MouseEvent<Element>) => void;
15
+ onClick?: (itemKey: string, e: MouseEvent<Element>) => void;
16
+ }
17
+ declare const ForwardTabItem: React.ForwardRefExoticComponent<TabItemProps & React.RefAttributes<HTMLDivElement>>;
18
+ export default ForwardTabItem;
@@ -0,0 +1,95 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = _interopRequireWildcard(require("react"));
9
+
10
+ var _classnames = _interopRequireDefault(require("classnames"));
11
+
12
+ var _constants = require("@douyinfe/semi-foundation/lib/cjs/tabs/constants");
13
+
14
+ var _semiIcons = require("@douyinfe/semi-icons");
15
+
16
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
+
18
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
19
+
20
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
21
+
22
+ var __rest = void 0 && (void 0).__rest || function (s, e) {
23
+ var t = {};
24
+
25
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
26
+
27
+ if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
28
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
29
+ }
30
+ return t;
31
+ };
32
+
33
+ const TabItem = (props, ref) => {
34
+ const {
35
+ tab,
36
+ size,
37
+ type,
38
+ icon,
39
+ selected,
40
+ closable,
41
+ disabled,
42
+ itemKey,
43
+ deleteTabItem,
44
+ tabPosition,
45
+ handleKeyDown,
46
+ onClick
47
+ } = props,
48
+ resetProps = __rest(props, ["tab", "size", "type", "icon", "selected", "closable", "disabled", "itemKey", "deleteTabItem", "tabPosition", "handleKeyDown", "onClick"]);
49
+
50
+ const closableIcon = (0, _react.useMemo)(() => {
51
+ return type === 'card' && closable ? /*#__PURE__*/_react.default.createElement(_semiIcons.IconClose, {
52
+ "aria-label": "Close",
53
+ role: "button",
54
+ className: "".concat(_constants.cssClasses.TABS_TAB, "-icon-close"),
55
+ onClick: e => deleteTabItem(itemKey, e)
56
+ }) : null;
57
+ }, [type, closable, deleteTabItem, itemKey]);
58
+ const renderIcon = (0, _react.useCallback)(icon => /*#__PURE__*/_react.default.createElement("span", null, icon), []);
59
+ const handleKeyDownInItem = (0, _react.useCallback)(event => {
60
+ handleKeyDown && handleKeyDown(event, itemKey, closable);
61
+ }, [handleKeyDown, itemKey, closable]);
62
+ const handleItemClick = (0, _react.useCallback)(e => {
63
+ !disabled && onClick && onClick(itemKey, e);
64
+ }, [itemKey, disabled, onClick]);
65
+ const panelIcon = icon ? renderIcon(icon) : null;
66
+ const className = (0, _classnames.default)(_constants.cssClasses.TABS_TAB, "".concat(_constants.cssClasses.TABS_TAB, "-").concat(type), "".concat(_constants.cssClasses.TABS_TAB, "-").concat(tabPosition), "".concat(_constants.cssClasses.TABS_TAB, "-single"), {
67
+ [_constants.cssClasses.TABS_TAB_ACTIVE]: selected,
68
+ [_constants.cssClasses.TABS_TAB_DISABLED]: disabled,
69
+ ["".concat(_constants.cssClasses.TABS_TAB, "-small")]: size === 'small',
70
+ ["".concat(_constants.cssClasses.TABS_TAB, "-medium")]: size === 'medium'
71
+ });
72
+ return /*#__PURE__*/_react.default.createElement("div", Object.assign({
73
+ role: "tab",
74
+ id: "semiTab".concat(itemKey),
75
+ "data-tabkey": "semiTab".concat(itemKey),
76
+ "aria-controls": "semiTabPanel".concat(itemKey),
77
+ "aria-disabled": disabled ? 'true' : 'false',
78
+ "aria-selected": selected ? 'true' : 'false',
79
+ tabIndex: selected ? 0 : -1,
80
+ onKeyDown: handleKeyDownInItem,
81
+ onClick: handleItemClick,
82
+ className: className
83
+ }, resetProps, {
84
+ ref: ref
85
+ }), panelIcon, tab, closableIcon);
86
+ }; // Why is forwardRef needed here?
87
+ // Because TabItem needs to be used in OverflowList (when tabs' type is collapsible),
88
+ // OverflowList will pass ref to the outermost div DOM node of TabItem
89
+
90
+
91
+ const ForwardTabItem = /*#__PURE__*/(0, _react.forwardRef)(TabItem); // @ts-ignore
92
+
93
+ ForwardTabItem.elementType = 'TabItem';
94
+ var _default = ForwardTabItem;
95
+ exports.default = _default;
@@ -1,4 +1,4 @@
1
- import { MouseEvent, ReactElement, ReactNode, RefCallback, RefObject } from 'react';
1
+ import React, { 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,6 +14,7 @@ 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>>;
17
18
  static propTypes: {
18
19
  activeKey: PropTypes.Requireable<string>;
19
20
  className: PropTypes.Requireable<string>;
@@ -32,6 +32,8 @@ var _TabBar = _interopRequireDefault(require("./TabBar"));
32
32
 
33
33
  var _TabPane = _interopRequireDefault(require("./TabPane"));
34
34
 
35
+ var _TabItem = _interopRequireDefault(require("./TabItem"));
36
+
35
37
  var _tabsContext = _interopRequireDefault(require("./tabs-context"));
36
38
 
37
39
  var _interface = require("./interface");
@@ -379,6 +381,7 @@ class Tabs extends _baseComponent.default {
379
381
  }
380
382
 
381
383
  Tabs.TabPane = _TabPane.default;
384
+ Tabs.TabItem = _TabItem.default;
382
385
  Tabs.propTypes = {
383
386
  activeKey: _propTypes.default.string,
384
387
  className: _propTypes.default.string,
@@ -92,7 +92,7 @@ declare class TagInput extends BaseComponent<TagInputProps, TagInputState> {
92
92
  onAdd: PropTypes.Requireable<(...args: any[]) => any>;
93
93
  onRemove: PropTypes.Requireable<(...args: any[]) => any>;
94
94
  onKeyDown: PropTypes.Requireable<(...args: any[]) => any>;
95
- size: PropTypes.Requireable<"default" | "small" | "large">;
95
+ size: PropTypes.Requireable<"small" | "default" | "large">;
96
96
  validateStatus: PropTypes.Requireable<"default" | "error" | "warning" | "success">;
97
97
  prefix: PropTypes.Requireable<NonNullable<PropTypes.ReactNodeLike>>;
98
98
  suffix: PropTypes.Requireable<NonNullable<PropTypes.ReactNodeLike>>;
@@ -130,7 +130,7 @@ export default class TimePicker extends BaseComponent<TimePickerProps, TimePicke
130
130
  secondStep: PropTypes.Requireable<number>;
131
131
  focusOnOpen: PropTypes.Requireable<boolean>;
132
132
  autoFocus: PropTypes.Requireable<boolean>;
133
- size: PropTypes.Requireable<"default" | "small" | "large">;
133
+ size: PropTypes.Requireable<"small" | "default" | "large">;
134
134
  panels: PropTypes.Requireable<PropTypes.InferProps<{
135
135
  panelHeader: PropTypes.Requireable<NonNullable<PropTypes.ReactNodeLike>>;
136
136
  panelFooter: PropTypes.Requireable<NonNullable<PropTypes.ReactNodeLike>>;
@@ -48,7 +48,7 @@ export default class LocaleTimePicker extends React.PureComponent<LocalePickerPr
48
48
  secondStep: import("prop-types").Requireable<number>;
49
49
  focusOnOpen: import("prop-types").Requireable<boolean>;
50
50
  autoFocus: import("prop-types").Requireable<boolean>;
51
- size: import("prop-types").Requireable<"default" | "small" | "large">;
51
+ size: import("prop-types").Requireable<"small" | "default" | "large">;
52
52
  panels: import("prop-types").Requireable<import("prop-types").InferProps<{
53
53
  panelHeader: import("prop-types").Requireable<NonNullable<import("prop-types").ReactNodeLike>>;
54
54
  panelFooter: import("prop-types").Requireable<NonNullable<import("prop-types").ReactNodeLike>>;
@@ -39,7 +39,7 @@ declare class Anchor extends BaseComponent<AnchorProps, AnchorState> {
39
39
  static contextType: React.Context<ContextValue>;
40
40
  static Link: typeof Link;
41
41
  static PropTypes: {
42
- size: PropTypes.Requireable<"default" | "small">;
42
+ size: PropTypes.Requireable<"small" | "default">;
43
43
  railTheme: PropTypes.Requireable<"primary" | "tertiary" | "muted">;
44
44
  className: PropTypes.Requireable<string>;
45
45
  style: PropTypes.Requireable<object>;
@@ -125,7 +125,7 @@ declare class AutoComplete<T extends AutoCompleteItems> extends BaseComponent<Au
125
125
  renderSelectedItem: PropTypes.Requireable<(...args: any[]) => any>;
126
126
  suffix: PropTypes.Requireable<PropTypes.ReactNodeLike>;
127
127
  showClear: PropTypes.Requireable<boolean>;
128
- size: PropTypes.Requireable<"default" | "small" | "large">;
128
+ size: PropTypes.Requireable<"small" | "default" | "large">;
129
129
  style: PropTypes.Requireable<object>;
130
130
  stopPropagation: PropTypes.Requireable<NonNullable<string | boolean>>;
131
131
  maxHeight: PropTypes.Requireable<NonNullable<string | number>>;
@@ -47,7 +47,7 @@ export default class Button extends PureComponent<ButtonProps> {
47
47
  disabled: PropTypes.Requireable<boolean>;
48
48
  prefixCls: PropTypes.Requireable<string>;
49
49
  style: PropTypes.Requireable<object>;
50
- size: PropTypes.Requireable<"default" | "small" | "large">;
50
+ size: PropTypes.Requireable<"small" | "default" | "large">;
51
51
  type: PropTypes.Requireable<"warning" | "primary" | "tertiary" | "secondary" | "danger">;
52
52
  block: PropTypes.Requireable<boolean>;
53
53
  onClick: PropTypes.Requireable<(...args: any[]) => any>;
@@ -18,7 +18,7 @@ export default class ButtonGroup extends BaseComponent<ButtonGroupProps> {
18
18
  children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
19
19
  disabled: PropTypes.Requireable<boolean>;
20
20
  type: PropTypes.Requireable<string>;
21
- size: PropTypes.Requireable<"default" | "small" | "large">;
21
+ size: PropTypes.Requireable<"small" | "default" | "large">;
22
22
  theme: PropTypes.Requireable<"solid" | "light" | "borderless">;
23
23
  'aria-label': PropTypes.Requireable<string>;
24
24
  };
@@ -22,7 +22,7 @@ declare class Button extends React.PureComponent<ButtonProps> {
22
22
  onMouseEnter: import("prop-types").Requireable<(...args: any[]) => any>;
23
23
  onMouseLeave: import("prop-types").Requireable<(...args: any[]) => any>;
24
24
  disabled: import("prop-types").Requireable<boolean>;
25
- size: import("prop-types").Requireable<"default" | "small" | "large">;
25
+ size: import("prop-types").Requireable<"small" | "default" | "large">;
26
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>;
@@ -47,7 +47,7 @@ export default class DatePicker extends BaseComponent<DatePickerProps, DatePicke
47
47
  'aria-labelledby': PropTypes.Requireable<string>;
48
48
  'aria-required': PropTypes.Requireable<boolean>;
49
49
  type: PropTypes.Requireable<"dateTime" | "date" | "month" | "dateRange" | "year" | "dateTimeRange">;
50
- size: PropTypes.Requireable<"default" | "small" | "large">;
50
+ size: PropTypes.Requireable<"small" | "default" | "large">;
51
51
  clearIcon: PropTypes.Requireable<PropTypes.ReactNodeLike>;
52
52
  density: PropTypes.Requireable<"default" | "compact">;
53
53
  defaultValue: PropTypes.Requireable<NonNullable<string | number | object>>;
@@ -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" | "motion" | "getPopupContainer" | "spacing" | "mouseEnterDelay" | "autoAdjustOverflow" | "mouseLeaveDelay"> & React.RefAttributes<any> & import("./interface").CommonFieldProps, import("./interface").CommonexcludeType>> & import("./interface").SelectStatic;
138
+ } & Pick<import("../tooltip").TooltipProps, "motion" | "stopPropagation" | "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" | "motion" | "getPopupContainer" | "spacing" | "mouseEnterDelay" | "autoAdjustOverflow" | "mouseLeaveDelay"> & import("react").RefAttributes<any> & import("./interface").CommonFieldProps, import("./interface").CommonexcludeType>> & import("./interface").SelectStatic;
86
+ } & Pick<import("../tooltip").TooltipProps, "motion" | "stopPropagation" | "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>>;
@@ -83,7 +83,7 @@ declare class Input extends BaseComponent<InputProps, InputState> {
83
83
  showClear: PropTypes.Requireable<boolean>;
84
84
  hideSuffix: PropTypes.Requireable<boolean>;
85
85
  placeholder: PropTypes.Requireable<any>;
86
- size: PropTypes.Requireable<"default" | "small" | "large">;
86
+ size: PropTypes.Requireable<"small" | "default" | "large">;
87
87
  className: PropTypes.Requireable<string>;
88
88
  style: PropTypes.Requireable<object>;
89
89
  validateStatus: PropTypes.Requireable<"default" | "error" | "warning" | "success">;
@@ -21,7 +21,7 @@ export default class inputGroup extends BaseComponent<InputGroupProps, InputGrou
21
21
  static propTypes: {
22
22
  className: PropTypes.Requireable<string>;
23
23
  children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
24
- size: PropTypes.Requireable<"default" | "small" | "large">;
24
+ size: PropTypes.Requireable<"small" | "default" | "large">;
25
25
  style: PropTypes.Requireable<object>;
26
26
  onBlur: PropTypes.Requireable<(...args: any[]) => any>;
27
27
  onFocus: PropTypes.Requireable<(...args: any[]) => any>;
@@ -69,7 +69,7 @@ export default class Rating extends BaseComponent<RatingProps, RatingState> {
69
69
  onBlur: PropTypes.Requireable<(...args: any[]) => any>;
70
70
  onKeyDown: PropTypes.Requireable<(...args: any[]) => any>;
71
71
  autoFocus: PropTypes.Requireable<boolean>;
72
- size: PropTypes.Requireable<NonNullable<number | "default" | "small">>;
72
+ size: PropTypes.Requireable<NonNullable<number | "small" | "default">>;
73
73
  tooltips: PropTypes.Requireable<string[]>;
74
74
  id: PropTypes.Requireable<string>;
75
75
  preventScroll: PropTypes.Requireable<boolean>;
@@ -40,7 +40,7 @@ export default class Item extends BaseComponent<RatingItemProps, RatingItemState
40
40
  disabled: PropTypes.Requireable<boolean>;
41
41
  count: PropTypes.Requireable<number>;
42
42
  ariaLabelPrefix: PropTypes.Requireable<string>;
43
- size: PropTypes.Requireable<NonNullable<number | "default" | "small">>;
43
+ size: PropTypes.Requireable<NonNullable<number | "small" | "default">>;
44
44
  'aria-describedby': PropTypes.Requireable<string>;
45
45
  onFocus: PropTypes.Requireable<(...args: any[]) => any>;
46
46
  onBlur: PropTypes.Requireable<(...args: any[]) => any>;
@@ -45,7 +45,7 @@ declare class Switch extends BaseComponent<SwitchProps, SwitchState> {
45
45
  onMouseEnter: PropTypes.Requireable<(...args: any[]) => any>;
46
46
  onMouseLeave: PropTypes.Requireable<(...args: any[]) => any>;
47
47
  style: PropTypes.Requireable<object>;
48
- size: PropTypes.Requireable<"default" | "small" | "large">;
48
+ size: PropTypes.Requireable<"small" | "default" | "large">;
49
49
  uncheckedText: PropTypes.Requireable<PropTypes.ReactNodeLike>;
50
50
  id: PropTypes.Requireable<string>;
51
51
  };
@@ -52,7 +52,7 @@ declare class Table<RecordType extends Record<string, any>> extends BaseComponen
52
52
  components: PropTypes.Requireable<any>;
53
53
  bordered: PropTypes.Requireable<boolean>;
54
54
  loading: PropTypes.Requireable<boolean>;
55
- size: PropTypes.Requireable<"default" | "small" | "middle">;
55
+ size: PropTypes.Requireable<"small" | "default" | "middle">;
56
56
  tableLayout: PropTypes.Requireable<"" | "fixed" | "auto">;
57
57
  columns: PropTypes.Requireable<PropTypes.InferProps<{
58
58
  align: PropTypes.Requireable<"left" | "right" | "center">;
@@ -289,7 +289,7 @@ declare class Table<RecordType extends Record<string, any>> extends BaseComponen
289
289
  showTotal?: boolean;
290
290
  pageSize?: number;
291
291
  pageSizeOpts?: number[];
292
- size?: "default" | "small";
292
+ size?: "small" | "default";
293
293
  currentPage?: number;
294
294
  defaultCurrentPage?: number;
295
295
  onPageChange?: (currentPage: number) => void;
@@ -15,7 +15,7 @@ declare class Table<RecordType extends Record<string, any> = Data> extends React
15
15
  components: PropTypes.Requireable<any>;
16
16
  bordered: PropTypes.Requireable<boolean>;
17
17
  loading: PropTypes.Requireable<boolean>;
18
- size: PropTypes.Requireable<"default" | "small" | "middle">;
18
+ size: PropTypes.Requireable<"small" | "default" | "middle">;
19
19
  tableLayout: PropTypes.Requireable<"" | "fixed" | "auto">;
20
20
  columns: PropTypes.Requireable<PropTypes.InferProps<{
21
21
  align: PropTypes.Requireable<"left" | "right" | "center">;