@motion-core/motion-gpu
Version:
Framework-agnostic WebGPU runtime for fullscreen WGSL shaders with explicit Svelte, React, and Vue adapter entrypoints.
94 lines • 2.62 kB
TypeScript
import { type CurrentReadable } from '../core/current-value.js';
import { type PointerClick, type PointerFrameRequestMode, type PointerState } from '../core/pointer.js';
export type { PointerClick, PointerFrameRequestMode, PointerKind, PointerPoint, PointerState } from '../core/pointer.js';
/**
* Configuration for pointer input handling in `usePointer`.
*/
export interface UsePointerOptions {
/**
* Enables pointer listeners.
*
* @default true
*/
enabled?: boolean;
/**
* Frame wake-up strategy for pointer-driven state changes.
*
* @default 'auto'
*/
requestFrame?: PointerFrameRequestMode;
/**
* Requests pointer capture on pointer down.
*
* @default true
*/
capturePointer?: boolean;
/**
* Tracks pointer move/up outside canvas while pointer is pressed.
*
* @default true
*/
trackWhilePressedOutsideCanvas?: boolean;
/**
* Enables click/tap synthesis on pointer up.
*
* @default true
*/
clickEnabled?: boolean;
/**
* Maximum press duration to consider pointer up a click (milliseconds).
*
* @default 350
*/
clickMaxDurationMs?: number;
/**
* Maximum pointer travel from down to up to consider pointer up a click (pixels).
*
* @default 8
*/
clickMaxMovePx?: number;
/**
* Allowed pointer buttons for click synthesis.
*
* @default [0]
*/
clickButtons?: number[];
/**
* Called after pointer move state update.
*/
onMove?: (state: PointerState, event: PointerEvent) => void;
/**
* Called after pointer down state update.
*/
onDown?: (state: PointerState, event: PointerEvent) => void;
/**
* Called after pointer up/cancel state update.
*/
onUp?: (state: PointerState, event: PointerEvent) => void;
/**
* Called when click/tap is synthesized.
*/
onClick?: (click: PointerClick, state: PointerState, event: PointerEvent) => void;
}
/**
* Reactive state returned by `usePointer`.
*/
export interface UsePointerResult {
/**
* Current pointer state.
*/
state: CurrentReadable<PointerState>;
/**
* Last synthesized click/tap event.
*/
lastClick: CurrentReadable<PointerClick | null>;
/**
* Clears last click snapshot.
*/
resetClick: () => void;
}
/**
* Tracks normalized pointer coordinates and click/tap snapshots for the active `FragCanvas`.
*/
export declare function usePointer(options?: UsePointerOptions): UsePointerResult;
//# sourceMappingURL=use-pointer.d.ts.map