@kdcloudjs/kdesign 1.4.1 → 1.5.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 (82) hide show
  1. package/CHANGELOG.md +41 -0
  2. package/dist/kdesign-complete.less +60 -8
  3. package/dist/kdesign.css +58 -10
  4. package/dist/kdesign.css.map +1 -1
  5. package/dist/kdesign.js +595 -306
  6. package/dist/kdesign.js.map +1 -1
  7. package/dist/kdesign.min.css +3 -3
  8. package/dist/kdesign.min.js +8 -8
  9. package/dist/kdesign.min.js.map +1 -1
  10. package/es/anchor/anchor-link.js +0 -6
  11. package/es/anchor/anchor.js +102 -2
  12. package/es/avatar/avatar.js +3 -1
  13. package/es/carousel/carousel.js +4 -4
  14. package/es/config-provider/compDefaultProps.d.ts +0 -1
  15. package/es/config-provider/compDefaultProps.js +0 -1
  16. package/es/date-picker/range-picker.d.ts +1 -0
  17. package/es/date-picker/range-picker.js +2 -0
  18. package/es/date-picker/style/index.css +6 -3
  19. package/es/date-picker/style/index.less +7 -3
  20. package/es/dropdown/style/index.css +3 -0
  21. package/es/dropdown/style/index.less +4 -0
  22. package/es/dropdown/style/token.less +1 -0
  23. package/es/input/ClearableLabeledInput.js +3 -4
  24. package/es/input/style/index.css +13 -0
  25. package/es/input/style/index.less +10 -0
  26. package/es/input/style/mixin.less +6 -1
  27. package/es/menu/menu.d.ts +1 -0
  28. package/es/menu/menu.js +7 -1
  29. package/es/radio/radio.js +6 -1
  30. package/es/select/select.js +1 -1
  31. package/es/select/style/index.css +5 -5
  32. package/es/select/style/index.less +1 -1
  33. package/es/select/style/token.less +3 -2
  34. package/es/table/table.js +8 -2
  35. package/es/tree/style/index.css +30 -1
  36. package/es/tree/style/index.less +25 -1
  37. package/es/tree/style/token.less +3 -0
  38. package/es/tree/tree.d.ts +2 -0
  39. package/es/tree/tree.js +77 -12
  40. package/es/tree/treeHooks.d.ts +1 -1
  41. package/es/tree/treeHooks.js +3 -3
  42. package/es/tree/treeNode.d.ts +1 -0
  43. package/es/tree/treeNode.js +11 -8
  44. package/es/tree/utils/treeUtils.d.ts +4 -2
  45. package/es/tree/utils/treeUtils.js +64 -10
  46. package/lib/anchor/anchor-link.js +0 -6
  47. package/lib/anchor/anchor.js +102 -2
  48. package/lib/avatar/avatar.js +3 -1
  49. package/lib/carousel/carousel.js +4 -4
  50. package/lib/config-provider/compDefaultProps.d.ts +0 -1
  51. package/lib/config-provider/compDefaultProps.js +0 -1
  52. package/lib/date-picker/range-picker.d.ts +1 -0
  53. package/lib/date-picker/range-picker.js +2 -0
  54. package/lib/date-picker/style/index.css +6 -3
  55. package/lib/date-picker/style/index.less +7 -3
  56. package/lib/dropdown/style/index.css +3 -0
  57. package/lib/dropdown/style/index.less +4 -0
  58. package/lib/dropdown/style/token.less +1 -0
  59. package/lib/input/ClearableLabeledInput.js +3 -4
  60. package/lib/input/style/index.css +13 -0
  61. package/lib/input/style/index.less +10 -0
  62. package/lib/input/style/mixin.less +6 -1
  63. package/lib/menu/menu.d.ts +1 -0
  64. package/lib/menu/menu.js +7 -1
  65. package/lib/radio/radio.js +7 -1
  66. package/lib/select/select.js +1 -1
  67. package/lib/select/style/index.css +5 -5
  68. package/lib/select/style/index.less +1 -1
  69. package/lib/select/style/token.less +3 -2
  70. package/lib/table/table.js +8 -2
  71. package/lib/tree/style/index.css +30 -1
  72. package/lib/tree/style/index.less +25 -1
  73. package/lib/tree/style/token.less +3 -0
  74. package/lib/tree/tree.d.ts +2 -0
  75. package/lib/tree/tree.js +79 -11
  76. package/lib/tree/treeHooks.d.ts +1 -1
  77. package/lib/tree/treeHooks.js +3 -3
  78. package/lib/tree/treeNode.d.ts +1 -0
  79. package/lib/tree/treeNode.js +11 -8
  80. package/lib/tree/utils/treeUtils.d.ts +4 -2
  81. package/lib/tree/utils/treeUtils.js +71 -13
  82. package/package.json +2 -2
@@ -41,12 +41,6 @@ var AnchorLink = function AnchorLink(props) {
41
41
  }, [href, registerLink, prevHref]);
42
42
 
43
43
  var handleClick = function handleClick(e) {
44
- var anchorElement = document.getElementById(href.replace('#', ''));
45
-
46
- if (anchorElement) {
47
- anchorElement.scrollIntoView();
48
- }
49
-
50
44
  onClick === null || onClick === void 0 ? void 0 : onClick(e, {
51
45
  title: title,
52
46
  href: href
@@ -43,6 +43,85 @@ function getOffsetTop(element, container) {
43
43
  return rect.top;
44
44
  }
45
45
 
46
+ function isWindow(obj) {
47
+ return obj !== null && obj !== undefined && obj === obj.window;
48
+ }
49
+
50
+ function getScroll(target, top) {
51
+ var _a;
52
+
53
+ if (typeof window === 'undefined') {
54
+ return 0;
55
+ }
56
+
57
+ var method = top ? 'scrollTop' : 'scrollLeft';
58
+ var result = 0;
59
+
60
+ if (isWindow(target)) {
61
+ result = target[top ? 'pageYOffset' : 'pageXOffset'];
62
+ } else if (target instanceof Document) {
63
+ result = target.documentElement[method];
64
+ } else if (target) {
65
+ result = target[method];
66
+ }
67
+
68
+ if (target && !isWindow(target) && typeof result !== 'number') {
69
+ result = (_a = (target.ownerDocument || target).documentElement) === null || _a === void 0 ? void 0 : _a[method];
70
+ }
71
+
72
+ return result;
73
+ }
74
+
75
+ function easeInOutCubic(t, b, c, d) {
76
+ var cc = c - b;
77
+ t /= d / 2;
78
+
79
+ if (t < 1) {
80
+ return cc / 2 * t * t * t + b;
81
+ }
82
+
83
+ return cc / 2 * ((t -= 2) * t * t + 2) + b;
84
+ }
85
+
86
+ function scrollTo(y) {
87
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
88
+ var _options$getContainer = options.getContainer,
89
+ getContainer = _options$getContainer === void 0 ? function () {
90
+ return window;
91
+ } : _options$getContainer,
92
+ callback = options.callback,
93
+ _options$duration = options.duration,
94
+ duration = _options$duration === void 0 ? 450 : _options$duration;
95
+ var container = getContainer();
96
+ var scrollTop = getScroll(container, true);
97
+ var startTime = Date.now();
98
+
99
+ var frameFunc = function frameFunc() {
100
+ var timestamp = Date.now();
101
+ var time = timestamp - startTime;
102
+ var nextScrollTop = easeInOutCubic(time > duration ? duration : time, scrollTop, y, duration);
103
+
104
+ if (isWindow(container)) {
105
+ ;
106
+ container.scrollTo(window.pageXOffset, nextScrollTop);
107
+ } else if (container instanceof HTMLDocument || container.constructor.name === 'HTMLDocument') {
108
+ ;
109
+ container.documentElement.scrollTop = nextScrollTop;
110
+ } else {
111
+ ;
112
+ container.scrollTop = nextScrollTop;
113
+ }
114
+
115
+ if (time < duration) {
116
+ window.requestAnimationFrame(frameFunc);
117
+ } else if (typeof callback === 'function') {
118
+ callback();
119
+ }
120
+ };
121
+
122
+ window.requestAnimationFrame(frameFunc);
123
+ }
124
+
46
125
  var InternalAnchor = function InternalAnchor(props, ref) {
47
126
  var _a;
48
127
 
@@ -61,6 +140,7 @@ var InternalAnchor = function InternalAnchor(props, ref) {
61
140
  getCurrentAnchor = anchorProps.getCurrentAnchor,
62
141
  _anchorProps$offsetTo = anchorProps.offsetTop,
63
142
  offsetTop = _anchorProps$offsetTo === void 0 ? 0 : _anchorProps$offsetTo,
143
+ targetOffset = anchorProps.targetOffset,
64
144
  getContainer = anchorProps.getContainer,
65
145
  _anchorProps$bounds = anchorProps.bounds,
66
146
  bounds = _anchorProps$bounds === void 0 ? 5 : _anchorProps$bounds,
@@ -265,6 +345,26 @@ var InternalAnchor = function InternalAnchor(props, ref) {
265
345
 
266
346
  var handleScrollTo = function handleScrollTo(link) {
267
347
  setCurrentActiveLink(link);
348
+ var container = getScrollContainer();
349
+ var scrollTop = getScroll(container, true);
350
+ var sharpLinkMatch = sharpMatcherRegx.exec(link);
351
+
352
+ if (!sharpLinkMatch) {
353
+ return;
354
+ }
355
+
356
+ var targetElement = document.getElementById(sharpLinkMatch[1]);
357
+
358
+ if (!targetElement) {
359
+ return;
360
+ }
361
+
362
+ var eleOffsetTop = getOffsetTop(targetElement, container);
363
+ var y = scrollTop + eleOffsetTop;
364
+ y -= targetOffset !== undefined ? targetOffset : offsetTop || 0;
365
+ scrollTo(y, {
366
+ getContainer: getScrollContainer
367
+ });
268
368
  };
269
369
 
270
370
  var setCurrentActiveLink = useCallback(function (link) {
@@ -289,9 +389,9 @@ var InternalAnchor = function InternalAnchor(props, ref) {
289
389
  }
290
390
  }
291
391
 
292
- var currentActiveLink = getAnchor(offsetTop || 0, bounds);
392
+ var currentActiveLink = getAnchor(targetOffset !== undefined ? targetOffset : offsetTop || 0, bounds);
293
393
  currentActiveLink && setCurrentActiveLink(currentActiveLink);
294
- }, [affix, setFixedTop, offsetTop, bounds, getAnchor, setCurrentActiveLink, type, getScrollContainer, anchorRef]);
394
+ }, [affix, setFixedTop, offsetTop, bounds, getAnchor, setCurrentActiveLink, type, getScrollContainer, anchorRef, targetOffset]);
295
395
  useEffect(function () {
296
396
  getScrollContainer().addEventListener('scroll', handleScroll);
297
397
  handleScroll();
@@ -32,7 +32,8 @@ var InternalAvatar = function InternalAvatar(props, ref) {
32
32
  alt = avatarProps.alt,
33
33
  children = avatarProps.children,
34
34
  gap = avatarProps.gap,
35
- disabled = avatarProps.disabled;
35
+ disabled = avatarProps.disabled,
36
+ srcSet = avatarProps.srcSet;
36
37
  devWarning(AvatarSizes.indexOf(size) === -1 && typeof size !== 'number', 'avatar', "cannot found avatar type '".concat(size, "'"));
37
38
  devWarning(AvatarShapes.indexOf(shape) === -1, 'avatar', "cannot found avatar shape '".concat(shape, "'"));
38
39
 
@@ -106,6 +107,7 @@ var InternalAvatar = function InternalAvatar(props, ref) {
106
107
  if (typeof src === 'string' && isImgExist) {
107
108
  childrenToRender = /*#__PURE__*/React.createElement("img", {
108
109
  src: src,
110
+ srcSet: srcSet,
109
111
  draggable: draggable,
110
112
  onError: handleImgLoadError,
111
113
  alt: alt
@@ -91,7 +91,7 @@ var InternalCarousel = function InternalCarousel(props, ref) {
91
91
  setCurrentIndex(index);
92
92
  setNeedAnimation(needAnimation);
93
93
  }
94
- }, [isFadeEffect, beforeChange, currentIndex, children.length]);
94
+ }, [isFadeEffect, beforeChange, currentIndex, children === null || children === void 0 ? void 0 : children.length]);
95
95
  var next = React.useCallback(function () {
96
96
  jumpTo(currentIndex + 1, true);
97
97
  }, [currentIndex, jumpTo]);
@@ -181,7 +181,7 @@ var InternalCarousel = function InternalCarousel(props, ref) {
181
181
  setNeedAnimation(true);
182
182
  }, [beforeChange, currentIndex]);
183
183
  var handleTransitionEnd = React.useCallback(function () {
184
- if (!autoplay) return;
184
+ if (!autoplay || !(children === null || children === void 0 ? void 0 : children.length)) return;
185
185
  var childrenL = children.length;
186
186
  var newCurrentIndex = currentIndex;
187
187
 
@@ -198,7 +198,7 @@ var InternalCarousel = function InternalCarousel(props, ref) {
198
198
  afterChange && afterChange(currentIndex);
199
199
  setCurrentIndex(newCurrentIndex);
200
200
  isScrollxEffect && setNeedAnimation(false);
201
- }, [currentIndex, children.length, afterChange, isScrollxEffect, autoplay]);
201
+ }, [currentIndex, children === null || children === void 0 ? void 0 : children.length, afterChange, isScrollxEffect, autoplay]);
202
202
  var handleMouseEnter = React.useCallback(function () {
203
203
  autoplayRef.current && clearTimeout(autoplayRef.current);
204
204
  }, []);
@@ -246,7 +246,7 @@ var InternalCarousel = function InternalCarousel(props, ref) {
246
246
  style: style,
247
247
  onMouseEnter: handleMouseEnter,
248
248
  onMouseLeave: handleMouseLeave
249
- }, renderDisplayList(), showDot() && /*#__PURE__*/React.createElement(Slidebar, {
249
+ }, (children === null || children === void 0 ? void 0 : children.length) && renderDisplayList(), (children === null || children === void 0 ? void 0 : children.length) && showDot() && /*#__PURE__*/React.createElement(Slidebar, {
250
250
  number: children.length,
251
251
  currentIndex: currentIndex,
252
252
  dotsClassName: dots,
@@ -210,7 +210,6 @@ declare const compDefaultProps: {
210
210
  strokeWidth: number;
211
211
  };
212
212
  Radio: {
213
- checked: boolean;
214
213
  defaultChecked: boolean;
215
214
  disabled: boolean;
216
215
  };
@@ -217,7 +217,6 @@ var compDefaultProps = {
217
217
  strokeWidth: 4
218
218
  },
219
219
  Radio: {
220
- checked: false,
221
220
  defaultChecked: false,
222
221
  disabled: false
223
222
  },
@@ -17,6 +17,7 @@ export interface RangePickerSharedProps {
17
17
  ranges?: Record<string, DateType[] | (() => DateType[])>;
18
18
  separator?: React.ReactNode;
19
19
  allowEmpty?: [boolean, boolean];
20
+ suffixIcon?: React.ReactNode;
20
21
  mode?: [PanelMode, PanelMode];
21
22
  onChange?: (values: RangeValue, formatString: [string | null, string | null]) => void;
22
23
  onCalendarChange?: (values: RangeValue, formatString: [string | null, string | null], info: RangeInfo) => void;
@@ -104,6 +104,7 @@ function DatePicker(props) {
104
104
  minuteStep = _datePickerProps$minu === void 0 ? 1 : _datePickerProps$minu,
105
105
  _datePickerProps$seco = datePickerProps.secondStep,
106
106
  secondStep = _datePickerProps$seco === void 0 ? 1 : _datePickerProps$seco,
107
+ suffixIcon = datePickerProps.suffixIcon,
107
108
  renderExtraFooter = datePickerProps.renderExtraFooter,
108
109
  disabledHours = datePickerProps.disabledHours,
109
110
  disabledMinutes = datePickerProps.disabledMinutes,
@@ -675,6 +676,7 @@ function DatePicker(props) {
675
676
  startOpen: startOpen,
676
677
  endOpen: endOpen,
677
678
  needConfirmButton: needConfirmButton,
679
+ suffixIcon: suffixIcon,
678
680
  format: _format,
679
681
  open: mergedOpen,
680
682
  readOnly: inputReadOnly,
@@ -128,7 +128,7 @@
128
128
  right: calc(var(--kd-c-date-picker-small-font-size, var(--kd-g-font-size-small, 12px)) + 1px);
129
129
  }
130
130
  .kd-date-picker-small.kd-date-picker-range .kd-date-picker-clear {
131
- right: calc(var(--kd-c-date-picker-small-font-size, var(--kd-g-font-size-small, 12px)) + 9px);
131
+ right: calc(var(--kd-c-date-picker-small-font-size, var(--kd-g-font-size-small, 12px)) + 12px);
132
132
  }
133
133
  .kd-date-picker-large {
134
134
  height: var(--kd-c-date-picker-large-sizing-height, 36px);
@@ -158,7 +158,7 @@
158
158
  right: calc(var(--kd-c-date-picker-middle-font-size, var(--kd-g-font-size-middle, 14px)) + 1px);
159
159
  }
160
160
  .kd-date-picker-middle.kd-date-picker-range .kd-date-picker-clear {
161
- right: calc(var(--kd-c-date-picker-middle-font-size, var(--kd-g-font-size-middle, 14px)) + 9px);
161
+ right: calc(var(--kd-c-date-picker-middle-font-size, var(--kd-g-font-size-middle, 14px)) + 11px);
162
162
  }
163
163
  .kd-date-picker-borderless {
164
164
  border: 0;
@@ -276,7 +276,7 @@
276
276
  -ms-flex-item-align: center;
277
277
  align-self: center;
278
278
  margin-left: var(--kd-c-date-picker-suffix-spacing-margin-left, 10px);
279
- color: var(--kd-c-date-picker-icon-color, var(--kd-g-color-disabled, #b2b2b2));
279
+ color: var(--kd-c-date-picker-input-color, var(--kd-g-color-text-secondary, #666));
280
280
  line-height: 1;
281
281
  pointer-events: none;
282
282
  }
@@ -286,6 +286,9 @@
286
286
  .kd-date-picker:hover .kd-date-picker-clear {
287
287
  opacity: 1;
288
288
  }
289
+ .kd-date-picker:hover .kd-date-picker-suffix {
290
+ color: var(--kd-c-date-picker-color-background-checked, var(--kd-g-color-theme, #5582f3));
291
+ }
289
292
  .kd-date-picker-clear {
290
293
  position: absolute;
291
294
  top: 50%;
@@ -27,7 +27,7 @@
27
27
  }
28
28
 
29
29
  &.@{datePicker-prefix-cls}-range .@{datePicker-prefix-cls}-clear {
30
- right: calc(@date-small-font-size + 9px);
30
+ right: calc(@date-small-font-size + 12px);
31
31
  }
32
32
  }
33
33
 
@@ -59,7 +59,7 @@
59
59
  }
60
60
 
61
61
  &.@{datePicker-prefix-cls}-range .@{datePicker-prefix-cls}-clear {
62
- right: calc(@date-middle-font-size + 9px);
62
+ right: calc(@date-middle-font-size + 11px);
63
63
  }
64
64
  }
65
65
 
@@ -131,7 +131,7 @@
131
131
  &-suffix {
132
132
  align-self: center;
133
133
  margin-left: @date-suffix-spacing-margin-left;
134
- color: @date-icon-color;
134
+ color: @date-input-color;
135
135
  line-height: 1;
136
136
  pointer-events: none;
137
137
 
@@ -144,6 +144,10 @@
144
144
  .@{datePicker-prefix-cls}-clear {
145
145
  opacity: 1;
146
146
  }
147
+
148
+ .@{datePicker-prefix-cls}-suffix {
149
+ color: @date-color-background-checked;
150
+ }
147
151
  }
148
152
 
149
153
  &-clear {
@@ -229,6 +229,9 @@
229
229
  .kd-dropdown-menu-item:not(.disabled):hover {
230
230
  background-color: var(--kd-c-dropdown-item-color-background-hover, var(--kd-g-color-hover, #f5f5f5));
231
231
  }
232
+ .kd-dropdown-menu-item:not(.disabled):hover > a {
233
+ color: var(--kd-c-dropdown-item-color-text-hover, var(--kd-g-color-text-primary, #212121));
234
+ }
232
235
  .kd-dropdown-menu-item:not(.disabled):active,
233
236
  .kd-dropdown-menu-item:not(.disabled).selected {
234
237
  color: var(--kd-g-color-theme, #5582f3);
@@ -72,6 +72,10 @@
72
72
  transition: background-color @duration-promptly;
73
73
  &:not(.disabled):hover {
74
74
  background-color: @dropdown-item-hover-bg-color;
75
+
76
+ > a {
77
+ color: @dropdown-item-hover-color-text;
78
+ }
75
79
  }
76
80
 
77
81
  &:not(.disabled):active,
@@ -8,6 +8,7 @@
8
8
  @dropdown-item-color-disabled: var(~'@{dropdown-custom-prefix}-item-color-text-disabled', @color-disabled);
9
9
  @dropdown-item-color-text-danger: var(~'@{dropdown-custom-prefix}-item-color-text-danger', @color-error);
10
10
  @dropdown-item-color-background-danger-hover: var(~'@{dropdown-custom-prefix}-item-color-background-danger-hover', @color-error);
11
+ @dropdown-item-hover-color-text: var(~'@{dropdown-custom-prefix}-item-color-text-hover', @color-text-primary);
11
12
  @dropdown-divided-color-bg: var(~'@{dropdown-custom-prefix}-divided-color-background', @color-border-weak);
12
13
  @dropdown-color: var(~'@{dropdown-custom-prefix}-menu-item-color-text', @color-text-primary);
13
14
 
@@ -52,7 +52,7 @@ var ClearableInput = function ClearableInput(props) {
52
52
 
53
53
  return /*#__PURE__*/React.createElement("span", {
54
54
  className: "".concat(prefixCls, "-suffix")
55
- }, renderClearIcon(), suffix);
55
+ }, !disabled && renderClearIcon(), suffix);
56
56
  };
57
57
 
58
58
  var renderInputWithFixNode = function renderInputWithFixNode(originElement) {
@@ -76,7 +76,7 @@ var ClearableInput = function ClearableInput(props) {
76
76
  };
77
77
 
78
78
  var renderInputWithLabel = function renderInputWithLabel(originElement) {
79
- var _classNames4, _context2, _classNames5, _context3;
79
+ var _classNames4, _context2, _classNames5;
80
80
 
81
81
  if (!addonBefore && !addonAfter) {
82
82
  return originElement;
@@ -96,8 +96,7 @@ var ClearableInput = function ClearableInput(props) {
96
96
  className: inputGroupClasses,
97
97
  style: style
98
98
  }, addonBeforeNode, /*#__PURE__*/React.cloneElement(originElement, {
99
- style: null,
100
- className: _concatInstanceProperty(_context3 = "".concat(originElement.props.className || '', " ")).call(_context3, prefixCls, "-wrapper")
99
+ style: null
101
100
  }), addonAfterNode));
102
101
  };
103
102
 
@@ -356,6 +356,15 @@ textarea {
356
356
  .kd-input-wrapper-focused {
357
357
  border-color: var(--kd-c-input-color-border-focused, var(--kd-g-color-theme, #5582f3));
358
358
  }
359
+ .kd-input-wrapper-focused .kd-input-clear-icon,
360
+ .kd-input-wrapper-focused .kd-input-textarea-clear-icon {
361
+ color: var(--kd-c-input-color-border-focused, var(--kd-g-color-theme, #5582f3));
362
+ }
363
+ .kd-input-wrapper-disabled {
364
+ background-color: var(--kd-c-input-color-background-disabled, var(--kd-g-color-background-contain-disabled, #f5f5f5));
365
+ border-color: var(--kd-c-input-color-border-disabled, var(--kd-g-color-border-strong, #d9d9d9));
366
+ cursor: not-allowed;
367
+ }
359
368
  .kd-input-wrapper-textarea {
360
369
  width: 100%;
361
370
  min-width: 0;
@@ -404,6 +413,10 @@ textarea {
404
413
  .kd-input-clear-icon,
405
414
  .kd-input-textarea-clear-icon {
406
415
  cursor: pointer;
416
+ color: var(--kd-c-input-color-border, #999);
417
+ }
418
+ .kd-input-clear-icon:hover,
419
+ .kd-input-textarea-clear-icon:hover {
407
420
  color: var(--kd-c-input-color-border-focused, var(--kd-g-color-theme, #5582f3));
408
421
  }
409
422
  .kd-input-clear-icon i,
@@ -121,7 +121,17 @@ textarea {
121
121
 
122
122
  &-focused {
123
123
  border-color: @input-border-color-focused;
124
+
125
+ .@{input-prefix-cls}-clear-icon, .@{input-prefix-cls}-textarea-clear-icon {
126
+ color: @input-border-color-focused;
127
+ }
124
128
  }
129
+
130
+ &-disabled {
131
+ background-color: @input-background-color-disabled-inner;
132
+ border-color: @input-border-color-disabled-inner;
133
+ cursor: not-allowed;
134
+ }
125
135
  }
126
136
  &-wrapper-textarea {
127
137
  .input(@input-prefix-cls);
@@ -47,7 +47,12 @@
47
47
 
48
48
  .input-clear-icon() {
49
49
  cursor: pointer;
50
- color: @input-border-color-focused;
50
+ color: @input-color-border;
51
+
52
+ &:hover {
53
+ color: @input-border-color-focused;
54
+ }
55
+
51
56
  i {
52
57
  vertical-align: middle;
53
58
  font-size: 12px !important;
package/es/menu/menu.d.ts CHANGED
@@ -15,6 +15,7 @@ export interface MenuProps extends React.HTMLAttributes<HTMLElement> {
15
15
  additionalTools?: React.ReactNode;
16
16
  onOpenChange?: SubMenuChangeEventHandler;
17
17
  theme?: MenuTheme;
18
+ accordion?: boolean;
18
19
  }
19
20
  interface MenuType extends React.FC<MenuProps> {
20
21
  Item: typeof MenuItem;
package/es/menu/menu.js CHANGED
@@ -60,10 +60,12 @@ var Menu = function Menu(props) {
60
60
  className = _b.className,
61
61
  theme = _b.theme,
62
62
  collapsed = _b.collapsed,
63
- restProps = __rest(_b, ["prefixCls", "mode", "inlineIndent", "forceSubMenuRender", "additionalTools", "onClick", "onOpenChange", "children", "className", "theme", "collapsed"]);
63
+ accordion = _b.accordion,
64
+ restProps = __rest(_b, ["prefixCls", "mode", "inlineIndent", "forceSubMenuRender", "additionalTools", "onClick", "onOpenChange", "children", "className", "theme", "collapsed", "accordion"]);
64
65
 
65
66
  var prefixCls = getPrefixCls(pkgPrefixCls, 'menu', customPrefixcls);
66
67
  devWarning(['inline', 'vertical', undefined].indexOf(mode) === -1, 'menu', "cannot found menu mode '".concat(mode, "'"));
68
+ devWarning(mode !== 'inline' && accordion !== undefined, 'menu', "'accordion' is valid only in mode='inline'");
67
69
 
68
70
  var _React$useState = React.useState(''),
69
71
  _React$useState2 = _slicedToArray(_React$useState, 2),
@@ -137,6 +139,10 @@ var Menu = function Menu(props) {
137
139
  if (clean) {
138
140
  openSubMenuSet.clear();
139
141
  } else {
142
+ if (mode === 'inline' && accordion) {
143
+ openSubMenuSet.clear();
144
+ }
145
+
140
146
  if (isAdd) {
141
147
  openSubMenuSet.add(openKey);
142
148
  } else {
package/es/radio/radio.js CHANGED
@@ -18,6 +18,7 @@ var __rest = this && this.__rest || function (s, e) {
18
18
 
19
19
  import React, { useEffect } from 'react';
20
20
  import classNames from 'classnames';
21
+ import isBoolean from 'lodash/isBoolean';
21
22
  import ConfigContext from '../config-provider/ConfigContext';
22
23
  import { getCompProps } from '../_utils';
23
24
  import RadioGroupContext from './context';
@@ -46,13 +47,17 @@ var InternalRadio = function InternalRadio(props, ref) {
46
47
  restProps = __rest(_a, ["style", "checked", "children", "className", "radioType", "defaultChecked", "prefixCls"]); // 属性需要合并一遍用户定义的默认属性
47
48
 
48
49
 
50
+ var getChecked = function getChecked() {
51
+ return isBoolean(checked) ? checked : defaultChecked;
52
+ };
53
+
49
54
  var getPrefix = function getPrefix(radioType) {
50
55
  return "radio".concat(radioType === 'square' ? "-".concat(radioType) : '');
51
56
  };
52
57
 
53
58
  var radioPrefixCls = getPrefixCls === null || getPrefixCls === void 0 ? void 0 : getPrefixCls(prefixCls, getPrefix(radioType), customPrefixcls); // 样式前缀
54
59
 
55
- var _React$useState = React.useState(checked || defaultChecked),
60
+ var _React$useState = React.useState(getChecked()),
56
61
  _React$useState2 = _slicedToArray(_React$useState, 2),
57
62
  isChecked = _React$useState2[0],
58
63
  setIsChecked = _React$useState2[1];
@@ -448,7 +448,7 @@ var InternalSelect = function InternalSelect(props, ref) {
448
448
  var selectedVal = multipleRef.current.selectedVal; // 选择器下拉icon样式
449
449
 
450
450
  var arrowIconCls = classNames((_classNames8 = {}, _defineProperty(_classNames8, "".concat(selectPrefixCls, "-icon-arrow"), true), _defineProperty(_classNames8, "".concat(selectPrefixCls, "-icon-arrow-up"), optionShow), _defineProperty(_classNames8, "".concat(selectPrefixCls, "-icon-arrow-down"), !optionShow), _defineProperty(_classNames8, "".concat(selectPrefixCls, "-icon-arrow-focus"), optionShow), _classNames8));
451
- var iconShow = allowClear && (isMultiple ? mulOptions.length > 0 : selectedVal);
451
+ var iconShow = allowClear && !disabled && (isMultiple ? mulOptions.length > 0 : selectedVal);
452
452
  var clearIconCls = classNames(_defineProperty({}, "".concat(selectPrefixCls, "-icon-clear"), true));
453
453
  return /*#__PURE__*/React.createElement(React.Fragment, null, iconShow && /*#__PURE__*/React.createElement("span", {
454
454
  onClick: handleReset,
@@ -428,7 +428,7 @@
428
428
  .kd-select-item-option-disabled {
429
429
  color: var(--kd-c-select-item-color-text-disabled, var(--kd-g-color-disabled, #b2b2b2));
430
430
  cursor: not-allowed;
431
- background-color: var(--kd-c-select-item-color-background-disabled, var(--kd-g-color-background-contain-disabled, #f5f5f5));
431
+ background-color: var(--kd-c-select-item-color-background-disabled, #fff);
432
432
  }
433
433
  .kd-select-size-small {
434
434
  min-height: var(--kd-c-select-sizing-height-small, 24px);
@@ -472,7 +472,7 @@
472
472
  }
473
473
  .kd-select-single-disabled {
474
474
  background-color: var(--kd-c-select-color-background-disabled, #f5f5f5);
475
- color: var(--kd-c-select-color-text-disabled, #212121);
475
+ color: var(--kd-c-select-color-text-disabled, var(--kd-g-color-disabled, #b2b2b2));
476
476
  }
477
477
  .kd-select-single-disabled:hover {
478
478
  cursor: not-allowed;
@@ -484,13 +484,13 @@
484
484
  opacity: 1;
485
485
  }
486
486
  .kd-select-single-text {
487
- color: #666;
487
+ color: var(--kd-c-select-single-color-text, var(--kd-g-color-text-primary, #212121));
488
488
  overflow: hidden;
489
489
  white-space: nowrap;
490
490
  text-overflow: ellipsis;
491
491
  }
492
492
  .kd-select-single-disabled-text {
493
- color: var(--kd-c-select-color-text-disabled, #212121);
493
+ color: var(--kd-c-select-color-text-disabled, var(--kd-g-color-disabled, #b2b2b2));
494
494
  }
495
495
  .kd-select .kd-select-selection-item {
496
496
  display: -webkit-inline-box;
@@ -564,7 +564,7 @@
564
564
  .kd-select-multiple-disabled {
565
565
  cursor: not-allowed;
566
566
  background-color: var(--kd-c-select-color-background-disabled, #f5f5f5);
567
- color: var(--kd-c-select-color-text-disabled, #212121);
567
+ color: var(--kd-c-select-color-text-disabled, var(--kd-g-color-disabled, #b2b2b2));
568
568
  }
569
569
  .kd-select-multiple-disabled .kd-select-suffix {
570
570
  color: var(--kd-c-select-arrow-icon-color-text-disabled, #b2b2b2);
@@ -234,7 +234,7 @@
234
234
  opacity: 1;
235
235
  }
236
236
  &-text {
237
- color: #666;
237
+ color: @select-single-color-text;
238
238
  .over();
239
239
  }
240
240
  &-disabled-text {
@@ -5,7 +5,7 @@
5
5
 
6
6
  // color
7
7
  @select-dropdown-bg: var(~'@{select-custom-prefix}-dropdown-color-background', @color-background);
8
- @select-disabled-option-bg: var(~'@{select-custom-prefix}-item-color-background-disabled', @color-background-contain-disabled);
8
+ @select-disabled-option-bg: var(~'@{select-custom-prefix}-item-color-background-disabled', #fff);
9
9
  @select-item-active-bg: var(~'@{select-custom-prefix}-color-background', #f5f5f5);
10
10
  @select-item-selected-bg: var(~'@{select-custom-prefix}-color-background-selected', @color-theme-3);
11
11
  @select-g-color-border: var(~'@{select-custom-prefix}-color-border', @color-input);
@@ -18,8 +18,9 @@
18
18
  @select-footer-g-text-color-selected: var(~'@{select-custom-prefix}-footer-color-text-selected', #0e5fd8);
19
19
  @select-g-item-text-color-disabled: var(~'@{select-custom-prefix}-item-color-text-disabled', @color-disabled);
20
20
  @select-color-background-disabled: var(~'@{select-custom-prefix}-color-background-disabled', #f5f5f5);
21
- @select-color-text-disabled: var(~'@{select-custom-prefix}-color-text-disabled', #212121);
21
+ @select-color-text-disabled: var(~'@{select-custom-prefix}-color-text-disabled', @color-disabled);
22
22
  @select-arrow-icon-color-text-disabled: var(~'@{select-custom-prefix}-arrow-icon-color-text-disabled', #b2b2b2);
23
+ @select-single-color-text: var(~'@{select-custom-prefix}-single-color-text', @color-text-primary);
23
24
 
24
25
  // font
25
26
  @select-list-font-size: var(~'@{select-custom-prefix}-dropdown-font-size', 12px); // 下拉列表文字大小
package/es/table/table.js CHANGED
@@ -48,7 +48,10 @@ function Table(props) {
48
48
  getTableProps = props.getTableProps,
49
49
  contextMenu = props.contextMenu,
50
50
  rangeSelection = props.rangeSelection,
51
- cssVariables = props.cssVariables;
51
+ cssVariables = props.cssVariables,
52
+ stickyScrollHeight = props.stickyScrollHeight,
53
+ scrollbarWidth = props.scrollbarWidth,
54
+ scrollLoad = props.scrollLoad;
52
55
 
53
56
  var _useContext = useContext(ConfigContext),
54
57
  getPrefixCls = _useContext.getPrefixCls,
@@ -127,7 +130,10 @@ function Table(props) {
127
130
  hasHeader: hasHeader,
128
131
  useOuterBorder: useOuterBorder,
129
132
  defaultColumnWidth: defaultColumnWidth,
130
- cssVariables: cssVariables
133
+ cssVariables: cssVariables,
134
+ stickyScrollHeight: stickyScrollHeight,
135
+ scrollbarWidth: scrollbarWidth,
136
+ scrollLoad: scrollLoad
131
137
  }));
132
138
  }
133
139
 
@@ -221,6 +221,19 @@
221
221
  .kd-tree-node-title-disabled {
222
222
  color: var(--kd-c-tree-node-color-disabled, var(--kd-g-color-disabled, #b2b2b2));
223
223
  }
224
+ .kd-tree-node-title-wrap {
225
+ -webkit-box-flex: 1;
226
+ -ms-flex: 1;
227
+ flex: 1;
228
+ position: relative;
229
+ display: -webkit-box;
230
+ display: -ms-flexbox;
231
+ display: flex;
232
+ -webkit-box-align: center;
233
+ -ms-flex-align: center;
234
+ align-items: center;
235
+ height: 100%;
236
+ }
224
237
  .kd-tree-node-title {
225
238
  white-space: nowrap;
226
239
  margin-left: 6px;
@@ -248,12 +261,28 @@
248
261
  width: 100%;
249
262
  height: 100%;
250
263
  }
264
+ .kd-tree-node-drag-over {
265
+ background-color: var(--kd-c-tree-node-drag-over-color-background, #E3EBFF);
266
+ border: 2px solid var(--kd-c-tree-node-drag-over-color-border, #5582f3);
267
+ }
251
268
  .kd-tree-node-drag-line {
252
269
  position: absolute;
253
270
  left: 0;
254
271
  top: 100%;
255
272
  width: 100%;
256
- border-top: 1px solid #fc8555;
273
+ border-top: 2px solid var(--kd-c-tree-node-drag-line-color-background, #276FF5);
274
+ }
275
+ .kd-tree-node-drag-line::before {
276
+ content: '';
277
+ width: 4px;
278
+ height: 4px;
279
+ background-color: #fff;
280
+ border-radius: 50%;
281
+ border: 2px solid var(--kd-c-tree-node-drag-line-color-background, #276FF5);
282
+ position: absolute;
283
+ top: -1px;
284
+ -webkit-transform: translateY(-50%);
285
+ transform: translateY(-50%);
257
286
  }
258
287
  .kd-tree-node-leaf-icon {
259
288
  height: var(--kd-c-tree-node-icon-sizing-height, 20px);