labsense-ui-kit 1.4.22 → 1.4.24

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.
@@ -9927,17 +9927,52 @@ var ButtonDropdown = function ButtonDropdown(_ref) {
9927
9927
  _ref$placeholder = _ref.placeholder,
9928
9928
  placeholder = _ref$placeholder === void 0 ? 'Select Option' : _ref$placeholder,
9929
9929
  _ref$disabled = _ref.disabled,
9930
- disabled = _ref$disabled === void 0 ? false : _ref$disabled;
9930
+ disabled = _ref$disabled === void 0 ? false : _ref$disabled,
9931
+ width = _ref.width;
9931
9932
  var _useState = useState(false),
9932
9933
  isOpen = _useState[0],
9933
9934
  setIsOpen = _useState[1];
9934
- var _useState2 = useState(initialValue || ''),
9935
- selected = _useState2[0],
9936
- setSelected = _useState2[1];
9935
+ var _useState2 = useState(false),
9936
+ dropUp = _useState2[0],
9937
+ setDropUp = _useState2[1];
9938
+ var _useState3 = useState('left'),
9939
+ dropdownPosition = _useState3[0],
9940
+ setDropdownPosition = _useState3[1];
9941
+ var _useState4 = useState(initialValue || ''),
9942
+ selected = _useState4[0],
9943
+ setSelected = _useState4[1];
9937
9944
  var ref = useRef(null);
9938
9945
  useClickOutside(ref, function () {
9939
9946
  return setIsOpen(false);
9940
9947
  });
9948
+ var toggleDropdown = function toggleDropdown() {
9949
+ if (ref.current) {
9950
+ var rect = ref.current.getBoundingClientRect();
9951
+ var windowHeight = window.innerHeight;
9952
+ var windowWidth = window.innerWidth;
9953
+ var spaceBelow = windowHeight - rect.bottom;
9954
+ var spaceAbove = rect.top;
9955
+ var dropdownHeight = 95;
9956
+ if (spaceBelow < dropdownHeight && spaceAbove > dropdownHeight) {
9957
+ setDropUp(true);
9958
+ } else {
9959
+ setDropUp(false);
9960
+ }
9961
+ var dropdownWidth = rect.width;
9962
+ var spaceRight = windowWidth - rect.left;
9963
+ var spaceLeft = rect.right;
9964
+ if (spaceRight < dropdownWidth && spaceLeft > dropdownWidth) {
9965
+ setDropdownPosition('right');
9966
+ } else if (rect.left < dropdownWidth / 2 && windowWidth - rect.right < dropdownWidth / 2) {
9967
+ setDropdownPosition('center');
9968
+ } else {
9969
+ setDropdownPosition('left');
9970
+ }
9971
+ }
9972
+ setIsOpen(function (prev) {
9973
+ return !prev;
9974
+ });
9975
+ };
9941
9976
  var handleSelect = function handleSelect(value, onClick) {
9942
9977
  setSelected(value);
9943
9978
  onClick();
@@ -9948,21 +9983,22 @@ var ButtonDropdown = function ButtonDropdown(_ref) {
9948
9983
  })) === null || _options$find === void 0 ? void 0 : _options$find.label) || placeholder;
9949
9984
  return React.createElement(Container, {
9950
9985
  "$position": 'relative',
9951
- ref: ref
9986
+ ref: ref,
9987
+ "$width": width
9952
9988
  }, React.createElement(ButtonComponent, {
9953
9989
  text: selectedLabel,
9954
9990
  icon: isOpen ? 'UpArrow' : 'DownArrow',
9955
9991
  size: size,
9956
9992
  variant: variant,
9957
9993
  disabled: disabled,
9958
- onClick: function onClick() {
9959
- return setIsOpen(function (prev) {
9960
- return !prev;
9961
- });
9962
- }
9994
+ onClick: toggleDropdown,
9995
+ buttonWidth: width
9963
9996
  }), isOpen && React.createElement(DropdownMenu$1, {
9964
- "$top": '40px',
9965
- "$optionsAvailable": Option.length > 0
9997
+ "$width": width,
9998
+ "$top": dropUp ? 'auto' : '126%',
9999
+ "$bottom": dropUp ? '126%' : 'auto',
10000
+ "$optionsAvailable": options.length > 0,
10001
+ "$dropDownPosition": dropdownPosition
9966
10002
  }, options.map(function (option) {
9967
10003
  return React.createElement(Options, {
9968
10004
  key: option.value,
@@ -10544,6 +10580,7 @@ var TextField = function TextField(_ref28) {
10544
10580
  onClick: toggleDropdown,
10545
10581
  onChange: handleTimeInput,
10546
10582
  "$disabled": isDisabled,
10583
+ disabled: isDisabled,
10547
10584
  "$size": size,
10548
10585
  "$color": color || themeColors.vms.text.dark,
10549
10586
  "$background": background || themeColors.vms["default"].tertiary,
@@ -10615,6 +10652,7 @@ var TextField = function TextField(_ref28) {
10615
10652
  value: inputValue,
10616
10653
  placeholder: placeholder,
10617
10654
  "$disabled": isDisabled,
10655
+ disabled: isDisabled,
10618
10656
  onChange: onChange,
10619
10657
  "$size": size,
10620
10658
  "$color": color || themeColors.vms.text.dark,