Instrumentation

Generated by website/scripts/generate-api.ts from packages/gridla/src. Do not edit by hand; run bun run generate in website/.

Optional tracing. Pass onTrace in SolveOptions and every solve reports the strategy it used, so you can build debug overlays or log interaction paths without the core owning a logger.

import {  } from 'gridla'
import type { SolveStrategy, TraceCallback, TraceEvent } from 'gridla'
ExportKindSummary
SolveStrategytypeNames of the strategies a solver may report.
TraceCallbacktypeReceives a TraceEvent for every solve.
TraceEventtypeOne record per solve: the operation, the strategy that produced the result, whether it was accepted, and the active item's resulting rectangle in canvas coordinates.

Types

SolveStrategy

type · core/instrumentation.ts:8

Names of the strategies a solver may report.

export type SolveStrategy =
  | 'origin'
  | 'push-x'
  | 'push-y'
  | 'push-down'
  | 'push-shrink-x'
  | 'push-shrink-y'
  | 'swap'
  | 'group-swap'
  | 'reorder-row'
  | 'reorder-column'
  | 'insert-row'
  | 'insert-column'
  | 'shrink-neighbor'
  | 'snap'
  | 'fit-open-slot'
  | 'free'
  | 'fallback-snap'
  | 'resize'
  | 'resize-shrink-neighbors'
  | 'open'
  | 'adjacent'
  | 'stack-below'
  | 'trim-neighbor'
  | 'nearest-open-slot'
  | 'pointer'
  | 'pointer-slide'
  | 'pointer-push'
  | 'pointer-scaled'
  | 'pointer-shrink-siblings'
  | 'pointer-overlap'
  | 'rejected'

TraceCallback

type · core/instrumentation.ts:58

Receives a TraceEvent for every solve. Pass it as SolveOptions.onTrace.

export type TraceCallback = (event: TraceEvent) => void

TraceEvent

type · core/instrumentation.ts:46

One record per solve: the operation, the strategy that produced the result, whether it was accepted, and the active item's resulting rectangle in canvas coordinates.

export type TraceEvent = {
  operation: 'move' | 'resize' | 'place' | 'transfer'
  strategy: SolveStrategy
  itemId: string
  accepted: boolean
  x?: number
  y?: number
  w?: number
  h?: number
}
MemberTypeDescription
operation`"resize" \"move" \
strategySolveStrategy
itemIdstring
acceptedboolean
x?number
y?number
w?number
h?number