@optimistic-agency/tiling
v0.2.0
Published
Product-neutral layout tree algebra and controlled React tiling primitives.
Readme
@optimistic-agency/tiling
Product-neutral layout tree algebra and controlled React tiling primitives.
Subpaths
@optimistic-agency/tiling/core— framework-neutral tree traversal, validation, geometry, serialization boundaries, focus resolution, and atomic mutations.@optimistic-agency/tiling/react— controlled recursive rendering, pointer resize, drop-zone presentation, and collapsed-leaf rendering.@optimistic-agency/tiling/testing— synthetic fixtures and reusable policy-contract assertions.
The 0.2.x release preserves the complete 0.1.x /core and /testing API and behavior. React is a >=19.0.0 peer and is referenced only by /react.
React API
TilingRenderer recursively renders a caller-owned TilingNode. It passes each opaque payload by reference to renderLeaf or renderCollapsedLeaf, keeps branch and leaf IDs as React identities, and reports resize gestures without mutating the tree.
TilingResizeHandle captures one primary pointer and reports total pixel/percentage deltas from gesture start. Pointer-up commits. Pointer cancellation, lost capture, and Escape report cancellation exactly once.
TilingDropZones presents left, right, top, bottom, and center targets. The host decodes DataTransfer, decides acceptance, controls the active presentation state, and owns the drop effect. The package assumes no MIME type or payload domain. Nested zones stop event propagation so the innermost rendered owner decides the operation.
Boundary
Leaf payloads are opaque references. Core operations and React primitives do not inspect, clone, serialize, mutate, regenerate, or infer payload fields. Callers provide identity generation, policy values, rendering, decoding, authorization/acceptance, labels, styling, telemetry, and persistence.
The package owns no store, storage, transport, credentials, API, product panel registry, MIME convention, or host policy. /core has no React path, /react has no testing path, and /testing is not part of the production React graph.
Published artifacts contain compiled ESM, declarations, and this document. They contain no raw TypeScript, tests, source maps, or host source.
