UNPKG

@ark-ui/vue

Version:

A collection of unstyled, accessible UI components for Vue, utilizing state machines for seamless interaction.

17 lines (16 loc) 671 B
import { DEFAULT_ENVIRONMENT, useEnvironmentContext } from "../environment/use-environment-context.js"; import { useSyncExternalStore } from "@zag-js/vue"; import { isFocusVisible, trackFocusVisible } from "@zag-js/focus-visible"; //#region src/providers/interaction/use-focus-visible.ts function useFocusVisible(props = {}) { const { isTextInput, autoFocus } = props; const env = useEnvironmentContext(DEFAULT_ENVIRONMENT); return useSyncExternalStore((listener) => trackFocusVisible({ root: env.value.getRootNode(), isTextInput, autoFocus, onChange: listener }), () => autoFocus || isFocusVisible(), () => false); } //#endregion export { useFocusVisible };