@moda/om 21.6.11 → 21.6.12
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/index.cjs.js +50 -2
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +50 -2
- package/dist/index.esm.js.map +1 -1
- package/dist/src/components/Popover/Popover.d.ts +16 -0
- package/dist/src/components/Popover/Popover.stories.d.ts +53 -0
- package/package.json +1 -1
- package/src/components/Popover/Popover.stories.tsx +189 -1
- package/src/components/Popover/Popover.tsx +75 -1
package/dist/index.cjs.js
CHANGED
|
@@ -12351,7 +12351,7 @@ var PasswordInput = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
12351
12351
|
});
|
|
12352
12352
|
PasswordInput.displayName = 'PasswordInput';
|
|
12353
12353
|
|
|
12354
|
-
var _excluded$9 = ["className", "children", "content", "open", "anchor", "zIndex", "autoPreview", "smoothTransitioning"];
|
|
12354
|
+
var _excluded$9 = ["className", "children", "content", "open", "anchor", "zIndex", "autoPreview", "smoothTransitioning", "role", "aria-label", "aria-labelledby", "popoverId", "openOnFocus", "closeOnEscape", "onClose", "autoFocus"];
|
|
12355
12355
|
var POPOVER_MOUSEOUT_DELAY_MS = 200;
|
|
12356
12356
|
var THREE_QUARTER_SECOND_DELAY = 750;
|
|
12357
12357
|
var ONE_SECOND_DELAY = 1000;
|
|
@@ -12377,6 +12377,17 @@ var Popover = function Popover(_ref) {
|
|
|
12377
12377
|
autoPreview = _ref$autoPreview === void 0 ? false : _ref$autoPreview,
|
|
12378
12378
|
_ref$smoothTransition = _ref.smoothTransitioning,
|
|
12379
12379
|
smoothTransitioning = _ref$smoothTransition === void 0 ? false : _ref$smoothTransition,
|
|
12380
|
+
role = _ref.role,
|
|
12381
|
+
ariaLabel = _ref['aria-label'],
|
|
12382
|
+
ariaLabelledby = _ref['aria-labelledby'],
|
|
12383
|
+
popoverId = _ref.popoverId,
|
|
12384
|
+
_ref$openOnFocus = _ref.openOnFocus,
|
|
12385
|
+
openOnFocus = _ref$openOnFocus === void 0 ? false : _ref$openOnFocus,
|
|
12386
|
+
_ref$closeOnEscape = _ref.closeOnEscape,
|
|
12387
|
+
closeOnEscape = _ref$closeOnEscape === void 0 ? true : _ref$closeOnEscape,
|
|
12388
|
+
onClose = _ref.onClose,
|
|
12389
|
+
_ref$autoFocus = _ref.autoFocus,
|
|
12390
|
+
autoFocus = _ref$autoFocus === void 0 ? false : _ref$autoFocus,
|
|
12380
12391
|
rest = _objectWithoutProperties(_ref, _excluded$9);
|
|
12381
12392
|
var _useState = React.useState(function () {
|
|
12382
12393
|
if (open && smoothTransitioning) {
|
|
@@ -12394,6 +12405,7 @@ var Popover = function Popover(_ref) {
|
|
|
12394
12405
|
mode = _useState2[0],
|
|
12395
12406
|
setMode = _useState2[1];
|
|
12396
12407
|
var timeout = React.useRef(null);
|
|
12408
|
+
var contentRef = React.useRef(null);
|
|
12397
12409
|
var handleOpen = React.useCallback(function () {
|
|
12398
12410
|
if (smoothTransitioning) setMode(Mode.Opening);
|
|
12399
12411
|
if (!smoothTransitioning) setMode(Mode.Open);
|
|
@@ -12412,6 +12424,27 @@ var Popover = function Popover(_ref) {
|
|
|
12412
12424
|
if (open) return;
|
|
12413
12425
|
timeout.current = setTimeout(handleClose, POPOVER_MOUSEOUT_DELAY_MS);
|
|
12414
12426
|
}, [handleClose, open]);
|
|
12427
|
+
var handleKeyDown = React.useCallback(function (event) {
|
|
12428
|
+
if (closeOnEscape && event.key === 'Escape') {
|
|
12429
|
+
onClose === null || onClose === void 0 || onClose();
|
|
12430
|
+
handleClose();
|
|
12431
|
+
event.preventDefault();
|
|
12432
|
+
}
|
|
12433
|
+
}, [closeOnEscape, onClose, handleClose]);
|
|
12434
|
+
var handleFocus = React.useCallback(function () {
|
|
12435
|
+
if (openOnFocus && open === undefined) {
|
|
12436
|
+
if (timeout.current) clearTimeout(timeout.current);
|
|
12437
|
+
handleOpen();
|
|
12438
|
+
}
|
|
12439
|
+
}, [openOnFocus, open, handleOpen]);
|
|
12440
|
+
var handleBlur = React.useCallback(function (event) {
|
|
12441
|
+
if (openOnFocus && open === undefined) {
|
|
12442
|
+
// Only close if focus moved outside the popover entirely
|
|
12443
|
+
if (!event.currentTarget.contains(event.relatedTarget)) {
|
|
12444
|
+
timeout.current = setTimeout(handleClose, POPOVER_MOUSEOUT_DELAY_MS);
|
|
12445
|
+
}
|
|
12446
|
+
}
|
|
12447
|
+
}, [openOnFocus, open, handleClose]);
|
|
12415
12448
|
React.useEffect(function () {
|
|
12416
12449
|
if (mode !== Mode.Closing) return;
|
|
12417
12450
|
var closingTimeout = setTimeout(function () {
|
|
@@ -12455,10 +12488,18 @@ var Popover = function Popover(_ref) {
|
|
|
12455
12488
|
}
|
|
12456
12489
|
}, [handleClose, handleOpen, open]);
|
|
12457
12490
|
var isOpen = mode === Mode.AutoOpen || mode === Mode.Opening || mode === Mode.Open || mode === Mode.Closing;
|
|
12491
|
+
React.useEffect(function () {
|
|
12492
|
+
if (autoFocus && isOpen && contentRef.current) {
|
|
12493
|
+
contentRef.current.focus();
|
|
12494
|
+
}
|
|
12495
|
+
}, [autoFocus, isOpen]);
|
|
12458
12496
|
return /*#__PURE__*/React.createElement("div", _extends$1({
|
|
12459
12497
|
className: classNames("Popover Popover--anchor-".concat(anchor), className),
|
|
12460
12498
|
onMouseEnter: handleMouseEnter,
|
|
12461
|
-
onMouseLeave: handleMouseLeave
|
|
12499
|
+
onMouseLeave: handleMouseLeave,
|
|
12500
|
+
onKeyDown: handleKeyDown,
|
|
12501
|
+
onFocus: handleFocus,
|
|
12502
|
+
onBlur: handleBlur
|
|
12462
12503
|
}, rest), /*#__PURE__*/React.createElement("span", {
|
|
12463
12504
|
className: "Popover__trigger"
|
|
12464
12505
|
}, isOpen && /*#__PURE__*/React.createElement("div", {
|
|
@@ -12468,10 +12509,17 @@ var Popover = function Popover(_ref) {
|
|
|
12468
12509
|
})
|
|
12469
12510
|
}, /*#__PURE__*/React.createElement("div", {
|
|
12470
12511
|
className: "Popover__caret",
|
|
12512
|
+
"aria-hidden": "true",
|
|
12471
12513
|
style: {
|
|
12472
12514
|
zIndex: zIndex != null ? zIndex + 1 : undefined
|
|
12473
12515
|
}
|
|
12474
12516
|
}), /*#__PURE__*/React.createElement("div", {
|
|
12517
|
+
ref: contentRef,
|
|
12518
|
+
id: popoverId,
|
|
12519
|
+
role: role,
|
|
12520
|
+
"aria-label": ariaLabel,
|
|
12521
|
+
"aria-labelledby": ariaLabelledby,
|
|
12522
|
+
tabIndex: autoFocus ? -1 : undefined,
|
|
12475
12523
|
className: "Popover__content",
|
|
12476
12524
|
style: {
|
|
12477
12525
|
zIndex: zIndex
|