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:

48 lines (47 loc) 1.37 kB
import type { ActivateOptions, DeactivateOptions, Options as FocusTrapOptions } from 'focus-trap'; import type { Action } from 'svelte/action'; import type { Readable } from 'svelte/store'; export interface FocusTrapConfig extends FocusTrapOptions { /** * Immediately activate the trap */ immediate?: boolean; } export type FocusTrapReturn = { /** * Indicates if the focus trap is currently active. */ hasFocus: Readable<boolean>; /** * Indicates if the focus trap is currently paused. */ isPaused: Readable<boolean>; /** * Activate the focus trap. * * @see https://github.com/focus-trap/focus-trap#trapactivateactivateoptions */ activate: (opts?: ActivateOptions) => void; /** * Deactivate the focus trap. * * @see https://github.com/focus-trap/focus-trap#trapdeactivatedeactivateoptions */ deactivate: (opts?: DeactivateOptions) => void; /** * Pause the focus trap. * * @see https://github.com/focus-trap/focus-trap#trappause */ pause: () => void; /** * Unpauses the focus trap. * * @see https://github.com/focus-trap/focus-trap#trapunpause */ unpause: () => void; /** * Action to attach to the element that you want to act as a focus trap. */ useFocusTrap: Action<HTMLElement, void>; };