aura-glass
Version:
A comprehensive glassmorphism design system for React applications with 142+ production-ready components
85 lines • 2.47 kB
TypeScript
/**
* AuraGlass Live Cursor Presence
* Real-time collaborative cursor tracking with glass effects
*/
import React from "react";
interface CursorUser {
id: string;
name: string;
avatar?: string;
color: string;
isTyping?: boolean;
lastSeen: number;
}
interface CursorPosition {
x: number;
y: number;
timestamp: number;
}
interface GlassLiveCursorPresenceProps {
children: React.ReactNode;
className?: string;
roomId: string;
currentUser: CursorUser;
connectionUrl?: string;
maxUsers?: number;
showTrails?: boolean;
showLabels?: boolean;
cursorSize?: number;
trailLength?: number;
fadeTimeout?: number;
smoothing?: number;
glassEffect?: boolean;
onUserJoin?: (user: CursorUser) => void;
onUserLeave?: (userId: string) => void;
onCursorMove?: (userId: string, position: CursorPosition) => void;
}
export declare function GlassLiveCursorPresence({ children, className, roomId, currentUser, connectionUrl, maxUsers, showTrails, showLabels, cursorSize, trailLength, fadeTimeout, smoothing, glassEffect, onUserJoin, onUserLeave, onCursorMove, }: GlassLiveCursorPresenceProps): import("react/jsx-runtime").JSX.Element;
export declare function useLiveCursorPresence(roomId: string, currentUser: CursorUser): {
connectedUsers: CursorUser[];
isConnected: boolean;
broadcastTyping: (isTyping: boolean) => void;
sendReaction: (reaction: string, position: {
x: number;
y: number;
}) => void;
};
export declare const cursorPresencePresets: {
minimal: {
showTrails: boolean;
showLabels: boolean;
cursorSize: number;
glassEffect: boolean;
};
standard: {
showTrails: boolean;
showLabels: boolean;
cursorSize: number;
trailLength: number;
glassEffect: boolean;
};
immersive: {
showTrails: boolean;
showLabels: boolean;
cursorSize: number;
trailLength: number;
smoothing: number;
glassEffect: boolean;
};
gaming: {
showTrails: boolean;
showLabels: boolean;
cursorSize: number;
trailLength: number;
smoothing: number;
glassEffect: boolean;
};
presentation: {
showTrails: boolean;
showLabels: boolean;
cursorSize: number;
glassEffect: boolean;
};
};
export {};
//# sourceMappingURL=GlassLiveCursorPresence.d.ts.map