UNPKG

@solid-aria/focus

Version:
43 lines (42 loc) 1.47 kB
import { FocusResult, FocusWithinResult } from "@solid-aria/interactions"; import { MaybeAccessor } from "@solid-primitives/utils"; import { Accessor } from "solid-js"; export interface CreateFocusRingProps { /** * Whether to show the focus ring when something * inside the container element has focus (true), or * only if the container itself has focus (false). * @default 'false' */ within?: MaybeAccessor<boolean | undefined>; /** * Whether the element is a text input. */ isTextInput?: MaybeAccessor<boolean | undefined>; /** * Whether the element will be auto focused. */ autofocus?: MaybeAccessor<boolean | undefined>; } declare type FocusRingProps = FocusResult["focusProps"] | FocusWithinResult["focusWithinProps"]; export interface FocusRingResult { /** * Whether the element is currently focused. */ isFocused: Accessor<boolean>; /** * Whether keyboard focus should be visible. */ isFocusVisible: Accessor<boolean>; /** * Props to apply to the container element with the focus ring. */ focusProps: FocusRingProps; } /** * Determines whether a focus ring should be shown to indicate keyboard focus. * Focus rings are visible only when the user is interacting with a keyboard, * not with a mouse, touch, or other input methods. */ export declare function createFocusRing(props?: CreateFocusRingProps): FocusRingResult; export {};