@kdcloudjs/kdesign 1.7.25 → 1.7.27

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 (70) hide show
  1. package/CHANGELOG.md +47 -0
  2. package/dist/kdesign-complete.less +109 -45
  3. package/dist/kdesign.css +85 -40
  4. package/dist/kdesign.css.map +1 -1
  5. package/dist/kdesign.js +266 -106
  6. package/dist/kdesign.js.map +1 -1
  7. package/dist/kdesign.min.css +3 -3
  8. package/dist/kdesign.min.js +6 -6
  9. package/dist/kdesign.min.js.map +1 -1
  10. package/es/anchor/style/index.css +1 -1
  11. package/es/anchor/style/index.less +1 -1
  12. package/es/anchor/style/token.less +1 -0
  13. package/es/cascader/cascader.js +64 -32
  14. package/es/cascader/style/index.css +42 -26
  15. package/es/cascader/style/index.less +51 -29
  16. package/es/cascader/style/token.less +5 -3
  17. package/es/city-picker/city-picker.js +104 -13
  18. package/es/city-picker/interface.d.ts +3 -0
  19. package/es/city-picker/option.js +15 -3
  20. package/es/city-picker/style/index.css +22 -10
  21. package/es/city-picker/style/index.less +24 -10
  22. package/es/collapse/panel.js +31 -18
  23. package/es/collapse/style/index.css +4 -1
  24. package/es/collapse/style/index.less +4 -1
  25. package/es/form/Field.d.ts +1 -0
  26. package/es/form/Field.js +5 -3
  27. package/es/form/FieldWrapper.d.ts +1 -0
  28. package/es/form/FieldWrapper.js +13 -5
  29. package/es/form/style/index.css +11 -1
  30. package/es/form/style/index.less +16 -1
  31. package/es/form/style/token.less +1 -0
  32. package/es/select/style/index.css +1 -0
  33. package/es/select/style/index.less +1 -0
  34. package/es/select/style/token.less +1 -0
  35. package/es/tabs/style/index.css +3 -0
  36. package/es/tabs/style/index.less +3 -0
  37. package/es/tabs/style/token.less +1 -0
  38. package/es/tag/tag.d.ts +1 -0
  39. package/es/tree-select/tree-select.js +2 -1
  40. package/lib/anchor/style/index.css +1 -1
  41. package/lib/anchor/style/index.less +1 -1
  42. package/lib/anchor/style/token.less +1 -0
  43. package/lib/cascader/cascader.js +63 -31
  44. package/lib/cascader/style/index.css +42 -26
  45. package/lib/cascader/style/index.less +51 -29
  46. package/lib/cascader/style/token.less +5 -3
  47. package/lib/city-picker/city-picker.js +103 -12
  48. package/lib/city-picker/interface.d.ts +3 -0
  49. package/lib/city-picker/option.js +15 -3
  50. package/lib/city-picker/style/index.css +22 -10
  51. package/lib/city-picker/style/index.less +24 -10
  52. package/lib/collapse/panel.js +32 -19
  53. package/lib/collapse/style/index.css +4 -1
  54. package/lib/collapse/style/index.less +4 -1
  55. package/lib/form/Field.d.ts +1 -0
  56. package/lib/form/Field.js +5 -3
  57. package/lib/form/FieldWrapper.d.ts +1 -0
  58. package/lib/form/FieldWrapper.js +13 -5
  59. package/lib/form/style/index.css +11 -1
  60. package/lib/form/style/index.less +16 -1
  61. package/lib/form/style/token.less +1 -0
  62. package/lib/select/style/index.css +1 -0
  63. package/lib/select/style/index.less +1 -0
  64. package/lib/select/style/token.less +1 -0
  65. package/lib/tabs/style/index.css +3 -0
  66. package/lib/tabs/style/index.less +3 -0
  67. package/lib/tabs/style/token.less +1 -0
  68. package/lib/tag/tag.d.ts +1 -0
  69. package/lib/tree-select/tree-select.js +2 -1
  70. package/package.json +1 -1
@@ -40,6 +40,7 @@
40
40
  @select-large-height: var(~'@{select-custom-prefix}-sizing-height-large', 36px); // 大号高度 lh:28px
41
41
  @select-middle-height: var(~'@{select-custom-prefix}-sizing-height-middle', 30px); // 中号高度lh:22px
42
42
  @select-small-height: var(~'@{select-custom-prefix}-sizing-height-small', 24px); // 小号高度lh:12px
43
+ @select-item-max-width: var(~'@{select-custom-prefix}-item-sizing-max-width');
43
44
 
44
45
  // spacing
45
46
  @select-bordered: var(~'@{select-custom-prefix}-bordered-spacing-padding-left', 8px);
@@ -380,6 +380,9 @@
380
380
  display: inline-block;
381
381
  -webkit-transition: color var(--kd-c-tabs-motion-duration, var(--kd-g-duration, 0.3s));
382
382
  transition: color var(--kd-c-tabs-motion-duration, var(--kd-g-duration, 0.3s));
383
+ overflow: hidden;
384
+ text-overflow: ellipsis;
385
+ max-width: var(--kd-c-tabs-pane-text-sizing-max-width);
383
386
  }
384
387
  .kd-tab-pane-text-active,
385
388
  .kd-tab-pane-text:hover {
@@ -216,6 +216,9 @@
216
216
  &-text {
217
217
  display: inline-block;
218
218
  transition: color @tab-g-motion-duration;
219
+ overflow: hidden;
220
+ text-overflow: ellipsis;
221
+ max-width: @tab-pane-text-max-width;
219
222
  &-active,
220
223
  &:hover {
221
224
  color: @tabPane-font-color-active;
@@ -29,6 +29,7 @@
29
29
  @tab-pane-type-line-height-small: var(~'@{tabs-custom-prefix}-pane-type-line-sizing-height-small', 32px);
30
30
  @tab-pane-type-line-height-middle: var(~'@{tabs-custom-prefix}-pane-type-line-sizing-height-middle', 32px);
31
31
  @tab-pane-type-dynamic-height: var(~'@{tabs-custom-prefix}-pane-type-dynamic-sizing-height', 32px);
32
+ @tab-pane-text-max-width: var(~'@{tabs-custom-prefix}-pane-text-sizing-max-width');
32
33
 
33
34
 
34
35
  // spacing
package/es/tag/tag.d.ts CHANGED
@@ -19,6 +19,7 @@ export interface ITagProps {
19
19
  onClick?: React.MouseEventHandler<HTMLElement>;
20
20
  onClose?: React.MouseEventHandler<HTMLElement>;
21
21
  children?: React.ReactNode;
22
+ title?: string;
22
23
  }
23
24
  declare const Tag: React.ForwardRefExoticComponent<ITagProps & React.RefAttributes<unknown>>;
24
25
  export default Tag;
@@ -444,7 +444,8 @@ var InternalTreeSelect = function InternalTreeSelect(props, ref) {
444
444
  onClose: function onClose(e) {
445
445
  return handleRemove(e, key);
446
446
  },
447
- "data-tag": key
447
+ "data-tag": key,
448
+ title: label
448
449
  }, label));
449
450
  }), maxTagCount && selectTreeNodes.length > maxTagCount ? maxTagPlaceholder ? handleMaxTagHolder() : /*#__PURE__*/React.createElement("span", {
450
451
  className: itemCls
@@ -180,7 +180,7 @@
180
180
  }
181
181
  .kd-anchor-menu .kd-anchor-link-title {
182
182
  display: inline-block;
183
- max-width: 96px;
183
+ max-width: var(--kd-c-anchor-horizontal-link-sizing-max-width, 96px);
184
184
  overflow: hidden;
185
185
  white-space: nowrap;
186
186
  text-overflow: ellipsis;
@@ -70,7 +70,7 @@
70
70
  display: inline-block;
71
71
  &-title {
72
72
  display: inline-block;
73
- max-width: 96px;
73
+ max-width: @anchor-horizontal-link-max-width;
74
74
  overflow: hidden;
75
75
  white-space: nowrap;
76
76
  text-overflow: ellipsis;
@@ -14,6 +14,7 @@
14
14
  // sizing
15
15
  @anchor-width: var(~'@{anchor-prefix}-sizing-width', 120px);
16
16
  @anchor-advanced-width: var(~'@{anchor-prefix}-advanced-sizing-width', 160px);
17
+ @anchor-horizontal-link-max-width: var(~'@{anchor-prefix}-horizontal-link-sizing-max-width', 96px);
17
18
 
18
19
  // spacing
19
20
  @anchor-link-top: var(~'@{anchor-prefix}-spacing-vertical', 7px);
@@ -75,15 +75,15 @@ var Cascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
75
75
  customAllowClear = allProps.allowClear,
76
76
  popupPlacement = allProps.popupPlacement,
77
77
  maxTagCount = allProps.maxTagCount,
78
+ autoFocus = allProps.autoFocus,
78
79
  otherProps = __rest(allProps
79
80
  // className前缀
80
- , ["mode", "style", "options", "bordered", "disabled", "children", "loadData", "clearIcon", "className", "fieldNames", "placeholder", "defaultValue", "maxTagPlaceholder", "displayRender", "expandTrigger", "changeOnSelect", "dropdownRender", "notFoundContent", "getPopupContainer", "defaultPopupVisible", "onPopupVisibleChange", "onPopperVisibleChange", "prefixCls", "allowClear", "popupPlacement", "maxTagCount"]);
81
+ , ["mode", "style", "options", "bordered", "disabled", "children", "loadData", "clearIcon", "className", "fieldNames", "placeholder", "defaultValue", "maxTagPlaceholder", "displayRender", "expandTrigger", "changeOnSelect", "dropdownRender", "notFoundContent", "getPopupContainer", "defaultPopupVisible", "onPopupVisibleChange", "onPopperVisibleChange", "prefixCls", "allowClear", "popupPlacement", "maxTagCount", "autoFocus"]);
81
82
  // className前缀
82
83
  var prefixCls = getPrefixCls(pkgPrefixCls, 'cascader', customPrefixcls);
83
- var pickerRef = (0, _react.useRef)();
84
- var triggerRef = (0, _react.useRef)();
84
+ var mergeRef = (0, _react.useRef)();
85
+ var inputRef = (0, _react.useRef)();
85
86
  var wrapperRef = (0, _react.useRef)();
86
- var mergeRef = ref || pickerRef;
87
87
  var _useState = (0, _react.useState)(!!props.popperVisible || !!props.popupVisible || defaultPopupVisible),
88
88
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
89
89
  visible = _useState2[0],
@@ -170,21 +170,53 @@ var Cascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
170
170
  setCurrentOptions(newMultipleOptions);
171
171
  }
172
172
  }, [options, value, fieldNames, isMultiple]);
173
- _react.default.useEffect(function () {
173
+ var handleFocus = function handleFocus() {
174
+ var _a, _b;
175
+ if (!disabled) {
176
+ if (isMultiple) {
177
+ (_a = mergeRef.current) === null || _a === void 0 ? void 0 : _a.focus();
178
+ } else {
179
+ (_b = inputRef.current) === null || _b === void 0 ? void 0 : _b.focus();
180
+ }
181
+ }
182
+ };
183
+ var handleBlur = function handleBlur() {
184
+ var _a, _b;
185
+ if (!disabled) {
186
+ if (isMultiple) {
187
+ (_a = mergeRef.current) === null || _a === void 0 ? void 0 : _a.blur();
188
+ } else {
189
+ (_b = inputRef.current) === null || _b === void 0 ? void 0 : _b.blur();
190
+ }
191
+ }
192
+ };
193
+ (0, _react.useImperativeHandle)(ref, function () {
194
+ return {
195
+ focus: handleFocus,
196
+ blur: handleBlur,
197
+ dom: mergeRef.current
198
+ };
199
+ });
200
+ (0, _react.useEffect)(function () {
201
+ if (autoFocus) {
202
+ handleFocus();
203
+ }
204
+ }, [autoFocus, inputRef]);
205
+ var handleMouseUp = function handleMouseUp(e) {
174
206
  var _a;
175
- if (allProps.autoFocus) {
176
- (_a = mergeRef.current) === null || _a === void 0 ? void 0 : _a.focus();
207
+ var cln = (_a = e === null || e === void 0 ? void 0 : e.target) === null || _a === void 0 ? void 0 : _a.className;
208
+ var isCloseBtn = cln.indexOf('kd-tag-close-icon') > -1 || cln.indexOf('kdicon') > -1;
209
+ if (isCloseBtn) {
210
+ e.stopPropagation();
177
211
  }
178
- }, [allProps.autoFocus, mergeRef]);
212
+ };
179
213
  _react.default.useEffect(function () {
180
214
  var _a;
181
- (_a = wrapperRef.current) === null || _a === void 0 ? void 0 : _a.addEventListener('mouseup', function (e) {
215
+ (_a = wrapperRef.current) === null || _a === void 0 ? void 0 : _a.addEventListener('mouseup', handleMouseUp);
216
+ return function () {
182
217
  var _a;
183
- var isCloseBtn = ((_a = e === null || e === void 0 ? void 0 : e.target) === null || _a === void 0 ? void 0 : _a.className.indexOf('kd-tag-close-icon')) > -1;
184
- if (isCloseBtn) {
185
- e.stopPropagation();
186
- }
187
- });
218
+ (_a = wrapperRef.current) === null || _a === void 0 ? void 0 : _a.removeEventListener('mouseup', handleMouseUp);
219
+ };
188
220
  }, []);
189
221
  var labels = (0, _react.useMemo)(function () {
190
222
  return !isMultiple ? (0, _map.default)(currentOptions).call(currentOptions, function (_ref) {
@@ -208,8 +240,10 @@ var Cascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
208
240
  });
209
241
  });
210
242
  }, [currentOptions, isMultiple]);
211
- var allowClear = customAllowClear && value.length > 0;
243
+ var allowClear = customAllowClear && value.length > 0 && !disabled;
212
244
  var handleClear = function handleClear() {
245
+ handleBlur();
246
+ setVisible(false);
213
247
  onChange([]);
214
248
  };
215
249
  var renderSuffix = function renderSuffix() {
@@ -249,9 +283,7 @@ var Cascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
249
283
  };
250
284
  var renderMultiple = function renderMultiple() {
251
285
  var _classNames3, _classNames4;
252
- var multipleCls = (0, _classnames.default)((_classNames3 = {
253
- disabled: disabled
254
- }, (0, _defineProperty2.default)(_classNames3, "".concat(prefixCls, "-multiple"), true), (0, _defineProperty2.default)(_classNames3, "".concat(prefixCls, "-bordered"), bordered), _classNames3));
286
+ var multipleCls = (0, _classnames.default)((_classNames3 = {}, (0, _defineProperty2.default)(_classNames3, "".concat(prefixCls, "-expand"), visible), (0, _defineProperty2.default)(_classNames3, "".concat(prefixCls, "-disabled"), disabled), (0, _defineProperty2.default)(_classNames3, "".concat(prefixCls, "-multiple"), true), (0, _defineProperty2.default)(_classNames3, "".concat(prefixCls, "-bordered"), bordered), _classNames3));
255
287
  var itemCls = (0, _classnames.default)((_classNames4 = {}, (0, _defineProperty2.default)(_classNames4, "".concat(prefixCls, "-selection-item"), true), (0, _defineProperty2.default)(_classNames4, "".concat(prefixCls, "-tag-describe"), true), _classNames4));
256
288
  var TagStyle = {
257
289
  margin: '2px 8px 2px 0',
@@ -259,9 +291,11 @@ var Cascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
259
291
  };
260
292
  return /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({
261
293
  className: multipleCls,
262
- ref: triggerRef,
294
+ ref: mergeRef,
263
295
  style: style
264
- }, otherProps), /*#__PURE__*/_react.default.createElement("div", {
296
+ }, otherProps, {
297
+ tabIndex: -1
298
+ }), /*#__PURE__*/_react.default.createElement("div", {
265
299
  className: "".concat(prefixCls, "-multiple-wrapper"),
266
300
  ref: wrapperRef
267
301
  }, Array.isArray(currentOptions) && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, (0, _map.default)(currentOptions).call(currentOptions, function (option, index) {
@@ -270,6 +304,7 @@ var Cascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
270
304
  className: (0, _classnames.default)("".concat(prefixCls, "-selection-tag"))
271
305
  }, (!maxTagCount || index <= maxTagCount - 1) && /*#__PURE__*/_react.default.createElement(_tag.default, {
272
306
  type: "edit",
307
+ disabled: disabled,
273
308
  style: TagStyle,
274
309
  closable: true,
275
310
  onClose: function onClose(e) {
@@ -287,8 +322,10 @@ var Cascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
287
322
  }, renderSuffix())));
288
323
  };
289
324
  var renderSingle = function renderSingle() {
325
+ var _classNames5;
290
326
  var inputProps = {
291
327
  value: value,
328
+ ref: inputRef,
292
329
  placeholder: placeholder,
293
330
  readOnly: true,
294
331
  borderType: bordered ? 'bordered' : 'underline',
@@ -306,18 +343,13 @@ var Cascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
306
343
  var singleProps = {
307
344
  style: style,
308
345
  tabIndex: 0,
309
- className: (0, _classnames.default)("".concat(prefixCls, "-picker"), className, (0, _defineProperty2.default)({
310
- expand: visible,
311
- allowClear: allowClear,
312
- disabled: disabled
313
- }, "".concat(prefixCls, "-bordered"), bordered))
346
+ className: (0, _classnames.default)("".concat(prefixCls, "-picker"), className, (_classNames5 = {}, (0, _defineProperty2.default)(_classNames5, "".concat(prefixCls, "-single"), true), (0, _defineProperty2.default)(_classNames5, "".concat(prefixCls, "-expand"), visible), (0, _defineProperty2.default)(_classNames5, "allowClear", allowClear), (0, _defineProperty2.default)(_classNames5, "".concat(prefixCls, "-disabled"), disabled), (0, _defineProperty2.default)(_classNames5, "".concat(prefixCls, "-bordered"), bordered), _classNames5))
314
347
  };
315
348
  return /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({}, singleProps, {
316
349
  ref: mergeRef
317
- }, otherProps), _react.default.Children.count(children) === 1 && children.type ? /*#__PURE__*/_react.default.cloneElement(children, {
318
- ref: triggerRef
319
- }) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
320
- ref: triggerRef
350
+ }, otherProps), _react.default.Children.count(children) === 1 && children.type ? /*#__PURE__*/_react.default.cloneElement(children) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
351
+ className: "".concat(prefixCls, "-single-wrapper"),
352
+ ref: wrapperRef
321
353
  }, /*#__PURE__*/_react.default.createElement(_input.default, (0, _extends2.default)({}, inputProps)), /*#__PURE__*/_react.default.createElement("span", {
322
354
  className: "".concat(prefixCls, "-picker-label")
323
355
  }, (labels === null || labels === void 0 ? void 0 : labels.length) ? displayRender(labels, currentOptions) : ''), allowClear && /*#__PURE__*/_react.default.createElement(_icon.default, {
@@ -435,13 +467,13 @@ var Cascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
435
467
  gap: 4,
436
468
  visible: visible,
437
469
  onVisibleChange: onVisibleChange,
438
- trigger: 'click',
470
+ trigger: expandTrigger,
439
471
  getPopupContainer: getPopupContainer,
440
472
  prefixCls: "".concat(prefixCls, "-menus"),
441
473
  placement: allProps.popperPlacement || popupPlacement,
442
474
  popperClassName: allProps.popperClassName || allProps.popupClassName,
443
475
  getTriggerElement: function getTriggerElement() {
444
- return triggerRef.current;
476
+ return mergeRef.current;
445
477
  }
446
478
  });
447
479
  return (0, _usePopper.default)(cascaderLocator, cascaderPopper, popperProps);
@@ -112,17 +112,6 @@
112
112
  cursor: pointer;
113
113
  background: var(--kd-c-cascader-color-background, var(--kd-g-color-white, #fff));
114
114
  }
115
- .kd-cascader-picker:focus > .kd-cascader-picker-input {
116
- border-color: var(--kd-c-cascader-color-active, #999);
117
- }
118
- .kd-cascader-picker:focus > .kd-cascader-picker-input .kd-input-suffix,
119
- .kd-cascader-picker:focus > .kd-cascader-picker-input i[class*='kdicon'] {
120
- color: var(--kd-c-cascader-color-active, #999);
121
- }
122
- .kd-cascader-picker:hover > .kd-cascader-picker-input .kd-input-suffix,
123
- .kd-cascader-picker:hover > .kd-cascader-picker-input i[class*='kdicon'] {
124
- color: var(--kd-c-cascader-color-active, #999);
125
- }
126
115
  .kd-cascader-picker.disabled .kd-cascader-picker-input {
127
116
  cursor: not-allowed;
128
117
  border-color: var(--kd-g-color-border-strong, #d9d9d9);
@@ -148,7 +137,7 @@
148
137
  text-overflow: ellipsis;
149
138
  }
150
139
  .kd-cascader-picker-input {
151
- background-color: transparent !important;
140
+ background-color: transparent;
152
141
  -webkit-transition: all 0.2s;
153
142
  transition: all 0.2s;
154
143
  }
@@ -156,11 +145,7 @@
156
145
  color: transparent !important;
157
146
  cursor: pointer;
158
147
  }
159
- .kd-cascader-picker-input.expand {
160
- border-color: var(--kd-c-cascader-color-active, #999);
161
- }
162
148
  .kd-cascader-picker-input.expand i[class*='kdicon'] {
163
- color: var(--kd-c-cascader-color-active, #999);
164
149
  -webkit-transform: rotate(180deg);
165
150
  transform: rotate(180deg);
166
151
  }
@@ -190,7 +175,7 @@
190
175
  opacity: 0;
191
176
  cursor: pointer;
192
177
  visibility: hidden;
193
- color: var(--kd-c-cascader-icon-clear-color-text, #d9d9d9);
178
+ color: var(--kd-c-cascader-clear-color-text, #d9d9d9);
194
179
  -webkit-transition: all 0.1s;
195
180
  transition: all 0.1s;
196
181
  -webkit-transform-origin: 50% 50%;
@@ -199,7 +184,7 @@
199
184
  transform: scale(0.9) translateY(-50%);
200
185
  }
201
186
  .kd-cascader-picker-close:hover {
202
- color: var(--kd-c-cascader-color-active, #999);
187
+ color: var(--kd-c-cascader-icon-clear-color-text-hover, #999);
203
188
  }
204
189
  .kd-cascader-menus {
205
190
  -webkit-box-sizing: border-box;
@@ -264,13 +249,13 @@
264
249
  background-color: var(--kd-c-cascader-color-background-selected, var(--kd-g-color-background-ongoing, #f2f9ff));
265
250
  }
266
251
  .kd-cascader-menus .kd-cascader-menu-item-label {
267
- width: 72px;
252
+ width: var(--kd-c-cascader-menu-item-label-sizing-width, 72px);
268
253
  white-space: nowrap;
269
254
  overflow: hidden;
270
255
  text-overflow: ellipsis;
271
256
  }
272
257
  .kd-cascader-menus .kd-cascader-menu-item.last .kd-cascader-menu-item-label {
273
- width: 92px;
258
+ width: calc(var(--kd-c-cascader-menu-item-label-sizing-width, 72px) + 20px);
274
259
  }
275
260
  .kd-cascader-menus .kd-cascader-menu-item .kd-cascader-checkbox {
276
261
  margin-right: 5px;
@@ -312,6 +297,10 @@
312
297
  border-bottom: 1px solid #d9d9d9;
313
298
  background: var(--kd-c-cascader-color-background, var(--kd-g-color-white, #fff));
314
299
  }
300
+ .kd-cascader-multiple:not(.kd-cascader-disabled):focus {
301
+ border-color: var(--kd-c-cascader-color-text-selected, var(--kd-g-color-theme, #5582f3));
302
+ outline: none;
303
+ }
315
304
  .kd-cascader-multiple-wrapper {
316
305
  display: -webkit-box;
317
306
  display: -ms-flexbox;
@@ -325,7 +314,8 @@
325
314
  }
326
315
  .kd-cascader-placeholder {
327
316
  position: absolute;
328
- color: #999;
317
+ font-size: 14px;
318
+ color: var(--kd-c-cascader-placeholder-color, var(--kd-g-color-text-placeholder, #ccc));
329
319
  overflow: hidden;
330
320
  white-space: nowrap;
331
321
  text-overflow: ellipsis;
@@ -380,9 +370,6 @@
380
370
  transition: transform calc(0.3s - 0.1s) cubic-bezier(0.4, 0, 0.6, 1);
381
371
  transition: transform calc(0.3s - 0.1s) cubic-bezier(0.4, 0, 0.6, 1), -webkit-transform calc(0.3s - 0.1s) cubic-bezier(0.4, 0, 0.6, 1);
382
372
  }
383
- .kd-cascader-icon-arrow-focus {
384
- color: var(--kd-c-cascader-color-border-foucs, var(--kd-g-color-theme, #5582f3));
385
- }
386
373
  .kd-cascader-icon-clear {
387
374
  opacity: 0;
388
375
  z-index: 1;
@@ -390,7 +377,7 @@
390
377
  background: #fff;
391
378
  -webkit-transition: opacity 0.15s ease;
392
379
  transition: opacity 0.15s ease;
393
- color: var(--kd-c-cascader-icon-clear-color-text, #d9d9d9);
380
+ color: var(--kd-c-cascader-clear-color-text, #d9d9d9);
394
381
  }
395
382
  .kd-cascader-icon-clear:hover {
396
383
  color: var(--kd-c-cascader-icon-clear-color-text-hover, #999);
@@ -412,7 +399,6 @@
412
399
  -webkit-box-align: center;
413
400
  -ms-flex-align: center;
414
401
  align-items: center;
415
- vertical-align: middle;
416
402
  padding: 0 7px;
417
403
  overflow: hidden;
418
404
  white-space: nowrap;
@@ -420,3 +406,33 @@
420
406
  border: 1px solid #ccc;
421
407
  color: #212121;
422
408
  }
409
+ .kd-cascader-disabled {
410
+ cursor: not-allowed;
411
+ }
412
+ .kd-cascader-disabled .kd-cascader-picker-label {
413
+ color: var(--kd-c-cascader-color-text-disabled, var(--kd-g-color-disabled, #b2b2b2));
414
+ }
415
+ .kd-cascader-disabled .kd-cascader-picker-input {
416
+ background-color: var(--kd-c-cascader-color-background-disabled, var(--kd-g-color-background-contain-disabled, #f5f5f5));
417
+ }
418
+ .kd-cascader-disabled .kd-cascader-picker-input > input {
419
+ background-color: var(--kd-c-cascader-color-background-disabled, var(--kd-g-color-background-contain-disabled, #f5f5f5));
420
+ }
421
+ .kd-cascader-disabled.kd-cascader-multiple {
422
+ background-color: var(--kd-c-cascader-color-background-disabled, var(--kd-g-color-background-contain-disabled, #f5f5f5));
423
+ }
424
+ .kd-cascader-disabled .kd-cascader-suffix {
425
+ color: var(--kd-c-cascader-color-text-disabled, var(--kd-g-color-disabled, #b2b2b2));
426
+ }
427
+ .kd-cascader-disabled .kd-cascader-tag-describe-content {
428
+ color: var(--kd-c-cascader-tag-disabled-color, #d9d9d9);
429
+ border-color: var(--kd-c-cascader-tag-disabled-color, #d9d9d9);
430
+ }
431
+ .kd-cascader-picker:not(.kd-cascader-disabled):hover .kd-input-wrapper,
432
+ .kd-cascader-expand .kd-input-wrapper {
433
+ border-color: var(--kd-c-cascader-color-border-foucs, var(--kd-g-color-theme, #5582f3));
434
+ }
435
+ .kd-cascader-multiple:not(.kd-cascader-disabled):hover,
436
+ .kd-cascader-expand {
437
+ border-color: var(--kd-c-cascader-color-border-foucs, var(--kd-g-color-theme, #5582f3));
438
+ }
@@ -12,22 +12,6 @@
12
12
  cursor: pointer;
13
13
  background: @cascader-bg-color;
14
14
 
15
- &:focus > &-input {
16
- border-color: @cascader-active-color;
17
-
18
- .@{kd-prefix}-input-suffix,
19
- i[class*='kdicon'] {
20
- color: @cascader-active-color;
21
- }
22
- }
23
-
24
- &:hover > &-input {
25
- .@{kd-prefix}-input-suffix,
26
- i[class*='kdicon'] {
27
- color: @cascader-active-color;
28
- }
29
- }
30
-
31
15
  &.disabled {
32
16
  .@{cascader-picker-prefix-cls}-input {
33
17
  cursor: not-allowed;
@@ -54,7 +38,7 @@
54
38
  }
55
39
 
56
40
  &-input {
57
- background-color: transparent !important;
41
+ background-color: transparent;
58
42
  transition: all 0.2s;
59
43
 
60
44
  > input {
@@ -63,10 +47,7 @@
63
47
  }
64
48
 
65
49
  &.expand {
66
- border-color: @cascader-active-color;
67
-
68
50
  i[class*='kdicon'] {
69
- color: @cascader-active-color;
70
51
  transform: rotate(180deg);
71
52
  }
72
53
  }
@@ -105,7 +86,7 @@
105
86
  transform: scale(0.9) translateY(-50%);
106
87
 
107
88
  &:hover {
108
- color: @cascader-active-color;
89
+ color: @cascader-clear-color-hover;
109
90
  }
110
91
  }
111
92
  }
@@ -163,12 +144,12 @@
163
144
  }
164
145
 
165
146
  &-label {
166
- width: 72px;
147
+ width: @cascader-menu-item-label-width;
167
148
  .ellipsis;
168
149
  }
169
150
 
170
151
  &.last .@{cascader-menu-prefix-cls}-item-label {
171
- width: 92px;
152
+ width: calc(@cascader-menu-item-label-width + 20px);
172
153
  }
173
154
 
174
155
  .@{kd-prefix}-cascader-checkbox {
@@ -217,6 +198,11 @@
217
198
  position: relative;
218
199
  border-bottom: 1px solid #d9d9d9;
219
200
  background: @cascader-bg-color;
201
+
202
+ &:not(.@{kd-prefix}-cascader-disabled):focus {
203
+ border-color: @cascader-selected-color;
204
+ outline: none;
205
+ }
220
206
  }
221
207
 
222
208
  &-multiple-wrapper {
@@ -228,7 +214,8 @@
228
214
 
229
215
  &-placeholder {
230
216
  position: absolute;
231
- color: @select-placeholder-color;
217
+ font-size: @middle-font-size;
218
+ color: @cascader-placeholder-color;
232
219
  overflow: hidden;
233
220
  white-space: nowrap;
234
221
  text-overflow: ellipsis;
@@ -267,10 +254,6 @@
267
254
  transform: rotate(0deg);
268
255
  transition: transform calc(@transition-duration - 0.1s) @ease;
269
256
  }
270
-
271
- &-focus {
272
- color: @cascader-g-color-border-foucs;
273
- }
274
257
  }
275
258
 
276
259
  &-clear {
@@ -285,6 +268,7 @@
285
268
  }
286
269
  }
287
270
  }
271
+
288
272
  &-tag {
289
273
  &-describe {
290
274
  font-size: 12px;
@@ -296,7 +280,6 @@
296
280
  &-content {
297
281
  display: inline-flex;
298
282
  align-items: center;
299
- vertical-align: middle;
300
283
  padding: 0 7px;
301
284
  overflow: hidden;
302
285
  white-space: nowrap;
@@ -306,4 +289,43 @@
306
289
  }
307
290
  }
308
291
  }
292
+
293
+ &-disabled {
294
+ cursor: not-allowed;
295
+
296
+ .@{kd-prefix}-cascader-picker-label {
297
+ color: @cascader-disabled-color;
298
+ }
299
+
300
+ .@{kd-prefix}-cascader-picker-input {
301
+ background-color: @cascader-disabled-color-background;
302
+
303
+ > input {
304
+ background-color: @cascader-disabled-color-background;
305
+ }
306
+ }
307
+
308
+ &.@{kd-prefix}-cascader-multiple {
309
+ background-color: @cascader-disabled-color-background;
310
+ }
311
+
312
+ .@{kd-prefix}-cascader-suffix {
313
+ color: @cascader-disabled-color;
314
+ }
315
+
316
+ .@{kd-prefix}-cascader-tag-describe-content {
317
+ color: @cascader-tag-disabled-color;
318
+ border-color: @cascader-tag-disabled-color;
319
+ }
320
+ }
321
+
322
+ &-picker:not(&-disabled):hover, &-expand {
323
+ .kd-input-wrapper {
324
+ border-color: @cascader-g-color-border-focus;
325
+ }
326
+ }
327
+
328
+ &-multiple:not(&-disabled):hover, &-expand {
329
+ border-color: @cascader-g-color-border-focus;
330
+ }
309
331
  }
@@ -6,23 +6,25 @@
6
6
  @cascader-height: var(~'@{cascader-prefix}-sizing-height', 192px);
7
7
  @cascader-menu-min-width: var(~'@{cascader-prefix}-menu-sizing-min-width', 116px);
8
8
  @cascader-menu-item-height: var(~'@{cascader-prefix}-menu-item-sizing-height', 32px);
9
+ @cascader-menu-item-label-width: var(~'@{cascader-prefix}-menu-item-label-sizing-width', 72px);
9
10
 
10
11
  // spacing
11
12
  @cascader-menu-padding-vertical: var(~'@{cascader-prefix}-menu-spacing-padding-vertical', 8px);
12
13
  @cascader-menu-item-padding-horizontal: var(~'@{cascader-prefix}-menu-item-spacing-padding-horizontal', 12px);
13
14
 
14
15
  // colors
15
- @cascader-active-color: var(~'@{cascader-prefix}-color-active', #999);
16
16
  @cascader-color: var(~'@{cascader-prefix}-color-text', @color-text-primary);
17
17
  @cascader-bg-color: var(~'@{cascader-prefix}-color-background', @color-white);
18
18
  @cascader-hover-bg-color: var(~'@{cascader-prefix}-color-background-hover', @color-hover);
19
19
  @cascader-selected-color: var(~'@{cascader-prefix}-color-text-selected', @color-theme);
20
20
  @cascader-selected-bg-color: var(~'@{cascader-prefix}-color-background-selected', @color-background-ongoing);
21
21
  @cascader-disabled-color: var(~'@{cascader-prefix}-color-text-disabled', @color-disabled);
22
+ @cascader-disabled-color-background: var(~'@{cascader-prefix}-color-background-disabled', @color-background-contain-disabled);
22
23
  @cascader-clear-color: var(~'@{cascader-prefix}-clear-color-text', #d9d9d9);
23
- @cascader-g-color-border-foucs: var(~'@{cascader-prefix}-color-border-foucs', @color-theme);
24
- @cascader-clear-color: var(~'@{cascader-prefix}-icon-clear-color-text', #d9d9d9);
25
24
  @cascader-clear-color-hover: var(~'@{cascader-prefix}-icon-clear-color-text-hover', #999);
25
+ @cascader-g-color-border-focus: var(~'@{cascader-prefix}-color-border-foucs', @color-theme);
26
+ @cascader-tag-disabled-color: var(~'@{cascader-prefix}-tag-disabled-color', #d9d9d9);
27
+ @cascader-placeholder-color: var(~'@{cascader-prefix}-placeholder-color', @color-text-placeholder);
26
28
 
27
29
  // font
28
30
  @cascader-font-size: var(~'@{cascader-prefix}-font-size', @font-size-small);