UNPKG

@grail-ui/svelte

Version:

[![NPM](https://img.shields.io/npm/v/@grail-ui/svelte)](https://www.npmjs.com/package/@grail-ui/svelte) [![minified](https://img.shields.io/bundlephobia/min/@grail-ui/svelte)](https://bundlephobia.com/package/@grail-ui/svelte) [![minified + zipped](https:

20 lines (19 loc) 674 B
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, }); });