intergalactic 15.56.0 → 15.57.0

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.
Files changed (88) hide show
  1. package/CHANGELOG.md +20 -1
  2. package/base-trigger/lib/cjs/BaseTrigger.js +18 -18
  3. package/base-trigger/lib/cjs/ButtonTrigger.js +3 -3
  4. package/base-trigger/lib/cjs/FilterTrigger.js +7 -7
  5. package/base-trigger/lib/cjs/LinkTrigger.js +12 -12
  6. package/base-trigger/lib/es6/BaseTrigger.js +18 -18
  7. package/base-trigger/lib/es6/ButtonTrigger.js +3 -3
  8. package/base-trigger/lib/es6/FilterTrigger.js +7 -7
  9. package/base-trigger/lib/es6/LinkTrigger.js +12 -12
  10. package/components.json +73 -73
  11. package/date-picker/lib/cjs/components/Calendar.js +21 -21
  12. package/date-picker/lib/cjs/components/DateRangeComparatorAbstract.js +26 -26
  13. package/date-picker/lib/cjs/components/InputTrigger.js +26 -26
  14. package/date-picker/lib/cjs/components/PickerAbstract.js +26 -26
  15. package/date-picker/lib/cjs/components/RangePickerAbstract.js +26 -26
  16. package/date-picker/lib/es6/components/Calendar.js +21 -21
  17. package/date-picker/lib/es6/components/DateRangeComparatorAbstract.js +26 -26
  18. package/date-picker/lib/es6/components/InputTrigger.js +26 -26
  19. package/date-picker/lib/es6/components/PickerAbstract.js +26 -26
  20. package/date-picker/lib/es6/components/RangePickerAbstract.js +26 -26
  21. package/dropdown-menu/lib/cjs/DropdownMenu.js +2 -4
  22. package/dropdown-menu/lib/cjs/DropdownMenu.js.map +1 -1
  23. package/dropdown-menu/lib/es6/DropdownMenu.js +2 -4
  24. package/dropdown-menu/lib/es6/DropdownMenu.js.map +1 -1
  25. package/icon/Hashtag/l/index.d.ts +6 -0
  26. package/icon/Hashtag/l/index.js +38 -0
  27. package/icon/Hashtag/l/index.mjs +26 -0
  28. package/icon/Hashtag/m/index.d.ts +6 -0
  29. package/icon/Hashtag/m/index.js +38 -0
  30. package/icon/Hashtag/m/index.mjs +26 -0
  31. package/package.json +1 -1
  32. package/popper/index.d.ts +6 -1
  33. package/popper/lib/cjs/Popper.js +72 -173
  34. package/popper/lib/cjs/Popper.js.map +1 -1
  35. package/popper/lib/cjs/index.d.js.map +1 -1
  36. package/popper/lib/es6/Popper.js +74 -175
  37. package/popper/lib/es6/Popper.js.map +1 -1
  38. package/popper/lib/es6/index.d.js.map +1 -1
  39. package/popper/lib/types/index.d.ts +6 -1
  40. package/select/lib/cjs/InputSearch.js +6 -6
  41. package/select/lib/cjs/Select.js +11 -27
  42. package/select/lib/cjs/Select.js.map +1 -1
  43. package/select/lib/es6/InputSearch.js +6 -6
  44. package/select/lib/es6/Select.js +11 -27
  45. package/select/lib/es6/Select.js.map +1 -1
  46. package/textarea/lib/cjs/Textarea.js +8 -8
  47. package/textarea/lib/es6/Textarea.js +8 -8
  48. package/time-picker/lib/cjs/TimePicker.js +12 -12
  49. package/time-picker/lib/es6/TimePicker.js +12 -12
  50. package/tooltip/lib/cjs/Tooltip.js +2 -1
  51. package/tooltip/lib/cjs/Tooltip.js.map +1 -1
  52. package/tooltip/lib/es6/Tooltip.js +2 -1
  53. package/tooltip/lib/es6/Tooltip.js.map +1 -1
  54. package/utils/lib/focus-lock/focusBorders.d.ts +3 -0
  55. package/utils/lib/focus-lock/focusBorders.js +43 -0
  56. package/utils/lib/focus-lock/focusBorders.js.map +1 -0
  57. package/utils/lib/focus-lock/focusBorders.mjs +34 -0
  58. package/utils/lib/focus-lock/focusBorders.mjs.map +1 -0
  59. package/utils/lib/focus-lock/getFocusableIn.d.ts +1 -0
  60. package/utils/lib/focus-lock/getFocusableIn.js +26 -0
  61. package/utils/lib/focus-lock/getFocusableIn.js.map +1 -0
  62. package/utils/lib/focus-lock/getFocusableIn.mjs +19 -0
  63. package/utils/lib/focus-lock/getFocusableIn.mjs.map +1 -0
  64. package/utils/lib/focus-lock/isFocusInside.d.ts +1 -0
  65. package/utils/lib/focus-lock/isFocusInside.js +16 -0
  66. package/utils/lib/focus-lock/isFocusInside.js.map +1 -0
  67. package/utils/lib/focus-lock/isFocusInside.mjs +9 -0
  68. package/utils/lib/focus-lock/isFocusInside.mjs.map +1 -0
  69. package/utils/lib/focus-lock/isFocusable.d.ts +1 -0
  70. package/utils/lib/focus-lock/isFocusable.js +44 -0
  71. package/utils/lib/focus-lock/isFocusable.js.map +1 -0
  72. package/utils/lib/focus-lock/isFocusable.mjs +36 -0
  73. package/utils/lib/focus-lock/isFocusable.mjs.map +1 -0
  74. package/utils/lib/focus-lock/setFocus.d.ts +1 -0
  75. package/utils/lib/focus-lock/setFocus.js +63 -0
  76. package/utils/lib/focus-lock/setFocus.js.map +1 -0
  77. package/utils/lib/focus-lock/setFocus.mjs +55 -0
  78. package/utils/lib/focus-lock/setFocus.mjs.map +1 -0
  79. package/utils/lib/hasParent.d.ts +1 -0
  80. package/utils/lib/hasParent.js +14 -0
  81. package/utils/lib/hasParent.js.map +1 -0
  82. package/utils/lib/hasParent.mjs +7 -0
  83. package/utils/lib/hasParent.mjs.map +1 -0
  84. package/utils/lib/use/useFocusLock.d.ts +4 -3
  85. package/utils/lib/use/useFocusLock.js +45 -97
  86. package/utils/lib/use/useFocusLock.js.map +1 -1
  87. package/utils/lib/use/useFocusLock.mjs +30 -92
  88. package/utils/lib/use/useFocusLock.mjs.map +1 -1
package/popper/index.d.ts CHANGED
@@ -81,7 +81,12 @@ export type PopperProps = OutsideClickProps &
81
81
  /**
82
82
  * Disabled focus trap, autofocus and focus return
83
83
  */
84
- disableEnforceFocus?: boolean;
84
+ disableEnforceFocus?: boolean /**
85
+ * If enabled, after reaching the end of popper the browser focus goes to the start of popper and vice versa.
86
+ * If disabled, after reading the end of popper the browser focus returns to trigger and popper is being closed.
87
+ * @default `true` (`false` in Tooltip)
88
+ */;
89
+ focusLoop?: boolean;
85
90
  };
86
91
 
87
92
  /** @deprecated */
@@ -28,18 +28,17 @@ var _ref5 = require("intergalactic/utils/lib/ref");
28
28
  var _useFocusLock = require("intergalactic/utils/lib/use/useFocusLock");
29
29
  var _assignProps3 = require("intergalactic/utils/lib/assignProps");
30
30
  var _pick = _interopRequireDefault(require("intergalactic/utils/lib/pick"));
31
- var _logger = _interopRequireDefault(require("intergalactic/utils/lib/logger"));
32
31
  var _uniqueID = _interopRequireDefault(require("intergalactic/utils/lib/uniqueID"));
33
32
  var _animation = require("intergalactic/animation");
34
33
  var _useCssVariable = require("intergalactic/utils/lib/useCssVariable");
35
34
  var _ThemeProvider = require("intergalactic/utils/lib/ThemeProvider");
36
35
  var _ScreenReaderOnly = require("intergalactic/utils/lib/ScreenReaderOnly");
37
36
  var _keyboardFocusEnhance = _interopRequireWildcard(require("intergalactic/utils/lib/enhances/keyboardFocusEnhance"));
37
+ var _hasParent = require("intergalactic/utils/lib/hasParent");
38
38
  var _createPopper2 = _interopRequireDefault(require("./createPopper"));
39
39
  var _excluded = ["placement", "modifiers", "strategy", "onFirstUpdate"],
40
40
  _excluded2 = ["onKeyDown"],
41
- _excluded3 = ["visible", "disablePortal", "interaction", "placement", "duration", "animationsDisabled", "disableEnforceFocus"],
42
- _excluded4 = ["onKeyDown"];
41
+ _excluded3 = ["onKeyDown"];
43
42
  /*__reshadow-styles__:"./style/popper.shadow.css"*/
44
43
  var style = ( /*__reshadow_css_start__*/_core.sstyled.insert( /*__inner_css_start__*/".___SPopper_18pzs_gg_{outline:0;z-index:var(--intergalactic-z-index-popper, 700);color:var(--intergalactic-text-primary, #191b23)}.___SPopper_18pzs_gg_.__keyboardFocused_18pzs_gg_:focus:after{position:absolute;display:block;content:\"\";top:0;right:0;bottom:0;left:0;box-shadow:var(--intergalactic-keyboard-focus, 0px 0px 0px 3px rgba(0, 143, 248, 0.5));pointer-events:none}.___SPopper_18pzs_gg_.__keyboardFocused_18pzs_gg_.__hideFocus_18pzs_gg_:focus:after{box-shadow:none}.___SFocusHint_18pzs_gg_{display:none}.___STrigger_18pzs_gg_:focus .___SFocusHint_18pzs_gg_,.___STrigger_18pzs_gg_:focus-within .___SFocusHint_18pzs_gg_{display:inline}" /*__inner_css_end__*/, "18pzs_gg_") /*__reshadow_css_end__*/, {
45
44
  "__SPopper": "___SPopper_18pzs_gg_",
@@ -104,9 +103,11 @@ var Popper = /*#__PURE__*/function (_Component) {
104
103
  }
105
104
  });
106
105
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "triggerRef", /*#__PURE__*/_react["default"].createRef());
107
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "focusableTriggerReturnFocusToRef", /*#__PURE__*/_react["default"].createRef());
108
106
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "popperRef", /*#__PURE__*/_react["default"].createRef());
109
107
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "popper", /*#__PURE__*/_react["default"].createRef());
108
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "state", {
109
+ ignoreTriggerFocusUntil: 0
110
+ });
110
111
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "createTriggerRef", function (ref) {
111
112
  if (ref && _this.triggerRef.current !== ref) {
112
113
  (0, _ref5.setRef)(_this.triggerRef, ref);
@@ -167,8 +168,13 @@ var Popper = /*#__PURE__*/function (_Component) {
167
168
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "bindHandlerKeyDown", function (onKeyDown) {
168
169
  return (0, _assignProps3.callAllEventHandlers)(onKeyDown, _this.handlerKeyDown);
169
170
  });
170
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "bindHandlerChangeVisibleWithTimer", function (visible, component) {
171
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "bindHandlerChangeVisibleWithTimer", function (visible, component, action) {
171
172
  return function (e) {
173
+ var now = Date.now();
174
+ var focusAction = ['onFocus', 'onKeyboardFocus', 'onFocusCapture'].includes(action);
175
+ if (now < _this.state.ignoreTriggerFocusUntil && visible && component === 'trigger' && focusAction) {
176
+ return;
177
+ }
172
178
  var currentTarget = e === null || e === void 0 ? void 0 : e.currentTarget;
173
179
  _this.handlerChangeVisibleWithTimer(visible, e, function () {
174
180
  clearTimeout(_this.timerMultiTrigger);
@@ -183,6 +189,16 @@ var Popper = /*#__PURE__*/function (_Component) {
183
189
  }
184
190
  }, 0);
185
191
  });
192
+ var ignoringDuration = 2000;
193
+ if (!visible) {
194
+ _this.setState({
195
+ ignoreTriggerFocusUntil: now + ignoringDuration
196
+ });
197
+ } else if (now < _this.state.ignoreTriggerFocusUntil + ignoringDuration) {
198
+ _this.setState({
199
+ ignoreTriggerFocusUntil: 0
200
+ });
201
+ }
186
202
  };
187
203
  });
188
204
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handlerChangeVisibleWithTimer", function (visible, e, cb) {
@@ -199,6 +215,18 @@ var Popper = /*#__PURE__*/function (_Component) {
199
215
  cb();
200
216
  }, latency);
201
217
  });
218
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleTriggerBlur", function () {
219
+ setTimeout(function () {
220
+ _this.setState({
221
+ ignoreTriggerFocusUntil: 0
222
+ });
223
+ }, 0);
224
+ });
225
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handlePopperFocusOut", function (event) {
226
+ if (_this.asProps.focusLoop) return;
227
+ if ((0, _hasParent.hasParent)(event.target, _this.triggerRef.current)) return;
228
+ _this.bindHandlerChangeVisibleWithTimer(false, 'popper', 'onBlur')(event);
229
+ });
202
230
  if ((0, _canUseDOM["default"])()) {
203
231
  _this.observer = new ResizeObserver(function () {
204
232
  requestAnimationFrame(function () {
@@ -259,13 +287,13 @@ var Popper = /*#__PURE__*/function (_Component) {
259
287
  var crossEvents = someArray(showEvents, hideEvents);
260
288
  var handlers = {};
261
289
  showEvents.forEach(function (action) {
262
- handlers[action] = _this3.bindHandlerChangeVisibleWithTimer(true, component);
290
+ handlers[action] = _this3.bindHandlerChangeVisibleWithTimer(true, component, action);
263
291
  });
264
292
  hideEvents.forEach(function (action) {
265
- handlers[action] = _this3.bindHandlerChangeVisibleWithTimer(false, component);
293
+ handlers[action] = _this3.bindHandlerChangeVisibleWithTimer(false, component, action);
266
294
  });
267
295
  crossEvents.forEach(function (action) {
268
- handlers[action] = visible ? _this3.bindHandlerChangeVisibleWithTimer(false, component) : _this3.bindHandlerChangeVisibleWithTimer(true, component);
296
+ handlers[action] = visible ? _this3.bindHandlerChangeVisibleWithTimer(false, component, action) : _this3.bindHandlerChangeVisibleWithTimer(true, component, action);
269
297
  });
270
298
  return handlers;
271
299
  }
@@ -286,9 +314,9 @@ var Popper = /*#__PURE__*/function (_Component) {
286
314
  interaction: interaction
287
315
  }, interactionProps), {}, {
288
316
  onKeyDown: this.bindHandlerKeyDown(onKeyDown),
289
- focusableTriggerReturnFocusToRef: this.focusableTriggerReturnFocusToRef,
290
317
  disableEnforceFocus: disableEnforceFocus,
291
- popperRef: this.popperRef
318
+ popperRef: this.popperRef,
319
+ onBlur: (0, _assignProps3.callAllEventHandlers)(this.handleTriggerBlur, interactionProps.onBlur)
292
320
  });
293
321
  }
294
322
  }, {
@@ -301,12 +329,11 @@ var Popper = /*#__PURE__*/function (_Component) {
301
329
  placement = _this$asProps4.placement,
302
330
  duration = _this$asProps4.duration,
303
331
  animationsDisabled = _this$asProps4.animationsDisabled,
304
- disableEnforceFocus = _this$asProps4.disableEnforceFocus,
305
- other = (0, _objectWithoutProperties2["default"])(_this$asProps4, _excluded3);
332
+ disableEnforceFocus = _this$asProps4.disableEnforceFocus;
306
333
  // @ts-ignore
307
334
  var _this$handlersFromInt2 = this.handlersFromInteraction(interaction, 'popper', visible),
308
335
  onKeyDown = _this$handlersFromInt2.onKeyDown,
309
- interactionProps = (0, _objectWithoutProperties2["default"])(_this$handlersFromInt2, _excluded4);
336
+ interactionProps = (0, _objectWithoutProperties2["default"])(_this$handlersFromInt2, _excluded3);
310
337
  return (0, _objectSpread2["default"])((0, _objectSpread2["default"])({
311
338
  ref: this.createPopperRef,
312
339
  triggerRef: this.triggerRef,
@@ -319,8 +346,8 @@ var Popper = /*#__PURE__*/function (_Component) {
319
346
  duration: duration,
320
347
  animationsDisabled: animationsDisabled,
321
348
  popper: this.popper,
322
- focusableTriggerReturnFocusToRef: this.focusableTriggerReturnFocusToRef,
323
- disableEnforceFocus: disableEnforceFocus
349
+ disableEnforceFocus: disableEnforceFocus,
350
+ handleFocusOut: this.handlePopperFocusOut
324
351
  });
325
352
  }
326
353
  }, {
@@ -367,7 +394,8 @@ var Popper = /*#__PURE__*/function (_Component) {
367
394
  strategy: 'absolute',
368
395
  interaction: 'click',
369
396
  timeout: 0,
370
- excludeRefs: []
397
+ excludeRefs: [],
398
+ focusLoop: true
371
399
  });
372
400
  (0, _defineProperty2["default"])(Popper, "enhance", [(0, _uniqueID["default"])(), (0, _useCssVariable.cssVariableEnhance)({
373
401
  variable: '--intergalactic-duration-popper',
@@ -375,144 +403,17 @@ var Popper = /*#__PURE__*/function (_Component) {
375
403
  map: Number.parseInt,
376
404
  prop: 'duration'
377
405
  })]);
378
- var getElementNestingIndexes = function getElementNestingIndexes(element) {
379
- var chain = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Set([element, document.body]);
380
- if (!(element !== null && element !== void 0 && element.parentElement)) return [];
381
- var index = Array.from(element.parentElement.children).indexOf(element);
382
- if (chain.has(element.parentElement)) return [index];
383
- chain.add(element.parentElement);
384
- return [].concat((0, _toConsumableArray2["default"])(getElementNestingIndexes(element.parentElement, chain)), [index]);
385
- };
386
- var useReturnFocusEl = function useReturnFocusEl(interaction, onKeyboardFocus, disable) {
387
- var _React$useState = _react["default"].useState(false),
388
- _React$useState2 = (0, _slicedToArray2["default"])(_React$useState, 2),
389
- keyboardFocused = _React$useState2[0],
390
- setKeyboardFocused = _React$useState2[1];
391
- var _React$useState3 = _react["default"].useState(null),
392
- _React$useState4 = (0, _slicedToArray2["default"])(_React$useState3, 2),
393
- returnFocusEl = _React$useState4[0],
394
- setReturnFocusEl = _React$useState4[1];
395
- var focusSourceRef = (0, _keyboardFocusEnhance.useFocusSource)();
396
- var handleFocus = _react["default"].useCallback(function (event) {
397
- if (focusSourceRef.current !== 'keyboard') return;
398
- onKeyboardFocus === null || onKeyboardFocus === void 0 ? void 0 : onKeyboardFocus();
399
- if (disable) return;
400
- if (interaction !== 'focus') return;
401
- if (!event.relatedTarget) {
402
- setReturnFocusEl('after');
403
- }
404
- var focusToNesting = getElementNestingIndexes(event.target);
405
- var focusFromNesting = getElementNestingIndexes(event.relatedTarget);
406
- var nestingLength = Math.max(focusToNesting.length, focusFromNesting.length);
407
- for (var i = 0; i < nestingLength; i++) {
408
- if (focusFromNesting[i] === undefined) {
409
- setReturnFocusEl('after'); // <div tabIndex="0" id="focus1" /> <input id="focus2" /> </div>
410
- return;
411
- }
412
- if (focusFromNesting[i] > focusToNesting[i]) {
413
- setReturnFocusEl('before'); // <input id="focus2" /> <input id="focus1" />
414
- return;
415
- }
416
- }
417
- setReturnFocusEl('after'); // <input id="focus1" /> <input id="focus2" />
418
- }, [interaction, onKeyboardFocus, disable]);
419
- var handleFocusReturnElFocus = _react["default"].useCallback(function () {
420
- if (focusSourceRef.current !== 'keyboard') return;
421
- setKeyboardFocused(true);
422
- }, []);
423
- var handleFocusReturnElBlur = _react["default"].useCallback(function () {
424
- setTimeout(function () {
425
- return setReturnFocusEl(null);
426
- }, 0);
427
- setKeyboardFocused(false);
428
- }, []);
429
- return {
430
- returnFocusEl: returnFocusEl,
431
- handleFocus: handleFocus,
432
- handleFocusReturnElFocus: handleFocusReturnElFocus,
433
- handleFocusReturnElBlur: handleFocusReturnElBlur,
434
- keyboardFocused: keyboardFocused
435
- };
436
- };
437
- var useFocusCatch = function useFocusCatch(active, interaction, triggerRef, popperRef) {
438
- var activeRef = _react["default"].useRef(active);
439
- activeRef.current = active;
440
- var _React$useState5 = _react["default"].useState(false),
441
- _React$useState6 = (0, _slicedToArray2["default"])(_React$useState5, 2),
442
- keyboardFocused = _React$useState6[0],
443
- setKeyboardFocused = _React$useState6[1];
444
- var _React$useState7 = _react["default"].useState(false),
445
- _React$useState8 = (0, _slicedToArray2["default"])(_React$useState7, 2),
446
- focusCatch = _React$useState8[0],
447
- setFocusCatch = _React$useState8[1];
448
- var focusSourceRef = (0, _keyboardFocusEnhance.useFocusSource)();
449
- var handleFocusCatchFocus = _react["default"].useCallback(function () {
450
- if (focusSourceRef.current !== 'keyboard') return;
451
- setKeyboardFocused(true);
452
- }, []);
453
- var handleFocusCatchBlur = _react["default"].useCallback(function () {
454
- setFocusCatch(false);
455
- setKeyboardFocused(false);
456
- }, []);
457
- var handleFocusCatchRef = _react["default"].useCallback(function (node) {
458
- if (activeRef.current) return setFocusCatch(false);
459
- if (!(0, _useFocusLock.isFocusInside)(popperRef.current) && document.activeElement !== document.body) return setFocusCatch(false);
460
- node === null || node === void 0 ? void 0 : node.focus();
461
- }, []);
462
- _react["default"].useEffect(function () {
463
- if (!active) return;
464
- if (!popperRef.current) return;
465
- return function () {
466
- setTimeout(function () {
467
- if (activeRef.current) return;
468
- if (!(0, _useFocusLock.isFocusInside)(popperRef.current) && document.activeElement !== document.body) return;
469
- if (interaction === 'hover' || interaction === 'focus') {
470
- setFocusCatch(true);
471
- } else {
472
- var _triggerRef$current;
473
- (_triggerRef$current = triggerRef.current) === null || _triggerRef$current === void 0 ? void 0 : _triggerRef$current.focus();
474
- }
475
- }, 1);
476
- };
477
- }, [active, interaction]);
478
- return {
479
- focusCatch: focusCatch,
480
- handleFocusCatchFocus: handleFocusCatchFocus,
481
- handleFocusCatchBlur: handleFocusCatchBlur,
482
- handleFocusCatchRef: handleFocusCatchRef,
483
- keyboardFocused: keyboardFocused
484
- };
485
- };
486
- var focusCatcherStyles = {
487
- position: 'fixed'
488
- };
489
406
  function Trigger(props) {
490
407
  var _ref = arguments[0];
491
408
  var STrigger = _flexBox.Box;
492
409
  var SFocusHint = 'span';
493
410
  var Children = props.Children,
494
- interaction = props.interaction,
495
- focusableTriggerReturnFocusToRef = props.focusableTriggerReturnFocusToRef,
496
411
  focusHint = props.focusHint,
497
412
  onKeyboardFocus = props.onKeyboardFocus,
498
- disableEnforceFocus = props.disableEnforceFocus,
413
+ highlighted = props.highlighted,
499
414
  active = props.active,
500
- popperRef = props.popperRef,
501
- highlighted = props.highlighted;
415
+ popperRef = props.popperRef;
502
416
  var triggerRef = _react["default"].useRef();
503
- var _useReturnFocusEl = useReturnFocusEl(interaction, onKeyboardFocus, disableEnforceFocus),
504
- returnFocusEl = _useReturnFocusEl.returnFocusEl,
505
- handleFocusReturnElBlur = _useReturnFocusEl.handleFocusReturnElBlur,
506
- handleFocus = _useReturnFocusEl.handleFocus,
507
- returnElKeyboardFocused = _useReturnFocusEl.keyboardFocused;
508
- var _useFocusCatch = useFocusCatch(active, interaction, triggerRef, popperRef),
509
- focusCatch = _useFocusCatch.focusCatch,
510
- handleFocusReturnElFocus = _useFocusCatch.handleFocusReturnElFocus,
511
- handleFocusCatchFocus = _useFocusCatch.handleFocusCatchFocus,
512
- handleFocusCatchBlur = _useFocusCatch.handleFocusCatchBlur,
513
- handleFocusCatchRef = _useFocusCatch.handleFocusCatchRef,
514
- focusCatchKeyboardFocused = _useFocusCatch.keyboardFocused;
515
- var enforceKeyboardFocused = returnElKeyboardFocused || focusCatchKeyboardFocused;
516
417
  _react["default"].useEffect(function () {
517
418
  if (highlighted === true) {
518
419
  onKeyboardFocus({
@@ -520,35 +421,34 @@ function Trigger(props) {
520
421
  });
521
422
  }
522
423
  }, [highlighted]);
523
- return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, returnFocusEl === 'before' && /*#__PURE__*/_react["default"].createElement("div", {
524
- tabIndex: "0",
525
- ref: focusableTriggerReturnFocusToRef,
526
- onBlur: handleFocusReturnElBlur,
527
- onFocus: handleFocusReturnElFocus,
528
- style: focusCatcherStyles
529
- }), /*#__PURE__*/_react["default"].createElement(_keyboardFocusEnhance.enforcedKeyboardFocusEnhanceContext.Provider, {
530
- value: enforceKeyboardFocused
531
- }, /*#__PURE__*/_react["default"].createElement(STrigger, (0, _core.assignProps)({
424
+ var focusSourceRef = (0, _keyboardFocusEnhance.useFocusSource)();
425
+ var handleFocus = _react["default"].useCallback(function () {
426
+ if (focusSourceRef.current !== 'keyboard') return;
427
+ onKeyboardFocus === null || onKeyboardFocus === void 0 ? void 0 : onKeyboardFocus();
428
+ }, [onKeyboardFocus]);
429
+ var activeRef = _react["default"].useRef(active);
430
+ activeRef.current = active;
431
+ _react["default"].useEffect(function () {
432
+ if (!active) return;
433
+ if (!popperRef.current) return;
434
+ return function () {
435
+ setTimeout(function () {
436
+ if (activeRef.current) return;
437
+ if (!(0, _useFocusLock.isFocusInside)(popperRef.current) && document.activeElement !== document.body) return;
438
+ (0, _useFocusLock.setFocus)(triggerRef.current);
439
+ }, 1);
440
+ };
441
+ }, [active]);
442
+ return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(STrigger, (0, _core.assignProps)({
532
443
  "inline": true,
533
444
  "role": 'button',
534
445
  "aria-haspopup": true,
446
+ "ref": triggerRef,
535
447
  "onFocus": handleFocus,
536
- "ref": triggerRef
537
- }, _ref), /*#__PURE__*/_react["default"].createElement(Children, null))), focusHint && false && /*#__PURE__*/_react["default"].createElement(SFocusHint, {
448
+ "onBlur": props.onBlur
449
+ }, _ref), /*#__PURE__*/_react["default"].createElement(Children, null)), focusHint && false && /*#__PURE__*/_react["default"].createElement(SFocusHint, {
538
450
  "aria-live": "polite"
539
- }, /*#__PURE__*/_react["default"].createElement(_ScreenReaderOnly.ScreenReaderOnly, null, focusHint)), returnFocusEl === 'after' && /*#__PURE__*/_react["default"].createElement("div", {
540
- tabIndex: "0",
541
- ref: focusableTriggerReturnFocusToRef,
542
- onBlur: handleFocusReturnElBlur,
543
- onFocus: handleFocusReturnElFocus,
544
- style: focusCatcherStyles
545
- }), focusCatch && /*#__PURE__*/_react["default"].createElement("div", {
546
- tabIndex: "0",
547
- ref: handleFocusCatchRef,
548
- onFocus: handleFocusCatchFocus,
549
- onBlur: handleFocusCatchBlur,
550
- style: focusCatcherStyles
551
- }));
451
+ }, /*#__PURE__*/_react["default"].createElement(_ScreenReaderOnly.ScreenReaderOnly, null, focusHint)));
552
452
  }
553
453
  function PopperPopper(props) {
554
454
  var _ref2 = arguments[0],
@@ -561,22 +461,21 @@ function PopperPopper(props) {
561
461
  ignorePortalsStacking = props.ignorePortalsStacking,
562
462
  disableEnforceFocus = props.disableEnforceFocus,
563
463
  triggerRef = props.triggerRef,
564
- interaction = props.interaction,
565
464
  autoFocus = props.autoFocus,
566
465
  controlsLength = props.controlsLength,
567
466
  duration = props.duration,
568
467
  animationsDisabled = props.animationsDisabled,
569
468
  popper = props.popper,
570
- focusableTriggerReturnFocusToRef = props.focusableTriggerReturnFocusToRef,
571
469
  _props$focusMaster = props.focusMaster,
572
- focusMaster = _props$focusMaster === void 0 ? false : _props$focusMaster;
470
+ focusMaster = _props$focusMaster === void 0 ? false : _props$focusMaster,
471
+ handleFocusOut = props.handleFocusOut;
573
472
  var ref = _react["default"].useRef(null);
574
473
 
575
474
  // https://github.com/facebook/react/issues/11387
576
475
  var stopPropagation = _react["default"].useCallback(function (event) {
577
476
  return event.stopPropagation();
578
477
  }, []);
579
- (0, _useFocusLock.useFocusLock)(ref, autoFocus, interaction === 'focus' || interaction === 'hover' ? focusableTriggerReturnFocusToRef : triggerRef, !visible || disableEnforceFocus, focusMaster);
478
+ (0, _useFocusLock.useFocusLock)(ref, autoFocus, triggerRef, !visible || disableEnforceFocus, focusMaster, handleFocusOut);
580
479
  (0, _ThemeProvider.useContextTheme)(ref, visible);
581
480
  var updatePopperEveryFrame = useUpdatePopperEveryFrame(popper);
582
481
  var handleAnimationStart = _react["default"].useCallback(function (duration) {
@@ -1 +1 @@
1
- {"version":3,"file":"Popper.js","names":["_core","_interopRequireWildcard","require","_react","_interopRequireDefault","_canUseDOM","_flexBox","_outsideClick","_portal","_neighborLocation","_ref5","_useFocusLock","_assignProps3","_pick","_logger","_uniqueID","_animation","_useCssVariable","_ThemeProvider","_ScreenReaderOnly","_keyboardFocusEnhance","_createPopper2","_excluded","_excluded2","_excluded3","_excluded4","style","sstyled","insert","isObject","obj","_typeof2","Array","isArray","someArray","arr1","arr2","filter","i","indexOf","useUpdatePopperEveryFrame","popperRef","nextAnimationFrameRef","React","useRef","handleAnimationFrame","useCallback","until","_popperRef$current","Date","now","current","update","requestAnimationFrame","useEffect","cancelAnimationFrame","MODIFIERS_OPTIONS","Popper","_Component","_inherits2","_super","_createSuper2","props","_this","_classCallCheck2","call","_defineProperty2","_assertThisInitialized2","click","trigger","popper","hover","focus","none","createRef","ref","triggerRef","setRef","createPopper","_this$asProps","asProps","placement","modifiers","strategy","onFirstUpdate","other","_objectWithoutProperties2","optionsModifiers","pick","modifiersFallback","offset","modifiersOptions","name","undefined","map","options","push","gpuAcceleration","modifiersMerge","concat","_toConsumableArray2","callAllEventHandlers","_this$observer","_this$observer2","observer","observe","e","visible","key","stopPropagation","bindHandlerChangeVisibleWithTimer","onKeyDown","handlerKeyDown","component","currentTarget","handlerChangeVisibleWithTimer","clearTimeout","timerMultiTrigger","setTimeout","state","elements","reference","setOptions","cb","_this$asProps2","timeout","disabled","handlers","timeoutConfig","latency","timer","canUseDOM","ResizeObserver","_this$popper$current","_createClass2","value","uncontrolledProps","__disablePopper","getPopperOptions","componentDidUpdate","prevProps","_this2","popperProps","some","propName","destroyPopper","_this$observer3","disconnect","destroy","handlersFromInteraction","interaction","_this3","eventInteraction","eventsInteractionMap","_eventInteraction$com","_slicedToArray2","_eventInteraction$com2","showEvents","_eventInteraction$com3","hideEvents","crossEvents","forEach","action","getTriggerProps","_this$asProps3","disableEnforceFocus","_this$handlersFromInt","interactionProps","_objectSpread2","createTriggerRef","active","bindHandlerKeyDown","focusableTriggerReturnFocusToRef","getPopperProps","_this$asProps4","disablePortal","duration","animationsDisabled","_this$handlersFromInt2","createPopperRef","setContext","setTrigger","setPopper","componentWillUnmount","render","_this$asProps5","Children","root","onOutsideClick","excludeRefs","createElement","Fragment","Component","defaultVisible","arrow","padding","uniqueIDEnhancement","cssVariableEnhance","variable","fallback","Number","parseInt","prop","getElementNestingIndexes","element","chain","arguments","length","Set","document","body","parentElement","index","from","children","has","add","useReturnFocusEl","onKeyboardFocus","disable","_React$useState","useState","_React$useState2","keyboardFocused","setKeyboardFocused","_React$useState3","_React$useState4","returnFocusEl","setReturnFocusEl","focusSourceRef","useFocusSource","handleFocus","event","relatedTarget","focusToNesting","target","focusFromNesting","nestingLength","Math","max","handleFocusReturnElFocus","handleFocusReturnElBlur","useFocusCatch","activeRef","_React$useState5","_React$useState6","_React$useState7","_React$useState8","focusCatch","setFocusCatch","handleFocusCatchFocus","handleFocusCatchBlur","handleFocusCatchRef","node","isFocusInside","activeElement","_triggerRef$current","focusCatcherStyles","position","Trigger","_ref","arguments[0]","STrigger","Box","SFocusHint","focusHint","highlighted","_useReturnFocusEl","returnElKeyboardFocused","_useFocusCatch","focusCatchKeyboardFocused","enforceKeyboardFocused","tabIndex","onBlur","onFocus","enforcedKeyboardFocusEnhanceContext","Provider","assignProps","ScreenReaderOnly","PopperPopper","_ref2","_ref3","SPopper","Scale","styles","ignorePortalsStacking","autoFocus","controlsLength","_props$focusMaster","focusMaster","useFocusLock","useContextTheme","updatePopperEveryFrame","handleAnimationStart","min","handleAnimationEnd","_popper$current","animationCtx","useContext","animationContext","unsubscribeAnimationStart","onAnimationStart","unsubscribeAnimationEnd","onAnimationEnd","cn","PortalProvider","enhance","keyboardFocusEnhance","_default","createComponent","exports"],"sources":["../../src/Popper.jsx"],"sourcesContent":["import React from 'react';\n\nimport canUseDOM from '@semcore/utils/lib/canUseDOM';\nimport createComponent, { Component, sstyled, Root } from '@semcore/core';\nimport { Box } from '@semcore/flex-box';\nimport OutsideClick from '@semcore/outside-click';\nimport Portal, { PortalProvider } from '@semcore/portal';\nimport NeighborLocation from '@semcore/neighbor-location';\nimport { setRef } from '@semcore/utils/lib/ref';\nimport { useFocusLock, isFocusInside } from '@semcore/utils/lib/use/useFocusLock';\nimport { callAllEventHandlers } from '@semcore/utils/lib/assignProps';\nimport pick from '@semcore/utils/lib/pick';\nimport logger from '@semcore/utils/lib/logger';\nimport uniqueIDEnhancement from '@semcore/utils/lib/uniqueID';\nimport { Scale, animationContext } from '@semcore/animation';\nimport { cssVariableEnhance } from '@semcore/utils/lib/useCssVariable';\nimport { useContextTheme } from '@semcore/utils/lib/ThemeProvider';\nimport { ScreenReaderOnly } from '@semcore/utils/lib/ScreenReaderOnly';\nimport keyboardFocusEnhance, {\n useFocusSource,\n enforcedKeyboardFocusEnhanceContext,\n} from '@semcore/utils/lib/enhances/keyboardFocusEnhance';\n\nimport createPopper from './createPopper';\n\nimport style from './style/popper.shadow.css';\n\nfunction isObject(obj) {\n return typeof obj === 'object' && !Array.isArray(obj);\n}\n\nfunction someArray(arr1, arr2) {\n return arr1.filter(function (i) {\n return arr2.indexOf(i) !== -1;\n });\n}\n\nconst useUpdatePopperEveryFrame = (popperRef) => {\n const nextAnimationFrameRef = React.useRef(-1);\n const handleAnimationFrame = React.useCallback((until) => {\n if (until < Date.now()) return;\n popperRef.current?.update();\n nextAnimationFrameRef.current = requestAnimationFrame(() => handleAnimationFrame(until));\n }, []);\n React.useEffect(() => () => cancelAnimationFrame(nextAnimationFrameRef.current), []);\n return handleAnimationFrame;\n};\n\nconst MODIFIERS_OPTIONS = [\n 'offset',\n 'preventOverflow',\n 'arrow',\n 'flip',\n 'computeStyles',\n 'eventListeners',\n];\n\nclass Popper extends Component {\n static displayName = 'Popper';\n\n static style = style;\n\n static defaultProps = {\n defaultVisible: false,\n placement: 'auto',\n modifiers: [],\n arrow: {\n padding: 6,\n },\n strategy: 'absolute',\n interaction: 'click',\n timeout: 0,\n excludeRefs: [],\n };\n\n static enhance = [\n uniqueIDEnhancement(),\n cssVariableEnhance({\n variable: '--intergalactic-duration-popper',\n fallback: '200',\n map: Number.parseInt,\n prop: 'duration',\n }),\n ];\n\n eventsInteractionMap = {\n click: {\n trigger: [['onClick'], ['onClick']],\n popper: [],\n },\n hover: {\n trigger: [\n ['onMouseEnter', 'onKeyboardFocus'],\n ['onMouseLeave', 'onBlur'],\n ],\n popper: [['onMouseEnter', 'onFocusCapture'], ['onMouseLeave']],\n },\n focus: {\n trigger: [['onFocus'], ['onBlur']],\n // to intercept faster than onBlur on the trigger\n popper: [['onFocusCapture'], ['onBlur']],\n },\n none: {\n trigger: [],\n popper: [],\n },\n };\n\n // timer: ReturnType<typeof setTimeout>;\n // observer: ResizeObserver;\n triggerRef = React.createRef();\n focusableTriggerReturnFocusToRef = React.createRef();\n popperRef = React.createRef();\n popper = React.createRef();\n\n constructor(props) {\n super(props);\n if (canUseDOM()) {\n this.observer = new ResizeObserver(() => {\n requestAnimationFrame(() => {\n this.popper.current?.update();\n });\n });\n }\n }\n\n uncontrolledProps() {\n return {\n visible: null,\n };\n }\n\n createTriggerRef = (ref) => {\n if (ref && this.triggerRef.current !== ref) {\n setRef(this.triggerRef, ref);\n this.createPopper();\n }\n };\n\n createPopperRef = (ref) => {\n if (ref && this.popperRef.current !== ref) {\n setRef(this.popperRef, ref);\n this.createPopper();\n }\n };\n\n getPopperOptions = () => {\n const { placement, modifiers, strategy, onFirstUpdate, ...other } = this.asProps;\n const optionsModifiers = pick(other, MODIFIERS_OPTIONS);\n const modifiersFallback = [];\n\n if (typeof optionsModifiers.offset === 'number') {\n optionsModifiers.offset = [0, optionsModifiers.offset];\n }\n const modifiersOptions = MODIFIERS_OPTIONS.filter(\n (name) => optionsModifiers[name] !== undefined,\n ).map((name) => ({\n name,\n options: isObject(optionsModifiers[name])\n ? optionsModifiers[name]\n : { [name]: optionsModifiers[name] },\n }));\n\n modifiersOptions.push({\n name: 'computeStyles',\n options: { gpuAcceleration: false },\n });\n\n const modifiersMerge = [...modifiersFallback, ...modifiersOptions].concat(modifiers);\n\n return {\n placement,\n strategy,\n onFirstUpdate: callAllEventHandlers(onFirstUpdate, () => {\n this.observer?.observe(this.triggerRef.current);\n this.observer?.observe(this.popperRef.current);\n }),\n modifiers: modifiersMerge,\n };\n };\n\n createPopper() {\n if (!this.triggerRef.current || !this.popperRef.current) return;\n if (this.asProps.__disablePopper) return;\n\n this.popper.current = createPopper(\n this.triggerRef.current,\n this.popperRef.current,\n this.getPopperOptions(),\n );\n }\n\n componentDidUpdate(prevProps) {\n const popperProps = [\n 'strategy',\n 'placement',\n 'offset',\n 'preventOverflow',\n 'arrow',\n 'flip',\n 'computeStyles',\n 'eventListeners',\n 'onFirstUpdate',\n ];\n if (\n this.popper.current &&\n popperProps.some((propName) => prevProps[propName] !== this.asProps[propName])\n ) {\n this.popper.current.setOptions(this.getPopperOptions());\n }\n }\n\n destroyPopper() {\n clearTimeout(this.timer);\n clearTimeout(this.timerMultiTrigger);\n\n this.observer?.disconnect();\n\n if (this.popper.current) {\n this.popper.current.destroy();\n this.popper.current = null;\n }\n }\n\n handlersFromInteraction(interaction, component, visible) {\n const eventInteraction =\n typeof interaction === 'string' ? this.eventsInteractionMap[interaction] : interaction;\n\n const [showEvents = [], hideEvents = []] = eventInteraction[component];\n const crossEvents = someArray(showEvents, hideEvents);\n const handlers = {};\n\n showEvents.forEach((action) => {\n handlers[action] = this.bindHandlerChangeVisibleWithTimer(true, component);\n });\n hideEvents.forEach((action) => {\n handlers[action] = this.bindHandlerChangeVisibleWithTimer(false, component);\n });\n crossEvents.forEach((action) => {\n handlers[action] = visible\n ? this.bindHandlerChangeVisibleWithTimer(false, component)\n : this.bindHandlerChangeVisibleWithTimer(true, component);\n });\n return handlers;\n }\n\n handlerKeyDown = (e) => {\n const { visible } = this.asProps;\n if (visible && e.key === 'Escape') {\n e.stopPropagation();\n\n this.bindHandlerChangeVisibleWithTimer(false)(e);\n }\n };\n bindHandlerKeyDown = (onKeyDown) => callAllEventHandlers(onKeyDown, this.handlerKeyDown);\n\n bindHandlerChangeVisibleWithTimer = (visible, component) => (e) => {\n const currentTarget = e?.currentTarget;\n this.handlerChangeVisibleWithTimer(visible, e, () => {\n clearTimeout(this.timerMultiTrigger);\n // instance popper is not here yet because the popperRef did not have time to come\n this.timerMultiTrigger = setTimeout(() => {\n if (visible && component === 'trigger' && this.popper.current && currentTarget) {\n if (this.popper.current.state.elements.reference !== currentTarget) {\n this.popper.current.state.elements.reference = currentTarget;\n // for update\n this.popper.current.setOptions({});\n }\n }\n }, 0);\n });\n };\n\n handlerChangeVisibleWithTimer = (visible, e, cb) => {\n const { timeout, disabled } = this.asProps;\n if (typeof disabled === 'boolean' && disabled && visible) return;\n const handlers = this.handlers;\n\n const timeoutConfig = typeof timeout === 'number' ? [timeout, timeout] : timeout;\n const latency = visible ? timeoutConfig[0] : timeoutConfig[1];\n clearTimeout(this.timer);\n this.timer = setTimeout(() => {\n handlers.visible(visible, e);\n cb();\n }, latency);\n };\n\n getTriggerProps() {\n const { visible, interaction, disableEnforceFocus } = this.asProps;\n // @ts-ignore\n const { onKeyDown, ...interactionProps } = this.handlersFromInteraction(\n interaction,\n 'trigger',\n visible,\n );\n return {\n ref: this.createTriggerRef,\n active: visible,\n interaction,\n ...interactionProps,\n onKeyDown: this.bindHandlerKeyDown(onKeyDown),\n focusableTriggerReturnFocusToRef: this.focusableTriggerReturnFocusToRef,\n disableEnforceFocus,\n popperRef: this.popperRef,\n };\n }\n\n getPopperProps() {\n const {\n visible,\n disablePortal,\n interaction,\n placement,\n duration,\n animationsDisabled,\n disableEnforceFocus,\n ...other\n } = this.asProps;\n // @ts-ignore\n const { onKeyDown, ...interactionProps } = this.handlersFromInteraction(\n interaction,\n 'popper',\n visible,\n );\n\n return {\n ref: this.createPopperRef,\n triggerRef: this.triggerRef,\n visible,\n interaction,\n disablePortal,\n ...interactionProps,\n onKeyDown: this.bindHandlerKeyDown(onKeyDown),\n placement,\n duration,\n animationsDisabled,\n popper: this.popper,\n focusableTriggerReturnFocusToRef: this.focusableTriggerReturnFocusToRef,\n disableEnforceFocus,\n };\n }\n\n setContext() {\n return {\n popper: this.popper,\n setTrigger: this.createTriggerRef,\n setPopper: this.createPopperRef,\n };\n }\n\n componentWillUnmount() {\n this.destroyPopper();\n }\n\n render() {\n const { Children, visible, root, onOutsideClick, excludeRefs } = this.asProps;\n return (\n <>\n {visible ? (\n <OutsideClick\n root={root}\n excludeRefs={[this.triggerRef, this.popperRef, ...excludeRefs]}\n onOutsideClick={callAllEventHandlers(\n onOutsideClick,\n this.bindHandlerChangeVisibleWithTimer(false),\n )}\n />\n ) : null}\n <Children />\n </>\n );\n }\n}\n\nconst getElementNestingIndexes = (element, chain = new Set([element, document.body])) => {\n if (!element?.parentElement) return [];\n const index = Array.from(element.parentElement.children).indexOf(element);\n if (chain.has(element.parentElement)) return [index];\n chain.add(element.parentElement);\n return [...getElementNestingIndexes(element.parentElement, chain), index];\n};\n\nconst useReturnFocusEl = (interaction, onKeyboardFocus, disable) => {\n const [keyboardFocused, setKeyboardFocused] = React.useState(false);\n const [returnFocusEl, setReturnFocusEl] = React.useState(null);\n const focusSourceRef = useFocusSource();\n const handleFocus = React.useCallback(\n (event) => {\n if (focusSourceRef.current !== 'keyboard') return;\n onKeyboardFocus?.();\n if (disable) return;\n if (interaction !== 'focus') return;\n if (!event.relatedTarget) {\n setReturnFocusEl('after');\n }\n const focusToNesting = getElementNestingIndexes(event.target);\n const focusFromNesting = getElementNestingIndexes(event.relatedTarget);\n const nestingLength = Math.max(focusToNesting.length, focusFromNesting.length);\n for (let i = 0; i < nestingLength; i++) {\n if (focusFromNesting[i] === undefined) {\n setReturnFocusEl('after'); // <div tabIndex=\"0\" id=\"focus1\" /> <input id=\"focus2\" /> </div>\n return;\n }\n if (focusFromNesting[i] > focusToNesting[i]) {\n setReturnFocusEl('before'); // <input id=\"focus2\" /> <input id=\"focus1\" />\n return;\n }\n }\n\n setReturnFocusEl('after'); // <input id=\"focus1\" /> <input id=\"focus2\" />\n },\n [interaction, onKeyboardFocus, disable],\n );\n const handleFocusReturnElFocus = React.useCallback(() => {\n if (focusSourceRef.current !== 'keyboard') return;\n setKeyboardFocused(true);\n }, []);\n const handleFocusReturnElBlur = React.useCallback(() => {\n setTimeout(() => setReturnFocusEl(null), 0);\n setKeyboardFocused(false);\n }, []);\n\n return {\n returnFocusEl,\n handleFocus,\n handleFocusReturnElFocus,\n handleFocusReturnElBlur,\n keyboardFocused,\n };\n};\nconst useFocusCatch = (active, interaction, triggerRef, popperRef) => {\n const activeRef = React.useRef(active);\n activeRef.current = active;\n\n const [keyboardFocused, setKeyboardFocused] = React.useState(false);\n const [focusCatch, setFocusCatch] = React.useState(false);\n const focusSourceRef = useFocusSource();\n const handleFocusCatchFocus = React.useCallback(() => {\n if (focusSourceRef.current !== 'keyboard') return;\n setKeyboardFocused(true);\n }, []);\n const handleFocusCatchBlur = React.useCallback(() => {\n setFocusCatch(false);\n setKeyboardFocused(false);\n }, []);\n const handleFocusCatchRef = React.useCallback((node) => {\n if (activeRef.current) return setFocusCatch(false);\n if (!isFocusInside(popperRef.current) && document.activeElement !== document.body)\n return setFocusCatch(false);\n node?.focus();\n }, []);\n\n React.useEffect(() => {\n if (!active) return;\n if (!popperRef.current) return;\n return () => {\n setTimeout(() => {\n if (activeRef.current) return;\n if (!isFocusInside(popperRef.current) && document.activeElement !== document.body) return;\n\n if (interaction === 'hover' || interaction === 'focus') {\n setFocusCatch(true);\n } else {\n triggerRef.current?.focus();\n }\n }, 1);\n };\n }, [active, interaction]);\n\n return {\n focusCatch,\n handleFocusCatchFocus,\n handleFocusCatchBlur,\n handleFocusCatchRef,\n keyboardFocused,\n };\n};\n\nconst focusCatcherStyles = { position: 'fixed' };\nfunction Trigger(props) {\n const STrigger = Root;\n const SFocusHint = 'span';\n const {\n Children,\n interaction,\n focusableTriggerReturnFocusToRef,\n focusHint,\n onKeyboardFocus,\n disableEnforceFocus,\n active,\n popperRef,\n highlighted,\n } = props;\n\n const triggerRef = React.useRef();\n\n const {\n returnFocusEl,\n handleFocusReturnElBlur,\n handleFocus,\n keyboardFocused: returnElKeyboardFocused,\n } = useReturnFocusEl(interaction, onKeyboardFocus, disableEnforceFocus);\n const {\n focusCatch,\n handleFocusReturnElFocus,\n handleFocusCatchFocus,\n handleFocusCatchBlur,\n handleFocusCatchRef,\n keyboardFocused: focusCatchKeyboardFocused,\n } = useFocusCatch(active, interaction, triggerRef, popperRef);\n\n const enforceKeyboardFocused = returnElKeyboardFocused || focusCatchKeyboardFocused;\n\n React.useEffect(() => {\n if (highlighted === true) {\n onKeyboardFocus({ currentTarget: triggerRef.current });\n }\n }, [highlighted]);\n\n return (\n <>\n {returnFocusEl === 'before' && (\n <div\n tabIndex='0'\n ref={focusableTriggerReturnFocusToRef}\n onBlur={handleFocusReturnElBlur}\n onFocus={handleFocusReturnElFocus}\n style={focusCatcherStyles}\n />\n )}\n <enforcedKeyboardFocusEnhanceContext.Provider value={enforceKeyboardFocused}>\n <STrigger\n render={Box}\n inline\n role='button'\n aria-haspopup={true}\n onFocus={handleFocus}\n ref={triggerRef}\n >\n <Children />\n </STrigger>\n </enforcedKeyboardFocusEnhanceContext.Provider>\n {focusHint && false && (\n <SFocusHint aria-live='polite'>\n <ScreenReaderOnly>{focusHint}</ScreenReaderOnly>\n </SFocusHint>\n )}\n {returnFocusEl === 'after' && (\n <div\n tabIndex='0'\n ref={focusableTriggerReturnFocusToRef}\n onBlur={handleFocusReturnElBlur}\n onFocus={handleFocusReturnElFocus}\n style={focusCatcherStyles}\n />\n )}\n {focusCatch && (\n <div\n tabIndex='0'\n ref={handleFocusCatchRef}\n onFocus={handleFocusCatchFocus}\n onBlur={handleFocusCatchBlur}\n style={focusCatcherStyles}\n />\n )}\n </>\n );\n}\n\nfunction PopperPopper(props) {\n const SPopper = Root;\n const {\n Children,\n styles,\n visible,\n disablePortal,\n ignorePortalsStacking,\n disableEnforceFocus,\n triggerRef,\n interaction,\n autoFocus,\n controlsLength,\n duration,\n animationsDisabled,\n popper,\n focusableTriggerReturnFocusToRef,\n focusMaster = false,\n } = props;\n const ref = React.useRef(null);\n\n // https://github.com/facebook/react/issues/11387\n const stopPropagation = React.useCallback((event) => event.stopPropagation(), []);\n\n useFocusLock(\n ref,\n autoFocus,\n interaction === 'focus' || interaction === 'hover'\n ? focusableTriggerReturnFocusToRef\n : triggerRef,\n !visible || disableEnforceFocus,\n focusMaster,\n );\n\n useContextTheme(ref, visible);\n\n const updatePopperEveryFrame = useUpdatePopperEveryFrame(popper);\n const handleAnimationStart = React.useCallback(\n (duration) => {\n if (duration > 0) {\n updatePopperEveryFrame(Date.now() + Math.min(duration, 2000));\n }\n },\n [updatePopperEveryFrame],\n );\n const handleAnimationEnd = React.useCallback(() => {\n popper.current?.update();\n }, []);\n const animationCtx = React.useContext(animationContext);\n React.useEffect(() => {\n if (!ignorePortalsStacking) return;\n if (!animationCtx) return;\n const unsubscribeAnimationStart = animationCtx.onAnimationStart(handleAnimationStart);\n const unsubscribeAnimationEnd = animationCtx.onAnimationEnd(handleAnimationEnd);\n return () => {\n unsubscribeAnimationStart();\n unsubscribeAnimationEnd();\n };\n }, [animationCtx, ignorePortalsStacking]);\n\n return sstyled(styles)(\n <Portal disablePortal={disablePortal} ignorePortalsStacking={ignorePortalsStacking}>\n <NeighborLocation controlsLength={controlsLength}>\n <SPopper\n render={Scale}\n animationsDisabled={animationsDisabled}\n visible={visible}\n duration={[duration, duration / 2]}\n ref={ref}\n onClick={stopPropagation}\n onContextMenu={stopPropagation}\n onDoubleClick={stopPropagation}\n onDrag={stopPropagation}\n onDragEnd={stopPropagation}\n onDragEnter={stopPropagation}\n onDragExit={stopPropagation}\n onDragLeave={stopPropagation}\n onDragOver={stopPropagation}\n onDragStart={stopPropagation}\n onDrop={stopPropagation}\n onMouseDown={stopPropagation}\n onMouseMove={stopPropagation}\n onMouseOver={stopPropagation}\n onMouseOut={stopPropagation}\n onMouseUp={stopPropagation}\n onKeyDown={stopPropagation}\n onKeyPress={stopPropagation}\n onKeyUp={stopPropagation}\n onFocus={stopPropagation}\n onBlur={stopPropagation}\n onChange={stopPropagation}\n onInput={stopPropagation}\n onInvalid={stopPropagation}\n onReset={stopPropagation}\n onSubmit={stopPropagation}\n >\n <PortalProvider value={ref}>\n <Children />\n </PortalProvider>\n </SPopper>\n </NeighborLocation>\n </Portal>,\n );\n}\n\nPopperPopper.enhance = [keyboardFocusEnhance()];\n\nexport default createComponent(Popper, {\n Trigger,\n Popper: PopperPopper,\n});\n"],"mappings":"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"}
1
+ {"version":3,"file":"Popper.js","names":["_core","_interopRequireWildcard","require","_react","_interopRequireDefault","_canUseDOM","_flexBox","_outsideClick","_portal","_neighborLocation","_ref5","_useFocusLock","_assignProps3","_pick","_uniqueID","_animation","_useCssVariable","_ThemeProvider","_ScreenReaderOnly","_keyboardFocusEnhance","_hasParent","_createPopper2","_excluded","_excluded2","_excluded3","style","sstyled","insert","isObject","obj","_typeof2","Array","isArray","someArray","arr1","arr2","filter","i","indexOf","useUpdatePopperEveryFrame","popperRef","nextAnimationFrameRef","React","useRef","handleAnimationFrame","useCallback","until","_popperRef$current","Date","now","current","update","requestAnimationFrame","useEffect","cancelAnimationFrame","MODIFIERS_OPTIONS","Popper","_Component","_inherits2","_super","_createSuper2","props","_this","_classCallCheck2","call","_defineProperty2","_assertThisInitialized2","click","trigger","popper","hover","focus","none","createRef","ignoreTriggerFocusUntil","ref","triggerRef","setRef","createPopper","_this$asProps","asProps","placement","modifiers","strategy","onFirstUpdate","other","_objectWithoutProperties2","optionsModifiers","pick","modifiersFallback","offset","modifiersOptions","name","undefined","map","options","push","gpuAcceleration","modifiersMerge","concat","_toConsumableArray2","callAllEventHandlers","_this$observer","_this$observer2","observer","observe","e","visible","key","stopPropagation","bindHandlerChangeVisibleWithTimer","onKeyDown","handlerKeyDown","component","action","focusAction","includes","state","currentTarget","handlerChangeVisibleWithTimer","clearTimeout","timerMultiTrigger","setTimeout","elements","reference","setOptions","ignoringDuration","setState","cb","_this$asProps2","timeout","disabled","handlers","timeoutConfig","latency","timer","event","focusLoop","hasParent","target","canUseDOM","ResizeObserver","_this$popper$current","_createClass2","value","uncontrolledProps","__disablePopper","getPopperOptions","componentDidUpdate","prevProps","_this2","popperProps","some","propName","destroyPopper","_this$observer3","disconnect","destroy","handlersFromInteraction","interaction","_this3","eventInteraction","eventsInteractionMap","_eventInteraction$com","_slicedToArray2","_eventInteraction$com2","showEvents","_eventInteraction$com3","hideEvents","crossEvents","forEach","getTriggerProps","_this$asProps3","disableEnforceFocus","_this$handlersFromInt","interactionProps","_objectSpread2","createTriggerRef","active","bindHandlerKeyDown","onBlur","handleTriggerBlur","getPopperProps","_this$asProps4","disablePortal","duration","animationsDisabled","_this$handlersFromInt2","createPopperRef","handleFocusOut","handlePopperFocusOut","setContext","setTrigger","setPopper","componentWillUnmount","render","_this$asProps5","Children","root","onOutsideClick","excludeRefs","createElement","Fragment","Component","defaultVisible","arrow","padding","uniqueIDEnhancement","cssVariableEnhance","variable","fallback","Number","parseInt","prop","Trigger","_ref","arguments[0]","STrigger","Box","SFocusHint","focusHint","onKeyboardFocus","highlighted","focusSourceRef","useFocusSource","handleFocus","activeRef","isFocusInside","document","activeElement","body","setFocus","assignProps","ScreenReaderOnly","PopperPopper","_ref2","_ref3","SPopper","Scale","styles","ignorePortalsStacking","autoFocus","controlsLength","_props$focusMaster","focusMaster","useFocusLock","useContextTheme","updatePopperEveryFrame","handleAnimationStart","Math","min","handleAnimationEnd","_popper$current","animationCtx","useContext","animationContext","unsubscribeAnimationStart","onAnimationStart","unsubscribeAnimationEnd","onAnimationEnd","cn","PortalProvider","enhance","keyboardFocusEnhance","_default","createComponent","exports"],"sources":["../../src/Popper.jsx"],"sourcesContent":["import React from 'react';\n\nimport canUseDOM from '@semcore/utils/lib/canUseDOM';\nimport createComponent, { Component, sstyled, Root } from '@semcore/core';\nimport { Box } from '@semcore/flex-box';\nimport OutsideClick from '@semcore/outside-click';\nimport Portal, { PortalProvider } from '@semcore/portal';\nimport NeighborLocation from '@semcore/neighbor-location';\nimport { setRef } from '@semcore/utils/lib/ref';\nimport { useFocusLock, isFocusInside, setFocus } from '@semcore/utils/lib/use/useFocusLock';\nimport { callAllEventHandlers } from '@semcore/utils/lib/assignProps';\nimport pick from '@semcore/utils/lib/pick';\nimport uniqueIDEnhancement from '@semcore/utils/lib/uniqueID';\nimport { Scale, animationContext } from '@semcore/animation';\nimport { cssVariableEnhance } from '@semcore/utils/lib/useCssVariable';\nimport { useContextTheme } from '@semcore/utils/lib/ThemeProvider';\nimport { ScreenReaderOnly } from '@semcore/utils/lib/ScreenReaderOnly';\nimport keyboardFocusEnhance, {\n useFocusSource,\n} from '@semcore/utils/lib/enhances/keyboardFocusEnhance';\nimport { hasParent } from '@semcore/utils/lib/hasParent';\n\nimport createPopper from './createPopper';\n\nimport style from './style/popper.shadow.css';\n\nfunction isObject(obj) {\n return typeof obj === 'object' && !Array.isArray(obj);\n}\n\nfunction someArray(arr1, arr2) {\n return arr1.filter(function (i) {\n return arr2.indexOf(i) !== -1;\n });\n}\n\nconst useUpdatePopperEveryFrame = (popperRef) => {\n const nextAnimationFrameRef = React.useRef(-1);\n const handleAnimationFrame = React.useCallback((until) => {\n if (until < Date.now()) return;\n popperRef.current?.update();\n nextAnimationFrameRef.current = requestAnimationFrame(() => handleAnimationFrame(until));\n }, []);\n React.useEffect(() => () => cancelAnimationFrame(nextAnimationFrameRef.current), []);\n return handleAnimationFrame;\n};\n\nconst MODIFIERS_OPTIONS = [\n 'offset',\n 'preventOverflow',\n 'arrow',\n 'flip',\n 'computeStyles',\n 'eventListeners',\n];\n\nclass Popper extends Component {\n static displayName = 'Popper';\n\n static style = style;\n\n static defaultProps = {\n defaultVisible: false,\n placement: 'auto',\n modifiers: [],\n arrow: {\n padding: 6,\n },\n strategy: 'absolute',\n interaction: 'click',\n timeout: 0,\n excludeRefs: [],\n focusLoop: true,\n };\n\n static enhance = [\n uniqueIDEnhancement(),\n cssVariableEnhance({\n variable: '--intergalactic-duration-popper',\n fallback: '200',\n map: Number.parseInt,\n prop: 'duration',\n }),\n ];\n\n eventsInteractionMap = {\n click: {\n trigger: [['onClick'], ['onClick']],\n popper: [],\n },\n hover: {\n trigger: [\n ['onMouseEnter', 'onKeyboardFocus'],\n ['onMouseLeave', 'onBlur'],\n ],\n popper: [['onMouseEnter', 'onFocusCapture'], ['onMouseLeave']],\n },\n focus: {\n trigger: [['onFocus'], ['onBlur']],\n // to intercept faster than onBlur on the trigger\n popper: [['onFocusCapture'], ['onBlur']],\n },\n none: {\n trigger: [],\n popper: [],\n },\n };\n\n // timer: ReturnType<typeof setTimeout>;\n // observer: ResizeObserver;\n triggerRef = React.createRef();\n popperRef = React.createRef();\n popper = React.createRef();\n\n constructor(props) {\n super(props);\n if (canUseDOM()) {\n this.observer = new ResizeObserver(() => {\n requestAnimationFrame(() => {\n this.popper.current?.update();\n });\n });\n }\n }\n\n uncontrolledProps() {\n return {\n visible: null,\n };\n }\n\n state = { ignoreTriggerFocusUntil: 0 };\n\n createTriggerRef = (ref) => {\n if (ref && this.triggerRef.current !== ref) {\n setRef(this.triggerRef, ref);\n this.createPopper();\n }\n };\n\n createPopperRef = (ref) => {\n if (ref && this.popperRef.current !== ref) {\n setRef(this.popperRef, ref);\n this.createPopper();\n }\n };\n\n getPopperOptions = () => {\n const { placement, modifiers, strategy, onFirstUpdate, ...other } = this.asProps;\n const optionsModifiers = pick(other, MODIFIERS_OPTIONS);\n const modifiersFallback = [];\n\n if (typeof optionsModifiers.offset === 'number') {\n optionsModifiers.offset = [0, optionsModifiers.offset];\n }\n const modifiersOptions = MODIFIERS_OPTIONS.filter(\n (name) => optionsModifiers[name] !== undefined,\n ).map((name) => ({\n name,\n options: isObject(optionsModifiers[name])\n ? optionsModifiers[name]\n : { [name]: optionsModifiers[name] },\n }));\n\n modifiersOptions.push({\n name: 'computeStyles',\n options: { gpuAcceleration: false },\n });\n\n const modifiersMerge = [...modifiersFallback, ...modifiersOptions].concat(modifiers);\n\n return {\n placement,\n strategy,\n onFirstUpdate: callAllEventHandlers(onFirstUpdate, () => {\n this.observer?.observe(this.triggerRef.current);\n this.observer?.observe(this.popperRef.current);\n }),\n modifiers: modifiersMerge,\n };\n };\n\n createPopper() {\n if (!this.triggerRef.current || !this.popperRef.current) return;\n if (this.asProps.__disablePopper) return;\n\n this.popper.current = createPopper(\n this.triggerRef.current,\n this.popperRef.current,\n this.getPopperOptions(),\n );\n }\n\n componentDidUpdate(prevProps) {\n const popperProps = [\n 'strategy',\n 'placement',\n 'offset',\n 'preventOverflow',\n 'arrow',\n 'flip',\n 'computeStyles',\n 'eventListeners',\n 'onFirstUpdate',\n ];\n if (\n this.popper.current &&\n popperProps.some((propName) => prevProps[propName] !== this.asProps[propName])\n ) {\n this.popper.current.setOptions(this.getPopperOptions());\n }\n }\n\n destroyPopper() {\n clearTimeout(this.timer);\n clearTimeout(this.timerMultiTrigger);\n\n this.observer?.disconnect();\n\n if (this.popper.current) {\n this.popper.current.destroy();\n this.popper.current = null;\n }\n }\n\n handlersFromInteraction(interaction, component, visible) {\n const eventInteraction =\n typeof interaction === 'string' ? this.eventsInteractionMap[interaction] : interaction;\n\n const [showEvents = [], hideEvents = []] = eventInteraction[component];\n const crossEvents = someArray(showEvents, hideEvents);\n const handlers = {};\n\n showEvents.forEach((action) => {\n handlers[action] = this.bindHandlerChangeVisibleWithTimer(true, component, action);\n });\n hideEvents.forEach((action) => {\n handlers[action] = this.bindHandlerChangeVisibleWithTimer(false, component, action);\n });\n crossEvents.forEach((action) => {\n handlers[action] = visible\n ? this.bindHandlerChangeVisibleWithTimer(false, component, action)\n : this.bindHandlerChangeVisibleWithTimer(true, component, action);\n });\n return handlers;\n }\n\n handlerKeyDown = (e) => {\n const { visible } = this.asProps;\n if (visible && e.key === 'Escape') {\n e.stopPropagation();\n\n this.bindHandlerChangeVisibleWithTimer(false)(e);\n }\n };\n bindHandlerKeyDown = (onKeyDown) => callAllEventHandlers(onKeyDown, this.handlerKeyDown);\n\n bindHandlerChangeVisibleWithTimer = (visible, component, action) => (e) => {\n const now = Date.now();\n const focusAction = ['onFocus', 'onKeyboardFocus', 'onFocusCapture'].includes(action);\n if (\n now < this.state.ignoreTriggerFocusUntil &&\n visible &&\n component === 'trigger' &&\n focusAction\n ) {\n return;\n }\n const currentTarget = e?.currentTarget;\n this.handlerChangeVisibleWithTimer(visible, e, () => {\n clearTimeout(this.timerMultiTrigger);\n // instance popper is not here yet because the popperRef did not have time to come\n this.timerMultiTrigger = setTimeout(() => {\n if (visible && component === 'trigger' && this.popper.current && currentTarget) {\n if (this.popper.current.state.elements.reference !== currentTarget) {\n this.popper.current.state.elements.reference = currentTarget;\n // for update\n this.popper.current.setOptions({});\n }\n }\n }, 0);\n });\n const ignoringDuration = 2000;\n if (!visible) {\n this.setState({\n ignoreTriggerFocusUntil: now + ignoringDuration,\n });\n } else if (now < this.state.ignoreTriggerFocusUntil + ignoringDuration) {\n this.setState({\n ignoreTriggerFocusUntil: 0,\n });\n }\n };\n\n handlerChangeVisibleWithTimer = (visible, e, cb) => {\n const { timeout, disabled } = this.asProps;\n if (typeof disabled === 'boolean' && disabled && visible) return;\n const handlers = this.handlers;\n\n const timeoutConfig = typeof timeout === 'number' ? [timeout, timeout] : timeout;\n const latency = visible ? timeoutConfig[0] : timeoutConfig[1];\n clearTimeout(this.timer);\n this.timer = setTimeout(() => {\n handlers.visible(visible, e);\n cb();\n }, latency);\n };\n\n getTriggerProps() {\n const { visible, interaction, disableEnforceFocus } = this.asProps;\n // @ts-ignore\n const { onKeyDown, ...interactionProps } = this.handlersFromInteraction(\n interaction,\n 'trigger',\n visible,\n );\n return {\n ref: this.createTriggerRef,\n active: visible,\n interaction,\n ...interactionProps,\n onKeyDown: this.bindHandlerKeyDown(onKeyDown),\n disableEnforceFocus,\n popperRef: this.popperRef,\n onBlur: callAllEventHandlers(this.handleTriggerBlur, interactionProps.onBlur),\n };\n }\n\n handleTriggerBlur = () => {\n setTimeout(() => {\n this.setState({ ignoreTriggerFocusUntil: 0 });\n }, 0);\n };\n\n getPopperProps() {\n const {\n visible,\n disablePortal,\n interaction,\n placement,\n duration,\n animationsDisabled,\n disableEnforceFocus,\n } = this.asProps;\n // @ts-ignore\n const { onKeyDown, ...interactionProps } = this.handlersFromInteraction(\n interaction,\n 'popper',\n visible,\n );\n\n return {\n ref: this.createPopperRef,\n triggerRef: this.triggerRef,\n visible,\n interaction,\n disablePortal,\n ...interactionProps,\n onKeyDown: this.bindHandlerKeyDown(onKeyDown),\n placement,\n duration,\n animationsDisabled,\n popper: this.popper,\n disableEnforceFocus,\n handleFocusOut: this.handlePopperFocusOut,\n };\n }\n\n handlePopperFocusOut = (event) => {\n if (this.asProps.focusLoop) return;\n if (hasParent(event.target, this.triggerRef.current)) return;\n\n this.bindHandlerChangeVisibleWithTimer(false, 'popper', 'onBlur')(event);\n };\n\n setContext() {\n return {\n popper: this.popper,\n setTrigger: this.createTriggerRef,\n setPopper: this.createPopperRef,\n };\n }\n\n componentWillUnmount() {\n this.destroyPopper();\n }\n\n render() {\n const { Children, visible, root, onOutsideClick, excludeRefs } = this.asProps;\n return (\n <>\n {visible ? (\n <OutsideClick\n root={root}\n excludeRefs={[this.triggerRef, this.popperRef, ...excludeRefs]}\n onOutsideClick={callAllEventHandlers(\n onOutsideClick,\n this.bindHandlerChangeVisibleWithTimer(false),\n )}\n />\n ) : null}\n <Children />\n </>\n );\n }\n}\n\nfunction Trigger(props) {\n const STrigger = Root;\n const SFocusHint = 'span';\n const { Children, focusHint, onKeyboardFocus, highlighted, active, popperRef } = props;\n\n const triggerRef = React.useRef();\n\n React.useEffect(() => {\n if (highlighted === true) {\n onKeyboardFocus({ currentTarget: triggerRef.current });\n }\n }, [highlighted]);\n\n const focusSourceRef = useFocusSource();\n const handleFocus = React.useCallback(() => {\n if (focusSourceRef.current !== 'keyboard') return;\n onKeyboardFocus?.();\n }, [onKeyboardFocus]);\n\n const activeRef = React.useRef(active);\n activeRef.current = active;\n React.useEffect(() => {\n if (!active) return;\n if (!popperRef.current) return;\n return () => {\n setTimeout(() => {\n if (activeRef.current) return;\n if (!isFocusInside(popperRef.current) && document.activeElement !== document.body) return;\n\n setFocus(triggerRef.current);\n }, 1);\n };\n }, [active]);\n\n return (\n <>\n <STrigger\n render={Box}\n inline\n role='button'\n aria-haspopup={true}\n ref={triggerRef}\n onFocus={handleFocus}\n onBlur={props.onBlur}\n >\n <Children />\n </STrigger>\n {focusHint && false && (\n <SFocusHint aria-live='polite'>\n <ScreenReaderOnly>{focusHint}</ScreenReaderOnly>\n </SFocusHint>\n )}\n </>\n );\n}\n\nfunction PopperPopper(props) {\n const SPopper = Root;\n const {\n Children,\n styles,\n visible,\n disablePortal,\n ignorePortalsStacking,\n disableEnforceFocus,\n triggerRef,\n autoFocus,\n controlsLength,\n duration,\n animationsDisabled,\n popper,\n focusMaster = false,\n handleFocusOut,\n } = props;\n const ref = React.useRef(null);\n\n // https://github.com/facebook/react/issues/11387\n const stopPropagation = React.useCallback((event) => event.stopPropagation(), []);\n\n useFocusLock(\n ref,\n autoFocus,\n triggerRef,\n !visible || disableEnforceFocus,\n focusMaster,\n handleFocusOut,\n );\n\n useContextTheme(ref, visible);\n\n const updatePopperEveryFrame = useUpdatePopperEveryFrame(popper);\n const handleAnimationStart = React.useCallback(\n (duration) => {\n if (duration > 0) {\n updatePopperEveryFrame(Date.now() + Math.min(duration, 2000));\n }\n },\n [updatePopperEveryFrame],\n );\n const handleAnimationEnd = React.useCallback(() => {\n popper.current?.update();\n }, []);\n const animationCtx = React.useContext(animationContext);\n React.useEffect(() => {\n if (!ignorePortalsStacking) return;\n if (!animationCtx) return;\n const unsubscribeAnimationStart = animationCtx.onAnimationStart(handleAnimationStart);\n const unsubscribeAnimationEnd = animationCtx.onAnimationEnd(handleAnimationEnd);\n return () => {\n unsubscribeAnimationStart();\n unsubscribeAnimationEnd();\n };\n }, [animationCtx, ignorePortalsStacking]);\n\n return sstyled(styles)(\n <Portal disablePortal={disablePortal} ignorePortalsStacking={ignorePortalsStacking}>\n <NeighborLocation controlsLength={controlsLength}>\n <SPopper\n render={Scale}\n animationsDisabled={animationsDisabled}\n visible={visible}\n duration={[duration, duration / 2]}\n ref={ref}\n onClick={stopPropagation}\n onContextMenu={stopPropagation}\n onDoubleClick={stopPropagation}\n onDrag={stopPropagation}\n onDragEnd={stopPropagation}\n onDragEnter={stopPropagation}\n onDragExit={stopPropagation}\n onDragLeave={stopPropagation}\n onDragOver={stopPropagation}\n onDragStart={stopPropagation}\n onDrop={stopPropagation}\n onMouseDown={stopPropagation}\n onMouseMove={stopPropagation}\n onMouseOver={stopPropagation}\n onMouseOut={stopPropagation}\n onMouseUp={stopPropagation}\n onKeyDown={stopPropagation}\n onKeyPress={stopPropagation}\n onKeyUp={stopPropagation}\n onFocus={stopPropagation}\n onBlur={stopPropagation}\n onChange={stopPropagation}\n onInput={stopPropagation}\n onInvalid={stopPropagation}\n onReset={stopPropagation}\n onSubmit={stopPropagation}\n >\n <PortalProvider value={ref}>\n <Children />\n </PortalProvider>\n </SPopper>\n </NeighborLocation>\n </Portal>,\n );\n}\n\nPopperPopper.enhance = [keyboardFocusEnhance()];\n\nexport default createComponent(Popper, {\n Trigger,\n Popper: PopperPopper,\n});\n"],"mappings":"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"}