@kdcloudjs/kdesign 1.7.25 → 1.7.26

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 (50) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/dist/kdesign-complete.less +88 -32
  3. package/dist/kdesign.css +68 -27
  4. package/dist/kdesign.css.map +1 -1
  5. package/dist/kdesign.js +154 -99
  6. package/dist/kdesign.js.map +1 -1
  7. package/dist/kdesign.min.css +2 -2
  8. package/dist/kdesign.min.js +6 -6
  9. package/dist/kdesign.min.js.map +1 -1
  10. package/es/cascader/cascader.js +64 -32
  11. package/es/cascader/style/index.css +40 -24
  12. package/es/cascader/style/index.less +49 -27
  13. package/es/cascader/style/token.less +4 -3
  14. package/es/city-picker/city-picker.js +3 -4
  15. package/es/city-picker/option.js +2 -1
  16. package/es/city-picker/style/index.css +12 -0
  17. package/es/city-picker/style/index.less +14 -0
  18. package/es/collapse/panel.js +31 -18
  19. package/es/collapse/style/index.css +4 -1
  20. package/es/collapse/style/index.less +4 -1
  21. package/es/form/Field.d.ts +1 -0
  22. package/es/form/Field.js +5 -3
  23. package/es/form/FieldWrapper.d.ts +1 -0
  24. package/es/form/FieldWrapper.js +13 -5
  25. package/es/form/style/index.css +11 -1
  26. package/es/form/style/index.less +16 -1
  27. package/es/form/style/token.less +1 -0
  28. package/es/tag/tag.d.ts +1 -0
  29. package/es/tree-select/tree-select.js +2 -1
  30. package/lib/cascader/cascader.js +63 -31
  31. package/lib/cascader/style/index.css +40 -24
  32. package/lib/cascader/style/index.less +49 -27
  33. package/lib/cascader/style/token.less +4 -3
  34. package/lib/city-picker/city-picker.js +3 -4
  35. package/lib/city-picker/option.js +2 -1
  36. package/lib/city-picker/style/index.css +12 -0
  37. package/lib/city-picker/style/index.less +14 -0
  38. package/lib/collapse/panel.js +32 -19
  39. package/lib/collapse/style/index.css +4 -1
  40. package/lib/collapse/style/index.less +4 -1
  41. package/lib/form/Field.d.ts +1 -0
  42. package/lib/form/Field.js +5 -3
  43. package/lib/form/FieldWrapper.d.ts +1 -0
  44. package/lib/form/FieldWrapper.js +13 -5
  45. package/lib/form/style/index.css +11 -1
  46. package/lib/form/style/index.less +16 -1
  47. package/lib/form/style/token.less +1 -0
  48. package/lib/tag/tag.d.ts +1 -0
  49. package/lib/tree-select/tree-select.js +2 -1
  50. package/package.json +1 -1
@@ -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
  }
@@ -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
  }
@@ -12,17 +12,18 @@
12
12
  @cascader-menu-item-padding-horizontal: var(~'@{cascader-prefix}-menu-item-spacing-padding-horizontal', 12px);
13
13
 
14
14
  // colors
15
- @cascader-active-color: var(~'@{cascader-prefix}-color-active', #999);
16
15
  @cascader-color: var(~'@{cascader-prefix}-color-text', @color-text-primary);
17
16
  @cascader-bg-color: var(~'@{cascader-prefix}-color-background', @color-white);
18
17
  @cascader-hover-bg-color: var(~'@{cascader-prefix}-color-background-hover', @color-hover);
19
18
  @cascader-selected-color: var(~'@{cascader-prefix}-color-text-selected', @color-theme);
20
19
  @cascader-selected-bg-color: var(~'@{cascader-prefix}-color-background-selected', @color-background-ongoing);
21
20
  @cascader-disabled-color: var(~'@{cascader-prefix}-color-text-disabled', @color-disabled);
21
+ @cascader-disabled-color-background: var(~'@{cascader-prefix}-color-background-disabled', @color-background-contain-disabled);
22
22
  @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
23
  @cascader-clear-color-hover: var(~'@{cascader-prefix}-icon-clear-color-text-hover', #999);
24
+ @cascader-g-color-border-focus: var(~'@{cascader-prefix}-color-border-foucs', @color-theme);
25
+ @cascader-tag-disabled-color: var(~'@{cascader-prefix}-tag-disabled-color', #d9d9d9);
26
+ @cascader-placeholder-color: var(~'@{cascader-prefix}-placeholder-color', @color-text-placeholder);
26
27
 
27
28
  // font
28
29
  @cascader-font-size: var(~'@{cascader-prefix}-font-size', @font-size-small);
@@ -128,9 +128,7 @@ var InternalSelect = function InternalSelect(props, ref) {
128
128
  var city = (0, _find.default)(cityList).call(cityList, function (city) {
129
129
  return city.id === value;
130
130
  });
131
- if (city) {
132
- setSeletedCity(city);
133
- }
131
+ setSeletedCity(city);
134
132
  }, [commonList, domesticList, foreignList, value]);
135
133
  (0, _react.useEffect)(function () {
136
134
  if (typeof props.visible !== 'undefined') {
@@ -244,6 +242,7 @@ var InternalSelect = function InternalSelect(props, ref) {
244
242
  key: item.id,
245
243
  value: initValue,
246
244
  city: item,
245
+ className: searchValue ? "".concat(selectPrefixCls, "-list-item-match") : undefined,
247
246
  renderCityInfo: function renderCityInfo(data, flag) {
248
247
  return _renderCityInfo(data, isCommon, flag);
249
248
  },
@@ -289,7 +288,7 @@ var InternalSelect = function InternalSelect(props, ref) {
289
288
  return (0, _concat.default)(_context3 = "".concat(flag && curVal ? symbol : '')).call(_context3, curVal);
290
289
  } else {
291
290
  var _context4, _context5, _context6;
292
- return (0, _concat.default)(_context4 = (0, _concat.default)(_context5 = (0, _concat.default)(_context6 = "".concat(flag && (data === null || data === void 0 ? void 0 : data.province) ? symbol : '')).call(_context6, data === null || data === void 0 ? void 0 : data.province)).call(_context5, (data === null || data === void 0 ? void 0 : data.country) && (data === null || data === void 0 ? void 0 : data.province) ? symbol : '')).call(_context4, data === null || data === void 0 ? void 0 : data.country);
291
+ return (0, _concat.default)(_context4 = (0, _concat.default)(_context5 = (0, _concat.default)(_context6 = "".concat(flag && ((data === null || data === void 0 ? void 0 : data.province) || (data === null || data === void 0 ? void 0 : data.country)) ? symbol : '')).call(_context6, data === null || data === void 0 ? void 0 : data.province)).call(_context5, (data === null || data === void 0 ? void 0 : data.country) && (data === null || data === void 0 ? void 0 : data.province) ? symbol : '')).call(_context4, data === null || data === void 0 ? void 0 : data.country);
293
292
  }
294
293
  }, [type, tabsValue]);
295
294
  var renderSingle = function renderSingle() {
@@ -20,6 +20,7 @@ var InternalOption = function InternalOption(props, ref) {
20
20
  var children = props.children,
21
21
  value = props.value,
22
22
  disabled = props.disabled,
23
+ className = props.className,
23
24
  onChangeSelect = props.onChangeSelect,
24
25
  _props$city = props.city,
25
26
  city = _props$city === void 0 ? {} : _props$city,
@@ -32,7 +33,7 @@ var InternalOption = function InternalOption(props, ref) {
32
33
  prefixCls = _useContext.prefixCls;
33
34
  var selectOptionPrefixCls = getPrefixCls(prefixCls, 'city-picker-list-item');
34
35
  var isSelected = id !== undefined ? id === value : false;
35
- var optionCls = (0, _classnames.default)(selectOptionPrefixCls, (_classNames = {}, (0, _defineProperty2.default)(_classNames, "".concat(selectOptionPrefixCls, "-selected"), isSelected), (0, _defineProperty2.default)(_classNames, "".concat(selectOptionPrefixCls, "-disabled"), disabled), _classNames));
36
+ var optionCls = (0, _classnames.default)(selectOptionPrefixCls, className, (_classNames = {}, (0, _defineProperty2.default)(_classNames, "".concat(selectOptionPrefixCls, "-selected"), isSelected), (0, _defineProperty2.default)(_classNames, "".concat(selectOptionPrefixCls, "-disabled"), disabled), _classNames));
36
37
  var handleClick = function handleClick(e) {
37
38
  e.preventDefault();
38
39
  if (disabled || id === undefined) return;
@@ -121,6 +121,9 @@
121
121
  -ms-flex-direction: column;
122
122
  flex-direction: column;
123
123
  }
124
+ .kd-city-picker-selector {
125
+ width: 100%;
126
+ }
124
127
  .kd-city-picker-selector:hover .kd-city-picker-icon-active {
125
128
  color: #3761ca;
126
129
  }
@@ -341,11 +344,20 @@
341
344
  background-color: var(--kd-c-city-picker-color-background-selected, var(--kd-g-color-theme-3, #e3eeff));
342
345
  color: var(--kd-c-city-picker-list-item-color-text-selected, var(--kd-g-color-theme, #5582f3));
343
346
  }
347
+ .kd-city-picker-list-item-selected:not(.kd-city-picker-list-item-disabled) .kd-city-picker-list-item-info {
348
+ color: var(--kd-c-city-picker-list-item-color-text-selected, var(--kd-g-color-theme, #5582f3));
349
+ }
344
350
  .kd-city-picker-list-item-disabled {
345
351
  color: var(--kd-c-city-picker-item-color-text-disabled, var(--kd-g-color-disabled, #b2b2b2));
346
352
  cursor: not-allowed;
347
353
  background-color: var(--kd-c-city-picker-item-color-background-disabled, #fff);
348
354
  }
355
+ .kd-city-picker-list > .kd-city-picker-list-item-match {
356
+ color: var(--kd-c-city-picker-footer-color-text, var(--kd-g-color-text-primary, #212121));
357
+ }
358
+ .kd-city-picker-list > .kd-city-picker-list-item-match .kd-city-picker-list-item-info {
359
+ color: var(--kd-c-city-picker-placeholder-color-text, #b2b2b2);
360
+ }
349
361
  .kd-city-picker-highlight {
350
362
  color: var(--kd-c-city-picker-highlight-color-text, var(--kd-g-color-theme, #5582f3));
351
363
  }
@@ -14,6 +14,9 @@
14
14
  display: flex;
15
15
  flex-direction: column;
16
16
 
17
+ &-selector {
18
+ width: 100%;
19
+ }
17
20
  &-selector:hover {
18
21
  .@{city-picker-prefix-cls}-icon-active {
19
22
  color: #3761ca;
@@ -225,6 +228,10 @@
225
228
  &-selected:not(&-disabled) {
226
229
  background-color: @city-picker-item-selected-bg;
227
230
  color: @city-picker-list-item-color-selected;
231
+
232
+ .@{city-picker-prefix-cls}-list-item-info {
233
+ color: @city-picker-list-item-color-selected;
234
+ }
228
235
  }
229
236
 
230
237
  &-disabled {
@@ -233,6 +240,13 @@
233
240
  background-color: @city-picker-disabled-option-bg;
234
241
  }
235
242
  }
243
+
244
+ & > .@{city-picker-prefix-cls}-list-item-match {
245
+ color: @city-picker-font-color;
246
+ .@{city-picker-prefix-cls}-list-item-info {
247
+ color: @city-picker-placeholder-color;
248
+ }
249
+ }
236
250
  }
237
251
 
238
252
  &-highlight {
@@ -8,9 +8,11 @@ Object.defineProperty(exports, "__esModule", {
8
8
  value: true
9
9
  });
10
10
  exports.default = void 0;
11
- var _includes = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/includes"));
11
+ var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
12
12
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
13
13
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/slicedToArray"));
14
+ var _getOwnPropertySymbols = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols"));
15
+ var _includes = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/includes"));
14
16
  var _react = _interopRequireWildcard(require("react"));
15
17
  var _classnames = _interopRequireDefault(require("classnames"));
16
18
  var _ConfigContext = _interopRequireDefault(require("../config-provider/ConfigContext"));
@@ -18,27 +20,37 @@ var _utils = require("../_utils");
18
20
  var _icon = _interopRequireDefault(require("../icon"));
19
21
  function _getRequireWildcardCache(nodeInterop) { if (typeof _WeakMap !== "function") return null; var cacheBabelInterop = new _WeakMap(); var cacheNodeInterop = new _WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
20
22
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && _Object$getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? _Object$getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
23
+ var __rest = void 0 && (void 0).__rest || function (s, e) {
24
+ var t = {};
25
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
26
+ if (s != null && typeof _getOwnPropertySymbols.default === "function") for (var i = 0, p = (0, _getOwnPropertySymbols.default)(s); i < p.length; i++) {
27
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
28
+ }
29
+ return t;
30
+ };
21
31
  var Panel = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
22
32
  var _classNames6, _classNames7, _classNames8;
23
33
  var _React$useContext = _react.default.useContext(_ConfigContext.default),
24
34
  getPrefixCls = _React$useContext.getPrefixCls,
25
35
  prefixCls = _React$useContext.prefixCls,
26
36
  userDefaultProps = _React$useContext.compDefaultProps;
27
- var _getCompProps = (0, _utils.getCompProps)('CollapsePanel', userDefaultProps, props),
28
- disabled = _getCompProps.disabled,
29
- extra = _getCompProps.extra,
30
- assist = _getCompProps.assist,
31
- header = _getCompProps.header,
32
- onChange = _getCompProps.onChange,
33
- panelKey = _getCompProps.panelKey,
34
- innerKey = _getCompProps.innerKey,
35
- bordered = _getCompProps.bordered,
36
- expandIcon = _getCompProps.expandIcon,
37
- expandIconPosition = _getCompProps.expandIconPosition,
38
- style = _getCompProps.style,
39
- className = _getCompProps.className,
40
- children = _getCompProps.children,
41
- customPrefixcls = _getCompProps.prefixCls;
37
+ var _a = (0, _utils.getCompProps)('CollapsePanel', userDefaultProps, props),
38
+ disabled = _a.disabled,
39
+ extra = _a.extra,
40
+ assist = _a.assist,
41
+ header = _a.header,
42
+ onChange = _a.onChange,
43
+ panelKey = _a.panelKey,
44
+ innerKey = _a.innerKey,
45
+ bordered = _a.bordered,
46
+ expandIcon = _a.expandIcon,
47
+ expandIconPosition = _a.expandIconPosition,
48
+ style = _a.style,
49
+ title = _a.title,
50
+ className = _a.className,
51
+ children = _a.children,
52
+ customPrefixcls = _a.prefixCls,
53
+ others = __rest(_a, ["disabled", "extra", "assist", "header", "onChange", "panelKey", "innerKey", "bordered", "expandIcon", "expandIconPosition", "style", "title", "className", "children", "prefixCls"]);
42
54
  var panelPrefixCls = getPrefixCls(prefixCls, 'collapse-panel', customPrefixcls); // 样式前缀
43
55
  var childrenRef = (0, _react.useRef)();
44
56
  var setHeightTimerRef = (0, _react.useRef)(null);
@@ -80,7 +92,8 @@ var Panel = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
80
92
  className: className,
81
93
  onClick: handleClick
82
94
  }, expandIconPosition === 'left' ? renderIcon() : null, header && /*#__PURE__*/_react.default.createElement("span", {
83
- className: headerClassName
95
+ className: headerClassName,
96
+ title: title
84
97
  }, renderReactNode(header)));
85
98
  };
86
99
  var renderRight = function renderRight() {
@@ -147,11 +160,11 @@ var Panel = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
147
160
  expand ? expandWidthoutAnimation(childrenRef.current) : runCollapseAnimation(childrenRef.current);
148
161
  }
149
162
  }, [childrenRef.current, expandAnimation, expand]);
150
- return /*#__PURE__*/_react.default.createElement("div", {
163
+ return /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({
151
164
  className: rootClassName,
152
165
  style: style,
153
166
  ref: panelPrefixClsRef
154
- }, /*#__PURE__*/_react.default.createElement("span", {
167
+ }, others), /*#__PURE__*/_react.default.createElement("span", {
155
168
  className: topClassName
156
169
  }, renderLeft(), renderMiddle(), renderRight()), /*#__PURE__*/_react.default.createElement("div", {
157
170
  className: childrenClassName,
@@ -116,9 +116,12 @@
116
116
  .kd-collapse-panel:last-child {
117
117
  border-top: none;
118
118
  }
119
- .kd-collapse-panel:first-child {
119
+ .kd-collapse-panel-border.kd-collapse-panel:first-child {
120
120
  border-top: var(--kd-c-collapse-border-width, 1px) solid var(--kd-c-collapse-color-border-strong-2, var(--kd-g-color-border-strong-2, #d9d9d9));
121
121
  }
122
+ .kd-collapse-panel-border.kd-collapse-panel:not(:nth-child(1)) {
123
+ border-top: none;
124
+ }
122
125
  .kd-collapse-panel {
123
126
  display: -webkit-inline-box;
124
127
  display: -ms-inline-flexbox;
@@ -9,9 +9,12 @@
9
9
  &-panel:last-child {
10
10
  border-top: none;
11
11
  }
12
- &-panel:first-child {
12
+ &-panel-border&-panel:first-child {
13
13
  border-top: @collapse-border-width solid @collapse-border-color;
14
14
  }
15
+ &-panel-border&-panel:not(:nth-child(1)) {
16
+ border-top: none;
17
+ }
15
18
  &-panel {
16
19
  display: inline-flex;
17
20
  flex-direction: column;
@@ -17,6 +17,7 @@ export interface FormItemProps {
17
17
  validateTrigger?: string | string[];
18
18
  wrapperWidth?: string | number;
19
19
  valuePropName?: string;
20
+ extra?: React.ReactNode;
20
21
  }
21
22
  export declare const INNER_VALUE_PROPS_LIST: {
22
23
  name: string;
package/lib/form/Field.js CHANGED
@@ -114,7 +114,8 @@ var Field = function Field(props) {
114
114
  wrapperWidth = props.wrapperWidth,
115
115
  validateTrigger = props.validateTrigger,
116
116
  defaultValue = props.defaultValue,
117
- valuePropName = props.valuePropName;
117
+ valuePropName = props.valuePropName,
118
+ extra = props.extra;
118
119
  var htmlFor = customizeHtmlFor || (name ? (0, _concat.default)(_context = "form_".concat(name, "_")).call(_context, (Math.random() * 100).toFixed(0)) : undefined);
119
120
  var childrenNode = null;
120
121
  var innerValuePropName = 'value';
@@ -200,7 +201,7 @@ var Field = function Field(props) {
200
201
  };
201
202
  }, []);
202
203
  var formPrefixCls = getPrefixCls === null || getPrefixCls === void 0 ? void 0 : getPrefixCls(prefixCls, 'form', customizePrefixcls);
203
- var formItemClassName = (0, _classnames2.default)((_classnames = {}, (0, _defineProperty2.default)(_classnames, "".concat(formPrefixCls), true), (0, _defineProperty2.default)(_classnames, "".concat(formPrefixCls, "-field"), true), (0, _defineProperty2.default)(_classnames, "".concat(formPrefixCls, "-field-hidden"), hidden), (0, _defineProperty2.default)(_classnames, "".concat(formPrefixCls, "-field-vertical"), vertical), _classnames), className);
204
+ var formItemClassName = (0, _classnames2.default)((_classnames = {}, (0, _defineProperty2.default)(_classnames, "".concat(formPrefixCls), true), (0, _defineProperty2.default)(_classnames, "".concat(formPrefixCls, "-field"), true), (0, _defineProperty2.default)(_classnames, "".concat(formPrefixCls, "-field-hidden"), hidden), (0, _defineProperty2.default)(_classnames, "".concat(formPrefixCls, "-field-vertical"), vertical), (0, _defineProperty2.default)(_classnames, "".concat(formPrefixCls, "-field-extra"), extra), _classnames), className);
204
205
  var value = getFieldValue(name);
205
206
  var validateMessage = getFieldError(name);
206
207
  var getInputValueFormProp = function getInputValueFormProp(evt) {
@@ -295,7 +296,8 @@ var Field = function Field(props) {
295
296
  requiredMark: mergedRequired
296
297
  }), /*#__PURE__*/_react.default.createElement(_FieldWrapper.default, {
297
298
  width: wrapperWidth,
298
- validateMessage: validateMessage
299
+ validateMessage: validateMessage,
300
+ extra: extra
299
301
  }, (0, _map.default)(childrenArray).call(childrenArray, function (child, index) {
300
302
  var keys = mergeProps((0, _extends3.default)((0, _extends3.default)({}, generateEventHandler(handleValueValidate, validateTrigger)), {
301
303
  key: index,
@@ -1,5 +1,6 @@
1
1
  import React from 'react';
2
2
  export interface FieldWrapperProps {
3
+ extra?: React.ReactNode;
3
4
  children?: React.ReactNode;
4
5
  width?: string | number;
5
6
  validateMessage?: string;
@@ -23,19 +23,27 @@ var FieldWrapper = function FieldWrapper(props) {
23
23
  var children = wrapperProps.children,
24
24
  customizePrefixCls = wrapperProps.prefixCls,
25
25
  width = wrapperProps.width,
26
- validateMessage = wrapperProps.validateMessage;
26
+ validateMessage = wrapperProps.validateMessage,
27
+ extra = wrapperProps.extra;
27
28
  var wrapperPrefixCls = getPrefixCls === null || getPrefixCls === void 0 ? void 0 : getPrefixCls(prefixCls, 'form-field-wrapper', customizePrefixCls);
28
29
  var wrapperClassName = (0, _classnames.default)(["".concat(wrapperPrefixCls)]);
29
30
  var messageClassName = (0, _classnames.default)(["".concat(wrapperPrefixCls, "-message")]);
31
+ var validate = validateMessage ? /*#__PURE__*/_react.default.createElement("p", {
32
+ className: messageClassName,
33
+ title: validateMessage
34
+ }, validateMessage) : null;
30
35
  return /*#__PURE__*/_react.default.createElement("div", {
31
36
  className: wrapperClassName,
32
37
  style: {
33
38
  width: width
34
39
  }
35
- }, children, validateMessage && /*#__PURE__*/_react.default.createElement("p", {
36
- className: messageClassName,
37
- title: validateMessage
38
- }, validateMessage));
40
+ }, children, extra ? /*#__PURE__*/_react.default.createElement("div", {
41
+ className: "".concat(wrapperPrefixCls, "-extra")
42
+ }, /*#__PURE__*/_react.default.createElement("div", {
43
+ className: "".concat(wrapperPrefixCls, "-extra-message")
44
+ }, validateMessage), /*#__PURE__*/_react.default.createElement("div", {
45
+ className: "".concat(wrapperPrefixCls, "-extra-text")
46
+ }, extra)) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, validate));
39
47
  };
40
48
  var _default = FieldWrapper;
41
49
  exports.default = _default;
@@ -152,6 +152,9 @@
152
152
  .kd-form-field-hidden {
153
153
  display: none !important;
154
154
  }
155
+ .kd-form-field-extra {
156
+ margin-bottom: calc(var(--kd-c-form-field-spacing-margin-bottom, 22px) * 2);
157
+ }
155
158
  .kd-form-field-label {
156
159
  font-size: var(--kd-c-form-field-label-font-size, 12px);
157
160
  line-height: var(--kd-c-form-field-label-line-height, 18px);
@@ -178,7 +181,8 @@
178
181
  .kd-form-field-wrapper {
179
182
  position: relative;
180
183
  }
181
- .kd-form-field-wrapper-message {
184
+ .kd-form-field-wrapper-message,
185
+ .kd-form-field-wrapper-extra {
182
186
  position: absolute;
183
187
  left: -7px;
184
188
  right: 0;
@@ -191,3 +195,9 @@
191
195
  white-space: nowrap;
192
196
  text-overflow: ellipsis;
193
197
  }
198
+ .kd-form-field-wrapper-extra-message {
199
+ color: var(--kd-c-form-error-color, var(--kd-g-color-error, #fb2323));
200
+ }
201
+ .kd-form-field-wrapper-extra-text {
202
+ color: var(--kd-c-form-extra-color, var(--kd-g-color-text-third, #999));
203
+ }
@@ -46,6 +46,10 @@
46
46
  &-hidden {
47
47
  display: none !important;
48
48
  }
49
+
50
+ &-extra {
51
+ margin-bottom: calc(@form-field-spacing-margin-bottom * 2);
52
+ }
49
53
  }
50
54
 
51
55
  .@{field-label-cls} {
@@ -76,7 +80,8 @@
76
80
 
77
81
  .@{field-wrapper-cls} {
78
82
  position: relative;
79
- &-message {
83
+
84
+ &-message, &-extra {
80
85
  position: absolute;
81
86
  left: -7px;
82
87
  right: 0;
@@ -89,4 +94,14 @@
89
94
  white-space: nowrap;
90
95
  text-overflow: ellipsis;
91
96
  }
97
+
98
+ &-extra {
99
+ &-message {
100
+ color: @form-error-color;
101
+ }
102
+
103
+ &-text {
104
+ color: @form-extra-color;
105
+ }
106
+ }
92
107
  }
@@ -5,6 +5,7 @@
5
5
  // color
6
6
  @form-field-color: var(~'@{form-prefix}-field-color', @color-text-secondary);
7
7
  @form-error-color: var(~'@{form-prefix}-error-color', @color-error);
8
+ @form-extra-color: var(~'@{form-prefix}-extra-color', @color-text-third);
8
9
 
9
10
  // font
10
11
  @form-field-label-font-size: var(~'@{form-prefix}-field-label-font-size',12px);
package/lib/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;
@@ -456,7 +456,8 @@ var InternalTreeSelect = function InternalTreeSelect(props, ref) {
456
456
  onClose: function onClose(e) {
457
457
  return handleRemove(e, key);
458
458
  },
459
- "data-tag": key
459
+ "data-tag": key,
460
+ title: label
460
461
  }, label));
461
462
  }), maxTagCount && selectTreeNodes.length > maxTagCount ? maxTagPlaceholder ? handleMaxTagHolder() : /*#__PURE__*/_react.default.createElement("span", {
462
463
  className: itemCls
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kdcloudjs/kdesign",
3
- "version": "1.7.25",
3
+ "version": "1.7.26",
4
4
  "description": "KDesign 金蝶前端react 组件库",
5
5
  "title": "kdesign",
6
6
  "keywords": [