@kdcloudjs/kdesign 1.7.5 → 1.7.6

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.
package/es/form/Field.js CHANGED
@@ -289,6 +289,7 @@ var Field = function Field(props) {
289
289
  }, _mapInstanceProperty(childrenArray).call(childrenArray, function (child, index) {
290
290
  var keys = mergeProps(_extends(_extends({}, generateEventHandler(handleValueValidate, validateTrigger)), {
291
291
  key: index,
292
+ status: typeof validateMessage !== 'undefined' ? 'error' : undefined,
292
293
  id: customizeHtmlFor ? undefined : htmlFor
293
294
  }), child);
294
295
  return child ? /*#__PURE__*/React.cloneElement(child, keys) : child;
@@ -22,6 +22,7 @@ interface ClearableInputProps {
22
22
  addonAfter?: React.ReactNode;
23
23
  numberMark?: React.ReactNode;
24
24
  inputCount?: React.ReactNode;
25
+ status?: 'error';
25
26
  }
26
27
  declare const ClearableInput: React.FC<ClearableInputProps>;
27
28
  export default ClearableInput;
@@ -28,7 +28,8 @@ var ClearableInput = function ClearableInput(props) {
28
28
  focused = props.focused,
29
29
  numberMark = props.numberMark,
30
30
  inputCount = props.inputCount,
31
- count = props.count;
31
+ count = props.count,
32
+ status = props.status;
32
33
  var _useState = useState(false),
33
34
  _useState2 = _slicedToArray(_useState, 2),
34
35
  isMouseEnter = _useState2[0],
@@ -80,7 +81,7 @@ var ClearableInput = function ClearableInput(props) {
80
81
  className: "".concat(prefixCls, "-prefix"),
81
82
  onMouseDown: mouseDownHandle
82
83
  }, prefix) : null;
83
- var inputWrapperClasses = classNames((_classNames2 = {}, _defineProperty(_classNames2, "".concat(prefixCls, "-wrapper"), true), _defineProperty(_classNames2, "".concat(prefixCls, "-wrapper-focused"), focused && !disabled), _defineProperty(_classNames2, "".concat(prefixCls, "-wrapper-disabled"), disabled), _defineProperty(_classNames2, _concatInstanceProperty(_context = "".concat(prefixCls, "-wrapper-size-")).call(_context, size), size), _defineProperty(_classNames2, "".concat(prefixCls, "-wrapper-borderless"), borderType === 'none'), _defineProperty(_classNames2, "".concat(prefixCls, "-wrapper-underline"), borderType === 'underline'), _classNames2), _defineProperty({}, className, className && !addonBefore && !addonAfter));
84
+ var inputWrapperClasses = classNames((_classNames2 = {}, _defineProperty(_classNames2, "".concat(prefixCls, "-wrapper"), true), _defineProperty(_classNames2, "".concat(prefixCls, "-wrapper-focused"), focused && !disabled), _defineProperty(_classNames2, _concatInstanceProperty(_context = "".concat(prefixCls, "-wrapper-size-")).call(_context, size), size), _defineProperty(_classNames2, "".concat(prefixCls, "-wrapper-borderless"), borderType === 'none'), _defineProperty(_classNames2, "".concat(prefixCls, "-wrapper-underline"), borderType === 'underline'), _defineProperty(_classNames2, "".concat(prefixCls, "-error"), status === 'error'), _defineProperty(_classNames2, "".concat(prefixCls, "-wrapper-disabled"), disabled), _classNames2), _defineProperty({}, className, className && !addonBefore && !addonAfter));
84
85
  return /*#__PURE__*/React.createElement("span", {
85
86
  className: inputWrapperClasses,
86
87
  style: style,
@@ -95,7 +96,7 @@ var ClearableInput = function ClearableInput(props) {
95
96
  if (!addonBefore && !addonAfter && !count) {
96
97
  return originElement;
97
98
  }
98
- var addonClassName = classNames("".concat(prefixCls, "-group-addon"), (_classNames4 = {}, _defineProperty(_classNames4, "".concat(prefixCls, "-group-addon-borderless"), borderType === 'none'), _defineProperty(_classNames4, "".concat(prefixCls, "-group-addon-underline"), borderType === 'underline'), _defineProperty(_classNames4, "".concat(prefixCls, "-group-addon-disabled"), disabled), _classNames4));
99
+ var addonClassName = classNames("".concat(prefixCls, "-group-addon"), (_classNames4 = {}, _defineProperty(_classNames4, "".concat(prefixCls, "-group-addon-borderless"), borderType === 'none'), _defineProperty(_classNames4, "".concat(prefixCls, "-group-addon-underline"), borderType === 'underline'), _defineProperty(_classNames4, "".concat(prefixCls, "-error"), status === 'error'), _defineProperty(_classNames4, "".concat(prefixCls, "-group-addon-disabled"), disabled), _classNames4));
99
100
  var addonBeforeNode = addonBefore ? /*#__PURE__*/React.createElement("span", {
100
101
  className: addonClassName
101
102
  }, addonBefore) : null;
@@ -14,6 +14,7 @@ export interface textAreaProps extends React.TextareaHTMLAttributes<HTMLInputEle
14
14
  style?: Record<string, unknown>;
15
15
  size?: InputSiteType;
16
16
  autoSize?: AutoSizeType | boolean;
17
+ status?: 'error';
17
18
  }
18
19
  export interface AutoSizeType {
19
20
  minRows?: number;
@@ -51,7 +51,8 @@ var InternalTextarea = function InternalTextarea(props, ref) {
51
51
  placeholder = textAreaProps.placeholder,
52
52
  style = textAreaProps.style,
53
53
  size = textAreaProps.size,
54
- others = __rest(textAreaProps, ["value", "allowClear", "borderType", "defaultValue", "count", "countPosition", "autoSize", "className", "prefixCls", "canResize", "maxLength", "disabled", "onBlur", "onFocus", "onChange", "placeholder", "style", "size"]);
54
+ status = textAreaProps.status,
55
+ others = __rest(textAreaProps, ["value", "allowClear", "borderType", "defaultValue", "count", "countPosition", "autoSize", "className", "prefixCls", "canResize", "maxLength", "disabled", "onBlur", "onFocus", "onChange", "placeholder", "style", "size", "status"]);
55
56
  var textAreaPrefixCls = getPrefixCls(prefixCls, 'input', customPrefixcls); // TextArea样式前缀
56
57
  devWarning(BorderTypes.indexOf(borderType) === -1, 'textarea', "cannot found textarea borderType '".concat(borderType, "'"));
57
58
  var _useMergedState = useMergedState('', {
@@ -172,7 +173,7 @@ var InternalTextarea = function InternalTextarea(props, ref) {
172
173
  ref: textareaRef,
173
174
  disabled: disabled,
174
175
  style: _extends({}, textareaStyles, hadCount || !!allowClear ? otherStyles : style),
175
- className: classNames("".concat(prefixCls, "-textarea"), (_classNames2 = {}, _defineProperty(_classNames2, _concatInstanceProperty(_context = "".concat(prefixCls, "-size-")).call(_context, size), size), _defineProperty(_classNames2, "".concat(prefixCls, "-borderless"), borderType === 'none'), _defineProperty(_classNames2, "".concat(prefixCls, "-underline"), borderType === 'underline'), _defineProperty(_classNames2, "".concat(prefixCls, "-disabled"), disabled), _defineProperty(_classNames2, "".concat(prefixCls, "-no-resize"), canResize !== true), _defineProperty(_classNames2, "".concat(prefixCls, "-allowClear-spacing"), !!allowClear), _classNames2), _defineProperty({}, className, className && !allowClear && !hadCount)),
176
+ className: classNames("".concat(prefixCls, "-textarea"), (_classNames2 = {}, _defineProperty(_classNames2, _concatInstanceProperty(_context = "".concat(prefixCls, "-size-")).call(_context, size), size), _defineProperty(_classNames2, "".concat(prefixCls, "-borderless"), borderType === 'none'), _defineProperty(_classNames2, "".concat(prefixCls, "-underline"), borderType === 'underline'), _defineProperty(_classNames2, "".concat(prefixCls, "-no-resize"), canResize !== true), _defineProperty(_classNames2, "".concat(prefixCls, "-allowClear-spacing"), !!allowClear), _defineProperty(_classNames2, "".concat(prefixCls, "-error"), status === 'error'), _defineProperty(_classNames2, "".concat(prefixCls, "-disabled"), disabled), _classNames2), _defineProperty({}, className, className && !allowClear && !hadCount)),
176
177
  onChange: handleChange,
177
178
  onFocus: !disabled ? handleFocus : undefined,
178
179
  onBlur: !disabled ? handleBlur : undefined,
@@ -22,6 +22,7 @@ export interface InputProps extends Omit<React.InputHTMLAttributes<HTMLInputElem
22
22
  value?: any;
23
23
  readonly?: 'readonly';
24
24
  count?: boolean;
25
+ status?: 'error';
25
26
  }
26
27
  declare const Input: React.ForwardRefExoticComponent<InputProps & React.RefAttributes<unknown>>;
27
28
  export default Input;
package/es/input/input.js CHANGED
@@ -49,7 +49,8 @@ var InternalInput = function InternalInput(props, ref) {
49
49
  className = inputProps.className,
50
50
  maxLength = inputProps.maxLength,
51
51
  count = inputProps.count,
52
- others = __rest(inputProps, ["type", "size", "disabled", "onPressEnter", "borderType", "prefixCls", "onFocus", "onBlur", "onChange", "placeholderTobeValue", "defaultValue", "value", "className", "maxLength", "count"]);
52
+ status = inputProps.status,
53
+ others = __rest(inputProps, ["type", "size", "disabled", "onPressEnter", "borderType", "prefixCls", "onFocus", "onBlur", "onChange", "placeholderTobeValue", "defaultValue", "value", "className", "maxLength", "count", "status"]);
53
54
  devWarning(InputSiteTypes.indexOf(size) === -1, 'input', "cannot found input size '".concat(size, "'"));
54
55
  devWarning(BorderTypes.indexOf(borderType) === -1, 'input', "cannot found input borderType '".concat(borderType, "'"));
55
56
  var _useMergedState = useMergedState('', {
@@ -72,7 +73,7 @@ var InternalInput = function InternalInput(props, ref) {
72
73
  var inputPrefixCls = getPrefixCls(prefixCls, 'input', customPrefixcls); // 按钮样式前缀
73
74
  var addonBefore = others.addonBefore,
74
75
  addonAfter = others.addonAfter;
75
- var inputClasses = classNames(inputPrefixCls, (_classNames = {}, _defineProperty(_classNames, _concatInstanceProperty(_context = "".concat(inputPrefixCls, "-size-")).call(_context, size), size), _defineProperty(_classNames, "".concat(inputPrefixCls, "-borderless"), borderType === 'none'), _defineProperty(_classNames, "".concat(inputPrefixCls, "-underline"), borderType === 'underline'), _defineProperty(_classNames, "".concat(inputPrefixCls, "-disabled"), disabled), _classNames), _defineProperty({}, className, className && !hasPrefixSuffix(inputProps) && !addonBefore && !addonAfter));
76
+ var inputClasses = classNames(inputPrefixCls, (_classNames = {}, _defineProperty(_classNames, _concatInstanceProperty(_context = "".concat(inputPrefixCls, "-size-")).call(_context, size), size), _defineProperty(_classNames, "".concat(inputPrefixCls, "-borderless"), borderType === 'none'), _defineProperty(_classNames, "".concat(inputPrefixCls, "-underline"), borderType === 'underline'), _defineProperty(_classNames, "".concat(inputPrefixCls, "-error"), status === 'error'), _defineProperty(_classNames, "".concat(inputPrefixCls, "-disabled"), disabled), _classNames), _defineProperty({}, className, className && !hasPrefixSuffix(inputProps) && !addonBefore && !addonAfter));
76
77
  var handleFocus = function handleFocus(event) {
77
78
  setFocused(true);
78
79
  onFocus && onFocus(event);
@@ -146,10 +146,10 @@ textarea {
146
146
  box-shadow: none;
147
147
  outline: none;
148
148
  }
149
- .kd-input:not(.kd-input-disabled):hover {
149
+ .kd-input:not(.kd-input-disabled):not(.kd-input-error):hover {
150
150
  border-color: var(--kd-c-input-color-border-focused, var(--kd-g-color-theme, #5582f3));
151
151
  }
152
- .kd-input:not(.kd-input-disabled):focus {
152
+ .kd-input:not(.kd-input-disabled):not(.kd-input-error):focus {
153
153
  color: #212121;
154
154
  border-color: var(--kd-c-input-color-border-focused, var(--kd-g-color-theme, #5582f3));
155
155
  }
@@ -193,10 +193,10 @@ textarea {
193
193
  box-shadow: none;
194
194
  outline: none;
195
195
  }
196
- .kd-input-textarea:not(.kd-input-disabled):hover {
196
+ .kd-input-textarea:not(.kd-input-disabled):not(.kd-input-error):hover {
197
197
  border-color: var(--kd-c-input-color-border-focused, var(--kd-g-color-theme, #5582f3));
198
198
  }
199
- .kd-input-textarea:not(.kd-input-disabled):focus {
199
+ .kd-input-textarea:not(.kd-input-disabled):not(.kd-input-error):focus {
200
200
  color: #212121;
201
201
  border-color: var(--kd-c-input-color-border-focused, var(--kd-g-color-theme, #5582f3));
202
202
  }
@@ -300,10 +300,10 @@ textarea {
300
300
  box-shadow: none;
301
301
  outline: none;
302
302
  }
303
- .kd-input-wrapper:not(.kd-input-wrapper-disabled):hover {
303
+ .kd-input-wrapper:not(.kd-input-wrapper-disabled):not(.kd-input-error):hover {
304
304
  border-color: var(--kd-c-input-color-border-focused, var(--kd-g-color-theme, #5582f3));
305
305
  }
306
- .kd-input-wrapper:not(.kd-input-wrapper-disabled):focus {
306
+ .kd-input-wrapper:not(.kd-input-wrapper-disabled):not(.kd-input-error):focus {
307
307
  color: #212121;
308
308
  border-color: var(--kd-c-input-color-border-focused, var(--kd-g-color-theme, #5582f3));
309
309
  }
@@ -363,7 +363,7 @@ textarea {
363
363
  border-radius: 0 !important;
364
364
  padding-left: 0;
365
365
  }
366
- .kd-input-wrapper-focused {
366
+ .kd-input-wrapper-focused:not(.kd-input-error) {
367
367
  border-color: var(--kd-c-input-color-border-focused, var(--kd-g-color-theme, #5582f3));
368
368
  }
369
369
  .kd-input-wrapper-disabled {
@@ -408,10 +408,10 @@ textarea {
408
408
  box-shadow: none;
409
409
  outline: none;
410
410
  }
411
- .kd-input-wrapper-textarea:not(.kd-input-disabled):hover {
411
+ .kd-input-wrapper-textarea:not(.kd-input-disabled):not(.kd-input-error):hover {
412
412
  border-color: var(--kd-c-input-color-border-focused, var(--kd-g-color-theme, #5582f3));
413
413
  }
414
- .kd-input-wrapper-textarea:not(.kd-input-disabled):focus {
414
+ .kd-input-wrapper-textarea:not(.kd-input-disabled):not(.kd-input-error):focus {
415
415
  color: #212121;
416
416
  border-color: var(--kd-c-input-color-border-focused, var(--kd-g-color-theme, #5582f3));
417
417
  }
@@ -537,3 +537,6 @@ textarea {
537
537
  .kd-input-input-mark-inner {
538
538
  color: var(--kd-c-input-placeholder-color-text, var(--kd-g-color-text-placeholder, #ccc));
539
539
  }
540
+ .kd-input-error:not(.kd-input-disabled):not(.kd-input-wrapper-disabled):not(.kd-input-group-addon-disabled) {
541
+ border-color: var(--kd-c-input-color-error, var(--kd-g-color-error, #fb2323));
542
+ }
@@ -152,7 +152,7 @@ textarea {
152
152
  .underline;
153
153
  }
154
154
 
155
- &-focused {
155
+ &-focused:not(.@{input-prefix-cls}-error) {
156
156
  border-color: @input-border-color-focused;
157
157
  }
158
158
 
@@ -308,4 +308,8 @@ textarea {
308
308
  &-input-mark-inner {
309
309
  color: @input-placeholder-color-inner;
310
310
  }
311
+
312
+ &-error:not(.@{input-prefix-cls}-disabled):not(.@{input-prefix-cls}-wrapper-disabled):not(.@{input-prefix-cls}-group-addon-disabled) {
313
+ border-color: @input-error-color;
314
+ }
311
315
  }
@@ -1,8 +1,11 @@
1
+ @import '../../style/themes/index';
1
2
  @import './token.less';
3
+ @input-prefix-cls: ~'@{kd-prefix}-input';
2
4
 
3
5
  // 输入框默认样式Mixins
4
6
  .input(@prefix) {
5
7
  @disabled-prefix-cls: ~'@{prefix}-disabled';
8
+ @error-prefix-cls: ~'@{input-prefix-cls}-error';
6
9
  width: 100%;
7
10
  min-width: 0;
8
11
  border: @input-border-width-inner solid @input-border-color-disabled-inner;
@@ -29,10 +32,10 @@
29
32
  box-shadow: none;
30
33
  outline: none;
31
34
  }
32
- &:not(.@{disabled-prefix-cls}):hover {
35
+ &:not(.@{disabled-prefix-cls}):not(.@{error-prefix-cls}):hover {
33
36
  border-color: @input-border-color-focused;
34
37
  }
35
- &:not(.@{disabled-prefix-cls}):focus {
38
+ &:not(.@{disabled-prefix-cls}):not(.@{error-prefix-cls}):focus {
36
39
  color: @input-focus-color;
37
40
  border-color: @input-border-color-focused;
38
41
  }
@@ -21,6 +21,7 @@
21
21
  );
22
22
  @input-color-disabled-inner: var(~'@{input-prefix}-color-disabled', @color-disabled);
23
23
  @input-affix-color: var(~'@{input-prefix}-affix-color-text', #666);
24
+ @input-error-color: var(~'@{input-prefix}-color-error', @color-error);
24
25
 
25
26
  // font
26
27
  @input-small-font-size-inner: var(~'@{input-prefix}-font-size-small', @font-size-small);
package/lib/form/Field.js CHANGED
@@ -301,6 +301,7 @@ var Field = function Field(props) {
301
301
  }, (0, _map.default)(childrenArray).call(childrenArray, function (child, index) {
302
302
  var keys = mergeProps((0, _extends3.default)((0, _extends3.default)({}, generateEventHandler(handleValueValidate, validateTrigger)), {
303
303
  key: index,
304
+ status: typeof validateMessage !== 'undefined' ? 'error' : undefined,
304
305
  id: customizeHtmlFor ? undefined : htmlFor
305
306
  }), child);
306
307
  return child ? /*#__PURE__*/_react.default.cloneElement(child, keys) : child;
@@ -22,6 +22,7 @@ interface ClearableInputProps {
22
22
  addonAfter?: React.ReactNode;
23
23
  numberMark?: React.ReactNode;
24
24
  inputCount?: React.ReactNode;
25
+ status?: 'error';
25
26
  }
26
27
  declare const ClearableInput: React.FC<ClearableInputProps>;
27
28
  export default ClearableInput;
@@ -41,7 +41,8 @@ var ClearableInput = function ClearableInput(props) {
41
41
  focused = props.focused,
42
42
  numberMark = props.numberMark,
43
43
  inputCount = props.inputCount,
44
- count = props.count;
44
+ count = props.count,
45
+ status = props.status;
45
46
  var _useState = (0, _react.useState)(false),
46
47
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
47
48
  isMouseEnter = _useState2[0],
@@ -93,7 +94,7 @@ var ClearableInput = function ClearableInput(props) {
93
94
  className: "".concat(prefixCls, "-prefix"),
94
95
  onMouseDown: mouseDownHandle
95
96
  }, prefix) : null;
96
- var inputWrapperClasses = (0, _classnames.default)((_classNames2 = {}, (0, _defineProperty2.default)(_classNames2, "".concat(prefixCls, "-wrapper"), true), (0, _defineProperty2.default)(_classNames2, "".concat(prefixCls, "-wrapper-focused"), focused && !disabled), (0, _defineProperty2.default)(_classNames2, "".concat(prefixCls, "-wrapper-disabled"), disabled), (0, _defineProperty2.default)(_classNames2, (0, _concat.default)(_context = "".concat(prefixCls, "-wrapper-size-")).call(_context, size), size), (0, _defineProperty2.default)(_classNames2, "".concat(prefixCls, "-wrapper-borderless"), borderType === 'none'), (0, _defineProperty2.default)(_classNames2, "".concat(prefixCls, "-wrapper-underline"), borderType === 'underline'), _classNames2), (0, _defineProperty2.default)({}, className, className && !addonBefore && !addonAfter));
97
+ var inputWrapperClasses = (0, _classnames.default)((_classNames2 = {}, (0, _defineProperty2.default)(_classNames2, "".concat(prefixCls, "-wrapper"), true), (0, _defineProperty2.default)(_classNames2, "".concat(prefixCls, "-wrapper-focused"), focused && !disabled), (0, _defineProperty2.default)(_classNames2, (0, _concat.default)(_context = "".concat(prefixCls, "-wrapper-size-")).call(_context, size), size), (0, _defineProperty2.default)(_classNames2, "".concat(prefixCls, "-wrapper-borderless"), borderType === 'none'), (0, _defineProperty2.default)(_classNames2, "".concat(prefixCls, "-wrapper-underline"), borderType === 'underline'), (0, _defineProperty2.default)(_classNames2, "".concat(prefixCls, "-error"), status === 'error'), (0, _defineProperty2.default)(_classNames2, "".concat(prefixCls, "-wrapper-disabled"), disabled), _classNames2), (0, _defineProperty2.default)({}, className, className && !addonBefore && !addonAfter));
97
98
  return /*#__PURE__*/_react.default.createElement("span", {
98
99
  className: inputWrapperClasses,
99
100
  style: style,
@@ -108,7 +109,7 @@ var ClearableInput = function ClearableInput(props) {
108
109
  if (!addonBefore && !addonAfter && !count) {
109
110
  return originElement;
110
111
  }
111
- var addonClassName = (0, _classnames.default)("".concat(prefixCls, "-group-addon"), (_classNames4 = {}, (0, _defineProperty2.default)(_classNames4, "".concat(prefixCls, "-group-addon-borderless"), borderType === 'none'), (0, _defineProperty2.default)(_classNames4, "".concat(prefixCls, "-group-addon-underline"), borderType === 'underline'), (0, _defineProperty2.default)(_classNames4, "".concat(prefixCls, "-group-addon-disabled"), disabled), _classNames4));
112
+ var addonClassName = (0, _classnames.default)("".concat(prefixCls, "-group-addon"), (_classNames4 = {}, (0, _defineProperty2.default)(_classNames4, "".concat(prefixCls, "-group-addon-borderless"), borderType === 'none'), (0, _defineProperty2.default)(_classNames4, "".concat(prefixCls, "-group-addon-underline"), borderType === 'underline'), (0, _defineProperty2.default)(_classNames4, "".concat(prefixCls, "-error"), status === 'error'), (0, _defineProperty2.default)(_classNames4, "".concat(prefixCls, "-group-addon-disabled"), disabled), _classNames4));
112
113
  var addonBeforeNode = addonBefore ? /*#__PURE__*/_react.default.createElement("span", {
113
114
  className: addonClassName
114
115
  }, addonBefore) : null;
@@ -14,6 +14,7 @@ export interface textAreaProps extends React.TextareaHTMLAttributes<HTMLInputEle
14
14
  style?: Record<string, unknown>;
15
15
  size?: InputSiteType;
16
16
  autoSize?: AutoSizeType | boolean;
17
+ status?: 'error';
17
18
  }
18
19
  export interface AutoSizeType {
19
20
  minRows?: number;
@@ -63,7 +63,8 @@ var InternalTextarea = function InternalTextarea(props, ref) {
63
63
  placeholder = textAreaProps.placeholder,
64
64
  style = textAreaProps.style,
65
65
  size = textAreaProps.size,
66
- others = __rest(textAreaProps, ["value", "allowClear", "borderType", "defaultValue", "count", "countPosition", "autoSize", "className", "prefixCls", "canResize", "maxLength", "disabled", "onBlur", "onFocus", "onChange", "placeholder", "style", "size"]);
66
+ status = textAreaProps.status,
67
+ others = __rest(textAreaProps, ["value", "allowClear", "borderType", "defaultValue", "count", "countPosition", "autoSize", "className", "prefixCls", "canResize", "maxLength", "disabled", "onBlur", "onFocus", "onChange", "placeholder", "style", "size", "status"]);
67
68
  var textAreaPrefixCls = getPrefixCls(prefixCls, 'input', customPrefixcls); // TextArea样式前缀
68
69
  (0, _devwarning.default)(_input.BorderTypes.indexOf(borderType) === -1, 'textarea', "cannot found textarea borderType '".concat(borderType, "'"));
69
70
  var _useMergedState = (0, _hooks.useMergedState)('', {
@@ -184,7 +185,7 @@ var InternalTextarea = function InternalTextarea(props, ref) {
184
185
  ref: textareaRef,
185
186
  disabled: disabled,
186
187
  style: (0, _extends2.default)({}, textareaStyles, hadCount || !!allowClear ? otherStyles : style),
187
- className: (0, _classnames.default)("".concat(prefixCls, "-textarea"), (_classNames2 = {}, (0, _defineProperty2.default)(_classNames2, (0, _concat.default)(_context = "".concat(prefixCls, "-size-")).call(_context, size), size), (0, _defineProperty2.default)(_classNames2, "".concat(prefixCls, "-borderless"), borderType === 'none'), (0, _defineProperty2.default)(_classNames2, "".concat(prefixCls, "-underline"), borderType === 'underline'), (0, _defineProperty2.default)(_classNames2, "".concat(prefixCls, "-disabled"), disabled), (0, _defineProperty2.default)(_classNames2, "".concat(prefixCls, "-no-resize"), canResize !== true), (0, _defineProperty2.default)(_classNames2, "".concat(prefixCls, "-allowClear-spacing"), !!allowClear), _classNames2), (0, _defineProperty2.default)({}, className, className && !allowClear && !hadCount)),
188
+ className: (0, _classnames.default)("".concat(prefixCls, "-textarea"), (_classNames2 = {}, (0, _defineProperty2.default)(_classNames2, (0, _concat.default)(_context = "".concat(prefixCls, "-size-")).call(_context, size), size), (0, _defineProperty2.default)(_classNames2, "".concat(prefixCls, "-borderless"), borderType === 'none'), (0, _defineProperty2.default)(_classNames2, "".concat(prefixCls, "-underline"), borderType === 'underline'), (0, _defineProperty2.default)(_classNames2, "".concat(prefixCls, "-no-resize"), canResize !== true), (0, _defineProperty2.default)(_classNames2, "".concat(prefixCls, "-allowClear-spacing"), !!allowClear), (0, _defineProperty2.default)(_classNames2, "".concat(prefixCls, "-error"), status === 'error'), (0, _defineProperty2.default)(_classNames2, "".concat(prefixCls, "-disabled"), disabled), _classNames2), (0, _defineProperty2.default)({}, className, className && !allowClear && !hadCount)),
188
189
  onChange: handleChange,
189
190
  onFocus: !disabled ? handleFocus : undefined,
190
191
  onBlur: !disabled ? handleBlur : undefined,
@@ -22,6 +22,7 @@ export interface InputProps extends Omit<React.InputHTMLAttributes<HTMLInputElem
22
22
  value?: any;
23
23
  readonly?: 'readonly';
24
24
  count?: boolean;
25
+ status?: 'error';
25
26
  }
26
27
  declare const Input: React.ForwardRefExoticComponent<InputProps & React.RefAttributes<unknown>>;
27
28
  export default Input;
@@ -64,7 +64,8 @@ var InternalInput = function InternalInput(props, ref) {
64
64
  className = inputProps.className,
65
65
  maxLength = inputProps.maxLength,
66
66
  count = inputProps.count,
67
- others = __rest(inputProps, ["type", "size", "disabled", "onPressEnter", "borderType", "prefixCls", "onFocus", "onBlur", "onChange", "placeholderTobeValue", "defaultValue", "value", "className", "maxLength", "count"]);
67
+ status = inputProps.status,
68
+ others = __rest(inputProps, ["type", "size", "disabled", "onPressEnter", "borderType", "prefixCls", "onFocus", "onBlur", "onChange", "placeholderTobeValue", "defaultValue", "value", "className", "maxLength", "count", "status"]);
68
69
  (0, _devwarning.default)(InputSiteTypes.indexOf(size) === -1, 'input', "cannot found input size '".concat(size, "'"));
69
70
  (0, _devwarning.default)(BorderTypes.indexOf(borderType) === -1, 'input', "cannot found input borderType '".concat(borderType, "'"));
70
71
  var _useMergedState = (0, _hooks.useMergedState)('', {
@@ -87,7 +88,7 @@ var InternalInput = function InternalInput(props, ref) {
87
88
  var inputPrefixCls = getPrefixCls(prefixCls, 'input', customPrefixcls); // 按钮样式前缀
88
89
  var addonBefore = others.addonBefore,
89
90
  addonAfter = others.addonAfter;
90
- var inputClasses = (0, _classnames.default)(inputPrefixCls, (_classNames = {}, (0, _defineProperty2.default)(_classNames, (0, _concat.default)(_context = "".concat(inputPrefixCls, "-size-")).call(_context, size), size), (0, _defineProperty2.default)(_classNames, "".concat(inputPrefixCls, "-borderless"), borderType === 'none'), (0, _defineProperty2.default)(_classNames, "".concat(inputPrefixCls, "-underline"), borderType === 'underline'), (0, _defineProperty2.default)(_classNames, "".concat(inputPrefixCls, "-disabled"), disabled), _classNames), (0, _defineProperty2.default)({}, className, className && !(0, _ClearableLabeledInput.hasPrefixSuffix)(inputProps) && !addonBefore && !addonAfter));
91
+ var inputClasses = (0, _classnames.default)(inputPrefixCls, (_classNames = {}, (0, _defineProperty2.default)(_classNames, (0, _concat.default)(_context = "".concat(inputPrefixCls, "-size-")).call(_context, size), size), (0, _defineProperty2.default)(_classNames, "".concat(inputPrefixCls, "-borderless"), borderType === 'none'), (0, _defineProperty2.default)(_classNames, "".concat(inputPrefixCls, "-underline"), borderType === 'underline'), (0, _defineProperty2.default)(_classNames, "".concat(inputPrefixCls, "-error"), status === 'error'), (0, _defineProperty2.default)(_classNames, "".concat(inputPrefixCls, "-disabled"), disabled), _classNames), (0, _defineProperty2.default)({}, className, className && !(0, _ClearableLabeledInput.hasPrefixSuffix)(inputProps) && !addonBefore && !addonAfter));
91
92
  var handleFocus = function handleFocus(event) {
92
93
  setFocused(true);
93
94
  onFocus && onFocus(event);
@@ -146,10 +146,10 @@ textarea {
146
146
  box-shadow: none;
147
147
  outline: none;
148
148
  }
149
- .kd-input:not(.kd-input-disabled):hover {
149
+ .kd-input:not(.kd-input-disabled):not(.kd-input-error):hover {
150
150
  border-color: var(--kd-c-input-color-border-focused, var(--kd-g-color-theme, #5582f3));
151
151
  }
152
- .kd-input:not(.kd-input-disabled):focus {
152
+ .kd-input:not(.kd-input-disabled):not(.kd-input-error):focus {
153
153
  color: #212121;
154
154
  border-color: var(--kd-c-input-color-border-focused, var(--kd-g-color-theme, #5582f3));
155
155
  }
@@ -193,10 +193,10 @@ textarea {
193
193
  box-shadow: none;
194
194
  outline: none;
195
195
  }
196
- .kd-input-textarea:not(.kd-input-disabled):hover {
196
+ .kd-input-textarea:not(.kd-input-disabled):not(.kd-input-error):hover {
197
197
  border-color: var(--kd-c-input-color-border-focused, var(--kd-g-color-theme, #5582f3));
198
198
  }
199
- .kd-input-textarea:not(.kd-input-disabled):focus {
199
+ .kd-input-textarea:not(.kd-input-disabled):not(.kd-input-error):focus {
200
200
  color: #212121;
201
201
  border-color: var(--kd-c-input-color-border-focused, var(--kd-g-color-theme, #5582f3));
202
202
  }
@@ -300,10 +300,10 @@ textarea {
300
300
  box-shadow: none;
301
301
  outline: none;
302
302
  }
303
- .kd-input-wrapper:not(.kd-input-wrapper-disabled):hover {
303
+ .kd-input-wrapper:not(.kd-input-wrapper-disabled):not(.kd-input-error):hover {
304
304
  border-color: var(--kd-c-input-color-border-focused, var(--kd-g-color-theme, #5582f3));
305
305
  }
306
- .kd-input-wrapper:not(.kd-input-wrapper-disabled):focus {
306
+ .kd-input-wrapper:not(.kd-input-wrapper-disabled):not(.kd-input-error):focus {
307
307
  color: #212121;
308
308
  border-color: var(--kd-c-input-color-border-focused, var(--kd-g-color-theme, #5582f3));
309
309
  }
@@ -363,7 +363,7 @@ textarea {
363
363
  border-radius: 0 !important;
364
364
  padding-left: 0;
365
365
  }
366
- .kd-input-wrapper-focused {
366
+ .kd-input-wrapper-focused:not(.kd-input-error) {
367
367
  border-color: var(--kd-c-input-color-border-focused, var(--kd-g-color-theme, #5582f3));
368
368
  }
369
369
  .kd-input-wrapper-disabled {
@@ -408,10 +408,10 @@ textarea {
408
408
  box-shadow: none;
409
409
  outline: none;
410
410
  }
411
- .kd-input-wrapper-textarea:not(.kd-input-disabled):hover {
411
+ .kd-input-wrapper-textarea:not(.kd-input-disabled):not(.kd-input-error):hover {
412
412
  border-color: var(--kd-c-input-color-border-focused, var(--kd-g-color-theme, #5582f3));
413
413
  }
414
- .kd-input-wrapper-textarea:not(.kd-input-disabled):focus {
414
+ .kd-input-wrapper-textarea:not(.kd-input-disabled):not(.kd-input-error):focus {
415
415
  color: #212121;
416
416
  border-color: var(--kd-c-input-color-border-focused, var(--kd-g-color-theme, #5582f3));
417
417
  }
@@ -537,3 +537,6 @@ textarea {
537
537
  .kd-input-input-mark-inner {
538
538
  color: var(--kd-c-input-placeholder-color-text, var(--kd-g-color-text-placeholder, #ccc));
539
539
  }
540
+ .kd-input-error:not(.kd-input-disabled):not(.kd-input-wrapper-disabled):not(.kd-input-group-addon-disabled) {
541
+ border-color: var(--kd-c-input-color-error, var(--kd-g-color-error, #fb2323));
542
+ }
@@ -152,7 +152,7 @@ textarea {
152
152
  .underline;
153
153
  }
154
154
 
155
- &-focused {
155
+ &-focused:not(.@{input-prefix-cls}-error) {
156
156
  border-color: @input-border-color-focused;
157
157
  }
158
158
 
@@ -308,4 +308,8 @@ textarea {
308
308
  &-input-mark-inner {
309
309
  color: @input-placeholder-color-inner;
310
310
  }
311
+
312
+ &-error:not(.@{input-prefix-cls}-disabled):not(.@{input-prefix-cls}-wrapper-disabled):not(.@{input-prefix-cls}-group-addon-disabled) {
313
+ border-color: @input-error-color;
314
+ }
311
315
  }
@@ -1,8 +1,11 @@
1
+ @import '../../style/themes/index';
1
2
  @import './token.less';
3
+ @input-prefix-cls: ~'@{kd-prefix}-input';
2
4
 
3
5
  // 输入框默认样式Mixins
4
6
  .input(@prefix) {
5
7
  @disabled-prefix-cls: ~'@{prefix}-disabled';
8
+ @error-prefix-cls: ~'@{input-prefix-cls}-error';
6
9
  width: 100%;
7
10
  min-width: 0;
8
11
  border: @input-border-width-inner solid @input-border-color-disabled-inner;
@@ -29,10 +32,10 @@
29
32
  box-shadow: none;
30
33
  outline: none;
31
34
  }
32
- &:not(.@{disabled-prefix-cls}):hover {
35
+ &:not(.@{disabled-prefix-cls}):not(.@{error-prefix-cls}):hover {
33
36
  border-color: @input-border-color-focused;
34
37
  }
35
- &:not(.@{disabled-prefix-cls}):focus {
38
+ &:not(.@{disabled-prefix-cls}):not(.@{error-prefix-cls}):focus {
36
39
  color: @input-focus-color;
37
40
  border-color: @input-border-color-focused;
38
41
  }
@@ -21,6 +21,7 @@
21
21
  );
22
22
  @input-color-disabled-inner: var(~'@{input-prefix}-color-disabled', @color-disabled);
23
23
  @input-affix-color: var(~'@{input-prefix}-affix-color-text', #666);
24
+ @input-error-color: var(~'@{input-prefix}-color-error', @color-error);
24
25
 
25
26
  // font
26
27
  @input-small-font-size-inner: var(~'@{input-prefix}-font-size-small', @font-size-small);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kdcloudjs/kdesign",
3
- "version": "1.7.5",
3
+ "version": "1.7.6",
4
4
  "description": "KDesign 金蝶前端react 组件库",
5
5
  "title": "kdesign",
6
6
  "keywords": [