aura-glass
Version:
A comprehensive glassmorphism design system for React applications with 142+ production-ready components
109 lines • 3.26 kB
TypeScript
/**
* 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