UNPKG

compote-ui

Version:

An opinionated UI component library for Svelte, built on top of [Ark UI](https://ark-ui.com) with additional components and features not available in the core Ark UI library.

23 lines (22 loc) • 1.23 kB
declare function releaseFocusOnExit(event: Event): void; /** * Spread onto Ark overlay content (popover, dialog, drawer) so a field focused inside it blurs * before the content unmounts, not during the unmount. * * Zag's presence can unmount content from inside a Svelte effect (it does when the document is * hidden). Svelte then removes the content mid-flush; a field still focused in there blurs during * that removal, and zag handles some blurs with `flushSync` (DatePicker's machine, for one). That * nested `flushSync` breaks the outer flush: "Cannot read properties of null (reading 'clear')" * in Svelte's `flush_queued_effects` (still the case in svelte 5.57.2). * * Zag dispatches `exitcomplete` on the content node once presence decides to unmount, before * Svelte removes it. Blurring there lets the field commit on blur as usual, at a point where a * nested `flushSync` is safe. Usually focus is already back on the trigger by then (exit * animations outlast the focus restore), and this does nothing. * * A spread because Ark's content prop types don't list the `exitcomplete` event. */ export declare const releaseFocusOnExitProps: { onexitcomplete: typeof releaseFocusOnExit; }; export {};