@grail-ui/svelte
Version:
[](https://www.npmjs.com/package/@grail-ui/svelte) [](https://bundlephobia.com/package/@grail-ui/svelte) [ • 674 B
JavaScript
import { get, readable } from 'svelte/store';
import { addEventListener } from '../eventListener/eventListener.js';
import { noop } from '../util/noop.js';
import { isClient } from '../util/is.js';
export const activeElement = readable(null, (set) => {
if (!isClient)
return noop;
const setActiveElement = () => {
if (get(activeElement) === document.activeElement ||
!(document.activeElement instanceof HTMLElement))
return;
set(document.activeElement);
};
setActiveElement();
return addEventListener(window, ['focus', 'blur'], setActiveElement, {
passive: true,
capture: true,
});
});