aura-glass
Version:
A comprehensive glassmorphism design system for React applications with 142+ production-ready components
82 lines • 2.17 kB
TypeScript
/**
* Gesture Physics System
* Provides physics-based gesture interactions with preset configurations
*/
import { Vector2D } from '../../types/common';
/**
* Gesture types supported by the physics system
*/
export declare enum GestureType {
TAP = "tap",
DOUBLE_TAP = "double_tap",
LONG_PRESS = "long_press",
PAN = "pan",
SWIPE = "swipe",
PINCH = "pinch",
ROTATE = "rotate",
HOVER = "hover"
}
/**
* Gesture physics preset configurations
*/
export interface GesturePhysicsPreset {
name: string;
damping: number;
stiffness: number;
mass: number;
velocity: number;
restDelta: number;
restSpeed: number;
gestures: GestureType[];
}
/**
* Predefined gesture physics presets
*/
export declare const GESTURE_PRESETS: Record<string, GesturePhysicsPreset>;
/**
* Gesture event data
*/
export interface GestureEvent {
type: GestureType;
position: Vector2D;
delta: Vector2D;
velocity: Vector2D;
distance: number;
angle: number;
scale: number;
timestamp: number;
}
/**
* Options for gesture physics hook
*/
export interface UseGesturePhysicsOptions {
preset?: keyof typeof GESTURE_PRESETS | GesturePhysicsPreset;
enabledGestures?: GestureType[];
onGesture?: (event: GestureEvent) => void;
onGestureStart?: (event: GestureEvent) => void;
onGestureEnd?: (event: GestureEvent) => void;
threshold?: number;
velocityThreshold?: number;
longPressDelay?: number;
}
/**
* Hook for gesture-based physics interactions
*/
export declare const useGesturePhysics: (options?: UseGesturePhysicsOptions) => {
handlers: {
onMouseDown: (e: React.MouseEvent) => void;
onMouseMove: (e: React.MouseEvent) => void;
onMouseUp: () => void;
onMouseLeave: () => void;
onTouchStart: (e: React.TouchEvent) => void;
onTouchMove: (e: React.TouchEvent) => void;
onTouchEnd: () => void;
onTouchCancel: () => void;
};
position: Vector2D;
isActive: boolean;
gestureType: GestureType | null;
velocity: Vector2D;
preset: GesturePhysicsPreset;
};
//# sourceMappingURL=gesturePhysics.d.ts.map