colibri-ui 0.8.47 → 0.8.51

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 (49) hide show
  1. package/Avatar/index.js +5 -5
  2. package/ClickOutside/index.d.ts +3 -2
  3. package/ClickOutside/index.js +7 -10
  4. package/Dropdown/Dropdown.module.css +8 -0
  5. package/Dropdown/index.d.ts +1 -1
  6. package/Dropdown/index.js +48 -96
  7. package/Dropdown/index.props.d.ts +2 -4
  8. package/Menu/components/MenuItem/index.js +3 -3
  9. package/Menu/index.js +1 -1
  10. package/MultiSelect/components/MenuOverlay/index.js +2 -5
  11. package/MultiSelect/index.js +7 -4
  12. package/MultiSelect/index.module.css +0 -1
  13. package/Select/components/MenuOverlay/index.js +1 -4
  14. package/Select/index.d.ts +2 -2
  15. package/Select/index.js +10 -7
  16. package/Tooltip/Tooltip.module.css +18 -112
  17. package/Tooltip/index.d.ts +3 -3
  18. package/Tooltip/index.js +50 -81
  19. package/Tooltip/index.props.d.ts +5 -6
  20. package/esm/Avatar/index.js +5 -5
  21. package/esm/ClickOutside/index.d.ts +3 -2
  22. package/esm/ClickOutside/index.js +8 -10
  23. package/esm/Dropdown/Dropdown.module.css +8 -0
  24. package/esm/Dropdown/index.d.ts +1 -1
  25. package/esm/Dropdown/index.js +46 -95
  26. package/esm/Dropdown/index.props.d.ts +2 -4
  27. package/esm/Menu/components/MenuItem/index.js +3 -3
  28. package/esm/Menu/index.js +1 -1
  29. package/esm/MultiSelect/components/MenuOverlay/index.js +2 -4
  30. package/esm/MultiSelect/index.js +7 -4
  31. package/esm/MultiSelect/index.module.css +0 -1
  32. package/esm/Select/components/MenuOverlay/index.js +1 -3
  33. package/esm/Select/index.d.ts +2 -2
  34. package/esm/Select/index.js +10 -7
  35. package/esm/Tooltip/Tooltip.module.css +18 -112
  36. package/esm/Tooltip/index.d.ts +3 -3
  37. package/esm/Tooltip/index.js +51 -82
  38. package/esm/Tooltip/index.props.d.ts +5 -6
  39. package/esm/hooks/useOnClickOutside/index.d.ts +9 -2
  40. package/esm/hooks/useOnClickOutside/index.js +5 -4
  41. package/esm/index.d.ts +0 -2
  42. package/esm/index.js +0 -2
  43. package/hooks/useOnClickOutside/index.d.ts +9 -2
  44. package/hooks/useOnClickOutside/index.js +5 -4
  45. package/index.d.ts +0 -2
  46. package/index.js +57 -61
  47. package/package.json +4 -3
  48. package/esm/helpers/on.js +0 -10
  49. package/helpers/on.js +0 -12
package/Avatar/index.js CHANGED
@@ -23,8 +23,8 @@ var clx = classNames__default.default.bind(styles__default.default);
23
23
  var getStubImage = function getStubImage(type) {
24
24
  return type === index_props.AccountType.Organization ? orgCircle.default : userCircle.default;
25
25
  };
26
- var SIZE_CLASSES = _defineProperty__default.default(_defineProperty__default.default(_defineProperty__default.default(_defineProperty__default.default(_defineProperty__default.default(_defineProperty__default.default({}, constants.AvatarSize.S, styles__default.default['size-s']), constants.AvatarSize.M, styles__default.default['size-m']), constants.AvatarSize.L, styles__default.default['size-l']), constants.AvatarSize.XL, styles__default.default['size-xl']), constants.AvatarSize.XXL, styles__default.default['size-xxl']), constants.AvatarSize.XXXL, styles__default.default['size-xxxl']);
27
- var TEXT_CLASSES = _defineProperty__default.default(_defineProperty__default.default(_defineProperty__default.default(_defineProperty__default.default(_defineProperty__default.default(_defineProperty__default.default({}, constants.AvatarSize.S, styles__default.default['text-s']), constants.AvatarSize.M, styles__default.default['text-m']), constants.AvatarSize.L, styles__default.default['text-l']), constants.AvatarSize.XL, styles__default.default['text-xl']), constants.AvatarSize.XXL, styles__default.default['text-xxl']), constants.AvatarSize.XXXL, styles__default.default['text-xxxl']);
26
+ var SIZE_CLASSES = _defineProperty__default.default(_defineProperty__default.default(_defineProperty__default.default(_defineProperty__default.default(_defineProperty__default.default(_defineProperty__default.default({}, constants.AvatarSize.S, styles__default.default["size-s"]), constants.AvatarSize.M, styles__default.default["size-m"]), constants.AvatarSize.L, styles__default.default["size-l"]), constants.AvatarSize.XL, styles__default.default["size-xl"]), constants.AvatarSize.XXL, styles__default.default["size-xxl"]), constants.AvatarSize.XXXL, styles__default.default["size-xxxl"]);
27
+ var TEXT_CLASSES = _defineProperty__default.default(_defineProperty__default.default(_defineProperty__default.default(_defineProperty__default.default(_defineProperty__default.default(_defineProperty__default.default({}, constants.AvatarSize.S, styles__default.default["text-s"]), constants.AvatarSize.M, styles__default.default["text-m"]), constants.AvatarSize.L, styles__default.default["text-l"]), constants.AvatarSize.XL, styles__default.default["text-xl"]), constants.AvatarSize.XXL, styles__default.default["text-xxl"]), constants.AvatarSize.XXXL, styles__default.default["text-xxxl"]);
28
28
  var Avatar = /*#__PURE__*/React.memo(function (props) {
29
29
  var src = props.src,
30
30
  _props$size = props.size,
@@ -63,7 +63,7 @@ var Avatar = /*#__PURE__*/React.memo(function (props) {
63
63
  "data-testid": "avatar",
64
64
  alt: alt,
65
65
  src: finalSrc,
66
- className: clx('avatar', {
66
+ className: clx("avatar", {
67
67
  avatarBordered: !!bordered
68
68
  }, SIZE_CLASSES[size], className)
69
69
  }, rest)))) : (
@@ -75,12 +75,12 @@ var Avatar = /*#__PURE__*/React.memo(function (props) {
75
75
  role: "button",
76
76
  "aria-label": ariaLabel || "Avatar",
77
77
  onClick: onClick,
78
- className: clx('avatarInitials', {
78
+ className: clx("avatarInitials", {
79
79
  avatarBordered: !!bordered,
80
80
  loading: !!loading
81
81
  }, SIZE_CLASSES[size], className)
82
82
  }, rest), /*#__PURE__*/React__default.default.createElement("span", {
83
- className: clx('initialsText', TEXT_CLASSES[size])
83
+ className: clx("initialsText", TEXT_CLASSES[size])
84
84
  }, (initials === null || initials === void 0 ? void 0 : initials.trim().slice(0, 2)) || "")));
85
85
  });
86
86
 
@@ -1,5 +1,6 @@
1
1
  import type { FC, PropsWithChildren } from "react";
2
- declare const ClickOutside: FC<PropsWithChildren<{
2
+ type ClickOutsideProps = {
3
3
  onClick: (e: MouseEvent | TouchEvent) => void;
4
- }>>;
4
+ };
5
+ declare const ClickOutside: FC<PropsWithChildren<ClickOutsideProps>>;
5
6
  export default ClickOutside;
@@ -9,23 +9,20 @@ var index = require('../hooks/useOnClickOutside/index.js');
9
9
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
10
10
 
11
11
  var _typeof__default = /*#__PURE__*/_interopDefault(_typeof);
12
- var React__default = /*#__PURE__*/_interopDefault(React);
13
12
 
14
13
  var ClickOutside = function ClickOutside(_ref) {
15
14
  var children = _ref.children,
16
15
  onClick = _ref.onClick;
17
- var childRef = React.useRef();
16
+ var childRef = React.useRef(null);
18
17
  index.default(childRef, onClick);
19
- if (! /*#__PURE__*/React__default.default.isValidElement(children)) return null;
18
+ if (! /*#__PURE__*/React.isValidElement(children)) return null;
20
19
  var combinedRef = function combinedRef(node) {
21
20
  childRef.current = node;
22
- if (/*#__PURE__*/React__default.default.isValidElement(children) && "ref" in children.props) {
23
- var childRefProp = children.props.ref;
24
- if (typeof childRefProp === "function") {
25
- childRefProp(node);
26
- } else if (childRefProp && _typeof__default.default(childRefProp) === "object") {
27
- childRefProp.current = node;
28
- }
21
+ var childRefProp = children.ref;
22
+ if (typeof childRefProp === "function") {
23
+ childRefProp(node);
24
+ } else if (childRefProp && _typeof__default.default(childRefProp) === "object" && "current" in childRefProp) {
25
+ childRefProp.current = node;
29
26
  }
30
27
  };
31
28
  return /*#__PURE__*/React.cloneElement(children, {
@@ -4,6 +4,14 @@
4
4
  z-index: 1001;
5
5
  }
6
6
 
7
+ .popper-container.placement-top {
8
+ transform-origin: bottom center;
9
+ }
10
+
11
+ .popper-container.placement-bottom {
12
+ transform-origin: top center;
13
+ }
14
+
7
15
  .overlay-container {
8
16
  background-color: var(--palette-white);
9
17
  border-color: var(--palette-bg-2);
@@ -1,4 +1,4 @@
1
+ import { type FC, type PropsWithChildren } from "react";
1
2
  import type { DropdownProps } from "./index.props";
2
- import type { FC, PropsWithChildren } from "react";
3
3
  declare const Dropdown: FC<PropsWithChildren<DropdownProps>>;
4
4
  export default Dropdown;
package/Dropdown/index.js CHANGED
@@ -2,17 +2,17 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
+ var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
5
6
  var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
6
7
  var React = require('react');
7
8
  var classNames = require('classnames/bind');
8
- var reactPopper = require('react-popper');
9
- var index = require('../Portal/index.js');
10
- var on = require('../helpers/on.js');
11
- var index$1 = require('../ClickOutside/index.js');
9
+ var react = require('@floating-ui/react');
10
+ var index = require('../ClickOutside/index.js');
12
11
  var styles = require('./Dropdown.module.css');
13
12
 
14
13
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
15
14
 
15
+ var _toConsumableArray__default = /*#__PURE__*/_interopDefault(_toConsumableArray);
16
16
  var _slicedToArray__default = /*#__PURE__*/_interopDefault(_slicedToArray);
17
17
  var React__default = /*#__PURE__*/_interopDefault(React);
18
18
  var classNames__default = /*#__PURE__*/_interopDefault(classNames);
@@ -27,7 +27,7 @@ var Dropdown = function Dropdown(_ref) {
27
27
  onVisibleChange = _ref.onVisibleChange,
28
28
  overlay = _ref.overlay,
29
29
  _ref$placement = _ref.placement,
30
- placement = _ref$placement === void 0 ? "bottom-start" : _ref$placement,
30
+ placement = _ref$placement === void 0 ? "bottom-center" : _ref$placement,
31
31
  _ref$strategy = _ref.strategy,
32
32
  strategy = _ref$strategy === void 0 ? "absolute" : _ref$strategy,
33
33
  _ref$trigger = _ref.trigger,
@@ -39,102 +39,55 @@ var Dropdown = function Dropdown(_ref) {
39
39
  _ref$preventAutoClose = _ref.preventAutoClose,
40
40
  preventAutoClose = _ref$preventAutoClose === void 0 ? false : _ref$preventAutoClose,
41
41
  _ref$flip = _ref.flip,
42
- flip = _ref$flip === void 0 ? true : _ref$flip,
42
+ flipEnabled = _ref$flip === void 0 ? true : _ref$flip,
43
43
  _ref$samewidth = _ref.samewidth,
44
44
  samewidth = _ref$samewidth === void 0 ? false : _ref$samewidth;
45
- var _useState = React.useState(null),
45
+ var _a;
46
+ var _useState = React.useState(false),
46
47
  _useState2 = _slicedToArray__default.default(_useState, 2),
47
- controlElement = _useState2[0],
48
- setControlElement = _useState2[1];
49
- var _useState3 = React.useState(null),
50
- _useState4 = _slicedToArray__default.default(_useState3, 2),
51
- popperElement = _useState4[0],
52
- setPopperElement = _useState4[1];
53
- var _useState5 = React.useState(false),
54
- _useState6 = _slicedToArray__default.default(_useState5, 2),
55
- visible = _useState6[0],
56
- setVisible = _useState6[1];
48
+ visible = _useState2[0],
49
+ setVisible = _useState2[1];
57
50
  var isVisible = visibleProp && visible && !disabled;
58
- var _usePopper = reactPopper.usePopper(controlElement, popperElement, {
51
+ var _useFloating = react.useFloating({
52
+ open: isVisible,
53
+ onOpenChange: setVisible,
59
54
  placement: placement,
60
55
  strategy: strategy,
61
- modifiers: [{
62
- name: "flip",
63
- enabled: flip,
64
- options: {
65
- fallbackPlacements: ["top"]
66
- }
67
- }, {
68
- name: "preventOverflow",
69
- enabled: preventOverflow
70
- }]
56
+ whileElementsMounted: react.autoUpdate,
57
+ middleware: [react.offset(6)].concat(_toConsumableArray__default.default(flipEnabled ? [react.flip()] : []), _toConsumableArray__default.default(preventOverflow ? [react.shift()] : []))
71
58
  }),
72
- popperStyles = _usePopper.styles,
73
- attributes = _usePopper.attributes,
74
- update = _usePopper.update;
59
+ refs = _useFloating.refs,
60
+ floatingStyles = _useFloating.floatingStyles,
61
+ context = _useFloating.context,
62
+ update = _useFloating.update,
63
+ finalPlacement = _useFloating.placement;
64
+ var hover = react.useHover(context, {
65
+ enabled: trigger.includes("hover")
66
+ });
67
+ var click = react.useClick(context, {
68
+ enabled: trigger.includes("click")
69
+ });
70
+ var focus = react.useFocus(context, {
71
+ enabled: trigger.includes("focus")
72
+ });
73
+ var dismiss = react.useDismiss(context);
74
+ var role = react.useRole(context, {
75
+ role: "menu"
76
+ });
77
+ var _useInteractions = react.useInteractions([hover, click, focus, dismiss, role]),
78
+ getReferenceProps = _useInteractions.getReferenceProps,
79
+ getFloatingProps = _useInteractions.getFloatingProps;
75
80
  var isNotComponent = typeof children === "string";
76
81
  var reference = React.useMemo(function () {
77
82
  if (!children) return null;
78
83
  return React.Children.only(isNotComponent ? /*#__PURE__*/React__default.default.createElement("button", null, children) : children);
79
84
  }, [children, isNotComponent]);
80
- var onToggle = function onToggle(event) {
81
- var _a;
82
- if ((_a = event.target) === null || _a === void 0 ? void 0 : _a.closest('[data-ignore-click="true"]')) {
83
- return;
84
- }
85
- setVisible(function (state) {
86
- return !state;
87
- });
88
- };
89
- var handleShow = function handleShow() {
90
- return setVisible(true);
91
- };
92
- var handleHide = React.useCallback(function () {
93
- setVisible(false);
94
- }, []);
95
- var onClickOutside = React.useCallback(function (event) {
96
- if (controlElement === null || controlElement === void 0 ? void 0 : controlElement.contains(event.target)) return;
97
- handleHide();
98
- }, [handleHide, controlElement]);
99
85
  var onClickOverlay = React.useCallback(function (event) {
100
86
  event.stopPropagation();
101
87
  if (!preventAutoClose) {
102
- handleHide();
103
- }
104
- },
105
- // eslint-disable-next-line react-hooks/exhaustive-deps
106
- [handleHide]);
107
- React.useEffect(function () {
108
- var unsubscribes = [];
109
- if (trigger.includes("click")) {
110
- unsubscribes.push(on.on(controlElement, "click", onToggle, false));
88
+ setVisible(false);
111
89
  }
112
- if (trigger.includes("hover")) {
113
- unsubscribes.push(on.on(controlElement, "mouseenter", handleShow, false));
114
- unsubscribes.push(on.on(controlElement, "mouseleave", handleHide, false));
115
- unsubscribes.push(on.on(popperElement, "mouseenter", handleShow, false));
116
- unsubscribes.push(on.on(popperElement, "mouseleave", handleHide, false));
117
- }
118
- if (trigger.includes("focus")) {
119
- var onFocusOut = function onFocusOut() {
120
- requestAnimationFrame(function () {
121
- if (controlElement === null || controlElement === void 0 ? void 0 : controlElement.contains(document.activeElement)) return;
122
- if (popperElement === null || popperElement === void 0 ? void 0 : popperElement.contains(document.activeElement)) return;
123
- handleHide();
124
- });
125
- };
126
- unsubscribes.push(on.on(controlElement, "focusin", handleShow, false));
127
- unsubscribes.push(on.on(controlElement, "focusout", onFocusOut, false));
128
- unsubscribes.push(on.on(popperElement, "focusin", handleShow, false));
129
- unsubscribes.push(on.on(popperElement, "focusout", onFocusOut, false));
130
- }
131
- return function () {
132
- return unsubscribes.forEach(function (un) {
133
- return un();
134
- });
135
- };
136
- // eslint-disable-next-line react-hooks/exhaustive-deps
137
- }, [controlElement, popperElement, onToggle, handleShow, handleHide]);
90
+ }, [preventAutoClose]);
138
91
  React.useEffect(function () {
139
92
  if (onVisibleChange) onVisibleChange(visible);
140
93
  }, [onVisibleChange, visible]);
@@ -142,24 +95,23 @@ var Dropdown = function Dropdown(_ref) {
142
95
  if (update) update();
143
96
  }, [update, visible]);
144
97
  return /*#__PURE__*/React__default.default.createElement(React__default.default.Fragment, null, reference && (/*#__PURE__*/React__default.default.createElement(reference.type, Object.assign({
145
- ref: setControlElement,
98
+ ref: refs.setReference,
146
99
  tabIndex: 0
147
- }, reference.props))), isVisible && (/*#__PURE__*/React__default.default.createElement(index.default, null, /*#__PURE__*/React__default.default.createElement(index$1.default, {
148
- onClick: onClickOutside
100
+ }, getReferenceProps(reference.props)))), isVisible && (/*#__PURE__*/React__default.default.createElement(react.FloatingPortal, null, /*#__PURE__*/React__default.default.createElement(index.default, {
101
+ onClick: function onClick() {
102
+ return setVisible(false);
103
+ }
149
104
  }, /*#__PURE__*/React__default.default.createElement("div", Object.assign({
150
- ref: setPopperElement,
105
+ ref: refs.setFloating,
151
106
  "data-testid": "popper-container",
152
- className: clx("popper-container"),
153
- style: Object.assign(Object.assign(Object.assign(Object.assign({}, popperStyles.popper), {
107
+ className: clx("popper-container", "placement-".concat(finalPlacement)),
108
+ style: Object.assign(Object.assign({}, floatingStyles), {
154
109
  zIndex: zIndex,
155
- minWidth: controlElement === null || controlElement === void 0 ? void 0 : controlElement.offsetWidth
156
- }), samewidth && {
157
- maxWidth: controlElement === null || controlElement === void 0 ? void 0 : controlElement.offsetWidth
158
- }), {
110
+ minWidth: samewidth ? "".concat((_a = refs.reference.current) === null || _a === void 0 ? void 0 : _a.offsetWidth, "px") : undefined,
159
111
  fontSize: "".concat(fontSize, "px")
160
112
  }),
161
113
  tabIndex: 0
162
- }, attributes.popper), /*#__PURE__*/React__default.default.createElement("div", {
114
+ }, getFloatingProps()), /*#__PURE__*/React__default.default.createElement("div", {
163
115
  "data-testid": "overlay-container",
164
116
  className: clx("overlay-container"),
165
117
  onClick: onClickOverlay
@@ -1,7 +1,5 @@
1
1
  import type { ReactNode } from "react";
2
- import type { PositioningStrategy } from "@popperjs/core";
3
- import type { Placement as PopperPlacement } from "@popperjs/core";
4
- export type Placement = Extract<PopperPlacement, "bottom-start" | "bottom" | "bottom-end">;
2
+ import type { Placement, Strategy } from "@floating-ui/react";
5
3
  export type Trigger = "click" | "hover" | "focus";
6
4
  export type DropdownProps = {
7
5
  zIndex?: number;
@@ -10,7 +8,7 @@ export type DropdownProps = {
10
8
  onVisibleChange?: (visible: boolean) => void;
11
9
  overlay: ReactNode;
12
10
  placement?: Placement;
13
- strategy?: PositioningStrategy;
11
+ strategy?: Strategy;
14
12
  trigger?: [Trigger, ...Trigger[]];
15
13
  visible?: boolean;
16
14
  preventOverflow?: boolean;
@@ -28,7 +28,7 @@ var MenuItem = function MenuItem(_a) {
28
28
  ref = _a.ref,
29
29
  props = tslib.__rest(_a, ["className", "isSelected", "variant", "disabled", "onClick", "children", "onMouseEnter", "ref"]);
30
30
  var handleKeyDown = function handleKeyDown(event) {
31
- if (!disabled && (event.key === 'Enter' || event.key === ' ')) {
31
+ if (!disabled && (event.key === "Enter" || event.key === " ")) {
32
32
  event.preventDefault();
33
33
  onClick === null || onClick === void 0 ? void 0 : onClick(event);
34
34
  }
@@ -40,8 +40,8 @@ var MenuItem = function MenuItem(_a) {
40
40
  "data-testid": "menuitem",
41
41
  "aria-disabled": disabled || undefined,
42
42
  className: clx("item", _defineProperty__default.default({
43
- 'item_disabled': disabled,
44
- 'item_selected': isSelected
43
+ item_disabled: disabled,
44
+ item_selected: isSelected
45
45
  }, "item_variant_".concat(variant), true), className),
46
46
  onClick: !disabled ? onClick : undefined,
47
47
  onKeyDown: handleKeyDown,
package/Menu/index.js CHANGED
@@ -39,7 +39,7 @@ var Menu = function Menu(_ref) {
39
39
  }, [children, selected, onClick, variant]);
40
40
  return /*#__PURE__*/React__default.default.createElement("ul", {
41
41
  ref: ref,
42
- className: clx('menu', className),
42
+ className: clx("menu", className),
43
43
  role: "menu"
44
44
  }, renderChild);
45
45
  };
@@ -4,7 +4,6 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
6
6
  var React = require('react');
7
- var classNames = require('classnames/bind');
8
7
  var index$2 = require('../../../Menu/index.js');
9
8
  var index$3 = require('../MenuOverlayItem/index.js');
10
9
  var index = require('../../../Typography/index.js');
@@ -16,10 +15,8 @@ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
16
15
 
17
16
  var _slicedToArray__default = /*#__PURE__*/_interopDefault(_slicedToArray);
18
17
  var React__default = /*#__PURE__*/_interopDefault(React);
19
- var classNames__default = /*#__PURE__*/_interopDefault(classNames);
20
18
  var styles__default = /*#__PURE__*/_interopDefault(styles);
21
19
 
22
- var clx = classNames__default.default.bind(styles__default.default);
23
20
  var OFFSET_ITEMS_COUNT = 2;
24
21
  var MenuOverlay = function MenuOverlay(_ref) {
25
22
  var groups = _ref.groups,
@@ -76,12 +73,12 @@ var MenuOverlay = function MenuOverlay(_ref) {
76
73
  }, []);
77
74
  return /*#__PURE__*/React__default.default.createElement("div", {
78
75
  ref: rootRef,
79
- className: clx(styles__default.default.root)
76
+ className: styles__default.default.root
80
77
  }, groups.map(function (group, index$5) {
81
78
  return /*#__PURE__*/React__default.default.createElement("div", {
82
79
  key: "item-".concat(index$5)
83
80
  }, /*#__PURE__*/React__default.default.createElement("div", {
84
- className: clx(styles__default.default.title)
81
+ className: styles__default.default.title
85
82
  }, /*#__PURE__*/React__default.default.createElement(index.default, {
86
83
  style: {
87
84
  color: "var(--typography-secondary)"
@@ -129,16 +129,19 @@ var MultiSelect = function MultiSelect(_ref2) {
129
129
  onChange: handleChange
130
130
  }),
131
131
  samewidth: true
132
+ }, /*#__PURE__*/React__default.default.createElement("div", {
133
+ tabIndex: 0,
134
+ role: "button"
132
135
  }, /*#__PURE__*/React__default.default.createElement(index$4.default, {
133
136
  hasError: hasError,
134
137
  size: size,
135
138
  style: style,
136
- className: clx(styles__default.default.root, {
139
+ className: clx("root", {
137
140
  root_auto: preparedLabel.length
138
141
  }),
139
142
  endIcon: /*#__PURE__*/React__default.default.createElement(Chevron.default, {
140
- className: clx(styles__default.default.icon, {
141
- icon_isOpen: isOpen
143
+ className: clx("icon", {
144
+ icon_isOpen: isOpen && Boolean(!disabled)
142
145
  })
143
146
  }),
144
147
  disabled: Boolean(disabled)
@@ -165,7 +168,7 @@ var MultiSelect = function MultiSelect(_ref2) {
165
168
  name: name,
166
169
  tabIndex: -1,
167
170
  value: internalSelectedKeys.join(",") || ""
168
- }))));
171
+ })))));
169
172
  };
170
173
 
171
174
  exports.default = MultiSelect;
@@ -1,7 +1,6 @@
1
1
  .root {
2
2
  cursor: pointer;
3
3
  }
4
-
5
4
  .root_auto {
6
5
  height: auto;
7
6
  min-height: 36px;
@@ -4,7 +4,6 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
6
6
  var React = require('react');
7
- var classNames = require('classnames/bind');
8
7
  var index = require('../../../Menu/index.js');
9
8
  var index$1 = require('../MenuOverlayItem/index.js');
10
9
  var styles = require('./index.module.css');
@@ -13,10 +12,8 @@ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
13
12
 
14
13
  var _slicedToArray__default = /*#__PURE__*/_interopDefault(_slicedToArray);
15
14
  var React__default = /*#__PURE__*/_interopDefault(React);
16
- var classNames__default = /*#__PURE__*/_interopDefault(classNames);
17
15
  var styles__default = /*#__PURE__*/_interopDefault(styles);
18
16
 
19
- var clx = classNames__default.default.bind(styles__default.default);
20
17
  var OFFSET_ITEMS_COUNT = 2;
21
18
  var MenuOverlay = function MenuOverlay(_ref) {
22
19
  var options = _ref.options,
@@ -50,7 +47,7 @@ var MenuOverlay = function MenuOverlay(_ref) {
50
47
  }, [scrollView, rootRef]);
51
48
  return /*#__PURE__*/React__default.default.createElement("div", {
52
49
  ref: rootRef,
53
- className: clx(styles__default.default.root)
50
+ className: styles__default.default.root
54
51
  }, /*#__PURE__*/React__default.default.createElement(index.default, {
55
52
  ref: listRef,
56
53
  selected: selected
package/Select/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import React from "react";
1
+ import type { JSX } from "react";
2
2
  import type { SelectProps } from "./index.props";
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;
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>) => JSX.Element;
4
4
  export default Select;
package/Select/index.js CHANGED
@@ -57,7 +57,7 @@ var Select = function Select(_ref) {
57
57
  };
58
58
  });
59
59
  }, [value, options]);
60
- var prepraredLabel = React.useMemo(function () {
60
+ var preparedLabel = React.useMemo(function () {
61
61
  var _a;
62
62
  return (_a = preparedOptions.find(function (_ref3) {
63
63
  var selected = _ref3.selected;
@@ -79,33 +79,36 @@ var Select = function Select(_ref) {
79
79
  trigger: ["click"],
80
80
  zIndex: zIndex,
81
81
  fontSize: fontSize,
82
- disabled: !!disabled,
82
+ disabled: Boolean(disabled),
83
83
  overlay: /*#__PURE__*/React__default.default.createElement(index$2.default, {
84
84
  options: preparedOptions,
85
85
  onChange: onChange
86
86
  }),
87
87
  samewidth: true
88
- }, customInputRoot ? customInputRoot : (/*#__PURE__*/React__default.default.createElement(index$3.default, {
88
+ }, customInputRoot ? customInputRoot : (/*#__PURE__*/React__default.default.createElement("div", {
89
+ tabIndex: 0,
90
+ role: "button"
91
+ }, /*#__PURE__*/React__default.default.createElement(index$3.default, {
89
92
  hasError: hasError,
90
93
  size: size,
91
94
  className: clx(styles__default.default.root),
92
95
  endIcon: /*#__PURE__*/React__default.default.createElement(Chevron.default, {
93
96
  className: clx(styles__default.default.icon, {
94
- icon_isOpen: isOpen ? 1 : 0
97
+ icon_isOpen: isOpen && Boolean(!disabled)
95
98
  })
96
99
  }),
97
- disabled: !!disabled
100
+ disabled: Boolean(disabled)
98
101
  }, /*#__PURE__*/React__default.default.createElement("div", {
99
102
  className: clx(styles__default.default["base-input"]),
100
103
  "data-testid": "base-input"
101
- }, prepraredLabel !== null && prepraredLabel !== void 0 ? prepraredLabel : (/*#__PURE__*/React__default.default.createElement("span", {
104
+ }, preparedLabel !== null && preparedLabel !== void 0 ? preparedLabel : (/*#__PURE__*/React__default.default.createElement("span", {
102
105
  className: clx(styles__default.default.placeholder)
103
106
  }, placeholder))), /*#__PURE__*/React__default.default.createElement("input", {
104
107
  type: "hidden",
105
108
  name: name,
106
109
  tabIndex: -1,
107
110
  value: value || ""
108
- })))));
111
+ }))))));
109
112
  };
110
113
 
111
114
  exports.default = Select;
@@ -1,122 +1,28 @@
1
- .root[data-popper-placement=bottom-start] {
2
- padding-top: 4px;
3
- }
4
- .root[data-popper-placement=bottom-start]::before {
5
- left: 6px;
6
- top: 0;
7
- }
8
- .root[data-popper-placement=bottom-end] {
9
- padding-top: 4px;
10
- }
11
- .root[data-popper-placement=bottom-end]::before {
12
- right: 6px;
13
- top: 0;
14
- }
15
- .root[data-popper-placement=bottom] {
16
- padding-top: 4px;
17
- }
18
- .root[data-popper-placement=bottom]::before {
19
- left: 50%;
20
- top: 0;
21
- transform: translate(-50%, 0);
22
- }
23
- .root[data-popper-placement=right] {
24
- padding-left: 4px;
25
- }
26
- .root[data-popper-placement=right]::before {
27
- left: -6px;
28
- top: 50%;
29
- transform: translate(0, -50%) rotate(-90deg);
30
- }
31
- .root[data-popper-placement=right-start] {
32
- padding-left: 4px;
33
- }
34
- .root[data-popper-placement=right-start]::before {
35
- left: -6px;
36
- top: 6px;
37
- transform: rotate(-90deg);
38
- }
39
- .root[data-popper-placement=right-end] {
40
- padding-left: 4px;
41
- }
42
- .root[data-popper-placement=right-end]::before {
43
- bottom: 6px;
44
- left: -6px;
45
- transform: rotate(-90deg);
46
- }
47
- .root[data-popper-placement=left] {
48
- padding-right: 4px;
49
- }
50
- .root[data-popper-placement=left]::before {
51
- right: -6px;
52
- top: 50%;
53
- transform: translate(0, -50%) rotate(90deg);
54
- }
55
- .root[data-popper-placement=left-start] {
56
- padding-right: 4px;
57
- }
58
- .root[data-popper-placement=left-start]::before {
59
- right: -6px;
60
- top: 6px;
61
- transform: rotate(90deg);
62
- }
63
- .root[data-popper-placement=left-end] {
64
- padding-right: 4px;
65
- }
66
- .root[data-popper-placement=left-end]::before {
67
- bottom: 6px;
68
- right: -6px;
69
- transform: rotate(90deg);
70
- }
71
- .root[data-popper-placement=top] {
72
- padding-bottom: 4px;
73
- }
74
- .root[data-popper-placement=top]::before {
75
- bottom: 0;
76
- left: 50%;
77
- transform: translate(-50%, 0) rotate(180deg);
78
- }
79
- .root[data-popper-placement=top-start] {
80
- padding-bottom: 4px;
81
- }
82
- .root[data-popper-placement=top-start]::before {
83
- bottom: 0;
84
- left: 6px;
85
- transform: rotate(180deg);
86
- }
87
- .root[data-popper-placement=top-end] {
88
- padding-bottom: 4px;
89
- }
90
- .root[data-popper-placement=top-end]::before {
91
- bottom: 0;
92
- right: 6px;
93
- transform: rotate(180deg);
94
- }
95
-
96
- .tail {
97
- position: relative;
98
- }
99
- .tail::before {
100
- border-bottom: 5px solid var(--tooltip-bg);
101
- border-left: 6px solid transparent;
102
- border-right: 6px solid transparent;
103
- content: "";
104
- height: 0;
105
- position: absolute;
106
- width: 0;
107
- z-index: 3000;
108
- }
109
-
110
- .overlay {
1
+ .tooltip {
111
2
  background-color: var(--tooltip-bg);
112
3
  border-radius: 0.35rem;
4
+ box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
5
+ box-sizing: border-box;
113
6
  color: var(--tooltip-color);
7
+ display: inline-block;
114
8
  font-size: 14px;
115
- font-style: normal;
116
9
  font-weight: 400;
117
10
  line-height: 18px;
118
11
  max-width: 200px;
119
- overflow: hidden;
120
12
  padding: 4px 10px;
121
13
  position: relative;
14
+ z-index: 1000;
15
+ }
16
+
17
+ .content {
18
+ background-color: inherit;
19
+ border-radius: inherit;
20
+ color: inherit;
21
+ font-size: inherit;
22
+ font-weight: inherit;
23
+ line-height: inherit;
24
+ max-width: inherit;
25
+ overflow: hidden;
26
+ padding: inherit;
27
+ position: relative;
122
28
  }