0.2.0 - 2026-09-23
Added
ctx.cellBox()/ctx.popup()/ctx.done(): DOM anchoring API for custom cell editors. Includes a box positioned over the cell, a popup that escapes overflow clipping (auto flip/clamp), and built-in Enter/Escape/Tab/outside-click commit/cancel handlingctx.cellBox({ el }): places a host-supplied element (e.g.<input type="color">) over a cell without creating a new onecolumnDefs[].cellButton: built-in clickable button affordance for a cell. Drawing and hit-testing share the same width constant.CellRenderers.link(): link-style cell renderer (color, underline, alignment, per-rowlinkedstate)Renderer.clipToWidth()export: the same ellipsis-truncation logic used by built-in cell renderers, now usable in custom renderers.index.d.ts: addedCellEditorCtx/CellEditorEl/CellButtonDeftypes, and filled in missing type declarations foronCellDoubleClick/onColumnVisibilityChange/columnLetterHeader
Removed (Breaking)
- Removed the
GRID_CLASSES.swatchCSS class, including its hover-scale rule.
Changed / Performance
- Internal performance improvements: cached geometry lookups during
mousemove, cached header-cell layout, indexed edited-cell lookups, and changedsetState()column reindexing from O(n²) to O(n). No public API changes - Built-in editors (dropdown, multiselect, richtext) now share the same anchoring system as custom editors; scroll-triggered re-anchoring is coalesced to once per frame
- Source comments are stripped from the
dev/esmbuild outputs, reducing bundle size by roughly 37-40%