@reusable-ui/accessibilities
Version:
An accessibility management system for react web components.
75 lines (74 loc) • 3.54 kB
TypeScript
import { default as React } from 'react';
export interface TAccessibility<TDefaultEnabled = boolean, TDefaultReadOnly = boolean, TDefaultActive = boolean> {
enabled: boolean | TDefaultEnabled;
readOnly: boolean | TDefaultReadOnly;
active: boolean | TDefaultActive;
}
/**
* Contains accessibility props.
*/
export interface Accessibility extends TAccessibility {
/**
* `true` : component is enabled - responses any user interaction.
* `false` : component is disabled - ignores any user interaction.
*/
enabled: boolean;
/**
* `true` : component is readOnly - ignores any user editing.
* `false` : component is editable - responses any user editing.
*/
readOnly: boolean;
/**
* `true` : component is in active state.
* `false` : component is in normal state.
*/
active: boolean;
}
/**
* A react context for accessibility stuff.
*/
export declare const AccessibilityContext: React.Context<Accessibility>;
export declare const usePropAccessibility: <TDefaultEnabled extends unknown = boolean, TDefaultReadOnly = boolean, TDefaultActive = boolean>(props: AccessibilityProps, defaultEnabled?: boolean | TDefaultEnabled, defaultReadOnly?: boolean | TDefaultReadOnly, defaultActive?: boolean | TDefaultActive) => Accessibility | TAccessibility<TDefaultEnabled, TDefaultReadOnly, TDefaultActive>;
export declare const usePropEnabled: <TDefaultEnabled extends unknown = boolean>(props: AccessibilityProps, defaultEnabled?: boolean | TDefaultEnabled) => boolean | TDefaultEnabled;
export declare const usePropReadOnly: <TDefaultReadOnly extends unknown = boolean>(props: AccessibilityProps, defaultReadOnly?: boolean | TDefaultReadOnly) => boolean | TDefaultReadOnly;
export declare const usePropActive: <TDefaultActive extends unknown = boolean>(props: AccessibilityProps, defaultActive?: boolean | TDefaultActive) => boolean | TDefaultActive;
export interface AccessibilityProps extends Partial<Accessibility> {
/**
* `undefined` : same as `true`.
* `true` : component is enabled - responses any user interaction.
* `false` : component is disabled - ignores any user interaction.
*/
enabled?: boolean;
/**
* `undefined` : same as `true`.
* `true` : inherits `enabled` from parent (`AccessibilityProvider` context).
* `false` : independent `enabled`.
*/
inheritEnabled?: boolean;
/**
* `undefined` : same as `false`.
* `true` : component is readOnly - ignores any user editing.
* `false` : component is editable - responses any user editing.
*/
readOnly?: boolean;
/**
* `undefined` : same as `true`.
* `true` : inherits `readOnly` from parent (`AccessibilityProvider` context).
* `false` : independent `readOnly`.
*/
inheritReadOnly?: boolean;
/**
* `undefined` : same as `false`.
* `true` : component is in active state.
* `false` : component is in normal state.
*/
active?: boolean;
/**
* `undefined` : same as `false`.
* `true` : inherits `active` from parent (`AccessibilityProvider` context).
* `false` : independent `active`.
*/
inheritActive?: boolean;
}
declare const AccessibilityProvider: (props: React.PropsWithChildren<AccessibilityProps>) => JSX.Element | null;
export { AccessibilityProvider, AccessibilityProvider as default, };