@douyinfe/semi-ui 2.10.0-alpha.0 → 2.10.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 (130) hide show
  1. package/badge/_story/badge.stories.js +34 -2
  2. package/banner/_story/banner.stories.js +62 -1
  3. package/banner/index.tsx +5 -5
  4. package/button/buttonGroup.tsx +2 -2
  5. package/carousel/CarouselArrow.tsx +62 -0
  6. package/carousel/CarouselIndicator.tsx +83 -0
  7. package/carousel/__test__/carousel.test.js +159 -0
  8. package/carousel/_story/carousel.stories.js +486 -0
  9. package/carousel/index.tsx +292 -0
  10. package/carousel/interface.ts +63 -0
  11. package/cascader/index.tsx +1 -2
  12. package/checkbox/checkbox.tsx +8 -18
  13. package/datePicker/monthsGrid.tsx +8 -8
  14. package/dist/css/semi.css +343 -0
  15. package/dist/css/semi.min.css +1 -1
  16. package/dist/umd/semi-ui.js +23525 -22602
  17. package/dist/umd/semi-ui.js.map +1 -1
  18. package/dist/umd/semi-ui.min.js +1 -1
  19. package/dist/umd/semi-ui.min.js.map +1 -1
  20. package/form/baseForm.tsx +10 -1
  21. package/form/hoc/withField.tsx +25 -10
  22. package/index.ts +2 -0
  23. package/inputNumber/__test__/inputNumber.test.js +40 -3
  24. package/inputNumber/_story/inputNumber.stories.js +56 -1
  25. package/inputNumber/index.tsx +22 -14
  26. package/lib/cjs/_portal/index.d.ts +1 -1
  27. package/lib/cjs/banner/index.js +11 -5
  28. package/lib/cjs/button/buttonGroup.d.ts +1 -1
  29. package/lib/cjs/carousel/CarouselArrow.d.ts +8 -0
  30. package/lib/cjs/carousel/CarouselArrow.js +88 -0
  31. package/lib/cjs/carousel/CarouselIndicator.d.ts +23 -0
  32. package/lib/cjs/carousel/CarouselIndicator.js +145 -0
  33. package/lib/cjs/carousel/index.d.ts +58 -0
  34. package/lib/cjs/carousel/index.js +343 -0
  35. package/lib/cjs/carousel/interface.d.ts +61 -0
  36. package/lib/cjs/carousel/interface.js +7 -0
  37. package/lib/cjs/cascader/index.js +1 -1
  38. package/lib/cjs/checkbox/checkbox.d.ts +0 -4
  39. package/lib/cjs/checkbox/checkbox.js +13 -25
  40. package/lib/cjs/datePicker/dateInput.d.ts +1 -1
  41. package/lib/cjs/datePicker/datePicker.d.ts +1 -1
  42. package/lib/cjs/datePicker/insetInput.d.ts +1 -0
  43. package/lib/cjs/datePicker/monthsGrid.d.ts +1 -1
  44. package/lib/cjs/datePicker/monthsGrid.js +6 -6
  45. package/lib/cjs/dropdown/dropdownMenu.d.ts +1 -0
  46. package/lib/cjs/form/baseForm.d.ts +2 -1
  47. package/lib/cjs/form/baseForm.js +10 -1
  48. package/lib/cjs/form/field.d.ts +1 -1
  49. package/lib/cjs/form/hoc/withField.js +14 -5
  50. package/lib/cjs/index.d.ts +1 -0
  51. package/lib/cjs/index.js +9 -0
  52. package/lib/cjs/inputNumber/index.d.ts +2 -6
  53. package/lib/cjs/inputNumber/index.js +27 -11
  54. package/lib/cjs/modal/useModal/index.d.ts +1 -0
  55. package/lib/cjs/notification/useNotification/index.d.ts +1 -0
  56. package/lib/cjs/radio/radio.d.ts +1 -5
  57. package/lib/cjs/radio/radio.js +12 -26
  58. package/lib/cjs/radio/radioGroup.d.ts +1 -1
  59. package/lib/cjs/scrollList/scrollItem.js +1 -1
  60. package/lib/cjs/switch/index.d.ts +3 -0
  61. package/lib/cjs/switch/index.js +26 -6
  62. package/lib/cjs/timePicker/Combobox.d.ts +1 -0
  63. package/lib/cjs/timePicker/TimePicker.d.ts +2 -2
  64. package/lib/cjs/timePicker/TimeShape.d.ts +1 -1
  65. package/lib/cjs/timePicker/index.d.ts +2 -2
  66. package/lib/cjs/toast/useToast/index.d.ts +1 -0
  67. package/lib/cjs/tooltip/index.d.ts +1 -1
  68. package/lib/cjs/tooltip/index.js +11 -13
  69. package/lib/cjs/transfer/index.js +5 -5
  70. package/lib/cjs/treeSelect/index.js +1 -1
  71. package/lib/cjs/typography/title.d.ts +1 -1
  72. package/lib/cjs/upload/index.d.ts +1 -1
  73. package/lib/es/_portal/index.d.ts +1 -1
  74. package/lib/es/banner/index.js +11 -5
  75. package/lib/es/button/buttonGroup.d.ts +1 -1
  76. package/lib/es/carousel/CarouselArrow.d.ts +8 -0
  77. package/lib/es/carousel/CarouselArrow.js +70 -0
  78. package/lib/es/carousel/CarouselIndicator.d.ts +23 -0
  79. package/lib/es/carousel/CarouselIndicator.js +125 -0
  80. package/lib/es/carousel/index.d.ts +58 -0
  81. package/lib/es/carousel/index.js +309 -0
  82. package/lib/es/carousel/interface.d.ts +61 -0
  83. package/lib/es/carousel/interface.js +1 -0
  84. package/lib/es/cascader/index.js +1 -1
  85. package/lib/es/checkbox/checkbox.d.ts +0 -4
  86. package/lib/es/checkbox/checkbox.js +13 -25
  87. package/lib/es/datePicker/dateInput.d.ts +1 -1
  88. package/lib/es/datePicker/datePicker.d.ts +1 -1
  89. package/lib/es/datePicker/insetInput.d.ts +1 -0
  90. package/lib/es/datePicker/monthsGrid.d.ts +1 -1
  91. package/lib/es/datePicker/monthsGrid.js +7 -7
  92. package/lib/es/dropdown/dropdownMenu.d.ts +1 -0
  93. package/lib/es/form/baseForm.d.ts +2 -1
  94. package/lib/es/form/baseForm.js +10 -1
  95. package/lib/es/form/field.d.ts +1 -1
  96. package/lib/es/form/hoc/withField.js +14 -5
  97. package/lib/es/index.d.ts +1 -0
  98. package/lib/es/index.js +1 -0
  99. package/lib/es/inputNumber/index.d.ts +2 -6
  100. package/lib/es/inputNumber/index.js +26 -11
  101. package/lib/es/modal/useModal/index.d.ts +1 -0
  102. package/lib/es/notification/useNotification/index.d.ts +1 -0
  103. package/lib/es/radio/radio.d.ts +1 -5
  104. package/lib/es/radio/radio.js +12 -26
  105. package/lib/es/radio/radioGroup.d.ts +1 -1
  106. package/lib/es/scrollList/scrollItem.js +1 -1
  107. package/lib/es/switch/index.d.ts +3 -0
  108. package/lib/es/switch/index.js +26 -6
  109. package/lib/es/timePicker/Combobox.d.ts +1 -0
  110. package/lib/es/timePicker/TimePicker.d.ts +2 -2
  111. package/lib/es/timePicker/TimeShape.d.ts +1 -1
  112. package/lib/es/timePicker/index.d.ts +2 -2
  113. package/lib/es/toast/useToast/index.d.ts +1 -0
  114. package/lib/es/tooltip/index.d.ts +1 -1
  115. package/lib/es/tooltip/index.js +11 -13
  116. package/lib/es/transfer/index.js +1 -1
  117. package/lib/es/treeSelect/index.js +1 -1
  118. package/lib/es/typography/title.d.ts +1 -1
  119. package/lib/es/upload/index.d.ts +1 -1
  120. package/package.json +9 -9
  121. package/popover/_story/popover.stories.js +38 -2
  122. package/radio/radio.tsx +7 -17
  123. package/scrollList/scrollItem.tsx +1 -1
  124. package/switch/index.tsx +20 -3
  125. package/tagInput/__test__/tagInput.test.js +11 -11
  126. package/timePicker/TimePicker.tsx +1 -1
  127. package/timePicker/_story/timepicker.stories.js +20 -1
  128. package/tooltip/index.tsx +11 -8
  129. package/transfer/index.tsx +1 -1
  130. package/treeSelect/index.tsx +1 -1
@@ -30,13 +30,23 @@ require("@douyinfe/semi-foundation/lib/cjs/switch/switch.css");
30
30
 
31
31
  var _spin = _interopRequireDefault(require("../spin"));
32
32
 
33
- /* eslint-disable max-len, jsx-a11y/role-supports-aria-props */
33
+ /* eslint-disable max-len */
34
34
  class Switch extends _baseComponent.default {
35
35
  constructor(props) {
36
36
  super(props);
37
+
38
+ this.handleFocusVisible = event => {
39
+ this.foundation.handleFocusVisible(event);
40
+ };
41
+
42
+ this.handleBlur = event => {
43
+ this.foundation.handleBlur();
44
+ };
45
+
37
46
  this.state = {
38
47
  nativeControlChecked: false,
39
- nativeControlDisabled: false
48
+ nativeControlDisabled: false,
49
+ focusVisible: false
40
50
  };
41
51
  this.switchRef = /*#__PURE__*/_react.default.createRef();
42
52
  this.foundation = new _foundation.default(this.adapter);
@@ -72,6 +82,11 @@ class Switch extends _baseComponent.default {
72
82
  nativeControlDisabled
73
83
  });
74
84
  },
85
+ setFocusVisible: focusVisible => {
86
+ this.setState({
87
+ focusVisible
88
+ });
89
+ },
75
90
  notifyChange: (checked, e) => {
76
91
  this.props.onChange(checked, e);
77
92
  }
@@ -81,7 +96,8 @@ class Switch extends _baseComponent.default {
81
96
  render() {
82
97
  const {
83
98
  nativeControlChecked,
84
- nativeControlDisabled
99
+ nativeControlDisabled,
100
+ focusVisible
85
101
  } = this.state;
86
102
  const {
87
103
  className,
@@ -100,11 +116,11 @@ class Switch extends _baseComponent.default {
100
116
  [_constants.cssClasses.DISABLED]: nativeControlDisabled,
101
117
  [_constants.cssClasses.LARGE]: size === 'large',
102
118
  [_constants.cssClasses.SMALL]: size === 'small',
103
- [_constants.cssClasses.LOADING]: loading
119
+ [_constants.cssClasses.LOADING]: loading,
120
+ [_constants.cssClasses.FOCUS]: focusVisible
104
121
  });
105
122
  const switchProps = {
106
123
  type: 'checkbox',
107
- role: 'switch',
108
124
  className: _constants.cssClasses.NATIVE_CONTROL,
109
125
  disabled: nativeControlDisabled || loading,
110
126
  checked: nativeControlChecked || false
@@ -129,13 +145,17 @@ class Switch extends _baseComponent.default {
129
145
  }, uncheckedText) : null, /*#__PURE__*/_react.default.createElement("input", (0, _assign.default)({}, switchProps, {
130
146
  ref: this.switchRef,
131
147
  id: id,
148
+ role: 'switch',
132
149
  "aria-checked": nativeControlChecked,
133
150
  "aria-invalid": this.props['aria-invalid'],
134
151
  "aria-errormessage": this.props['aria-errormessage'],
135
152
  "aria-label": this.props['aria-label'],
136
153
  "aria-labelledby": this.props['aria-labelledby'],
137
154
  "aria-describedby": this.props["aria-describedby"],
138
- onChange: e => this.foundation.handleChange(e.target.checked, e)
155
+ "aria-disabled": this.props['disabled'],
156
+ onChange: e => this.foundation.handleChange(e.target.checked, e),
157
+ onFocus: e => this.handleFocusVisible(e),
158
+ onBlur: e => this.handleBlur(e)
139
159
  })));
140
160
  }
141
161
 
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import PropTypes from 'prop-types';
2
3
  import BaseComponent, { BaseProps } from '../_base/baseComponent';
3
4
  import ScrollItem from '../scrollList/scrollItem';
@@ -97,11 +97,11 @@ export default class TimePicker extends BaseComponent<TimePickerProps, TimePicke
97
97
  'aria-required': PropTypes.Requireable<boolean>;
98
98
  prefixCls: PropTypes.Requireable<string>;
99
99
  clearText: PropTypes.Requireable<string>;
100
- value: PropTypes.Requireable<string | number | string[] | Date | number[] | Date[]>;
100
+ value: PropTypes.Requireable<string | number | string[] | number[] | Date | Date[]>;
101
101
  inputReadOnly: PropTypes.Requireable<boolean>;
102
102
  disabled: PropTypes.Requireable<boolean>;
103
103
  showClear: PropTypes.Requireable<boolean>;
104
- defaultValue: PropTypes.Requireable<string | number | string[] | Date | number[] | Date[]>;
104
+ defaultValue: PropTypes.Requireable<string | number | string[] | number[] | Date | Date[]>;
105
105
  open: PropTypes.Requireable<boolean>;
106
106
  defaultOpen: PropTypes.Requireable<boolean>;
107
107
  onOpenChange: PropTypes.Requireable<(...args: any[]) => any>;
@@ -6,5 +6,5 @@ import PropTypes from 'prop-types';
6
6
  * - \[12:00:12, 12:21:12]
7
7
  * - \[[12:00:12, 12:21:12], [12:11:12, 12:32:12]]
8
8
  */
9
- declare const TimeShape: PropTypes.Requireable<string | number | string[] | Date | number[] | Date[]>;
9
+ declare const TimeShape: PropTypes.Requireable<string | number | string[] | number[] | Date | Date[]>;
10
10
  export { TimeShape };
@@ -18,11 +18,11 @@ export default class LocaleTimePicker extends React.PureComponent<LocalePickerPr
18
18
  'aria-required': import("prop-types").Requireable<boolean>;
19
19
  prefixCls: import("prop-types").Requireable<string>;
20
20
  clearText: import("prop-types").Requireable<string>;
21
- value: import("prop-types").Requireable<string | number | string[] | Date | number[] | Date[]>;
21
+ value: import("prop-types").Requireable<string | number | string[] | number[] | Date | Date[]>;
22
22
  inputReadOnly: import("prop-types").Requireable<boolean>;
23
23
  disabled: import("prop-types").Requireable<boolean>;
24
24
  showClear: import("prop-types").Requireable<boolean>;
25
- defaultValue: import("prop-types").Requireable<string | number | string[] | Date | number[] | Date[]>;
25
+ defaultValue: import("prop-types").Requireable<string | number | string[] | number[] | Date | Date[]>;
26
26
  open: import("prop-types").Requireable<boolean>;
27
27
  defaultOpen: import("prop-types").Requireable<boolean>;
28
28
  onOpenChange: import("prop-types").Requireable<(...args: any[]) => any>;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { ToastProps } from '@douyinfe/semi-foundation/lib/cjs/toast/toastFoundation';
2
3
  export default function useToast(): (JSX.Element | {
3
4
  success: (config: ToastProps) => string;
@@ -53,7 +53,6 @@ export interface TooltipProps extends BaseProps {
53
53
  guardFocus?: boolean;
54
54
  returnFocusOnClose?: boolean;
55
55
  onEscKeyDown?: (e: React.KeyboardEvent) => void;
56
- wrapperId?: string;
57
56
  }
58
57
  interface TooltipState {
59
58
  visible: boolean;
@@ -165,6 +164,7 @@ export default class Tooltip extends BaseComponent<TooltipProps, TooltipState> {
165
164
  componentDidUpdate(prevProps: TooltipProps, prevState: TooltipState): void;
166
165
  renderIcon: () => any;
167
166
  handlePortalInnerClick: (e: React.MouseEvent) => void;
167
+ handlePortalMouseDown: (e: React.MouseEvent) => void;
168
168
  handlePortalInnerKeyDown: (e: React.KeyboardEvent) => void;
169
169
  renderContentNode: (content: TooltipProps['content']) => React.ReactNode;
170
170
  renderPortal: () => JSX.Element;
@@ -187,6 +187,12 @@ class Tooltip extends _baseComponent.default {
187
187
  }
188
188
  };
189
189
 
190
+ this.handlePortalMouseDown = e => {
191
+ if (this.props.stopPropagation) {
192
+ (0, _utils.stopPropagation)(e);
193
+ }
194
+ };
195
+
190
196
  this.handlePortalInnerKeyDown = e => {
191
197
  this.foundation.handleContainerKeydown(e);
192
198
  };
@@ -258,7 +264,7 @@ class Tooltip extends _baseComponent.default {
258
264
  }, portalEventSet, {
259
265
  "x-placement": placement,
260
266
  style: (0, _assign.default)({
261
- visibility: motion ? undefined : 'visible'
267
+ visibility: motion ? 'hidden' : 'visible'
262
268
  }, style)
263
269
  }), contentNode, icon);
264
270
  return /*#__PURE__*/_react.default.createElement(_index.default, {
@@ -271,6 +277,7 @@ class Tooltip extends _baseComponent.default {
271
277
  style: portalInnerStyle,
272
278
  ref: this.setContainerEl,
273
279
  onClick: this.handlePortalInnerClick,
280
+ onMouseDown: this.handlePortalMouseDown,
274
281
  onKeyDown: this.handlePortalInnerKeyDown
275
282
  }, inner));
276
283
  };
@@ -327,7 +334,7 @@ class Tooltip extends _baseComponent.default {
327
334
  placement: props.position || 'top',
328
335
  transitionStyle: {},
329
336
  isPositionUpdated: false,
330
- id: props.wrapperId // auto generate id, will be used by children.aria-describedby & content.id, improve a11y
337
+ id: (0, _uuid.getUuidShort)() // auto generate id, will be used by children.aria-describedby & content.id, improve a11y
331
338
 
332
339
  };
333
340
  this.foundation = new _foundation.default(this.adapter);
@@ -498,15 +505,11 @@ class Tooltip extends _baseComponent.default {
498
505
  }
499
506
  };
500
507
 
501
- document.addEventListener('mousedown', this.clickOutsideHandler, {
502
- capture: true
503
- });
508
+ window.addEventListener('mousedown', this.clickOutsideHandler);
504
509
  },
505
510
  unregisterClickOutsideHandler: () => {
506
511
  if (this.clickOutsideHandler) {
507
- document.removeEventListener('mousedown', this.clickOutsideHandler, {
508
- capture: true
509
- });
512
+ window.removeEventListener('mousedown', this.clickOutsideHandler);
510
513
  this.clickOutsideHandler = null;
511
514
  }
512
515
  },
@@ -600,11 +603,6 @@ class Tooltip extends _baseComponent.default {
600
603
  },
601
604
  notifyEscKeydown: event => {
602
605
  this.props.onEscKeyDown(event);
603
- },
604
- setId: () => {
605
- this.setState({
606
- id: (0, _uuid.getUuidShort)()
607
- });
608
606
  }
609
607
  });
610
608
  }
@@ -52,7 +52,7 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
52
52
 
53
53
  var _foundation = _interopRequireDefault(require("@douyinfe/semi-foundation/lib/cjs/transfer/foundation"));
54
54
 
55
- var _transferUtlls = require("@douyinfe/semi-foundation/lib/cjs/transfer/transferUtlls");
55
+ var _transferUtils = require("@douyinfe/semi-foundation/lib/cjs/transfer/transferUtils");
56
56
 
57
57
  var _constants = require("@douyinfe/semi-foundation/lib/cjs/transfer/constants");
58
58
 
@@ -98,13 +98,13 @@ class Transfer extends _baseComponent.default {
98
98
  if (Boolean(dataSource) && (0, _isArray3.default)(dataSource)) {
99
99
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
100
100
  // @ts-ignore Avoid reporting errors this.state.xxx is read-only
101
- this.state.data = (0, _transferUtlls._generateDataByType)(dataSource, type);
101
+ this.state.data = (0, _transferUtils._generateDataByType)(dataSource, type);
102
102
  }
103
103
 
104
104
  if (Boolean(defaultValue) && (0, _isArray3.default)(defaultValue)) {
105
105
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
106
106
  // @ts-ignore Avoid reporting errors this.state.xxx is read-only
107
- this.state.selectedItems = (0, _transferUtlls._generateSelectedItems)(defaultValue, this.state.data);
107
+ this.state.selectedItems = (0, _transferUtils._generateSelectedItems)(defaultValue, this.state.data);
108
108
  }
109
109
 
110
110
  this.onSelectOrRemove = (0, _bind.default)(_context = this.onSelectOrRemove).call(_context, this);
@@ -124,12 +124,12 @@ class Transfer extends _baseComponent.default {
124
124
  let newSelectedItems = state.selectedItems;
125
125
 
126
126
  if (Boolean(dataSource) && (0, _isArray2.default)(dataSource)) {
127
- newData = (0, _transferUtlls._generateDataByType)(dataSource, type);
127
+ newData = (0, _transferUtils._generateDataByType)(dataSource, type);
128
128
  mergedState.data = newData;
129
129
  }
130
130
 
131
131
  if (Boolean(value) && (0, _isArray2.default)(value)) {
132
- newSelectedItems = (0, _transferUtlls._generateSelectedItems)(value, newData);
132
+ newSelectedItems = (0, _transferUtils._generateSelectedItems)(value, newData);
133
133
  mergedState.selectedItems = newSelectedItems;
134
134
  }
135
135
 
@@ -101,7 +101,7 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof _WeakMap !== "functi
101
101
  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; }
102
102
 
103
103
  const prefixcls = _constants.cssClasses.PREFIX;
104
- const prefixTree = _constants.cssClasses.PREFIXTREE;
104
+ const prefixTree = _constants.cssClasses.PREFIX_TREE;
105
105
  const key = 0;
106
106
 
107
107
  class TreeSelect extends _baseComponent.default {
@@ -37,7 +37,7 @@ export default class Title extends PureComponent<TitleProps> {
37
37
  underline: PropTypes.Requireable<boolean>;
38
38
  strong: PropTypes.Requireable<boolean>;
39
39
  type: PropTypes.Requireable<"warning" | "success" | "primary" | "tertiary" | "secondary" | "danger" | "quaternary">;
40
- heading: PropTypes.Requireable<4 | 2 | 1 | 3 | 6 | 5>;
40
+ heading: PropTypes.Requireable<1 | 2 | 3 | 4 | 5 | 6>;
41
41
  style: PropTypes.Requireable<object>;
42
42
  className: PropTypes.Requireable<string>;
43
43
  component: PropTypes.Requireable<string>;
@@ -140,7 +140,7 @@ declare class Upload extends BaseComponent<UploadProps, UploadState> {
140
140
  style: PropTypes.Requireable<object>;
141
141
  timeout: PropTypes.Requireable<number>;
142
142
  transformFile: PropTypes.Requireable<(...args: any[]) => any>;
143
- uploadTrigger: PropTypes.Requireable<"custom" | "auto">;
143
+ uploadTrigger: PropTypes.Requireable<"auto" | "custom">;
144
144
  validateMessage: PropTypes.Requireable<PropTypes.ReactNodeLike>;
145
145
  validateStatus: PropTypes.Requireable<"default" | "error" | "warning" | "success">;
146
146
  withCredentials: PropTypes.Requireable<boolean>;
@@ -33,6 +33,6 @@ declare class Portal extends PureComponent<PortalProps, PortalState> {
33
33
  componentWillUnmount(): void;
34
34
  addStyle: (style?: {}) => void;
35
35
  addClass: (prefixCls: string, ...classNames: string[]) => void;
36
- render(): import("react").ReactPortal;
36
+ render(): React.ReactPortal;
37
37
  }
38
38
  export default Portal;
@@ -67,7 +67,9 @@ export default class Banner extends BaseComponent {
67
67
  const closer = /*#__PURE__*/React.createElement(Button, {
68
68
  className: "".concat(prefixCls, "-close"),
69
69
  onClick: this.remove,
70
- icon: closeIcon || /*#__PURE__*/React.createElement(IconClose, null),
70
+ icon: closeIcon || /*#__PURE__*/React.createElement(IconClose, {
71
+ "aria-hidden": true
72
+ }),
71
73
  theme: "borderless",
72
74
  size: "small",
73
75
  type: "tertiary",
@@ -83,16 +85,20 @@ export default class Banner extends BaseComponent {
83
85
  } = this.props;
84
86
  const iconMap = {
85
87
  warning: /*#__PURE__*/React.createElement(IconAlertTriangle, {
86
- size: "large"
88
+ size: "large",
89
+ "aria-label": 'warning'
87
90
  }),
88
91
  success: /*#__PURE__*/React.createElement(IconTickCircle, {
89
- size: "large"
92
+ size: "large",
93
+ "aria-label": 'success'
90
94
  }),
91
95
  info: /*#__PURE__*/React.createElement(IconInfoCircle, {
92
- size: "large"
96
+ size: "large",
97
+ "aria-label": 'info'
93
98
  }),
94
99
  danger: /*#__PURE__*/React.createElement(IconAlertCircle, {
95
- size: "large"
100
+ size: "large",
101
+ "aria-label": 'danger'
96
102
  })
97
103
  };
98
104
  let iconType = iconMap[type];
@@ -10,7 +10,7 @@ export interface ButtonGroupProps extends BaseProps {
10
10
  size?: Size;
11
11
  theme?: Theme;
12
12
  className?: string;
13
- children?: React.ReactChild;
13
+ children?: React.ReactNode;
14
14
  'aria-label'?: React.AriaAttributes['aria-label'];
15
15
  }
16
16
  export default class ButtonGroup extends BaseComponent<ButtonGroupProps> {
@@ -0,0 +1,8 @@
1
+ import React, { ReactNode } from "react";
2
+ import { CarouselArrowProps } from "./interface";
3
+ declare class CarouselArrow extends React.PureComponent<CarouselArrowProps> {
4
+ renderLeftIcon: () => any;
5
+ renderRightIcon: () => any;
6
+ render(): ReactNode;
7
+ }
8
+ export default CarouselArrow;
@@ -0,0 +1,70 @@
1
+ import _get from "lodash/get";
2
+ import _concatInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/concat";
3
+ import _Object$assign from "@babel/runtime-corejs3/core-js-stable/object/assign";
4
+
5
+ /* eslint-disable jsx-a11y/click-events-have-key-events */
6
+
7
+ /* eslint-disable jsx-a11y/no-static-element-interactions */
8
+ import React from "react";
9
+ import cls from 'classnames';
10
+ import { cssClasses } from '@douyinfe/semi-foundation/lib/es/carousel/constants';
11
+ import { IconChevronLeft, IconChevronRight } from "@douyinfe/semi-icons";
12
+
13
+ class CarouselArrow extends React.PureComponent {
14
+ constructor() {
15
+ super(...arguments);
16
+
17
+ this.renderLeftIcon = () => {
18
+ return _get(this.props, 'arrowProps.leftArrow.children', /*#__PURE__*/React.createElement(IconChevronLeft, {
19
+ "aria-label": "Previous index",
20
+ size: "inherit"
21
+ }));
22
+ };
23
+
24
+ this.renderRightIcon = () => {
25
+ return _get(this.props, 'arrowProps.rightArrow.children', /*#__PURE__*/React.createElement(IconChevronRight, {
26
+ "aria-label": "Next index",
27
+ size: "inherit"
28
+ }));
29
+ };
30
+ }
31
+
32
+ render() {
33
+ var _context, _context2, _context3;
34
+
35
+ const {
36
+ type,
37
+ theme,
38
+ prev,
39
+ next
40
+ } = this.props;
41
+ const classNames = cls({
42
+ [cssClasses.CAROUSEL_ARROW]: true,
43
+ [_concatInstanceProperty(_context = "".concat(cssClasses.CAROUSEL_ARROW, "-")).call(_context, theme)]: theme,
44
+ ["".concat(cssClasses.CAROUSEL_ARROW, "-hover")]: type === 'hover'
45
+ });
46
+ const leftClassNames = cls({
47
+ ["".concat(cssClasses.CAROUSEL_ARROW, "-prev")]: true,
48
+ [_concatInstanceProperty(_context2 = "".concat(cssClasses.CAROUSEL_ARROW, "-")).call(_context2, theme)]: theme
49
+ });
50
+ const rightClassNames = cls({
51
+ ["".concat(cssClasses.CAROUSEL_ARROW, "-next")]: true,
52
+ [_concatInstanceProperty(_context3 = "".concat(cssClasses.CAROUSEL_ARROW, "-")).call(_context3, theme)]: theme
53
+ });
54
+ return /*#__PURE__*/React.createElement("div", {
55
+ className: classNames
56
+ }, /*#__PURE__*/React.createElement("div", _Object$assign({
57
+ // role='button'
58
+ className: leftClassNames,
59
+ onClick: prev
60
+ }, _get(this.props, 'arrowProps.leftArrow.props')), this.renderLeftIcon()), /*#__PURE__*/React.createElement("div", _Object$assign({
61
+ // role='button'
62
+ // tabIndex={0}
63
+ className: rightClassNames,
64
+ onClick: next
65
+ }, _get(this.props, 'arrowProps.rightArrow.props')), this.renderRightIcon()));
66
+ }
67
+
68
+ }
69
+
70
+ export default CarouselArrow;
@@ -0,0 +1,23 @@
1
+ import React, { ReactNode } from "react";
2
+ import PropTypes from 'prop-types';
3
+ import { CarouselIndicatorProps } from "./interface";
4
+ declare class CarouselIndicator extends React.PureComponent<CarouselIndicatorProps> {
5
+ static propTypes: {
6
+ activeKey: PropTypes.Requireable<number>;
7
+ className: PropTypes.Requireable<string>;
8
+ position: PropTypes.Requireable<"left" | "right" | "center">;
9
+ size: PropTypes.Requireable<"small" | "medium">;
10
+ style: PropTypes.Requireable<object>;
11
+ theme: PropTypes.Requireable<"primary" | "dark" | "light">;
12
+ total: PropTypes.Requireable<number>;
13
+ onIndicatorChange: PropTypes.Requireable<(...args: any[]) => any>;
14
+ type: PropTypes.Requireable<"line" | "dot" | "columnar">;
15
+ trigger: PropTypes.Requireable<"hover" | "click">;
16
+ };
17
+ onIndicatorChange: (activeIndex: number) => void;
18
+ handleIndicatorClick: (activeIndex: number) => void;
19
+ handleIndicatorHover: (activeIndex: number) => void;
20
+ renderIndicatorContent(): ReactNode;
21
+ render(): ReactNode;
22
+ }
23
+ export default CarouselIndicator;
@@ -0,0 +1,125 @@
1
+ import _indexOfInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/index-of";
2
+ import _Object$getOwnPropertySymbols from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols";
3
+ import _concatInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/concat";
4
+ import _Object$assign from "@babel/runtime-corejs3/core-js-stable/object/assign";
5
+
6
+ var __rest = this && this.__rest || function (s, e) {
7
+ var t = {};
8
+
9
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && _indexOfInstanceProperty(e).call(e, p) < 0) t[p] = s[p];
10
+
11
+ if (s != null && typeof _Object$getOwnPropertySymbols === "function") for (var i = 0, p = _Object$getOwnPropertySymbols(s); i < p.length; i++) {
12
+ if (_indexOfInstanceProperty(e).call(e, p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
13
+ }
14
+ return t;
15
+ };
16
+ /* eslint-disable jsx-a11y/no-static-element-interactions */
17
+
18
+ /* eslint-disable jsx-a11y/click-events-have-key-events */
19
+
20
+
21
+ import React from "react";
22
+ import cls from 'classnames';
23
+ import PropTypes from 'prop-types';
24
+ import { cssClasses, strings } from '@douyinfe/semi-foundation/lib/es/carousel/constants';
25
+ import getDataAttr from '@douyinfe/semi-foundation/lib/es/utils/getDataAttr';
26
+
27
+ class CarouselIndicator extends React.PureComponent {
28
+ constructor() {
29
+ super(...arguments);
30
+
31
+ this.onIndicatorChange = activeIndex => {
32
+ this.props.onIndicatorChange(activeIndex);
33
+ };
34
+
35
+ this.handleIndicatorClick = activeIndex => {
36
+ const {
37
+ trigger
38
+ } = this.props;
39
+
40
+ if (trigger === 'click') {
41
+ this.onIndicatorChange(activeIndex);
42
+ }
43
+ };
44
+
45
+ this.handleIndicatorHover = activeIndex => {
46
+ const {
47
+ trigger
48
+ } = this.props;
49
+
50
+ if (trigger === 'hover') {
51
+ this.onIndicatorChange(activeIndex);
52
+ }
53
+ };
54
+ }
55
+
56
+ renderIndicatorContent() {
57
+ const {
58
+ total,
59
+ theme,
60
+ size,
61
+ activeIndex
62
+ } = this.props;
63
+ const indicatorContent = [];
64
+
65
+ for (let i = 0; i < total; i++) {
66
+ var _context, _context2;
67
+
68
+ indicatorContent.push( /*#__PURE__*/React.createElement("span", {
69
+ // role='none'
70
+ key: i,
71
+ "data-index": i,
72
+ className: cls(["".concat(cssClasses.CAROUSEL_INDICATOR, "-item")], {
73
+ ["".concat(cssClasses.CAROUSEL_INDICATOR, "-item-active")]: i === activeIndex,
74
+ [_concatInstanceProperty(_context = "".concat(cssClasses.CAROUSEL_INDICATOR, "-item-")).call(_context, theme)]: theme,
75
+ [_concatInstanceProperty(_context2 = "".concat(cssClasses.CAROUSEL_INDICATOR, "-item-")).call(_context2, size)]: size
76
+ }),
77
+ onClick: () => this.handleIndicatorClick(i),
78
+ onMouseEnter: () => this.handleIndicatorHover(i)
79
+ }));
80
+ }
81
+
82
+ return indicatorContent;
83
+ }
84
+
85
+ render() {
86
+ var _context3, _context4;
87
+
88
+ const _a = this.props,
89
+ {
90
+ type,
91
+ size,
92
+ theme,
93
+ style,
94
+ className,
95
+ position
96
+ } = _a,
97
+ restProps = __rest(_a, ["type", "size", "theme", "style", "className", "position"]);
98
+
99
+ const classNames = cls(className, {
100
+ [cssClasses.CAROUSEL_INDICATOR]: true,
101
+ [_concatInstanceProperty(_context3 = "".concat(cssClasses.CAROUSEL_INDICATOR, "-")).call(_context3, type)]: type,
102
+ [_concatInstanceProperty(_context4 = "".concat(cssClasses.CAROUSEL_INDICATOR, "-")).call(_context4, position)]: position
103
+ });
104
+ const indicatorContent = this.renderIndicatorContent();
105
+ return /*#__PURE__*/React.createElement("div", _Object$assign({
106
+ className: classNames,
107
+ style: style
108
+ }, getDataAttr(restProps)), indicatorContent);
109
+ }
110
+
111
+ }
112
+
113
+ CarouselIndicator.propTypes = {
114
+ activeKey: PropTypes.number,
115
+ className: PropTypes.string,
116
+ position: PropTypes.oneOf(strings.POSITION_MAP),
117
+ size: PropTypes.oneOf(strings.SIZE),
118
+ style: PropTypes.object,
119
+ theme: PropTypes.oneOf(strings.THEME_MAP),
120
+ total: PropTypes.number,
121
+ onIndicatorChange: PropTypes.func,
122
+ type: PropTypes.oneOf(strings.TYPE_MAP),
123
+ trigger: PropTypes.oneOf(strings.TRIGGER)
124
+ };
125
+ export default CarouselIndicator;
@@ -0,0 +1,58 @@
1
+ import { ReactNode, ReactChild, ReactFragment, ReactPortal } from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import BaseComponent from "../_base/baseComponent";
4
+ import { CarouselProps } from './interface';
5
+ import CarouselFoundation, { CarouselAdapter } from '@douyinfe/semi-foundation/lib/es/carousel/foundation';
6
+ import '@douyinfe/semi-foundation/lib/es/carousel/carousel.css';
7
+ export interface CarouselState {
8
+ activeIndex: number;
9
+ children: (ReactChild | ReactFragment | ReactPortal)[];
10
+ preIndex: number;
11
+ isReverse: boolean;
12
+ isInit: boolean;
13
+ }
14
+ declare class Carousel extends BaseComponent<CarouselProps, CarouselState> {
15
+ static propTypes: {
16
+ activeIndex: PropTypes.Requireable<number>;
17
+ animation: PropTypes.Requireable<"slide" | "fade">;
18
+ arrowProps: PropTypes.Requireable<object>;
19
+ autoPlay: PropTypes.Requireable<boolean | object>;
20
+ className: PropTypes.Requireable<string>;
21
+ defaultActiveIndex: PropTypes.Requireable<number>;
22
+ indicatorPosition: PropTypes.Requireable<"left" | "right" | "center">;
23
+ indicatorSize: PropTypes.Requireable<"small" | "medium">;
24
+ indicatorType: PropTypes.Requireable<"line" | "dot" | "columnar">;
25
+ theme: PropTypes.Requireable<"primary" | "dark" | "light">;
26
+ onChange: PropTypes.Requireable<(...args: any[]) => any>;
27
+ arrowType: PropTypes.Requireable<"hover" | "always">;
28
+ showArrow: PropTypes.Requireable<boolean>;
29
+ showIndicator: PropTypes.Requireable<boolean>;
30
+ slideDirection: PropTypes.Requireable<"left" | "right">;
31
+ speed: PropTypes.Requireable<number>;
32
+ style: PropTypes.Requireable<object>;
33
+ trigger: PropTypes.Requireable<"hover" | "click">;
34
+ };
35
+ static defaultProps: CarouselProps;
36
+ foundation: CarouselFoundation;
37
+ constructor(props: CarouselProps);
38
+ get adapter(): CarouselAdapter<CarouselProps, CarouselState>;
39
+ static getDerivedStateFromProps(props: CarouselProps, state: CarouselState): Partial<CarouselState>;
40
+ componentDidMount(): void;
41
+ componentWillUnmount(): void;
42
+ play: () => void;
43
+ stop: () => void;
44
+ goTo: (targetIndex: number) => void;
45
+ prev: () => void;
46
+ next: () => void;
47
+ handleAutoPlay: () => void;
48
+ handleMouseEnter: () => void;
49
+ handleMouseLeave: () => void;
50
+ onIndicatorChange: (activeIndex: number) => void;
51
+ getChildren: () => (ReactChild | ReactFragment | ReactPortal)[];
52
+ getValidIndex: (activeIndex: number) => number;
53
+ renderChildren: () => JSX.Element;
54
+ renderIndicator: () => JSX.Element;
55
+ renderArrow: () => JSX.Element;
56
+ render(): ReactNode;
57
+ }
58
+ export default Carousel;