@kdcloudjs/kdesign 1.1.1 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (128) hide show
  1. package/CHANGELOG.md +60 -0
  2. package/dist/kdesign-complete.less +662 -572
  3. package/dist/kdesign.css +400 -316
  4. package/dist/kdesign.css.map +1 -1
  5. package/dist/kdesign.js +287 -40
  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 +4 -5
  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/checkbox/checkbox.js +3 -4
  26. package/es/checkbox/style/index.css +36 -33
  27. package/es/checkbox/style/index.less +25 -18
  28. package/es/checkbox/style/token.less +34 -35
  29. package/es/config-provider/compDefaultProps.d.ts +4 -0
  30. package/es/config-provider/compDefaultProps.js +4 -0
  31. package/es/date-picker/style/index.css +8 -8
  32. package/es/date-picker/style/index.less +8 -8
  33. package/es/date-picker/style/token.less +3 -21
  34. package/es/empty/defaultEmptyImg.js +5 -3
  35. package/es/empty/illustrationEmptyImg.js +6 -4
  36. package/es/icon/interface.js +1 -1
  37. package/es/image/preview.js +1 -1
  38. package/es/image/style/index.css +8 -8
  39. package/es/image/style/index.less +5 -5
  40. package/es/image/style/token.less +12 -25
  41. package/es/input/style/index.css +53 -50
  42. package/es/input/style/index.less +5 -4
  43. package/es/input/style/mixin.less +1 -0
  44. package/es/input/style/token.less +23 -20
  45. package/es/layout/style/index.css +1 -1
  46. package/es/layout/style/index.less +1 -1
  47. package/es/layout/style/token.less +5 -5
  48. package/es/menu/style/index.css +76 -114
  49. package/es/menu/style/index.less +66 -140
  50. package/es/menu/style/mixin.less +10 -1
  51. package/es/menu/style/token.less +9 -12
  52. package/es/menu/subMenu.js +2 -1
  53. package/es/pagination/pagination.js +4 -4
  54. package/es/pagination/style/index.css +70 -55
  55. package/es/pagination/style/index.less +61 -43
  56. package/es/pagination/style/token.less +4 -4
  57. package/es/radio/radio.js +21 -8
  58. package/es/rate/style/index.css +9 -9
  59. package/es/rate/style/token.less +6 -6
  60. package/es/select/style/index.css +1 -1
  61. package/es/select/style/token.less +1 -1
  62. package/es/stepper/style/index.css +1 -1
  63. package/es/stepper/style/token.less +1 -1
  64. package/es/style/icon/kdicon.css +225 -0
  65. package/es/style/icon/kdicon.woff +0 -0
  66. package/es/switch/style/index.css +11 -11
  67. package/es/switch/style/index.less +2 -2
  68. package/es/switch/style/token.less +7 -10
  69. package/lib/_utils/usePopper.js +4 -5
  70. package/lib/anchor/anchor.js +0 -6
  71. package/lib/anchor/style/index.css +5 -2
  72. package/lib/anchor/style/index.less +6 -2
  73. package/lib/anchor/style/token.less +2 -1
  74. package/lib/button/button.d.ts +1 -1
  75. package/lib/button/button.js +2 -2
  76. package/lib/button/group.d.ts +21 -0
  77. package/lib/button/group.js +166 -0
  78. package/lib/button/index.d.ts +5 -1
  79. package/lib/button/index.js +5 -1
  80. package/lib/button/style/index.css +117 -21
  81. package/lib/button/style/index.less +332 -192
  82. package/lib/button/style/token.less +41 -25
  83. package/lib/carousel/carousel.js +4 -0
  84. package/lib/checkbox/checkbox.js +3 -4
  85. package/lib/checkbox/style/index.css +36 -33
  86. package/lib/checkbox/style/index.less +25 -18
  87. package/lib/checkbox/style/token.less +34 -35
  88. package/lib/config-provider/compDefaultProps.d.ts +4 -0
  89. package/lib/config-provider/compDefaultProps.js +4 -0
  90. package/lib/date-picker/style/index.css +8 -8
  91. package/lib/date-picker/style/index.less +8 -8
  92. package/lib/date-picker/style/token.less +3 -21
  93. package/lib/empty/defaultEmptyImg.js +6 -3
  94. package/lib/empty/illustrationEmptyImg.js +7 -4
  95. package/lib/icon/interface.js +1 -1
  96. package/lib/image/preview.js +1 -1
  97. package/lib/image/style/index.css +8 -8
  98. package/lib/image/style/index.less +5 -5
  99. package/lib/image/style/token.less +12 -25
  100. package/lib/input/style/index.css +53 -50
  101. package/lib/input/style/index.less +5 -4
  102. package/lib/input/style/mixin.less +1 -0
  103. package/lib/input/style/token.less +23 -20
  104. package/lib/layout/style/index.css +1 -1
  105. package/lib/layout/style/index.less +1 -1
  106. package/lib/layout/style/token.less +5 -5
  107. package/lib/menu/style/index.css +76 -114
  108. package/lib/menu/style/index.less +66 -140
  109. package/lib/menu/style/mixin.less +10 -1
  110. package/lib/menu/style/token.less +9 -12
  111. package/lib/menu/subMenu.js +2 -1
  112. package/lib/pagination/pagination.js +4 -3
  113. package/lib/pagination/style/index.css +70 -55
  114. package/lib/pagination/style/index.less +61 -43
  115. package/lib/pagination/style/token.less +4 -4
  116. package/lib/radio/radio.js +21 -8
  117. package/lib/rate/style/index.css +9 -9
  118. package/lib/rate/style/token.less +6 -6
  119. package/lib/select/style/index.css +1 -1
  120. package/lib/select/style/token.less +1 -1
  121. package/lib/stepper/style/index.css +1 -1
  122. package/lib/stepper/style/token.less +1 -1
  123. package/lib/style/icon/kdicon.css +225 -0
  124. package/lib/style/icon/kdicon.woff +0 -0
  125. package/lib/switch/style/index.css +11 -11
  126. package/lib/switch/style/index.less +2 -2
  127. package/lib/switch/style/token.less +7 -10
  128. package/package.json +1 -1
@@ -123,7 +123,7 @@ function usePopper(locatorElement, popperElement, props) {
123
123
  _props$placement = props.placement,
124
124
  placement = _props$placement === void 0 ? 'top' : _props$placement,
125
125
  _props$gap = props.gap,
126
- defalutGap = _props$gap === void 0 ? 4 : _props$gap,
126
+ defaultGap = _props$gap === void 0 ? 4 : _props$gap,
127
127
  _props$scrollHidden = props.scrollHidden,
128
128
  scrollHidden = _props$scrollHidden === void 0 ? false : _props$scrollHidden,
129
129
  _props$mouseEnterDela = props.mouseEnterDelay,
@@ -172,7 +172,7 @@ function usePopper(locatorElement, popperElement, props) {
172
172
  top: 0,
173
173
  left: 0
174
174
  };
175
- var gap = defalutGap + (arrow ? 10 : 0);
175
+ var gap = defaultGap + (arrow ? 10 : 0);
176
176
 
177
177
  var _useState = useState(initPos),
178
178
  _useState2 = _slicedToArray(_useState, 2),
@@ -434,8 +434,8 @@ function usePopper(locatorElement, popperElement, props) {
434
434
  };
435
435
  var popperNode = popperRef.current;
436
436
  var locatorNode = locatorRef.current;
437
- useResizeObserver(popperNode, alignPopper);
438
- useResizeObserver(locatorNode, alignPopper);
437
+ useResizeObserver(popperNode || document.body, alignPopper);
438
+ useResizeObserver(locatorNode || document.body, alignPopper);
439
439
  var showPopper = useCallback(function (evType) {
440
440
  if (!disabled) {
441
441
  !exist && setExist(true);
@@ -457,7 +457,6 @@ function usePopper(locatorElement, popperElement, props) {
457
457
  }
458
458
  }, [disabled, exist, onTrigger, visible]);
459
459
  var hidePopper = useCallback(function () {
460
- setEvType('');
461
460
  props.visible === undefined && setVisible(false);
462
461
  onVisibleChange && onVisibleChange(false);
463
462
  }, [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
  }