import { getWindow } from './dom/getWindow'; export var IsFocusVisibleClassName = 'ms-Fabric--isFocusVisible'; export var IsFocusHiddenClassName = 'ms-Fabric--isFocusHidden'; function updateClassList(el, enabled) { if (el) { el.classList.add(enabled ? IsFocusVisibleClassName : IsFocusHiddenClassName); el.classList.remove(enabled ? IsFocusHiddenClassName : IsFocusVisibleClassName); } } /** * Sets the visibility of focus styling. * * By default, focus styles (the box surrounding a focused Button, for example) only show up when navigational * keypresses occur (through Tab, arrows, PgUp/PgDn, Home and End), and are hidden when mouse interactions occur. * This API provides an imperative way to turn them on/off. * * A use case might be when you have a keypress like ctrl-f6 navigate to a particular region on the page, * and want focus to show up. * * @param enabled - Whether to turn focus visibility on or off. * @param target - Optional target from which to get window in case no `providerElem` has been specified. * @param registeredProviders - Array of provider refs that are associated with a FocusRectsProvider. If no array * is passed in, the classnames are attached to the document body that contains `target`. */ export function setFocusVisibility(enabled, target, registeredProviders) { var _a; if (registeredProviders) { registeredProviders.forEach(function (ref) { return updateClassList(ref.current, enabled); }); } else { updateClassList((_a = getWindow(target)) === null || _a === void 0 ? void 0 : _a.document.body, enabled); } } //# sourceMappingURL=setFocusVisibility.js.map