colibri-ui 0.7.126 → 0.7.127

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 (52) hide show
  1. package/Calendar/components/Month/Month.js +1 -1
  2. package/Calendar/index.module.css +2 -2
  3. package/Datepicker/components/DatePicker/index.js +2 -2
  4. package/Datepicker/components/DatePicker/index.module.css +17 -17
  5. package/Datepicker/components/TimePicker/index.d.ts +0 -1
  6. package/Datepicker/components/TimePicker/index.js +4 -4
  7. package/Datepicker/components/TimePicker/index.module.css +19 -19
  8. package/Dropdown/index.js +2 -2
  9. package/Menu/components/MenuItem/index.js +0 -1
  10. package/MultiSelect/components/MenuOverlay/index.d.ts +19 -0
  11. package/MultiSelect/components/MenuOverlay/index.js +103 -0
  12. package/MultiSelect/components/MenuOverlay/index.module.css +9 -0
  13. package/MultiSelect/components/MenuOverlayItem/index.d.ts +14 -0
  14. package/MultiSelect/components/MenuOverlayItem/index.js +28 -0
  15. package/MultiSelect/index.d.ts +4 -0
  16. package/MultiSelect/index.js +136 -0
  17. package/MultiSelect/index.module.css +36 -0
  18. package/MultiSelect/index.props.d.ts +29 -0
  19. package/MultiSelect/package.json +6 -0
  20. package/MultiSelect/utils/index.d.ts +1 -0
  21. package/MultiSelect/utils/index.js +7 -0
  22. package/Select/index.js +2 -2
  23. package/Tooltip/index.js +4 -2
  24. package/base/InputRoot/index.js +2 -2
  25. package/esm/Calendar/components/Month/Month.js +1 -1
  26. package/esm/Calendar/index.module.css +2 -2
  27. package/esm/Datepicker/components/DatePicker/index.js +2 -2
  28. package/esm/Datepicker/components/DatePicker/index.module.css +17 -17
  29. package/esm/Datepicker/components/TimePicker/index.d.ts +0 -1
  30. package/esm/Datepicker/components/TimePicker/index.js +4 -4
  31. package/esm/Datepicker/components/TimePicker/index.module.css +19 -19
  32. package/esm/Dropdown/index.js +2 -2
  33. package/esm/Menu/components/MenuItem/index.js +0 -1
  34. package/esm/MultiSelect/components/MenuOverlay/index.d.ts +19 -0
  35. package/esm/MultiSelect/components/MenuOverlay/index.js +93 -0
  36. package/esm/MultiSelect/components/MenuOverlay/index.module.css +9 -0
  37. package/esm/MultiSelect/components/MenuOverlayItem/index.d.ts +14 -0
  38. package/esm/MultiSelect/components/MenuOverlayItem/index.js +20 -0
  39. package/esm/MultiSelect/index.d.ts +4 -0
  40. package/esm/MultiSelect/index.js +126 -0
  41. package/esm/MultiSelect/index.module.css +36 -0
  42. package/esm/MultiSelect/index.props.d.ts +29 -0
  43. package/esm/MultiSelect/utils/index.d.ts +1 -0
  44. package/esm/MultiSelect/utils/index.js +5 -0
  45. package/esm/Select/index.js +2 -2
  46. package/esm/Tooltip/index.js +4 -2
  47. package/esm/base/InputRoot/index.js +2 -2
  48. package/esm/index.d.ts +1 -0
  49. package/esm/index.js +1 -0
  50. package/index.d.ts +1 -0
  51. package/index.js +37 -35
  52. package/package.json +1 -1
@@ -77,7 +77,7 @@ var Month = function Month(props) {
77
77
  className: clx(styles__default.default.table)
78
78
  }, /*#__PURE__*/React__namespace.createElement("ul", {
79
79
  className: clx(styles__default.default.legend)
80
- }, tslib.__spreadArray([], Array(7), true).map(function (empty) {
80
+ }, tslib.__spreadArray([], Array(7), true).map(function (_) {
81
81
  var rest = [];
82
82
  for (var _i = 1; _i < arguments.length; _i++) {
83
83
  rest[_i - 1] = arguments[_i];
@@ -74,10 +74,10 @@
74
74
  }
75
75
 
76
76
  .month-control-next-arrow {
77
+ color: var(--palette-black);
77
78
  position: absolute;
78
- top: 16px;
79
79
  right: 16px;
80
- color: var(--palette-black);
80
+ top: 16px;
81
81
  transform: rotate(360deg);
82
82
  }
83
83
 
@@ -39,9 +39,9 @@ var DatePicker = function DatePicker(_a) {
39
39
  }
40
40
  })
41
41
  }, /*#__PURE__*/React__default.default.createElement("div", {
42
- className: clx(styles__default.default['input-container'], styles__default.default['input-date'], className)
42
+ className: clx(styles__default.default["input-container"], styles__default.default["input-date"], className)
43
43
  }, /*#__PURE__*/React__default.default.createElement("input", {
44
- className: clx(styles__default.default['input-field']),
44
+ className: clx(styles__default.default["input-field"]),
45
45
  tabIndex: 0,
46
46
  "aria-expanded": "false",
47
47
  "aria-haspopup": "true",
@@ -1,47 +1,47 @@
1
1
  .input-container {
2
- border-top-right-radius: 0.375rem;
2
+ align-items: center;
3
+ border-bottom: 1px solid var(--palette-bg-3);
3
4
  border-bottom-right-radius: 0.375rem;
4
- border-top: 1px solid var(--palette-bg-3);
5
5
  border-right: 1px solid var(--palette-bg-3);
6
- border-bottom: 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;
7
9
  display: flex;
8
- justify-content: center;
9
- align-items: center;
10
10
  height: 36px;
11
- box-sizing: border-box;
11
+ justify-content: center;
12
12
  }
13
13
 
14
14
  .input-field {
15
+ background: transparent;
16
+ border: none;
17
+ box-sizing: border-box;
18
+ font-size: 1em;
15
19
  height: 100%;
20
+ outline: none;
16
21
  padding: 4px;
17
22
  text-align: center;
18
- font-size: 1em;
19
- outline: none;
20
- border: none;
21
23
  width: 100%;
22
- background: transparent;
23
- box-sizing: border-box;
24
24
  }
25
25
 
26
26
  .input-date {
27
- position: relative;
28
27
  flex: 3;
28
+ position: relative;
29
29
  }
30
30
 
31
31
  .input-date:focus-within {
32
- border-top: 1px solid var(--palette-primary-3);
33
- border-right: 1px solid var(--palette-primary-3);
34
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);
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);
39
40
  content: "";
40
- position: absolute;
41
41
  height: 100%;
42
- width: 1px;
43
- background-color: var(--palette-primary-3);
44
42
  left: 0;
43
+ position: absolute;
44
+ width: 1px;
45
45
  }
46
46
 
47
47
  .calendar {
@@ -2,7 +2,6 @@ import React from "react";
2
2
  interface TimePickerProps {
3
3
  className?: string;
4
4
  interval?: 5 | 10 | 15 | 30;
5
- value?: string;
6
5
  selectedTime?: string;
7
6
  }
8
7
  declare const _default: React.MemoExoticComponent<({ className, interval, selectedTime, }: TimePickerProps) => React.JSX.Element>;
@@ -48,9 +48,9 @@ var TimePicker = function TimePicker(_a) {
48
48
  options: options,
49
49
  fontSize: 14,
50
50
  customInputRoot: /*#__PURE__*/React__default.default.createElement("div", {
51
- className: clx(styles__default.default['input-container'], styles__default.default['input-time'])
51
+ className: clx(styles__default.default["input-container"], styles__default.default["input-time"])
52
52
  }, /*#__PURE__*/React__default.default.createElement("input", {
53
- className: clx(styles__default.default['input-field']),
53
+ className: clx(styles__default.default["input-field"]),
54
54
  tabIndex: 0,
55
55
  "aria-expanded": "false",
56
56
  "aria-haspopup": "true",
@@ -61,8 +61,8 @@ var TimePicker = function TimePicker(_a) {
61
61
  value: time
62
62
  })),
63
63
  value: time,
64
- onChange: function onChange(time) {
65
- return setTime(time);
64
+ onChange: function onChange(value) {
65
+ return setTime(value);
66
66
  }
67
67
  });
68
68
  };
@@ -1,26 +1,26 @@
1
1
  .input-container {
2
- border-top-left-radius: 0.375rem;
2
+ align-items: center;
3
+ border-bottom: 1px solid var(--palette-bg-3);
3
4
  border-bottom-left-radius: 0.375rem;
4
- border-top: 1px solid var(--palette-bg-3);
5
5
  border-left: 1px solid var(--palette-bg-3);
6
- border-bottom: 1px solid var(--palette-bg-3);
6
+ border-top: 1px solid var(--palette-bg-3);
7
+ border-top-left-radius: 0.375rem;
8
+ box-sizing: border-box;
7
9
  display: flex;
8
- justify-content: center;
9
- align-items: center;
10
10
  height: 36px;
11
- box-sizing: border-box;
11
+ justify-content: center;
12
12
  }
13
13
 
14
14
  .input-field {
15
+ background: transparent;
16
+ border: none;
17
+ box-sizing: border-box;
18
+ font-size: 1em;
15
19
  height: 100%;
20
+ outline: none;
16
21
  padding: 4px;
17
22
  text-align: center;
18
- font-size: 1em;
19
- outline: none;
20
- border: none;
21
23
  width: 100%;
22
- background: transparent;
23
- box-sizing: border-box;
24
24
  }
25
25
 
26
26
  .input-time {
@@ -28,29 +28,29 @@
28
28
  }
29
29
 
30
30
  .input-time::before {
31
+ background-color: var(--palette-bg-3);
31
32
  content: "";
32
- position: absolute;
33
33
  height: 100%;
34
- width: 1px;
35
- background-color: var(--palette-bg-3);
34
+ position: absolute;
36
35
  right: 0;
36
+ width: 1px;
37
37
  }
38
38
 
39
39
  .input-time:focus-within {
40
- border-top: 1px solid var(--palette-primary-3);
41
- border-left: 1px solid var(--palette-primary-3);
42
40
  border-bottom: 1px solid var(--palette-primary-3);
41
+ border-left: 1px solid var(--palette-primary-3);
42
+ border-top: 1px solid var(--palette-primary-3);
43
43
  box-shadow: 0 0 0 2px var(--palette-primary-2);
44
44
  z-index: 2;
45
45
  }
46
46
 
47
47
  .input-time:focus-within::before {
48
+ background-color: var(--palette-primary-3);
48
49
  content: "";
49
- position: absolute;
50
50
  height: 100%;
51
- width: 1px;
52
- background-color: var(--palette-primary-3);
51
+ position: absolute;
53
52
  right: 0;
53
+ width: 1px;
54
54
  }
55
55
 
56
56
  .select {
package/Dropdown/index.js CHANGED
@@ -60,7 +60,7 @@ var Dropdown = function Dropdown(_a) {
60
60
  enabled: preventOverflow
61
61
  }]
62
62
  }),
63
- styles = _m.styles,
63
+ popperStyles = _m.styles,
64
64
  attributes = _m.attributes,
65
65
  update = _m.update;
66
66
  var isNotComponent = typeof children === "string";
@@ -134,7 +134,7 @@ var Dropdown = function Dropdown(_a) {
134
134
  ref: setPopperElement,
135
135
  "data-testid": "popper-container",
136
136
  className: clx("popper-container"),
137
- style: tslib.__assign(tslib.__assign(tslib.__assign(tslib.__assign({}, styles.popper), {
137
+ style: tslib.__assign(tslib.__assign(tslib.__assign(tslib.__assign({}, popperStyles.popper), {
138
138
  zIndex: zIndex,
139
139
  minWidth: controlElement === null || controlElement === void 0 ? void 0 : controlElement.offsetWidth
140
140
  }), samewidth && {
@@ -24,7 +24,6 @@ var MenuItem = /*#__PURE__*/React.forwardRef(function (_a, ref) {
24
24
  children = _a.children;
25
25
  return /*#__PURE__*/React__default.default.createElement("li", {
26
26
  ref: ref,
27
- "data-component": "menu-item",
28
27
  style: {
29
28
  backgroundColor: isSelected ? "var(--palette-bg-2, rgb(232, 240, 254))" : ""
30
29
  },
@@ -0,0 +1,19 @@
1
+ import React from "react";
2
+ import type { ReactNode } from "react";
3
+ import type { GroupProps } from "../../index.props";
4
+ export interface IOption {
5
+ selected: boolean;
6
+ value: string;
7
+ label: ReactNode;
8
+ disabled?: boolean;
9
+ }
10
+ type MenuOverlayGroup = Omit<GroupProps, "options" | "value"> & {
11
+ options: IOption[];
12
+ value: string;
13
+ };
14
+ type MenuOverlayProps = {
15
+ groups: MenuOverlayGroup[];
16
+ onChange: (key: string) => void;
17
+ };
18
+ declare const _default: React.MemoExoticComponent<({ groups, onChange }: MenuOverlayProps) => React.JSX.Element>;
19
+ export default _default;
@@ -0,0 +1,103 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var React = require('react');
6
+ var classNames = require('classnames/bind');
7
+ var index$2 = require('../../../Menu/index.js');
8
+ var index$3 = require('../MenuOverlayItem/index.js');
9
+ var generateUniqID = require('../../../helpers/generateUniqID.js');
10
+ var index = require('../../../Typography/index.js');
11
+ var index$1 = require('../../../Separator/index.js');
12
+ var index$4 = require('../../utils/index.js');
13
+ var styles = require('./index.module.css');
14
+
15
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
16
+
17
+ var React__default = /*#__PURE__*/_interopDefault(React);
18
+ var classNames__default = /*#__PURE__*/_interopDefault(classNames);
19
+ var styles__default = /*#__PURE__*/_interopDefault(styles);
20
+
21
+ var clx = classNames__default.default.bind(styles__default.default);
22
+ var OFFSET_ITEMS_COUNT = 2;
23
+ var MenuOverlay = function MenuOverlay(_a) {
24
+ var groups = _a.groups,
25
+ onChange = _a.onChange;
26
+ var refs = React.useRef({});
27
+ var _b = React.useState({
28
+ top: 0,
29
+ height: 0
30
+ }),
31
+ scrollView = _b[0],
32
+ setScrollView = _b[1];
33
+ var rootRef = React.useRef(null);
34
+ React.useLayoutEffect(function () {
35
+ if (!rootRef || !rootRef.current) {
36
+ return;
37
+ }
38
+ if (typeof rootRef.current.scrollTo === "function") {
39
+ rootRef.current.scrollTo({
40
+ top: scrollView.top - OFFSET_ITEMS_COUNT * scrollView.height
41
+ });
42
+ }
43
+ }, [scrollView, rootRef]);
44
+ function scrollToItem(key) {
45
+ var _a, _b, _c, _d;
46
+ if (!refs.current && !refs.current[key]) {
47
+ return;
48
+ }
49
+ var offsetTop = (_b = (_a = refs.current[key]) === null || _a === void 0 ? void 0 : _a.offsetTop) !== null && _b !== void 0 ? _b : 0;
50
+ var offsetHeight = (_d = (_c = refs.current[key]) === null || _c === void 0 ? void 0 : _c.offsetHeight) !== null && _d !== void 0 ? _d : 0;
51
+ setScrollView({
52
+ top: offsetTop,
53
+ height: offsetHeight
54
+ });
55
+ }
56
+ React.useLayoutEffect(function () {
57
+ var allOptions = groups.flatMap(function (group) {
58
+ return group.options.map(function (option) {
59
+ return {
60
+ option: option,
61
+ key: "group-".concat(group.value, "-option-").concat(option.value)
62
+ };
63
+ });
64
+ });
65
+ var firstSelectedOptionWithKey = allOptions.find(function (_a) {
66
+ var option = _a.option;
67
+ return option.selected;
68
+ });
69
+ if (firstSelectedOptionWithKey) {
70
+ var key = firstSelectedOptionWithKey.key;
71
+ scrollToItem(key);
72
+ }
73
+ }, []);
74
+ return /*#__PURE__*/React__default.default.createElement("div", {
75
+ ref: rootRef,
76
+ className: clx(styles__default.default.root)
77
+ }, groups.map(function (group, groupIndex) {
78
+ return /*#__PURE__*/React__default.default.createElement("div", {
79
+ key: generateUniqID.default(groupIndex)
80
+ }, /*#__PURE__*/React__default.default.createElement("div", {
81
+ className: clx(styles__default.default.title)
82
+ }, /*#__PURE__*/React__default.default.createElement(index.default, {
83
+ style: {
84
+ color: "var(--typography-secondary)"
85
+ },
86
+ size: "s"
87
+ }, group.title)), /*#__PURE__*/React__default.default.createElement(index$1.default, null), /*#__PURE__*/React__default.default.createElement(index$2.default, null, group.options.map(function (option, optionIndex) {
88
+ return /*#__PURE__*/React__default.default.createElement(index$3.default, {
89
+ ref: function ref(_ref) {
90
+ refs.current["group-".concat(group.value, "-option-").concat(option.value)] = _ref;
91
+ },
92
+ option: option,
93
+ key: generateUniqID.default(optionIndex),
94
+ onClick: function onClick() {
95
+ return onChange(index$4.createGroupOptionString(group.value, option.value));
96
+ }
97
+ });
98
+ })));
99
+ }));
100
+ };
101
+ var MenuOverlay$1 = /*#__PURE__*/React.memo(MenuOverlay);
102
+
103
+ exports.default = MenuOverlay$1;
@@ -0,0 +1,9 @@
1
+ .root {
2
+ max-height: 140px;
3
+ overflow-y: auto;
4
+ }
5
+
6
+ .title {
7
+ color: var(--palette-bg-4);
8
+ margin: 8px 6px;
9
+ }
@@ -0,0 +1,14 @@
1
+ import React from "react";
2
+ type SelectItemProps = {
3
+ option: {
4
+ value: string;
5
+ label: React.ReactNode;
6
+ selected: boolean;
7
+ disabled?: boolean;
8
+ };
9
+ onClick?: () => void;
10
+ };
11
+ declare const _default: React.ForwardRefExoticComponent<SelectItemProps & {
12
+ children?: React.ReactNode | undefined;
13
+ } & React.RefAttributes<HTMLLIElement>>;
14
+ export default _default;
@@ -0,0 +1,28 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var React = require('react');
6
+ var index = require('../../../Menu/components/MenuItem/index.js');
7
+ var Check = require('../../../Icons/Check.js');
8
+
9
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
10
+
11
+ var React__default = /*#__PURE__*/_interopDefault(React);
12
+
13
+ var SelectItem = function SelectItem(_a, ref) {
14
+ var option = _a.option,
15
+ onClick = _a.onClick;
16
+ return /*#__PURE__*/React__default.default.createElement(index.default, {
17
+ ref: ref,
18
+ onClick: onClick,
19
+ isSelected: option.selected,
20
+ disabled: option.disabled
21
+ }, option.label, option.selected && /*#__PURE__*/React__default.default.createElement(Check.default, {
22
+ width: 16,
23
+ height: 16
24
+ }));
25
+ };
26
+ var SelectItem$1 = /*#__PURE__*/React.forwardRef(SelectItem);
27
+
28
+ exports.default = SelectItem$1;
@@ -0,0 +1,4 @@
1
+ import React from "react";
2
+ import type { MultiSelectProps } from "./index.props";
3
+ declare const MultiSelect: ({ className, groups, zIndex, fontSize, disabled, fullWidth, required, label, hint, error, size, placeholder, name, }: MultiSelectProps) => React.JSX.Element;
4
+ export default MultiSelect;
@@ -0,0 +1,136 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var tslib = require('tslib');
6
+ var React = require('react');
7
+ var classNames = require('classnames/bind');
8
+ var index$2 = require('../Dropdown/index.js');
9
+ var index$4 = require('../base/InputRoot/index.js');
10
+ var index$1 = require('../base/FormField/index.js');
11
+ require('../Icons/index.js');
12
+ var styles = require('./index.module.css');
13
+ var index$3 = require('./components/MenuOverlay/index.js');
14
+ var index = require('./utils/index.js');
15
+ var Chevron = require('../Icons/Chevron.js');
16
+
17
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
18
+
19
+ var React__default = /*#__PURE__*/_interopDefault(React);
20
+ var classNames__default = /*#__PURE__*/_interopDefault(classNames);
21
+ var styles__default = /*#__PURE__*/_interopDefault(styles);
22
+
23
+ var clx = classNames__default.default.bind(styles__default.default);
24
+ var sortedItems = function sortedItems(items) {
25
+ return items.sort(function (a, b) {
26
+ if (!a || !b) return 0;
27
+ var matchA = a.match(/group-(\d+)-option-(\d+)/);
28
+ var matchB = b.match(/group-(\d+)-option-(\d+)/);
29
+ if (!matchA || !matchB) {
30
+ return 0;
31
+ }
32
+ var _a = matchA.map(Number),
33
+ groupA = _a[1],
34
+ optionA = _a[2];
35
+ var _b = matchB.map(Number),
36
+ groupB = _b[1],
37
+ optionB = _b[2];
38
+ return groupA - groupB || optionA - optionB;
39
+ });
40
+ };
41
+ var MultiSelect = function MultiSelect(_a) {
42
+ var className = _a.className,
43
+ groups = _a.groups,
44
+ zIndex = _a.zIndex,
45
+ fontSize = _a.fontSize,
46
+ disabled = _a.disabled,
47
+ _b = _a.fullWidth,
48
+ fullWidth = _b === void 0 ? false : _b,
49
+ required = _a.required,
50
+ label = _a.label,
51
+ hint = _a.hint,
52
+ error = _a.error,
53
+ _c = _a.size,
54
+ size = _c === void 0 ? "m" : _c,
55
+ placeholder = _a.placeholder,
56
+ name = _a.name;
57
+ var _d = React.useState(false),
58
+ isOpen = _d[0],
59
+ setIsOpen = _d[1];
60
+ var _e = React.useState([]),
61
+ value = _e[0],
62
+ setValue = _e[1];
63
+ var preparedGroups = React.useMemo(function () {
64
+ return groups.map(function (group) {
65
+ return tslib.__assign(tslib.__assign({}, group), {
66
+ options: group.options.map(function (option) {
67
+ return tslib.__assign(tslib.__assign({}, option), {
68
+ selected: (value === null || value === void 0 ? void 0 : value.includes(index.createGroupOptionString(group.value, option.value))) || false
69
+ });
70
+ })
71
+ });
72
+ });
73
+ }, [value, groups]);
74
+ var handleChange = React.useCallback(function (key) {
75
+ setValue(function (prev) {
76
+ if (prev.indexOf(key) !== -1) {
77
+ return prev.filter(function (prevValue) {
78
+ return prevValue !== key;
79
+ });
80
+ } else {
81
+ return sortedItems(tslib.__spreadArray(tslib.__spreadArray([], prev, true), [key], false));
82
+ }
83
+ });
84
+ }, [sortedItems]);
85
+ var prepraredLabel = React.useMemo(function () {
86
+ return preparedGroups.flatMap(function (group) {
87
+ return group.options.filter(function (option) {
88
+ return option.selected;
89
+ }).map(function (option) {
90
+ return option.label;
91
+ });
92
+ });
93
+ }, [preparedGroups]);
94
+ return /*#__PURE__*/React__default.default.createElement(index$1.default, {
95
+ className: clx(styles__default.default["form-field"], {
96
+ "full-width": fullWidth ? 1 : 0
97
+ }, className),
98
+ required: required,
99
+ label: label,
100
+ hint: hint,
101
+ error: error
102
+ }, /*#__PURE__*/React__default.default.createElement(index$2.default, {
103
+ placement: "bottom-start",
104
+ onVisibleChange: setIsOpen,
105
+ trigger: ["click"],
106
+ zIndex: zIndex,
107
+ fontSize: fontSize,
108
+ disabled: !!disabled,
109
+ overlay: /*#__PURE__*/React__default.default.createElement(index$3.default, {
110
+ groups: preparedGroups,
111
+ onChange: handleChange
112
+ }),
113
+ samewidth: true
114
+ }, /*#__PURE__*/React__default.default.createElement(index$4.default, {
115
+ error: error,
116
+ size: size,
117
+ className: clx(styles__default.default.root),
118
+ endIcon: /*#__PURE__*/React__default.default.createElement(Chevron.default, {
119
+ className: clx(styles__default.default.icon, {
120
+ icon_isOpen: isOpen ? 1 : 0
121
+ })
122
+ }),
123
+ disabled: !!disabled
124
+ }, /*#__PURE__*/React__default.default.createElement("div", {
125
+ className: clx(styles__default.default["base-input"])
126
+ }, prepraredLabel.length ? prepraredLabel.join(", ") : (/*#__PURE__*/React__default.default.createElement("span", {
127
+ className: clx(styles__default.default.placeholder)
128
+ }, placeholder))), /*#__PURE__*/React__default.default.createElement("input", {
129
+ type: "hidden",
130
+ name: name,
131
+ tabIndex: -1,
132
+ value: value || ""
133
+ }))));
134
+ };
135
+
136
+ exports.default = MultiSelect;
@@ -0,0 +1,36 @@
1
+ .root {
2
+ cursor: pointer;
3
+ }
4
+
5
+ .icon_isOpen {
6
+ transform: rotate(180deg);
7
+ }
8
+
9
+ .full-width {
10
+ width: 100%;
11
+ }
12
+
13
+ .base-input {
14
+ background: transparent;
15
+ border: none;
16
+ display: inline-block;
17
+ flex: 1;
18
+ margin: 7px 0;
19
+ overflow: hidden;
20
+ text-overflow: ellipsis;
21
+ white-space: nowrap;
22
+ width: 100%;
23
+ }
24
+ .base-input ::placeholder {
25
+ color: var(--palette-bg-2);
26
+ }
27
+
28
+ .placeholder {
29
+ color: var(--input-primary-plaseholder-color);
30
+ display: block;
31
+ max-width: 100%;
32
+ overflow: hidden;
33
+ text-overflow: ellipsis;
34
+ user-select: none;
35
+ white-space: nowrap;
36
+ }
@@ -0,0 +1,29 @@
1
+ import type { FormFieldProps } from "../base/FormField/index.props";
2
+ export type GroupOptions = {
3
+ value: string;
4
+ label: string;
5
+ disabled?: boolean;
6
+ };
7
+ export type Coordinates = {
8
+ top: number;
9
+ height: number;
10
+ };
11
+ export type GroupProps = {
12
+ value: string;
13
+ title: string;
14
+ options: GroupOptions[];
15
+ };
16
+ type Size = "s" | "m" | "l";
17
+ export interface MultiSelectProps extends Omit<FormFieldProps, "children"> {
18
+ groups: GroupProps[];
19
+ className?: string;
20
+ zIndex?: number;
21
+ fontSize?: number;
22
+ disabled?: boolean;
23
+ fullWidth?: boolean;
24
+ required?: boolean;
25
+ size?: Size;
26
+ placeholder?: string;
27
+ name?: string;
28
+ }
29
+ export {};
@@ -0,0 +1,6 @@
1
+ {
2
+ "sideEffects": false,
3
+ "module": "../esm/MultiSelect/index.js",
4
+ "main": "./index.js",
5
+ "types": "./index.d.ts"
6
+ }
@@ -0,0 +1 @@
1
+ export declare function createGroupOptionString(groupValue: string, optionValue: string): string;
@@ -0,0 +1,7 @@
1
+ 'use strict';
2
+
3
+ function createGroupOptionString(groupValue, optionValue) {
4
+ return "group-".concat(groupValue, "-option-").concat(optionValue);
5
+ }
6
+
7
+ exports.createGroupOptionString = createGroupOptionString;
package/Select/index.js CHANGED
@@ -45,12 +45,12 @@ var Select = function Select(_a) {
45
45
  return options.map(function (_a) {
46
46
  var lvalue = _a.value,
47
47
  llabel = _a.label,
48
- disabled = _a.disabled;
48
+ ldisabled = _a.disabled;
49
49
  return {
50
50
  value: lvalue,
51
51
  label: llabel,
52
52
  selected: value === lvalue,
53
- disabled: disabled
53
+ disabled: ldisabled
54
54
  };
55
55
  });
56
56
  }, [value, options]);