@douyinfe/semi-ui 2.8.1 → 2.9.0-beta.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 (77) hide show
  1. package/badge/index.tsx +12 -3
  2. package/descriptions/index.tsx +3 -4
  3. package/descriptions/item.tsx +1 -1
  4. package/dist/css/semi.css +62 -15
  5. package/dist/css/semi.min.css +1 -1
  6. package/dist/umd/semi-ui.js +7417 -3317
  7. package/dist/umd/semi-ui.js.map +1 -1
  8. package/dist/umd/semi-ui.min.js +1 -1
  9. package/dist/umd/semi-ui.min.js.map +1 -1
  10. package/divider/__test__/divider.test.js +72 -0
  11. package/divider/_story/Demo.tsx +16 -0
  12. package/divider/_story/divider.stories.js +41 -0
  13. package/divider/_story/divider.stories.tsx +8 -0
  14. package/divider/index.tsx +72 -0
  15. package/form/_story/demo.jsx +9 -0
  16. package/index.ts +1 -0
  17. package/lib/cjs/badge/index.d.ts +9 -0
  18. package/lib/cjs/badge/index.js +34 -6
  19. package/lib/cjs/button/index.d.ts +1 -1
  20. package/lib/cjs/descriptions/index.d.ts +2 -3
  21. package/lib/cjs/descriptions/index.js +4 -3
  22. package/lib/cjs/descriptions/item.d.ts +1 -1
  23. package/lib/cjs/divider/index.d.ts +20 -0
  24. package/lib/cjs/divider/index.js +88 -0
  25. package/lib/cjs/form/baseForm.d.ts +1 -1
  26. package/lib/cjs/form/errorMessage.d.ts +1 -1
  27. package/lib/cjs/iconButton/index.d.ts +1 -1
  28. package/lib/cjs/index.d.ts +1 -0
  29. package/lib/cjs/index.js +9 -0
  30. package/lib/cjs/modal/confirm.d.ts +5 -5
  31. package/lib/cjs/navigation/Header.d.ts +1 -1
  32. package/lib/cjs/navigation/index.d.ts +2 -2
  33. package/lib/cjs/popover/index.d.ts +1 -1
  34. package/lib/cjs/progress/index.d.ts +1 -1
  35. package/lib/cjs/select/optionGroup.d.ts +1 -1
  36. package/lib/cjs/slider/index.js +16 -12
  37. package/lib/cjs/table/Body/BaseRow.d.ts +1 -1
  38. package/lib/cjs/table/Body/ExpandedRow.d.ts +1 -1
  39. package/lib/cjs/table/Column.d.ts +1 -1
  40. package/lib/cjs/table/ColumnShape.d.ts +1 -1
  41. package/lib/cjs/table/CustomExpandIcon.d.ts +1 -1
  42. package/lib/cjs/table/Table.d.ts +5 -5
  43. package/lib/cjs/table/index.d.ts +4 -4
  44. package/lib/cjs/tagInput/index.d.ts +1 -1
  45. package/lib/cjs/tooltip/index.d.ts +1 -1
  46. package/lib/es/badge/index.d.ts +9 -0
  47. package/lib/es/badge/index.js +31 -6
  48. package/lib/es/button/index.d.ts +1 -1
  49. package/lib/es/descriptions/index.d.ts +2 -3
  50. package/lib/es/descriptions/index.js +4 -3
  51. package/lib/es/descriptions/item.d.ts +1 -1
  52. package/lib/es/divider/index.d.ts +20 -0
  53. package/lib/es/divider/index.js +68 -0
  54. package/lib/es/form/baseForm.d.ts +1 -1
  55. package/lib/es/form/errorMessage.d.ts +1 -1
  56. package/lib/es/iconButton/index.d.ts +1 -1
  57. package/lib/es/index.d.ts +1 -0
  58. package/lib/es/index.js +1 -0
  59. package/lib/es/modal/confirm.d.ts +5 -5
  60. package/lib/es/navigation/Header.d.ts +1 -1
  61. package/lib/es/navigation/index.d.ts +2 -2
  62. package/lib/es/popover/index.d.ts +1 -1
  63. package/lib/es/progress/index.d.ts +1 -1
  64. package/lib/es/select/optionGroup.d.ts +1 -1
  65. package/lib/es/slider/index.js +16 -12
  66. package/lib/es/table/Body/BaseRow.d.ts +1 -1
  67. package/lib/es/table/Body/ExpandedRow.d.ts +1 -1
  68. package/lib/es/table/Column.d.ts +1 -1
  69. package/lib/es/table/ColumnShape.d.ts +1 -1
  70. package/lib/es/table/CustomExpandIcon.d.ts +1 -1
  71. package/lib/es/table/Table.d.ts +5 -5
  72. package/lib/es/table/index.d.ts +4 -4
  73. package/lib/es/tagInput/index.d.ts +1 -1
  74. package/lib/es/tooltip/index.d.ts +1 -1
  75. package/package.json +9 -9
  76. package/slider/_story/slider.stories.js +28 -6
  77. package/slider/index.tsx +15 -10
package/badge/index.tsx CHANGED
@@ -1,7 +1,7 @@
1
1
  import React, { PureComponent } from 'react';
2
2
  import cls from 'classnames';
3
3
  import PropTypes from 'prop-types';
4
- import { isNumber, isString } from 'lodash';
4
+ import { isNumber, isString, noop } from 'lodash';
5
5
  import ConfigContext, { ContextValue } from '../configProvider/context';
6
6
  import { cssClasses, strings } from '@douyinfe/semi-foundation/badge/constants';
7
7
  import '@douyinfe/semi-foundation/badge/badge.scss';
@@ -21,6 +21,9 @@ export interface BadgeProps {
21
21
  overflowCount?: number;
22
22
  style?: React.CSSProperties;
23
23
  className?: string;
24
+ onMouseEnter?: (e: React.MouseEvent) => any;
25
+ onMouseLeave?: (e: React.MouseEvent) => any;
26
+ onClick?: (e: React.MouseEvent) => any;
24
27
  children?: React.ReactNode | undefined;
25
28
  }
26
29
 
@@ -36,6 +39,9 @@ export default class Badge extends PureComponent<BadgeProps> {
36
39
  style: PropTypes.object,
37
40
  className: PropTypes.string,
38
41
  children: PropTypes.node,
42
+ onClick: PropTypes.func,
43
+ onMouseEnter: PropTypes.func,
44
+ onMouseLeave: PropTypes.func,
39
45
  };
40
46
 
41
47
  static defaultProps = {
@@ -43,6 +49,9 @@ export default class Badge extends PureComponent<BadgeProps> {
43
49
  type: 'primary',
44
50
  theme: 'solid',
45
51
  className: '',
52
+ onClick: () => noop,
53
+ onMouseEnter: () => noop,
54
+ onMouseLeave: () => noop,
46
55
  };
47
56
 
48
57
  context: ContextValue;
@@ -52,7 +61,7 @@ export default class Badge extends PureComponent<BadgeProps> {
52
61
  // DefaultPosition here, static can't get this
53
62
  const defaultPosition = direction === 'rtl' ? 'leftTop' : 'rightTop';
54
63
  // eslint-disable-next-line max-len
55
- const { count, dot, type, theme, position = defaultPosition, overflowCount, style, children, className } = this.props;
64
+ const { count, dot, type, theme, position = defaultPosition, overflowCount, style, children, className, ...rest } = this.props;
56
65
  const custom = count && !(isNumber(count) || isString(count));
57
66
  const showBadge = count !== null && typeof count !== 'undefined';
58
67
  const wrapper = cls(className, {
@@ -71,7 +80,7 @@ export default class Badge extends PureComponent<BadgeProps> {
71
80
  content = count;
72
81
  }
73
82
  return (
74
- <span className={prefixCls}>
83
+ <span className={prefixCls} {...rest}>
75
84
  {children}
76
85
  <span className={wrapper} style={style}>
77
86
  {dot ? null : content}
@@ -10,8 +10,7 @@ import Item from './item';
10
10
  export { DescriptionsItemProps } from './item';
11
11
  export type DescriptionsSize = 'small' | 'medium' | 'large';
12
12
  export interface Data {
13
- [x: string]: any;
14
- key?: string | number;
13
+ key?: React.ReactNode;
15
14
  value?: (() => React.ReactNode) | React.ReactNode;
16
15
  hidden?: boolean;
17
16
  }
@@ -62,8 +61,8 @@ class Descriptions extends PureComponent<DescriptionsProps> {
62
61
  [`${prefixCls}-double-${size}`]: row,
63
62
  });
64
63
  const childrenList = data && data.length ?
65
- data.map(item => (
66
- isPlainObject(item) ? <Item key={item.key} itemKey={item.key} {...item}>{item.value}</Item> : null
64
+ data.map((item, index) => (
65
+ isPlainObject(item) ? <Item itemKey={item.key} {...item} key={index}>{item.value}</Item> : null
67
66
  )) :
68
67
  children;
69
68
  return (
@@ -9,7 +9,7 @@ export interface DescriptionsItemProps {
9
9
  className?: string;
10
10
  children?: React.ReactNode | undefined | (() => React.ReactNode);
11
11
  style?: React.CSSProperties;
12
- itemKey: string | number;
12
+ itemKey?: React.ReactNode;
13
13
  }
14
14
 
15
15
  const prefixCls = cssClasses.PREFIX;
package/dist/css/semi.css CHANGED
@@ -759,12 +759,7 @@ body[theme-mode=dark], body .semi-always-dark {
759
759
  font-weight: 600;
760
760
  }
761
761
  .semi-avatar-content {
762
- position: absolute;
763
762
  user-select: none;
764
- left: 50%;
765
- top: 50%;
766
- transform: translate(-50%, -50%);
767
- transform-origin: center;
768
763
  }
769
764
  .semi-avatar-extra-extra-small {
770
765
  width: 20px;
@@ -772,7 +767,7 @@ body[theme-mode=dark], body .semi-always-dark {
772
767
  }
773
768
  .semi-avatar-extra-extra-small .semi-avatar-content {
774
769
  transform-origin: center;
775
- transform: scale(0.8) translate(-62.5%, -62.5%);
770
+ transform: scale(0.8);
776
771
  }
777
772
  .semi-avatar-extra-extra-small .semi-avatar-label {
778
773
  font-size: 10px;
@@ -784,7 +779,7 @@ body[theme-mode=dark], body .semi-always-dark {
784
779
  }
785
780
  .semi-avatar-extra-small .semi-avatar-content {
786
781
  transform-origin: center;
787
- transform: scale(0.8) translate(-62.5%, -62.5%);
782
+ transform: scale(0.8);
788
783
  }
789
784
  .semi-avatar-extra-small .semi-avatar-label {
790
785
  font-size: 10px;
@@ -1108,19 +1103,13 @@ body[theme-mode=dark], body .semi-always-dark {
1108
1103
  .semi-portal-rtl .semi-avatar {
1109
1104
  direction: rtl;
1110
1105
  }
1111
- .semi-rtl .semi-avatar-content,
1112
- .semi-portal-rtl .semi-avatar-content {
1113
- left: auto;
1114
- right: 50%;
1115
- transform: translate(50%, -50%);
1116
- }
1117
1106
  .semi-rtl .semi-avatar-extra-extra-small .semi-avatar-content,
1118
1107
  .semi-portal-rtl .semi-avatar-extra-extra-small .semi-avatar-content {
1119
- transform: scale(0.8) translate(62.5%, -62.5%);
1108
+ transform: scale(0.8);
1120
1109
  }
1121
1110
  .semi-rtl .semi-avatar-extra-small .semi-avatar-content,
1122
1111
  .semi-portal-rtl .semi-avatar-extra-small .semi-avatar-content {
1123
- transform: scale(0.8) translate(62.5%, -62.5%);
1112
+ transform: scale(0.8);
1124
1113
  }
1125
1114
  .semi-rtl .semi-avatar-hover,
1126
1115
  .semi-portal-rtl .semi-avatar-hover {
@@ -4572,6 +4561,64 @@ body[theme-mode=dark], body .semi-always-dark {
4572
4561
  padding-left: 80px;
4573
4562
  }
4574
4563
 
4564
+ .semi-divider {
4565
+ margin: 1px 0px 1px 0px;
4566
+ border-bottom: 1px solid var(--semi-color-border);
4567
+ color: var(--semi-color-text-0);
4568
+ box-sizing: border-box;
4569
+ }
4570
+ .semi-divider-dashed {
4571
+ border-bottom-style: dashed;
4572
+ }
4573
+ .semi-divider-horizontal {
4574
+ width: 100%;
4575
+ display: flex;
4576
+ }
4577
+ .semi-divider-vertical {
4578
+ border-bottom: 0;
4579
+ display: inline-block;
4580
+ margin: 0px 1px 0px 1px;
4581
+ border-left: 1px solid var(--semi-color-border);
4582
+ height: 20px;
4583
+ vertical-align: middle;
4584
+ }
4585
+ .semi-divider-with-text {
4586
+ display: flex;
4587
+ border-bottom: 0;
4588
+ white-space: nowrap;
4589
+ align-items: center;
4590
+ }
4591
+ .semi-divider-with-text .semi-divider_inner-text {
4592
+ font-weight: 600;
4593
+ padding: 0px 8px 0px 8px;
4594
+ display: inline-block;
4595
+ }
4596
+ .semi-divider-with-text::before, .semi-divider-with-text::after {
4597
+ content: "";
4598
+ width: 50%;
4599
+ border-bottom: 1px solid var(--semi-color-border);
4600
+ }
4601
+ .semi-divider-with-text-left::before {
4602
+ width: 40px;
4603
+ }
4604
+ .semi-divider-with-text-left::after {
4605
+ flex: 1;
4606
+ }
4607
+ .semi-divider-with-text-right::before {
4608
+ flex: 1;
4609
+ }
4610
+ .semi-divider-with-text-right::after {
4611
+ width: 40px;
4612
+ }
4613
+
4614
+ .semi-divider-dashed::before, .semi-divider-dashed::after {
4615
+ border-bottom: 1px dashed var(--semi-color-border);
4616
+ }
4617
+
4618
+ .semi-divider-vertical.semi-divider-dashed {
4619
+ border-left: 1px dashed var(--semi-color-border);
4620
+ }
4621
+
4575
4622
  .semi-dropdown {
4576
4623
  font-size: 14px;
4577
4624
  line-height: 20px;