const {
children,
disabled = false,
noFocusGuards = false,
persistentFocus = false,
crossFrame = true,
autoFocus = true,
allowTextSelection,
group,
className,
whiteList,
hasPositiveIndices,
shards = emptyArray,
as: Container = "div",
lockProps: containerProps = {},
sideCar: SideCar,
returnFocus: shouldReturnFocus = false,
focusOptions,
onActivation: onActivationCallback,
onDeactivation: onDeactivationCallback,
} = props;
const observed = React.useRef();
const isActive = React.useRef(false);
const originalFocusedElement = React.useRef(null);
const onActivation = React.useCallback(() => {
originalFocusedElement.current =
originalFocusedElement.current || (document && document.activeElement);
if (observed.current && onActivationCallback) {
onActivationCallback(observed.current);
}
isActive.current = true;
}, [onActivationCallback]);