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.
@@ -11,6 +11,7 @@ interface ButtonDropdownProps {
11
11
  variant?: 'primary' | 'outline-primary' | 'secondary';
12
12
  placeholder?: string;
13
13
  disabled?: boolean;
14
+ width?: string;
14
15
  }
15
16
  declare const ButtonDropdown: React.FC<ButtonDropdownProps>;
16
17
  export default ButtonDropdown;
package/dist/index.js CHANGED
@@ -9932,17 +9932,52 @@ var ButtonDropdown = function ButtonDropdown(_ref) {
9932
9932
  _ref$placeholder = _ref.placeholder,
9933
9933
  placeholder = _ref$placeholder === void 0 ? 'Select Option' : _ref$placeholder,
9934
9934
  _ref$disabled = _ref.disabled,
9935
- disabled = _ref$disabled === void 0 ? false : _ref$disabled;
9935
+ disabled = _ref$disabled === void 0 ? false : _ref$disabled,
9936
+ width = _ref.width;
9936
9937
  var _useState = React.useState(false),
9937
9938
  isOpen = _useState[0],
9938
9939
  setIsOpen = _useState[1];
9939
- var _useState2 = React.useState(initialValue || ''),
9940
- selected = _useState2[0],
9941
- setSelected = _useState2[1];
9940
+ var _useState2 = React.useState(false),
9941
+ dropUp = _useState2[0],
9942
+ setDropUp = _useState2[1];
9943
+ var _useState3 = React.useState('left'),
9944
+ dropdownPosition = _useState3[0],
9945
+ setDropdownPosition = _useState3[1];
9946
+ var _useState4 = React.useState(initialValue || ''),
9947
+ selected = _useState4[0],
9948
+ setSelected = _useState4[1];
9942
9949
  var ref = React.useRef(null);
9943
9950
  useClickOutside(ref, function () {
9944
9951
  return setIsOpen(false);
9945
9952
  });
9953
+ var toggleDropdown = function toggleDropdown() {
9954
+ if (ref.current) {
9955
+ var rect = ref.current.getBoundingClientRect();
9956
+ var windowHeight = window.innerHeight;
9957
+ var windowWidth = window.innerWidth;
9958
+ var spaceBelow = windowHeight - rect.bottom;
9959
+ var spaceAbove = rect.top;
9960
+ var dropdownHeight = 95;
9961
+ if (spaceBelow < dropdownHeight && spaceAbove > dropdownHeight) {
9962
+ setDropUp(true);
9963
+ } else {
9964
+ setDropUp(false);
9965
+ }
9966
+ var dropdownWidth = rect.width;
9967
+ var spaceRight = windowWidth - rect.left;
9968
+ var spaceLeft = rect.right;
9969
+ if (spaceRight < dropdownWidth && spaceLeft > dropdownWidth) {
9970
+ setDropdownPosition('right');
9971
+ } else if (rect.left < dropdownWidth / 2 && windowWidth - rect.right < dropdownWidth / 2) {
9972
+ setDropdownPosition('center');
9973
+ } else {
9974
+ setDropdownPosition('left');
9975
+ }
9976
+ }
9977
+ setIsOpen(function (prev) {
9978
+ return !prev;
9979
+ });
9980
+ };
9946
9981
  var handleSelect = function handleSelect(value, onClick) {
9947
9982
  setSelected(value);
9948
9983
  onClick();
@@ -9953,21 +9988,22 @@ var ButtonDropdown = function ButtonDropdown(_ref) {
9953
9988
  })) === null || _options$find === void 0 ? void 0 : _options$find.label) || placeholder;
9954
9989
  return React__default.createElement(Container, {
9955
9990
  "$position": 'relative',
9956
- ref: ref
9991
+ ref: ref,
9992
+ "$width": width
9957
9993
  }, React__default.createElement(ButtonComponent, {
9958
9994
  text: selectedLabel,
9959
9995
  icon: isOpen ? 'UpArrow' : 'DownArrow',
9960
9996
  size: size,
9961
9997
  variant: variant,
9962
9998
  disabled: disabled,
9963
- onClick: function onClick() {
9964
- return setIsOpen(function (prev) {
9965
- return !prev;
9966
- });
9967
- }
9999
+ onClick: toggleDropdown,
10000
+ buttonWidth: width
9968
10001
  }), isOpen && React__default.createElement(DropdownMenu$1, {
9969
- "$top": '40px',
9970
- "$optionsAvailable": Option.length > 0
10002
+ "$width": width,
10003
+ "$top": dropUp ? 'auto' : '126%',
10004
+ "$bottom": dropUp ? '126%' : 'auto',
10005
+ "$optionsAvailable": options.length > 0,
10006
+ "$dropDownPosition": dropdownPosition
9971
10007
  }, options.map(function (option) {
9972
10008
  return React__default.createElement(Options, {
9973
10009
  key: option.value,
@@ -10549,6 +10585,7 @@ var TextField = function TextField(_ref28) {
10549
10585
  onClick: toggleDropdown,
10550
10586
  onChange: handleTimeInput,
10551
10587
  "$disabled": isDisabled,
10588
+ disabled: isDisabled,
10552
10589
  "$size": size,
10553
10590
  "$color": color || themeColors.vms.text.dark,
10554
10591
  "$background": background || themeColors.vms["default"].tertiary,
@@ -10620,6 +10657,7 @@ var TextField = function TextField(_ref28) {
10620
10657
  value: inputValue,
10621
10658
  placeholder: placeholder,
10622
10659
  "$disabled": isDisabled,
10660
+ disabled: isDisabled,
10623
10661
  onChange: onChange,
10624
10662
  "$size": size,
10625
10663
  "$color": color || themeColors.vms.text.dark,