UNPKG

realtimecursor

Version:

Real-time collaboration system with cursor tracking and approval workflow

67 lines (66 loc) 1.82 kB
import React from 'react'; export interface CursorProps { x: number; y: number; user: { name: string; color: string; }; } export interface TextCursorProps { textPosition: number; content: string; editorRef: React.RefObject<HTMLTextAreaElement | HTMLInputElement>; user: { name: string; color: string; }; } export interface CursorOverlayProps { cursors: Record<string, any>; content?: string; editorRef?: React.RefObject<HTMLTextAreaElement | HTMLInputElement>; } export interface CollaboratorInfo { id: string; name: string; color: string; socketId: string; } export interface CollaboratorsListProps { collaborators: CollaboratorInfo[]; typingUsers?: string[]; } /** * Cursor component - displays a cursor at a specific position */ export declare const Cursor: React.FC<CursorProps>; /** * TextCursor component - displays a cursor at a specific text position */ export declare const TextCursor: React.FC<TextCursorProps>; /** * CursorOverlay component - displays all cursors */ export declare const CursorOverlay: React.FC<CursorOverlayProps>; /** * CollaboratorsList component - displays a list of collaborators */ export declare const CollaboratorsList: React.FC<CollaboratorsListProps>; /** * CollaborativeTextarea component - a textarea with real-time collaboration */ export declare const CollaborativeTextarea: React.FC<{ value: string; onChange: (value: string) => void; onCursorMove?: (position: { x: number; y: number; textPosition?: number; }) => void; onCursorPositionChange?: (position: number) => void; onTypingStatusChange?: (isTyping: boolean) => void; className?: string; style?: React.CSSProperties; placeholder?: string; }>;