aura-glass
Version:
A comprehensive glassmorphism design system for React applications with 142+ production-ready components
107 lines • 3.04 kB
TypeScript
import React from 'react';
export interface GlassFocusOptions {
/** Enable glass focus ring */
enabled?: boolean;
/** Focus ring color */
color?: string;
/** Focus ring width */
width?: number;
/** Focus ring blur */
blur?: number;
/** Focus ring spread */
spread?: number;
/** Animation duration */
duration?: number;
/** Focus ring offset */
offset?: number;
/** Focus ring position */
position?: string;
/** Custom focus styles */
customStyles?: Record<string, any>;
/** Enable keyboard navigation */
keyboardNavigation?: boolean;
/** Auto-focus on mount */
autoFocus?: boolean;
/** Focus trap behavior */
focusTrap?: boolean;
/** Restore focus on unmount */
restoreFocus?: boolean;
}
export interface GlassFocusState {
isFocused: boolean;
isKeyboardFocused: boolean;
focusOrigin: 'mouse' | 'keyboard' | 'programmatic' | null;
focusRingVisible: boolean;
previousFocusedElement: Element | null;
}
export declare function useGlassFocus(options?: GlassFocusOptions): {
ref: React.RefObject<HTMLElement>;
focusState: GlassFocusState;
baseStyle: React.CSSProperties;
focus: () => void;
blur: () => void;
options: {
enabled: boolean;
color: string;
width: number;
blur: number;
spread: number;
duration: number;
offset: number;
position: string;
customStyles: Record<string, any>;
keyboardNavigation: boolean;
autoFocus: boolean;
focusTrap: boolean;
restoreFocus: boolean;
};
};
export declare function useGlassFocusGroup(options?: GlassFocusOptions & {
elements: HTMLElement[];
loop?: boolean;
}): {
currentFocusIndex: number;
moveFocus: (direction: "next" | "previous" | "first" | "last") => void;
focusOptions: {
/** Enable glass focus ring */
enabled?: boolean;
/** Focus ring color */
color?: string;
/** Focus ring width */
width?: number;
/** Focus ring blur */
blur?: number;
/** Focus ring spread */
spread?: number;
/** Animation duration */
duration?: number;
/** Focus ring offset */
offset?: number;
/** Focus ring position */
position?: string;
/** Custom focus styles */
customStyles?: Record<string, any>;
/** Enable keyboard navigation */
keyboardNavigation?: boolean;
/** Auto-focus on mount */
autoFocus?: boolean;
/** Focus trap behavior */
focusTrap?: boolean;
/** Restore focus on unmount */
restoreFocus?: boolean;
};
};
export declare function useSkipLinks(links: Array<{
id: string;
label: string;
targetId: string;
}>): {
visible: boolean;
links: {
id: string;
label: string;
targetId: string;
}[];
skipTo: (targetId: string) => void;
};
//# sourceMappingURL=useGlassFocus.d.ts.map