@sirhc77/canvas-math-kit
Version:
A lightweight, interactive canvas-based vector visualizer for math, linear algebra, and ML education. Built with React + TypeScript.
20 lines (19 loc) • 663 B
TypeScript
import React from 'react';
export interface DragTarget {
x: number;
y: number;
draggable?: boolean;
}
export interface PointerDragOptions {
origin: {
x: number;
y: number;
};
scale: number;
snap?: number | ((x: number, y: number) => [number, number]);
isLocked?: boolean;
hitRadius?: number;
onDragStart?: () => void;
onDragEnd?: () => void;
}
export declare function usePointerDrag<T extends DragTarget>(canvasRef: React.RefObject<HTMLCanvasElement | null>, items: T[], onChange: (updated: T[]) => void, { origin, scale, snap, isLocked, hitRadius, onDragStart, onDragEnd, }: PointerDragOptions): void;