@orfium/ictinus 4.86.0-next.1 → 4.86.0-next.2

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.
@@ -2,22 +2,17 @@
2
2
 
3
3
  exports.__esModule = true;
4
4
  exports.getKeyNames = exports.colorPicker = void 0;
5
- var _flatten = _interopRequireDefault(require("lodash/flatten"));
6
- var _keys = _interopRequireDefault(require("lodash/keys"));
7
- var _omit = _interopRequireDefault(require("lodash/omit"));
8
- var _sampleSize = _interopRequireDefault(require("lodash/sampleSize"));
9
- var _uniq = _interopRequireDefault(require("lodash/uniq"));
10
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
5
+ var _lodash = require("lodash");
11
6
  var getKeyNames = exports.getKeyNames = function getKeyNames(data) {
12
- return (0, _uniq["default"])((0, _flatten["default"])(data.map(function (object) {
13
- return (0, _keys["default"])((0, _omit["default"])(object, 'name'));
7
+ return (0, _lodash.uniq)((0, _lodash.flatten)(data.map(function (object) {
8
+ return (0, _lodash.keys)((0, _lodash.omit)(object, 'name'));
14
9
  })));
15
10
  };
16
11
  var colorPicker = exports.colorPicker = function colorPicker(_ref) {
17
12
  var theme = _ref.theme,
18
13
  uniqueKeyNames = _ref.uniqueKeyNames,
19
14
  color = _ref.color;
20
- var colorSample = (0, _sampleSize["default"])(theme.palette.flat, uniqueKeyNames.length);
15
+ var colorSample = (0, _lodash.sampleSize)(theme.palette.flat, uniqueKeyNames.length);
21
16
  return uniqueKeyNames.reduce(function (acc, key, index) {
22
17
  var _colorSample$index;
23
18
  var definedColor = typeof color === 'function' && color(key) ? color(key) : (_colorSample$index = colorSample[index]) == null ? void 0 : _colorSample$index[400];
@@ -8,7 +8,6 @@ var _DatePicker = require("./DatePicker.style");
8
8
  var _DatePickInput = _interopRequireDefault(require("./DatePickInput"));
9
9
  var _OverlayComponent = _interopRequireDefault(require("./OverlayComponent/OverlayComponent"));
10
10
  var _utils = require("./utils");
11
- var _ClickAwayListener = _interopRequireDefault(require("../utils/ClickAwayListener"));
12
11
  var _PositionInScreen = _interopRequireDefault(require("../utils/PositionInScreen"));
13
12
  var _react2 = require("@emotion/react");
14
13
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
@@ -171,10 +170,9 @@ var DatePicker = function DatePicker(_ref) {
171
170
  var onApply = (0, _react.useCallback)(function () {
172
171
  applyRangeAndClose(range);
173
172
  }, [applyRangeAndClose, range]);
174
- return (0, _react2.jsx)(_ClickAwayListener["default"], {
175
- onClick: onCancel
176
- }, (0, _react2.jsx)(_PositionInScreen["default"], {
173
+ return (0, _react2.jsx)(_PositionInScreen["default"], {
177
174
  visible: isOpen,
175
+ setIsVisible: onCancel,
178
176
  parent: (0, _react2.jsx)(_DatePickInput["default"], {
179
177
  filterConfig: filterConfig,
180
178
  isRangePicker: isRangePicker,
@@ -198,6 +196,6 @@ var DatePicker = function DatePicker(_ref) {
198
196
  disabledDates: disableDates,
199
197
  onCancel: onCancel,
200
198
  onApply: onApply
201
- }))));
199
+ })));
202
200
  };
203
201
  var _default = exports["default"] = /*#__PURE__*/(0, _react.memo)(DatePicker, _reactFastCompare["default"]);
@@ -2,7 +2,7 @@
2
2
 
3
3
  exports.__esModule = true;
4
4
  exports["default"] = void 0;
5
- var _debounce = _interopRequireDefault(require("lodash/debounce"));
5
+ var _lodash = require("lodash");
6
6
  var _react = _interopRequireWildcard(require("react"));
7
7
  var _helpers = require("../../utils/helpers");
8
8
  var _FilterBase = _interopRequireDefault(require("./components/FilterBase"));
@@ -10,13 +10,12 @@ var _MultiFilter = _interopRequireDefault(require("./components/MultiFilter/Mult
10
10
  var _SingleFilter = _interopRequireDefault(require("./components/SingleFilter/SingleFilter"));
11
11
  var _useMultiFilterUtils2 = _interopRequireDefault(require("./hooks/useMultiFilterUtils"));
12
12
  var _utils = require("./utils");
13
- var _ClickAwayListener = _interopRequireDefault(require("../utils/ClickAwayListener"));
14
13
  var _handleSearch = _interopRequireDefault(require("../utils/handleSearch"));
15
14
  var _PositionInScreen = _interopRequireDefault(require("../utils/PositionInScreen/PositionInScreen"));
16
15
  var _react2 = require("@emotion/react");
16
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
17
17
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
18
18
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
19
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
20
19
  var Filter = /*#__PURE__*/_react["default"].forwardRef(function (props, ref) {
21
20
  var items = props.items,
22
21
  onSelect = props.onSelect,
@@ -85,7 +84,10 @@ var Filter = /*#__PURE__*/_react["default"].forwardRef(function (props, ref) {
85
84
  handleOptionDelete = _useMultiFilterUtils.handleOptionDelete,
86
85
  handleClearAllOptions = _useMultiFilterUtils.handleClearAllOptions,
87
86
  handleMultiSelectOptionClick = _useMultiFilterUtils.handleMultiSelectOptionClick;
88
- var handleChange = function handleChange(event) {
87
+ var debouncedOnChange = (0, _react.useCallback)((0, _lodash.debounce)(function (value) {
88
+ onAsyncSearch == null || onAsyncSearch(value);
89
+ }, 400), []);
90
+ var handleChange = (0, _react.useCallback)(function (event) {
89
91
  var isAsync = typeof onAsyncSearch === 'function';
90
92
  (0, _handleSearch["default"])({
91
93
  event: event,
@@ -95,7 +97,7 @@ var Filter = /*#__PURE__*/_react["default"].forwardRef(function (props, ref) {
95
97
  onChange: debouncedOnChange,
96
98
  minCharactersToSearch: minCharactersToSearch
97
99
  });
98
- };
100
+ }, [debouncedOnChange, isSearchable, minCharactersToSearch, multi, onAsyncSearch]);
99
101
  var filteredOptions = (0, _react.useMemo)(function () {
100
102
  var optionsToBeFiltered = multi ? availableMultiFilters : items;
101
103
  if (onAsyncSearch) {
@@ -110,10 +112,9 @@ var Filter = /*#__PURE__*/_react["default"].forwardRef(function (props, ref) {
110
112
  setSearchValue('');
111
113
  setIsOpen(!isOpen);
112
114
  };
113
- var debouncedOnChange = _react["default"].useCallback((0, _debounce["default"])(function (value) {
114
- onAsyncSearch == null || onAsyncSearch(value);
115
- }, 400), []);
116
115
  var handleSelect = function handleSelect(option) {
116
+ debugger;
117
+ console.log('hey');
117
118
  if (multi) {
118
119
  handleMultiSelectOptionClick(option);
119
120
  } else {
@@ -133,6 +134,9 @@ var Filter = /*#__PURE__*/_react["default"].forwardRef(function (props, ref) {
133
134
  onClear();
134
135
  }
135
136
  };
137
+ console.log({
138
+ selectedItem: selectedItem
139
+ });
136
140
  var getFilter = function getFilter() {
137
141
  return multi ? (0, _react2.jsx)(_MultiFilter["default"], {
138
142
  selectedItems: multiFilters,
@@ -158,12 +162,9 @@ var Filter = /*#__PURE__*/_react["default"].forwardRef(function (props, ref) {
158
162
  shouldDisplayDefaultOption: shouldDisplayDefaultOption
159
163
  });
160
164
  };
161
- return (0, _react2.jsx)(_ClickAwayListener["default"], {
162
- onClick: function onClick() {
163
- return setIsOpen(false);
164
- }
165
- }, (0, _react2.jsx)(_PositionInScreen["default"], {
165
+ return (0, _react2.jsx)(_PositionInScreen["default"], {
166
166
  visible: isOpen,
167
+ setIsVisible: setIsOpen,
167
168
  hasWrapperWidth: true,
168
169
  offsetY: 8,
169
170
  sx: {
@@ -187,7 +188,7 @@ var Filter = /*#__PURE__*/_react["default"].forwardRef(function (props, ref) {
187
188
  styleType: styleType,
188
189
  multi: multi
189
190
  })
190
- }, getFilter()));
191
+ }, getFilter());
191
192
  });
192
193
  Filter.displayName = 'Filter';
193
194
  var _default = exports["default"] = Filter;
@@ -2,10 +2,9 @@
2
2
 
3
3
  exports.__esModule = true;
4
4
  exports["default"] = void 0;
5
- var _isEqual = _interopRequireDefault(require("lodash/isEqual"));
5
+ var _lodash = require("lodash");
6
6
  var _react = require("react");
7
7
  var _constants = require("../../Select/constants");
8
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
9
8
  var useMultiFilterUtils = function useMultiFilterUtils(_ref) {
10
9
  var multi = _ref.multi,
11
10
  _ref$selectedItems = _ref.selectedItems,
@@ -70,7 +69,7 @@ var useMultiFilterUtils = function useMultiFilterUtils(_ref) {
70
69
  }, [availableMultiFilters, multiFilters, onFilterDelete, updateMultiFilterLabel]);
71
70
  var handleMultiSelectOptionClick = function handleMultiSelectOptionClick(option) {
72
71
  var newItems = [];
73
- if ((0, _isEqual["default"])(option, _constants.SELECT_ALL_OPTION)) {
72
+ if ((0, _lodash.isEqual)(option, _constants.SELECT_ALL_OPTION)) {
74
73
  newItems = [].concat(multiFilters, availableMultiFilters);
75
74
  setMultiFilters(newItems);
76
75
  setAvailableMultiFilters([]);
@@ -2,7 +2,7 @@
2
2
 
3
3
  exports.__esModule = true;
4
4
  exports["default"] = void 0;
5
- var _isUndefined = _interopRequireDefault(require("lodash/isUndefined"));
5
+ var _lodash = require("lodash");
6
6
  var _react = _interopRequireDefault(require("react"));
7
7
  var _helpers = require("../../../utils/helpers");
8
8
  var _List = require("../List.style");
@@ -54,7 +54,7 @@ var NormalList = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref)
54
54
  disabled: item == null ? void 0 : item.isDisabled,
55
55
  dataTestId: defaultOption && index === 0 ? dataTestId != null ? dataTestId : 'ictinus_list' + '_default_option' : dataTestId,
56
56
  handleOptionClick: handleOptionClick,
57
- selected: defaultOption && index === 0 ? (0, _isUndefined["default"])(selectedItem) || (0, _utils.isSelected)({
57
+ selected: defaultOption && index === 0 ? (0, _lodash.isUndefined)(selectedItem) || (0, _utils.isSelected)({
58
58
  item: defaultOption,
59
59
  selectedItem: selectedItem
60
60
  }) : (0, _utils.isSelected)({
@@ -10,7 +10,6 @@ var _Avatar = _interopRequireDefault(require("../Avatar"));
10
10
  var _Button = _interopRequireDefault(require("../Button"));
11
11
  var _utils = require("../Button/utils");
12
12
  var _Icon = _interopRequireDefault(require("../Icon"));
13
- var _ClickAwayListener = _interopRequireDefault(require("../utils/ClickAwayListener"));
14
13
  var _DropdownOptions = require("../utils/DropdownOptions");
15
14
  var _List = _interopRequireDefault(require("../List"));
16
15
  var _PositionInScreen = _interopRequireDefault(require("../utils/PositionInScreen"));
@@ -49,14 +48,11 @@ var Menu = function Menu(props) {
49
48
  calculateColorBetweenColorAndType = _useTypeColorToColorM.calculateColorBetweenColorAndType;
50
49
  var calculatedColor = calculateColorBetweenColorAndType(color, buttonType);
51
50
  var iconColor = filled ? theme.utils.getAAColorFromSwatches(calculatedColor.color, calculatedColor.shade) : (0, _utils.defineBackgroundColor)(theme, calculatedColor, buttonType, true, true);
52
- return (0, _react2.jsx)(_ClickAwayListener["default"], {
53
- onClick: function onClick() {
54
- return setOpen(false);
55
- }
56
- }, (0, _react2.jsx)("div", {
51
+ return (0, _react2.jsx)("div", {
57
52
  "data-testid": dataTestId
58
53
  }, (0, _react2.jsx)(_PositionInScreen["default"], {
59
54
  visible: open,
55
+ setIsVisible: setOpen,
60
56
  offsetY: 8,
61
57
  parent: (0, _react2.jsx)(_Button["default"], {
62
58
  size: size,
@@ -94,6 +90,6 @@ var Menu = function Menu(props) {
94
90
  setOpen(false);
95
91
  onSelect(option);
96
92
  }
97
- })))));
93
+ }))));
98
94
  };
99
95
  var _default = exports["default"] = Menu;
@@ -3,7 +3,7 @@
3
3
  exports.__esModule = true;
4
4
  exports["default"] = void 0;
5
5
  var _useTheme = _interopRequireDefault(require("../../hooks/useTheme"));
6
- var _merge = _interopRequireDefault(require("lodash/merge"));
6
+ var _lodash = require("lodash");
7
7
  var _omit = _interopRequireDefault(require("lodash/omit"));
8
8
  var _react = _interopRequireWildcard(require("react"));
9
9
  var _helpers = require("../../utils/helpers");
@@ -98,7 +98,7 @@ var MultiTextFieldBase = /*#__PURE__*/_react["default"].forwardRef(function (pro
98
98
  styleType: styleType
99
99
  }, rest, {
100
100
  isInteractive: isInteractive,
101
- sx: (0, _merge["default"])((0, _MultiTextFieldBase.textInputBaseOverrides)({
101
+ sx: (0, _lodash.merge)((0, _MultiTextFieldBase.textInputBaseOverrides)({
102
102
  hasValue: hasValue,
103
103
  isLoading: isLoading,
104
104
  hasLabel: hasLabel,
@@ -104,9 +104,9 @@ declare const Select: React.ForwardRefExoticComponent<{
104
104
  onBlur?: React.FocusEventHandler<HTMLInputElement | HTMLTextAreaElement> | undefined;
105
105
  onChange?: React.ChangeEventHandler<HTMLInputElement | HTMLTextAreaElement> | undefined;
106
106
  onFocus?: React.FocusEventHandler<HTMLInputElement | HTMLTextAreaElement> | undefined;
107
- onKeyDown?: React.KeyboardEventHandler<HTMLInputElement | HTMLTextAreaElement> | undefined;
107
+ onKeyDown?: React.KeyboardEventHandler<HTMLInputElement | HTMLTextAreaElement> | undefined; /** TODO: defaultValue is duplication of selectedOption*/
108
108
  onInput?: ((event: any) => void) | undefined;
109
- hasMinWidthCompat?: boolean | undefined;
109
+ hasMinWidthCompat?: boolean | undefined; /** the function to fetch new options */
110
110
  multi?: boolean | undefined;
111
111
  multiValues?: string[] | undefined;
112
112
  maxMultiValues?: number | undefined;
@@ -5,15 +5,14 @@ exports["default"] = void 0;
5
5
  var _debounce = _interopRequireDefault(require("lodash/debounce"));
6
6
  var _react = _interopRequireWildcard(require("react"));
7
7
  var _helpers = require("../../utils/helpers");
8
+ var _SelectMenu = _interopRequireDefault(require("./components/SelectMenu/SelectMenu"));
9
+ var _useMultiselectUtils2 = _interopRequireDefault(require("./hooks/useMultiselectUtils"));
10
+ var _Select = require("./Select.style");
8
11
  var _useCombinedRefs = _interopRequireDefault(require("../../hooks/useCombinedRefs"));
9
12
  var _useTheme = _interopRequireDefault(require("../../hooks/useTheme"));
10
13
  var _Icon = _interopRequireDefault(require("../Icon"));
11
14
  var _TextField = _interopRequireDefault(require("../TextField"));
12
- var _ClickAwayListener = _interopRequireDefault(require("../utils/ClickAwayListener"));
13
15
  var _handleSearch = _interopRequireDefault(require("../utils/handleSearch"));
14
- var _SelectMenu = _interopRequireDefault(require("./components/SelectMenu/SelectMenu"));
15
- var _useMultiselectUtils2 = _interopRequireDefault(require("./hooks/useMultiselectUtils"));
16
- var _Select = require("./Select.style");
17
16
  var _Loader = _interopRequireDefault(require("../Loader"));
18
17
  var _MultiTextFieldBase = _interopRequireDefault(require("../MultiTextFieldBase/MultiTextFieldBase"));
19
18
  var _PositionInScreen = _interopRequireDefault(require("../utils/PositionInScreen"));
@@ -239,12 +238,7 @@ var Select = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
239
238
  handleSelectedOption(_selectedOption);
240
239
  }
241
240
  };
242
- return (0, _react2.jsx)(_ClickAwayListener["default"], {
243
- onClick: function onClick() {
244
- setOpen(false);
245
- setSearchValue('');
246
- }
247
- }, (0, _react2.jsx)("div", _extends({}, !(disabled || locked) && {
241
+ return (0, _react2.jsx)("div", _extends({}, !(disabled || locked) && {
248
242
  onClick: handleClick
249
243
  }, {
250
244
  css: (0, _Select.selectWrapper)({
@@ -252,6 +246,10 @@ var Select = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
252
246
  })
253
247
  }), (0, _react2.jsx)(_PositionInScreen["default"], {
254
248
  visible: open,
249
+ setIsVisible: function setIsVisible() {
250
+ setOpen(false);
251
+ setSearchValue('');
252
+ },
255
253
  hasWrapperWidth: true,
256
254
  offsetY: 8,
257
255
  parent: multi ? (0, _react2.jsx)(_MultiTextFieldBase["default"], _extends({
@@ -296,7 +294,7 @@ var Select = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
296
294
  isVirtualized: isVirtualized,
297
295
  searchTerm: highlightSearch ? searchValue : undefined,
298
296
  hasSelectAllOption: multi && hasSelectAllOption && !hasNoOptionsAndIsCreatable
299
- }))));
297
+ })));
300
298
  });
301
299
  Select.displayName = 'Select';
302
300
  var _default = exports["default"] = Select;
@@ -4,9 +4,7 @@ exports.__esModule = true;
4
4
  exports["default"] = void 0;
5
5
  var _react = require("@emotion/react");
6
6
  var _useThemeSwitch = require("../../hooks/useThemeSwitch");
7
- var _keys = _interopRequireDefault(require("lodash/keys"));
8
- var _merge = _interopRequireDefault(require("lodash/merge"));
9
- var _pick = _interopRequireDefault(require("lodash/pick"));
7
+ var _lodash = require("lodash");
10
8
  var _react2 = _interopRequireDefault(require("react"));
11
9
  var _theme = _interopRequireDefault(require("../../theme"));
12
10
  var _ThemeProvider = require("./ThemeProvider.style");
@@ -16,7 +14,7 @@ require("../../utils/initLocaleFormat");
16
14
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
17
15
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
18
16
  var deepMergeTheme = function deepMergeTheme(newTheme, theming) {
19
- return (0, _merge["default"])((0, _theme["default"])(theming), (0, _pick["default"])(newTheme, (0, _keys["default"])((0, _theme["default"])(theming))));
17
+ return (0, _lodash.merge)((0, _theme["default"])(theming), (0, _lodash.pick)(newTheme, (0, _lodash.keys)((0, _theme["default"])(theming))));
20
18
  };
21
19
  var ThemeProvider = function ThemeProvider(_ref) {
22
20
  var _ref$theme = _ref.theme,
@@ -4,6 +4,8 @@ import { ReactFCC } from 'utils/types';
4
4
  declare type Props = {
5
5
  /** Whether the item to be positioned is visible */
6
6
  visible: boolean;
7
+ /** Function to set the visibility of the item */
8
+ setIsVisible: (visible: boolean) => void;
7
9
  /** Configures the container's overflow */
8
10
  withOverflow?: boolean;
9
11
  /** Whether the item to be positioned uses the parent's wrapper width */
@@ -3,13 +3,17 @@
3
3
  exports.__esModule = true;
4
4
  exports["default"] = void 0;
5
5
  var _react = _interopRequireWildcard(require("react"));
6
+ var _reactDom = require("react-dom");
6
7
  var _hooks = require("./hooks");
7
8
  var _PositionInScreen = require("./PositionInScreen.style");
9
+ var _ClickAwayListener = _interopRequireDefault(require("../../utils/ClickAwayListener"));
8
10
  var _react2 = require("@emotion/react");
11
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
9
12
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
10
13
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
11
14
  var PositionInScreen = function PositionInScreen(_ref) {
12
15
  var visible = _ref.visible,
16
+ setIsVisible = _ref.setIsVisible,
13
17
  parent = _ref.parent,
14
18
  withOverflow = _ref.withOverflow,
15
19
  _ref$hasWrapperWidth = _ref.hasWrapperWidth,
@@ -37,12 +41,16 @@ var PositionInScreen = function PositionInScreen(_ref) {
37
41
  ref: function ref(_ref3) {
38
42
  setWrapperRef(_ref3);
39
43
  }
40
- }, parent, (0, _react2.jsx)("div", {
44
+ }, parent, /*#__PURE__*/(0, _reactDom.createPortal)((0, _react2.jsx)(_ClickAwayListener["default"], {
45
+ onClick: function onClick() {
46
+ return setIsVisible(false);
47
+ }
48
+ }, (0, _react2.jsx)("div", {
41
49
  css: (0, _PositionInScreen.itemContainer)(x, y, showTooltip, wrapperWidth, sx),
42
50
  className: 'unique-tooltip-id',
43
51
  ref: function ref(_ref2) {
44
52
  setItemRef(_ref2);
45
53
  }
46
- }, children));
54
+ }, children)), document.body));
47
55
  };
48
56
  var _default = exports["default"] = PositionInScreen;
@@ -49,62 +49,54 @@ var useHeights = function useHeights(parentRef, itemRef) {
49
49
  };
50
50
  };
51
51
  var usePositionInScreen = exports.usePositionInScreen = function usePositionInScreen(parentRef, itemRef, offsetX, offsetY, visible) {
52
+ var _useHeights = useHeights(parentRef, itemRef),
53
+ parentHeight = _useHeights.parentHeight,
54
+ childHeight = _useHeights.childHeight;
52
55
  var _useState3 = (0, _react.useState)({
53
56
  x: -1,
54
57
  y: -1
55
58
  }),
56
59
  position = _useState3[0],
57
60
  setPosition = _useState3[1];
58
- var _useHeights = useHeights(parentRef, itemRef),
59
- parentHeight = _useHeights.parentHeight,
60
- childHeight = _useHeights.childHeight;
61
61
  (0, _react.useLayoutEffect)(function () {
62
- // x,y are cordinates in screen
63
- // width is wrapper elements dimensions
64
- var _ref = parentRef ? parentRef == null ? void 0 : parentRef.getBoundingClientRect() : {
65
- x: 0,
66
- y: 0,
67
- width: 0
68
- },
69
- parentX = _ref.x,
70
- parentY = _ref.y,
71
- parentWidth = _ref.width;
62
+ var _itemRef$children$, _childRect$width;
63
+ // Define a small buffer for screen edge detection
64
+ var SCREEN_EDGE_BUFFER = 8;
65
+
66
+ // Get parent element dimensions and position
67
+ var parentRect = parentRef == null ? void 0 : parentRef.getBoundingClientRect();
68
+ if (!parentRect) return;
69
+
70
+ // Get viewport-relative coordinates
71
+ var parentX = parentRect.left + window.scrollX;
72
+ var parentY = parentRect.top + window.scrollY;
73
+ var parentWidth = parentRect.width;
72
74
 
73
- // width is the element's that's going to be positioned dimensions
74
- var _ref2 = itemRef && itemRef.children[0] ? itemRef.children[0].getBoundingClientRect() : {
75
- width: 0
76
- },
77
- width = _ref2.width;
75
+ // Get positioned element dimensions
76
+ var childRect = itemRef == null || (_itemRef$children$ = itemRef.children[0]) == null ? void 0 : _itemRef$children$.getBoundingClientRect();
77
+ var childWidth = (_childRect$width = childRect == null ? void 0 : childRect.width) != null ? _childRect$width : 0;
78
78
 
79
- // If the item-to-be-positioned is out of screen height
80
- var itemYOutOfScreenHeight = parentY + parentHeight + childHeight > window.innerHeight;
79
+ // Check if element would overflow screen bounds (with buffer)
80
+ var itemYOutOfScreenHeight = parentRect.top + parentHeight + childHeight > window.innerHeight - SCREEN_EDGE_BUFFER;
81
+ var itemXOutOfScreenWidth = parentRect.left + childWidth > window.innerWidth - SCREEN_EDGE_BUFFER;
81
82
 
82
- // The element that we are positioning is absolutely positioned inside the relative
83
- // container. So x,y are zero means the element will be positioned exactly on top
84
- // of the parent element.
85
- var x = 0;
86
- var y = 0;
83
+ // Calculate absolute positions (viewport + scroll)
84
+ var x = parentX + offsetX;
85
+ var y = parentY;
87
86
  if (itemYOutOfScreenHeight) {
88
- // We place the element height+offsetY (px) above the parent
87
+ // Position above parent if would overflow bottom
89
88
  y = y - childHeight - offsetY;
90
- if (parentY + y < 0) {
91
- // Rare case where client height is super small. We don't exactly support this.
92
- // So we render it as if it was inside the screen height
93
- y = parentHeight + offsetY;
89
+ if (y < SCREEN_EDGE_BUFFER) {
90
+ // If would overflow top, fallback to below parent
91
+ y = parentY + parentHeight + offsetY;
94
92
  }
95
93
  } else {
96
- // We place the element offsetY (px) under the parent
97
- y = parentHeight + offsetY;
94
+ // Position below parent
95
+ y = y + parentHeight + offsetY;
98
96
  }
99
-
100
- // If the item-to-be-positioned is out of screen width
101
- var itemXOutOfScreenWidth = parentX + width > window.innerWidth;
102
97
  if (itemXOutOfScreenWidth) {
103
- // We place the element parentWidth-width-offsetX (px) at the left of the parent
104
- x = x + parentWidth - width - offsetX;
105
- } else {
106
- // We place the element offset (px) at the right of the parent
107
- x = offsetX;
98
+ // Align to right edge of parent if would overflow right
99
+ x = parentX + parentWidth - childWidth - offsetX;
108
100
  }
109
101
  setPosition({
110
102
  x: x,
@@ -31,8 +31,9 @@ var selectDropdownOption = exports.selectDropdownOption = /*#__PURE__*/function
31
31
  while (1) switch (_context.prev = _context.next) {
32
32
  case 0:
33
33
  _userEvent["default"].type(dropdownInput, option); // type option on the dropdown input
34
+ _react.screen.debug();
34
35
  _userEvent["default"].click(_react.screen.getByText(option)); // select the option from displayed options
35
- case 2:
36
+ case 3:
36
37
  case "end":
37
38
  return _context.stop();
38
39
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@orfium/ictinus",
3
- "version": "4.86.0-next.1",
3
+ "version": "4.86.0-next.2",
4
4
  "main": "./dist/index.js",
5
5
  "types": "./dist/index.d.ts",
6
6
  "license": "MIT",