rough-native
Version:
Create graphics using HTML Canvas or SVG with a hand-drawn, sketchy, appearance. Features comprehensive React hooks, memory management, and React 18 concurrent rendering support.
51 lines (50 loc) • 2.22 kB
TypeScript
import { Config, Options, OpSet, ResolvedOptions, Drawable } from './core';
import { RoughGenerator } from './generator';
import { Point } from './geometry';
export interface ReactNativeSVGElement {
props?: any;
children?: ReactNativeSVGElement[];
}
export declare class RoughReactNativeSVG {
private gen;
private static errorCache;
private static maxErrorCacheSize;
private static errorRateLimit;
private static cacheCleanupInterval;
private static cleanupTimer;
private static instanceCount;
private static finalizationRegistry;
private instanceId;
constructor(config?: Config);
private registerInstance;
private handleInstanceFinalization;
private startCleanupTimer;
dispose(): void;
static forceCleanup(): void;
private cleanupErrorCache;
private logError;
private sanitizeParameters;
private shouldLog;
draw(drawable: Drawable): ReactNativeSVGElement;
private safeFillSketch;
private safeOpsToPath;
private validateElement;
private createEmptyElement;
private validateCoordinates;
private validateDimensions;
private validatePoints;
private validateAngles;
private validateCurvePoints;
get generator(): RoughGenerator;
getDefaultOptions(): ResolvedOptions;
opsToPath(drawing: OpSet, fixedDecimalPlaceDigits?: number): string;
line(x1: number, y1: number, x2: number, y2: number, options?: Options): ReactNativeSVGElement;
rectangle(x: number, y: number, width: number, height: number, options?: Options): ReactNativeSVGElement;
ellipse(x: number, y: number, width: number, height: number, options?: Options): ReactNativeSVGElement;
circle(x: number, y: number, diameter: number, options?: Options): ReactNativeSVGElement;
linearPath(points: Point[], options?: Options): ReactNativeSVGElement;
polygon(points: Point[], options?: Options): ReactNativeSVGElement;
arc(x: number, y: number, width: number, height: number, start: number, stop: number, closed?: boolean, options?: Options): ReactNativeSVGElement;
curve(points: Point[] | Point[][], options?: Options): ReactNativeSVGElement;
path(d: string, options?: Options): ReactNativeSVGElement;
}