import type { PropsLike } from "./merge-props-n.js"; type MaybeAccessor = T | (() => T); export interface UseFocusableWhenDisabledOptions { /** * Whether the component should remain focusable while disabled. * - `true` on a native button emits `aria-disabled` and clears the native * `disabled` attr so the browser doesn't skip it in the tab order. * - `false` on a composite item skips `aria-disabled` entirely (and keeps * native `disabled` on native buttons). * * Left unset, composite items are focusable by default (React parity). */ focusableWhenDisabled?: MaybeAccessor | undefined; /** * The disabled state of the component. Coerced through `read()` so either * a plain `boolean` or a `() => boolean` accessor is fine. */ disabled: MaybeAccessor; /** * `true` when the component is an item in a composite widget. In that * case `tabIndex` is managed externally and we skip it in the returned * props bag. * @default false */ composite?: MaybeAccessor | undefined; /** * Explicit `tabIndex` override. Only consulted when `composite` is false. * @default 0 */ tabIndex?: MaybeAccessor | undefined; /** * `true` when the rendered element is a real `