colibri-ui 0.7.152 → 0.7.154

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 (51) hide show
  1. package/Calendar/index.js +8 -4
  2. package/Checkbox/Checkbox.module.css +0 -4
  3. package/Checkbox/index.js +13 -18
  4. package/Checkbox/index.props.d.ts +12 -12
  5. package/Datepicker/components/DatePicker/index.d.ts +1 -1
  6. package/Datepicker/components/DatePicker/index.js +23 -10
  7. package/Datepicker/components/DatePicker/index.module.css +27 -20
  8. package/Input/index.d.ts +1 -1
  9. package/Input/index.js +4 -4
  10. package/Input/index.props.d.ts +9 -9
  11. package/MultiSelect/index.d.ts +1 -1
  12. package/MultiSelect/index.js +58 -64
  13. package/MultiSelect/index.module.css +2 -3
  14. package/Select/index.d.ts +1 -1
  15. package/Select/index.js +3 -3
  16. package/Select/index.props.d.ts +14 -14
  17. package/TextArea/index.d.ts +1 -1
  18. package/TextArea/index.js +4 -4
  19. package/TextArea/index.props.d.ts +1 -1
  20. package/base/FormField/index.d.ts +1 -1
  21. package/base/FormField/index.js +8 -10
  22. package/base/FormField/index.props.d.ts +4 -4
  23. package/base/InputRoot/index.d.ts +1 -1
  24. package/base/InputRoot/index.js +6 -7
  25. package/base/InputRoot/index.props.d.ts +1 -1
  26. package/esm/Calendar/index.js +8 -4
  27. package/esm/Checkbox/Checkbox.module.css +0 -4
  28. package/esm/Checkbox/index.js +13 -18
  29. package/esm/Checkbox/index.props.d.ts +12 -12
  30. package/esm/Datepicker/components/DatePicker/index.d.ts +1 -1
  31. package/esm/Datepicker/components/DatePicker/index.js +23 -10
  32. package/esm/Datepicker/components/DatePicker/index.module.css +27 -20
  33. package/esm/Input/index.d.ts +1 -1
  34. package/esm/Input/index.js +4 -4
  35. package/esm/Input/index.props.d.ts +9 -9
  36. package/esm/MultiSelect/index.d.ts +1 -1
  37. package/esm/MultiSelect/index.js +59 -65
  38. package/esm/MultiSelect/index.module.css +2 -3
  39. package/esm/Select/index.d.ts +1 -1
  40. package/esm/Select/index.js +3 -3
  41. package/esm/Select/index.props.d.ts +14 -14
  42. package/esm/TextArea/index.d.ts +1 -1
  43. package/esm/TextArea/index.js +4 -4
  44. package/esm/TextArea/index.props.d.ts +1 -1
  45. package/esm/base/FormField/index.d.ts +1 -1
  46. package/esm/base/FormField/index.js +8 -10
  47. package/esm/base/FormField/index.props.d.ts +4 -4
  48. package/esm/base/InputRoot/index.d.ts +1 -1
  49. package/esm/base/InputRoot/index.js +6 -7
  50. package/esm/base/InputRoot/index.props.d.ts +1 -1
  51. package/package.json +1 -1
package/Calendar/index.js CHANGED
@@ -74,16 +74,20 @@ var Calendar = function Calendar(_a) {
74
74
  var _a;
75
75
  setContentWidth(((_a = $root.current) === null || _a === void 0 ? void 0 : _a.offsetWidth) || 0);
76
76
  }, []);
77
- var showPrevMonth = React.useCallback(function () {
77
+ var showPrevMonth = function showPrevMonth(event) {
78
+ event.preventDefault();
79
+ event.stopPropagation();
78
80
  setCurrentMonthOffset(function (prev) {
79
81
  return prev - 1;
80
82
  });
81
- }, []);
82
- var showNextMonth = React.useCallback(function () {
83
+ };
84
+ var showNextMonth = function showNextMonth(event) {
85
+ event.preventDefault();
86
+ event.stopPropagation();
83
87
  setCurrentMonthOffset(function (prev) {
84
88
  return prev + 1;
85
89
  });
86
- }, []);
90
+ };
87
91
  var selectDate = React.useCallback(function (date, period, rangeCompleted) {
88
92
  setSelectedDate(date);
89
93
  setSelectedPeriod(period);
@@ -3,10 +3,6 @@
3
3
  flex-direction: column;
4
4
  }
5
5
 
6
- .wrapper {
7
- display: flex;
8
- }
9
-
10
6
  .label {
11
7
  cursor: pointer;
12
8
  display: inline-flex;
package/Checkbox/index.js CHANGED
@@ -15,7 +15,7 @@ var styles__default = /*#__PURE__*/_interopDefault(styles);
15
15
 
16
16
  var clx = classNames__default.default.bind(styles__default.default);
17
17
  var Checkbox = function Checkbox(_a) {
18
- var _b, _c;
18
+ var _b;
19
19
  var id = _a.id,
20
20
  name = _a.name,
21
21
  value = _a.value,
@@ -25,20 +25,18 @@ var Checkbox = function Checkbox(_a) {
25
25
  onChange = _a.onChange,
26
26
  onFocus = _a.onFocus,
27
27
  onBlur = _a.onBlur,
28
- _d = _a.variant,
29
- variant = _d === void 0 ? "primary" : _d,
28
+ _c = _a.variant,
29
+ variant = _c === void 0 ? "primary" : _c,
30
30
  className = _a.className,
31
31
  disabled = _a.disabled,
32
- isError = _a.isError;
33
- var control =
34
- /*#__PURE__*/
35
- // eslint-disable-next-line jsx-a11y/label-has-associated-control
36
- React__default.default.createElement("label", {
37
- className: clx(styles__default.default.label)
38
- }, /*#__PURE__*/React__default.default.createElement("div", {
39
- className: clx(styles__default.default.wrapper)
32
+ hasError = _a.hasError;
33
+ return /*#__PURE__*/React__default.default.createElement("div", {
34
+ className: clx(styles__default.default.root)
35
+ }, /*#__PURE__*/React__default.default.createElement("label", {
36
+ className: clx(styles__default.default.label),
37
+ htmlFor: id
40
38
  }, /*#__PURE__*/React__default.default.createElement("input", {
41
- className: clx(styles__default.default.control, (_b = {}, _b["control_variant_".concat(variant)] = !!variant, _b), className),
39
+ className: clx(styles__default.default.control, styles__default.default["control_variant_".concat(variant)], className),
42
40
  type: "checkbox",
43
41
  id: id,
44
42
  name: name,
@@ -49,14 +47,11 @@ var Checkbox = function Checkbox(_a) {
49
47
  onBlur: onBlur,
50
48
  disabled: disabled
51
49
  }), /*#__PURE__*/React__default.default.createElement("span", {
52
- className: clx(styles__default.default["fake-checkbox"], (_c = {}, _c["variant_".concat(variant, "_disabled")] = disabled ? 1 : 0, _c["variant_".concat(variant, "_error")] = isError ? 1 : 0, _c["variant_".concat(variant, "_checked")] = checked ? 1 : 0, _c.checked = checked ? 1 : 0, _c["variant_".concat(variant)] = !!variant, _c))
50
+ className: clx(styles__default.default["fake-checkbox"], styles__default.default["variant_".concat(variant)], (_b = {}, _b[styles__default.default["variant_".concat(variant, "_disabled")]] = disabled, _b[styles__default.default["variant_".concat(variant, "_error")]] = hasError, _b[styles__default.default["variant_".concat(variant, "_checked")]] = checked, _b[styles__default.default.checked] = checked, _b))
53
51
  }), /*#__PURE__*/React__default.default.createElement("span", {
54
52
  className: clx(styles__default.default.text)
55
- }, label)));
56
- return /*#__PURE__*/React__default.default.createElement("div", {
57
- className: clx(styles__default.default.root)
58
- }, control, hint && (/*#__PURE__*/React__default.default.createElement(index.default, {
59
- variant: isError ? "alert" : "secondary",
53
+ }, label)), hint && (/*#__PURE__*/React__default.default.createElement(index.default, {
54
+ variant: hasError ? "alert" : "secondary",
60
55
  tag: "span"
61
56
  }, hint)));
62
57
  };
@@ -1,17 +1,17 @@
1
- import type { ReactNode } from "react";
1
+ import type { FocusEvent, ChangeEvent, ReactNode } from "react";
2
2
  export interface CheckboxProps {
3
- variant?: "primary";
4
- size?: "s" | "m" | "l";
5
- id?: string;
6
- name?: string;
7
- value?: string | number;
8
- label?: ReactNode;
9
- hint?: ReactNode;
10
3
  checked?: boolean;
11
- onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;
12
- onFocus?: (event: React.FocusEvent<HTMLInputElement>) => void;
13
- onBlur?: (event: React.FocusEvent<HTMLInputElement>) => void;
14
4
  className?: string;
15
5
  disabled?: boolean;
16
- isError?: boolean;
6
+ hasError?: boolean;
7
+ hint?: ReactNode;
8
+ id?: string;
9
+ label?: ReactNode;
10
+ name?: string;
11
+ onBlur?: (event: FocusEvent<HTMLInputElement>) => void;
12
+ onChange?: (event: ChangeEvent<HTMLInputElement>) => void;
13
+ onFocus?: (event: FocusEvent<HTMLInputElement>) => void;
14
+ size?: "s" | "m" | "l";
15
+ value?: string | number;
16
+ variant?: "primary";
17
17
  }
@@ -1,4 +1,4 @@
1
1
  import React from "react";
2
2
  import type { DatePickerProps } from "./index.props";
3
- declare const DatePicker: ({ className, selectedDate, onChangeDate, }: DatePickerProps) => React.JSX.Element;
3
+ declare const DatePicker: React.FC<DatePickerProps>;
4
4
  export default DatePicker;
@@ -16,6 +16,20 @@ var classNames__default = /*#__PURE__*/_interopDefault(classNames);
16
16
  var styles__default = /*#__PURE__*/_interopDefault(styles);
17
17
 
18
18
  var clx = classNames__default.default.bind(styles__default.default);
19
+ var CalendarIcon = function CalendarIcon() {
20
+ return /*#__PURE__*/React__default.default.createElement("svg", {
21
+ xmlns: "http://www.w3.org/2000/svg",
22
+ fill: "none",
23
+ viewBox: "0 0 24 24",
24
+ className: clx("calendar-icon"),
25
+ strokeWidth: 1.5,
26
+ stroke: "currentColor"
27
+ }, /*#__PURE__*/React__default.default.createElement("path", {
28
+ strokeLinecap: "round",
29
+ strokeLinejoin: "round",
30
+ d: "M6.75 3v2.25M17.25 3v2.25M3 18.75V7.5a2.25 2.25 0 0 1 2.25-2.25h13.5A2.25 2.25 0 0 1 21 7.5v11.25m-18 0A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75m-18 0v-7.5A2.25 2.25 0 0 1 5.25 9h13.5A2.25 2.25 0 0 1 21 11.25v7.5m-9-6h.008v.008H12v-.008ZM12 15h.008v.008H12V15Zm0 2.25h.008v.008H12v-.008ZM9.75 15h.008v.008H9.75V15Zm0 2.25h.008v.008H9.75v-.008ZM7.5 15h.008v.008H7.5V15Zm0 2.25h.008v.008H7.5v-.008Zm6.75-4.5h.008v.008h-.008v-.008Zm0 2.25h.008v.008h-.008V15Zm0 2.25h.008v.008h-.008v-.008Zm2.25-4.5h.008v.008H16.5v-.008Zm0 2.25h.008v.008H16.5V15Z"
31
+ }));
32
+ };
19
33
  var DatePicker = function DatePicker(_a) {
20
34
  var className = _a.className,
21
35
  _b = _a.selectedDate,
@@ -24,29 +38,28 @@ var DatePicker = function DatePicker(_a) {
24
38
  var _c = React.useState(selectedDate),
25
39
  date = _c[0],
26
40
  setDate = _c[1];
27
- var handleDateChange = function handleDateChange(payload) {
28
- var newDate = payload.date;
29
- setDate(newDate);
30
- onChangeDate === null || onChangeDate === void 0 ? void 0 : onChangeDate(newDate);
41
+ // eslint-disable-next-line @typescript-eslint/no-shadow
42
+ var handleDateChange = function handleDateChange(_a) {
43
+ var date = _a.date;
44
+ setDate(date);
45
+ onChangeDate === null || onChangeDate === void 0 ? void 0 : onChangeDate(date);
31
46
  };
32
47
  return /*#__PURE__*/React__default.default.createElement(index.default, {
33
48
  placement: "bottom",
34
- preventAutoClose: true,
35
- preventOverflow: true,
36
49
  fontSize: 14,
37
50
  trigger: ["click"],
38
51
  overlay: /*#__PURE__*/React__default.default.createElement(index$1.default, {
39
52
  minWidth: 260,
40
- className: styles__default.default.calendar,
53
+ className: clx("calendar", className),
41
54
  today: index$2.toISODate(new Date()),
42
55
  titleSize: "h5",
43
56
  selectedDate: date,
44
57
  onChange: handleDateChange
45
58
  })
46
59
  }, /*#__PURE__*/React__default.default.createElement("div", {
47
- className: clx(styles__default.default["input-container"], styles__default.default["input-date"], className)
60
+ className: clx("input-container", "input-date", className)
48
61
  }, /*#__PURE__*/React__default.default.createElement("input", {
49
- className: clx(styles__default.default["input-field"]),
62
+ className: clx("input-field"),
50
63
  tabIndex: 0,
51
64
  "aria-expanded": "false",
52
65
  "aria-haspopup": "true",
@@ -55,7 +68,7 @@ var DatePicker = function DatePicker(_a) {
55
68
  maxLength: 7,
56
69
  readOnly: true,
57
70
  value: index$2.toDMYDate(date)
58
- })));
71
+ }), /*#__PURE__*/React__default.default.createElement(CalendarIcon, null)));
59
72
  };
60
73
 
61
74
  exports.default = DatePicker;
@@ -1,49 +1,56 @@
1
1
  .input-container {
2
- align-items: center;
3
- border-bottom: 1px solid var(--palette-bg-3);
4
- border-bottom-right-radius: 0.375rem;
5
- border-right: 1px solid var(--palette-bg-3);
6
- border-top: 1px solid var(--palette-bg-3);
7
- border-top-right-radius: 0.375rem;
8
- box-sizing: border-box;
9
2
  display: flex;
10
- height: 36px;
3
+ align-items: center;
11
4
  justify-content: center;
5
+ height: 36px;
6
+ box-sizing: border-box;
7
+ border: 1px solid var(--palette-bg-3);
8
+ border-top-right-radius: 0.375rem;
9
+ border-bottom-right-radius: 0.375rem;
10
+ border-left: none;
12
11
  }
13
12
 
14
13
  .input-field {
15
- background: transparent;
16
- border: none;
17
- box-sizing: border-box;
18
- font-size: 1em;
14
+ width: 100%;
19
15
  height: 100%;
20
- outline: none;
21
16
  padding: 4px;
22
17
  text-align: center;
23
- width: 100%;
18
+ background: transparent;
19
+ border: none;
20
+ outline: none;
21
+ box-sizing: border-box;
24
22
  }
25
23
 
26
24
  .input-date {
25
+ cursor: pointer;
27
26
  flex: 3;
28
27
  position: relative;
28
+ border-top: 1px solid var(--palette-bg-3);
29
+ border-right: 1px solid var(--palette-bg-3);
30
+ border-bottom: 1px solid var(--palette-bg-3);
29
31
  }
30
32
 
31
33
  .input-date:focus-within {
32
- border-bottom: 1px solid var(--palette-primary-3);
33
- border-right: 1px solid var(--palette-primary-3);
34
- border-top: 1px solid var(--palette-primary-3);
34
+ border-color: var(--palette-primary-3);
35
35
  box-shadow: 0 0 0 2px var(--palette-primary-2);
36
36
  }
37
37
 
38
38
  .input-date:focus-within::before {
39
- background-color: var(--palette-primary-3);
40
39
  content: "";
41
- height: 100%;
42
- left: 0;
43
40
  position: absolute;
41
+ left: 0;
44
42
  width: 1px;
43
+ height: 100%;
44
+ background-color: var(--palette-primary-3);
45
45
  }
46
46
 
47
47
  .calendar {
48
48
  max-width: 250px;
49
+ }
50
+
51
+ .calendar-icon {
52
+ width: 24px;
53
+ height: 24px;
54
+ margin-right: 10px;
55
+ cursor: pointer;
49
56
  }
package/Input/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
1
  import React from "react";
2
2
  import type { InputProps } from "./index.props";
3
- declare const Input: ({ className, startIcon, endIcon, label, hint, error, required, onChange, inputRef, disabled, variant, size, ref, ...props }: InputProps) => React.JSX.Element;
3
+ declare const Input: ({ className, startIcon, endIcon, label, hint, hasError, required, onChange, inputRef, disabled, variant, size, ref, ...props }: InputProps) => React.JSX.Element;
4
4
  export default Input;
package/Input/index.js CHANGED
@@ -20,7 +20,7 @@ var Input = function Input(_a) {
20
20
  endIcon = _a.endIcon,
21
21
  label = _a.label,
22
22
  hint = _a.hint,
23
- error = _a.error,
23
+ hasError = _a.hasError,
24
24
  required = _a.required,
25
25
  onChange = _a.onChange,
26
26
  inputRef = _a.inputRef,
@@ -30,13 +30,13 @@ var Input = function Input(_a) {
30
30
  _c = _a.size,
31
31
  size = _c === void 0 ? "m" : _c,
32
32
  ref = _a.ref,
33
- props = tslib.__rest(_a, ["className", "startIcon", "endIcon", "label", "hint", "error", "required", "onChange", "inputRef", "disabled", "variant", "size", "ref"]);
33
+ props = tslib.__rest(_a, ["className", "startIcon", "endIcon", "label", "hint", "hasError", "required", "onChange", "inputRef", "disabled", "variant", "size", "ref"]);
34
34
  return /*#__PURE__*/React__default.default.createElement(index.default, {
35
35
  className: classNames__default.default(className),
36
36
  label: label,
37
37
  required: required,
38
38
  hint: hint,
39
- error: error
39
+ hasError: hasError
40
40
  }, /*#__PURE__*/React__default.default.createElement(index$1.default, {
41
41
  ref: ref,
42
42
  startIcon: startIcon,
@@ -44,7 +44,7 @@ var Input = function Input(_a) {
44
44
  variant: variant,
45
45
  size: size,
46
46
  disabled: !!disabled,
47
- error: error
47
+ hasError: hasError
48
48
  }, /*#__PURE__*/React__default.default.createElement(index$2.default, tslib.__assign({
49
49
  ref: inputRef,
50
50
  onChange: onChange,
@@ -1,16 +1,16 @@
1
- import type { ChangeEvent, ForwardedRef, InputHTMLAttributes, ReactNode } from "react";
1
+ import type { ChangeEvent, ForwardedRef, InputHTMLAttributes, ReactNode, Ref } from "react";
2
2
  import type { FormFieldProps } from "../base/FormField/index.props";
3
3
  import type { Size, Variant } from "../base/InputRoot/index.props";
4
4
  export interface InputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, "onChange" | "size">, Omit<FormFieldProps, "children"> {
5
- onChange?: (e: ChangeEvent<HTMLInputElement>, value: string) => void;
6
- variant?: Variant;
7
- size?: Size;
8
- startIcon?: ReactNode;
9
5
  endIcon?: ReactNode;
10
- label?: ReactNode;
6
+ hasError?: boolean;
11
7
  hint?: ReactNode;
12
- error?: boolean;
13
- required?: boolean;
14
8
  inputRef?: ForwardedRef<HTMLInputElement>;
15
- ref?: React.Ref<HTMLInputElement>;
9
+ label?: ReactNode;
10
+ onChange?: (e: ChangeEvent<HTMLInputElement>, value: string) => void;
11
+ ref?: Ref<HTMLInputElement>;
12
+ required?: boolean;
13
+ size?: Size;
14
+ startIcon?: ReactNode;
15
+ variant?: Variant;
16
16
  }
@@ -1,4 +1,4 @@
1
1
  import React from "react";
2
2
  import type { MultiSelectProps } from "./index.props";
3
- declare const MultiSelect: ({ className, groups, zIndex, fontSize, disabled, fullWidth, required, label, hint, error, size, placeholder, name, type, onChange, }: MultiSelectProps) => React.JSX.Element;
3
+ declare const MultiSelect: React.FC<MultiSelectProps>;
4
4
  export default MultiSelect;
@@ -23,23 +23,27 @@ var classNames__default = /*#__PURE__*/_interopDefault(classNames);
23
23
  var styles__default = /*#__PURE__*/_interopDefault(styles);
24
24
 
25
25
  var clx = classNames__default.default.bind(styles__default.default);
26
- var sortedItems = function sortedItems(items) {
27
- return items.sort(function (a, b) {
28
- if (!a || !b) return 0;
29
- var matchA = a.match(/group-(\d+)-option-(\d+)/);
30
- var matchB = b.match(/group-(\d+)-option-(\d+)/);
31
- if (!matchA || !matchB) {
32
- return 0;
33
- }
34
- var _a = matchA.map(Number),
35
- groupA = _a[1],
36
- optionA = _a[2];
37
- var _b = matchB.map(Number),
38
- groupB = _b[1],
39
- optionB = _b[2];
26
+ var sortItems = function sortItems(items) {
27
+ return tslib.__spreadArray([], items, true).sort(function (a, b) {
28
+ var parseKey = function parseKey(key) {
29
+ var _a;
30
+ return ((_a = key.match(/group-(\d+)-option-(\d+)/)) === null || _a === void 0 ? void 0 : _a.slice(1).map(Number)) || [];
31
+ };
32
+ var _a = parseKey(a),
33
+ groupA = _a[0],
34
+ optionA = _a[1];
35
+ var _b = parseKey(b),
36
+ groupB = _b[0],
37
+ optionB = _b[1];
40
38
  return groupA - groupB || optionA - optionB;
41
39
  });
42
40
  };
41
+ var getValue = function getValue(options) {
42
+ return options.map(function (_a) {
43
+ var label = _a.label;
44
+ return label;
45
+ }).join(", ");
46
+ };
43
47
  var MultiSelect = function MultiSelect(_a) {
44
48
  var className = _a.className,
45
49
  groups = _a.groups,
@@ -51,7 +55,7 @@ var MultiSelect = function MultiSelect(_a) {
51
55
  required = _a.required,
52
56
  label = _a.label,
53
57
  hint = _a.hint,
54
- error = _a.error,
58
+ hasError = _a.hasError,
55
59
  _c = _a.size,
56
60
  size = _c === void 0 ? "m" : _c,
57
61
  placeholder = _a.placeholder,
@@ -69,7 +73,7 @@ var MultiSelect = function MultiSelect(_a) {
69
73
  return tslib.__assign(tslib.__assign({}, group), {
70
74
  options: group.options.map(function (option) {
71
75
  return tslib.__assign(tslib.__assign({}, option), {
72
- selected: (value === null || value === void 0 ? void 0 : value.includes(index.createGroupOptionString(group.value, option.value))) || false
76
+ selected: value.includes(index.createGroupOptionString(group.value, option.value))
73
77
  });
74
78
  })
75
79
  });
@@ -77,35 +81,40 @@ var MultiSelect = function MultiSelect(_a) {
77
81
  }, [value, groups]);
78
82
  var handleChange = React.useCallback(function (key) {
79
83
  setValue(function (prev) {
80
- var newValue = prev.indexOf(key) !== -1 ? prev.filter(function (prevValue) {
81
- return prevValue !== key;
82
- }) : sortedItems(tslib.__spreadArray(tslib.__spreadArray([], prev, true), [key], false));
83
- if (onChange) {
84
- onChange(newValue);
85
- }
84
+ var newValue = prev.includes(key) ? prev.filter(function (v) {
85
+ return v !== key;
86
+ }) : sortItems(tslib.__spreadArray(tslib.__spreadArray([], prev, true), [key], false));
87
+ onChange === null || onChange === void 0 ? void 0 : onChange(newValue);
86
88
  return newValue;
87
89
  });
88
90
  }, [onChange]);
89
- var prepraredLabel = React.useMemo(function () {
90
- return preparedGroups.flatMap(function (group) {
91
- return group.options.filter(function (option) {
92
- return option.selected;
93
- }).map(function (option) {
91
+ var preparedLabel = React.useMemo(function () {
92
+ return preparedGroups.flatMap(function (_a) {
93
+ var groupVal = _a.value,
94
+ options = _a.options;
95
+ return options.filter(function (_a) {
96
+ var selected = _a.selected;
97
+ return selected;
98
+ }).map(
99
+ // eslint-disable-next-line @typescript-eslint/no-shadow
100
+ function (_a) {
101
+ var label = _a.label,
102
+ optVal = _a.value;
94
103
  return {
95
- label: option.label,
96
- key: index.createGroupOptionString(group.value, option.value)
104
+ label: label,
105
+ key: index.createGroupOptionString(groupVal, optVal)
97
106
  };
98
107
  });
99
108
  });
100
109
  }, [preparedGroups]);
101
110
  return /*#__PURE__*/React__default.default.createElement(index$1.default, {
102
111
  className: clx(styles__default.default["form-field"], {
103
- "full-width": fullWidth ? 1 : 0
112
+ "full-width": fullWidth
104
113
  }, className),
105
114
  required: required,
106
115
  label: label,
107
116
  hint: hint,
108
- error: error
117
+ hasError: hasError
109
118
  }, /*#__PURE__*/React__default.default.createElement(index$2.default, {
110
119
  placement: "bottom-start",
111
120
  preventOverflow: true,
@@ -113,63 +122,48 @@ var MultiSelect = function MultiSelect(_a) {
113
122
  trigger: ["click"],
114
123
  zIndex: zIndex,
115
124
  fontSize: fontSize,
116
- disabled: !!disabled,
125
+ disabled: disabled,
117
126
  overlay: /*#__PURE__*/React__default.default.createElement(index$3.default, {
118
127
  groups: preparedGroups,
119
128
  onChange: handleChange
120
129
  }),
121
130
  samewidth: true
122
- }, type === "chip" ? (/*#__PURE__*/React__default.default.createElement(index$4.default, {
123
- error: error,
131
+ }, /*#__PURE__*/React__default.default.createElement(index$4.default, {
132
+ hasError: hasError,
124
133
  size: size,
125
134
  className: clx(styles__default.default.root, {
126
- auto: !!prepraredLabel.length
135
+ root_auto: preparedLabel.length
127
136
  }),
128
137
  endIcon: /*#__PURE__*/React__default.default.createElement(Chevron.default, {
129
138
  className: clx(styles__default.default.icon, {
130
- icon_isOpen: isOpen ? 1 : 0
139
+ icon_isOpen: isOpen
131
140
  })
132
141
  }),
133
- disabled: !!disabled
142
+ disabled: Boolean(disabled)
134
143
  }, /*#__PURE__*/React__default.default.createElement("div", {
135
- className: clx(styles__default.default["base-input"], styles__default.default["base-input-flex"])
136
- }, prepraredLabel.length ? (/*#__PURE__*/React__default.default.createElement(React__default.default.Fragment, null, prepraredLabel.map(function (option, index) {
144
+ className: clx(styles__default.default["base-input"], styles__default.default[type === "chip" ? "base-input-flex" : "base-input-text"])
145
+ }, preparedLabel.length ? type === "chip" ?
146
+ // eslint-disable-next-line @typescript-eslint/no-shadow
147
+ preparedLabel.map(function (_a) {
148
+ var label = _a.label,
149
+ key = _a.key;
137
150
  return /*#__PURE__*/React__default.default.createElement(index$5.default, {
151
+ key: key,
138
152
  size: "s",
139
153
  iconEnd: /*#__PURE__*/React__default.default.createElement(CrossFill.default, null),
140
154
  "data-ignore-click": true,
141
- key: "item-".concat(index),
142
155
  onClickIcon: function onClickIcon() {
143
- return handleChange(option.key);
156
+ return handleChange(key);
144
157
  }
145
- }, option.label);
146
- }))) : (/*#__PURE__*/React__default.default.createElement("span", {
147
- className: clx(styles__default.default.placeholder)
148
- }, placeholder))), /*#__PURE__*/React__default.default.createElement("input", {
149
- type: "hidden",
150
- name: name,
151
- tabIndex: -1,
152
- value: value || ""
153
- }))) : (/*#__PURE__*/React__default.default.createElement(index$4.default, {
154
- error: error,
155
- size: size,
156
- className: clx(styles__default.default.root),
157
- endIcon: /*#__PURE__*/React__default.default.createElement(Chevron.default, {
158
- className: clx(styles__default.default.icon, {
159
- icon_isOpen: isOpen ? 1 : 0
160
- })
161
- }),
162
- disabled: !!disabled
163
- }, /*#__PURE__*/React__default.default.createElement("div", {
164
- className: clx(styles__default.default["base-input"], styles__default.default["base-input-text"])
165
- }, prepraredLabel.length ? prepraredLabel.join(", ") : (/*#__PURE__*/React__default.default.createElement("span", {
158
+ }, label);
159
+ }) : getValue(preparedLabel) : (/*#__PURE__*/React__default.default.createElement("span", {
166
160
  className: clx(styles__default.default.placeholder)
167
161
  }, placeholder))), /*#__PURE__*/React__default.default.createElement("input", {
168
162
  type: "hidden",
169
163
  name: name,
170
164
  tabIndex: -1,
171
- value: value || ""
172
- })))));
165
+ value: value.join(",") || ""
166
+ }))));
173
167
  };
174
168
 
175
169
  exports.default = MultiSelect;
@@ -2,7 +2,7 @@
2
2
  cursor: pointer;
3
3
  }
4
4
 
5
- .root.auto {
5
+ .root_auto {
6
6
  height: auto;
7
7
  min-height: 36px;
8
8
  }
@@ -18,10 +18,9 @@
18
18
  .base-input {
19
19
  background: transparent;
20
20
  border: none;
21
- display: inline-block;
21
+ display: flex;
22
22
  flex: 1;
23
23
  margin: 7px 0;
24
- width: 100%;
25
24
  }
26
25
  .base-input ::placeholder {
27
26
  color: var(--palette-bg-2);
package/Select/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
1
  import React from "react";
2
2
  import type { SelectProps } from "./index.props";
3
- declare const Select: <T extends string>({ options, value, name, zIndex, fontSize, label, hint, error, required, placeholder, disabled, size, fullWidth, customInputRoot, className, onChange, }: SelectProps<T>) => React.JSX.Element;
3
+ declare const Select: <T extends string>({ options, value, name, zIndex, fontSize, label, hint, hasError, required, placeholder, disabled, size, fullWidth, customInputRoot, className, onChange, }: SelectProps<T>) => React.JSX.Element;
4
4
  export default Select;
package/Select/index.js CHANGED
@@ -27,7 +27,7 @@ var Select = function Select(_a) {
27
27
  fontSize = _a.fontSize,
28
28
  label = _a.label,
29
29
  hint = _a.hint,
30
- error = _a.error,
30
+ hasError = _a.hasError,
31
31
  required = _a.required,
32
32
  placeholder = _a.placeholder,
33
33
  disabled = _a.disabled,
@@ -68,7 +68,7 @@ var Select = function Select(_a) {
68
68
  required: required,
69
69
  label: label,
70
70
  hint: hint,
71
- error: error
71
+ hasError: hasError
72
72
  }, /*#__PURE__*/React__default.default.createElement(index$1.default, {
73
73
  placement: "bottom-start",
74
74
  preventOverflow: true,
@@ -83,7 +83,7 @@ var Select = function Select(_a) {
83
83
  }),
84
84
  samewidth: true
85
85
  }, customInputRoot ? customInputRoot : (/*#__PURE__*/React__default.default.createElement(index$3.default, {
86
- error: error,
86
+ hasError: hasError,
87
87
  size: size,
88
88
  className: clx(styles__default.default.root),
89
89
  endIcon: /*#__PURE__*/React__default.default.createElement(Chevron.default, {
@@ -1,28 +1,28 @@
1
1
  import type { ReactNode } from "react";
2
2
  import type { FormFieldProps } from "../base/FormField/index.props";
3
3
  type Size = "s" | "m" | "l";
4
+ export type Coordinates = {
5
+ height: number;
6
+ top: number;
7
+ };
4
8
  export interface IOption<T extends string> {
5
- value: T;
6
- label: ReactNode;
7
9
  disabled?: boolean;
10
+ label: ReactNode;
11
+ value: T;
8
12
  }
9
13
  export interface SelectProps<T extends string> extends Omit<FormFieldProps, "children"> {
10
- options: IOption<T>[];
11
- value?: T;
12
- zIndex?: number;
14
+ className?: string;
15
+ customInputRoot?: ReactNode;
16
+ disabled?: boolean;
13
17
  fontSize?: number;
18
+ fullWidth?: boolean;
19
+ name?: string;
14
20
  onChange: (value: T) => void;
15
- disabled?: boolean;
21
+ options: IOption<T>[];
16
22
  placeholder?: string;
17
- fullWidth?: boolean;
18
23
  required?: boolean;
19
24
  size?: Size;
20
- className?: string;
21
- customInputRoot?: ReactNode;
22
- name?: string;
25
+ value?: T;
26
+ zIndex?: number;
23
27
  }
24
- export type Coordinates = {
25
- top: number;
26
- height: number;
27
- };
28
28
  export {};
@@ -1,4 +1,4 @@
1
1
  import React from "react";
2
2
  import type { ITextAreaProps } from "./index.props";
3
- declare const TextArea: ({ className, value, minRows, maxRows, onChange, label, required, error, hint, disabled, inputRef, ref, ...props }: ITextAreaProps) => React.JSX.Element;
3
+ declare const TextArea: ({ className, value, minRows, maxRows, onChange, label, required, hasError, hint, disabled, inputRef, ref, ...props }: ITextAreaProps) => React.JSX.Element;
4
4
  export default TextArea;