@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
JavaScript
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 };