UNPKG

aura-glass

Version:

A comprehensive glassmorphism design system for React applications with 142+ production-ready components

107 lines 3.04 kB
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