@ark-ui/solid
Version:
A collection of unstyled, accessible UI components for Solid, utilizing state machines for seamless interaction.
42 lines (38 loc) • 1.18 kB
JSX
import {
useEnvironmentContext
} from "./HDGILMRT.jsx";
// src/providers/interaction/use-focus-visible.ts
import { isFocusVisible, trackFocusVisible } 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
);
}
// src/providers/interaction/use-interaction-modality.ts
import { getInteractionModality, trackInteractionModality } from "@zag-js/focus-visible";
import { useSyncExternalStore as useSyncExternalStore2 } from "@zag-js/solid";
function useInteractionModality() {
const environment = useEnvironmentContext();
return useSyncExternalStore2(
(listener) => trackInteractionModality({
root: environment().getRootNode(),
onChange: listener
}),
getInteractionModality,
() => null
);
}
export {
useFocusVisible,
useInteractionModality
};