UNPKG

@ark-ui/solid

Version:

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

32 lines (29 loc) 944 B
import { useEnvironmentContext } from './3P5T77QU.js'; import { trackFocusVisible, isFocusVisible, trackInteractionModality, getInteractionModality } from '@zag-js/focus-visible'; import { useSyncExternalStore } from '@zag-js/solid'; function useFocusVisible(props = {}) { const { isTextInput, autoFocus } = props; const environment = useEnvironmentContext(); return useSyncExternalStore( (listener) => trackFocusVisible({ root: environment().getRootNode(), isTextInput, autoFocus, onChange: listener }), () => autoFocus || isFocusVisible(), () => false ); } function useInteractionModality() { const environment = useEnvironmentContext(); return useSyncExternalStore( (listener) => trackInteractionModality({ root: environment().getRootNode(), onChange: listener }), getInteractionModality, () => null ); } export { useFocusVisible, useInteractionModality };