intergalactic 15.43.1-prerelease-92fc7334 → 15.44.0-prerelease-33e73bc5

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 (55) hide show
  1. package/CHANGELOG.md +9 -1
  2. package/d3-chart/lib/cjs/Area.js +9 -9
  3. package/d3-chart/lib/cjs/Axis.js +14 -14
  4. package/d3-chart/lib/cjs/Bar.js +8 -8
  5. package/d3-chart/lib/cjs/Bubble.js +10 -10
  6. package/d3-chart/lib/cjs/Donut.js +7 -7
  7. package/d3-chart/lib/cjs/Dots.js +8 -8
  8. package/d3-chart/lib/cjs/HorizontalBar.js +8 -8
  9. package/d3-chart/lib/cjs/Hover.js +3 -3
  10. package/d3-chart/lib/cjs/Line.js +9 -9
  11. package/d3-chart/lib/cjs/Plot.js +3 -3
  12. package/d3-chart/lib/cjs/Radar.js +17 -17
  13. package/d3-chart/lib/cjs/RadialTree.js +10 -10
  14. package/d3-chart/lib/cjs/ReferenceLine.js +9 -9
  15. package/d3-chart/lib/cjs/ScatterPlot.js +7 -7
  16. package/d3-chart/lib/cjs/Tooltip.js +8 -8
  17. package/d3-chart/lib/cjs/Venn.js +7 -7
  18. package/d3-chart/lib/cjs/a11y/PlotA11yModule.js +2 -2
  19. package/d3-chart/lib/cjs/a11y/PlotA11yView.js +2 -2
  20. package/d3-chart/lib/cjs/component/ChartLegend/LegendFlex/LegendFlex.js +4 -4
  21. package/d3-chart/lib/cjs/component/ChartLegend/LegendItem/LegendItem.js +15 -15
  22. package/d3-chart/lib/cjs/component/ChartLegend/LegendTable/LegendTable.js +6 -6
  23. package/d3-chart/lib/es6/Area.js +9 -9
  24. package/d3-chart/lib/es6/Axis.js +14 -14
  25. package/d3-chart/lib/es6/Bar.js +8 -8
  26. package/d3-chart/lib/es6/Bubble.js +10 -10
  27. package/d3-chart/lib/es6/Donut.js +7 -7
  28. package/d3-chart/lib/es6/Dots.js +8 -8
  29. package/d3-chart/lib/es6/HorizontalBar.js +8 -8
  30. package/d3-chart/lib/es6/Hover.js +3 -3
  31. package/d3-chart/lib/es6/Line.js +9 -9
  32. package/d3-chart/lib/es6/Plot.js +3 -3
  33. package/d3-chart/lib/es6/Radar.js +17 -17
  34. package/d3-chart/lib/es6/RadialTree.js +10 -10
  35. package/d3-chart/lib/es6/ReferenceLine.js +9 -9
  36. package/d3-chart/lib/es6/ScatterPlot.js +7 -7
  37. package/d3-chart/lib/es6/Tooltip.js +8 -8
  38. package/d3-chart/lib/es6/Venn.js +7 -7
  39. package/d3-chart/lib/es6/a11y/PlotA11yModule.js +2 -2
  40. package/d3-chart/lib/es6/a11y/PlotA11yView.js +2 -2
  41. package/d3-chart/lib/es6/component/ChartLegend/LegendFlex/LegendFlex.js +4 -4
  42. package/d3-chart/lib/es6/component/ChartLegend/LegendItem/LegendItem.js +15 -15
  43. package/d3-chart/lib/es6/component/ChartLegend/LegendTable/LegendTable.js +6 -6
  44. package/package.json +1 -1
  45. package/pills/lib/cjs/Pills.js +17 -17
  46. package/pills/lib/es6/Pills.js +17 -17
  47. package/popper/lib/cjs/Popper.js +47 -14
  48. package/popper/lib/cjs/Popper.js.map +1 -1
  49. package/popper/lib/es6/Popper.js +48 -15
  50. package/popper/lib/es6/Popper.js.map +1 -1
  51. package/utils/lib/enhances/keyboardFocusEnhance.d.ts +1 -0
  52. package/utils/lib/enhances/keyboardFocusEnhance.js +5 -2
  53. package/utils/lib/enhances/keyboardFocusEnhance.js.map +1 -1
  54. package/utils/lib/enhances/keyboardFocusEnhance.mjs +3 -1
  55. package/utils/lib/enhances/keyboardFocusEnhance.mjs.map +1 -1
@@ -33,7 +33,7 @@ import { Scale, animationContext } from 'intergalactic/animation';
33
33
  import { cssVariableEnhance } from 'intergalactic/utils/lib/useCssVariable';
34
34
  import { useContextTheme } from 'intergalactic/utils/lib/ThemeProvider';
35
35
  import { ScreenReaderOnly } from 'intergalactic/utils/lib/ScreenReaderOnly';
36
- import keyboardFocusEnhance, { useFocusSource } from 'intergalactic/utils/lib/enhances/keyboardFocusEnhance';
36
+ import keyboardFocusEnhance, { useFocusSource, enforcedKeyboardFocusEnhanceContext } from 'intergalactic/utils/lib/enhances/keyboardFocusEnhance';
37
37
  import _createPopper from './createPopper';
38
38
  /*__reshadow-styles__:"./style/popper.shadow.css"*/
39
39
  var style = ( /*__reshadow_css_start__*/_sstyled.insert( /*__inner_css_start__*/".___SPopper_odpql_gg_{outline:0;z-index:var(--intergalactic-z-index-popper, 700);color:var(--intergalactic-text-primary, #191b23)}.___SPopper_odpql_gg_.__keyboardFocused_odpql_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_odpql_gg_.__keyboardFocused_odpql_gg_.__hideFocus_odpql_gg_:focus:after{box-shadow:none}.___SFocusHint_odpql_gg_{display:none}.___STrigger_odpql_gg_:focus .___SFocusHint_odpql_gg_,.___STrigger_odpql_gg_:focus-within .___SFocusHint_odpql_gg_{display:inline}" /*__inner_css_end__*/, "odpql_gg_") /*__reshadow_css_end__*/, {
@@ -379,10 +379,14 @@ var getElementNestingIndexes = function getElementNestingIndexes(element) {
379
379
  return [].concat(_toConsumableArray(getElementNestingIndexes(element.parentElement, chain)), [index]);
380
380
  };
381
381
  var useReturnFocusEl = function useReturnFocusEl(interaction, onKeyboardFocus, disable) {
382
- var _React$useState = React.useState(null),
382
+ var _React$useState = React.useState(false),
383
383
  _React$useState2 = _slicedToArray(_React$useState, 2),
384
- returnFocusEl = _React$useState2[0],
385
- setReturnFocusEl = _React$useState2[1];
384
+ keyboardFocused = _React$useState2[0],
385
+ setKeyboardFocused = _React$useState2[1];
386
+ var _React$useState3 = React.useState(null),
387
+ _React$useState4 = _slicedToArray(_React$useState3, 2),
388
+ returnFocusEl = _React$useState4[0],
389
+ setReturnFocusEl = _React$useState4[1];
386
390
  var focusSourceRef = useFocusSource();
387
391
  var handleFocus = React.useCallback(function (event) {
388
392
  if (focusSourceRef.current !== 'keyboard') return;
@@ -407,26 +411,43 @@ var useReturnFocusEl = function useReturnFocusEl(interaction, onKeyboardFocus, d
407
411
  }
408
412
  setReturnFocusEl('after'); // <input id="focus1" /> <input id="focus2" />
409
413
  }, [interaction, onKeyboardFocus, disable]);
414
+ var handleFocusReturnElFocus = React.useCallback(function () {
415
+ if (focusSourceRef.current !== 'keyboard') return;
416
+ setKeyboardFocused(true);
417
+ }, []);
410
418
  var handleFocusReturnElBlur = React.useCallback(function () {
411
419
  setTimeout(function () {
412
420
  return setReturnFocusEl(null);
413
421
  }, 0);
422
+ setKeyboardFocused(false);
414
423
  }, []);
415
424
  return {
416
425
  returnFocusEl: returnFocusEl,
417
426
  handleFocus: handleFocus,
418
- handleFocusReturnElBlur: handleFocusReturnElBlur
427
+ handleFocusReturnElFocus: handleFocusReturnElFocus,
428
+ handleFocusReturnElBlur: handleFocusReturnElBlur,
429
+ keyboardFocused: keyboardFocused
419
430
  };
420
431
  };
421
432
  var useFocusCatch = function useFocusCatch(active, popperRef) {
422
433
  var activeRef = React.useRef(active);
423
434
  activeRef.current = active;
424
- var _React$useState3 = React.useState(false),
425
- _React$useState4 = _slicedToArray(_React$useState3, 2),
426
- focusCatch = _React$useState4[0],
427
- setFocusCatch = _React$useState4[1];
435
+ var _React$useState5 = React.useState(false),
436
+ _React$useState6 = _slicedToArray(_React$useState5, 2),
437
+ keyboardFocused = _React$useState6[0],
438
+ setKeyboardFocused = _React$useState6[1];
439
+ var _React$useState7 = React.useState(false),
440
+ _React$useState8 = _slicedToArray(_React$useState7, 2),
441
+ focusCatch = _React$useState8[0],
442
+ setFocusCatch = _React$useState8[1];
443
+ var focusSourceRef = useFocusSource();
444
+ var handleFocusCatchFocus = React.useCallback(function () {
445
+ if (focusSourceRef.current !== 'keyboard') return;
446
+ setKeyboardFocused(true);
447
+ }, []);
428
448
  var handleFocusCatchBlur = React.useCallback(function () {
429
- return setFocusCatch(false);
449
+ setFocusCatch(false);
450
+ setKeyboardFocused(false);
430
451
  }, []);
431
452
  var handleFocusCatchRef = React.useCallback(function (node) {
432
453
  if (activeRef.current) return setFocusCatch(false);
@@ -446,8 +467,10 @@ var useFocusCatch = function useFocusCatch(active, popperRef) {
446
467
  }, [active]);
447
468
  return {
448
469
  focusCatch: focusCatch,
470
+ handleFocusCatchFocus: handleFocusCatchFocus,
449
471
  handleFocusCatchBlur: handleFocusCatchBlur,
450
- handleFocusCatchRef: handleFocusCatchRef
472
+ handleFocusCatchRef: handleFocusCatchRef,
473
+ keyboardFocused: keyboardFocused
451
474
  };
452
475
  };
453
476
  var focusCatcherStyles = {
@@ -470,11 +493,16 @@ function Trigger(props) {
470
493
  var _useReturnFocusEl = useReturnFocusEl(interaction, onKeyboardFocus, disableEnforceFocus),
471
494
  returnFocusEl = _useReturnFocusEl.returnFocusEl,
472
495
  handleFocusReturnElBlur = _useReturnFocusEl.handleFocusReturnElBlur,
473
- handleFocus = _useReturnFocusEl.handleFocus;
496
+ handleFocus = _useReturnFocusEl.handleFocus,
497
+ returnElKeyboardFocused = _useReturnFocusEl.keyboardFocused;
474
498
  var _useFocusCatch = useFocusCatch(active, popperRef),
475
499
  focusCatch = _useFocusCatch.focusCatch,
500
+ handleFocusReturnElFocus = _useFocusCatch.handleFocusReturnElFocus,
501
+ handleFocusCatchFocus = _useFocusCatch.handleFocusCatchFocus,
476
502
  handleFocusCatchBlur = _useFocusCatch.handleFocusCatchBlur,
477
- handleFocusCatchRef = _useFocusCatch.handleFocusCatchRef;
503
+ handleFocusCatchRef = _useFocusCatch.handleFocusCatchRef,
504
+ focusCatchKeyboardFocused = _useFocusCatch.keyboardFocused;
505
+ var enforceKeyboardFocused = returnElKeyboardFocused || focusCatchKeyboardFocused;
478
506
  React.useEffect(function () {
479
507
  if (highlighted === true) {
480
508
  onKeyboardFocus({
@@ -486,23 +514,28 @@ function Trigger(props) {
486
514
  tabIndex: "0",
487
515
  ref: focusableTriggerReturnFocusToRef,
488
516
  onBlur: handleFocusReturnElBlur,
517
+ onFocus: handleFocusReturnElFocus,
489
518
  style: focusCatcherStyles
490
- }), /*#__PURE__*/React.createElement(STrigger, _assignProps({
519
+ }), /*#__PURE__*/React.createElement(enforcedKeyboardFocusEnhanceContext.Provider, {
520
+ value: enforceKeyboardFocused
521
+ }, /*#__PURE__*/React.createElement(STrigger, _assignProps({
491
522
  "inline": true,
492
523
  "role": 'button',
493
524
  "aria-haspopup": true,
494
525
  "onFocus": handleFocus,
495
526
  "ref": triggerRef
496
- }, _ref), /*#__PURE__*/React.createElement(Children, null)), focusHint && false && /*#__PURE__*/React.createElement(SFocusHint, {
527
+ }, _ref), /*#__PURE__*/React.createElement(Children, null))), focusHint && false && /*#__PURE__*/React.createElement(SFocusHint, {
497
528
  "aria-live": "polite"
498
529
  }, /*#__PURE__*/React.createElement(ScreenReaderOnly, null, focusHint)), returnFocusEl === 'after' && /*#__PURE__*/React.createElement("div", {
499
530
  tabIndex: "0",
500
531
  ref: focusableTriggerReturnFocusToRef,
501
532
  onBlur: handleFocusReturnElBlur,
533
+ onFocus: handleFocusReturnElFocus,
502
534
  style: focusCatcherStyles
503
535
  }), focusCatch && /*#__PURE__*/React.createElement("div", {
504
536
  tabIndex: "0",
505
537
  ref: handleFocusCatchRef,
538
+ onFocus: handleFocusCatchFocus,
506
539
  onBlur: handleFocusCatchBlur,
507
540
  style: focusCatcherStyles
508
541
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"Popper.js","names":["React","canUseDOM","createComponent","Component","sstyled","Root","Box","OutsideClick","Portal","PortalProvider","NeighborLocation","setRef","useFocusLock","isFocusInside","callAllEventHandlers","pick","logger","uniqueIDEnhancement","Scale","animationContext","cssVariableEnhance","useContextTheme","ScreenReaderOnly","keyboardFocusEnhance","useFocusSource","createPopper","style","_sstyled","insert","isObject","obj","_typeof","Array","isArray","someArray","arr1","arr2","filter","i","indexOf","useUpdatePopperEveryFrame","popperRef","nextAnimationFrameRef","useRef","handleAnimationFrame","useCallback","until","_popperRef$current","Date","now","current","update","requestAnimationFrame","useEffect","cancelAnimationFrame","MODIFIERS_OPTIONS","Popper","_Component","_inherits","_super","_createSuper","props","_this","_classCallCheck","call","_defineProperty","_assertThisInitialized","click","trigger","popper","hover","focus","none","createRef","ref","triggerRef","_this$asProps","asProps","placement","modifiers","strategy","onFirstUpdate","other","_objectWithoutProperties","_excluded","optionsModifiers","modifiersFallback","offset","modifiersOptions","name","undefined","map","options","push","gpuAcceleration","modifiersMerge","concat","_toConsumableArray","_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","ResizeObserver","_this$popper$current","_createClass","value","uncontrolledProps","__disablePopper","getPopperOptions","componentDidUpdate","prevProps","_this2","popperProps","some","propName","destroyPopper","_this$observer3","disconnect","destroy","handlersFromInteraction","interaction","_this3","eventInteraction","eventsInteractionMap","_eventInteraction$com","_slicedToArray","_eventInteraction$com2","showEvents","_eventInteraction$com3","hideEvents","crossEvents","forEach","action","getTriggerProps","_this$asProps3","disableEnforceFocus","_this$handlersFromInt","interactionProps","_excluded2","_objectSpread","createTriggerRef","active","bindHandlerKeyDown","focusableTriggerReturnFocusToRef","getPopperProps","_this$asProps4","disablePortal","duration","animationsDisabled","_excluded3","_this$handlersFromInt2","_excluded4","createPopperRef","setContext","setTrigger","setPopper","componentWillUnmount","render","_this$asProps5","Children","root","onOutsideClick","excludeRefs","createElement","Fragment","defaultVisible","arrow","padding","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","returnFocusEl","setReturnFocusEl","focusSourceRef","handleFocus","event","relatedTarget","focusToNesting","target","focusFromNesting","nestingLength","Math","max","handleFocusReturnElBlur","useFocusCatch","activeRef","_React$useState3","_React$useState4","focusCatch","setFocusCatch","handleFocusCatchBlur","handleFocusCatchRef","node","activeElement","focusCatcherStyles","position","Trigger","_ref","arguments[0]","STrigger","SFocusHint","focusHint","highlighted","_useReturnFocusEl","_useFocusCatch","tabIndex","onBlur","_assignProps","PopperPopper","_ref2","_ref3","SPopper","styles","ignorePortalsStacking","autoFocus","controlsLength","_props$focusMaster","focusMaster","updatePopperEveryFrame","handleAnimationStart","min","handleAnimationEnd","_popper$current","animationCtx","useContext","unsubscribeAnimationStart","onAnimationStart","unsubscribeAnimationEnd","onAnimationEnd","cn","_assignProps2","enhance"],"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} 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 [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 handleFocusReturnElBlur = React.useCallback(() => {\n setTimeout(() => setReturnFocusEl(null), 0);\n }, []);\n\n return { returnFocusEl, handleFocus, handleFocusReturnElBlur };\n};\nconst useFocusCatch = (active, popperRef) => {\n const activeRef = React.useRef(active);\n activeRef.current = active;\n\n const [focusCatch, setFocusCatch] = React.useState(false);\n const handleFocusCatchBlur = React.useCallback(() => setFocusCatch(false), []);\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 setFocusCatch(true);\n }, 1);\n };\n }, [active]);\n\n return { focusCatch, handleFocusCatchBlur, handleFocusCatchRef };\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.createRef();\n\n const { returnFocusEl, handleFocusReturnElBlur, handleFocus } = useReturnFocusEl(\n interaction,\n onKeyboardFocus,\n disableEnforceFocus,\n );\n const { focusCatch, handleFocusCatchBlur, handleFocusCatchRef } = useFocusCatch(\n active,\n popperRef,\n );\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 style={focusCatcherStyles}\n />\n )}\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 {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 style={focusCatcherStyles}\n />\n )}\n {focusCatch && (\n <div\n tabIndex='0'\n ref={handleFocusCatchRef}\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":["React","canUseDOM","createComponent","Component","sstyled","Root","Box","OutsideClick","Portal","PortalProvider","NeighborLocation","setRef","useFocusLock","isFocusInside","callAllEventHandlers","pick","logger","uniqueIDEnhancement","Scale","animationContext","cssVariableEnhance","useContextTheme","ScreenReaderOnly","keyboardFocusEnhance","useFocusSource","enforcedKeyboardFocusEnhanceContext","createPopper","style","_sstyled","insert","isObject","obj","_typeof","Array","isArray","someArray","arr1","arr2","filter","i","indexOf","useUpdatePopperEveryFrame","popperRef","nextAnimationFrameRef","useRef","handleAnimationFrame","useCallback","until","_popperRef$current","Date","now","current","update","requestAnimationFrame","useEffect","cancelAnimationFrame","MODIFIERS_OPTIONS","Popper","_Component","_inherits","_super","_createSuper","props","_this","_classCallCheck","call","_defineProperty","_assertThisInitialized","click","trigger","popper","hover","focus","none","createRef","ref","triggerRef","_this$asProps","asProps","placement","modifiers","strategy","onFirstUpdate","other","_objectWithoutProperties","_excluded","optionsModifiers","modifiersFallback","offset","modifiersOptions","name","undefined","map","options","push","gpuAcceleration","modifiersMerge","concat","_toConsumableArray","_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","ResizeObserver","_this$popper$current","_createClass","value","uncontrolledProps","__disablePopper","getPopperOptions","componentDidUpdate","prevProps","_this2","popperProps","some","propName","destroyPopper","_this$observer3","disconnect","destroy","handlersFromInteraction","interaction","_this3","eventInteraction","eventsInteractionMap","_eventInteraction$com","_slicedToArray","_eventInteraction$com2","showEvents","_eventInteraction$com3","hideEvents","crossEvents","forEach","action","getTriggerProps","_this$asProps3","disableEnforceFocus","_this$handlersFromInt","interactionProps","_excluded2","_objectSpread","createTriggerRef","active","bindHandlerKeyDown","focusableTriggerReturnFocusToRef","getPopperProps","_this$asProps4","disablePortal","duration","animationsDisabled","_excluded3","_this$handlersFromInt2","_excluded4","createPopperRef","setContext","setTrigger","setPopper","componentWillUnmount","render","_this$asProps5","Children","root","onOutsideClick","excludeRefs","createElement","Fragment","defaultVisible","arrow","padding","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","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","activeElement","focusCatcherStyles","position","Trigger","_ref","arguments[0]","STrigger","SFocusHint","focusHint","highlighted","_useReturnFocusEl","returnElKeyboardFocused","_useFocusCatch","focusCatchKeyboardFocused","enforceKeyboardFocused","tabIndex","onBlur","onFocus","Provider","_assignProps","PopperPopper","_ref2","_ref3","SPopper","styles","ignorePortalsStacking","autoFocus","controlsLength","_props$focusMaster","focusMaster","updatePopperEveryFrame","handleAnimationStart","min","handleAnimationEnd","_popper$current","animationCtx","useContext","unsubscribeAnimationStart","onAnimationStart","unsubscribeAnimationEnd","onAnimationEnd","cn","_assignProps2","enhance"],"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, 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 setFocusCatch(true);\n }, 1);\n };\n }, [active]);\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.createRef();\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, 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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"}
@@ -11,6 +11,7 @@ export type KeyboardFocusProps = {
11
11
  */
12
12
  autoFocus?: boolean;
13
13
  };
14
+ export declare const enforcedKeyboardFocusEnhanceContext: React.Context<boolean>;
14
15
  export declare const useFocusSource: () => React.MutableRefObject<"none" | "mouse" | "keyboard">;
15
16
  export type KeyboardFocusEnhanceHook = (props: {
16
17
  tabIndex?: number;
@@ -4,10 +4,12 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.useFocusSource = exports["default"] = void 0;
7
+ exports.useFocusSource = exports.enforcedKeyboardFocusEnhanceContext = exports["default"] = void 0;
8
8
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
9
9
  var _react = _interopRequireDefault(require("react"));
10
10
  var _assignProps = _interopRequireDefault(require("../assignProps"));
11
+ var enforcedKeyboardFocusEnhanceContext = /*#__PURE__*/_react["default"].createContext(false);
12
+ exports.enforcedKeyboardFocusEnhanceContext = enforcedKeyboardFocusEnhanceContext;
11
13
  var lastFocusSource = 'none';
12
14
  var focusSourceListeners = [];
13
15
  var useFocusSource = function useFocusSource() {
@@ -100,9 +102,10 @@ var keyboardFocusEnhance = function keyboardFocusEnhance() {
100
102
  setKeyboardFocused(false);
101
103
  }
102
104
  }, [disabled]);
105
+ var enforcedKeyboardFocus = _react["default"].useContext(enforcedKeyboardFocusEnhanceContext);
103
106
  return (0, _assignProps["default"])(props, {
104
107
  tabIndex: disabled ? -1 : tabIndex,
105
- keyboardFocused: keyboardFocused && !disabled,
108
+ keyboardFocused: (keyboardFocused || enforcedKeyboardFocus) && !disabled,
106
109
  onFocus: handleFocus,
107
110
  onBlur: handlerBlur,
108
111
  ref: ref
@@ -1 +1 @@
1
- {"version":3,"file":"keyboardFocusEnhance.js","names":["_react","_interopRequireDefault","require","_assignProps","lastFocusSource","focusSourceListeners","useFocusSource","handleMouseDown","React","useCallback","forEach","listener","setFocusSource","handleKeyDown","focusSourceRef","useRef","source","current","subscribeListeners","document","addEventListener","capture","unsubscribeListeners","removeEventListener","useEffect","needToAddListeners","length","sourceListener","push","needToRemoveListeners","sourceListenerIndex","indexOf","splice","exports","keyboardFocusEnhance","props","_props$tabIndex","tabIndex","disabled","autoFocus","_React$useState","useState","_React$useState2","_slicedToArray2","keyboardFocused","setKeyboardFocused","ref","handleFocus","event","isTrusted","handlerBlur","timer","setTimeout","_ref$current","focus","clearTimeout","assignProps","onFocus","onBlur","_default"],"sources":["../../src/enhances/keyboardFocusEnhance.tsx"],"sourcesContent":["import React from 'react';\nimport assignProps from '../assignProps';\nimport { UnknownProperties } from '@semcore/core';\n\n/** @deprecated */\nexport interface IKeyboardFocusProps extends KeyboardFocusProps, UnknownProperties {}\nexport type KeyboardFocusProps = {\n /* Property responsible for displaying \"keyboard\" focus */\n keyboardFocused?: boolean;\n /**\n * Makes component to catch browser focus on component mount\n * @default false\n */\n autoFocus?: boolean;\n};\n\nlet lastFocusSource: 'mouse' | 'keyboard' | 'none' = 'none';\nconst focusSourceListeners: {\n setFocusSource: (source: 'mouse' | 'keyboard' | 'none') => void;\n subscribeListeners: () => void;\n}[] = [];\nexport const useFocusSource = () => {\n const handleMouseDown = React.useCallback(\n () => focusSourceListeners.forEach((listener) => listener.setFocusSource('mouse')),\n [],\n );\n const handleKeyDown = React.useCallback(\n () => focusSourceListeners.forEach((listener) => listener.setFocusSource('keyboard')),\n [],\n );\n const focusSourceRef = React.useRef<'none' | 'mouse' | 'keyboard'>(lastFocusSource);\n const setFocusSource = React.useCallback((source: 'none' | 'mouse' | 'keyboard') => {\n focusSourceRef.current = source;\n lastFocusSource = source;\n }, []);\n const subscribeListeners = React.useCallback(() => {\n document.addEventListener('mousedown', handleMouseDown, { capture: true });\n document.addEventListener('keydown', handleKeyDown, { capture: true });\n }, []);\n const unsubscribeListeners = React.useCallback(() => {\n document.removeEventListener('mousedown', handleMouseDown, { capture: true });\n document.removeEventListener('keydown', handleKeyDown, { capture: true });\n }, []);\n\n React.useEffect(() => {\n const needToAddListeners = focusSourceListeners.length === 0;\n const sourceListener = { setFocusSource, subscribeListeners };\n focusSourceListeners.push(sourceListener);\n if (needToAddListeners) subscribeListeners();\n const needToRemoveListeners = needToAddListeners;\n\n return () => {\n const sourceListenerIndex = focusSourceListeners.indexOf(sourceListener);\n focusSourceListeners.splice(sourceListenerIndex, 1);\n if (needToRemoveListeners) unsubscribeListeners();\n if (needToRemoveListeners && focusSourceListeners.length > 0) {\n focusSourceListeners[0].subscribeListeners();\n }\n };\n }, []);\n\n return focusSourceRef;\n};\n\nexport type KeyboardFocusEnhanceHook = (props: {\n tabIndex?: number;\n disabled?: boolean;\n autoFocus?: boolean;\n}) => {\n tabIndex: number;\n keyboardFocused: boolean;\n onFocus: (e: React.FocusEvent) => void;\n onBlur: () => void;\n};\n\nconst keyboardFocusEnhance = (): KeyboardFocusEnhanceHook => {\n return (props) => {\n const { tabIndex = 0, disabled, autoFocus } = props;\n const [keyboardFocused, setKeyboardFocused] = React.useState(false);\n const focusSourceRef = useFocusSource();\n const ref = React.useRef<HTMLElement>(null);\n\n const handleFocus = React.useCallback((event: React.FocusEvent) => {\n if (event.isTrusted === true) {\n if (focusSourceRef.current !== 'keyboard') return;\n }\n setKeyboardFocused(true);\n }, []);\n const handlerBlur = React.useCallback(() => setKeyboardFocused(false), []);\n React.useEffect(() => {\n if (typeof autoFocus !== 'number' && !autoFocus) return;\n const timer = setTimeout(() => {\n ref.current?.focus();\n setKeyboardFocused(true);\n }, 0);\n return () => {\n clearTimeout(timer);\n };\n }, [autoFocus]);\n React.useEffect(() => {\n if (disabled) {\n setKeyboardFocused(false);\n }\n }, [disabled]);\n\n return assignProps(props, {\n tabIndex: disabled ? -1 : tabIndex,\n keyboardFocused: keyboardFocused && !disabled,\n onFocus: handleFocus,\n onBlur: handlerBlur,\n ref,\n });\n };\n};\n\nexport default keyboardFocusEnhance;\n"],"mappings":"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"}
1
+ {"version":3,"file":"keyboardFocusEnhance.js","names":["_react","_interopRequireDefault","require","_assignProps","enforcedKeyboardFocusEnhanceContext","React","createContext","exports","lastFocusSource","focusSourceListeners","useFocusSource","handleMouseDown","useCallback","forEach","listener","setFocusSource","handleKeyDown","focusSourceRef","useRef","source","current","subscribeListeners","document","addEventListener","capture","unsubscribeListeners","removeEventListener","useEffect","needToAddListeners","length","sourceListener","push","needToRemoveListeners","sourceListenerIndex","indexOf","splice","keyboardFocusEnhance","props","_props$tabIndex","tabIndex","disabled","autoFocus","_React$useState","useState","_React$useState2","_slicedToArray2","keyboardFocused","setKeyboardFocused","ref","handleFocus","event","isTrusted","handlerBlur","timer","setTimeout","_ref$current","focus","clearTimeout","enforcedKeyboardFocus","useContext","assignProps","onFocus","onBlur","_default"],"sources":["../../src/enhances/keyboardFocusEnhance.tsx"],"sourcesContent":["import React from 'react';\nimport assignProps from '../assignProps';\nimport { UnknownProperties } from '@semcore/core';\n\n/** @deprecated */\nexport interface IKeyboardFocusProps extends KeyboardFocusProps, UnknownProperties {}\nexport type KeyboardFocusProps = {\n /* Property responsible for displaying \"keyboard\" focus */\n keyboardFocused?: boolean;\n /**\n * Makes component to catch browser focus on component mount\n * @default false\n */\n autoFocus?: boolean;\n};\n\nexport const enforcedKeyboardFocusEnhanceContext = React.createContext(false);\n\nlet lastFocusSource: 'mouse' | 'keyboard' | 'none' = 'none';\nconst focusSourceListeners: {\n setFocusSource: (source: 'mouse' | 'keyboard' | 'none') => void;\n subscribeListeners: () => void;\n}[] = [];\nexport const useFocusSource = () => {\n const handleMouseDown = React.useCallback(\n () => focusSourceListeners.forEach((listener) => listener.setFocusSource('mouse')),\n [],\n );\n const handleKeyDown = React.useCallback(\n () => focusSourceListeners.forEach((listener) => listener.setFocusSource('keyboard')),\n [],\n );\n const focusSourceRef = React.useRef<'none' | 'mouse' | 'keyboard'>(lastFocusSource);\n const setFocusSource = React.useCallback((source: 'none' | 'mouse' | 'keyboard') => {\n focusSourceRef.current = source;\n lastFocusSource = source;\n }, []);\n const subscribeListeners = React.useCallback(() => {\n document.addEventListener('mousedown', handleMouseDown, { capture: true });\n document.addEventListener('keydown', handleKeyDown, { capture: true });\n }, []);\n const unsubscribeListeners = React.useCallback(() => {\n document.removeEventListener('mousedown', handleMouseDown, { capture: true });\n document.removeEventListener('keydown', handleKeyDown, { capture: true });\n }, []);\n\n React.useEffect(() => {\n const needToAddListeners = focusSourceListeners.length === 0;\n const sourceListener = { setFocusSource, subscribeListeners };\n focusSourceListeners.push(sourceListener);\n if (needToAddListeners) subscribeListeners();\n const needToRemoveListeners = needToAddListeners;\n\n return () => {\n const sourceListenerIndex = focusSourceListeners.indexOf(sourceListener);\n focusSourceListeners.splice(sourceListenerIndex, 1);\n if (needToRemoveListeners) unsubscribeListeners();\n if (needToRemoveListeners && focusSourceListeners.length > 0) {\n focusSourceListeners[0].subscribeListeners();\n }\n };\n }, []);\n\n return focusSourceRef;\n};\n\nexport type KeyboardFocusEnhanceHook = (props: {\n tabIndex?: number;\n disabled?: boolean;\n autoFocus?: boolean;\n}) => {\n tabIndex: number;\n keyboardFocused: boolean;\n onFocus: (e: React.FocusEvent) => void;\n onBlur: () => void;\n};\n\nconst keyboardFocusEnhance = (): KeyboardFocusEnhanceHook => {\n return (props) => {\n const { tabIndex = 0, disabled, autoFocus } = props;\n const [keyboardFocused, setKeyboardFocused] = React.useState(false);\n const focusSourceRef = useFocusSource();\n const ref = React.useRef<HTMLElement>(null);\n\n const handleFocus = React.useCallback((event: React.FocusEvent) => {\n if (event.isTrusted === true) {\n if (focusSourceRef.current !== 'keyboard') return;\n }\n setKeyboardFocused(true);\n }, []);\n const handlerBlur = React.useCallback(() => setKeyboardFocused(false), []);\n React.useEffect(() => {\n if (typeof autoFocus !== 'number' && !autoFocus) return;\n const timer = setTimeout(() => {\n ref.current?.focus();\n setKeyboardFocused(true);\n }, 0);\n return () => {\n clearTimeout(timer);\n };\n }, [autoFocus]);\n React.useEffect(() => {\n if (disabled) {\n setKeyboardFocused(false);\n }\n }, [disabled]);\n\n const enforcedKeyboardFocus = React.useContext(enforcedKeyboardFocusEnhanceContext);\n\n return assignProps(props, {\n tabIndex: disabled ? -1 : tabIndex,\n keyboardFocused: (keyboardFocused || enforcedKeyboardFocus) && !disabled,\n onFocus: handleFocus,\n onBlur: handlerBlur,\n ref,\n });\n };\n};\n\nexport default keyboardFocusEnhance;\n"],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
2
  import React from 'react';
3
3
  import assignProps from "../assignProps.mjs";
4
+ export var enforcedKeyboardFocusEnhanceContext = /*#__PURE__*/React.createContext(false);
4
5
  var lastFocusSource = 'none';
5
6
  var focusSourceListeners = [];
6
7
  export var useFocusSource = function useFocusSource() {
@@ -92,9 +93,10 @@ var keyboardFocusEnhance = function keyboardFocusEnhance() {
92
93
  setKeyboardFocused(false);
93
94
  }
94
95
  }, [disabled]);
96
+ var enforcedKeyboardFocus = React.useContext(enforcedKeyboardFocusEnhanceContext);
95
97
  return assignProps(props, {
96
98
  tabIndex: disabled ? -1 : tabIndex,
97
- keyboardFocused: keyboardFocused && !disabled,
99
+ keyboardFocused: (keyboardFocused || enforcedKeyboardFocus) && !disabled,
98
100
  onFocus: handleFocus,
99
101
  onBlur: handlerBlur,
100
102
  ref: ref
@@ -1 +1 @@
1
- {"version":3,"file":"keyboardFocusEnhance.mjs","names":["React","assignProps","lastFocusSource","focusSourceListeners","useFocusSource","handleMouseDown","useCallback","forEach","listener","setFocusSource","handleKeyDown","focusSourceRef","useRef","source","current","subscribeListeners","document","addEventListener","capture","unsubscribeListeners","removeEventListener","useEffect","needToAddListeners","length","sourceListener","push","needToRemoveListeners","sourceListenerIndex","indexOf","splice","keyboardFocusEnhance","props","_props$tabIndex","tabIndex","disabled","autoFocus","_React$useState","useState","_React$useState2","_slicedToArray","keyboardFocused","setKeyboardFocused","ref","handleFocus","event","isTrusted","handlerBlur","timer","setTimeout","_ref$current","focus","clearTimeout","onFocus","onBlur"],"sources":["../../src/enhances/keyboardFocusEnhance.tsx"],"sourcesContent":["import React from 'react';\nimport assignProps from '../assignProps';\nimport { UnknownProperties } from '@semcore/core';\n\n/** @deprecated */\nexport interface IKeyboardFocusProps extends KeyboardFocusProps, UnknownProperties {}\nexport type KeyboardFocusProps = {\n /* Property responsible for displaying \"keyboard\" focus */\n keyboardFocused?: boolean;\n /**\n * Makes component to catch browser focus on component mount\n * @default false\n */\n autoFocus?: boolean;\n};\n\nlet lastFocusSource: 'mouse' | 'keyboard' | 'none' = 'none';\nconst focusSourceListeners: {\n setFocusSource: (source: 'mouse' | 'keyboard' | 'none') => void;\n subscribeListeners: () => void;\n}[] = [];\nexport const useFocusSource = () => {\n const handleMouseDown = React.useCallback(\n () => focusSourceListeners.forEach((listener) => listener.setFocusSource('mouse')),\n [],\n );\n const handleKeyDown = React.useCallback(\n () => focusSourceListeners.forEach((listener) => listener.setFocusSource('keyboard')),\n [],\n );\n const focusSourceRef = React.useRef<'none' | 'mouse' | 'keyboard'>(lastFocusSource);\n const setFocusSource = React.useCallback((source: 'none' | 'mouse' | 'keyboard') => {\n focusSourceRef.current = source;\n lastFocusSource = source;\n }, []);\n const subscribeListeners = React.useCallback(() => {\n document.addEventListener('mousedown', handleMouseDown, { capture: true });\n document.addEventListener('keydown', handleKeyDown, { capture: true });\n }, []);\n const unsubscribeListeners = React.useCallback(() => {\n document.removeEventListener('mousedown', handleMouseDown, { capture: true });\n document.removeEventListener('keydown', handleKeyDown, { capture: true });\n }, []);\n\n React.useEffect(() => {\n const needToAddListeners = focusSourceListeners.length === 0;\n const sourceListener = { setFocusSource, subscribeListeners };\n focusSourceListeners.push(sourceListener);\n if (needToAddListeners) subscribeListeners();\n const needToRemoveListeners = needToAddListeners;\n\n return () => {\n const sourceListenerIndex = focusSourceListeners.indexOf(sourceListener);\n focusSourceListeners.splice(sourceListenerIndex, 1);\n if (needToRemoveListeners) unsubscribeListeners();\n if (needToRemoveListeners && focusSourceListeners.length > 0) {\n focusSourceListeners[0].subscribeListeners();\n }\n };\n }, []);\n\n return focusSourceRef;\n};\n\nexport type KeyboardFocusEnhanceHook = (props: {\n tabIndex?: number;\n disabled?: boolean;\n autoFocus?: boolean;\n}) => {\n tabIndex: number;\n keyboardFocused: boolean;\n onFocus: (e: React.FocusEvent) => void;\n onBlur: () => void;\n};\n\nconst keyboardFocusEnhance = (): KeyboardFocusEnhanceHook => {\n return (props) => {\n const { tabIndex = 0, disabled, autoFocus } = props;\n const [keyboardFocused, setKeyboardFocused] = React.useState(false);\n const focusSourceRef = useFocusSource();\n const ref = React.useRef<HTMLElement>(null);\n\n const handleFocus = React.useCallback((event: React.FocusEvent) => {\n if (event.isTrusted === true) {\n if (focusSourceRef.current !== 'keyboard') return;\n }\n setKeyboardFocused(true);\n }, []);\n const handlerBlur = React.useCallback(() => setKeyboardFocused(false), []);\n React.useEffect(() => {\n if (typeof autoFocus !== 'number' && !autoFocus) return;\n const timer = setTimeout(() => {\n ref.current?.focus();\n setKeyboardFocused(true);\n }, 0);\n return () => {\n clearTimeout(timer);\n };\n }, [autoFocus]);\n React.useEffect(() => {\n if (disabled) {\n setKeyboardFocused(false);\n }\n }, [disabled]);\n\n return assignProps(props, {\n tabIndex: disabled ? -1 : tabIndex,\n keyboardFocused: keyboardFocused && !disabled,\n onFocus: handleFocus,\n onBlur: handlerBlur,\n ref,\n });\n };\n};\n\nexport default keyboardFocusEnhance;\n"],"mappings":"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"}
1
+ {"version":3,"file":"keyboardFocusEnhance.mjs","names":["React","assignProps","enforcedKeyboardFocusEnhanceContext","createContext","lastFocusSource","focusSourceListeners","useFocusSource","handleMouseDown","useCallback","forEach","listener","setFocusSource","handleKeyDown","focusSourceRef","useRef","source","current","subscribeListeners","document","addEventListener","capture","unsubscribeListeners","removeEventListener","useEffect","needToAddListeners","length","sourceListener","push","needToRemoveListeners","sourceListenerIndex","indexOf","splice","keyboardFocusEnhance","props","_props$tabIndex","tabIndex","disabled","autoFocus","_React$useState","useState","_React$useState2","_slicedToArray","keyboardFocused","setKeyboardFocused","ref","handleFocus","event","isTrusted","handlerBlur","timer","setTimeout","_ref$current","focus","clearTimeout","enforcedKeyboardFocus","useContext","onFocus","onBlur"],"sources":["../../src/enhances/keyboardFocusEnhance.tsx"],"sourcesContent":["import React from 'react';\nimport assignProps from '../assignProps';\nimport { UnknownProperties } from '@semcore/core';\n\n/** @deprecated */\nexport interface IKeyboardFocusProps extends KeyboardFocusProps, UnknownProperties {}\nexport type KeyboardFocusProps = {\n /* Property responsible for displaying \"keyboard\" focus */\n keyboardFocused?: boolean;\n /**\n * Makes component to catch browser focus on component mount\n * @default false\n */\n autoFocus?: boolean;\n};\n\nexport const enforcedKeyboardFocusEnhanceContext = React.createContext(false);\n\nlet lastFocusSource: 'mouse' | 'keyboard' | 'none' = 'none';\nconst focusSourceListeners: {\n setFocusSource: (source: 'mouse' | 'keyboard' | 'none') => void;\n subscribeListeners: () => void;\n}[] = [];\nexport const useFocusSource = () => {\n const handleMouseDown = React.useCallback(\n () => focusSourceListeners.forEach((listener) => listener.setFocusSource('mouse')),\n [],\n );\n const handleKeyDown = React.useCallback(\n () => focusSourceListeners.forEach((listener) => listener.setFocusSource('keyboard')),\n [],\n );\n const focusSourceRef = React.useRef<'none' | 'mouse' | 'keyboard'>(lastFocusSource);\n const setFocusSource = React.useCallback((source: 'none' | 'mouse' | 'keyboard') => {\n focusSourceRef.current = source;\n lastFocusSource = source;\n }, []);\n const subscribeListeners = React.useCallback(() => {\n document.addEventListener('mousedown', handleMouseDown, { capture: true });\n document.addEventListener('keydown', handleKeyDown, { capture: true });\n }, []);\n const unsubscribeListeners = React.useCallback(() => {\n document.removeEventListener('mousedown', handleMouseDown, { capture: true });\n document.removeEventListener('keydown', handleKeyDown, { capture: true });\n }, []);\n\n React.useEffect(() => {\n const needToAddListeners = focusSourceListeners.length === 0;\n const sourceListener = { setFocusSource, subscribeListeners };\n focusSourceListeners.push(sourceListener);\n if (needToAddListeners) subscribeListeners();\n const needToRemoveListeners = needToAddListeners;\n\n return () => {\n const sourceListenerIndex = focusSourceListeners.indexOf(sourceListener);\n focusSourceListeners.splice(sourceListenerIndex, 1);\n if (needToRemoveListeners) unsubscribeListeners();\n if (needToRemoveListeners && focusSourceListeners.length > 0) {\n focusSourceListeners[0].subscribeListeners();\n }\n };\n }, []);\n\n return focusSourceRef;\n};\n\nexport type KeyboardFocusEnhanceHook = (props: {\n tabIndex?: number;\n disabled?: boolean;\n autoFocus?: boolean;\n}) => {\n tabIndex: number;\n keyboardFocused: boolean;\n onFocus: (e: React.FocusEvent) => void;\n onBlur: () => void;\n};\n\nconst keyboardFocusEnhance = (): KeyboardFocusEnhanceHook => {\n return (props) => {\n const { tabIndex = 0, disabled, autoFocus } = props;\n const [keyboardFocused, setKeyboardFocused] = React.useState(false);\n const focusSourceRef = useFocusSource();\n const ref = React.useRef<HTMLElement>(null);\n\n const handleFocus = React.useCallback((event: React.FocusEvent) => {\n if (event.isTrusted === true) {\n if (focusSourceRef.current !== 'keyboard') return;\n }\n setKeyboardFocused(true);\n }, []);\n const handlerBlur = React.useCallback(() => setKeyboardFocused(false), []);\n React.useEffect(() => {\n if (typeof autoFocus !== 'number' && !autoFocus) return;\n const timer = setTimeout(() => {\n ref.current?.focus();\n setKeyboardFocused(true);\n }, 0);\n return () => {\n clearTimeout(timer);\n };\n }, [autoFocus]);\n React.useEffect(() => {\n if (disabled) {\n setKeyboardFocused(false);\n }\n }, [disabled]);\n\n const enforcedKeyboardFocus = React.useContext(enforcedKeyboardFocusEnhanceContext);\n\n return assignProps(props, {\n tabIndex: disabled ? -1 : tabIndex,\n keyboardFocused: (keyboardFocused || enforcedKeyboardFocus) && !disabled,\n onFocus: handleFocus,\n onBlur: handlerBlur,\n ref,\n });\n };\n};\n\nexport default keyboardFocusEnhance;\n"],"mappings":"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"}