UNPKG

@fluritheme/spider

Version:

A tiny, expressive spider for your website. Delicate webs that follow DOM layers, blinking eyes, and playful pointer reactions.

49 lines • 1.86 kB
import { type Box, type Point } from './geometry.js'; import type { PageObject } from './objects.js'; import type { SilkAnchor } from './silk.js'; import { type WeaveTask, type SilkKind } from './weaving.js'; export { curvePoint } from './weaving.js'; export type Behavior = 'descending' | 'exploring' | 'weaving' | 'hiding' | 'resting' | 'fleeing'; export interface SilkThread { from: Point; to: Point; group: number; sag: number; laid: number; born: number; ink: string; kind: SilkKind; grain: number; } export interface Resident extends Point { destination: Point; dragFrom: Point | null; tip: Point | null; angle: number; gait: number; velocity: number; behavior: Behavior; behind: boolean; until: number; target: PageObject | null; scared: boolean; visible: boolean; threads: SilkThread[]; tasks: WeaveTask[]; task: WeaveTask | null; activeThread: SilkThread | null; attachment: SilkAnchor | null; nextAttachment: SilkAnchor | null; route: number; tether: Point | null; landing: Point; ink: string; woven: number; silkInk: string; } export declare function makeResident(point: Point, index: number, descend?: boolean, top?: number): Resident; /** Keep completed silk. At the resource ceiling the resident explores until explicitly cleared. */ export declare const threadBudget = 2048; export declare function stepResident(r: Resident, dt: number, time: number, pointer: Point | null, fearRadius: number, speed: number, box: Box, objects: readonly PageObject[], index: number, anchors?: readonly SilkAnchor[], density?: number, span?: number, color?: string): void; export declare function paintThreads(ctx: CanvasRenderingContext2D, threads: readonly SilkThread[], opacity: number): void; //# sourceMappingURL=resident.d.ts.map