All files / signature-pad/src headless.ts

0% Statements 0/0
0% Branches 0/0
0% Functions 0/0
0% Lines 0/0

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80                                                                                                                                                               
/**
 * `@usefy/signature-pad/headless` — the framework-free ink engine.
 *
 * Pure TypeScript, zero dependencies, zero React imports, SSR-safe to
 * import (no `window`/`document`/canvas access at module scope). Usable
 * from any framework or vanilla JS:
 *
 * @example
 * ```ts
 * import { createSignatureEngine } from "@usefy/signature-pad/headless";
 *
 * const engine = createSignatureEngine(document.querySelector("canvas")!);
 * engine.onChange((e) => console.log("signed:", !e.isEmpty));
 * // ...user signs...
 * const draft = engine.toJSON();
 * engine.destroy();
 * ```
 */
 
// Engine
export { createSignatureEngine, MAX_DPR } from "./engine/createEngine";
export type {
  IngestSample,
  SignatureEngine,
  SignatureEngineOptions,
} from "./engine/createEngine";
 
// Pure ink pipeline (exported for tests, replay tooling, and advanced use
// — SPEC §4.2; confetti "pure physics" precedent)
export {
  filterPoints,
  passesMinDistance,
  pointDistance,
  bezierFor,
  flattenSegment,
  widthForSegment,
  startWidthFor,
  createStrokeWalker,
  flattenStrokeSegment,
  strokeGeometry,
  strokeSteps,
  inkBounds,
  strokesToSVG,
} from "./ink";
export type {
  BezierSegment,
  FlatStep,
  Rect,
  StrokeGeometry,
  StrokeSegment,
  StrokeWalker,
  StrokeWalkerParams,
  Vec2,
  WidthInput,
} from "./ink";
 
// Option resolution + defaults
export {
  resolveOptions,
  DEFAULT_PEN_COLOR,
  DEFAULT_MIN_WIDTH,
  DEFAULT_MAX_WIDTH,
  DEFAULT_VELOCITY_FILTER_WEIGHT,
  DEFAULT_MIN_DISTANCE,
  DEFAULT_ACCEPT_POINTER_TYPES,
  DEFAULT_EXPORT_PADDING,
} from "./types";
 
// Types
export type {
  PNGExportOptions,
  ResolvedSignatureOptions,
  SignatureData,
  SignatureOptions,
  SignaturePoint,
  SignaturePointerType,
  SignatureStroke,
  SVGExportOptions,
} from "./types";