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
@@ -1,4 +1,4 @@
1
- import { __assign, __spreadArray } from 'tslib';
1
+ import { __spreadArray, __assign } from 'tslib';
2
2
  import React__default, { useState, useMemo, useCallback } from 'react';
3
3
  import classNames from 'classnames/bind';
4
4
  import Dropdown from '../Dropdown/index.js';
@@ -13,23 +13,27 @@ import Chevron from '../Icons/Chevron.js';
13
13
  import CrossFill from '../Icons/CrossFill.js';
14
14
 
15
15
  var clx = classNames.bind(styles);
16
- var sortedItems = function sortedItems(items) {
17
- return items.sort(function (a, b) {
18
- if (!a || !b) return 0;
19
- var matchA = a.match(/group-(\d+)-option-(\d+)/);
20
- var matchB = b.match(/group-(\d+)-option-(\d+)/);
21
- if (!matchA || !matchB) {
22
- return 0;
23
- }
24
- var _a = matchA.map(Number),
25
- groupA = _a[1],
26
- optionA = _a[2];
27
- var _b = matchB.map(Number),
28
- groupB = _b[1],
29
- optionB = _b[2];
16
+ var sortItems = function sortItems(items) {
17
+ return __spreadArray([], items, true).sort(function (a, b) {
18
+ var parseKey = function parseKey(key) {
19
+ var _a;
20
+ return ((_a = key.match(/group-(\d+)-option-(\d+)/)) === null || _a === void 0 ? void 0 : _a.slice(1).map(Number)) || [];
21
+ };
22
+ var _a = parseKey(a),
23
+ groupA = _a[0],
24
+ optionA = _a[1];
25
+ var _b = parseKey(b),
26
+ groupB = _b[0],
27
+ optionB = _b[1];
30
28
  return groupA - groupB || optionA - optionB;
31
29
  });
32
30
  };
31
+ var getValue = function getValue(options) {
32
+ return options.map(function (_a) {
33
+ var label = _a.label;
34
+ return label;
35
+ }).join(", ");
36
+ };
33
37
  var MultiSelect = function MultiSelect(_a) {
34
38
  var className = _a.className,
35
39
  groups = _a.groups,
@@ -41,7 +45,7 @@ var MultiSelect = function MultiSelect(_a) {
41
45
  required = _a.required,
42
46
  label = _a.label,
43
47
  hint = _a.hint,
44
- error = _a.error,
48
+ hasError = _a.hasError,
45
49
  _c = _a.size,
46
50
  size = _c === void 0 ? "m" : _c,
47
51
  placeholder = _a.placeholder,
@@ -59,7 +63,7 @@ var MultiSelect = function MultiSelect(_a) {
59
63
  return __assign(__assign({}, group), {
60
64
  options: group.options.map(function (option) {
61
65
  return __assign(__assign({}, option), {
62
- selected: (value === null || value === void 0 ? void 0 : value.includes(createGroupOptionString(group.value, option.value))) || false
66
+ selected: value.includes(createGroupOptionString(group.value, option.value))
63
67
  });
64
68
  })
65
69
  });
@@ -67,35 +71,40 @@ var MultiSelect = function MultiSelect(_a) {
67
71
  }, [value, groups]);
68
72
  var handleChange = useCallback(function (key) {
69
73
  setValue(function (prev) {
70
- var newValue = prev.indexOf(key) !== -1 ? prev.filter(function (prevValue) {
71
- return prevValue !== key;
72
- }) : sortedItems(__spreadArray(__spreadArray([], prev, true), [key], false));
73
- if (onChange) {
74
- onChange(newValue);
75
- }
74
+ var newValue = prev.includes(key) ? prev.filter(function (v) {
75
+ return v !== key;
76
+ }) : sortItems(__spreadArray(__spreadArray([], prev, true), [key], false));
77
+ onChange === null || onChange === void 0 ? void 0 : onChange(newValue);
76
78
  return newValue;
77
79
  });
78
80
  }, [onChange]);
79
- var prepraredLabel = useMemo(function () {
80
- return preparedGroups.flatMap(function (group) {
81
- return group.options.filter(function (option) {
82
- return option.selected;
83
- }).map(function (option) {
81
+ var preparedLabel = useMemo(function () {
82
+ return preparedGroups.flatMap(function (_a) {
83
+ var groupVal = _a.value,
84
+ options = _a.options;
85
+ return options.filter(function (_a) {
86
+ var selected = _a.selected;
87
+ return selected;
88
+ }).map(
89
+ // eslint-disable-next-line @typescript-eslint/no-shadow
90
+ function (_a) {
91
+ var label = _a.label,
92
+ optVal = _a.value;
84
93
  return {
85
- label: option.label,
86
- key: createGroupOptionString(group.value, option.value)
94
+ label: label,
95
+ key: createGroupOptionString(groupVal, optVal)
87
96
  };
88
97
  });
89
98
  });
90
99
  }, [preparedGroups]);
91
100
  return /*#__PURE__*/React__default.createElement(FormField, {
92
101
  className: clx(styles["form-field"], {
93
- "full-width": fullWidth ? 1 : 0
102
+ "full-width": fullWidth
94
103
  }, className),
95
104
  required: required,
96
105
  label: label,
97
106
  hint: hint,
98
- error: error
107
+ hasError: hasError
99
108
  }, /*#__PURE__*/React__default.createElement(Dropdown, {
100
109
  placement: "bottom-start",
101
110
  preventOverflow: true,
@@ -103,63 +112,48 @@ var MultiSelect = function MultiSelect(_a) {
103
112
  trigger: ["click"],
104
113
  zIndex: zIndex,
105
114
  fontSize: fontSize,
106
- disabled: !!disabled,
115
+ disabled: disabled,
107
116
  overlay: /*#__PURE__*/React__default.createElement(MenuOverlay, {
108
117
  groups: preparedGroups,
109
118
  onChange: handleChange
110
119
  }),
111
120
  samewidth: true
112
- }, type === "chip" ? (/*#__PURE__*/React__default.createElement(InputRoot, {
113
- error: error,
121
+ }, /*#__PURE__*/React__default.createElement(InputRoot, {
122
+ hasError: hasError,
114
123
  size: size,
115
124
  className: clx(styles.root, {
116
- auto: !!prepraredLabel.length
125
+ root_auto: preparedLabel.length
117
126
  }),
118
127
  endIcon: /*#__PURE__*/React__default.createElement(Chevron, {
119
128
  className: clx(styles.icon, {
120
- icon_isOpen: isOpen ? 1 : 0
129
+ icon_isOpen: isOpen
121
130
  })
122
131
  }),
123
- disabled: !!disabled
132
+ disabled: Boolean(disabled)
124
133
  }, /*#__PURE__*/React__default.createElement("div", {
125
- className: clx(styles["base-input"], styles["base-input-flex"])
126
- }, prepraredLabel.length ? (/*#__PURE__*/React__default.createElement(React__default.Fragment, null, prepraredLabel.map(function (option, index) {
134
+ className: clx(styles["base-input"], styles[type === "chip" ? "base-input-flex" : "base-input-text"])
135
+ }, preparedLabel.length ? type === "chip" ?
136
+ // eslint-disable-next-line @typescript-eslint/no-shadow
137
+ preparedLabel.map(function (_a) {
138
+ var label = _a.label,
139
+ key = _a.key;
127
140
  return /*#__PURE__*/React__default.createElement(Chip, {
141
+ key: key,
128
142
  size: "s",
129
143
  iconEnd: /*#__PURE__*/React__default.createElement(CrossFill, null),
130
144
  "data-ignore-click": true,
131
- key: "item-".concat(index),
132
145
  onClickIcon: function onClickIcon() {
133
- return handleChange(option.key);
146
+ return handleChange(key);
134
147
  }
135
- }, option.label);
136
- }))) : (/*#__PURE__*/React__default.createElement("span", {
137
- className: clx(styles.placeholder)
138
- }, placeholder))), /*#__PURE__*/React__default.createElement("input", {
139
- type: "hidden",
140
- name: name,
141
- tabIndex: -1,
142
- value: value || ""
143
- }))) : (/*#__PURE__*/React__default.createElement(InputRoot, {
144
- error: error,
145
- size: size,
146
- className: clx(styles.root),
147
- endIcon: /*#__PURE__*/React__default.createElement(Chevron, {
148
- className: clx(styles.icon, {
149
- icon_isOpen: isOpen ? 1 : 0
150
- })
151
- }),
152
- disabled: !!disabled
153
- }, /*#__PURE__*/React__default.createElement("div", {
154
- className: clx(styles["base-input"], styles["base-input-text"])
155
- }, prepraredLabel.length ? prepraredLabel.join(", ") : (/*#__PURE__*/React__default.createElement("span", {
148
+ }, label);
149
+ }) : getValue(preparedLabel) : (/*#__PURE__*/React__default.createElement("span", {
156
150
  className: clx(styles.placeholder)
157
151
  }, placeholder))), /*#__PURE__*/React__default.createElement("input", {
158
152
  type: "hidden",
159
153
  name: name,
160
154
  tabIndex: -1,
161
- value: value || ""
162
- })))));
155
+ value: value.join(",") || ""
156
+ }))));
163
157
  };
164
158
 
165
159
  export { MultiSelect as default };
@@ -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);
@@ -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;
@@ -17,7 +17,7 @@ var Select = function Select(_a) {
17
17
  fontSize = _a.fontSize,
18
18
  label = _a.label,
19
19
  hint = _a.hint,
20
- error = _a.error,
20
+ hasError = _a.hasError,
21
21
  required = _a.required,
22
22
  placeholder = _a.placeholder,
23
23
  disabled = _a.disabled,
@@ -58,7 +58,7 @@ var Select = function Select(_a) {
58
58
  required: required,
59
59
  label: label,
60
60
  hint: hint,
61
- error: error
61
+ hasError: hasError
62
62
  }, /*#__PURE__*/React__default.createElement(Dropdown, {
63
63
  placement: "bottom-start",
64
64
  preventOverflow: true,
@@ -73,7 +73,7 @@ var Select = function Select(_a) {
73
73
  }),
74
74
  samewidth: true
75
75
  }, customInputRoot ? customInputRoot : (/*#__PURE__*/React__default.createElement(InputRoot, {
76
- error: error,
76
+ hasError: hasError,
77
77
  size: size,
78
78
  className: clx(styles.root),
79
79
  endIcon: /*#__PURE__*/React__default.createElement(Chevron, {
@@ -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;
@@ -18,12 +18,12 @@ var TextArea = function TextArea(_a) {
18
18
  onChange = _a.onChange,
19
19
  label = _a.label,
20
20
  required = _a.required,
21
- error = _a.error,
21
+ hasError = _a.hasError,
22
22
  hint = _a.hint,
23
23
  disabled = _a.disabled,
24
24
  inputRef = _a.inputRef,
25
25
  ref = _a.ref,
26
- props = __rest(_a, ["className", "value", "minRows", "maxRows", "onChange", "label", "required", "error", "hint", "disabled", "inputRef", "ref"]);
26
+ props = __rest(_a, ["className", "value", "minRows", "maxRows", "onChange", "label", "required", "hasError", "hint", "disabled", "inputRef", "ref"]);
27
27
  var onChangeHandler = function onChangeHandler(event) {
28
28
  if (onChange) onChange(event.target.value, event);
29
29
  };
@@ -33,10 +33,10 @@ var TextArea = function TextArea(_a) {
33
33
  required: required,
34
34
  label: label,
35
35
  hint: hint,
36
- error: error
36
+ hasError: hasError
37
37
  }, /*#__PURE__*/React__default.createElement(InputRoot, {
38
38
  disabled: !!disabled,
39
- error: error
39
+ hasError: hasError
40
40
  }, /*#__PURE__*/React__default.createElement(TextareaAutosize, __assign({
41
41
  ref: inputRef,
42
42
  "data-testid": "textarea",
@@ -5,7 +5,7 @@ export interface ITextAreaProps extends Omit<TextareaHTMLAttributes<HTMLTextArea
5
5
  value?: string;
6
6
  label?: ReactNode;
7
7
  hint?: ReactNode;
8
- error?: boolean;
8
+ hasError?: boolean;
9
9
  required?: boolean;
10
10
  onChange?: (value: string, e: ChangeEvent<HTMLTextAreaElement>) => void;
11
11
  inputRef?: ForwardedRef<HTMLTextAreaElement>;
@@ -1,4 +1,4 @@
1
1
  import React from "react";
2
2
  import type { FormFieldProps } from "./index.props";
3
- declare const FormField: ({ label, hint, children, error, required, ref, className, }: FormFieldProps) => React.JSX.Element;
3
+ declare const FormField: ({ label, hint, children, hasError, required, className, ref, }: FormFieldProps) => React.JSX.Element;
4
4
  export default FormField;
@@ -1,27 +1,25 @@
1
1
  import React__default from 'react';
2
- import classNames from 'classnames/bind';
2
+ import classNames from 'classnames';
3
3
  import Typography from '../../Typography/index.js';
4
4
  import styles from './FormField.module.css';
5
5
 
6
- var clx = classNames.bind(styles);
7
6
  var FormField = function FormField(_a) {
7
+ var _b;
8
8
  var label = _a.label,
9
9
  hint = _a.hint,
10
10
  children = _a.children,
11
- error = _a.error,
11
+ hasError = _a.hasError,
12
12
  required = _a.required,
13
- ref = _a.ref,
14
- className = _a.className;
13
+ className = _a.className,
14
+ ref = _a.ref;
15
15
  return /*#__PURE__*/React__default.createElement("div", {
16
- className: clx(styles.container, className),
16
+ className: classNames(styles.container, className),
17
17
  ref: ref
18
18
  }, label && (/*#__PURE__*/React__default.createElement(Typography, {
19
- className: clx(styles.label, {
20
- label_required: !!required
21
- }),
19
+ className: classNames(styles.label, (_b = {}, _b[styles.label_required] = required, _b)),
22
20
  tag: "label"
23
21
  }, label)), children, hint && (/*#__PURE__*/React__default.createElement(Typography, {
24
- variant: error ? "alert" : "secondary",
22
+ variant: hasError ? "alert" : "secondary",
25
23
  tag: "span"
26
24
  }, hint)));
27
25
  };
@@ -1,10 +1,10 @@
1
1
  import type { ReactNode } from "react";
2
2
  import type { PropsWithChildren } from "react";
3
3
  export type FormFieldProps = PropsWithChildren<{
4
- label?: ReactNode;
5
- hint?: ReactNode;
6
- error?: boolean;
7
- required?: boolean;
8
4
  className?: string;
5
+ hasError?: boolean;
6
+ hint?: ReactNode;
7
+ label?: ReactNode;
9
8
  ref?: React.Ref<HTMLDivElement>;
9
+ required?: boolean;
10
10
  }>;
@@ -1,4 +1,4 @@
1
1
  import React from "react";
2
2
  import type { InputProps } from "./index.props";
3
- declare const InputRoot: ({ className, startIcon, endIcon, children, variant, disabled, error, style, size, ref, }: InputProps) => React.JSX.Element;
3
+ declare const InputRoot: ({ className, startIcon, endIcon, children, variant, disabled, hasError, style, size, ref, }: InputProps) => React.JSX.Element;
4
4
  export default InputRoot;
@@ -1,8 +1,7 @@
1
1
  import React__default from 'react';
2
- import classNames from 'classnames/bind';
2
+ import classNames from 'classnames';
3
3
  import styles from './InputRoot.module.css';
4
4
 
5
- var clx = classNames.bind(styles);
6
5
  var InputRoot = function InputRoot(_a) {
7
6
  var _b;
8
7
  var className = _a.className,
@@ -12,20 +11,20 @@ var InputRoot = function InputRoot(_a) {
12
11
  _c = _a.variant,
13
12
  variant = _c === void 0 ? "primary" : _c,
14
13
  disabled = _a.disabled,
15
- error = _a.error,
14
+ hasError = _a.hasError,
16
15
  style = _a.style,
17
16
  size = _a.size,
18
17
  ref = _a.ref;
19
18
  return /*#__PURE__*/React__default.createElement("div", {
20
19
  ref: ref,
21
20
  style: style,
22
- className: clx(styles.root, (_b = {}, _b["variant_".concat(variant, "_disabled")] = disabled ? 1 : 0, _b["variant_".concat(variant, "_error")] = error ? 1 : 0, _b["size_".concat(size)] = !!size, _b["variant_".concat(variant)] = !!variant, _b), className)
21
+ className: classNames(styles.root, styles["variant_".concat(variant)], size && styles["size_".concat(size)], (_b = {}, _b[styles["variant_".concat(variant, "_disabled")]] = disabled, _b[styles["variant_".concat(variant, "_error")]] = hasError, _b), className)
23
22
  }, startIcon && /*#__PURE__*/React__default.createElement("div", {
24
- className: clx(styles["base-icon"])
23
+ className: styles["base-icon"]
25
24
  }, startIcon), children, endIcon && /*#__PURE__*/React__default.createElement("div", {
26
- className: clx(styles["base-icon"])
25
+ className: styles["base-icon"]
27
26
  }, endIcon), disabled && /*#__PURE__*/React__default.createElement("div", {
28
- className: clx(styles["base-disable-wrapper"])
27
+ className: styles["base-disable-wrapper"]
29
28
  }));
30
29
  };
31
30
 
@@ -5,7 +5,7 @@ export type Variant = "primary";
5
5
  export type InputProps = PropsWithChildren<{
6
6
  variant?: Variant;
7
7
  disabled: boolean;
8
- error?: boolean;
8
+ hasError?: boolean;
9
9
  className?: string;
10
10
  startIcon?: ReactNode;
11
11
  endIcon?: ReactNode;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "colibri-ui",
3
- "version": "0.7.152",
3
+ "version": "0.7.154",
4
4
  "description": "React UI components library",
5
5
  "main": "index.js",
6
6
  "scripts": {},