@kdcloudjs/kdesign 1.1.3 → 1.2.2

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 (132) hide show
  1. package/CHANGELOG.md +79 -3
  2. package/dist/kdesign-complete.less +1006 -783
  3. package/dist/kdesign.css +358 -268
  4. package/dist/kdesign.css.map +1 -1
  5. package/dist/kdesign.js +529 -262
  6. package/dist/kdesign.js.map +1 -1
  7. package/dist/kdesign.min.css +4 -4
  8. package/dist/kdesign.min.js +8 -8
  9. package/dist/kdesign.min.js.map +1 -1
  10. package/es/_utils/usePopper.js +33 -12
  11. package/es/anchor/anchor.js +0 -6
  12. package/es/anchor/style/index.css +5 -2
  13. package/es/anchor/style/index.less +6 -2
  14. package/es/anchor/style/token.less +2 -1
  15. package/es/button/button.d.ts +1 -1
  16. package/es/button/button.js +2 -2
  17. package/es/button/group.d.ts +21 -0
  18. package/es/button/group.js +130 -0
  19. package/es/button/index.d.ts +5 -1
  20. package/es/button/index.js +4 -1
  21. package/es/button/style/index.css +117 -21
  22. package/es/button/style/index.less +332 -192
  23. package/es/button/style/token.less +41 -25
  24. package/es/carousel/carousel.js +4 -0
  25. package/es/carousel/displayList.js +8 -4
  26. package/es/carousel/fadeList.js +9 -5
  27. package/es/carousel/slideList.js +6 -3
  28. package/es/carousel/style/index.css +65 -0
  29. package/es/carousel/style/index.less +66 -1
  30. package/es/collapse/panel.d.ts +1 -0
  31. package/es/collapse/panel.js +17 -5
  32. package/es/collapse/style/index.css +32 -6
  33. package/es/collapse/style/index.less +24 -1
  34. package/es/collapse/style/token.less +12 -10
  35. package/es/config-provider/compDefaultProps.d.ts +4 -0
  36. package/es/config-provider/compDefaultProps.js +4 -0
  37. package/es/drawer/drawer.d.ts +1 -0
  38. package/es/drawer/drawer.js +56 -21
  39. package/es/empty/defaultEmptyImg.js +5 -3
  40. package/es/empty/illustrationEmptyImg.js +6 -4
  41. package/es/icon/interface.js +1 -1
  42. package/es/image/preview.js +1 -1
  43. package/es/image/style/index.css +8 -8
  44. package/es/image/style/index.less +5 -5
  45. package/es/image/style/token.less +12 -25
  46. package/es/radio/radio.js +3 -1
  47. package/es/radio/style/index.css +51 -24
  48. package/es/radio/style/index.less +28 -2
  49. package/es/radio/style/token.less +4 -4
  50. package/es/rate/style/index.css +9 -9
  51. package/es/rate/style/token.less +6 -6
  52. package/es/select/option.js +1 -1
  53. package/es/select/style/index.css +14 -5
  54. package/es/select/style/index.less +374 -368
  55. package/es/select/style/token.less +2 -2
  56. package/es/stepper/style/index.css +1 -1
  57. package/es/stepper/style/token.less +1 -1
  58. package/es/steps/style/index.css +40 -32
  59. package/es/steps/style/index.less +23 -33
  60. package/es/steps/style/token.less +6 -9
  61. package/es/style/icon/kdicon.css +2 -1
  62. package/es/style/icon/kdicon.woff +0 -0
  63. package/es/switch/style/index.css +11 -11
  64. package/es/switch/style/index.less +2 -2
  65. package/es/switch/style/token.less +7 -10
  66. package/es/tabs/tabs.js +5 -1
  67. package/es/tag/style/index.css +2 -147
  68. package/es/tag/style/index.less +4 -24
  69. package/es/tag/style/mixin.less +0 -13
  70. package/es/tag/style/token.less +1 -1
  71. package/lib/_utils/usePopper.js +34 -12
  72. package/lib/anchor/anchor.js +0 -6
  73. package/lib/anchor/style/index.css +5 -2
  74. package/lib/anchor/style/index.less +6 -2
  75. package/lib/anchor/style/token.less +2 -1
  76. package/lib/button/button.d.ts +1 -1
  77. package/lib/button/button.js +2 -2
  78. package/lib/button/group.d.ts +21 -0
  79. package/lib/button/group.js +166 -0
  80. package/lib/button/index.d.ts +5 -1
  81. package/lib/button/index.js +5 -1
  82. package/lib/button/style/index.css +117 -21
  83. package/lib/button/style/index.less +332 -192
  84. package/lib/button/style/token.less +41 -25
  85. package/lib/carousel/carousel.js +4 -0
  86. package/lib/carousel/displayList.js +9 -4
  87. package/lib/carousel/fadeList.js +10 -5
  88. package/lib/carousel/slideList.js +6 -3
  89. package/lib/carousel/style/index.css +65 -0
  90. package/lib/carousel/style/index.less +66 -1
  91. package/lib/collapse/panel.d.ts +1 -0
  92. package/lib/collapse/panel.js +17 -5
  93. package/lib/collapse/style/index.css +32 -6
  94. package/lib/collapse/style/index.less +24 -1
  95. package/lib/collapse/style/token.less +12 -10
  96. package/lib/config-provider/compDefaultProps.d.ts +4 -0
  97. package/lib/config-provider/compDefaultProps.js +4 -0
  98. package/lib/drawer/drawer.d.ts +1 -0
  99. package/lib/drawer/drawer.js +61 -27
  100. package/lib/empty/defaultEmptyImg.js +6 -3
  101. package/lib/empty/illustrationEmptyImg.js +7 -4
  102. package/lib/icon/interface.js +1 -1
  103. package/lib/image/preview.js +1 -1
  104. package/lib/image/style/index.css +8 -8
  105. package/lib/image/style/index.less +5 -5
  106. package/lib/image/style/token.less +12 -25
  107. package/lib/radio/radio.js +3 -1
  108. package/lib/radio/style/index.css +51 -24
  109. package/lib/radio/style/index.less +28 -2
  110. package/lib/radio/style/token.less +4 -4
  111. package/lib/rate/style/index.css +9 -9
  112. package/lib/rate/style/token.less +6 -6
  113. package/lib/select/option.js +1 -1
  114. package/lib/select/style/index.css +14 -5
  115. package/lib/select/style/index.less +374 -368
  116. package/lib/select/style/token.less +2 -2
  117. package/lib/stepper/style/index.css +1 -1
  118. package/lib/stepper/style/token.less +1 -1
  119. package/lib/steps/style/index.css +40 -32
  120. package/lib/steps/style/index.less +23 -33
  121. package/lib/steps/style/token.less +6 -9
  122. package/lib/style/icon/kdicon.css +2 -1
  123. package/lib/style/icon/kdicon.woff +0 -0
  124. package/lib/switch/style/index.css +11 -11
  125. package/lib/switch/style/index.less +2 -2
  126. package/lib/switch/style/token.less +7 -10
  127. package/lib/tabs/tabs.js +6 -1
  128. package/lib/tag/style/index.css +2 -147
  129. package/lib/tag/style/index.less +4 -24
  130. package/lib/tag/style/mixin.less +0 -13
  131. package/lib/tag/style/token.less +1 -1
  132. package/package.json +1 -1
@@ -2,6 +2,7 @@ import _extends from "@babel/runtime-corejs3/helpers/extends";
2
2
  import _defineProperty from "@babel/runtime-corejs3/helpers/defineProperty";
3
3
  import _slicedToArray from "@babel/runtime-corejs3/helpers/slicedToArray";
4
4
  import _mapInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/map";
5
+ import _sliceInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/slice";
5
6
  import _concatInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/concat";
6
7
  import _includesInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/includes";
7
8
  import _Promise from "@babel/runtime-corejs3/core-js-stable/promise";
@@ -83,6 +84,23 @@ var getOffsetPos = function getOffsetPos(el) {
83
84
  return elPos;
84
85
  };
85
86
 
87
+ var getBorderWidth = function getBorderWidth(el) {
88
+ var border = {
89
+ top: 0,
90
+ left: 0
91
+ };
92
+
93
+ if (el.offsetParent) {
94
+ var _context, _context2;
95
+
96
+ var parentBorder = getBorderWidth(el.offsetParent);
97
+ border.top += parentBorder.top + parseInt(_sliceInstanceProperty(_context = getComputedStyle(el.offsetParent, null).borderTopWidth).call(_context, 0, -2));
98
+ border.left += parentBorder.left + parseInt(_sliceInstanceProperty(_context2 = getComputedStyle(el.offsetParent, null).borderTopWidth).call(_context2, 0, -2));
99
+ }
100
+
101
+ return border;
102
+ };
103
+
86
104
  var getScrollDist = function getScrollDist(el, container) {
87
105
  var elScroll = {
88
106
  top: el.scrollTop,
@@ -103,7 +121,7 @@ var getScrollDist = function getScrollDist(el, container) {
103
121
  };
104
122
 
105
123
  function usePopper(locatorElement, popperElement, props) {
106
- var _context, _context2, _arrowStyle;
124
+ var _context3, _context4, _arrowStyle;
107
125
 
108
126
  var prefixCls = props.prefixCls,
109
127
  onTrigger = props.onTrigger,
@@ -142,11 +160,11 @@ function usePopper(locatorElement, popperElement, props) {
142
160
  } : _props$getPopupContai;
143
161
  var arrowWidth = Math.sqrt(2 * Math.pow(arrowSize, 2));
144
162
  var componentName = (prefixCls === null || prefixCls === void 0 ? void 0 : prefixCls.split('-')[1]) || '';
145
- devWarning(Placements.indexOf(placement) === -1, componentName, _concatInstanceProperty(_context = "cannot found ".concat(componentName, " placement '")).call(_context, placement, "'"));
163
+ devWarning(Placements.indexOf(placement) === -1, componentName, _concatInstanceProperty(_context3 = "cannot found ".concat(componentName, " placement '")).call(_context3, placement, "'"));
146
164
  var isWrongTrigger = Array.isArray(trigger) ? trigger.some(function (v) {
147
165
  return !_includesInstanceProperty(Triggers).call(Triggers, v);
148
166
  }) : Triggers.indexOf(trigger) === -1;
149
- devWarning(isWrongTrigger, componentName, _concatInstanceProperty(_context2 = "cannot found ".concat(componentName, " trigger '")).call(_context2, trigger, "'"));
167
+ devWarning(isWrongTrigger, componentName, _concatInstanceProperty(_context4 = "cannot found ".concat(componentName, " trigger '")).call(_context4, trigger, "'"));
150
168
  var locatorEl = useRef();
151
169
  var popperEl = useRef();
152
170
  var locatorRef = locatorElement.ref || locatorEl;
@@ -246,21 +264,25 @@ function usePopper(locatorElement, popperElement, props) {
246
264
  locatorTop = _getOffsetPos2.top,
247
265
  locatorLeft = _getOffsetPos2.left;
248
266
 
249
- var _getScrollDist = getScrollDist(locatorRef.current.parentElement, container),
250
- scrollTop = _getScrollDist.top,
251
- scrollLeft = _getScrollDist.left;
252
-
253
267
  var _getTranslatePos = getTranslatePos(locatorRef.current),
254
268
  translateTop = _getTranslatePos.top,
255
269
  translateLeft = _getTranslatePos.left;
256
270
 
271
+ var _getBorderWidth = getBorderWidth(locatorRef.current),
272
+ borderTop = _getBorderWidth.top,
273
+ borderLeft = _getBorderWidth.left;
274
+
275
+ var _getScrollDist = getScrollDist(locatorRef.current.parentElement, container),
276
+ scrollTop = _getScrollDist.top,
277
+ scrollLeft = _getScrollDist.left;
278
+
257
279
  var locatorPos = {
258
280
  width: width,
259
281
  height: height,
260
- top: locatorTop + translateTop - containerTop - scrollTop,
261
- left: locatorLeft + translateLeft - containerLeft - scrollLeft,
262
- right: locatorLeft + translateLeft + width - containerLeft - scrollLeft,
263
- bottom: locatorTop + translateTop + height - containerTop - scrollTop
282
+ top: locatorTop + borderTop + translateTop - containerTop - scrollTop,
283
+ left: locatorLeft + borderLeft + translateLeft - containerLeft - scrollLeft,
284
+ right: locatorLeft + borderLeft + translateLeft + width - containerLeft - scrollLeft,
285
+ bottom: locatorTop + borderTop + translateTop + height - containerTop - scrollTop
264
286
  };
265
287
  var currentPos = trigger === 'contextMenu' ? mousePos : locatorPos;
266
288
  var _currentPlacement = placement;
@@ -457,7 +479,6 @@ function usePopper(locatorElement, popperElement, props) {
457
479
  }
458
480
  }, [disabled, exist, onTrigger, visible]);
459
481
  var hidePopper = useCallback(function () {
460
- setEvType('');
461
482
  props.visible === undefined && setVisible(false);
462
483
  onVisibleChange && onVisibleChange(false);
463
484
  }, [onVisibleChange, props.visible]);
@@ -317,12 +317,6 @@ var InternalAnchor = function InternalAnchor(props, ref) {
317
317
  var handleVisibleChange = function handleVisibleChange(visible) {
318
318
  !isLocked && onVisibleChange && onVisibleChange(visible);
319
319
  if (props.visible !== undefined) return;
320
-
321
- if (visible) {
322
- setOptionShow(visible);
323
- return;
324
- }
325
-
326
320
  !isLocked && setOptionShow(visible);
327
321
  };
328
322
 
@@ -180,7 +180,7 @@
180
180
  overflow: hidden;
181
181
  white-space: nowrap;
182
182
  text-overflow: ellipsis;
183
- padding: 0 6px;
183
+ padding: 0 4px;
184
184
  line-height: 1.5;
185
185
  vertical-align: middle;
186
186
  }
@@ -194,7 +194,7 @@
194
194
  }
195
195
  .kd-anchor-advanced-arrows {
196
196
  color: var(--kd-c-anchor-advanced-arrows-color-text, #666);
197
- font-size: var(--kd-c-anchor-icon-font-size, 16px);
197
+ font-size: var(--kd-c-anchor-advanced-arrows-font-size, 24px);
198
198
  cursor: pointer;
199
199
  }
200
200
  .kd-anchor-advanced-arrows:hover {
@@ -257,6 +257,9 @@
257
257
  .kd-anchor-link {
258
258
  padding: var(--kd-c-anchor-spacing-padding, 7px 8px);
259
259
  }
260
+ .kd-anchor-link > .kd-anchor-link {
261
+ padding: var(--kd-c-anchor-secondary-spacing-padding, 12px 8px);
262
+ }
260
263
  .kd-anchor-link-title {
261
264
  text-decoration: none;
262
265
  color: var(--kd-c-anchor-color-text-primary, var(--kd-g-color-text-primary, #212121));
@@ -72,7 +72,7 @@
72
72
  overflow: hidden;
73
73
  white-space: nowrap;
74
74
  text-overflow: ellipsis;
75
- padding: 0 6px;
75
+ padding: 0 4px;
76
76
  line-height: 1.5;
77
77
  vertical-align: middle;
78
78
  }
@@ -90,7 +90,7 @@
90
90
 
91
91
  &-advanced-arrows {
92
92
  color: @anchor-advanced-arrows-color;
93
- font-size: @anchor-icon-font-size;
93
+ font-size: @anchor-advanced-arrows-font-size;
94
94
  cursor: pointer;
95
95
  &:hover {
96
96
  color: @anchor-color-theme;
@@ -154,6 +154,10 @@
154
154
  &-link {
155
155
  padding: @anchor-link-padding;
156
156
 
157
+ &>.@{anchor-prefix-cls}-link {
158
+ padding: @anchor-link-secondary-padding;
159
+ }
160
+
157
161
  &-title {
158
162
  text-decoration: none;
159
163
  color: @anchor-primary-text-color;
@@ -19,6 +19,7 @@
19
19
  @anchor-link-top: var(~'@{anchor-prefix}-spacing-vertical', 7px);
20
20
  @anchor-link-left: var(~'@{anchor-prefix}-spacing-horizontal', 7px);
21
21
  @anchor-link-padding: var(~'@{anchor-prefix}-spacing-padding', 7px 8px);
22
+ @anchor-link-secondary-padding: var(~'@{anchor-prefix}-secondary-spacing-padding', 12px 8px);
22
23
  @anchor-advanced-padding-top: var(~'@{anchor-prefix}-advanced-spacing-padding-top', 8px);
23
24
  @anchor-advanced-padding-bottom: var(~'@{anchor-prefix}-advanced-spacing-padding-bottom', 7px);
24
25
  @anchor-ink-line-width: var(~'@{anchor-prefix}-ink-line-spacing-width', 1px);
@@ -28,6 +29,6 @@
28
29
  @anchor-advanced-lock-size: var(~'@{anchor-prefix}-advanced-lock-font-size', 16px);
29
30
  @anchor-font-size: var(~'@{anchor-prefix}-font-size', @font-size-small);
30
31
  @anchor-icon-font-size: var(~'@{anchor-prefix}-icon-font-size', 16px);
31
-
32
+ @anchor-advanced-arrows-font-size: var(~'@{anchor-prefix}-advanced-arrows-font-size', 24px);
32
33
  // motion
33
34
  @anchor-transition-duration: var(~'@{anchor-prefix}-duration-duration', @duration-promptly);
@@ -3,7 +3,7 @@ export declare const ButtonTypes: ["second", "primary", "ghost", "text"];
3
3
  export declare type ButtonType = typeof ButtonTypes[number];
4
4
  export declare const ButtonSizes: ["large", "middle", "small"];
5
5
  export declare type ButtonSize = typeof ButtonSizes[number];
6
- export declare const ButtonShapes: ["circle", "round"];
6
+ export declare const ButtonShapes: ["circle", "round", "none"];
7
7
  export declare type ButtonShape = typeof ButtonShapes[number];
8
8
  export declare const ButtonIconPlaces: ["left", "right"];
9
9
  export declare type ButtonIconPlace = typeof ButtonIconPlaces[number];
@@ -25,7 +25,7 @@ import { tuple } from '../_utils/type';
25
25
  import devWarning from '../_utils/devwarning';
26
26
  export var ButtonTypes = tuple('second', 'primary', 'ghost', 'text');
27
27
  export var ButtonSizes = tuple('large', 'middle', 'small');
28
- export var ButtonShapes = tuple('circle', 'round');
28
+ export var ButtonShapes = tuple('circle', 'round', 'none');
29
29
  export var ButtonIconPlaces = tuple('left', 'right');
30
30
  export var ButtonHTMLTypes = tuple('submit', 'button', 'reset');
31
31
 
@@ -107,7 +107,7 @@ var InternalButton = function InternalButton(props, ref) {
107
107
 
108
108
  var isTextBtn = type === 'text'; // 判断按钮是否文本类型。这些类型下有部分样式不适用
109
109
 
110
- var btnClasses = classNames(btnPrefixCls, className, (_classNames = {}, _defineProperty(_classNames, _concatInstanceProperty(_context = "".concat(btnPrefixCls, "-")).call(_context, type), type), _defineProperty(_classNames, _concatInstanceProperty(_context2 = "".concat(btnPrefixCls, "-size-")).call(_context2, size), size), _defineProperty(_classNames, _concatInstanceProperty(_context3 = "".concat(btnPrefixCls, "-shape-")).call(_context3, shape), shape && !isTextBtn), _defineProperty(_classNames, "".concat(btnPrefixCls, "-no-border"), !bordered), _defineProperty(_classNames, "".concat(btnPrefixCls, "-background-ghost"), ghost && !disabled), _defineProperty(_classNames, "".concat(btnPrefixCls, "-loading"), loading && !isTextBtn), _defineProperty(_classNames, "".concat(btnPrefixCls, "-block"), block && !shape), _classNames));
110
+ var btnClasses = classNames(btnPrefixCls, className, (_classNames = {}, _defineProperty(_classNames, _concatInstanceProperty(_context = "".concat(btnPrefixCls, "-")).call(_context, type), type), _defineProperty(_classNames, _concatInstanceProperty(_context2 = "".concat(btnPrefixCls, "-size-")).call(_context2, size), size), _defineProperty(_classNames, _concatInstanceProperty(_context3 = "".concat(btnPrefixCls, "-shape-")).call(_context3, shape), shape && !isTextBtn), _defineProperty(_classNames, "".concat(btnPrefixCls, "-no-border"), !bordered), _defineProperty(_classNames, "".concat(btnPrefixCls, "-background-ghost"), ghost && !disabled), _defineProperty(_classNames, "".concat(btnPrefixCls, "-loading"), loading && !isTextBtn), _defineProperty(_classNames, "".concat(btnPrefixCls, "-block"), block && !shape), _defineProperty(_classNames, "".concat(btnPrefixCls, "-icon-only"), !children && children !== 0 && icon), _classNames));
111
111
 
112
112
  var iconWrapperClassName = _concatInstanceProperty(_context4 = "".concat(btnPrefixCls, "-iconWrapper-")).call(_context4, iconPlace === 'left' ? 'left' : 'right');
113
113
 
@@ -0,0 +1,21 @@
1
+ import React, { CSSProperties, ReactNode } from 'react';
2
+ import { ButtonType } from './button';
3
+ export declare const ButtonGroupTypes: ["basic", "similar"];
4
+ export declare type ButtonGroupType = typeof ButtonGroupTypes[number];
5
+ export interface OverlayType {
6
+ value?: string;
7
+ label?: React.ReactNode;
8
+ }
9
+ export interface ButtonGroupProps {
10
+ style?: CSSProperties;
11
+ className?: string;
12
+ children?: ReactNode;
13
+ onClick?: () => void;
14
+ overlay?: Array<OverlayType>;
15
+ icon?: [ReactNode, ReactNode];
16
+ type?: ButtonGroupType;
17
+ buttonType?: ButtonType;
18
+ disabled?: boolean;
19
+ }
20
+ declare const ButtonGroup: React.ForwardRefExoticComponent<ButtonGroupProps & React.RefAttributes<HTMLDivElement>>;
21
+ export default ButtonGroup;
@@ -0,0 +1,130 @@
1
+ import _extends from "@babel/runtime-corejs3/helpers/extends";
2
+ import _defineProperty from "@babel/runtime-corejs3/helpers/defineProperty";
3
+ import _slicedToArray from "@babel/runtime-corejs3/helpers/slicedToArray";
4
+ import _concatInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/concat";
5
+ import _mapInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/map";
6
+ import React, { useContext, useState, useCallback } from 'react';
7
+ import classNames from 'classnames';
8
+ import ConfigContext from '../config-provider/ConfigContext';
9
+ import { getCompProps } from '../_utils';
10
+ import { Button, Icon } from '../index';
11
+ import usePopper from '../_utils/usePopper';
12
+ import { toArray } from '../_utils/react-children';
13
+ import { tuple } from '../_utils/type';
14
+ export var ButtonGroupTypes = tuple('basic', 'similar');
15
+
16
+ var InternalButtonGroup = function InternalButtonGroup(props, ref) {
17
+ var _context;
18
+
19
+ var _useContext = useContext(ConfigContext),
20
+ getPrefixCls = _useContext.getPrefixCls,
21
+ prefixCls = _useContext.prefixCls,
22
+ userDefaultProps = _useContext.compDefaultProps;
23
+
24
+ var buttonGoupProps = getCompProps('ButtonGroup', userDefaultProps, props);
25
+ var style = buttonGoupProps.style,
26
+ className = buttonGoupProps.className,
27
+ children = buttonGoupProps.children,
28
+ customPrefixcls = buttonGoupProps.prefixCls,
29
+ onClick = buttonGoupProps.onClick,
30
+ onItemClick = buttonGoupProps.onItemClick,
31
+ overlay = buttonGoupProps.overlay,
32
+ icon = buttonGoupProps.icon,
33
+ type = buttonGoupProps.type,
34
+ buttonType = buttonGoupProps.buttonType,
35
+ disabled = buttonGoupProps.disabled,
36
+ onVisibleChange = buttonGoupProps.onVisibleChange;
37
+
38
+ var _useState = useState(false),
39
+ _useState2 = _slicedToArray(_useState, 2),
40
+ optionShow = _useState2[0],
41
+ setOptionShow = _useState2[1]; // 下拉列表是否展示
42
+
43
+
44
+ var refBtnGroup = React.useRef(null) || ref;
45
+ var triggerRef = React.useRef(null);
46
+ var isBsicType = type === 'basic';
47
+ var btnGroupPrefixCls = getPrefixCls(prefixCls, 'btn-group', customPrefixcls);
48
+ var btnGroupClasses = classNames("".concat(btnGroupPrefixCls), className, _defineProperty({}, _concatInstanceProperty(_context = "".concat(btnGroupPrefixCls, "-")).call(_context, type), type));
49
+ var renderTriggerButton = useCallback(function () {
50
+ var _toArray = toArray(icon),
51
+ _toArray2 = _slicedToArray(_toArray, 2),
52
+ _toArray2$ = _toArray2[0],
53
+ iconUp = _toArray2$ === void 0 ? /*#__PURE__*/React.createElement(Icon, {
54
+ type: "arrow-up"
55
+ }) : _toArray2$,
56
+ _toArray2$2 = _toArray2[1],
57
+ iconDown = _toArray2$2 === void 0 ? /*#__PURE__*/React.createElement(Icon, {
58
+ type: "arrow-down"
59
+ }) : _toArray2$2;
60
+
61
+ return /*#__PURE__*/React.createElement("div", {
62
+ style: style,
63
+ className: btnGroupClasses,
64
+ ref: refBtnGroup
65
+ }, isBsicType && /*#__PURE__*/React.createElement(Button, {
66
+ type: buttonType,
67
+ disabled: disabled
68
+ }, children, /*#__PURE__*/React.createElement("span", {
69
+ className: "".concat(btnGroupPrefixCls, "-basic-icon")
70
+ }, optionShow ? iconUp : iconDown)), !isBsicType && /*#__PURE__*/React.createElement(Button, {
71
+ type: buttonType,
72
+ disabled: disabled,
73
+ onClick: onClick
74
+ }, children), !isBsicType && /*#__PURE__*/React.createElement("span", {
75
+ className: "".concat(btnGroupPrefixCls, "-trigger"),
76
+ ref: triggerRef
77
+ }, optionShow ? /*#__PURE__*/React.createElement(Button, {
78
+ icon: iconUp,
79
+ type: buttonType,
80
+ disabled: disabled
81
+ }) : /*#__PURE__*/React.createElement(Button, {
82
+ icon: iconDown,
83
+ type: buttonType,
84
+ disabled: disabled
85
+ })));
86
+ }, [icon, btnGroupPrefixCls, style, btnGroupClasses, refBtnGroup, isBsicType, buttonType, disabled, children, optionShow, onClick]);
87
+ var handleItemClick = useCallback(function (data) {
88
+ onItemClick === null || onItemClick === void 0 ? void 0 : onItemClick(data);
89
+ setOptionShow(false);
90
+ }, [onItemClick]);
91
+ var renderContent = useCallback(function () {
92
+ var _context2;
93
+
94
+ return /*#__PURE__*/React.createElement("div", {
95
+ className: "".concat(btnGroupPrefixCls, "-dropdown")
96
+ }, _mapInstanceProperty(_context2 = overlay || []).call(_context2, function (item) {
97
+ return /*#__PURE__*/React.createElement("div", {
98
+ key: item.value,
99
+ className: "".concat(btnGroupPrefixCls, "-dropdown-item"),
100
+ onClick: function onClick() {
101
+ return handleItemClick === null || handleItemClick === void 0 ? void 0 : handleItemClick(item);
102
+ }
103
+ }, item.label);
104
+ }));
105
+ }, [btnGroupPrefixCls, overlay, handleItemClick]);
106
+
107
+ var handleVisibleChange = function handleVisibleChange(visible) {
108
+ setOptionShow(visible);
109
+ onVisibleChange === null || onVisibleChange === void 0 ? void 0 : onVisibleChange(visible);
110
+ };
111
+
112
+ var popperProps = _extends(_extends({
113
+ placement: 'bottomLeft',
114
+ trigger: 'click'
115
+ }, buttonGoupProps), {
116
+ prefixCls: btnGroupPrefixCls,
117
+ defaultVisible: optionShow,
118
+ visible: optionShow,
119
+ onVisibleChange: handleVisibleChange,
120
+ getTriggerElement: function getTriggerElement(locatorNode) {
121
+ return isBsicType ? locatorNode : triggerRef.current;
122
+ }
123
+ });
124
+
125
+ return usePopper(renderTriggerButton(), renderContent(), popperProps);
126
+ };
127
+
128
+ var ButtonGroup = /*#__PURE__*/React.forwardRef(InternalButtonGroup);
129
+ ButtonGroup.displayName = 'ButtonGroup';
130
+ export default ButtonGroup;
@@ -1,3 +1,7 @@
1
- import Button from './button';
1
+ /// <reference types="react" />
2
+ import Dropdown from './group';
3
+ declare const Button: import("react").ForwardRefExoticComponent<import("./button").IButtonProps & import("react").RefAttributes<unknown>> & {
4
+ Dropdown: typeof Dropdown;
5
+ };
2
6
  export { ButtonType, IButtonProps } from './button';
3
7
  export default Button;
@@ -1,2 +1,5 @@
1
- import Button from './button';
1
+ import InternalButton from './button';
2
+ import Dropdown from './group';
3
+ var Button = InternalButton;
4
+ Button.Dropdown = Dropdown;
2
5
  export default Button;
@@ -145,24 +145,24 @@
145
145
  animation: fadeEffect var(--kd-c-button-motion-duration-fade, var(--kd-g-duration-slowly, 0.4s)) cubic-bezier(0, 0.4, 0.4, 1) forwards, waveEffect var(--kd-c-button-motion-duration-wave, var(--kd-g-duration-quickly, 0.2s)) cubic-bezier(0, 0.4, 0.4, 1) forwards;
146
146
  }
147
147
  .kd-btn-second {
148
- border-color: var(--kd-c-button-second-color-border, var(--kd-g-color-border-strong-3, rgba(217, 217, 217, 0.65)));
149
- background-color: var(--kd-c-button-second-color-background, var(--kd-g-color-background-3, rgba(255, 255, 255, 0.65)));
150
- color: var(--kd-c-button-second-color-text, var(--kd-g-color-text-secondary-3, rgba(102, 102, 102, 0.65)));
148
+ border-color: var(--kd-c-button-second-color-border, #D9D9D9);
149
+ background-color: var(--kd-c-button-second-color-background, transparent);
150
+ color: var(--kd-c-button-second-color-text, #212121);
151
151
  }
152
152
  .kd-btn-second:hover:not(.kd-btn-loading) {
153
153
  background-color: var(--kd-c-button-second-color-background-hover, var(--kd-g-color-white, #fff));
154
- border-color: var(--kd-c-button-second-color-border-hover, var(--kd-g-color-border-strong, #d9d9d9));
155
- color: var(--kd-c-button-second-color-text-hover, var(--kd-g-color-text-secondary, #666));
154
+ border-color: var(--kd-c-button-second-color-border-hover, var(--kd-g-color-theme, #5582f3));
155
+ color: var(--kd-c-button-second-color-text-hover, var(--kd-g-color-theme, #5582f3));
156
156
  }
157
157
  .kd-btn-second:active:not(.kd-btn-loading) {
158
158
  background-color: var(--kd-c-button-second-color-background-active, var(--kd-g-color-white, #fff));
159
- border-color: var(--kd-c-button-second-color-border-active, var(--kd-g-color-border-strong, #d9d9d9));
160
- color: var(--kd-c-button-second-color-text-active, var(--kd-g-color-text-secondary, #666));
159
+ border-color: var(--kd-c-button-second-color-border-active, var(--kd-g-color-theme-7, #375cca));
160
+ color: var(--kd-c-button-second-color-text-active, var(--kd-g-color-theme-7, #375cca));
161
161
  }
162
162
  .kd-btn-second:disabled {
163
- border-color: var(--kd-c-button-second-color-border-disabled, var(--kd-g-color-text-secondary-3, rgba(102, 102, 102, 0.65))) !important;
164
- background-color: var(--kd-c-button-second-color-background-disabled, var(--kd-g-color-background-3, rgba(255, 255, 255, 0.65))) !important;
165
- color: var(--kd-c-button-second-color-text-disabled, var(--kd-g-color-text-secondary-3, rgba(102, 102, 102, 0.65))) !important;
163
+ border-color: var(--kd-c-button-second-color-border-disabled, #D9D9D9) !important;
164
+ background-color: var(--kd-c-button-second-color-background-disabled, var(--kd-g-color-background-contain-disabled, #f5f5f5)) !important;
165
+ color: var(--kd-c-button-second-color-text-disabled, #B2B2B2) !important;
166
166
  }
167
167
  .kd-btn-primary {
168
168
  border-color: var(--kd-c-button-primary-color-border, var(--kd-g-color-theme, #5582f3));
@@ -182,22 +182,24 @@
182
182
  border-color: var(--kd-c-button-primary-color-border-disabled, var(--kd-g-color-theme-3, #e3eeff)) !important;
183
183
  }
184
184
  .kd-btn-ghost {
185
- border-color: var(--kd-c-button-ghost-color-border, var(--kd-g-color-border-strong, #d9d9d9));
185
+ border-color: var(--kd-c-button-ghost-color-border, var(--kd-g-color-theme-6, #5582f3));
186
186
  background-color: var(--kd-c-button-ghost-color-background, transparent);
187
- color: var(--kd-c-button-ghost-color-text, var(--kd-g-color-text-secondary, #666));
187
+ color: var(--kd-c-button-ghost-color-text, #5582F3);
188
188
  }
189
189
  .kd-btn-ghost:hover:not(.kd-btn-loading) {
190
- border-color: var(--kd-c-button-ghost-color-border-hover, var(--kd-g-color-theme, #5582f3));
191
- color: var(--kd-c-button-ghost-color-text-hover, var(--kd-g-color-theme, #5582f3));
190
+ background-color: var(--kd-c-button-ghost-color-background-hover, var(--kd-g-color-theme-5, #87adff));
191
+ border-color: var(--kd-c-button-ghost-color-border-hover, transparent);
192
+ color: var(--kd-c-button-ghost-color-text-hover, #ffffff);
192
193
  }
193
194
  .kd-btn-ghost:active:not(.kd-btn-loading) {
194
- border-color: var(--kd-c-button-ghost-color-border-hover, var(--kd-g-color-theme, #5582f3));
195
- color: var(--kd-c-button-ghost-color-text-active, var(--kd-g-color-theme-7, #375cca));
195
+ background-color: var(--kd-c-button-ghost-color-background-active, var(--kd-g-color-theme-7, #375cca));
196
+ border-color: var(--kd-c-button-ghost-color-border-hover, transparent);
197
+ color: var(--kd-c-button-ghost-color-text-active, #ffffff);
196
198
  }
197
199
  .kd-btn-ghost:disabled {
198
200
  background-color: var(--kd-c-button-ghost-color-background-disabled, var(--kd-g-color-background-contain-disabled, #f5f5f5)) !important;
199
- border-color: var(--kd-c-button-ghost-color-border-disabled, var(--kd-g-color-disabled, #b2b2b2)) !important;
200
- color: var(--kd-c-button-ghost-color-border-disabled, var(--kd-g-color-disabled, #b2b2b2)) !important;
201
+ border-color: var(--kd-c-button-ghost-color-border-disabled, #D9D9D9) !important;
202
+ color: var(--kd-c-button-ghost-color-text-disabled, #B2B2B2) !important;
201
203
  }
202
204
  .kd-btn-iconWrapper-left {
203
205
  display: -webkit-box;
@@ -236,6 +238,13 @@
236
238
  font-size: var(--kd-c-button-font-size-small, var(--kd-g-font-size-small, 12px));
237
239
  padding: var(--kd-c-button-spacing-padding-vertical-small, 3px) var(--kd-c-button-spacing-padding-horizontal-small, 8px);
238
240
  }
241
+ .kd-btn-size-small.kd-btn-icon-only {
242
+ font-size: var(--kd-c-button-icon-font-size-small, 14px);
243
+ padding: 0 var(--kd-c-button-icon-spacing-padding-horizontal, 4px);
244
+ }
245
+ .kd-btn-size-small .kd-btn-group-basic-icon {
246
+ font-size: var(--kd-c-button-icon-font-size-small, 14px);
247
+ }
239
248
  .kd-btn-size-middle {
240
249
  height: var(--kd-c-button-sizing-height-middle, 28px);
241
250
  min-width: var(--kd-c-button-sizing-min-width-middle, 60px);
@@ -243,6 +252,13 @@
243
252
  font-size: var(--kd-c-button-font-size-middle, var(--kd-g-font-size-small, 12px));
244
253
  padding: var(--kd-c-button-spacing-padding-vertical-middle, 5px) var(--kd-c-button-spacing-padding-horizontal-middle, 8px);
245
254
  }
255
+ .kd-btn-size-middle.kd-btn-icon-only {
256
+ font-size: var(--kd-c-button-icon-font-size-middle, 16px);
257
+ padding: 0 var(--kd-c-button-icon-spacing-padding-horizontal, 4px);
258
+ }
259
+ .kd-btn-size-middle .kd-btn-group-basic-icon {
260
+ font-size: var(--kd-c-button-icon-font-size-middle, 16px);
261
+ }
246
262
  .kd-btn-size-large {
247
263
  height: var(--kd-c-button-sizing-height-large, 32px);
248
264
  min-width: var(--kd-c-button-sizing-min-width-large, 80px);
@@ -250,6 +266,13 @@
250
266
  font-size: var(--kd-c-button-font-size-large, var(--kd-g-font-size-large, 16px));
251
267
  padding: var(--kd-c-button-spacing-padding-vertical-large, 6px) var(--kd-c-button-spacing-padding-horizontal-large, 8px);
252
268
  }
269
+ .kd-btn-size-large.kd-btn-icon-only {
270
+ font-size: var(--kd-c-button-icon-font-size-large, 18px);
271
+ padding: 0 var(--kd-c-button-icon-spacing-padding-horizontal, 4px);
272
+ }
273
+ .kd-btn-size-large .kd-btn-group-basic-icon {
274
+ font-size: var(--kd-c-button-icon-font-size-large, 18px);
275
+ }
253
276
  .kd-btn-shape-circle {
254
277
  border-radius: 50%;
255
278
  min-width: auto;
@@ -275,10 +298,13 @@
275
298
  .kd-btn-shape-round.kd-btn-size-large {
276
299
  border-radius: var(--kd-c-button-sizing-height-large, 32px);
277
300
  }
301
+ .kd-btn-shape-none {
302
+ border-radius: 0;
303
+ }
278
304
  .kd-btn-text {
279
305
  height: auto;
280
306
  width: auto;
281
- color: var(--kd-c-button-text-color-text, var(--kd-g-color-theme, #5582f3));
307
+ color: var(--kd-c-button-text-color-text, var(--kd-g-color-theme-6, #5582f3));
282
308
  padding: 0;
283
309
  min-width: auto;
284
310
  }
@@ -289,7 +315,7 @@
289
315
  color: var(--kd-c-button-text-color-text-active, var(--kd-g-color-theme-7, #375cca));
290
316
  }
291
317
  .kd-btn-text[disabled] {
292
- color: var(--kd-c-button-text-color-text-disabled, var(--kd-g-color-disabled, #b2b2b2)) !important;
318
+ color: var(--kd-c-button-text-color-text-disabled, var(--kd-g-color-theme-4, #b5cfff)) !important;
293
319
  }
294
320
  .kd-btn-no-border {
295
321
  border: none;
@@ -316,5 +342,75 @@
316
342
  width: 100%;
317
343
  }
318
344
  .kd-btn .btn-space {
319
- margin-left: 5px;
345
+ margin-left: 4px;
346
+ }
347
+ .kd-btn-group {
348
+ display: inline-block;
349
+ }
350
+ .kd-btn-group-basic .kd-btn {
351
+ padding-top: 0;
352
+ padding-bottom: 0;
353
+ }
354
+ .kd-btn-group-basic-icon {
355
+ margin-left: 4px;
356
+ }
357
+ .kd-btn-group-trigger .kd-btn-primary {
358
+ background: var(--kd-c-button-group-trigger-color-background, #4367c1);
359
+ }
360
+ .kd-btn-group-trigger .kd-btn-primary:hover {
361
+ background: var(--kd-c-button-group-trigger-color-background-hover, #4c74da);
362
+ border-color: var(--kd-c-button-group-trigger-color-background-hover, #4c74da);
363
+ }
364
+ .kd-btn-group-trigger .kd-btn-primary:active {
365
+ background: var(--kd-c-button-group-trigger-color-background-active, #3B5AA9);
366
+ }
367
+ .kd-btn-group-trigger .kd-btn-primary:disabled {
368
+ background: var(--kd-c-button-group-trigger-color-background-disabled, #95a4c8) !important;
369
+ }
370
+ .kd-btn-group-trigger .kd-btn {
371
+ margin-left: -1px;
372
+ }
373
+ .kd-btn-group .kd-btn-size-small,
374
+ .kd-btn-group .kd-btn-size-middle,
375
+ .kd-btn-group .kd-btn-size-large {
376
+ min-width: unset;
377
+ }
378
+ .kd-btn-group .kd-btn:first-child {
379
+ border-top-right-radius: 0;
380
+ border-bottom-right-radius: 0;
381
+ }
382
+ .kd-btn-group .kd-btn:last-child {
383
+ border-top-left-radius: 0;
384
+ border-bottom-left-radius: 0;
385
+ }
386
+ .kd-btn-group .kd-dropdown-menu {
387
+ padding: 0;
388
+ }
389
+ .kd-btn-group-dropdown {
390
+ -webkit-box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.2);
391
+ box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.2);
392
+ background: var(--kd-c-button-group-dropdown-color-background, #fff);
393
+ color: #333333;
394
+ min-width: var(--kd-c-button-group-dropdown-min-width, 80px);
395
+ }
396
+ .kd-btn-group-dropdown-item {
397
+ height: var(--kd-c-button--group-dropdown-item-height, 30px);
398
+ line-height: var(--kd-c-button--group-dropdown-item-height, 30px);
399
+ cursor: pointer;
400
+ padding: 0 var(--kd-c-button-group-dropdown-item-horizonta, 12px);
401
+ }
402
+ .kd-btn-group-dropdown-item:hover {
403
+ background: var(--kd-c-button-group-dropdown-item-color-background-hover, #F5F5F5);
404
+ }
405
+ .kd-btn-group-dropdown-item:not(:last-child) {
406
+ border-bottom: 1px solid var(--kd-c-button-group-dropdown-item-border-color, #E5E5E5);
407
+ }
408
+ .kd-btn-group.topLeft.hidden,
409
+ .kd-btn-group.bottomLeft.hidden,
410
+ .kd-btn-group.topRight.hidden,
411
+ .kd-btn-group.bottomRight.hidden {
412
+ opacity: 0;
413
+ visibility: hidden;
414
+ -webkit-transition: all calc(0.3s - 0.1s) cubic-bezier(0.4, 0, 0.6, 1);
415
+ transition: all calc(0.3s - 0.1s) cubic-bezier(0.4, 0, 0.6, 1);
320
416
  }