UNPKG

aura-glass

Version:

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

109 lines 3.26 kB
/** * SSR (Server-Side Rendering) Utilities * * Shared helpers for safe browser API access across all components. * Prevents hydration mismatches and runtime errors during SSR. */ export { isBrowser, isServer } from "./env"; /** * Check if DOM is available (alias for isBrowser) * React convention name */ export declare const canUseDOM: boolean; /** * Safely access window, returns undefined during SSR */ export declare const safeWindow: (Window & typeof globalThis) | undefined; /** * Safely access document, returns undefined during SSR */ export declare const safeDocument: Document | undefined; /** * Safely access navigator, returns undefined during SSR */ export declare const safeNavigator: Navigator | undefined; /** * Safe wrapper for code that requires browser APIs * Returns undefined during SSR, executes callback in browser * * @example * const userAgent = safeBrowserExec(() => navigator.userAgent); */ export declare function safeBrowserExec<T>(callback: () => T): T | undefined; /** * Get a browser API value with a fallback for SSR * * @example * const width = getBrowserValue(() => window.innerWidth, 1024); */ export declare function getBrowserValue<T>(getter: () => T, fallback: T): T; /** * Get user agent string safely * Returns empty string during SSR */ export declare function getUserAgent(): string; /** * Check if touch is supported * Returns false during SSR */ export declare function isTouchDevice(): boolean; /** * Get viewport dimensions * Returns default dimensions during SSR */ export declare function getViewportSize(): { width: number; height: number; }; /** * Get device pixel ratio * Returns 1 during SSR */ export declare function getDevicePixelRatio(): number; /** * Check if WebGL is supported * Returns false during SSR */ export declare function isWebGLSupported(): boolean; /** * Check if localStorage is available * Returns false during SSR and in privacy mode */ export declare function isLocalStorageAvailable(): boolean; /** * SSR-safe event listener helper * No-op during SSR, works normally in browser */ export declare function addBrowserEventListener<K extends keyof WindowEventMap>(type: K, listener: (this: Window, ev: WindowEventMap[K]) => any, options?: boolean | AddEventListenerOptions): () => void; /** * SSR-safe requestAnimationFrame * Uses setTimeout fallback during SSR */ export declare function safeRequestAnimationFrame(callback: FrameRequestCallback): number; /** * SSR-safe cancelAnimationFrame */ export declare function safeCancelAnimationFrame(handle: number): void; /** * Create an SSR-safe ref callback that only runs in browser */ export declare function createBrowserRefCallback<T extends HTMLElement>(callback: (element: T) => void | (() => void)): (element: T | null) => void; /** * Get connection information safely * Returns default values during SSR */ export declare function getConnectionInfo(): { effectiveType: string; downlink: number; rtt: number; saveData: boolean; }; /** * Check if running in development mode */ export declare const isDevelopment: boolean; /** * Check if running in production mode */ export declare const isProduction: boolean; //# sourceMappingURL=ssr.d.ts.map