| "use client"; |
|
|
| |
| import * as React from "react"; |
| var count = 0; |
| function FocusGuards(props) { |
| useFocusGuards(); |
| return props.children; |
| } |
| function useFocusGuards() { |
| React.useEffect(() => { |
| const edgeGuards = document.querySelectorAll("[data-radix-focus-guard]"); |
| document.body.insertAdjacentElement("afterbegin", edgeGuards[0] ?? createFocusGuard()); |
| document.body.insertAdjacentElement("beforeend", edgeGuards[1] ?? createFocusGuard()); |
| count++; |
| return () => { |
| if (count === 1) { |
| document.querySelectorAll("[data-radix-focus-guard]").forEach((node) => node.remove()); |
| } |
| count--; |
| }; |
| }, []); |
| } |
| function createFocusGuard() { |
| const element = document.createElement("span"); |
| element.setAttribute("data-radix-focus-guard", ""); |
| element.tabIndex = 0; |
| element.style.outline = "none"; |
| element.style.opacity = "0"; |
| element.style.position = "fixed"; |
| element.style.pointerEvents = "none"; |
| return element; |
| } |
| var Root = FocusGuards; |
| export { |
| FocusGuards, |
| Root, |
| useFocusGuards |
| }; |
| |
|
|