UNPKG

@ark-ui/react

Version:

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

27 lines (22 loc) 899 B
'use client'; 'use strict'; Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); const focusVisible = require('@zag-js/focus-visible'); const react = require('react'); const useEnvironmentContext = require('../environment/use-environment-context.cjs'); function useFocusVisible(props = {}) { const { isTextInput, autoFocus } = props; const { getRootNode } = useEnvironmentContext.useEnvironmentContext(); const subscribe = react.useCallback( (onStoreChange) => focusVisible.trackFocusVisible({ root: getRootNode(), isTextInput, autoFocus, onChange: onStoreChange }), [getRootNode, isTextInput, autoFocus] ); const getSnapshot = react.useCallback(() => autoFocus || focusVisible.isFocusVisible(), [autoFocus]); return react.useSyncExternalStore(subscribe, getSnapshot, () => false); } exports.useFocusVisible = useFocusVisible;