@onewelcome/react-lib-components 1.9.0 → 1.9.1

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.
@@ -1,4 +1,4 @@
1
- import React, { useState, useRef, useEffect, Fragment, useCallback, createRef, useLayoutEffect, createContext, useContext, useReducer, useMemo } from 'react';
1
+ import React, { useState, useRef, useEffect, Fragment, createRef, useCallback, useLayoutEffect, createContext, useContext, useReducer, useMemo } from 'react';
2
2
  import { createPortal } from 'react-dom';
3
3
 
4
4
  function _extends() {
@@ -604,8 +604,8 @@ var usePosition = function usePosition(providedConfigObject) {
604
604
  });
605
605
  };
606
606
  var calculatePosition = useDebouncedCallback(function () {
607
- var _configObject$relativ;
608
- if (!((_configObject$relativ = configObject.relativeElement) != null && _configObject$relativ.current)) return;
607
+ var _configObject$relativ, _configObject$element;
608
+ if (!((_configObject$relativ = configObject.relativeElement) != null && _configObject$relativ.current) || !((_configObject$element = configObject.elementToBePositioned) != null && _configObject$element.current)) return;
609
609
  var relativeElRect = configObject.relativeElement.current.getBoundingClientRect();
610
610
  var elementToBePositionedDimensions = {
611
611
  height: configObject.elementToBePositioned.current.offsetHeight,
@@ -719,6 +719,27 @@ var useBodyClick = function useBodyClick(checkFunction, callbackFunction, depend
719
719
  }, [dependingStateVariable]);
720
720
  };
721
721
 
722
+ var useGetDomRoot = function useGetDomRoot(passedDomRoot, relativeElement) {
723
+ var _useState = useState(document.body),
724
+ root = _useState[0],
725
+ setRoot = _useState[1];
726
+ useEffect(function () {
727
+ if (relativeElement && relativeElement.current && !passedDomRoot) {
728
+ var closestBaseStylingWrapper = relativeElement.current.closest(".basestyling-wrapper");
729
+ if (closestBaseStylingWrapper) {
730
+ setRoot(closestBaseStylingWrapper);
731
+ return;
732
+ }
733
+ } else if (passedDomRoot) {
734
+ setRoot(passedDomRoot);
735
+ return;
736
+ }
737
+ }, [relativeElement]);
738
+ return {
739
+ root: root
740
+ };
741
+ };
742
+
722
743
  var _excluded$U = ["trigger", "children", "decorativeElement", "id", "show", "onShow", "onClose", "placement", "offset", "transformOrigin", "debounceAmount", "domRoot", "popoverProps"];
723
744
  var ContextMenuComponent = function ContextMenuComponent(_ref, ref) {
724
745
  var trigger = _ref.trigger,
@@ -747,11 +768,11 @@ var ContextMenuComponent = function ContextMenuComponent(_ref, ref) {
747
768
  vertical: "top"
748
769
  } : _ref$transformOrigin,
749
770
  debounceAmount = _ref.debounceAmount,
750
- _ref$domRoot = _ref.domRoot,
751
- domRoot = _ref$domRoot === void 0 ? document.body : _ref$domRoot,
771
+ domRoot = _ref.domRoot,
752
772
  popoverProps = _ref.popoverProps,
753
773
  rest = _objectWithoutPropertiesLoose(_ref, _excluded$U);
754
774
  var anchorEl = useRef(null);
775
+ var wrappingDivRef = ref || createRef();
755
776
  var _useState = useState(show),
756
777
  showContextMenu = _useState[0],
757
778
  setShowContextMenu = _useState[1];
@@ -769,6 +790,8 @@ var ContextMenuComponent = function ContextMenuComponent(_ref, ref) {
769
790
  setShouldClick = _useState5[1]; /** We need this, because whenever we use the arrow keys to select the contextmenu item, and we focus the currently selected item it fires the "click" listener in ContextMenuItem component. Instead, we only want this to fire if we press "enter" or "spacebar" so we set this to true whenever that is the case, and back to false when it has been executed. */
770
791
  var _useState6 = useState(React.Children.count(children)),
771
792
  childrenCount = _useState6[0];
793
+ var _useGetDomRoot = useGetDomRoot(domRoot, wrappingDivRef),
794
+ root = _useGetDomRoot.root;
772
795
  if (!id) {
773
796
  throw new Error("You need to provide an ID to the context menu");
774
797
  }
@@ -866,8 +889,11 @@ var ContextMenuComponent = function ContextMenuComponent(_ref, ref) {
866
889
  var onOutOfViewHandler = useCallback(function () {
867
890
  setShowContextMenu(false);
868
891
  }, []);
892
+ if (!root) {
893
+ return null;
894
+ }
869
895
  return React.createElement("div", _extends({}, rest, {
870
- ref: ref,
896
+ ref: wrappingDivRef,
871
897
  onKeyDown: onArrowNavigation,
872
898
  className: modules_846e6042["context-menu"]
873
899
  }), renderTrigger(), createPortal(React.createElement(Popover, _extends({}, popoverProps, {
@@ -885,7 +911,7 @@ var ContextMenuComponent = function ContextMenuComponent(_ref, ref) {
885
911
  id: id + "-menu",
886
912
  "aria-describedby": id,
887
913
  role: "menu"
888
- }, renderChildren())), domRoot));
914
+ }, renderChildren())), root));
889
915
  };
890
916
  var ContextMenu = /*#__PURE__*/React.forwardRef(ContextMenuComponent);
891
917
 
@@ -1463,8 +1489,7 @@ var TooltipComponent = function TooltipComponent(_ref, ref) {
1463
1489
  offset = _ref$offset === void 0 ? defaultPosition.offset : _ref$offset,
1464
1490
  _ref$transformOrigin = _ref.transformOrigin,
1465
1491
  transformOrigin = _ref$transformOrigin === void 0 ? defaultPosition.transformOrigin : _ref$transformOrigin,
1466
- _ref$domRoot = _ref.domRoot,
1467
- domRoot = _ref$domRoot === void 0 ? document.body : _ref$domRoot,
1492
+ domRoot = _ref.domRoot,
1468
1493
  label = _ref.label,
1469
1494
  rest = _objectWithoutPropertiesLoose(_ref, _excluded$K);
1470
1495
  var _useState = useState(generateID()),
@@ -1472,6 +1497,9 @@ var TooltipComponent = function TooltipComponent(_ref, ref) {
1472
1497
  var _useState2 = useState(false),
1473
1498
  visible = _useState2[0],
1474
1499
  setVisible = _useState2[1];
1500
+ var wrappingDivRef = ref || createRef();
1501
+ var _useGetDomRoot = useGetDomRoot(domRoot, wrappingDivRef),
1502
+ root = _useGetDomRoot.root;
1475
1503
  var relativeElement = useRef(null);
1476
1504
  var elementToBePositioned = useRef(null);
1477
1505
  var _usePosition = usePosition({
@@ -1528,7 +1556,7 @@ var TooltipComponent = function TooltipComponent(_ref, ref) {
1528
1556
  }, label);
1529
1557
  };
1530
1558
  return React.createElement("div", _extends({}, rest, {
1531
- ref: ref,
1559
+ ref: wrappingDivRef,
1532
1560
  className: modules_16974fb0.wrapper + " " + (className != null ? className : "")
1533
1561
  }), renderChildren(), React.createElement("div", {
1534
1562
  className: "" + modules_16974fb0["tooltip-wrapper"]
@@ -1554,7 +1582,7 @@ var TooltipComponent = function TooltipComponent(_ref, ref) {
1554
1582
  "aria-hidden": !visible,
1555
1583
  id: identifier,
1556
1584
  className: modules_16974fb0.tooltip + " " + (visible ? modules_16974fb0.visible : "")
1557
- }, children), domRoot)));
1585
+ }, children), root)));
1558
1586
  };
1559
1587
  var Tooltip = /*#__PURE__*/React.forwardRef(TooltipComponent);
1560
1588
 
@@ -2454,10 +2482,12 @@ var BaseModalComponent = function BaseModalComponent(_ref, ref) {
2454
2482
  _ref$forceContainerOp = _ref.forceContainerOpen,
2455
2483
  forceContainerOpen = _ref$forceContainerOp === void 0 ? false : _ref$forceContainerOp,
2456
2484
  zIndex = _ref.zIndex,
2457
- _ref$domRoot = _ref.domRoot,
2458
- domRoot = _ref$domRoot === void 0 ? document.body : _ref$domRoot,
2485
+ domRoot = _ref.domRoot,
2459
2486
  rest = _objectWithoutPropertiesLoose(_ref, _excluded$B);
2460
2487
  useSetBodyScroll(open);
2488
+ var wrappingDivRef = useRef(null);
2489
+ var _useGetDomRoot = useGetDomRoot(domRoot, wrappingDivRef),
2490
+ root = _useGetDomRoot.root;
2461
2491
  var handleEscKeyPress = function handleEscKeyPress(event) {
2462
2492
  if (!disableEscapeKeyDown && event.key === "Escape") {
2463
2493
  event.stopPropagation();
@@ -2467,7 +2497,9 @@ var BaseModalComponent = function BaseModalComponent(_ref, ref) {
2467
2497
  var handleBackdropClick = function handleBackdropClick() {
2468
2498
  return !disableBackdrop && onClose && onClose();
2469
2499
  };
2470
- return createPortal(React.createElement("div", _extends({}, rest, {
2500
+ return React.createElement("div", {
2501
+ ref: wrappingDivRef
2502
+ }, createPortal(React.createElement("div", _extends({}, rest, {
2471
2503
  ref: ref,
2472
2504
  id: id,
2473
2505
  className: modules_cf1b230e["modal"] + " " + (open ? modules_cf1b230e["visible"] : "") + " " + className,
@@ -2497,7 +2529,7 @@ var BaseModalComponent = function BaseModalComponent(_ref, ref) {
2497
2529
  zIndex: zIndex && zIndex + 1
2498
2530
  },
2499
2531
  className: modules_cf1b230e["container"] + " " + ((_containerProps$class2 = containerProps == null ? void 0 : containerProps.className) != null ? _containerProps$class2 : "")
2500
- }), children)), domRoot);
2532
+ }), children)), root));
2501
2533
  };
2502
2534
  var BaseModal = /*#__PURE__*/React.forwardRef(BaseModalComponent);
2503
2535
 
@@ -3067,13 +3099,15 @@ var SnackbarProvider = function SnackbarProvider(_temp) {
3067
3099
  } : _ref$autoHideDuration,
3068
3100
  _ref$stackSize = _ref.stackSize,
3069
3101
  stackSize = _ref$stackSize === void 0 ? 3 : _ref$stackSize,
3070
- _ref$domRoot = _ref.domRoot,
3071
- domRoot = _ref$domRoot === void 0 ? document.body : _ref$domRoot,
3102
+ domRoot = _ref.domRoot,
3072
3103
  children = _ref.children,
3073
3104
  className = _ref.className;
3074
3105
  var _useState = useState([]),
3075
3106
  snackbars = _useState[0],
3076
3107
  setSnackbars = _useState[1];
3108
+ var wrappingDivRef = useRef(null);
3109
+ var _useGetDomRoot = useGetDomRoot(domRoot, wrappingDivRef),
3110
+ root = _useGetDomRoot.root;
3077
3111
  var addSnackbar = function addSnackbar(item) {
3078
3112
  setSnackbars(function (items) {
3079
3113
  return [].concat(items, [item]);
@@ -3151,7 +3185,7 @@ var SnackbarProvider = function SnackbarProvider(_temp) {
3151
3185
  var snackbarPortal = createPortal(React.createElement(SnackbarContainer, {
3152
3186
  placement: placement,
3153
3187
  className: className
3154
- }, snackbarList), domRoot);
3188
+ }, snackbarList), root);
3155
3189
  return React.createElement(SnackbarContextProvider, {
3156
3190
  initialState: {
3157
3191
  enqueueSnackbar: enqueueSnackbar,
@@ -3160,7 +3194,9 @@ var SnackbarProvider = function SnackbarProvider(_temp) {
3160
3194
  setSnackbarHeight: setSnackbarHeight,
3161
3195
  snackbars: snackbars
3162
3196
  }
3163
- }, children, snackbarPortal);
3197
+ }, children, React.createElement("div", {
3198
+ ref: wrappingDivRef
3199
+ }, snackbarPortal));
3164
3200
  };
3165
3201
 
3166
3202
  var css$p = ".Checkbox_module_checkboxWrapper__0342c60f{position:relative}.Checkbox_module_checkboxWrapper__0342c60f+.Checkbox_module_checkboxWrapper__0342c60f{margin-top:1.25rem}.Checkbox_module_checkboxContainer__0342c60f{align-items:center;display:flex}.Checkbox_module_checkboxContainer__0342c60f label{display:inline-block;font-family:var(--font-family);font-size:var(--font-size);margin-left:.5rem;user-select:none}.Checkbox_module_checkboxList__0342c60f{list-style:none;margin:1.25rem 0 0 1.75rem;padding:0}.Checkbox_module_checkboxList__0342c60f li+li{margin-top:1.25rem}.Checkbox_module_nativeInput__0342c60f{height:1.25rem;left:0;margin:0;opacity:0;position:absolute;top:0;width:1.25rem}.Checkbox_module_nativeInput__0342c60f:checked+*{color:var(--color-primary)}.Checkbox_module_nativeInput__0342c60f:focus-visible+*{border-radius:2px;outline:1px solid var(--color-focus);outline-offset:1px}.Checkbox_module_nativeInput__0342c60f.Checkbox_module_error__0342c60f:focus-visible+*{outline-color:var(--color-error)}.Checkbox_module_input__0342c60f{font-size:1.25rem;pointer-events:none}.Checkbox_module_disabled__0342c60f{color:var(--disabled)}";