"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "useTabster", { enumerable: true, get: function() { return useTabster; } }); const _interop_require_wildcard = require("@swc/helpers/_/_interop_require_wildcard"); const _react = /*#__PURE__*/ _interop_require_wildcard._(require("react")); const _reactsharedcontexts = require("@fluentui/react-shared-contexts"); const _tabster = require("tabster"); const _reactutilities = require("@fluentui/react-utilities"); const useTabster = ()=>{ const { targetDocument } = (0, _reactsharedcontexts.useFluent_unstable)(); const defaultView = (targetDocument === null || targetDocument === void 0 ? void 0 : targetDocument.defaultView) || undefined; const shadowDOMAPI = defaultView === null || defaultView === void 0 ? void 0 : defaultView.__tabsterShadowDOMAPI; const tabster = _react.useMemo(()=>{ if (!defaultView) { return null; } return (0, _tabster.createTabster)(defaultView, { autoRoot: {}, controlTab: false, getParent: _reactutilities.getParent, checkUncontrolledTrappingFocus: (element)=>{ var _element_firstElementChild; return !!((_element_firstElementChild = element.firstElementChild) === null || _element_firstElementChild === void 0 ? void 0 : _element_firstElementChild.hasAttribute('data-is-focus-trap-zone-bumper')); }, DOMAPI: shadowDOMAPI }); }, [ defaultView, shadowDOMAPI ]); (0, _reactutilities.useIsomorphicLayoutEffect)(()=>{ return ()=>{ if (tabster) { (0, _tabster.disposeTabster)(tabster); } }; }, [ tabster ]); return tabster; };