@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.
- package/dist/Notifications/BaseModal/BaseModal.d.ts +1 -1
- package/dist/hooks/useGetDomRoot.d.ts +3 -0
- package/dist/react-lib-components.cjs.development.js +54 -18
- package/dist/react-lib-components.cjs.development.js.map +1 -1
- package/dist/react-lib-components.cjs.production.min.js +1 -1
- package/dist/react-lib-components.cjs.production.min.js.map +1 -1
- package/dist/react-lib-components.esm.js +55 -19
- package/dist/react-lib-components.esm.js.map +1 -1
- package/package.json +1 -1
- package/src/ContextMenu/ContextMenu.tsx +18 -3
- package/src/Notifications/BaseModal/BaseModal.tsx +48 -41
- package/src/Notifications/Snackbar/SnackbarProvider/SnackbarProvider.tsx +7 -4
- package/src/Tooltip/Tooltip.tsx +9 -3
- package/src/hooks/useGetDomRoot.ts +40 -0
- package/src/hooks/usePosition.ts +2 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, { useState, useRef, useEffect, Fragment,
|
|
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
|
-
|
|
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:
|
|
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())),
|
|
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
|
-
|
|
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:
|
|
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),
|
|
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
|
-
|
|
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
|
|
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)),
|
|
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
|
-
|
|
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),
|
|
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,
|
|
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)}";
|