CursorLayer

fancy-whiteboard

Multi-user cursor presence.

Why
Collaborative whiteboard surfaces need to show every participant's pointer in real time, but rendering individual Cursor elements requires boilerplate loop logic and repeated positioning, class-name, and event-handler plumbing. Without a dedicated layer wrapper, teams end up scattering cursor arrays across mount points, breaking presence and losing identity when the array shape changes.
What
CursorLayer is a simple stateless container that accepts an array of RemoteCursor objects — each with userId, name, color, x, and y — and renders one Cursor subcomponent per user. The layer itself is positioned absolutely with inset: 0 and pointerEvents: "none", ensuring cursors float above content without blocking interaction.
How
Import CursorLayer from @particle-academy/fancy-whiteboard, pass your array of remote-cursor objects to the cursors prop, and drop it inside your whiteboard container. Update the array on every presence event or pointer-move broadcast to keep all remote cursors synchronized; agents can wire this into MCP presence bridges to automatically sync participants' pointers across all connected clients.